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

Description

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.

Environment

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

Activity

Show:
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:

vs.

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.

Completed

Assignee

David Nolen

Reporter

Mike Fikes

Labels

Approval

None

Patch

None

Priority

Major