With [r14694][], we now convert CL:T and CL:NIL to JAVA:+TRUE+ and JAVA:+FALSE+ respectively when invoking JVM methods through the JAVA package, establishing the "natural" equivalence for boolean truth values. This may break some existing usage in that previously CL:NIL was converted to a Java 'null' reference. Users now need to specify JAVA:+NULL+ explicitly when desiring to pass 'null' Java references as an argument in invoking JVM methods.
As far as I can tell from what I can from testing examples of available consumers of the JAVA package, this doesn’t break existing usage, as we have been advising use JAVA:+NULL+ to denote a null reference explicitly since its introduction some three years ago [r13359][]. And until I inspected the underlying JAVA code yesterday, I wasn’t even aware of the conversion of CL:NIL to JAVA:+NULL+.
Nevertheless, please speak up if this breaks something for you that you relied upon. Unless I hear otherwise, I am going to back port this change to abcl-1.3.1 as the last change before a release. While strictly speaking from a release engineering perspective, this sort of change should wait until a major revision release, I am planning on using abcl-1.3.1 in production next week with [lsw2][], which sort of relies on this behavior. I beg the ABCL community’s indulgence in this deviation from release engineering best practices, unless somebody speaks up soon that this is a very bad idea.
This change implements the requests in [ticket-84][] and [ticket-339][].
[ticket-84]: http://abcl.org/trac/ticket/84%3E [ticket-339]: http://abcl.org/trac/ticket/339 [r14694]: http://abcl.org/trac/changeset/14694 [r13359]: http://abcl.org/trac/changeset/13359 [lsw2]: https://code.google.com/p/lsw2/
armedbear-devel@common-lisp.net