Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion CL subset?
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Rainer Joswig  
View profile  
 More options Nov 21 2004, 4:44 am
Newsgroups: comp.lang.lisp
From: Rainer Joswig <jos...@lisp.de>
Date: Sun, 21 Nov 2004 10:44:55 +0100
Local: Sun, Nov 21 2004 4:44 am
Subject: Re: CL subset?
In article <10q0milmhrlj...@corp.supernews.com>,
 Chris Capel <ch....@iba.nktech.net> wrote:

> Rainer Joswig wrote:

> > In article <10q035uh93d2...@corp.supernews.com>,
> >  Chris Capel <ch....@iba.nktech.net> wrote:

> >> sketer...@gmail.com wrote:

> >> > Other implementations might have more overhead (I
> >> > believe the SBCL core is something like 6 MB),

> >> ~ $ ls /usr/local/lib/sbcl/sbcl.core -l
> >> -rw-r--r--    1 root     root     23220224 Nov 14 02:10
> >> /usr/local/lib/sbcl/sbcl.core

> >> I don't know about you, but 23 MB for the default core seems a bit big to
> >> me. Or maybe I'm just being a Unix newbie ... ?

> > Is the file size the problem for you? Or the size of used
> > memory at runtime? The size of resident non-sharable memory
> > at runtime? For one Lisp or do you start several
> > independent Lisp processes?

> [snip]

> > Is that 23MB SBCL core shareable if you start more than one SBCL?
> > How much is that at runtime?

> Well, aside from the overcommitment of memory, which causes my process
> monitors to say SBCL takes up 864 MB of virtual (for every process), the
> whole 23.6 of the core is shared, while it adds an additional 8.9 resident.
> An additional process adds 2.3 MB to total usage immediately--somewhat
> contradictory, as it also reports 8.9 resident. But I probably don't know
> how to read these things.

> Now, this isn't a problem for a server or a development machine or a
> high-end workstation that many commercially developed lisp programs would
> be running on. But would you say that SBCL's (and CMUCL's) size is an
> anomaly?

All Lisp systems are different.

a) Lisps that have extensive development environments, large libraries,
   lots of extensions to ANSI CL. These tend to provide rich
   options for delivery. Compilation is native. The Lisps tend to
   be not really small. Generated code might be largish.
   Lots of bells and whistles. Can generate code with good performance.
   Commercial.

Allegro CL, LispWorks.

b) Lisps that don't have that good performance, but small footprint.
   They either use byte-codes or compile to (often not that efficient)
   compact code.

OpenMCL, MCL, CLisp, Corman CL, ...

c) special purpose Lisps for embedding and/or delivery.
   Means you can develop with them, but it might be
   useful to have another Lisp for development.

CLICC (dead), WCL (dead), ECL (actively maintained), ThinLisp
(?)

d) native compiling Lisps with often excellent performance

ACL, LispWorks, CMUCL, SBCL, ...

e) Lisps for the Windows platform with special support

Corman Lisp, Golden Common Lisp, Allegro CL for Windows, LispWorks for Windows

f) Lisps for the Mac OS X platform with special support

MCL, OpenMCL, LispWorks for Macintosh

g) cross-platform Lisps

CLisp, GCL, CMUCL, SBCL, ACL, LispWorks, ...

h) Lisps for multiprocessor machines

Scieneer Common Lisp, OpenMCL, Corman CL (?), ...

i) 64bit Lisps

Scieneer Common Lisp, Allegro CL, ...

j) Lisps on top of a Lisp operating system

Xerox Common Lisp, Symbolics Common Lisp, TI CL, ...

and so on.

Coming back to your question, yes, there are other Lisps that
tend to be generate large code and take quite a bit
of memory.

> I have little experience with other implementations, and now that
> I look, CLISP indeed only takes up a few megabytes in memory, most of that
> shared. That's less that twice as much as bash.

Yes, CLISP is small. So is OpenMCL on the Mac. IIRC you can compile
code with GCL to be relatively small.

> Can anyone speak as to whether there are difficulties with performance when
> using CLISP to write non-algorithm-intensive, interactive programs? I
> wouldn't imagine, on modern machines, that the difference would be
> noticable, especially for I/O bound applications, or foreign-library
> intensive ones.

CLisp runs Lisp either interpreted or compiled to byte-code.
For some applications that can be advantage. Usually other
Lisps will generate much faster running code. CLISP
has fast bignums.

> > How about ECL? CLISP? GCL? On the Mac, OpenMCL is also
> > relatively small.

> > There were several Lisps that tried to be smaller and/or
> > especially for delivery (WCL, ThinLisp, earlier versions
> > of XLisp, CLICC) pluss they tried to be atleast somehow compatible
> > with Common Lisp.

> But the problem with CLISP, and far worse with GCL and ECL, is the poor
> library support and non ANSI-ness.

Depends. Often libraries can be ported to CLISP.

Plus in everyday programming not-so-perfect ANSI-CL-compliance
does not really matter. Make sure you find a CL-USER
and a COMMON-LISP package and then go. ;-)

Something not to underestimate is that applications are
the drivers for the development of the Lisp systems.
Your requests, input, feedback, money (!!!) gives the
Lisp system implementor/vendor the feedback/motives
to develop his/her system...

> I looked into GCL today, and found it
> couldn't be used in SLIME! (Though I understand the maintainers aren't
> happy about this, but not exactly rolling in free-time or
> listener-supported motivation :-).)

The GCL is currently quite active. So it might be possible
that there will be something like that some time. In the meantime
just use ILISP...

> Now, as a target for deployment, that
> may not be such a big issue, and seeing as how GCL was based on gcc, I
> thought "Hey, maybe it supports some cool embeddable things like compiling
> to linkable libraries or taking out the compiler". It may be that that
> would be a solution for a past problem, when machines were smaller, but
> then GCL's been around for a while, hasn't it?

Sure. GCL is based on earlier Lisps that spawned a whole family
of implementations (KCL, AKCL, GCL, ... wasn't ECL earlier also
in the KCL-family?).

> Now that you've pointed it out, ECL and WCL seem to be up the alley I was
> referring to in my OP. But--and this is my curiosity here--they seem to be
> almost entirely absent from the general CL culture.

There is not a general CL culture (see above).

>While you'll find Cliki
> entries for them, they aren't mentioned much in other Cliki pages. You
> won't find them on many libraries' "supported" list (unless I've been
> selectively blind). They aren't mentioned in blogs, they aren't mentioned
> in usenet, they aren't mentioned much in #lisp. What's the reason for this?
> Do they have the some sort of incompleteness/weirdness/ obseleteness? Or
> maybe their users are just too happy to ever complain. :-) Maybe they have
> a separate culture...

WCL is mostly dead I think.

ECL is active, but not that widely used I would think.

> Is there a link for WCL that's more informative than http://wcl.kontiki.com/
> ? That page is rather sparse.

> > Many people had that problem over the time. Some
> > commercial Lisps also have their own answers to it.
> > LispWorks for example allows you to create
> > applications by supporting some mechanisms of making
> > the runtime smaller - though LispWorks is surely not the
> > smallest Lisp. The Delivery User Guide
> > (http://www.lispworks.com/reference/lw43/DV/html/deluser.htm)
> > explains it in detail.

> My head hurts thinking about all these issues. That and I've been trying to
> understand Arch (tla). Overload. Woah.

> I keep hearing about Lispwork's nice deployment and GUI and stuff. The Regex
> Coach is deployed using Lispworks, right? I may have to break down and buy
> a copy one of these days ... thought it'd be best if I could find a project
> at work to sneak it in for ...

Right. LispWorks has been used for the Regex Coach by Edi Weitz.
This should give you an impression what a small application
of LispWorks would look like.
Xanalys has another application written in LispWorks: Link Explorer -
which was 'Watson' in early times.
(http://www.xanalys.com/solutions/linkexplorer.html).

You can also do interesting applications for Windows with Allegro CL.
Franz has written an NFS server (!!!) for Windows in Allegro Common Lisp.
http://www.nfsforwindows.com/
Source is here: http://opensource.franz.com/nfs/

> So, the sort of modularity I referred to in my OP is desirable, right?
> Perhaps not a top priority, and perhaps increasingly irrelevant, and
> perhaps not something that will actually make it into any implementation,
> but ...

> Thanks for you time.

> Chris Capel


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.