cljs.js: eval-str: Some core fns not aliased


If I eval-str inc I'll get back the core fn, but not so with "map" unless I fully qualify it.

So (inc 1) works but not (map inc [1 2 3]) but, (cljs.core/map inc [1 2 3]) works just fine.

Will see if I can repo with cljs-bootstrap.


Master clojurescript-version "0.0-3620", downstream Planck


Mike Fikes
July 26, 2015, 3:36 AM

Isolated it: With cljs.js, something related to defn is very slow the first time called. Planck has a couple of those in it during startup. If I eliminate those, then very comparable numbers result:

Whatever it is with defn perf is clearly not related to this ticket. Just wanted to comment so this ticket is not "left hanging", and whatever it is with defn perf can be pursued separately.

Mike Fikes
July 26, 2015, 2:51 AM

Confirmed fixed in master (0.0-3632) with downstream Planck.

I did time ./planck e '(map inc [1 2 3])' with the cljs.js and previous noncljs.js versions of Planck and it is slower than I think we expected. Here is what I get:


To eliminate any potential noise introduced by the subsequent commits related to source map stuff, I checked out the commit with this fix and got similar numbers:

And, to see what this commit alone does to the timings I went to the commit immediately prior and got

Summary conclusion: This commit fixes the issue by only adding about 0.75 seconds to startup!

There is obviously something else I'll want to dig into in order to isolate where the 6-second numbers are coming from relative to the 1-second numbers (perhaps it's a Planck thing; I promise to get back with that info, but wanted to at least record what I measured here.)

David Nolen
July 25, 2015, 9:26 PM

needs fixing

David Nolen
July 25, 2015, 7:56 PM

Closing this one. This only happens when cljs.core has not been analyzed. I do not currently see an easy to solve this problem for users as it either means analyzing cljs.core before doing anything (very slow) or I/O to load a cached analysis. I think this should be just covered by good documentation when we get there.



David Nolen


Mike Fikes