From: David Tolpin
Subject: Is there a working open-source lisp implementation?
Date: 
Message-ID: <37e144c8.0411211421.706a8f96@posting.google.com>
Hi,

I am a common lisp newbie, with some experience in programming in general.
I am trying to get either clisp or cmucl working, but both fail to work
with Paul Graham's continuation macros. 

clisp cannot be used with parameterless =bind because it turn () into nil
and a macro expanding into a parameterless lambda does not work.

cmucl does not work at all because setq on the global level proclaims
the variable special, not just declaims it, thus storing continuations
in *cont* does not give expected result.

Is there a working open source common lisp implementation?

David Tolpin
http://davidashen.net/

From: Neo-LISPer
Subject: Re: Is there a working open-source lisp implementation?
Date: 
Message-ID: <1427597.XYTTSPu6Rs@yahoo.com>
David Tolpin wrote:

> cmucl does not work at all because setq on the global level proclaims
> the variable special, not just declaims it, thus storing continuations
> in *cont* does not give expected result.

http://groups.google.com/groups?hl=en&lr=&c2coff=1&selm=sfwk86d1m49.fsf%40world.std.com

""
CMUCL is technically right and Graham is technically wrong.

Though in practice I think a lot of people would say the ANSI CL spec is
wrong for not nailing this down, and that it should have nailed it down
in a way that made Graham right and CMUCL wrong.  Even the spec itself
probably has lots of examples that use the same style as Graham does,
though the spec disclaims all of its examples as "not binding on the
language definition" so gets out of harm's way by a "legal dodge".

""
From: Rainer Joswig
Subject: Re: Is there a working open-source lisp implementation?
Date: 
Message-ID: <joswig-4AADEF.23564221112004@news-50.dca.giganews.com>
In article <····························@posting.google.com>,
 ···@davidashen.net (David Tolpin) wrote:

> Hi,
> 
> I am a common lisp newbie, with some experience in programming in general.
> I am trying to get either clisp or cmucl working, but both fail to work
> with Paul Graham's continuation macros. 
> 
> clisp cannot be used with parameterless =bind because it turn () into nil
> and a macro expanding into a parameterless lambda does not work.
> 
> cmucl does not work at all because setq on the global level proclaims
> the variable special, not just declaims it, thus storing continuations
> in *cont* does not give expected result.

I think there was some switch in CMUCL to change that. Personally
I think CMUCL should adopt it as the default.

> Is there a working open source common lisp implementation?
> 
> David Tolpin
> http://davidashen.net/
From: Ivan Toshkov
Subject: Re: Is there a working open-source lisp implementation?
Date: 
Message-ID: <7c23adaa.0411220107.2155f7f4@posting.google.com>
Rainer Joswig <······@lisp.de> wrote in message news:<····························@news-50.dca.giganews.com>...
> In article <····························@posting.google.com>,
>  ···@davidashen.net (David Tolpin) wrote:
> 
> > Hi,
> > 
> > I am a common lisp newbie, with some experience in programming in general.
> > I am trying to get either clisp or cmucl working, but both fail to work
> > with Paul Graham's continuation macros. 
> > 
> > clisp cannot be used with parameterless =bind because it turn () into nil
> > and a macro expanding into a parameterless lambda does not work.
> > 
> > cmucl does not work at all because setq on the global level proclaims
> > the variable special, not just declaims it, thus storing continuations
> > in *cont* does not give expected result.
> 
> I think there was some switch in CMUCL to change that. Personally
> I think CMUCL should adopt it as the default.

Using set instead of setq or setf creates a global lexical variable in CMUCL.

Also see Tim Bradshaw's site: http://www.tfeb.org/lisp/toys.html#GLEX

> 
> > Is there a working open source common lisp implementation?
> > 
> > David Tolpin
> > http://davidashen.net/
From: Thomas A. Russ
Subject: Re: Is there a working open-source lisp implementation?
Date: 
Message-ID: <ymipt257r3c.fsf@sevak.isi.edu>
openmcl works:  http://openmcl.clozure.com/

It might requrie a hardware upgrade to run, though :)

-- 
Thomas A. Russ,  USC/Information Sciences Institute
From: Thomas F. Burdick
Subject: Re: Is there a working open-source lisp implementation?
Date: 
Message-ID: <xcvu0rhls2z.fsf@conquest.OCF.Berkeley.EDU>
···@davidashen.net (David Tolpin) writes:

> Hi,
> 
> I am a common lisp newbie, with some experience in programming in general.
> I am trying to get either clisp or cmucl working, but both fail to work
> with Paul Graham's continuation macros. 
> 
> clisp cannot be used with parameterless =bind because it turn () into nil
> and a macro expanding into a parameterless lambda does not work.
> 
> cmucl does not work at all because setq on the global level proclaims
> the variable special, not just declaims it, thus storing continuations
> in *cont* does not give expected result.

Don't do toplevel setq/setf to try to get lexical globals, even if
Graham says to.  Instead, use something like:

  (defmacro defglobal (name &optional (val nil valp) doc)
    `(progn
       (define-symbol-macro ,name (symbol-value ',name))
       ,(when valp
          `(unless (boundp ',name)
             (setf ,name ,val)))
       (setf (documentation ',name 'variable) ,doc)
       ',name))

> Is there a working open source common lisp implementation?

If you're actually interested in learning lisp, try asking questions
in a less insulting manner.  There is nothing broken about CMUCL.
From: Kaz Kylheku
Subject: Re: Is there a working open-source lisp implementation?
Date: 
Message-ID: <cf333042.0411221123.b1b7b30@posting.google.com>
···@davidashen.net (David Tolpin) wrote in message news:<····························@posting.google.com>...
> clisp cannot be used with parameterless =bind because it turn () into nil
> and a macro expanding into a parameterless lambda does not work.

One minute technical quibbles aside, the read notations () and NIL are
just different spellings for the same thing! Thus (lambda nil ...) is
the same thing as (lambda () ...)  .

> cmucl does not work at all because setq on the global level proclaims
> the variable special, not just declaims it, thus storing continuations
> in *cont* does not give expected result.
> 
> Is there a working open source common lisp implementation?

SETQ on a nonexistent variable is undefined behavior. It's quite
likely that the code can be made portable without any heavy
refactoring.