Subject: [clisp-list] High Performancs Clisp

From: "Daniel Charles McShan" <[email-masked]>
Date: Mon Dec 10 13:49:03 2001

Hello.

I'm interested in developing some high performance lisp applications.  Much 
of the legacy code is in Allegro Common Lisp.

I have a few questions:

1) How much of ANSI Common Lisp is implemented in CLISP? 

2) Is it compatible with Franz Allegro?

3) How many CLISP users?

4) How many CLISP developers?

5) How stable is clisp?

6) What is your threading strategy?  Do you support native threads?  I want 
to take advantage of SMP machines. 

7) Has anybody ported/used clisp for linux on ppc?

8) Do you know of an ANSI Common Lisp test suite?

Okay, that's all for now.

-- 
Daniel Charles McShan			Syzygyx, Incorporated
Tel: 303-347-9889			2901-D W Long Drive
Cel: 720-635-9842			Littleton, CO 80120
mailto://[email-masked]		http://www.syzygyx.com

---

From: Sam Steingold <[email-masked]>
Date: Mon Dec 10 15:28:01 2001

> * In message <[email-masked]>
> * On the subject of "[clisp-list] High Performancs Clisp"
> * Sent on Mon, 10 Dec 2001 15:43:29 -0700
> * Honorable "Daniel Charles McShan" <[email-masked]> writes:
>
> I'm interested in developing some high performance lisp applications.
if the code is numeric, you would be better off using CMUCL.
(not because CLISP is bad, but because CMUCL is exceptionally good there).
otherwise CLISP is a good choice.

> 1) How much of ANSI Common Lisp is implemented in CLISP? 

almost all.
see <http://clisp.cons.org/impnotes.html#d39e504> and
<http://clisp.cons.org/impnotes.html#clos-diff> for the release and
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/~checkout~/clisp/clisp/doc/impnotes.html?rev=HEAD&content-type=text/html#cl-symb>
for the current development version.

> 2) Is it compatible with Franz Allegro?

what do you mean?
wrt ANSI CL, quite compatible.
(but see <http://clisp.cons.org/impnotes.html#ansi>).
wrt Allegro extensions, no, but see
<http://www.podval.org/~sds/data/port.html>. 

> 3) How many CLISP users?

"How many CLISP users" _what_?
(many readers - including myself - are not native English speakers,
and correct syntax facilitates understanding :-).
the mailing lists have hundreds of subscribers.
see also <http://sourceforge.net/project/stats/?group_id=1355>

> 4) How many CLISP developers?

"How many CLISP developers" _what_?
<http://sourceforge.net/projects/clisp/>
Wanna join?

> 5) How stable is clisp?

quite stable and mature.
Yahoo store was implemented using CLISP.
other projects abound.

> 6) What is your threading strategy?  Do you support native threads?  I
> want to take advantage of SMP machines.

no working MT support at the moment (some docs and code only).
if you are a C hacker, you can implement MT for CLISP and earn some
money (around $2-5k) and lotsa fame.

> 7) Has anybody ported/used clisp for linux on ppc?

AFAIU, CLISP runs on linux/ppc out of the box.
(if it does not, porting CLISP is not usually hard).
<http://openmcl.clozure.com/> is another option.

> 8) Do you know of an ANSI Common Lisp test suite?

CLISP comes with one.
CLOCC/src/tools/ansi-test (<http://clocc.sf.net>) is derived from ours.

I hope others will chime in.

-- 
Sam Steingold (http://www.podval.org/~sds)
Keep Jerusalem united! <http://www.onejerusalem.org/Petition.asp>
Read, think and remember! <http://www.iris.org.il> <http://www.memri.org/>
He who laughs last thinks slowest.

---

From: "Daniel Charles McShan" <[email-masked]>
Date: Mon Dec 10 15:50:02 2001

I was asking about the number of users and developers to get a feel for the 
robustness of the "bazaar", if you will.  I find that there are many open 
source projects around, and a good metric for the quality of the software is 
often the number of users and the number of developers.  Sorry for any 
confusion.

I might be interested in assembling a MT implementation.  I'm also 
considering a similar task for a Java project.  I've always wanted to be 
famous!

A few more questions:

Are you the "official" gnu common lisp?  How do you relate to GCL?

How robust is your FFI?  Do you have a "cbind" like utility for parsing C 
headers?  Do you support shared objects? (Question asked without actually 
reviewing your documentation - sorry).

Dan  

On Monday 10 December 2001 04:26, Sam Steingold wrote:
> <http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/~checkout~/clisp/clisp/doc/
>impnotes.html?rev=HEAD&content-type=text/html#cl-symb> for the current
> development version.
>

---

From: Sam Steingold <[email-masked]>
Date: Mon Dec 10 17:48:05 2001

> * In message <[email-masked]>
> * On the subject of "Re: [clisp-list] High Performancs Clisp"
> * Sent on Mon, 10 Dec 2001 17:44:25 -0700
> I was asking about the number of users and developers to get a feel
> for the robustness of the "bazaar", if you will.  I find that there
> are many open source projects around, and a good metric for the
> quality of the software is often the number of users and the number of
> developers.  Sorry for any confusion.

95th percentile on SourceForge (we are the top Lisp project there) is
in indicator.

I am not sure your metric is any good.
Perl wins in it. :-)

> considering a similar task for a Java project.  I've always wanted to
> be famous!

Java already has threads built in.
I don't understand what you might mean.
At any rate, read src/xthreads.d and doc/multithread.txt if you are
interested. This _is_ a large task.

> Are you the "official" gnu common lisp?

GNU CLISP is a "GNU program", as is GCL.
The GNU project distributes both.

> How do you relate to GCL?

no relationship.
GCL is CLTL1, basically unmaintained now (but watch ECLS, which comes
from the same root).

> How robust is your FFI?

quite.  see <http://clisp.cons.org/impnotes.html#modules>.

> Do you have a "cbind" like utility for parsing C headers?

not really.  I have some CL code, but it's not finished.
See CLOCC/CLLIB/h2lisp.
See also
<http://sourceforge.net/tracker/?func=detail&aid=429122&group_id=1645&atid=351645>
what's cbind?

> Do you support shared objects?

yes.  see <http://clisp.cons.org/impnotes.html#dffi>

> (Question asked without actually reviewing your documentation -
> sorry).

it shows.

-- 
Sam Steingold (http://www.podval.org/~sds)
Keep Jerusalem united! <http://www.onejerusalem.org/Petition.asp>
Read, think and remember! <http://www.iris.org.il> <http://www.memri.org/>
Hard work has a future payoff.  Laziness pays off NOW.

---

From: Paolo Amoroso <[email-masked]>
Date: Tue Dec 11 02:46:02 2001

> 3) How many CLISP users?

I can't tell. But some users have developed high visibility applications,
such as Paul Graham with Yahoo! Store (formerly ViaWeb Store). Check the
success stories page at CLiki:

  http://ww.telent.net/cliki

A while and a half back Bruno asked users how they were using CLISP. I
don't know whether those messages are in the archive. If anybody is
interested, I can collect the most interesting replies and post them here.

> 4) How many CLISP developers?

Up to 4: Bruno, Michael, Pierpaolo and Sam. Maintainers: is this correct?

Paolo
-- 
EncyCMUCLopedia * Extensive collection of CMU Common Lisp documentation
http://web.mclink.it/amoroso/ency/README
[http://cvs2.cons.org:8000/cmucl/doc/EncyCMUCLopedia/]

---

From: Paolo Amoroso <[email-masked]>
Date: Tue Dec 11 02:46:03 2001

> robustness of the "bazaar", if you will.  I find that there are many open 

I think CLISP's bazaar is quite robust. I have been using CLISP since
around 1992, but the project started a few years earlier. CLISP has been
under regular development, with frequent new releases, at least since then.

Paolo

---

From: [email-masked] (Dr. Edmund Weitz)
Date: Tue Dec 11 05:11:02 2001

Paolo Amoroso <[email-masked]> writes:

> A while and a half back Bruno asked users how they were using
> CLISP. I don't know whether those messages are in the archive. If
> anybody is interested, I can collect the most interesting replies
> and post them here.

That would be interesting, yes.

Edi.

---

From: Marco Antoniotti <[email-masked]>
Date: Tue Dec 11 06:53:04 2001

> From: Sam Steingold <[email-masked]>
> User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1.50
> Content-Type: text/plain; charset=us-ascii
> Sender: [email-masked]

  ...

> <http://sourceforge.net/tracker/?func=detail&aid=429122&group_id=1645&atid=351645>

Yep.  What is 'cbind'.  Also, what are the differences between your
h2lisp and Cparse?

Cheers

-- 
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group        tel. +1 - 212 - 998 3488
719 Broadway 12th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA                 http://bioinformatics.cat.nyu.edu
                    "Hello New York! We'll do what we can!"
                           Bill Murray in `Ghostbusters'.

---

From: "Dan McShan" <[email-masked]>
Date: Tue Dec 11 07:32:04 2001

cbind is a (somewhat obscure) lisp tool distributed by Franz that parses a
C/C++ header file and generates macros (ff:bind-c-function) which ultimately
implement Franz's FFI (ff:bind-c-export).  It will also emit C code required
for callbacks.  There is a version available online at
ftp.franz.com/pub/cbind It is implemented with some kludges to gcc.  They
have binaries for solaris, windows, and irix.  But porting is
straightforward (if kludgy) - you actually have to download gcc 2.7.2, patch
it and recompile to create a special version of gcc for cbind.

Dan

----- Original Message -----
From: "Marco Antoniotti" <[email-masked]>
To: <[email-masked]>
Cc: <[email-masked]>; <[email-masked]>
Sent: Tuesday, December 11, 2001 7:51 AM
Subject: Re: [clisp-list] High Performancs Clisp

> > not really.  I have some CL code, but it's not finished.
<http://sourceforge.net/tracker/?func=detail&aid=429122&group_id=1645&atid=3
51645>

---

From: Paolo Amoroso <[email-masked]>
Date: Tue Dec 11 12:01:06 2001

> That would be interesting, yes.

The relevant messages are attached here. If anybody has more up to date
information, I'd be interested too.

Paolo

---

From: Sam Steingold <[email-masked]>
Date: Tue Dec 11 13:10:04 2001

> * In message <[email-masked]>
> * Sent on Tue, 11 Dec 2001 11:42:23 +0100
> * Honorable Paolo Amoroso <[email-masked]> writes:
>

some are listed in the end of <http://clisp.cons.org/resources.html>

Please, do fill out this survey!
<https://sourceforge.net/survey/survey.php?group_id=1355&survey_id=12508>

-- 
Sam Steingold (http://www.podval.org/~sds)
Keep Jerusalem united! <http://www.onejerusalem.org/Petition.asp>
Read, think and remember! <http://www.iris.org.il> <http://www.memri.org/>
Perl: all stupidities of UNIX in one.

---

From: Kaz Kylheku <[email-masked]>
Date: Wed Dec 12 20:25:01 2001

In my image, I have the module linuxlibc6.

[1]> (setf d (linux:opendir "/tmp"))
#<FOREIGN-ADDRESS #x0826AA08>
[2]> (setf de (linux:readdir d))
#S(LINUX:dirent :|d_ino| 1120260 :|d_off| 12 :|d_reclen| 16 :|d_type| 0
   :|d_name| ".")
[3]> (slot-value de '|d_name|)

*** - SLOT-VALUE: The class #<STRUCTURE-CLASS LINUX:dirent> has no slot 
named |d_name|

---

From: Sam Steingold <[email-masked]>
Date: Thu Dec 13 10:09:03 2001

> * In message <[email-masked]>
> * On the subject of "[clisp-list] Accessing slots of c-structs in Linux package."
> * Sent on Wed, 12 Dec 2001 20:24:09 -0800 (PST)
> * Honorable Kaz Kylheku <[email-masked]> writes:
>

try linux::|d_name|

-- 
Sam Steingold (http://www.podval.org/~sds)
Keep Jerusalem united! <http://www.onejerusalem.org/Petition.asp>
Read, think and remember! <http://www.iris.org.il> <http://www.memri.org/>
Lisp: Serious empowerment.

---

From: Raymond Toy <[email-masked]>
Date: Thu Dec 13 14:55:03 2001

>>>>> "Sam" == Sam Steingold <[email-masked]> writes:

    >> *** - SLOT-VALUE: The class #<STRUCTURE-CLASS LINUX:dirent> has no slot 

    Sam> try linux::|d_name|

Then shouldn't the package name have been printed out with the
structure slot names?  Otherwise it's not readable?

Ray

---

From: Kaz Kylheku <[email-masked]>
Date: Thu Dec 13 19:16:01 2001

The only solution I have come up with is to call some function that
generates a null one and retain that value, then compare to that using
equalp. E.g.

    (defconstant *null-pointer* (linux::realloc (linux::malloc 1) 0))

    *null-pointer*
    ==> #<FOREIGN-ADDRESS #x00000000>

    (equalp *null-pointer* (linux::opendir "/asdfasdf"))
    ==> T

    (equalp *null-pointer* (linux::opendir "/etc"))
    ==> NIL

;)

---

From: Sam Steingold <[email-masked]>
Date: Fri Dec 14 05:27:01 2001

> * In message <[email-masked]>
> * On the subject of "Re: [clisp-list] Accessing slots of c-structs in Linux package."
> * Sent on 13 Dec 2001 17:54:24 -0500
> * Honorable Raymond Toy <[email-masked]> writes:
>
> structure slot names?

these are keyword args to make-struct, not slot names.

> Otherwise it's not readable?

it is.

-- 
Sam Steingold (http://www.podval.org/~sds)
Keep Jerusalem united! <http://www.onejerusalem.org/Petition.asp>
Read, think and remember! <http://www.iris.org.il> <http://www.memri.org/>
Parachute for sale, once used, never opened, small stain.