CL not is not not?

Jamison Hope jrh@theptrgroup.com
Fri May 25 15:17:00 GMT 2012


On May 25, 2012, at 12:59 AM, Per Bothner wrote:

> On 05/24/2012 04:15 PM, Jamison Hope wrote:
>> OK, I figured this out.
>>
>> The problem line is
>>> boolean val = PrimType.booleanValue(value);
>>
>> in Compilation#compileConstant. PrimType#booleanValue is  
>> implemented as:
>>> return ! (value instanceof Boolean) || ((Boolean)  
>>> value).booleanValue();
>> which (of course!) returns the wrong value when passed Lisp2.FALSE
>> (which is a LList, not a Boolean) in Common Lisp.
>>
>> Replacing that line in Compilation.java with
>> boolean val = getLanguage().isTrue(value);
>> does the right thing:
>
> Thanks - I checked in your patch.
>
> P.S. It would be appreciated if you can try to include ChangeLog
> entries.

Yes, of course, I always forget about that. My apologies.

> Testcases are also also welcome if it's not too difficult
> to write them.  For something like this using RunScriptTest might
> be appropriate - see gnu/q2/testsuite for examples for Q2, and
> the main testsuite for Scheme examples.  We might need to enhance
> RunScriptTest for CommonLisp - I haven't tried that yet.

I'll play around with that a little. Looks like so far it only
works with Scheme and Q2.

--
Jamison Hope
The PTR Group
www.theptrgroup.com





More information about the Kawa mailing list