Fork me on GitHub
#clojure-dev
<
2016-06-04
>
mikethompson00:06:21

I've just been experimenting with v1.9.36, and specifically, the idea that adding transit-clj as a dependency would result in a compile time speedup. So I took an existing project and made the dependencies be as follows:

[org.clojure/clojure        "1.8.0"]
[org.clojure/clojurescript  "1.9.36"]        ;; previously "1.8.40"
[com.cognitect/transit-clj "0.8.285"]        ;; not there originally
But, from a cleaned start, I'm seeing the same compile times (around 60 sec). So I'm wondering if I have misunderstood. Is there something else I should do? Do I need to be on 1.9.NN of clojure itself? Perhaps the speedup only happens after the initial compile, in the incremental stage? My build was for :none not :advanced, perhaps the speedup is only for :advanced. There's something I'm not understanding.

hiredman00:06:41

it looks like transit is used for encoding caches, so my guess would be it would only be after the initial build

mikethompson00:06:52

Oh, right. So if you compile once. Then make a change and compile again (without having done a clean).

hiredman00:06:44

I am not sure, but it looks like the caching is per namespace (which is more or less per file), so a change in a namespace would invalidate the cache

mikethompson00:06:58

For sanity purposes, all of our figwheel builds do an initial clean. So no real benefit for us then, at least in the initial build. But perhaps this improves the incremental figwheel recompilations?

hiredman01:06:04

figuring out all the ways all the clojurescript tooling interacts with new features in the compiler seems like a non-trivial thing

richiardiandrea01:06:01

@mikethompson: if I understood right this speeds up the repl startup, not the compile time

richiardiandrea01:06:17

I tried myself on http://clojurescript.io without seeing improvements, then in #C07UQ678E it was clear that when the compile time dominates you cannot appreciate the speed up