On 10/6/15 11:28 PM, Ingo W. wrote:
> There is also a recipe for making a Frege compiler that produces Java6 code. It is probable that this recipe doesn't work anymore, but it is certainly possible to make it work again. I stand ready to answer technical questions regarding this.
I thought I'd give this a try and see how far I could get. I used
3.23.888 as a starting point, because I thought that might be more
stable than master. Here is what I've done so far:
https://github.com/ppelleti/frege/tree/3.23.888-java6
There were some easy changes to Runtime.java6, but I've gotten stuck on
Concurrent.java6. I stubbed out executorService() and
setFregeExecutorService(), but apparently this isn't good enough. I now
get:
Looks good .... let us try to make the tools and library ...
grep -v ForkJoin frege/StandardLibrary.fr >save/StandardLibrary.fr
java "-Dfrege.javac=internal" -Xmx1g -Xss4m -Dfrege.javac="javac -source
1.6 -target 1.6" -jar fregec6.jar -d build6 -nocp -fp build6 -make \
frege/StandardTools.fr save/StandardLibrary.fr
Exception in thread "main" java.lang.NullPointerException
at
frege.java.util.Concurrent$TExecutorService$5.eval(Concurrent.java:534)
at
frege.java.util.Concurrent$TExecutorService$5.eval(Concurrent.java:531)
at frege.runtime.Fun1$1.eval(Fun1.java:63)
at frege.runtime.Delayed.call(Delayed.java:200)
at frege.runtime.Delayed.forced(Delayed.java:257)
at frege.compiler.Main$1Fasync$28181$1$1$2.eval(Main.java:7038)
at frege.compiler.Main$1Fasync$28181$1$1$2.eval(Main.java:7035)
at frege.runtime.Fun1$1.eval(Fun1.java:63)
at frege.runtime.Delayed.call(Delayed.java:198)
at frege.runtime.Delayed.forced(Delayed.java:267)
at frege.compiler.Main$1Fasync$28181$1$1.eval(Main.java:7066)
at frege.compiler.Main$1Fasync$28181$1$1.eval(Main.java:6990)
at frege.runtime.Fun1$1.eval(Fun1.java:63)
at frege.runtime.Delayed.call(Delayed.java:200)
at frege.runtime.Delayed.forced(Delayed.java:257)
at frege.prelude.PreludeBase$TST$1.eval(PreludeBase.java:12446)
at frege.runtime.Fun1$1.eval(Fun1.java:63)
at frege.runtime.Delayed.call(Delayed.java:200)
at frege.runtime.Delayed.forced(Delayed.java:267)
at frege.compiler.Main$39$2.eval(Main.java:7447)
at frege.compiler.Main$39$2.eval(Main.java:7444)
at frege.runtime.Fun1$1.eval(Fun1.java:63)
at frege.runtime.Delayed.call(Delayed.java:198)
at frege.runtime.Delayed.forced(Delayed.java:267)
at frege.compiler.Main$41$2.eval(Main.java:8287)
at frege.compiler.Main$41$2.eval(Main.java:8176)
at frege.runtime.Fun1$1.eval(Fun1.java:63)
at frege.runtime.Delayed.call(Delayed.java:198)
at frege.runtime.Delayed.forced(Delayed.java:267)
at frege.compiler.Main$42.eval(Main.java:8433)
at frege.runtime.Fun1$1.eval(Fun1.java:63)
at frege.runtime.Delayed.call(Delayed.java:198)
at frege.runtime.Runtime.runMain(Runtime.java:236)
at frege.compiler.Main.main(Main.java:9411)
make: *** [fregec6.jar] Error 1
So it appears that the compiler itself needs executorService() in order
to run. Any thoughts on how I should go about fixing this?
Thanks,
--Patrick