Subject: [clisp-list] survey: native compilation/lispworks

From: "Blake D" <[email-masked]>
Date: Thu Dec 4 08:40:05 2003

Who here is interested in adding a native compilation option to clisp for
each platform that it supports?

I know that I for one would be willing to dedicate significant time to such
a project. Speed is important to the server programs I am writing, and
currently my only choices for cross platform native compilation of lisp for
Windows, Linux, and Macintosh, are LispWorks and Allegro.

Speaking of which, can anyone here give an opinion on the LispWorks product
line? They charge $1000 for the professional version for each platform. I
know they have an evaluation, but it would be great to get the opinion of
someone who has used the product a significant amount.

Blake

---

From: Sam Steingold <[email-masked]>
Date: Thu Dec 4 09:43:02 2003

> * Blake D <[email-masked]> [2003-12-04 09:39:57 -0700]:
>
> Who here is interested in adding a native compilation option to clisp
> for each platform that it supports?

Stefan Kain worked on a bytecode->C compiler.
I am not sure how far he got.

The idea is to eliminate to cost of interpret_bytecode_() function in
eval.d, which would speed up CLISP by up to 50%.

If you want a full-scale "Sufficiently Smart Compiler" with type
inferencing &c &c &c, your effort is probably better spent porting CMUCL
and/or SBCL to win32 & Mac.

> I know that I for one would be willing to dedicate significant time to
> such a project.

Personally, I think that it is more important to get MT & CLIM working
on CLISP (and speed-wise, optional tail-call - not just recursive! -
elimination is a better bang/buck optimization).  YMMV.

> Speed is important to the server programs I am writing,

A better way might be to turn your bottlenecks to C and link them to
CLISP as modules.

> Speaking of which, can anyone here give an opinion on the LispWorks
> product line?

You might have better luck on this if you asked comp.lang.lisp.

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Let us remember that ours is a nation of lawyers and order.

---

From: Raymond Toy <[email-masked]>
Date: Thu Dec 4 10:10:01 2003

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

    Sam> Personally, I think that it is more important to get MT & CLIM working
    Sam> on CLISP (and speed-wise, optional tail-call - not just recursive! -

Do you think clisp could run McCLIM fast enough to be usable?  Just
curious.  McCLIM is pretty slow with cmucl on a 400 MHz sparc box.
It's pretty slow on a 900 MHz x86 box too.

Ray

---

From: Sam Steingold <[email-masked]>
Date: Thu Dec 4 10:46:01 2003

> * Raymond Toy <[email-masked]> [2003-12-04 13:09:27 -0500]:
>
>     Sam> Personally, I think that it is more important to get MT &
>     Sam> CLIM working on CLISP
>
> Do you think clisp could run McCLIM fast enough to be usable?

yes.  I don't think CLISP is _that_ much slower than CMUCL.
can you try it?

> McCLIM is pretty slow with cmucl on a 400 MHz sparc box.

wow.

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Abandon all hope, all ye who press Enter.

---

From: Raymond Toy <[email-masked]>
Date: Thu Dec 4 10:54:04 2003

>> Do you think clisp could run McCLIM fast enough to be usable?

    Sam> yes.  I don't think CLISP is _that_ much slower than CMUCL.
    Sam> can you try it?

I can try, but I'm not motivated to do anything more than just
compiling it and running a few demos.  I don't use mcclim at all. :-)

    >> It's pretty slow on a 900 MHz x86 box too.

    Sam> wow.

I think that's subjective.  I think mozilla is pretty slow on these
boxes too.  Far slower than Netscape 4.x.

Ray

---

From: Sam Steingold <[email-masked]>
Date: Thu Dec 4 12:35:07 2003

> * Raymond Toy <[email-masked]> [2003-12-04 13:53:47 -0500]:
>
> compiling it and running a few demos.

please do.  thanks.

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
((lambda (x) `(,x ',x)) '(lambda (x) `(,x ',x)))

---

From: Paolo Amoroso <[email-masked]>
Date: Thu Dec 4 12:42:05 2003

> Do you think clisp could run McCLIM fast enough to be usable?  Just

You bet. Early versions of McCLIM did run on CLISP (only with MIT CLX
and not NCLX, I seem to remember). Performance was "acceptable" with
CLISP and "good" with CMUCL under Linux on my old 200 MHz, non-MMX
Pentium PC with 64 MB of RAM...

> It's pretty slow on a 900 MHz x86 box too.

...but now McCLIM just flies on my new 2.8 GHz Pentium IV monster with
2 GB of RAM :) The CLIM listener takes around 15 seconds to draw the
impressive graph generated by the command:

  Show Class Subclasses (class) t

Paolo
-- 
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film

---

From: Raymond Toy <[email-masked]>
Date: Fri Dec 5 06:32:00 2003

>>>>> "Paolo" == Paolo Amoroso <[email-masked]> writes:

    >> Do you think clisp could run McCLIM fast enough to be usable?  Just

    Paolo> You bet. Early versions of McCLIM did run on CLISP (only with MIT CLX
    Paolo> and not NCLX, I seem to remember). Performance was "acceptable" with
    Paolo> CLISP and "good" with CMUCL under Linux on my old 200 MHz, non-MMX
    Paolo> Pentium PC with 64 MB of RAM...

Oh, good!  I don't have to try building it and running it then.  This
is good!

    >> It's pretty slow on a 900 MHz x86 box too.

    Paolo> ...but now McCLIM just flies on my new 2.8 GHz Pentium IV monster with
    Paolo> 2 GB of RAM :) The CLIM listener takes around 15 seconds to draw the
    Paolo> impressive graph generated by the command:

    Paolo>   Show Class Subclasses (class) t

That took quite a while on my PC and Sun boxes.  Don't remember
exactly how long but it was in the minutes.

Ray

---

From: Paolo Amoroso <[email-masked]>
Date: Fri Dec 5 08:22:01 2003

>>>>>> "Paolo" == Paolo Amoroso <[email-masked]> writes:
[...]
> Oh, good!  I don't have to try building it and running it then.  This

This *was* good. CLISP stopped working with McCLIM when presentations,
which are based on the MOP, were added to McCLIM.

Paolo

---

From: Sam Steingold <[email-masked]>
Date: Fri Dec 5 08:40:00 2003

> * Paolo Amoroso <[email-masked]> [2003-12-05 16:45:58 +0100]:
>
> CLISP stopped working with McCLIM when presentations,

what MOP functionality is used?
CLISP CLOS is fairly MOPish, maybe a small compatibility layer could help?

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Computers are like air conditioners: they don't work with open windows!

---

From: Paolo Amoroso <[email-masked]>
Date: Sat Dec 6 08:53:00 2003

> what MOP functionality is used?

The short answer is: I don't know :)

When presentations were added to McCLIM, I was no longer able to
compile it with CLISP. I seem to remember that the use of
"metaclasses" was mentioned in this context, and I assumed the code
used actual MOP metaclasses (i.e. the :METACLASS option of DEFCLASS).

But a superficial inspection of the McCLIM code shows that the
metaclass functionality is being recreated in some way. So, CLISP
might still be able to run McCLIM with "limited" effort.

Disclaimer: I am not familiar with the McCLIM internals.

Paolo

---

From: Sam Steingold <[email-masked]>
Date: Sat Dec 6 09:01:02 2003

> * Paolo Amoroso <[email-masked]> [2003-12-06 16:27:27 +0100]:
>
> So, CLISP might still be able to run McCLIM with "limited" effort.

Any volunteers to make this "limited effort"?

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Beauty is only a light switch away.

---

From: "Thomas F. Burdick" <[email-masked]>
Date: Sat Dec 6 09:18:01 2003

> Any volunteers to make this "limited effort"?

I'm not volunteering (I'm overextended as it is), but FWIW, this would
be the single most important thing to improve CLISP's usability for
me.  Not running McCLIM per se, but having some MOP support (which
would also help provide example code for adding more MOP support).

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | No to Imperialist war |                        
     ,--'    _,'   | Wage class war!       |                        
    /       /      `-----------------------'                        
   (   -.  |                               
   |     ) |                               
  (`-.  '--.)                              
   `. )----'

---

From: Paolo Amoroso <[email-masked]>
Date: Sun Dec 7 01:51:01 2003

> CLISP CLOS is fairly MOPish, maybe a small compatibility layer could help?

I forgot another important reason why McCLIM can not currently work
with CLISP: the lack of multiprocessing support.

Paolo