Clojure

Latest Clojure master doesn't build

Details

  • Type: Defect Defect
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Declined
  • Affects Version/s: Release 1.5
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None
  • Environment:
    Ubuntu 10.10 Maverick
    Java 1.6.0_20m OpenJDK (IcedTea6 1.9.13)

Description

Compile fails with the following error:

compile-clojure:
[java] Compiling clojure.core to /home/ezyang/Dev/clojure/target/classes
[java] Compiling clojure.core.protocols to /home/ezyang/Dev/clojure/target/classes
[java] Compiling clojure.core.reducers to /home/ezyang/Dev/clojure/target/classes
[java] Exception in thread "main" java.lang.ClassNotFoundException: jsr166y.ForkJoinPool, compiling:(clojure/core/reducers.clj:56)
[java] at clojure.lang.Compiler.analyzeSeq(Compiler.java:6462)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6262)
[java] at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6262)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6223)
[java] at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5618)
[java] at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5054)
[java] at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3674)
[java] at clojure.lang.Compiler.analyzeSeq(Compiler.java:6453)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6262)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6223)
[java] at clojure.lang.Compiler$NewExpr$Parser.parse(Compiler.java:2478)
[java] at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6262)
[java] at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6262)
[java] at clojure.lang.Compiler.access$100(Compiler.java:37)
[java] at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:518)
[java] at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6262)
[java] at clojure.lang.Compiler.analyze(Compiler.java:6223)
[java] at clojure.lang.Compiler.compile1(Compiler.java:7030)
[java] at clojure.lang.Compiler.compile1(Compiler.java:7025)
[java] at clojure.lang.Compiler.compile1(Compiler.java:7025)
[java] at clojure.lang.Compiler.compile(Compiler.java:7097)
[java] at clojure.lang.RT.compile(RT.java:387)
[java] at clojure.lang.RT.load(RT.java:427)
[java] at clojure.lang.RT.load(RT.java:400)
[java] at clojure.core$load$fn__4919.invoke(core.clj:5424)
[java] at clojure.core$load.doInvoke(core.clj:5423)
[java] at clojure.lang.RestFn.invoke(RestFn.java:408)
[java] at clojure.core$load_one.invoke(core.clj:5236)
[java] at clojure.core$compile$fn__4924.invoke(core.clj:5435)
[java] at clojure.core$compile.invoke(core.clj:5434)
[java] at clojure.lang.Var.invoke(Var.java:415)
[java] at clojure.lang.Compile.main(Compile.java:81)
[java] Caused by: java.lang.ClassNotFoundException: jsr166y.ForkJoinPool
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
[java] at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:61)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
[java] at java.lang.Class.forName0(Native Method)
[java] at java.lang.Class.forName(Class.java:264)
[java] at clojure.lang.RT.classForName(RT.java:2043)
[java] at clojure.lang.Compiler$HostExpr.maybeClass(Compiler.java:957)
[java] at clojure.lang.Compiler$HostExpr.access$400(Compiler.java:736)
[java] at clojure.lang.Compiler$NewExpr$Parser.parse(Compiler.java:2473)
[java] at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455)
[java] ... 35 more

Activity

Hide
Andy Fingerhut added a comment -

What command did you use?

From the error message, my guess is that you ran "ant" without first running "./antsetup.sh". If that is the case, run "./antsetup.sh" first. This is a new step added to readme.txt on May 7, 2012, because of the jsr166y.ForkJoinPool class used within Clojure to implement the new parallel reducers feature.

Show
Andy Fingerhut added a comment - What command did you use? From the error message, my guess is that you ran "ant" without first running "./antsetup.sh". If that is the case, run "./antsetup.sh" first. This is a new step added to readme.txt on May 7, 2012, because of the jsr166y.ForkJoinPool class used within Clojure to implement the new parallel reducers feature.
Hide
Edward Z. Yang added a comment -

Yep, that's exactly it. Can we setup ant to warn people if antsetup.sh hasn't been run?

Show
Edward Z. Yang added a comment - Yep, that's exactly it. Can we setup ant to warn people if antsetup.sh hasn't been run?
Hide
Andy Fingerhut added a comment -

I don't know. I suspect if it could be done and it were a straightforward modification, a patch for that would be accepted. I suspect those who created antsetup.sh would have simply modified the build.xml file for ant, and not created antsetup.sh at all, if it were easy to do so.

Show
Andy Fingerhut added a comment - I don't know. I suspect if it could be done and it were a straightforward modification, a patch for that would be accepted. I suspect those who created antsetup.sh would have simply modified the build.xml file for ant, and not created antsetup.sh at all, if it were easy to do so.
Hide
Roy Truelove added a comment -

It can be done with just the build.xml but requires the Maven Ant Tasks jar to be in the local ant's classpath, which is not ideal.

Because a local maven install is anyway required by antsetup.sh, IMHO it would be best to remove the ant build all together and stick with solely with a maven build, no?

Show
Roy Truelove added a comment - It can be done with just the build.xml but requires the Maven Ant Tasks jar to be in the local ant's classpath, which is not ideal. Because a local maven install is anyway required by antsetup.sh, IMHO it would be best to remove the ant build all together and stick with solely with a maven build, no?
Hide
Andy Fingerhut added a comment -

I can't find the email right now, but I believe in the past Rich Hickey has expressed a preference for continuing to have a way to build Clojure using ant.

Show
Andy Fingerhut added a comment - I can't find the email right now, but I believe in the past Rich Hickey has expressed a preference for continuing to have a way to build Clojure using ant.
Hide
Stuart Halloway added a comment -

Ant is there for the convenience of various dinosaurs, myself included. In general you should use the maven build, as that is what the CI and release process do.

Show
Stuart Halloway added a comment - Ant is there for the convenience of various dinosaurs, myself included. In general you should use the maven build, as that is what the CI and release process do.

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: