bugKawa - Bugs: bug #11491, runtime exception while evaluating...

 
 

bug #11491: runtime exception while evaluating compiled syntax transformer

Submitter:  tk <huh>
Submitted:  Tue 04 Jan 2005 08:03:33 PM UTC
   
 
Category:  Code generation Severity:  3 - Normal
Item Group:  Run-time exception Status:  Fixed
Privacy:  Public Assigned to:  bothner
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Sun 09 Jan 2005 10:23:12 PM UTC, comment #3: 

The problem (surprise) was due to looking for a class using the wrong ClassLoader.

I checked in a fix.

Per Bothner <bothner>
Group administrator
Thu 06 Jan 2005 05:41:48 PM UTC, comment #2: 

here is code to reproduce the exception. one thing not noted in
the initial report is that this error only occurs if the syntax transformer
is compiled with module-static #t

;; file macs.scm:

(module-static #t)

(define-syntax dotimes
  (syntax-rules ()
    ((_ (var count . result) . body)
     (let iter ((var :: <int> 0))
       (when (< var count)
(begin . body)
(iter (+ var 1)))))))

;;; file foo.scm:
(define (foo n)
  (dotimes (i n)
    (display i)))

;; transcript:
$ CLASSPATH=../kawa-1.7.91.jar java kawa.repl
#|kawa:1|# (compile-file "macs.scm" "macs.zip")
#|kawa:2|# (load"macs.zip")
#|kawa:3|# (compile-file "foo.scm" "foo.zip")
java.lang.RuntimeException: no such class: atFileLevel
at gnu.bytecode.ObjectType.getReflectClass(ObjectType.java:74)
at kawa.standard.require.makeModule(require.java:397)
at gnu.expr.ModuleExp.firstDecl(ModuleExp.java:356)
at kawa.lang.Macro.getCapturedScope(Macro.java:26)
at kawa.lang.SyntaxTemplate.execute(SyntaxTemplate.java:416)
at kawa.lang.SyntaxRules.expand(SyntaxRules.java:250)
at kawa.lang.SyntaxRules.apply1(SyntaxRules.java:181)
at kawa.lang.Macro.expand(Macro.java:182)
at kawa.lang.Macro.scanForm(Macro.java:210)
at kawa.lang.Translator.scanForm(Translator.java:930)
at kawa.lang.Translator.scanBody(Translator.java:973)
at kawa.lang.Translator.rewrite_body(Translator.java:1006)
at kawa.lang.Lambda.rewriteBody(Lambda.java:533)
at kawa.standard.define.rewriteForm(define.java:140)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:307)
at kawa.lang.Translator.rewrite_with_position(Translator.java:846)
at kawa.lang.Translator.rewrite(Translator.java:630)
at kawa.lang.Translator.rewriteInBody(Translator.java:494)
at kawa.lang.Translator.rewriteBody(Translator.java:1042)
at kawa.lang.Translator.makeBody(Translator.java:1058)
at kawa.lang.Translator.finishModule(Translator.java:1172)
at gnu.kawa.lispexpr.LispInterpreter.parse(LispInterpreter.java:52)
at gnu.expr.Interpreter.parse(Interpreter.java:404)
at kawa.lang.CompileFile.read(CompileFile.java:38)
at kawa.lang.CompileFile.read(CompileFile.java:21)
at kawa.lib.system.compileFile(system.scm:84)
at kawa.lib.system.apply2(system.scm:81)
at gnu.expr.ModuleMethod.apply2(ModuleMethod.java:189)
at gnu.expr.ModuleMethod.apply(ModuleMethod.java:157)
at gnu.mapping.CallContext.runUntilDone(CallContext.java:240)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:247)
at kawa.Shell.run(Shell.java:231)
at kawa.Shell.run(Shell.java:177)
at kawa.Shell.run(Shell.java:164)
at kawa.Shell.run(Shell.java:151)
at kawa.repl.main(repl.java:672)
foo.scm:3:3: evaluating syntax transformer 'dotimes' threw java.lang.RuntimeException: no such class: atFileLevel

tk <huh>
Tue 04 Jan 2005 08:05:21 PM UTC, comment #1: 

i should have noted that this is for CVS version from 1/4/2005

tk <huh>
Tue 04 Jan 2005 08:03:33 PM UTC, original submission:  

runtime exception while evaluating compiled syntax transformer.

I haven't come up with  small self-contained test case yet; in the
meantime here's the stack trace. Error occurs only when the define-syntax
form has been compiled to a zip file -- if the define-syntax form is loaded
from the source file, no error. The exception occurs for any macro defined
with define-syntax (i.e. there's nothing peculiar about the push macro
in the example that follows.

I'll provide code that reproduces this asap.

thanks!!


java.lang.RuntimeException: no such class: atFileLevel
at gnu.bytecode.ObjectType.getReflectClass(ObjectType.java:74)
at kawa.standard.require.makeModule(require.java:397)
at gnu.expr.ModuleExp.firstDecl(ModuleExp.java:356)
at kawa.lang.Macro.getCapturedScope(Macro.java:26)
at kawa.lang.SyntaxTemplate.execute(SyntaxTemplate.java:416)
at kawa.lang.SyntaxRules.expand(SyntaxRules.java:250)
at kawa.lang.SyntaxRules.apply1(SyntaxRules.java:181)
at kawa.lang.Macro.expand(Macro.java:182)
at kawa.lang.Macro.scanForm(Macro.java:210)
at kawa.lang.Translator.scanForm(Translator.java:930)
at kawa.lang.Translator.scanBody(Translator.java:973)
at kawa.lang.Translator.rewrite_body(Translator.java:1006)
at kawa.standard.begin.rewrite(begin.java:16)
at kawa.lang.Syntax.rewriteForm(Syntax.java:59)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:338)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite(Translator.java:502)
at kawa.lang.SyntaxForm.rewrite(SyntaxForm.java:89)
at kawa.lib.prim_syntax.lambda1(prim_syntax.scm:54)
at kawa.lib.prim_syntax.apply1(prim_syntax.scm:51)
at gnu.expr.ModuleMethod.apply1(ModuleMethod.java:183)
at kawa.lang.Macro.expand(Macro.java:182)
at kawa.lang.Macro.scanForm(Macro.java:210)
at kawa.lang.Translator.scanForm(Translator.java:930)
at kawa.lang.Macro.scanForm(Macro.java:211)
at kawa.lang.Translator.scanForm(Translator.java:930)
at kawa.lang.Translator.scanBody(Translator.java:973)
at kawa.lang.Translator.rewrite_body(Translator.java:1006)
at kawa.lang.Lambda.rewriteBody(Lambda.java:533)
at kawa.lang.Lambda.rewrite(Lambda.java:53)
at kawa.lang.Lambda.rewrite(Lambda.java:35)
at kawa.lang.Syntax.rewriteForm(Syntax.java:59)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:338)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite(Translator.java:502)
at kawa.lang.Macro.rewriteForm(Macro.java:116)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite(Translator.java:502)
at kawa.lang.Macro.rewriteForm(Macro.java:116)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite(Translator.java:502)
at kawa.lang.Macro.rewriteForm(Macro.java:116)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite(Translator.java:502)
at kawa.lang.Macro.rewriteForm(Macro.java:116)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite_car(Translator.java:102)
at kawa.lang.Translator.rewrite_car(Translator.java:83)
at kawa.standard.set_b.rewriteForm(set_b.java:46)
at kawa.lang.AutoloadSyntax.rewriteForm(AutoloadSyntax.java:143)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:338)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewriteInBody(Translator.java:494)
at kawa.lang.Translator.rewriteBody(Translator.java:1051)
at kawa.lang.Translator.makeBody(Translator.java:1058)
at kawa.lang.Translator.rewrite_body(Translator.java:1017)
at kawa.standard.let.rewrite(let.java:131)
at kawa.lang.Syntax.rewriteForm(Syntax.java:59)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite(Translator.java:502)
at kawa.lang.Macro.rewriteForm(Macro.java:116)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite(Translator.java:502)
at kawa.lang.Macro.rewriteForm(Macro.java:116)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite(Translator.java:502)
at kawa.lang.Macro.rewriteForm(Macro.java:116)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewrite_with_position(Translator.java:848)
at kawa.lang.Translator.rewrite_car(Translator.java:100)
at kawa.lang.Translator.rewrite_pair(Translator.java:310)
at kawa.lang.Translator.rewrite_with_position(Translator.java:846)
at kawa.lang.Translator.rewrite(Translator.java:630)
at kawa.lang.Translator.rewriteInBody(Translator.java:494)
at kawa.lang.Translator.rewriteBody(Translator.java:1051)
at kawa.lang.Translator.makeBody(Translator.java:1058)
at kawa.lang.Translator.rewrite_body(Translator.java:1017)
at kawa.standard.let.rewrite(let.java:131)
at kawa.lang.Syntax.rewriteForm(Syntax.java:59)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:363)
at kawa.lang.Translator.rewrite_with_position(Translator.java:846)
at kawa.lang.Translator.rewrite(Translator.java:630)
at kawa.lang.Translator.rewriteInBody(Translator.java:494)
at kawa.lang.Translator.rewriteBody(Translator.java:1042)
at kawa.lang.Translator.makeBody(Translator.java:1058)
at kawa.lang.Translator.rewrite_body(Translator.java:1017)
at kawa.lang.Lambda.rewriteBody(Lambda.java:533)
at kawa.standard.define.rewriteForm(define.java:140)
at kawa.lang.Translator.apply_rewrite(Translator.java:121)
at kawa.lang.Translator.rewrite_pair(Translator.java:307)
at kawa.lang.Translator.rewrite(Translator.java:632)
at kawa.lang.Translator.rewriteInBody(Translator.java:494)
at kawa.lang.Translator.rewriteBody(Translator.java:1051)
at kawa.lang.Translator.makeBody(Translator.java:1058)
at kawa.lang.Translator.finishModule(Translator.java:1172)
at gnu.kawa.lispexpr.LispInterpreter.parse(LispInterpreter.java:52)
at gnu.expr.Interpreter.parse(Interpreter.java:404)
at kawa.lang.CompileFile.read(CompileFile.java:38)
at kawa.lang.CompileFile.read(CompileFile.java:21)
at kawa.lib.system.compileFile(system.scm:84)
at atInteractiveLevel$9.cll(dev.scm:56)
at atInteractiveLevel$9.apply1(dev.scm:52)
at gnu.expr.ModuleMethod.apply1(ModuleMethod.java:183)
at kawa.standard.map.map1(map.java:32)
at kawa.standard.map.applyN(map.java:70)
at gnu.mapping.Procedure.apply(Procedure.java:123)
at gnu.mapping.Procedure.apply(Procedure.java:115)
at gnu.mapping.CallContext.runUntilDone(CallContext.java:240)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:247)
at kawa.Shell.run(Shell.java:231)
at kawa.Shell.run(Shell.java:177)
at kawa.Shell.run(Shell.java:164)
at kawa.Shell.run(Shell.java:151)
at kawa.repl.main(repl.java:672)

reflect.scm:40:2: evaluating syntax transformer 'push' threw java.lang.RuntimeException: no such class: atFileLevel

tk <huh>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only logged-in users can vote.

 

Follow 4 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2005-01-09 bothner StatusNone Fixed
    Assigned toNone bothner
    Open/ClosedOpen Closed
2005-01-04 huh Carbon-Copy- Added tk --AT-- research --DOT-- att --DOT-- com

Back to the top

Powered by Savane 3.13-4b48.
Corresponding source code