[Haskell-cafe] A Java bytecode interpreter written in Haskell

Erik Dominikus erik.dominikus71 at gmail.com
Wed May 25 17:21:54 UTC 2016


Yes, it does it "live". No compilation, just interpretation.

Honestly, there was no strong reason for me to make a JVM, and I don't
have a plan. I just needed some ego boost over my fellow programmers.
So yes, it was just an involved and commendable exercise. You saw
through me... LOL...

(But it's licensed under BSD3 in case someone finds something
interesting to do.)


Interesting idea. Yes, in principle we could implement a JVM where all
java.lang.Thread instances are green threads, and all IO operations
are nonblocking, just like GHC runtime, and this will allow Java
programmers to write code in the easiest way (just new Thread()
everywhere) without performance penalty.

On Wed, May 25, 2016 at 3:25 PM, Victor Nazarov
<asviraspossible at gmail.com> wrote:
> On Tue, May 24, 2016 at 8:43 PM, Erik Dominikus <erik.dominikus71 at gmail.com>
> wrote:
>> (Please keep expectations low for now; this is just a weekend project.)
>> I have written, in Haskell, something that aspires to be a Java
>> Virtual Machine (but I don't call it a JVM yet as it doesn't fully
>> comply with the spec). The code is available here:
>> https://github.com/edom/haji
>> This is similar to Frege [3], but while Frege aims to run a variant of
>> Haskell on Java, this project tries the other direction: running a
>> subset of Java on Haskell.
> I think it can be really interesting for Java community if you implement
> Java-runtime directly the same way GHC-runtime is implemented, i.e.
> Java-threads as GHC's IO-threads (i. e. green threads) and Java-I/O as GHC's
> input-output (which is asynchronous internally to support green-threading
> model).
> --
> Victor Nazarov
>> Some related stuffs:
>> [1] https://github.com/MateVM/MateVM
>> [2] https://hackage.haskell.org/package/hs-java
>> [3] https://github.com/Frege/frege
>> [4]
>> https://wiki.haskell.org/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F
>> [5] https://github.com/levans/Open-Quark
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list