Ticket #1067 (closed defect: invalid)

Opened 17 months ago

Last modified 17 months ago

Issue with read-time conditionalization facility

Reported by: rogersm Owned by:
Priority: major Milestone: Clozure CL 1.9
Component: ANSI CL Compliance Version: trunk
Keywords: Cc: roger.sen@…

Description

Hi,

I have installed the latest ccl:

$ uname -a
Darwin localbox 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64

$ /usr/local/ccl-1.9/dx86cl64
Welcome to Clozure Common Lisp Version 1.9-r15759  (DarwinX8664)!

And I'm having issues with conditional read time (#+) working incorrectly. You can reproduce the issues trying to load nibbles or ironclad:

nibbles:

$ /usr/local/ccl-1.9/dx86cl64
(quicklWelcome to Clozure Common Lisp Version 1.9-r15759  (DarwinX8664)!
? (quicklisp:quickload "nibbles" :verbose t)
To load "nibbles":
  Load 1 ASDF system:
    nibbles
; Loading "nibbles"
Read error between positions 70 and 91 in /Users/rogersm/quicklisp/dists/quicklisp/software/nibbles-20121125-git/sbcl-opt/nib-tran.lisp.
> Error: There is no package named "SB-C" .
> While executing: CCL::%PARSE-TOKEN, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Retry finding package with name "SB-C".


> Type :? for other options.

A possible solution is to apply this patch to nibbles package:

sbcl-opt/nib-tran.lisp
@@ -2,8 +2,9 @@
 
 (cl:in-package :nibbles)
 
-#+sbcl (progn
+#+sbcl
 
+(progn
 (sb-c:deftransform %check-bound ((vector bound offset n-bytes)
 				 ((simple-array (unsigned-byte 8) (*)) index
 				  (and fixnum sb-vm:word)


But nowhere in Hyperspec says a return carriage should be added.

ironclad:

$ /usr/local/ccl-1.9/dx86cl64
(quicklWelcome to Clozure Common Lisp Version 1.9-r15759  (DarwinX8664)!
? (quicklisp:quickload "ironclad" :verbose t)
To load "ironclad":
  Load 1 ASDF system:
    ironclad
; Loading "ironclad"
Read error between positions 70 and 91 in /Users/rogersm/quicklisp/dists/quicklisp/software/nibbles-20121125-git/sbcl-opt/nib-tran.lisp.
> Error: There is no package named "SB-C" .
> While executing: CCL::%PARSE-TOKEN, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Retry finding package with name "SB-C".
> Type :? for other options.

Both issues do not occur in:

$ /usr/local/ccl-1.8/dx86cl64
Welcome to Clozure Common Lisp Version 1.8-r15286M  (DarwinX8664)!

Change History

comment:1 Changed 17 months ago by rogersm

  • Cc roger.sen@… added

comment:2 Changed 17 months ago by gb

  • Status changed from new to closed
  • Resolution set to invalid

I just tried using Quicklisp to load ironclad in CCL 1.9; it seemed to work fine and didn't try to process any SBCL-specific "nibbles" code.

I hadn't previously tried to use Quicklisp to load ironclad in SBCL on the same machine. I suspect that you may have done so, and that Quicklisp is caching information about platform-specific files in some platform-neutral way. (The issue is that Quicklisp shouldn't be trying to process ".../sbcl-opt/nibtran.lisp", not that there's some read-time conditionalization problem with that file.)

Someone more familiar with Quicklisp than I am may be able to offer you a workaround or fix. At this point, it's not clear to me that this has anything to do with CCL.

Note: See TracTickets for help on using tickets.