Hopefully we can get that down 1s for anything except production builds. Next on the list of todos is a shared AOT cache for all projects builds. Once you've compiled a dependency from a JAR we should never compile it ever again.
On Tue, Mar 10, 2015 at 9:11 AM, Chris McDevitt < christophermcdev...@gmail.com <javascript:_e(%7B%7D,'cvml','christophermcdev...@gmail.com');>> wrote: > On Tuesday, 10 March 2015 10:55:49 UTC, David Nolen wrote: > > Looks like you're trying to use :cache-analysis with a higher > :optimizations setting than :none. I would avoid this for now. > > That fixed the same problem for me. Thanks. > > Also my cold compile time went down from 40s to 25s! > > Thanks, > > Chris > > > > > > http://dev.clojure.org/jira/browse/CLJS-1103 > > > > > > > > David > > > > > > On Tue, Mar 10, 2015 at 6:07 AM, Max Gonzih <gon...@gmail.com > <javascript:_e(%7B%7D,'cvml','gon...@gmail.com');>> wrote: > > Amazing update! Yay. > > > > > > > > But I just spotted one weird thing, after I pumped compiler version > compilation fails for me with following error: > > > > > > > > clojure.lang.ExceptionInfo: failed compiling > file:public/javascripts/out-server-side/cljs/core.cljs {:file #<File > public/javascripts/out-server-side/cljs/core.cljs>} > > > > at clojure.core$ex_info.invoke(core.clj:4403) > > > > at cljs.compiler$compile_file$fn__2959.invoke(compiler.clj:1130) > > > > at cljs.compiler$compile_file.invoke(compiler.clj:1101) > > > > at cljs.closure$compile_file.invoke(closure.clj:347) > > > > at cljs.closure$eval3294$fn__3295.invoke(closure.clj:398) > > > > at > cljs.closure$eval3230$fn__3231$G__3221__3238.invoke(closure.clj:305) > > > > at cljs.closure$compile_from_jar.invoke(closure.clj:390) > > > > at cljs.closure$eval3289$fn__3290.invoke(closure.clj:404) > > > > at > cljs.closure$eval3230$fn__3231$G__3221__3238.invoke(closure.clj:305) > > > > at cljs.closure$get_compiled_cljs.invoke(closure.clj:467) > > > > at cljs.closure$cljs_dependencies.invoke(closure.clj:511) > > > > at cljs.closure$add_dependencies.doInvoke(closure.clj:533) > > > > at clojure.lang.RestFn.applyTo(RestFn.java:139) > > > > at clojure.core$apply.invoke(core.clj:626) > > > > at cljs.closure$build.invoke(closure.clj:1408) > > > > at cljs.closure$build.invoke(closure.clj:1351) > > > > at > cljsbuild.compiler$compile_cljs$fn__3665.invoke(compiler.clj:81) > > > > at cljsbuild.compiler$compile_cljs.invoke(compiler.clj:80) > > > > at cljsbuild.compiler$run_compiler.invoke(compiler.clj:180) > > > > at > user$eval3797$iter__3833__3837$fn__3838$fn__3856.invoke(form-init1562646833731967415.clj:1) > > > > at > user$eval3797$iter__3833__3837$fn__3838.invoke(form-init1562646833731967415.clj:1) > > > > at clojure.lang.LazySeq.sval(LazySeq.java:40) > > > > at clojure.lang.LazySeq.seq(LazySeq.java:49) > > > > at clojure.lang.RT.seq(RT.java:484) > > > > at clojure.core$seq.invoke(core.clj:133) > > > > at clojure.core$dorun.invoke(core.clj:2855) > > > > at clojure.core$doall.invoke(core.clj:2871) > > > > at user$eval3797.invoke(form-init1562646833731967415.clj:1) > > > > at clojure.lang.Compiler.eval(Compiler.java:6703) > > > > at clojure.lang.Compiler.eval(Compiler.java:6693) > > > > at clojure.lang.Compiler.load(Compiler.java:7130) > > > > at clojure.lang.Compiler.loadFile(Compiler.java:7086) > > > > at clojure.main$load_script.invoke(main.clj:274) > > > > at clojure.main$init_opt.invoke(main.clj:279) > > > > at clojure.main$initialize.invoke(main.clj:307) > > > > at clojure.main$null_opt.invoke(main.clj:342) > > > > at clojure.main$main.doInvoke(main.clj:420) > > > > at clojure.lang.RestFn.invoke(RestFn.java:421) > > > > at clojure.lang.Var.invoke(Var.java:383) > > > > at clojure.lang.AFn.applyToHelper(AFn.java:156) > > > > at clojure.lang.Var.applyTo(Var.java:700) > > > > at clojure.main.main(main.java:37) > > > > Caused by: java.lang.ClassCastException: java.net.URL cannot be cast to > java.io.File > > > > at cljs.util$mkdirs.invoke(util.clj:80) > > > > at cljs.analyzer$write_analysis_cache.invoke(analyzer.clj:2021) > > > > at > cljs.compiler$compile_file_STAR_$fn__2927.invoke(compiler.clj:1055) > > > > at cljs.compiler$with_core_cljs.invoke(compiler.clj:961) > > > > at cljs.compiler$compile_file_STAR_.invoke(compiler.clj:981) > > > > at cljs.compiler$compile_file$fn__2959.invoke(compiler.clj:1118) > > > > ... 40 more > > > > Subprocess failed > > > > > > > > Is this related to AOT compiler cljs.core ns? > > > > > > > > On Tuesday, March 10, 2015 at 12:41:45 AM UTC+1, David Nolen wrote: > > > > > > > > > ClojureScript, the Clojure compiler that emits JavaScript source code. > > > > > > > > > > > > > > > README and source code: https://github.com/clojure/clojurescript > > > > > > > > > > > > > > > New release version: 0.0-3058 > > > > > > > > > > > > > > > Leiningen dependency information: > > > > > > > > > > > > > > > [org.clojure/clojurescript "0.0-3058"] > > > > > > > > > > > > > > > This is a significant enhancement release around REPLs and compile > times. > > > > > > > > > > > > > > > All builtin REPLs (Nashorn, Node.js, Rhino and the browser REPL) now > > > > > support the helper functions normally available via clojure.repl, > > > > > these include: doc, find-doc, apropos, dir, source, and pst. All of > the > > > > > builtins REPL now also support source mapped stacktraces. > > > > > > > > > > > > > > > This release also includes many enhancements around compile times. > > > > > > > > > > > > > > > ClojureScript now ships with a default :optimizations setting of > > > > > :none. Implicit now when using :none is source map generation and > analysis > > > > > caching. Analysis caching significantly speeds up compile times. > > > > > > > > > > > > > > > The standard library (cljs.core) is now AOTed compiled to JavaScript > > > > > along with an AOTed analysis dump and an AOTed source map. This > > > > > dramatically cuts down on cold start compile times. The standard > > > > > library is never actually ever analyzed or compiled in your own > > > > > builds. The result is particularly dramatic for REPLs. > > > > > > > > > > > > > > > ClojureScript is also now available for the first time as a standalone > > > > > AOTed JAR. The Quick Start introduction has been rewritten in terms of > > > > > the standalone JAR: > > > > > https://github.com/clojure/clojurescript/wiki/Quick-Start > > > > > > > > > > > > > > > The new Quick Start is essential reading even if you are a relatively > > > > > experienced ClojureScript developer. > > > > > > > > > > > > > > > As usual feedback welcome! > > > > > > > > > > > > > > > ## 0.0-3058 > > > > > > > > > > > > > > > ### Enhancements > > > > > * browser REPL source mapping for Firefox, Safari, Chrome > > > > > * macro support in REPL special functions > > > > > * CLJS-897: AOT core.cljs CLJS-899: AOT cache core.cljs analysis > > > > > * CLJS-1078: Nashorn REPL should use persistent code cache > > > > > * CLJS-1079: add way to execute arbitrary fn upon watch build > completion > > > > > * CLJS-1034: Support REPL-defined functions in stacktrace > infrastructure > > > > > * source mapping for Rhino > > > > > * CLJS-1071: support symbol keys in :closure-defines > > > > > * CLJS-1014: Support Closure Defines under :none > > > > > * CLJS-1068: node target define > > > > > * CLJS-1069: Generic :jsdoc support > > > > > * CLJS-1030: add `cljs.repl/pst` > > > > > * add `cljs.repl/apropos`, `cljs.repl/find-doc`, `cljs.repl/dir` > > > > > * fix `cljs.analyzer.api/all-ns` docstring > > > > > * add `cljs.analyzer.api/ns-publics` > > > > > * CLJS-1055: cljs.repl/doc should support namespaces and special forms > > > > > * Add ClojureScript special form doc map > > > > > * CLJS-1054: add clojure.repl/source functionality to cljs.repl > > > > > * CLJS-1053: REPLs need import special fn > > > > > > > > > > > > > > > ### Changes > > > > > * move :init up in cljs.repl/repl > > > > > * CLJS-1087: with-out-str unexpectedly affected by *print-newline* > > > > > * CLJS-1093: Better compiler defaults > > > > > * Bump deps latest Closure Compiler, Rhino 1.7R5, data.json 0.2.6, > tool.reader 0.8.16 > > > > > * more sensible error if cljs.repl/repl arguments after the first > incorrectly supplied > > > > > * default REPLs to :cache-analysis true > > > > > * default :output-dir for Nashorn and Node REPLs > > > > > * change ES6 Map `get` support to take additional `not-found` parameter > > > > > * deprecate clojure.reflect namespace now that REPLs are significantly > enhanced, static vars, etc. > > > > > > > > > > > > > > > ### Fixes > > > > > * stop blowing away cljs.user in browser REPL so REPL fns/macros > remain available > > > > > * CLJS-1098: Browser REPL needs to support :reload and :reload-all > > > > > * CLJS-1097: source map url for AOTed cljs.core is wrong > > > > > * CLJS-1094: read option not used by cljs.repl/repl* > > > > > * CLJS-1089: AOT analysis cache has bad :file paths > > > > > * CLJS-1057: Nashorn REPL should not use EDN rep for errors > > > > > * CLJS-1086: Keyword constants should have stable names > > > > > * CLJS-964: Redefining exists? does not emit a warning like redefining > array? does. > > > > > * CLJS-937: local fn name should be lexically munged > > > > > * CLJS-1082: analysis memoization bug > > > > > * CLJS-978: Analysis caching doesn't account for constants table > > > > > * CLJS-865: remove `cljs.js-deps/goog-resource` hack > > > > > * CLJS-1077: analyze-deps infinite recursive loop > > > > > * manually set *e in Rhino on JS exception > > > > > * REPL options merging needs to be more disciplined > > > > > * CLJS-1072: Calling .hasOwnProperty("source") in Clojurescript's > string/replace will break with ES6 > > > > > * CLJS-1064: ex-info is not printable > > > > > * Fix REPLs emitting code into .repl directory > > > > > * CLJS-1066: Rhino REPL regression > > > > > * be more disciplined about ints in murmur3 code > > > > > * Node.js REPL should work even if :output-dir not supplied > > > > > * Nashorn environment doesn't supply console, setup printing correctly > > > > > > > > > > > > -- > > > > Note that posts from new members are moderated - please be patient with > your first post. > > > > --- > > > > You received this message because you are subscribed to the Google > Groups "ClojureScript" group. > > > > To unsubscribe from this group and stop receiving emails from it, send > an email to clojurescrip...@googlegroups.com > <javascript:_e(%7B%7D,'cvml','clojurescrip...@googlegroups.com');>. > > > > To post to this group, send email to clojur...@googlegroups.com > <javascript:_e(%7B%7D,'cvml','clojur...@googlegroups.com');>. > > > > Visit this group at http://groups.google.com/group/clojurescript. > > -- > Note that posts from new members are moderated - please be patient with > your first post. > --- > You received this message because you are subscribed to the Google Groups > "ClojureScript" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojurescript+unsubscr...@googlegroups.com > <javascript:_e(%7B%7D,'cvml','clojurescript%2bunsubscr...@googlegroups.com');> > . > To post to this group, send email to clojurescr...@googlegroups.com > <javascript:_e(%7B%7D,'cvml','clojurescr...@googlegroups.com');>. > Visit this group at http://groups.google.com/group/clojurescript. > -- 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/d/optout.