Kawa 1.6.98/1.6.99 compiler bug?

Per Bothner per@bothner.com
Fri Dec 20 10:36:00 GMT 2002


Tom Shields wrote:

>   <unknown>:0: Literals: Internal error:java.lang.Error:  
> gnu.expr.PrimProcedure does not implement Externalizable
>   java.lang.Error: gnu.expr.PrimProcedure does not implement Externalizable
>           at gnu.expr.LitTable.error(LitTable.java:82)
>           at gnu.expr.LitTable.writeObject(LitTable.java:217)
>           at gnu.expr.LitTable.emit(LitTable.java:45)
>           at gnu.expr.Compilation.emitLiterals(Compilation.java:414)
>           at gnu.expr.Compilation.addClass(Compilation.java:1348)
>           at gnu.expr.Compilation.<init>(Compilation.java:740)
>           at gnu.expr.ModuleExp.compileToFiles(ModuleExp.java:277)
>           at kawa.lang.CompileFile.compile_to_files(CompileFile.java:91)
>           at kawa.repl.processArgs(repl.java:389)
>           at kawa.repl.main(repl.java:584)
> ...
> I suppose that the easiest option is to ask if someone can provide me 
> with a copy of Kawa 1.6.57 ... but maybe someone can figure out how fix 
> the compiler bug as well.

I don't remember exactly how/when this broke.  Fixing it hasn't been
a priority, as the primitive-virtual-method syntax is now mostly
deprecated.  I now recommend the 'invoke' form (combined with type
specification of variable to allow teh compiler to select the correct
method at compile-time).

However, fixing this problem should easy.  Basically, you need to make
sure that gnu.expr.PrimProcedure implements Externalizable, which
means implementing readObject/writeObject methods.  That will require
gnu.bytecode.Method and probably also gnu.kawa.lispexprLangPrimType
to also implement Externalizable.  This should straight-forward.
-- 
	--Per Bothner
per@bothner.com   http://www.bothner.com/per/



More information about the Kawa mailing list