Perl5 to Java compiler - week 100 - bootstrapping
It's been a 100 weeks since the Perl5 to Java compiler started.
The compiler is now "good enough" to translate itself to Java.
# grab a copy of the project
$ git clone git@github.com:fglock/Perlito.git ; cd Perlito
$ make clean
# create the "perlito5.java" file
$ perl perlito5.pl --bootstrapping -Isrc5/lib -Cjava src5/util/perlito5.pl > perlito5.java
# compile to ".class"
$ time javac -J-Xms2000m -J-Xmx2000m -J-Xss2000m -source 7 perlito5.java
[ scary warnings ]
# create the perlito5.jar file
$ jar -cfe perlito5.jar Main *.class
# quick check
$ java -jar perlito5.jar -v
This is Perlito5 9.021, an implementation of the Perl language.
# run a test
$ java -jar perlito5.jar --bootstrapping -Isrc5/lib -Cjava t5/unit/array.t > x.java ; javac -source 7 x.java ; java Main
[ scary warnings ]
1..35
ok 1 - create array
ok 2 - set element
...
# test the bootstrapping
$ java -jar perlito5.jar --bootstrapping -Isrc5/lib -Cjava src5/util/perlito5.pl > x.java
$ diff x.java perlito5.java
[ no differences ]
The "--bootstrapping" flag tells the compiler that eval-string is not available. Eval-string is not yet implemented.
it is completely crazy, but you deserve some big congratulations for such amazing things.
What dominix said. This is *fantastic*!
Congratulations!
Wow. Java is finally useful! Lol.
Seriously, though, I'd love to see a presentation on this. Kudos.