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.