This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
a couple more bugs
- To: kawa at sourceware dot cygnus dot com
- Subject: a couple more bugs
- From: Doug Orleans <dougo at ccs dot neu dot edu>
- Date: Fri, 23 Mar 2001 01:33:15 -0500 (EST)
Mutating a "rest" argument gives a warning:
#|kawa:7|# (define (f . args) (set! args #f) args)
<stdin>:7:21: warning - cannot convert literal (of type java.lang.Boolean) to gnu.kawa.util.LList
(SLIB's comlist:make-list tickles this bug.)
Also, I was trying to see if Kawa recognized the "transformer" version
of low-level macros-- this gives an understandable error:
#|kawa:1|# (define-syntax foo (transformer #f))
gnu.mapping.UnboundSymbol: Unbound symbol transformer
at gnu.mapping.Environment.getChecked(Environment.java:223)
at kawa.standard.ScmEnv.getChecked(ScmEnv.java:37)
at gnu.expr.ReferenceExp.eval(ReferenceExp.java:84)
at gnu.expr.ApplyExp.eval(ApplyExp.java:33)
at gnu.expr.ApplyExp.eval(ApplyExp.java:37)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:38)
at kawa.Shell.run(Shell.java:85)
at kawa.Shell.run(Shell.java:35)
at kawa.Shell.run(Shell.java:19)
at kawa.repl.main(repl.java:356)
But this crashes Kawa:
#|kawa:2|# (define-syntax foo (transformer (lambda () #f)))
Exception in thread "main" java.lang.ClassFormatError: atInteractiveLevel (Illegal constant pool index)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.lang.ClassLoader.defineClass(ClassLoader.java:426)
at gnu.bytecode.ArrayClassLoader.loadClass(ArrayClassLoader.java:97)
at gnu.expr.LambdaExp.evalToClass(LambdaExp.java:1327)
at gnu.expr.LambdaExp.eval(LambdaExp.java:1371)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:39)
at kawa.Shell.run(Shell.java:85)
at kawa.Shell.run(Shell.java:35)
at kawa.Shell.run(Shell.java:19)
at kawa.repl.main(repl.java:356)
--dougo@ccs.neu.edu