Umm I can't think of parallel dependency tree walking algos, off the top of
my head. Sorry :/

But niiice. Yeah, we're definitely thinking along the same lines. But
you're way ahead of me. Now just to be able to isolate that browser repl on
a per project basis.


Sweet

Tim Washington
Interruptsoftware.ca <http://interruptsoftware.ca/> /
Bkeeping.com<http://bkeeping.com/>



On Wed, Nov 6, 2013 at 8:46 PM, Malcolm Sparks <malc...@juxt.pro> wrote:

> Hi Tim,
>
> It's interesting you're thinking about browser-connected repls. Today I
> added clojurescript support to Jig, it's pushed to master but I haven't
> documented the config options yet, but below is an example. Nothing fancy
> like crossovers yet, it's basically a thin wrapper over ClojureScript's
> compiler, the config options map directly to the options given to the
> compiler.
>
>   :cljs-builder
>   {:jig/component jig.cljs/Builder
>    :jig/project "../my-proj/project.clj"
>    :source-path "../my-proj/src-cljs"
>    :output-dir "../my-proj/target/js"
>    :output-to "../my-proj/target/js/main.js"
>    :source-map "../my-proj/target/js/main.js.map"
>    :optimizations :simple
>    :pretty-print true
> ;;   :clean-build true
>    }
>
> Another built-in component can figure out, given the dependencies, what
> files to serve and on which server to serve it from.
>
>   :cljs-server
>   {:jig/component jig.cljs/FileServer
>    :jig/dependencies [:cljs-builder :web]
>    :jig.web/context "/js"
>    }
>
> which depends on some Ring or Pedestal routing and Jetty or other
> webserver, but you're likely to have that configured already :-
>
>
>   :server
>   {:jig/component jig.web.server/Component
>    :io.pedestal.service.http/port 8000
>    :io.pedestal.service.http/type :jetty
>    }
>
>   :web
>
>   {:jig/component jig.web.app/Component
>    :jig/dependencies [:server]
>    :jig/scheme :http
>    :jig/hostname "localhost"
>    :jig.web/server :server
>    }
>
> That's it really. I think Jig makes an ideal platform for building and
> serving clojurescript, in comparison to Leiningen plugins. Firstly, there's
> no JVM start-up cost, the point of Jig is to keep the JVM running all the
> time, so there's no need for the once/auto service that lein-cljsbuild
> offers. Secondly, serving the resulting Javascript files is straight
> forward, and built in, so no 'lein ring server' requirement either.. With
> Leiningen, you either have to build routes to the javascript into your own
> app, or run lein ring server, but then Leiningen doesn't make it easy to
> run multiple services concurrently. Thirdly, there's no file-system
> polling, and services that depend on the clojurescript compilation can be
> started as soon as the compilation is complete.
>
> One thing that lein-cljsbuild does really well is multiple build configs.
> I've decided to use a single build configuration, to keep implementation
> easier and a direct mapping to the clojurescript compiler, but of course
> you can add different builds by just adding (differently configured)
> components to the Jig config. This would benefit from being able to
> initialize and start components in parallel, where possible. Unlike
> cljsbuild, Jig components are started serially, in reverse dependency
> order. Does anyone know of existing algorithms that can walk a dependency
> tree in parallel?
>
> Feel free to take Jig in different directions though, I'm just letting you
> know my current thoughts. The single REPL to multiple projects idea might
> have to be rethought - it seems the prevailing wind is in the direction of
> multiple REPL connections per editor/IDE.
>
>
> On Thursday, 7 November 2013 01:09:53 UTC, frye wrote:
>
>> Too right.
>>
>> Yes, wrt the multi-project / classpath thing, running isolated test for a
>> particular project is only one aspect. I also have an eye to running a i)
>> browser-connected repl and ii) debugger for a particular project. So those
>> things, along with iii) running tests, make very high, the attractiveness
>> of having that isolation.
>>
>> I'll try to put those in github issues. And also pick at the problem
>> myself when I get some cycles. I think it would add a powerful feature to
>> the tool. Anyways... :)
>>
>>
>> Tim Washington
>> Interruptsoftware.ca <http://interruptsoftware.ca/> / 
>> Bkeeping.com<http://bkeeping.com/>
>>
>>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to