[Posted to comp.lang.lisp and comp.lang.pop.
To reply replace "Aaron.Sloman.XX" with "A.Sloman"]
Joshua Sutterfield <joshu@umr.edu> writes (in comp.lang.lisp):
> Date: 3 Nov 1999 16:49:25 -0600
> Organization: University of Missouri - Rolla
> ...
> I'm not sure what other options there are for compiling lisp in
> windows... Could anyone suggest a non-expensive way to crank me
> out a DOS/windows executable LISP
> program?
I am not sure if this will help: the poplog system runs under NT
and Win95/98 and includes a version of common lisp compatible
with CLTL2. It is available at the FreePoplog site
ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/freepoplog.html
http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
and the full system sources for the Windows/NT poplog are browsable
in the directory
http://www.cs.bham.ac.uk/research/poplog/src/master/S.pcwnt/
and also available in a gzipped tar file
ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/new/pcwnt-sources.tar.gz
or
http://www.cs.bham.ac.uk/research/poplog/new/pcwnt-sources.tar.gz
(The other versions of poplog, for unix, already include sources:
but I don't know how to rebuild a Windows/NT package with additional
files! Also the unix versions support graphics, based on the X
window system, whereas the NT/win9x version has no graphics.
It was actually developed for NT, and a few system calls may not
work with win9x until some kind soul fixes them and contributes
the fixes to the free poplog site -- e.g. timing procedures.)
Re: building an executable.
In principle, by studying the documentation in
http://www.cs.bham.ac.uk/research/poplog/sysdoc/
along with the documentation included in Poplog (huge amounts) you
may be able to work out how to create your own executable.
Alternatively, you can far more easily build a saved image
containing the Common lisp extensions to poplog plus your own
code, and then deliver your program as the basic executable
(about 2MBytes or less: depending on how it is linked) plus the
saved image (about 1.6 to 2.6Mbytes for the lisp system,
depending what you want included) plus whatever your code
requires).
Starting up a poplog saved image involves giving a command of the
form
basepop11 +myimage.psv
or if you use layered saved images
basepop11 +myimage1 +myimage2 ...
and generally this is quite fast on a PC+linux system. I don't
know how windows compares.
E.g. on a 200Mhz PC with 32 Mbytes memory running Redhat 6.1,
using a remote file server, starting up such a command takes a
few seconds the first time (delay mostly due to fetching
the files via NFS?), and a fraction of a second after that,
presumably because of the local cache. Using a local disk I
expect it would always start up faster.
If you wanted to leave out part of the lisp system, e.g. CLOS or
formatted printing, etc. then you could compile a saved image
which includes only the required subset of common lisp
facilities: it would be smaller and would start up faster.
It's a bit harder to rebuild the basepop11 to leave out things
you don't want (e.g. basepop11 includes the Ved editor and
support for the prolog subsystem of the Poplog virtual machine).
You can't leave out the core pop11 system as that is needed to
compile the common lisp source.
Although this works and has been used for real lisp applications,
it won't run as fast as a dedicated lisp system, e.g. Allegro.
But it is totally free with full system sources available (thanks
to Sussex University and ISL, who used to sell it as a commercial
system).
I suspect that for some people it is useful having a distinction
between (1) the core system sources which are not easy to
understand or change, and which produce the basic executable,
with compiler, garbage collector, arithmetic operators, etc. etc.
and (2) the high level system sources (e.g. in Lisp or Pop-11)
which are much easier to understand and change and can be
incrementally compiled as needed. This relates to recent
discussions on comp.lang.lisp of the pros and cons of "open
source".
Please cross-post queries or comments about poplog common lisp to
comp.lang.pop
Thanks.
Aaron
==
--
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
EMAIL A.Sloman AT cs.bham.ac.uk (NB: Anti Spam address)
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/
|