I've debugged a bit, the underlying cause seems to be that
goog.net.xpc.CrosspageChannel uses goog.async.Deferred, which lives in
third_party.
In my project, I could indeed successfully compile again with the browser
repl, by adding the third-party jar.

This leaves two open issues:

Why the NPE in cljsbuild?
script/cljsc complains about goog.async.Deferred never provided, as it
should. When compiling with cljsbuild, however, the js-sources list
contains an entry which :provides goog.async.Deferred but has an :uri of
nil, which triggers the breakage when mapping javascript-name over it. I
didn't find out where that entry comes from. This is probably a cljsbuild
issue, so I'll amend the ticket if I have time to look into this within a
few days.

So clojure.browser.repl transitively depends on third_party now
Not only that, there are a lot of files in closure lib proper that depend
on goog.async.Deferred, as you can verify by running

grep -r "goog.require('goog.async.Deferred')" closure/library/closure

from cljs root dir. That begs two questions:
- Are there other third-party libs referred to from closure proper and has
that been the case with older versions?
- Does it still make sense to split closure lib?


2012/11/13 Herwig Hochleitner <hhochleit...@gmail.com>

> I've seen this same NPE in my project. I managed to work around it by
> temporarily throwing out the browser repl. It seems to trigger the NPE. Not
> sure how and why.
>
>
> 2012/11/13 Evan Mezeske <emeze...@gmail.com>
>
>> The policy is: update the default version as quickly as possible when a
>> new ClojureScript compiler revision is released.  So, feel free to poke me
>> if it seems like I haven't noticed a new release (as I might not have!).  :)
>>
>> Unfortunately, after setting the default ClojureScript version to
>> 0.0-1535, the lein-cljsbuild simple project compiles fine, but attempting
>> to compile the advanced project results in a NullPointerException:
>>
>> https://github.com/emezeske/lein-cljsbuild/issues/155
>>
>> This is going to take some debugging -- I'm not comfortable releasing
>> lein-cljsbuild until both example projects compile and run cleanly.  If
>> anyone has insight into the problem, that would be great.
>>
>> -Evan
>>
>> --
>> 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 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

Reply via email to