From the Department of Insane Ideas: D on the JVM
Gregor Richards
Richards at codu.org
Wed Dec 13 06:16:32 PST 2006
Anders F Björklund wrote:
> Gregor Richards wrote:
>
>> Using NestedVM, a tool that lets you compile anything GCC supports to
>> Java bytecode, I've made a modified copy of GDC that can produce
>> native Java .class files from D source.
>>
>> What's the use? I don't know, I only did it to have a bit of perverse
>> fun.
>> Sockets and threads don't work yet, and it's not extensively tested,
>> but it works enough to get a simple Hello, World! compiled.
>
> Excellent hack! Will give it a try on Mac OS X, might even be useful. :)
>
> "NestedVM provides binary translation for Java Bytecode. This is done by
> having GCC compile to a MIPS binary which is then translated to a Java
> class file."
>
> "Entire virtual memory space mapped to a giant int[][] array indexed by
> page, then address. Breaking memory up by pages allows memory to be
> dynamically allocated."
>
> "Applications interact with the Operating System via the SYSCALL
> instruction. ... The syscall instruction is simply mapped to
> the syscall() method of the Runtime class."
>
> So it seems the only thing GDC needs is a "nestedvm" OS and "MIPS" CPU ?
>
> --anders
>
> PS. Quotes from http://www.zentus.com/nestedvm/ and their NestedVM.pdf
First off, for the skeptical: While all those quotes are true, it isn't
as bad as it seems. It compiles the actual code to Java bytecodes, so
it's not a virtual /execution/ environment, just virtual memory and a
virtual syscall handler.
OK, now on to what you actually asked:
I'll be documenting how to get it all compiled soon. It's unfortunately
a bit of a pain in the arse. Basically, you need to compile NestedVM
(with GCC <4), then compile a newer GCC with GDC and my patch, with the
same configure flags as those used for NestedVM.
G'luck if you want to try it before I put up a doc :)
- Gregor Richards
More information about the D.gnu
mailing list