<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 25, 2016 at 8:21 PM, Erik Dominikus <span dir="ltr"><<a href="mailto:erik.dominikus71@gmail.com" target="_blank">erik.dominikus71@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">@Victor<br>
<br>
Interesting idea. Yes, in principle we could implement a JVM where all<br>
java.lang.Thread instances are green threads, and all IO operations<br>
are nonblocking, just like GHC runtime, and this will allow Java<br>
programmers to write code in the easiest way (just new Thread()<br>
everywhere) without performance penalty.<br>
<div class=""><div class="h5"><br></div></div></blockquote><div><br></div><div>Exactly. I don't know if it is really feasible, though.</div><div>There is already Quasar[1] project for Java, but it has it's limits since it work by bytecode preprocessing.</div><div>Streaght forward JVM with green threads should be cool.</div><div><br></div><div>[1] <a href="http://www.paralleluniverse.co/quasar/">http://www.paralleluniverse.co/quasar/</a></div><div><br></div><div>--<br clear="all"><div><div class="gmail_signature">Victor Nazarov</div></div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div class=""><div class="h5">
On Wed, May 25, 2016 at 3:25 PM, Victor Nazarov<br>
<<a href="mailto:asviraspossible@gmail.com">asviraspossible@gmail.com</a>> wrote:<br>
> On Tue, May 24, 2016 at 8:43 PM, Erik Dominikus <<a href="mailto:erik.dominikus71@gmail.com">erik.dominikus71@gmail.com</a>><br>
> wrote:<br>
>><br>
>> (Please keep expectations low for now; this is just a weekend project.)<br>
>><br>
>> I have written, in Haskell, something that aspires to be a Java<br>
>> Virtual Machine (but I don't call it a JVM yet as it doesn't fully<br>
>> comply with the spec). The code is available here:<br>
>><br>
>> <a href="https://github.com/edom/haji" rel="noreferrer" target="_blank">https://github.com/edom/haji</a><br>
>><br>
>> This is similar to Frege [3], but while Frege aims to run a variant of<br>
>> Haskell on Java, this project tries the other direction: running a<br>
>> subset of Java on Haskell.<br>
>><br>
><br>
> I think it can be really interesting for Java community if you implement<br>
> Java-runtime directly the same way GHC-runtime is implemented, i.e.<br>
> Java-threads as GHC's IO-threads (i. e. green threads) and Java-I/O as GHC's<br>
> input-output (which is asynchronous internally to support green-threading<br>
> model).<br>
><br>
> --<br>
> Victor Nazarov<br>
>><br>
>><br>
>> Some related stuffs:<br>
>><br>
>> [1] <a href="https://github.com/MateVM/MateVM" rel="noreferrer" target="_blank">https://github.com/MateVM/MateVM</a><br>
>> [2] <a href="https://hackage.haskell.org/package/hs-java" rel="noreferrer" target="_blank">https://hackage.haskell.org/package/hs-java</a><br>
>> [3] <a href="https://github.com/Frege/frege" rel="noreferrer" target="_blank">https://github.com/Frege/frege</a><br>
>> [4]<br>
>> <a href="https://wiki.haskell.org/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F" rel="noreferrer" target="_blank">https://wiki.haskell.org/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F</a><br>
>> [5] <a href="https://github.com/levans/Open-Quark" rel="noreferrer" target="_blank">https://github.com/levans/Open-Quark</a><br>
>> _______________________________________________<br>
>> Haskell-Cafe mailing list<br>
>> <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
><br>
><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div></div>