After introducing clojure to co-workers on Friday, one of them tried the 
ClojureScript quick start.

He got this far:

$ bin/cljsc hello.cljs '{:optimizations :advanced}' > hello.js
Exception in thread "main" java.lang.NullPointerException
at clojure.java.io$as_relative_path.invoke(io.clj:391)
at clojure.java.io$file.invoke(io.clj:403)
at cljs.closure$compile_file.invoke(closure.clj:279)
at cljs.closure$eval1164$fn__1165.invoke(closure.clj:322)
at cljs.closure$eval1095$fn__1096$G__1086__1103.invoke(closure.clj:202)
at cljs.closure$eval1151$fn__1152.invoke(closure.clj:335)
at cljs.closure$eval1095$fn__1096$G__1086__1103.invoke(closure.clj:202)
at cljs.closure$build.invoke(closure.clj:725)
at user$eval1293.invoke(cljsc.clj:21)
at clojure.lang.Compiler.eval(Compiler.java:6406)
at clojure.lang.Compiler.load(Compiler.java:6843)
at clojure.lang.Compiler.loadFile(Compiler.java:6804)
at clojure.main$load_script.invoke(main.clj:282)
at clojure.main$script_opt.invoke(main.clj:342)
at clojure.main$main.doInvoke(main.clj:426)
at clojure.lang.RestFn.invoke(RestFn.java:457)
at clojure.lang.Var.invoke(Var.java:413)
at clojure.lang.AFn.applyToHelper(AFn.java:172)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.main.main(main.java:37)

That was embarrassing.

Looks like a null check was dropped in this commit 
be81580202ba2347ba1fea1535118b8131cfab15<https://github.com/clojure/clojurescript/commit/be81580202ba2347ba1fea1535118b8131cfab15#L0L222>
.

So, I step back one revision to 7f70ce1e07fd36b3dbf1696807e5b7a83f7283cf and 
try again...

$ bin/cljsc hello.cljs '{:optimizations :advanced}' > hello.js
Exception in thread "main" java.lang.RuntimeException: No such var: 
comp/dependency-order-visit, compiling:(cljs/closure.clj:373)
at clojure.lang.Compiler.analyze(Compiler.java:6176)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3444)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6352)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3437)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6352)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3444)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6352)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5513)
at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5814)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6350)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6338)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5513)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:4949)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3570)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6348)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6338)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.access$100(Compiler.java:37)
at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:492)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6350)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler.eval(Compiler.java:6410)
at clojure.lang.Compiler.load(Compiler.java:6843)
at clojure.lang.RT.loadResourceScript(RT.java:357)
at clojure.lang.RT.loadResourceScript(RT.java:348)
at clojure.lang.RT.load(RT.java:427)
at clojure.lang.RT.load(RT.java:398)
at clojure.core$load$fn__4636.invoke(core.clj:5377)
at clojure.core$load.doInvoke(core.clj:5376)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5191)
at clojure.core$load_lib.doInvoke(core.clj:5228)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$load_libs.doInvoke(core.clj:5262)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$require.doInvoke(core.clj:5343)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval1.invoke(cljsc.clj:9)
at clojure.lang.Compiler.eval(Compiler.java:6406)
at clojure.lang.Compiler.load(Compiler.java:6843)
at clojure.lang.Compiler.loadFile(Compiler.java:6804)
at clojure.main$load_script.invoke(main.clj:282)
at clojure.main$script_opt.invoke(main.clj:342)
at clojure.main$main.doInvoke(main.clj:426)
at clojure.lang.RestFn.invoke(RestFn.java:457)
at clojure.lang.Var.invoke(Var.java:413)
at clojure.lang.AFn.applyToHelper(AFn.java:172)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: No such var: 
comp/dependency-order-visit
at clojure.lang.Util.runtimeException(Util.java:144)
at clojure.lang.Compiler.resolveIn(Compiler.java:6635)
at clojure.lang.Compiler.resolve(Compiler.java:6605)
at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6566)
at clojure.lang.Compiler.analyze(Compiler.java:6139)
... 62 more

Determined, I carry on and step back to 
7a179189f6114b0620875d3d521789472ec04aa3:

$ bin/cljsc hello.cljs '{:optimizations :advanced}' > hello.js
Aug 7, 2011 12:45:34 AM com.google.javascript.jscomp.LoggerErrorManager 
println
WARNING: /Users/ataggart/projects/clojurescript/out/cljs/core.js:3564: 
WARNING - dangerous use of the global this object
{return this.call(null,(args[0]));
        ^

Aug 7, 2011 12:45:34 AM com.google.javascript.jscomp.LoggerErrorManager 
println
WARNING: /Users/ataggart/projects/clojurescript/out/cljs/core.js:3566: 
WARNING - dangerous use of the global this object
{return this.call(null,(args[0]),(args[1]));
        ^

Aug 7, 2011 12:45:34 AM com.google.javascript.jscomp.LoggerErrorManager 
printSummary
WARNING: 0 error(s), 2 warning(s)


Well, at least it sort of worked.

I know ClojureScript is very new and in active development, but it'd be 
better PR if one could at least get through the quick start.

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