[slime-devel] problems with kawa + slime

Sampo Vuori sampo.vuori at gmail.com
Tue Dec 9 07:30:29 UTC 2008


Hi,

It's great to see some support for kawa in slime.. I wanted to give it
a go today but ran in a few showstoppers. With the latest kawa
compiler I ran into an error which might be a compiler bug, when
issuing the compile command:
(compile-file "swank-kawa.scm" "swank-kawa") I get a stack trace:

java.lang.Error: popType called with empty stack
swank$Mnkawa.dispatchEvents(java.net.Socket)java.lang.Object
       at gnu.bytecode.CodeAttr.popType(CodeAttr.java:321)
       at gnu.bytecode.CodeAttr.emitStore(CodeAttr.java:1204)
       at gnu.expr.SetExp.compile(SetExp.java:279)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileWithPosition(Expression.java:133)
       at gnu.expr.IfExp.compile(IfExp.java:105)
       at gnu.expr.IfExp.compile(IfExp.java:41)
       at gnu.expr.Expression.compileWithPosition(Expression.java:133)
       at gnu.expr.BeginExp.compile(BeginExp.java:142)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compile(Expression.java:179)
       at gnu.expr.SetExp.compile(SetExp.java:273)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileWithPosition(Expression.java:133)
       at gnu.expr.IfExp.compile(IfExp.java:105)
       at gnu.expr.IfExp.compile(IfExp.java:41)
       at gnu.expr.Expression.compileWithPosition(Expression.java:133)
       at gnu.expr.BeginExp.compile(BeginExp.java:142)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compile(Expression.java:179)
       at gnu.expr.SetExp.compile(SetExp.java:273)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileWithPosition(Expression.java:133)
       at gnu.expr.IfExp.compile(IfExp.java:105)
       at gnu.expr.IfExp.compile(IfExp.java:41)
       at gnu.expr.Expression.compileWithPosition(Expression.java:133)
       at gnu.expr.BeginExp.compile(BeginExp.java:142)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compile(Expression.java:179)
       at gnu.expr.SetExp.compile(SetExp.java:273)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileWithPosition(Expression.java:133)
       at gnu.expr.IfExp.compile(IfExp.java:105)
       at gnu.expr.IfExp.compile(IfExp.java:41)
       at gnu.expr.Expression.compileWithPosition(Expression.java:133)
       at gnu.expr.BeginExp.compile(BeginExp.java:142)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.expr.LetExp.compile(LetExp.java:190)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:145)
       at gnu.expr.LambdaExp.compileBody(LambdaExp.java:1600)
       at gnu.expr.LambdaExp.compileAsMethod(LambdaExp.java:1577)
       at gnu.expr.LambdaExp.compileSetField(LambdaExp.java:640)
       at gnu.expr.LambdaExp.compile(LambdaExp.java:732)
       at gnu.expr.Expression.compile(Expression.java:179)
       at gnu.expr.SetExp.compile(SetExp.java:273)
       at gnu.expr.Expression.compileNotePosition(Expression.java:159)
       at gnu.expr.Expression.compileWithPosition(Expression.java:130)
       at gnu.kawa.functions.AppendValues.compile(AppendValues.java:51)
       at gnu.expr.ApplyExp.compile(ApplyExp.java:171)
       at gnu.expr.ApplyExp.compile(ApplyExp.java:110)
       at gnu.expr.Expression.compileWithPosition(Expression.java:148)
       at gnu.expr.LambdaExp.compileBody(LambdaExp.java:1600)
       at gnu.expr.Compilation.generateBytecode(Compilation.java:2010)
       at gnu.expr.Compilation.process(Compilation.java:1884)
       at gnu.expr.Compilation.compileToArchive(Compilation.java:988)
       at kawa.lib.system.compileFile(system.scm:93)
       at atInteractiveLevel$1.run(stdin)
       at gnu.expr.ModuleExp.evalModule(ModuleExp.java:293)
       at kawa.Shell.run(Shell.java:273)
       at kawa.Shell.run(Shell.java:184)
       at kawa.Shell.run(Shell.java:165)
       at kawa.repl.main(repl.java:864)

After going back a few versions (to revision 6150) the swank-kawa
compiles but I get the following error when starting slime in emacs:

#|kawa:2|# connection: Socket[addr=/127.0.0.1,port=50431,localport=50430]
listener: Thread[swank-listener,5,main] 1867624887 chan at 11711970
#<environment user>
attaching: -n 10332 20
attaching2: com.sun.jdi.ProcessAttach (defaults: pid=, timeout=)
{pid=pid=-n 10332, timeout=timeout=20}
closing socket: ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=50430]
Exception in thread "swank" java.lang.Error: mcase failed tmp
(chan at 1c4a1bda
 (error "java.io.IOException: Invalid process identifier" "IOException"
 ("com.sun.tools.jdi.ProcessAttachingConnector.attach(ProcessAttachingConnector.java:86)"
  "swank$Mnkawa.attach(swank-kawa.scm:1566)"
  "swank$Mnkawa.vmAttach(swank-kawa.scm:1551)"
  "swank$Mnkawa.vmMonitor(swank-kawa.scm:1157)"
  "swank$Mnkawa.apply1(swank-kawa.scm:1155)"
  "gnu.expr.ModuleBody.applyN(ModuleBody.java:207)"
  "swank$Mnkawa.applyN(swank-kawa.scm:1972)"
  "gnu.expr.ModuleMethod.applyN(ModuleMethod.java:213)"
  "gnu.kawa.functions.ApplyToArgs.applyN(ApplyToArgs.java:214)"
  "gnu.mapping.ProcedureN.apply2(ProcedureN.java:39)"
  "swank$Mnkawa$frame33.lambda56(swank-kawa.scm:1789)"
  "swank$Mnkawa$frame33.apply1(swank-kawa.scm:1787)"
  "gnu.expr.ModuleBody.applyN(ModuleBody.java:207)"
  "gnu.expr.ModuleMethod.applyN(ModuleMethod.java:213)"
  "gnu.kawa.functions.ApplyToArgs.applyN(ApplyToArgs.java:214)"
  "gnu.mapping.ProcedureN.apply2(ProcedureN.java:39)"
  "swank$Mnkawa$frame32.lambda55(swank-kawa.scm:1780)"
  "swank$Mnkawa$frame32.apply0(swank-kawa.scm:1780)"
  "gnu.expr.ModuleMethod.apply0(ModuleMethod.java:183)"
  "runnable.run(swank-kawa.scm:1802)"
  "java.lang.Thread.run(Thread.java:637)")))
       at swank$Mnkawa.ferror$V(swank-kawa.scm:870)
       at swank$Mnkawa.dispatchEvents(swank-kawa.scm:367)
       at swank$Mnkawa.setupServer(swank-kawa.scm:323)
       at swank$Mnkawa$frame.lambda2(swank-kawa.scm:315)
       at swank$Mnkawa$frame.apply0(swank-kawa.scm:315)
       at gnu.expr.ModuleMethod.apply0(ModuleMethod.java:183)
       at runnable.run(swank-kawa.scm:1802)
       at java.lang.Thread.run(Thread.java:637)

Any ideas how to fix these? (Running on OS X Leopard, Java 1.6.0_07)
Thanks in advance

- Sampo




More information about the slime-devel mailing list