bug-kawa
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-kawa] [bug #36592] nested map causes compiler inliner NPE


From: tk
Subject: [Bug-kawa] [bug #36592] nested map causes compiler inliner NPE
Date: Tue, 05 Jun 2012 10:57:27 +0000
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1160.0 Safari/537.1

URL:
  <http://savannah.gnu.org/bugs/?36592>

                 Summary: nested map causes compiler inliner NPE
                 Project: Kawa
            Submitted by: huh
            Submitted on: Tue 05 Jun 2012 10:57:26 AM GMT
                Category: Code generation
                Severity: 3 - Normal
              Item Group: Compile-time exception
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

nested calls to map with lambda expression cause exception when compiler
attempts to inline inner expression
(Kawa 1.12.1 (revision 7245M))

#|kawa:1|# (map (lambda (x) x) (map (lambda (x) x) '(1 2 3)))
/dev/stdin:1:21: caught exception in inliner for #<procedure map> -
java.lang.NullPointerException
    gnu.expr.InlineCalls.visit(InlineCalls.java:50)
    gnu.expr.InlineCalls.visitLetExp(InlineCalls.java:537)
    gnu.expr.InlineCalls.visitLetExp(InlineCalls.java:36)
    gnu.expr.LetExp.visit(LetExp.java:204)
    gnu.expr.ExpVisitor.visit(ExpVisitor.java:57)
    gnu.expr.InlineCalls.visit(InlineCalls.java:52)
    gnu.expr.InlineCalls.visitApplyExp(InlineCalls.java:135)
    gnu.expr.InlineCalls.visitApplyExp(InlineCalls.java:36)
    gnu.expr.ApplyExp.visit(ApplyExp.java:436)
    gnu.expr.ExpVisitor.visit(ExpVisitor.java:57)
    gnu.expr.InlineCalls.visit(InlineCalls.java:52)
    gnu.expr.QuoteExp.validateApply(QuoteExp.java:165)
    gnu.expr.InlineCalls.visitApplyExp(InlineCalls.java:139)
    gnu.expr.InlineCalls.visitApplyExp(InlineCalls.java:36)
    gnu.expr.ApplyExp.visit(ApplyExp.java:436)
    gnu.expr.ExpVisitor.visit(ExpVisitor.java:57)
    gnu.expr.InlineCalls.visit(InlineCalls.java:52)
    gnu.expr.InlineCalls.visit(InlineCalls.java:36)
    gnu.expr.ExpVisitor.visitAndUpdate(ExpVisitor.java:143)
    gnu.expr.ExpVisitor.visitExps(ExpVisitor.java:157)
    gnu.expr.ApplyExp.visitArgs(ApplyExp.java:441)
    gnu.expr.LambdaExp.validateApply(LambdaExp.java:1788)
    gnu.expr.ReferenceExp.validateApply(ReferenceExp.java:197)
    gnu.expr.InlineCalls.visitApplyOnly(InlineCalls.java:162)
    gnu.kawa.functions.CompileMisc.validateApplyMap(CompileMisc.java:725)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    gnu.expr.InlineCalls.maybeInline(InlineCalls.java:852)
    gnu.expr.QuoteExp.validateApply(QuoteExp.java:153)
    gnu.expr.ReferenceExp.validateApply(ReferenceExp.java:197)
    gnu.expr.InlineCalls.visitApplyExp(InlineCalls.java:139)
    gnu.expr.InlineCalls.visitApplyExp(InlineCalls.java:36)
    gnu.expr.ApplyExp.visit(ApplyExp.java:436)
    gnu.expr.ExpVisitor.visit(ExpVisitor.java:53)
    gnu.expr.InlineCalls.visit(InlineCalls.java:52)
    gnu.expr.InlineCalls.visit(InlineCalls.java:36)
    gnu.expr.ExpVisitor.visitAndUpdate(ExpVisitor.java:143)
    gnu.expr.ExpVisitor.visitExps(ExpVisitor.java:157)
    gnu.expr.ApplyExp.visitArgs(ApplyExp.java:441)
    gnu.expr.LambdaExp.validateApply(LambdaExp.java:1788)
    gnu.expr.ReferenceExp.validateApply(ReferenceExp.java:197)
    gnu.expr.InlineCalls.visitApplyOnly(InlineCalls.java:162)
    gnu.kawa.functions.CompileMisc.validateApplyMap(CompileMisc.java:744)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    gnu.expr.InlineCalls.maybeInline(InlineCalls.java:852)
    gnu.expr.QuoteExp.validateApply(QuoteExp.java:153)
    gnu.expr.ReferenceExp.validateApply(ReferenceExp.java:197)
   
gnu.kawa.functions.CompilationHelpers.validateApplyToArgs(CompilationHelpers.java:73)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    gnu.expr.InlineCalls.maybeInline(InlineCalls.java:852)
    gnu.expr.QuoteExp.validateApply(QuoteExp.java:153)
    gnu.expr.ReferenceExp.validateApply(ReferenceExp.java:197)
    gnu.expr.InlineCalls.visitApplyExp(InlineCalls.java:139)
    gnu.expr.InlineCalls.visitApplyExp(InlineCalls.java:36)
    gnu.expr.ApplyExp.visit(ApplyExp.java:436)
    gnu.expr.ExpVisitor.visit(ExpVisitor.java:53)
    gnu.expr.InlineCalls.visit(InlineCalls.java:52)
    gnu.expr.InlineCalls.visit(InlineCalls.java:36)
    gnu.expr.LambdaExp.visitChildrenOnly(LambdaExp.java:1715)
    gnu.expr.LambdaExp.visitChildren(LambdaExp.java:1702)
    gnu.expr.InlineCalls.visitScopeExp(InlineCalls.java:444)
    gnu.expr.InlineCalls.visitLambdaExp(InlineCalls.java:644)
    gnu.expr.InlineCalls.visitLambdaExp(InlineCalls.java:36)
    gnu.expr.ExpVisitor.visitModuleExp(ExpVisitor.java:105)
    gnu.expr.InlineCalls.visitModuleExp(InlineCalls.java:492)
    gnu.expr.InlineCalls.visitModuleExp(InlineCalls.java:36)
    gnu.expr.ModuleExp.visit(ModuleExp.java:462)
    gnu.expr.ExpVisitor.visit(ExpVisitor.java:53)
    gnu.expr.InlineCalls.visit(InlineCalls.java:52)
    gnu.expr.InlineCalls.inlineCalls(InlineCalls.java:40)
    gnu.expr.Compilation.walkModule(Compilation.java:959)
    gnu.expr.Compilation.process(Compilation.java:1933)
    gnu.expr.ModuleInfo.loadByStages(ModuleInfo.java:305)
    gnu.expr.ModuleExp.evalModule1(ModuleExp.java:223)
    gnu.expr.ModuleExp.evalModule(ModuleExp.java:195)
    kawa.Shell.run(Shell.java:279)
    kawa.Shell.run(Shell.java:194)
    kawa.Shell.run(Shell.java:175)
    kawa.repl.main(repl.java:957)




    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?36592>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]