Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros
From: Sam Steingold (sds_at_gnu.org)
Date: 03/28/05
- Next message: Christophe Rhodes: "Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- Previous message: david.tolpin_at_gmail.com: "Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- In reply to: david.tolpin_at_gmail.com: "OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- Next in thread: david.tolpin_at_gmail.com: "Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- Reply: david.tolpin_at_gmail.com: "Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Mon, 28 Mar 2005 16:28:37 -0500
> * david.tolpin@gmail.com <qnivq.gbycva@tznvy.pbz> [2005-03-28 12:51:32 -0800]:
>
> I've written a combinator parsing-based set of macros, and successfuly
> used it and to write a program for my needs. During the development, I
> used OpenMCL, which worked fine. Unfortunately, the only other LISP
> implementation available to me that works with my macros is LispWorks;
> CMUCL says "attempt to reference undumpable constant" during
> execution, and CLISP says
>
>
> Compiling file /Users/dvd/Workplace/Davidashen/QST/cnc-lesy.lisp ...
> *** - COMMON-LISP::PRINT: Despite COMMON-LISP::*PRINT-READABLY*,
> #<CLOSURE :LAMBDA (#:L)
> (COMMON-LISP::LABELS
> ((#:STEP (#:L #:RL)
> (COMMON-LISP::LET
> ((#:R
> (COMMON-LISP::FUNCALL
> (LL-PARSING::PARSE-OR (CNC-LESY::SCAN-NAME)
> (CNC-LESY::SCAN-NUMBER)
> (LL-PARSING::PARCALL #'LL-PARSING::P-CHAR-CLASS
> '(#\( #\) #\[ #\] #\,))
> (CNC-LESY::SCAN-SPACE))
> #:L)))
> (COMMON-LISP::IF (LL-PARSING::SUCCESSP #:R)
> (#:STEP (COMMON-LISP::REST #:R)
> (COMMON-LISP::APPEND #:RL (LL-PARSING::RESULT #:R)))
> (LL-PARSING::RETURN-SUCCESS #:RL #:L)))))
> (#:STEP #:L COMMON-LISP::NIL))
>> cannot be printed readably.
>
> SBCL just fails with internal error.
>
> The macros are complex, but it is what the macros are for, in the end.
> I can live without CMUCL, but would love to make it run under CLISP.
> Where to look?
The CLISP error is pretty much equivalent to the CMUCL one.
What happens is that you are trying to write an interpreted function
(closure) into a FAS (compiled) file which neither CLISP nor CMUCL can
do (but, apparently, both MCL and LW can).
I don't think this is a violation of ANSI. More importantly, I think
this problem is indicative of a deeper problem in _your_ code. Why
would you want to save an _interpreted_ closure into a _compiled_ file?
This error means that you either "have an extra quote" and prevent this
closure from being automatically compiled (compiled closures can be
written to a compiled file), or you are "missing a quote" and the lambda
expression (a lambda expression, i.e., a cons cell, can also be written
to a compiled file) is being coerced to a closure prematurely.
At any rate, while explicitly compiling the closure will solve your
immediate portability problem, I urge you to figure out how to avoid that.
-- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.honestreporting.com> <http://www.mideasttruth.com/> <http://www.openvotingconsortium.org/> <http://www.camera.org> Abandon all hope, all ye who press Enter.
- Next message: Christophe Rhodes: "Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- Previous message: david.tolpin_at_gmail.com: "Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- In reply to: david.tolpin_at_gmail.com: "OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- Next in thread: david.tolpin_at_gmail.com: "Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- Reply: david.tolpin_at_gmail.com: "Re: OpenMCL and LispWorks work, CLISP and CMUCL fail on macros"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|