Emacs Common Lisp is an implementation of Common Lisp, written in
Emacs Lisp. It's not like Emacs' "CL" package as it does not intend
to extend Emacs Lisp with Common Lisp functionality; however, Common
Lisp functions compile to standard byte code functions, so Emacs Lisp
functions can call Common Lisp functions and vice versa.
At this stage many bugs remain and error checking is sparse, but the
implementation is good enough to run a few of the GCL ANSI tests.
More information will be found here:
http://www.lisp.se/emacs-cl/
--
Lars Brinkhoff, Services for Unix, Linux, GCC, HTTP
Brinkhoff Consulting http://www.brinkhoff.se/
In article <··············@junk.nocrew.org>, Lars Brinkhoff
<·········@nocrew.org> wrote:
> Emacs Common Lisp is an implementation of Common Lisp, written in
> Emacs Lisp. It's not like Emacs' "CL" package as it does not intend
> to extend Emacs Lisp with Common Lisp functionality; however, Common
> Lisp functions compile to standard byte code functions, so Emacs Lisp
> functions can call Common Lisp functions and vice versa.
I read that to mean the following, correct me if I am wrong.
In order for Emacs Common Lisp to be able to call regular CL functions,
an entire implementation of CL has to be resident in the computer?
It would still be a Good Thing, IMO, because it would mean that a emacs
user could utilize functions that he would not otherwise have access
to.
Mark-
In article <·······························@invalid.com>,
Mark Conrad <············@invalid.com> wrote:
> In article <··············@junk.nocrew.org>, Lars Brinkhoff
> <·········@nocrew.org> wrote:
>
> > Emacs Common Lisp is an implementation of Common Lisp, written in
> > Emacs Lisp. It's not like Emacs' "CL" package as it does not intend
> > to extend Emacs Lisp with Common Lisp functionality; however, Common
> > Lisp functions compile to standard byte code functions, so Emacs Lisp
> > functions can call Common Lisp functions and vice versa.
>
> I read that to mean the following, correct me if I am wrong.
>
> In order for Emacs Common Lisp to be able to call regular CL functions,
> an entire implementation of CL has to be resident in the computer?
No, I think this is supposed to be an entire implementation of CL. If I
understand correctly, it's a Common Lisp compiler and runtime
implemented in Emacs Lisp. The compiler generates Emacs bytecode, so
the compiled files can be loaded into Emacs just like compiled ELisp
files. It also provides a way to call between the two environments
(analogous to the way most Common Lisp implementations allow calling
"foreign" functions).
--
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
Barry Margolin <······@alum.mit.edu> writes:
> Mark Conrad <············@invalid.com> wrote:
> > Lars Brinkhoff wrote:
> > > Emacs Common Lisp is an implementation of Common Lisp, written
> > > in Emacs Lisp.
> > I read that to mean the following, correct me if I am wrong. In
> > order for Emacs Common Lisp to be able to call regular CL
> > functions, an entire implementation of CL has to be resident in
> > the computer?
No, you don't need anything but Emacs (GNU Emacs or XEmacs).
> If I understand correctly, it's a Common Lisp compiler and runtime
> implemented in Emacs Lisp. The compiler generates Emacs bytecode,
> so the compiled files can be loaded into Emacs just like compiled
> ELisp files.
Correct.
> It also provides a way to call between the two environments
> (analogous to the way most Common Lisp implementations allow calling
> "foreign" functions).
It's usually mostly a matter of finding the right symbol and calling
it (or its symbol-function). The Emacs Lisp symbols are made
available through an EMACS-LISP package (nicknamed EL) in Common Lisp,
so you can just call, say, (el:|message| "hello world"). Common Lisp
symbols can be found with FIND-SYMBOL, which is available in Emacs
Lisp.
--
Lars Brinkhoff, Services for Unix, Linux, GCC, HTTP
Brinkhoff Consulting http://www.brinkhoff.se/
In article <····························@comcast.ash.giganews.com>,
Barry Margolin <······@alum.mit.edu> wrote:
> > In order for Emacs Common Lisp to be able to call regular CL functions,
> > an entire implementation of CL has to be resident in the computer?
>
> No, I think this is supposed to be an entire implementation of CL.
Great, that means one does not have to purchase one of the costly
commercial versions of CL in order to have access to a lot of modern CL
functions and techniques.
Better yet, it means that an emacs programmer who knows a little bit of
that old MacLisp dialect of Lisp which is used in emacs, can now learn
how to use modern CL functions and techniques, while still being
'productive' in the older MacLisp dialect.
Eventually, such an emacs person could get quite skilled at "modern"
Lisp, if he was so inclined.
On the down side, it might be quite a long time before the GNU
organization gets their Lisp compiler to where it does everything it is
capable of doing.
BTW, do you happen to know if the closures the compiler will implement
in emacs are true lexical closures?
In other words, will the closures do everything that 'real' CL closures
will do?
Just curious.
Mark-
On Wed, Apr 21, 2004 at 05:36:55PM +0000, Mark Conrad wrote:
> Great, that means one does not have to purchase one of the costly
> commercial versions of CL in order to have access to a lot of modern CL
> functions and techniques.
You do know there are several free high-quality Common Lisp
implementations, right?
--
; Matthew Danish <·······@andrew.cmu.edu>
; OpenPGP public key: C24B6010 on keyring.debian.org
; Signed or encrypted mail welcome.
; "There is no dark side of the moon really; matter of fact, it's all dark."
In article <······················@mapcar.org>, Matthew Danish
<·······@andrew.cmu.edu> wrote:
> You do know there are several free high-quality Common Lisp
> implementations, right?
Well, yes, but I am concerned about their adherence to the CL Hyperspec.
Realistically speaking, should I be all that concerned?
Mark-
On Wed, Apr 21, 2004 at 09:55:39PM +0000, Mark Conrad wrote:
> > You do know there are several free high-quality Common Lisp
> > implementations, right?
>
> Well, yes, but I am concerned about their adherence to the CL Hyperspec.
>
> Realistically speaking, should I be all that concerned?
(a) Strictly speaking, it's their adherence to the ANSI standard which
is relevant. The Hyperspec is supposed to be an exact copy of the spec,
but it isn't the standard.
(b) Thanks to Paul Dietz's ANSI-tests, I would say that SBCL and CMUCL
are probably some of the most ANSI compliant implementations available.
So, I wouldn't be that concerned. Even CLISP is compliant enough that
you probably won't notice the differences in typical use.
--
; Matthew Danish <·······@andrew.cmu.edu>
; OpenPGP public key: C24B6010 on keyring.debian.org
; Signed or encrypted mail welcome.
; "There is no dark side of the moon really; matter of fact, it's all dark."
Mark Conrad <············@invalid.com> writes:
>> You do know there are several free high-quality Common Lisp
>> implementations, right?
>
> Well, yes, but I am concerned about their adherence to the CL Hyperspec.
>
> Realistically speaking, should I be all that concerned?
No.
Christophe
--
http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge)
From: Joe Marshall
Subject: Re: New implementation: Emacs Common Lisp
Date:
Message-ID: <ad146sho.fsf@ccs.neu.edu>
Mark Conrad <············@invalid.com> writes:
> In article <······················@mapcar.org>, Matthew Danish
> <·······@andrew.cmu.edu> wrote:
>
>> You do know there are several free high-quality Common Lisp
>> implementations, right?
>
> Well, yes, but I am concerned about their adherence to the CL Hyperspec.
>
> Realistically speaking, should I be all that concerned?
Nah.
Mark Conrad writes:
> On the down side, it might be quite a long time before the GNU
> organization gets their Lisp compiler to where it does everything it
> is capable of doing.
I'm not sure what you mean here, but the GNU organization has nothing
to do with Emacs Common Lisp (other than providing Emacs).
> BTW, do you happen to know if the closures the compiler will
> implement in emacs are true lexical closures? In other words, will
> the closures do everything that 'real' CL closures will do?
Yes.
Mark Conrad writes:
> Matthew Danish wrote:
> > You do know there are several free high-quality Common Lisp
> > implementations, right?
> Well, yes, but I am concerned about their adherence to the CL
> Hyperspec.
If that is your concern, don't use Emacs Common Lisp. It's one of the
least conforming implementations. It's also slow and buggy.
--
Lars Brinkhoff, Services for Unix, Linux, GCC, HTTP
Brinkhoff Consulting http://www.brinkhoff.se/
From: Julian Stecklina
Subject: Re: New implementation: Emacs Common Lisp
Date:
Message-ID: <86isfp1u1f.fsf@web.de>
Mark Conrad <············@invalid.com> writes:
> BTW, do you happen to know if the closures the compiler will implement
> in emacs are true lexical closures?
You can introduce a lexical closure in Emacs via lexical-let, so the
CL part should have them to.
Regards,
--
Julian Stecklina
Signed and encrypted mail welcome.
Key-Server: pgp.mit.edu Key-ID: 0xD65B2AB5
FA38 DCD3 00EC 97B8 6DD8 D7CC 35D8 8D0E D65B 2AB5
Any sufficiently complicated C or Fortran program
contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
- Greenspun's Tenth Rule of Programming
Lars Brinkhoff <·········@nocrew.org> writes:
> Emacs Common Lisp is an implementation of Common Lisp, written in
> Emacs Lisp. It's not like Emacs' "CL" package as it does not intend
> to extend Emacs Lisp with Common Lisp functionality; however, Common
> Lisp functions compile to standard byte code functions, so Emacs Lisp
> functions can call Common Lisp functions and vice versa.
>
> At this stage many bugs remain and error checking is sparse, but the
> implementation is good enough to run a few of the GCL ANSI tests.
>
> More information will be found here:
> http://www.lisp.se/emacs-cl/
That is great!
What are the license terms?
-- jd
Jeff Dalton <····@todday.inf.ed.ac.uk> writes:
> > Emacs Common Lisp is an implementation of Common Lisp
> What are the license terms?
Same as Emacs, GNU GPL.
--
Lars Brinkhoff, Services for Unix, Linux, GCC, HTTP
Brinkhoff Consulting http://www.brinkhoff.se/
Lars Brinkhoff <·········@nocrew.org> writes:
> Jeff Dalton <····@todday.inf.ed.ac.uk> writes:
> > > Emacs Common Lisp is an implementation of Common Lisp
> > What are the license terms?
>
> Same as Emacs, GNU GPL.
Thanks. That'll let me use it for some things, though not
for others.
I've often come close to using Emacs Lisp for Lisp things that
were primarily not editing, but it would have take a bit more
time than I had to learn the language well enough.
With a Common Lisp, even if it's a subset, the barrier
to starting suddenly becomes lower.
-- jd