GSOC | Extending Common Lisp support
Per Bothner
per@bothner.com
Wed Jun 6 19:57:00 GMT 2012
On 06/06/2012 12:11 PM, Jamison Hope wrote:
> I'll continue to poke around with The Bug a little more, looking for
> where these two diverge:
>
>> ; This is erroneous.
>> (define (foo) 'a)
>> (define x foo)
>> (let ((x (lambda () 'b))) (display (x)) (display x) (display (foo)))
>> (newline)
>> ;; Output: b #<procedure x> b
>
>
>> ; This is correct.
>> (define (foo) 'a)
>> (define y foo)
>> (let ((x (lambda () 'b))) (display (x)) (display x) (display (foo)))
>> (newline)
>> ;; Output: b #<procedure x> a
I think the problem is where LambdaExp#compile calls emitLoadModuleMethod.
I don't think the branch at line 780 should be taken, or if it should be,
we should not rebind the outer procedure (see the comment in
ProcInitializer#emitLoadModuleMethod line 35).
--
--Per Bothner
per@bothner.com http://per.bothner.com/
More information about the Kawa
mailing list