From: Alan Manuel K. Gloria
Subject: Help choose a CL implementation!
Date: 
Message-ID: <1142175912.345242.314790@j52g2000cwj.googlegroups.com>
There are quite a lot of free CL implementations out there in the big
WWW: CLisp, SBCL, ECL, GCL, CMUCL, etc etc.  More than a few, so it's
not quite clear for the newbie (like me...) just which one he should be
working on.

>From what I've gathered from the group that this is actually a Good
Thing, since it means that you can actually get the implementation
that's Right For Your Problem.

The problem for some people, however, is What's Right for My Problem?

The CLiki is a somewhat helpful resource for this question:
http://www.cliki.net/Common%20Lisp%20implementation

However, it doesn't seem complete, in the sense that it offers pretty
much just the basic details of each implementation.  And it may be TOO
complete, in the sense that it offers information on 18 different
implementations.  From what I've gathered from the group, CLisp seems
to be the preferred (free) implementation, together with SBCL and
CMUCL.

So, can we discuss the strengths and weaknesses of each of the three
main implementations above?  Are there other implementations that could
be considered "main" enough to also discuss?

For example, I gather that CLisp has a small memory footprint - so I
would guess that a system based on CGI would be pretty powerful with
this.  CLisp, I gather, doesn't have threads though - so I would think
that if you're doing a lot of computation and trying to put a web
interface to that computation, CLisp wouldn't be quite as appropriate -
you can't put the computation on a separate thread from the server
handling code, you need a separate process. (is what I'm saying even
correct??)  SBCL (?) seems to have threads IIRC, but a larger memory
footprint that CLisp.

...and since we're on that topic, I'd like to roughly describe the web
app I have in mind, and ask advice on which CL implementation would be
appropriate for it.  I have three parts that I have in mind: a
webcrawler, a data mining module, and the web interface.  My webcrawler
trawls the internet, with the occassional need to update any pages that
have become out-of-date in my cache.  The data mining module connects
to the webcrawler's cache, gathering data, and telling the webcrawler
where to go *sometimes* (basically sometimes telling it which pages
have priority in crawling, as opposed to its normal random crawl).  The
web interface talks to the data miner to present the data to the user.

The webcrawler obviously needs good socket support and some fast string
parsing, while the data mining module needs pretty fast string compare
operations and mathematical computations (I might be able to reduce my
math needs to use integers, but they'd be pretty big integers).  And
the web interface needs to be nice to the user ;) - fast access
preferably via Apache, possibly Apache+mod_lisp. (LOL writing the next
Google hahaha! jk!)  And I'm using Windows (now you KNOW I'm not
writing the next Google!)

Can anyone advise me on which implementations would work best for which
parts?  CLisp seems to have good socket support and also has regexp's
built in, so I think the webcrawler would look good in that, but its
lack of threads makes me wonder if it would be appropriate on the front
end.  It would also be nice to have the webcrawler and data miner in
the same executable, so that at least some of the cached data could be
shared in-memory.

Thanks in advance!

From: Sacha
Subject: Re: Help choose a CL implementation!
Date: 
Message-ID: <RrXQf.311135$YN3.10154016@phobos.telenet-ops.be>
> Can anyone advise me on which implementations would work best for which
> parts?  CLisp seems to have good socket support and also has regexp's
> built in, so I think the webcrawler would look good in that, but its
> lack of threads makes me wonder if it would be appropriate on the front
> end.  It would also be nice to have the webcrawler and data miner in
> the same executable, so that at least some of the cached data could be
> shared in-memory.
>

After much looking around i came to the conclusion there was no
free CL implementation on windows that would suit your (and my) needs.

You could use CLisp though, and somehow spawn a new process and talk to it 
via pipes or something.

Sacha 
From: Alan Manuel K. Gloria
Subject: Re: Help choose a CL implementation!
Date: 
Message-ID: <1142255183.808597.324650@j52g2000cwj.googlegroups.com>
@Sacha:
hmm, hadn't thought of that...

lemme think of the implications of that... Am thinking if there is some
way of opening a named pipe on Windows CLisp...
From: Thomas F. Burdick
Subject: Re: Help choose a CL implementation!
Date: 
Message-ID: <xcv3bhmnacu.fsf@conquest.OCF.Berkeley.EDU>
"Alan Manuel K. Gloria" <········@gmail.com> writes:

> SBCL (?) seems to have threads IIRC, but a larger memory
> footprint that CLisp.

So?  Are you using a mid-1990's computer or a mid-2000's computer?  If
the latter, it shouldn't matter.

> ...and since we're on that topic, I'd like to roughly describe the web
> app I have in mind, and ask advice on which CL implementation would be
> appropriate for it.  I have three parts that I have in mind: a
> webcrawler, a data mining module, and the web interface.

Use SBCL.  You can asdf-install trivial-http, araneida, cl-ppcre, and
cl-html-parse, which probably solve most of your problem.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | Free Mumia Abu-Jamal! |
     ,--'    _,'   | Abolish the racist    |
    /       /      | death penalty!        |
   (   -.  |       `-----------------------'
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               
From: Alan Manuel K. Gloria
Subject: Re: Help choose a CL implementation!
Date: 
Message-ID: <1142254222.254306.216380@i40g2000cwc.googlegroups.com>
It seems SBCL is really complete only on Unix systems - the Windows
version I have has "This is experimental prerelease support for the
Windows platform: use at your own risk. 'Your kitten of death
awaits!'". I haven't checked if there are updates yet.  asdf doesn't
seem to work on my Windows copy of SBCL: (apropos 'asdf) shows ASDF and
ASDF-INSTALL, but running (asdf-install ...) on anything gives me a
"debugger invoked on a UNDEFINED-FUNCTION".

Erk.  Do I really need to stop being a wimp, uninstall Windows and
install Linux instead?
From: R. Mattes
Subject: Re: Help choose a CL implementation!
Date: 
Message-ID: <pan.2006.03.13.16.23.38.983796@hobbes.mh-freiburg.de>
On Mon, 13 Mar 2006 04:50:22 -0800, Alan Manuel K. Gloria wrote:

> It seems SBCL is really complete only on Unix systems - the Windows
> version I have has "This is experimental prerelease support for the
> Windows platform: use at your own risk. 'Your kitten of death
> awaits!'". I haven't checked if there are updates yet.  asdf doesn't
> seem to work on my Windows copy of SBCL: (apropos 'asdf) shows ASDF and
> ASDF-INSTALL, but running (asdf-install ...) on anything gives me a
> "debugger invoked on a UNDEFINED-FUNCTION".
> 
> Erk.  Do I really need to stop being a wimp, uninstall Windows and
> install Linux instead?

This is not about being a WIMP. Operating systems, editor, compilers
and the like are _tools_ (or instruments, in the hands of the truly
gifted). You need to choose the ones that both fit your hands and 
are appropriate for the job. For the task you describe SBCL/win
is most likely completely out of question. Have you checked Corman
Lisp or LispWorks? I'm not a Windows programmer, but IIRC something
like a webserver should probably be implemented as a service. None
of the implementations mentioned so far can build those.

BTW, no need to uninstall windows. Just use a dual boot or run
Linux in a VMware instance. Go to the VMware website and down-
load the _free_ player and the Ubuntu virtual machine (yes, free too!),
start it up, select 'Administration | Synaptic Package Manager', search
for SBCL, mark it and hit the 'Apply' button. [hint: the password is
"Ubuntu"].

 HTH Ralf Mattes
From: Thomas F. Burdick
Subject: Re: Help choose a CL implementation!
Date: 
Message-ID: <xcv1wwxlcdk.fsf@conquest.OCF.Berkeley.EDU>
"Alan Manuel K. Gloria" <········@gmail.com> writes:
> > ...and since we're on that topic, I'd like to roughly describe the web
> > app I have in mind, and ask advice on which CL implementation would be
> > appropriate for it.  I have three parts that I have in mind: a
> > webcrawler, a data mining module, and the web interface.

I wrote:
> Use SBCL.  You can asdf-install trivial-http, araneida, cl-ppcre, and
> cl-html-parse, which probably solve most of your problem.
> I wrote:

"Alan Manuel K. Gloria" <········@gmail.com> writes:
> It seems SBCL is really complete only on Unix systems

Indeed.  You buried the fact that you wre using Windows pretty deeply
in your post, or I wouldn't have recommended it.

> - the Windows
> version I have has "This is experimental prerelease support for the
> Windows platform: use at your own risk. 'Your kitten of death
> awaits!'". I haven't checked if there are updates yet.  asdf doesn't
> seem to work on my Windows copy of SBCL: (apropos 'asdf) shows ASDF and
> ASDF-INSTALL, but running (asdf-install ...) on anything gives me a
> "debugger invoked on a UNDEFINED-FUNCTION".

(a) that's a fairly old version, (b) asdf-install is invoked with the
asdf-install:install function, (c) I really wouldn't recommend doing
production work with sbcl/win32 anyhow.

> Erk.  Do I really need to stop being a wimp, uninstall Windows and
> install Linux instead?

Well, *I* don't think you should be using Windows for a production
server at all.  On Windows, you should use one of the commercial
Lisps.  Or, bite the bullet and buy a Mac.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | Free Mumia Abu-Jamal! |
     ,--'    _,'   | Abolish the racist    |
    /       /      | death penalty!        |
   (   -.  |       `-----------------------'
   |     ) |                               
  (`-.  '--.)                              
   `. )----'