From Scott at sympoiesis.com Mon Sep 7 03:20:47 2009 From: Scott at sympoiesis.com (Scott L. Burson) Date: Sun, 6 Sep 2009 20:20:47 -0700 Subject: [asdf-binary-locations-devel] 8-bit Allegro mode In-Reply-To: <310c21410909061952v1064638cxbeb687e119416569@mail.gmail.com> References: <310c21410909061952v1064638cxbeb687e119416569@mail.gmail.com> Message-ID: <310c21410909062020w5c4391bbv508ae8123361e676@mail.gmail.com> Hi, In trying out Daniel Herring's new LibCL (http://libcl.com/) on Franz Allegro CL, I noticed something about LISP-VERSION-STRING which is in asdf-binary-locations, which evidently borrowed it from SLIME. There are actually four Lisp executables that come in an Allegro distribution, that differ in two orthogonal dimensions. One dimension, which LISP-VERSION-STRING accounts for, is the case mode, "ANSI" or "modern". The other is 8-bit strings vs. 16-bit strings; I noticed that LISP-VERSION-STRING doesn't take this into account (but the fasls are indeed incompatible). The 16-bit executables are the default; the other two have "8" appended to their names. Here is a suggestion for the Allegro code in LISP-VERSION-STRING to reflect this distinction. #+allegro (format nil "~A~A~A~A" excl::*common-lisp-version-number* ; ANSI vs MoDeRn ;; thanks to Robert Goldman and Charley Cox for ;; an improvement to my hack (if (eq excl:*current-case-mode* :case-sensitive-lower) "M" "A") ;; Note if 8-bit strings (if (code-char 256) "" "8") (if (member :64bit *features*) "-64bit" "")) This is backward-compatible for users of 16-bit strings. Since there probably aren't many users of 8-bit strings, the impact will be minimal. -- Scott From Scott at sympoiesis.com Mon Sep 7 18:27:30 2009 From: Scott at sympoiesis.com (Scott L. Burson) Date: Mon, 7 Sep 2009 11:27:30 -0700 Subject: [asdf-binary-locations-devel] [slime-devel] 8-bit Allegro mode In-Reply-To: References: <310c21410909061952v1064638cxbeb687e119416569@mail.gmail.com> <310c21410909062020w5c4391bbv508ae8123361e676@mail.gmail.com> Message-ID: <310c21410909071127mb58bd6fx26c6a2c7a445e529@mail.gmail.com> On Mon, Sep 7, 2009 at 2:49 AM, Willem Broekema wrote: > FWIW, the exported variable excl:real-char-code-limit seems to be > defined especially for detecting the 8 vs 16 bit mode. > http://www.franz.com/support/documentation/8.1/doc/variables/excl/real-char-code-limit.htm Ah, good, thanks. -- Scott From metawilm at gmail.com Mon Sep 7 09:49:13 2009 From: metawilm at gmail.com (Willem Broekema) Date: Mon, 7 Sep 2009 11:49:13 +0200 Subject: [asdf-binary-locations-devel] [slime-devel] 8-bit Allegro mode In-Reply-To: <310c21410909062020w5c4391bbv508ae8123361e676@mail.gmail.com> References: <310c21410909061952v1064638cxbeb687e119416569@mail.gmail.com> <310c21410909062020w5c4391bbv508ae8123361e676@mail.gmail.com> Message-ID: On Mon, Sep 7, 2009 at 5:20 AM, Scott L. Burson wrote: > There are actually four Lisp executables that come in an Allegro > distribution, that differ in two orthogonal dimensions. ?One > dimension, which LISP-VERSION-STRING accounts for, is the case mode, > "ANSI" or "modern". ?The other is 8-bit strings vs. 16-bit strings; I > noticed that LISP-VERSION-STRING doesn't take this into account (but > the fasls are indeed incompatible). ?The 16-bit executables are the > default; the other two have "8" appended to their names. > [...] > ? ? ? ? ? ? ? ? ? ? (if (code-char 256) "" "8") FWIW, the exported variable excl:real-char-code-limit seems to be defined especially for detecting the 8 vs 16 bit mode. http://www.franz.com/support/documentation/8.1/doc/variables/excl/real-char-code-limit.htm - Willem From asf at boinkor.net Mon Sep 7 19:16:34 2009 From: asf at boinkor.net (Andreas Fuchs) Date: Mon, 7 Sep 2009 21:16:34 +0200 Subject: [asdf-binary-locations-devel] [slime-devel] 8-bit Allegro mode In-Reply-To: <310c21410909071127mb58bd6fx26c6a2c7a445e529@mail.gmail.com> References: <310c21410909061952v1064638cxbeb687e119416569@mail.gmail.com> <310c21410909062020w5c4391bbv508ae8123361e676@mail.gmail.com> <310c21410909071127mb58bd6fx26c6a2c7a445e529@mail.gmail.com> Message-ID: On Mon, Sep 7, 2009 at 20:27, Scott L. Burson wrote: > On Mon, Sep 7, 2009 at 2:49 AM, Willem Broekema wrote: >> FWIW, the exported variable excl:real-char-code-limit seems to be >> defined especially for detecting the 8 vs 16 bit mode. >> http://www.franz.com/support/documentation/8.1/doc/variables/excl/real-char-code-limit.htm > > Ah, good, thanks. A cleaner solution would be to use excl:ics-target-case: That lets you conditionalize without hard-coding numerical limits and will be supported even if ACL should ever change their char code limits: http://www.franz.com/support/documentation/8.1/doc/operators/excl/ics-target-case.htm Cheers, -- Andreas Fuchs, (http://|im:asf@|mailto:asf@)boinkor.net, antifuchs From gwking at metabang.com Tue Sep 8 01:57:20 2009 From: gwking at metabang.com (Gary King) Date: Mon, 7 Sep 2009 21:57:20 -0400 Subject: [asdf-binary-locations-devel] [slime-devel] 8-bit Allegro mode In-Reply-To: References: <310c21410909061952v1064638cxbeb687e119416569@mail.gmail.com> <310c21410909062020w5c4391bbv508ae8123361e676@mail.gmail.com> <310c21410909071127mb58bd6fx26c6a2c7a445e529@mail.gmail.com> Message-ID: <79AC4357-4021-4243-A7F3-7DE6427C66C7@metabang.com> Hi Scott (and all), I'm thinking of going with: #+allegro (format nil "~A~A~A~A" excl::*common-lisp-version-number* ; ANSI vs MoDeRn ;; thanks to Robert Goldman and Charley Cox for ;; an improvement to my hack (if (eq excl:*current-case-mode* :case-sensitive-lower) "M" "A") ;; Note if using International ACL ;; see http://www.franz.com/support/documentation/8.1/doc/operators/excl/ics-target-case.htm (excl:ics-target-case (:-ics "8") (:+ics "X")) (if (member :64bit *features*) "-64bit" "")) Is there any dissent? -- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter From gwking at metabang.com Tue Sep 8 12:00:21 2009 From: gwking at metabang.com (Gary King) Date: Tue, 8 Sep 2009 08:00:21 -0400 Subject: [asdf-binary-locations-devel] announce - version 0.3.9 Message-ID: Added code to differentiate between International and non- International Allegro Common Lisp (thanks to Scott L. Burson for starting the discussion and keeping it moving). http://common-lisp.net/project/asdf-binary-locations/ -- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter