From: David Steuber "The Interloper
Subject: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <3617b856.162984@news.newsguy.com>
I've been playing with my Linux (SuSE 5.3) installation, which has
diverted me from Lisp.  In fact, I have to start Graham's book from
the beginning again because I managed to forget everything.

I skipped ahead and looked at the CLOS section, briefly.  Very neat.
I want to use it.  I also spent some time looking through the book and
saw that I couldn't find things that I am used to having available.
Perhaps they are available as libraries rather than the language
proper (which is ok, C++ does that).

Here is what I would like to do in Lisp (All references to Lisp mean
Common Lisp).  I would like to write an X-Windows application that has
distributed functionality (via sockets).  I need to be able to link
with the X libs and use multi threading and event handling.  Nothing I
have seen in Graham's book (ANSI Common Lisp) mentions any of that
stuff.

So here are the $64 questions.  Can I do these things in Lisp?  Can I
link to .so files that use C linkage (or what ever the Linux standard
is for shared objects)?  Can I use OpenGL (if the libraries are
available)?  Most important, can I use an event driven architecture
and do multiple threading with mutexes for synchronization?

Next question.  Assuming the above are answered in the affirmative,
which Lisp does this group recommend out of the following: CLisp and
GNU Lisp?  These came with Linux.  I don't know about CMULisp.  I
would have to look.  A lot of stuff came with the distribution.

Oh yes, I would like to use GNU Emacs as my editor.

I think I am now ready to go with this.  Given that my requirements
can be met, I would like to get hacking as soon as possible.  All
feedback is appreciated.  Flames will be piped to /dev/null :-).

--
David Steuber (ver 1.31.1b)
http://www.david-steuber.com
To reply by e-mail, replace trashcan with david.

When the long night comes, return to the end of the beginning.
--- Kosh (???? - 2261 AD) Babylon-5

"Where do you want to go tomorrow?" --- KDE tool tip

From: David B. Lamkins
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <BpQR1.21023$K02.12368613@news.teleport.com>
In article <···············@news.newsguy.com> , ········@david-steuber.com
(David Steuber "The Interloper") wrote:

[snip]

>Here is what I would like to do in Lisp (All references to Lisp mean
>Common Lisp).  I would like to write an X-Windows application that has
>distributed functionality (via sockets).  I need to be able to link
>with the X libs and use multi threading and event handling.  Nothing I
>have seen in Graham's book (ANSI Common Lisp) mentions any of that
>stuff.
>
>So here are the $64 questions.  Can I do these things in Lisp?  Can I
>link to .so files that use C linkage (or what ever the Linux standard
>is for shared objects)?  Can I use OpenGL (if the libraries are
>available)?  Most important, can I use an event driven architecture
>and do multiple threading with mutexes for synchronization?
>

Common Lisp has not yet standardized the things you've listed. 
Specifically, you'll need at least lightweight processes and a foreign
function interface.  (A Lisp sockets API could be built on top of those, if
not already provided by the implementation.)

Different Common Lisp implementations meet some, maybe all, of your
requirements.  Again, their support will be done in an
implementation-specific manner.

>Next question.  Assuming the above are answered in the affirmative,
>which Lisp does this group recommend out of the following: CLisp and
>GNU Lisp?  These came with Linux.  I don't know about CMULisp.  I
>would have to look.  A lot of stuff came with the distribution.
>

GNU Lisp has fallen off the curve.  AFAIK, this is incomplete (not a full
implementation of ANSI Common Lisp) and unsupported.

CLISP is actively supported and developed.  I haven't had reason to look at
it for several years, so can't comment on its current state.

CMUCL is probably the closest match to your requirements for a freeware,
noncommercial implementation.

Franz makes their Allegro CL available for personal, noncommercial use.  It
is supported on certain versions of Linux -- see <http://www.franz.com> for
complete information.  I don't believe that you are allowed to redistribute
applications built using this environment.  However, you could probably
distribute your application as source or fasl files, and require your users
to pick up their own copy of the Franz Allegro CL freeware.

>Oh yes, I would like to use GNU Emacs as my editor.
>

This is conventional for running Lisp on Unix-like systems.  Take a look at
"inferior lisp mode".

[snip]

---
David B. Lamkins <http://www.teleport.com/~dlamkins/>
From: Rainer Joswig
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <joswig-0510980202140001@194.163.195.67>
In article <························@news.teleport.com>, "David B.
Lamkins" <········@teleport.com> wrote:

> >Oh yes, I would like to use GNU Emacs as my editor.
> >
> 
> This is conventional for running Lisp on Unix-like systems.  Take a look at
> "inferior lisp mode".

Franz has a Lisp mode for Emacs.
Another Lisp mode for Emacs is provided via ILISP.

-- 
http://www.lavielle.com/~joswig
From: Steve Gonedes
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <m2r9wn9443.fsf@KludgeUnix.com>
········@david-steuber.com (David Steuber "The Interloper") writes:

< So here are the $64 questions.  Can I do these things in Lisp?  Can I
< link to .so files that use C linkage (or what ever the Linux standard
< is for shared objects)?  Can I use OpenGL (if the libraries are
< available)?  Most important, can I use an event driven architecture
< and do multiple threading with mutexes for synchronization?

I think I saw a wrapper for open-GL floating around someplace. It can
probably be found by looking around the ALU if you're interested:
http://www.elwoodcorp.com/alu/index.htm.

There is a library called clx that comes with most unix lisp
implementations that lets you use X-windows with lisp - which you may
find useful.
From: Jeffrey Mark Siskind
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <yq7af3bwxgw.fsf@qobi.nj.nec.com>
Steve Gonedes <········@worldnet.att.net> writes:
> 
> ········@david-steuber.com (David Steuber "The Interloper") writes:
> 
> < So here are the $64 questions.  Can I do these things in Lisp?  Can I
> < link to .so files that use C linkage (or what ever the Linux standard
> < is for shared objects)?  Can I use OpenGL (if the libraries are
> < available)?  Most important, can I use an event driven architecture
> < and do multiple threading with mutexes for synchronization?
> 
> I think I saw a wrapper for open-GL floating around someplace.

http://www.neci.nj.nec.com/homepages/mann/software-available.html

    Jeff (http://www.neci.nj.nec.com/homepages/qobi)
From: David Steuber "The Interloper
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <361d4a01.5421595@news.newsguy.com>
On 5 Oct 1998 01:49:53 GMT, Steve Gonedes <········@worldnet.att.net>
claimed or asked:

% I think I saw a wrapper for open-GL floating around someplace. It can
% probably be found by looking around the ALU if you're interested:
% http://www.elwoodcorp.com/alu/index.htm.
% 
% There is a library called clx that comes with most unix lisp
% implementations that lets you use X-windows with lisp - which you may
% find useful.

Thanks for the remarkably swift feedback, Steve, Rainer, and David.

I'll look to see if cmucl is in my distribution.  It looks like I
should lean towards clisp rather than gcl from what David said.

I am disappointed that there is no standard multithreading
architecture in CL.  Is there a design pattern for one?  I would like
to have an X GUI that is responsive even when background tasks are at
work.  Synchronization is also necessary.

I think the biggest handicap I have with Lisp is that I come from a
C++ background.  All the other languages I have used have been
somewhat similar.  Lisp is so different.

I hope to be writing toy code in XEmacs under Linux 2.0.35 by next
weekend.  I need to get my .emacs file set up.  My installation is
still fresh and doesn't have that lived in feel yet :-).

I hope I don't annoy you people too much with my ignorance.  I am
jumping into the deep end of the pool, without any swimming lessons.
I am also used to Win32 rather than X.  Stranger in a strange land.
Need to grok.

--
David Steuber (ver 1.31.1b)
http://www.david-steuber.com
To reply by e-mail, replace trashcan with david.

When the long night comes, return to the end of the beginning.
--- Kosh (???? - 2261 AD) Babylon-5

"Where do you want to go tomorrow?" --- KDE tool tip
From: Rainer Joswig
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <joswig-0510981334180001@pbg3.lavielle.com>
In article <················@news.newsguy.com>, ········@david-steuber.com
wrote:

> I'll look to see if cmucl is in my distribution.  It looks like I
> should lean towards clisp rather than gcl from what David said.

CMUCL is quite cool.

> I am disappointed that there is no standard multithreading
> architecture in CL.  Is there a design pattern for one?

I guess most are copying the one from Symbolics.
CL-HTTP has to deal with all these - so there is something
to learn from CL-HTTP code. Well, we should put the
Symbolics Docs on the Web, so that the guessing what
this stuff should look like or where it comes from
has an end. ;-)

>  I would like
> to have an X GUI that is responsive even when background tasks are at
> work.

Well, CMUCL has kind of a mechanism for it. The
newer version for Linux/FreeBSD/86k do have threads.
Most of the commercial Lisps (Genera, ACL, LispWorks, MCL,
LCL, (others?)) have threads, too.

> I think the biggest handicap I have with Lisp is that I come from a
> C++ background.  All the other languages I have used have been
> somewhat similar.  Lisp is so different.

True. And there are lots of new concepts available
for Lisp. Some are not really production strength - others
are. People need to be open minded.

-- 
http://www.lavielle.com/~joswig
From: Tim Bradshaw
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <ey367dzcdnl.fsf@wiay.aiai.ed.ac.uk>
* David Steuber "The Interloper" wrote:
> I am disappointed that there is no standard multithreading
> architecture in CL.  Is there a design pattern for one?  I would like
> to have an X GUI that is responsive even when background tasks are at
> work.  Synchronization is also necessary.

> I think the biggest handicap I have with Lisp is that I come from a
> C++ background.  All the other languages I have used have been
> somewhat similar.  Lisp is so different.

Is there a standard for multithreading in C++? (I don't count Posix or
whatever windows does).

--tim
From: David Steuber "The Interloper
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <36257f45.84593499@news.newsguy.com>
On 05 Oct 1998 14:59:58 +0100, Tim Bradshaw <···@aiai.ed.ac.uk>
claimed or asked:

% Is there a standard for multithreading in C++? (I don't count Posix or
% whatever windows does).

No, there isn't.  It is an OS detail left to library calls.  Java is
the only language I am familiar with that has built in thread support.

I have no objections to using a library or design pattern for
multi-threading.

--
David Steuber (ver 1.31.1b)
http://www.david-steuber.com
To reply by e-mail, replace trashcan with david.

When the long night comes, return to the end of the beginning.
--- Kosh (???? - 2261 AD) Babylon-5

"Where do you want to go tomorrow?" --- KDE tool tip
From: David B. Lamkins
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <sD5S1.21506$K02.12781825@news.teleport.com>
In article <················@news.newsguy.com> , ········@david-steuber.com
(David Steuber "The Interloper") wrote:

[snip]

>I am disappointed that there is no standard multithreading
>architecture in CL.  Is there a design pattern for one?  I would like
>to have an X GUI that is responsive even when background tasks are at
>work.  Synchronization is also necessary.

Someone has put together a file that abstracts away the differences among
many of the available implementations.  See
<http://www.cyc.com/users/gadbois/processes.lisp>.

[snip]

---
David B. Lamkins <http://www.teleport.com/~dlamkins/>
From: Martin Cracauer
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <6vdhut$n1e$1@counter.bik-gmbh.de>
>I am disappointed that there is no standard multithreading
>architecture in CL.  Is there a design pattern for one?  I would like
>to have an X GUI that is responsive even when background tasks are at
>work.  Synchronization is also necessary.

http://www.cons.org/cracauer/lisp-threads.html is an overview of
Threads Interfaces in various existing Lisp implementations. 

Martin
From: David Steuber "The Interloper
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <361aae10.162108049@news.newsguy.com>
On 6 Oct 1998 16:53:49 GMT, ········@not.mailable (Martin Cracauer)
claimed or asked:

% http://www.cons.org/cracauer/lisp-threads.html is an overview of
% Threads Interfaces in various existing Lisp implementations. 

CLIM only available for commercial Lisps?  I'm looking at clisp or
cmulisp for Linux.

--
David Steuber (ver 1.31.1b)
http://www.david-steuber.com
To reply by e-mail, replace trashcan with david.

When the long night comes, return to the end of the beginning.
--- Kosh (???? - 2261 AD) Babylon-5

"Where do you want to go tomorrow?" --- KDE tool tip
From: Mike McDonald
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <VrNS1.23879$K02.14079618@news.teleport.com>
In article <··················@news.newsguy.com>,
	········@david-steuber.com (David Steuber "The Interloper") writes:
> On 6 Oct 1998 16:53:49 GMT, ········@not.mailable (Martin Cracauer)
> claimed or asked:
> 
> % http://www.cons.org/cracauer/lisp-threads.html is an overview of
> % Threads Interfaces in various existing Lisp implementations. 
> 
> CLIM only available for commercial Lisps?  I'm looking at clisp or
> cmulisp for Linux.

  Yes, CLIM is only available for commercial lisps.

  Mike McDonald
  ·······@mikemac.com
From: David Steuber "The Interloper
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <362680c0.84972604@news.newsguy.com>
On Mon, 05 Oct 1998 15:31:36 GMT, "David B. Lamkins"
<········@teleport.com> claimed or asked:

% Someone has put together a file that abstracts away the differences among
% many of the available implementations.  See
% <http://www.cyc.com/users/gadbois/processes.lisp>.

Thanks!

Are lisp files typically this small?

--
David Steuber (ver 1.31.1b)
http://www.david-steuber.com
To reply by e-mail, replace trashcan with david.

When the long night comes, return to the end of the beginning.
--- Kosh (???? - 2261 AD) Babylon-5

"Where do you want to go tomorrow?" --- KDE tool tip
From: David B. Lamkins
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <xgiS1.22316$K02.13206803@news.teleport.com>
In article <·················@news.newsguy.com> , ········@david-steuber.com
(David Steuber "The Interloper") wrote:

>On Mon, 05 Oct 1998 15:31:36 GMT, "David B. Lamkins"
><········@teleport.com> claimed or asked:
>
>% Someone has put together a file that abstracts away the differences among
>% many of the available implementations.  See
>% <http://www.cyc.com/users/gadbois/processes.lisp>.
>
>Thanks!
>
>Are lisp files typically this small?

I recently wrote in Lisp a 2,000 line program that performed the same
functions as about 30,000 lines of C++ code.  Other anecdotes I've heard --
and code I've seen or written -- suggest that a size differential of 5-15
times is fairly typical.  That's the nice part of not _having_ to push bits
to solve a complex problem; a lot of what a C/C++ programmer must do is
already done by the "library" in Common Lisp.

---
David B. Lamkins <http://www.teleport.com/~dlamkins/>
From: R. Toy
Subject: Re: CLisp or GNULisp; CLOS for sure
Date: 
Message-ID: <361990B1.7B3B5C2C@mindspring.com>
David Steuber The Interloper wrote:
> So here are the $64 questions.  Can I do these things in Lisp?  Can I
> link to .so files that use C linkage (or what ever the Linux standard
> is for shared objects)?  Can I use OpenGL (if the libraries are

The other questions have already been answered.  I'll just say that I
don't think clisp has an easy way to link to C objects.  GCL has a way,
but not well documented, but should work.  CMUCL probably has easiest
method of linking with shared libs and objects.

Ray

-- 
---------------------------------------------------------------------------
----> Raymond Toy	····@mindspring.com
                        http://www.mindspring.com/~rtoy