This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 05/24/2012 04:15 PM, Jamison Hope wrote:OK, I figured this out.
The problem line isboolean 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.
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
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |