This is the mail archive of the kawa@sources.redhat.com mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: kawa 1.6.98 problem


Per Bothner writes:
 > Dr. M. Luedde wrote:
 > > (define (f x)
 > >   (let ( (y 0) )
 > >     (let loop ()
 > >       (let () (if #f (loop)))
 > >       ;; uncomment below, then problem disappears.
 > >       ;;      '()
 > >       )
 > >     (set-cdr! x y)))
 > > 
 > > With `--full-tailcalls' this leads to a "java.lang.Error: attempting
 > > to push dead variable". Inserting the spurious empty list, as indicated, 
 > > removes the problem. 
 > 
 > I just tried it:
 > java kawa.repl --full-tailcalls -C /tmp/foo.scm
 > 
 > and it compiles without errror.

Right, we have

   D:\tmp> java kawa.repl --full-tailcalls -C d:/tmp/foo.scm
   (compiling d:/tmp/foo.scm)
   D:\tmp>

but on the other hand

  D:\tmp> java -classpath d:\Tools\kawa\kawa.jar kawa.repl --full-tailcalls
  #|kawa:1|# (load "d:/tmp/foo.scm")
  java.lang.Error: attempting to push dead variable
	at gnu.bytecode.CodeAttr.emitLoad(CodeAttr.java:1020)
	at gnu.expr.ApplyExp.compile(ApplyExp.java:333)
	at gnu.expr.ApplyExp.compile(ApplyExp.java:104)
	at gnu.expr.Expression.compileNotePosition(Expression.java:82)
	at gnu.expr.Expression.compileWithPosition(Expression.java:69)
	at gnu.expr.BeginExp.compile(BeginExp.java:80)
	at gnu.expr.Expression.compileWithPosition(Expression.java:72)
	at gnu.expr.LetExp.compile(LetExp.java:73)
	at gnu.expr.Expression.compileNotePosition(Expression.java:82)
	at gnu.expr.Expression.compileWithPosition(Expression.java:69)
	at gnu.expr.LambdaExp.compileBody(LambdaExp.java:1336)
	at gnu.expr.LambdaExp.compileAsMethod(LambdaExp.java:1308)
	at gnu.expr.LambdaExp.compileSetField(LambdaExp.java:520)
	at gnu.expr.SetExp.compile(SetExp.java:145)
	at gnu.expr.Expression.compileNotePosition(Expression.java:82)
	at gnu.expr.Expression.compileWithPosition(Expression.java:69)
	at gnu.expr.BeginExp.compile(BeginExp.java:80)
	at gnu.expr.Expression.compileWithPosition(Expression.java:72)
	at gnu.expr.LetExp.compile(LetExp.java:73)
	at gnu.expr.Expression.compileWithPosition(Expression.java:72)
	at gnu.expr.LambdaExp.compileBody(LambdaExp.java:1336)
	at gnu.expr.Compilation.addClass(Compilation.java:1303)
	at gnu.expr.Compilation.<init>(Compilation.java:742)
	at gnu.expr.ModuleExp.evalToClass(ModuleExp.java:75)
	at gnu.expr.ModuleExp.eval(ModuleExp.java:43)
	at gnu.expr.ModuleExp.evalModule(ModuleExp.java:185)
	at kawa.Shell.run(Shell.java:231)
	at kawa.standard.load.loadSource(load.java:134)
	at kawa.standard.load.loadSource(load.java:103)
	at kawa.standard.load.apply(load.java:196)
	at kawa.standard.load.apply2(load.java:172)
	at kawa.standard.load.apply1(load.java:162)
	at gnu.mapping.Procedure1.applyN(Procedure1.java:49)
	at gnu.mapping.Procedure.apply(Procedure.java:102)
	at gnu.mapping.CallContext.runUntilDone(CallContext.java:239)
	at gnu.expr.ModuleExp.evalModule(ModuleExp.java:189)
	at kawa.Shell.run(Shell.java:231)
	at kawa.Shell.run(Shell.java:180)
	at kawa.Shell.run(Shell.java:167)
	at kawa.Shell.run(Shell.java:154)
	at kawa.repl.main(repl.java:561)
  #|kawa:2|# 

The same happens when you type in the definition verbatim at the kawa
interpreter prompt.

Regards, Mirko. 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]