Mono uses a conservative GC, so may be they just don't notice that IRAF is garbage. On .NET ikvm runs fine: C:\>ikvm IRAF foo java.lang.SecurityException: Operation not allowed at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkWrite(Unknown Source) at java.io.RandomAccessFile.<init>(Unknown Source) at java.io.RandomAccessFile.<init>(Unknown Source) at IRAF.main(Unknown Source) at IRAF.main(Unknown Source) java.lang.NullPointerException at java.io.RandomAccessFile.write(Unknown Source) at IRAF.main(Unknown Source) at IRAF.main(Unknown Source)
Another interesting trick with the finalizer is creating instances of classes that have a private constructor! The attached runtime.j creates an instance of (a subclass of) java.lang.Runtime. Doesn't work on ikvm, because it ignores "new" without a corresponding call to the constructor. It could be considered a bug in Sun's verifier that it allows a class without a constructor, what do the other VMs do with this code? Regards, Jeroen > > > -----Original Message----- > From: Mark Wielaard [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 05, 2003 00:07 > To: Jeroen Frijters > Cc: [EMAIL PROTECTED] > > Hi, > > Forgot the most important one for sure: > > $ mono --noinline --share-code bin/ikvm.exe IRAF testfile > java.lang.SecurityException: Operation not allowed > at java.lang.SecurityManager.checkPermission(<unknown>) > at java.lang.SecurityManager.checkWrite(<unknown>) > at java.io.RandomAccessFile.<init>(<unknown>) > at java.io.RandomAccessFile.<init>(<unknown>) > at IRAF.main(<unknown>) > at IRAF.main(<unknown>) > Killed > > Note that it is killed because it rapidly eats up all memory in the > system. > > Cheers, > > Mark > >
runtime.j
Description: runtime.j
runtime.class
Description: runtime.class
_______________________________________________ Classpath mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/classpath