[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] clisp and sbcl
From: |
Waldek Hebisch |
Subject: |
Re: [Axiom-developer] clisp and sbcl |
Date: |
Mon, 28 May 2007 13:37:54 +0200 (CEST) |
Gabriel Dos Reis wrote:
> Waldek Hebisch <address@hidden> writes:
>
> | CY wrote:
> | > Confirmed - builds on sbcl and clisp. Wow! Thanks Waldek!
> | >
> | > I don't know if it's important, but I am getting a lisp readout when
> | > using the integration package:
> | >
> | > (2) -> integrate(sin(x),x)
> | > [loading messages]
> | > /home/cyapp/mathtoplevel/axiomtoplevel/testwork/wh-sandbox/target/i686-pc-
> | > linux/algebra/COMPLEX.fasl
> | > for domain Complex
> | >
> | >
> | > ; in: LAMBDA NIL
> | > ; (VMLISP:QCAR BOOT::|#1|)
> | > ; --> CAR
> | > ; ==>
> | > ; (THE CONS BOOT::|#1|)
> | > ;
> | > ; caught WARNING:
> | > ; undefined variable: |#1|
> | >
> |
> | AFAICS this comes because Axiom uses eval and sbcl by default
> | compiles all evals. I am investigating whether the warning
> | indicate some real problem. One can silence warning switching
> | to interpreted eval (which will be done for different reasons
> | in next revision):
>
> There is a questionable habit in the Axiom core source code of
> defining variables through SETQ -- that tends to trigger warnings
> from several Lisp implementations. Is it possible that the above
> is such a warning? (the |#1| are names for synthetized lambdas).
>
The problem is more subtle: the code above (printed by sbcl)
references |#1|. Apparently sbcl complier does not see that
|#1| is defined, but it is.
In more detail, Axiom uses Lisp eval to replace |#1| by aproproate
value. Relevant part of backtrace is:
17: (SB-INT:SIMPLE-EVAL-IN-LEXENV (EQCAR |#1| 0) #<NULL-LEXENV>)
18: (|evalSharpOne|
(EQCAR |#1| 0)
(0 (1 #(#(|cos| 1 (#)) ((# 0 . 1)) 2 4864) (1 0 . -1)) 0 . 1))
19: (|coerceUnion2Branch|
((|Union| (|Expression| (|Integer|)) (|List| (|Expression| (|Integer|))))
WRAPPED 0 (1 #(#(|cos| 1 (#)) ((# 0 . 1)) 2 4864) (1 0 . -1)) 0 . 1))
|evalSharpOne| is defined as:
(defun |evalSharpOne| (x \#1) (declare (special \#1)) (EVAL x))
so at the time of eval |#1| has special binding. My understanding is
that such bindings are visible to eval. The '#<NULL-LEXENV>' part
made me suspicious, but testing indicate that in sbcl code works
as expected.
--
Waldek Hebisch
address@hidden
- [Axiom-developer] clisp and sbcl, Waldek Hebisch, 2007/05/22
- Re: [Axiom-developer] clisp and sbcl, C Y, 2007/05/22
- Re: [Axiom-developer] clisp and sbcl, Waldek Hebisch, 2007/05/23
- Re: [Axiom-developer] clisp and sbcl, C Y, 2007/05/23
- Re: [Axiom-developer] clisp and sbcl, C Y, 2007/05/25
- Re: [Axiom-developer] clisp and sbcl, Waldek Hebisch, 2007/05/25
- Re: [Axiom-developer] clisp and sbcl, Gabriel Dos Reis, 2007/05/25
- Re: [Axiom-developer] clisp and sbcl,
Waldek Hebisch <=
- Re: [Axiom-developer] clisp and sbcl, Gabriel Dos Reis, 2007/05/28
- Re: [Axiom-developer] clisp and sbcl, Waldek Hebisch, 2007/05/28
- Re: [Axiom-developer] clisp and sbcl, Gabriel Dos Reis, 2007/05/28
- Re: [Axiom-developer] clisp and sbcl, Gabriel Dos Reis, 2007/05/28
- Re: [Axiom-developer] clisp and sbcl, Waldek Hebisch, 2007/05/28
- Re: [Axiom-developer] clisp and sbcl, Gabriel Dos Reis, 2007/05/28
- Re: [Axiom-developer] clisp and sbcl, Gabriel Dos Reis, 2007/05/29
- Re: [Axiom-developer] clisp and sbcl, Waldek Hebisch, 2007/05/29
Re: [Axiom-developer] clisp and sbcl, Bill Page, 2007/05/23