bug-kawa
[Top][All Lists]
Advanced

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

[Bug-kawa] [bug #40494] internal error on kawa -C bug.scm, 1.14 and head


From: Per Bothner
Subject: [Bug-kawa] [bug #40494] internal error on kawa -C bug.scm, 1.14 and head
Date: Sun, 10 Nov 2013 20:00:40 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36

Update of bug #40494 (project kawa):

                  Status:                    None => In Progress            
             Assigned to:                    None => bothner                

    _______________________________________________________

Follow-up Comment #2:

This one was tricky, and I've spent a fair amount of time on it.

The immediate problem is inlining function parameters that are lambda
expressions.  Specifically inlining of (lambda () (proc)) in bottom.  This
doesn't work because it needs the parameter to top - which is not inlined.

There is a hook to avoid inlining in this case - the call to
Compilation.avoidInline in InlineCalls.visitLambdaExp.  The problem is that
avoidInline checks proc.outer and for complicated reasons the begin causes
proc.outer to be a 'let'.  (This is wrong, but it ia fixed in a later pass.)

So I finally found a simple and clean fix in the macro-expansion for 'begin'. 
Unfortunately, it loses some line-number information, which caused a
regression in an error message in one of the tests.

So I ended up doing a major-rewrite of the data structure used for the
preliminary 'scan' phase.  The idea was good, but tracking down the various
bug in the change took a while.

I'm almost ready to check in the fix - I just need to create a test based on
your report.  If nothing goes wrong, sometime this afternoon.

    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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