bugKawa - Bugs: bug #36592, nested map causes compiler inliner...

 
 

bug #36592: nested map causes compiler inliner NPE

Submitted by:  tk <huh>
Submitted on:  Tue 05 Jun 2012 10:57:26 AM UTC  
 
Category: Code generationSeverity: 3 - Normal
Item Group: Compile-time exceptionStatus: Fixed
Privacy: PublicAssigned to: Per Bothner <bothner>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Mon 11 Jun 2012 03:45:09 AM UTC, comment #1:

Fix and test-case checked in. Thanks!

Per Bothner <bothner>
Project AdministratorIn charge of this item.
Tue 05 Jun 2012 10:57:26 AM UTC, original submission:

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)

tk <huh>

 

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

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by bothner (Posted a comment)
  • -unavailable- added by huh (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Mon 11 Jun 2012 03:45:09 AM UTCbothnerStatusNone=>Fixed
      Assigned toNone=>bothner
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1