Amazing work! Thanks to everyone involved.

Are there any hopes of optimizing things in the source-map department? It 
adds about 30sec (on optimize only, compile times are fine) to my build 
which makes it unsuitable for development.

A while back I opened http://dev.clojure.org/jira/browse/CLJS-474, it adds 
no compile-time and it helps a lot in finding out WHERE stuff happened. 
Can't compare it to full source maps but the stack traces no longer leave 
you completely helpless. The patch no longer works since some stuff in that 
area has changed, but should be fairly simple to get it working again. I'd 
be happy too if there is any interest.

See my initial description 
https://groups.google.com/d/msg/clojurescript/ZX6M4KXx8I8/0-NSjci9EEUJ 
about what it does.

To recap, it turns the standard cljs stack traces from


Uncaught Error: No protocol method IElement.-to-dom defined for type null:
missing_protocol
(anonymous function)
_to_dom
append__2
append
append__1
append
popup_open__delegate
popup_open
list_objects
dom_event_handler
goog.events.Listener.handleEvent
goog.events.fireListener
goog.events.handleBrowserEvent_
(anonymous function)


into


Uncaught Error: No protocol method IElement.-to-dom defined for type null:
fn_cljs_DOT_core_SLASH_missing_protocol_78
(anonymous function)
fn_thheller_DOT_web_DOT_dom_SLASH__to_dom_89
fn_thheller_DOT_web_DOT_dom_SLASH_append_122__2
fn_thheller_DOT_web_DOT_dom_SLASH_append_122
fn_thheller_DOT_web_DOT_dom_SLASH_append_122__1
fn_thheller_DOT_web_DOT_dom_SLASH_append_122
fn_thheller_DOT_debug_SLASH_popup_open_108__delegate
fn_thheller_DOT_debug_SLASH_popup_open_108
fn_thheller_DOT_debug_SLASH_list_objects_121
fn_thheller_DOT_object_SLASH_dom_event_handler_169
goog.events.Listener.handleEvent
goog.events.fireListener
goog.events.handleBrowserEvent_
(anonymous function)

All cljs functions are named with a fn_<ns>/<name>_<source line> pattern, 
since at least Chrome is not smart enough to figure out the function names 
on its own. So fn_thheller_DOT_web_DOT_dom_SLASH_append_122 is 
thheller.web.dom/append in line 122, its only a minor debug helper but it 
saved me tons of time.


Regards,
/thomas


On Thursday, November 21, 2013 4:12:55 PM UTC+1, David Nolen wrote:
>
> ClojureScript, the Clojure compiler that emits JavaScript source code.
>
> README and source code: 
> https://github.com/clojure/clojurescript<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fclojure%2Fclojurescript&sa=D&sntz=1&usg=AFQjCNG5FWXgQFOLt9YirFevUBF_0Ke5lg>
>
> New release version: 0.0-2060
>
> Leiningen dependency information:
>
>     [org.clojure/clojurescript "0.0-2060"]
>
> Source map accuracy is considerably improved in this release. Source
> maps now work great under incremental compilation regardless of the
> level of optimization. PersistentVector performance is considerably
> improved for conj and instantiation.
>
> Enhancements:
> * CLJS-683: :source-map-path compiler option to simplify web server
>   integration
> * enable-console-print! for console.log based printing
> * *print-length* now supported
>
> Bug fixes:
> * CLJS-691: IComparable for keywords and symbols
> * CLJS-674: relativization of source map paths
> * CLJS-687: error when deftype/record used as a function
> * CLJS-639: warnings when record initialized incorrectly
> * CLJS-672: source maps + optimizations + :libs breaks building
> * CLJS-676: source map stale under incremental compilation + closure
>   optimization
> * CLJS-684: throw on circular dependency
> * CLJS-583: duplicate keys in sets
> * CLJS-680: function name shadows JS globals
> * CLJS-699: namespaced keyword regression
> * CLJS-647: js-obj keys could not be expressions
>  

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