[e-lang] E-on-Java works with recent gcj

Mark S. Miller markm at cs.jhu.edu
Sat Aug 12 19:29:54 EDT 2006


Toby Murray wrote:
> A little while ago,  Eric Northup wrote about his experience with gcj to 
> compile a native version of E.
> (see http://www.eros-os.org/pipermail/e-lang/2006-June/011318.html)
> I've recently been trying to reproduce his results and include some 
> findings below.

Thanks Toby, I'm really glad to see this.


> [As a side note, I would recommend either removing the "*** This page to 
> be rewritten" note on the Download page, or rewriting the page for good. 
>>From memory, that note has been there for quite some time and tends to 
> give the impression that development might have stalled, although I know 
> it hasn't.]

Good point. This note was on many pages, and was therefore not communicating 
anything useful. At the next website update, it'll be gone.


> First I had to make the same change to SWTRunner.java as Eric.
> 
> Eric Northup wrote:
> 
>> I had to make a few changes to E's java source to get things to build.
>>
>> diff -ru src/jsrc/org/erights/e/ui/swt/SWTRunner.java
>> [...]
>> -//     System.setProperty("e.swtRevision", ""+Library.getRevision());
>> +// XXX doesn't work on gcj
>> +//     System.setProperty("e.swtRevision", ""+Library.getRevision());

Btw, this change is already incorporated in 0.8.37a and in the current SVN head.


> Essentially, I was able to get the 'org.erights.e.elang.interp.MetaRune' 
> binary to run from the source directory by doing something like this (in 
> bash):
> CLASSPATH=$PWD/bin/resource:$PWD/BUILD/class:$PWD/esrc 
> ./org.erights.e.elang.interp.MetaRune --rune

Wonderful, thanks!


> I'd love to hear of anyone else's experience with this. Would be great 
> to see a native rune binary up and running properly.

Tyler recently told me about a useful java feature I didn't know. In a jar 
file manifest, you can put a directive "Class-Path: ...". When the jar file 
itself is launched, it will include the specified class on the class path. Is 
there any corresponding way to build a gcj executable that knows what it's 
supposed to use as a class path?

-- 
Text by me above is hereby placed in the public domain

     Cheers,
     --MarkM



More information about the e-lang mailing list