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