Re: Windows Common LISP
- From: jenspettersen@xxxxxxxxx
- Date: Mon, 10 Nov 2008 11:11:26 -0800 (PST)
On Nov 10, 3:10 am, jvdvyah <benkooij...@xxxxxxxxx> wrote:
At the risk of inviting ridicule, I have a proposal and am looking for
feedback, suggestions, tips and pointers that can help me out.
I've been a LISP-lurker for a while now, attempting to learn LISP and
keeping an eye on what's going on everywhere. Windows is my platform
of choice (for various reasons) and I've found that Windows is a tad,
um, underserved when it comes to Common LISP and somewhat newbie-
unfriendly (it's a little better for Scheme but I'm not interested -
much - in Scheme just yet).
After playing with various implementations, IDEs, libraries, etc. on
Windows (or rather, trying to play with them), it's all rather grim.
ASDF-INSTALL is not Windows-friendly (who was it that said that Common
LISP didn't have to rely on external utilities? Hah!), various major
libraries don't run on Windows are or a nightmare to get working
(MCCLIM anyone? Yes, I know it's been done but documentation is, well,
fragmented), some major implementations have only partial Windows
support (SBCL? Yes, I know they're working on it: kudos to those brave
In short, for just about any problem you encounter on Windows, there
*is* a solution of some sort, but finding that solution and then
getting it to work, in most cases, is a challenge at least. I think
this explains the newbie-fright-syndrom that pops up so often.
I've looked at various attempts to resolve some of this (Gardeners',
LispBuilder, etc.) but I think all of these are slow in getting
established because it's just too big a challenge: they all try to do
all three major platforms at once (Mac, Linux, Windows). Although I
admire the intent, and some of the things already achieved are very
impressive, I don't think it's practical to try to do this (yet).
Rather than bombard communities like these with a zillion questions to
solve individual problems, I thought I'd get of my behind and try to
help improve the situation, following examples of some of the leading
So, I propose the following: that I put together a turn-key Common
LISP installation package that includes most of what the average
newbie would want. Below is a list of my current ideas for that and
I'm looking for feedback, suggestions, pointers to things that may be
of use, etc. I will try and do most of the actual work involved in it
(installer, configuration, patches, testing, hosting, etc.) but no
doubt I'll have to ask some of you for help at a few points (I'm far,
far, from being LISP-fluent).
Note: most of this idea borrowed from Peter's LispBox, naturally. Note
that this may grow to be a very large download so I'd need to look at
pulling in things during install on-demand instead as well.
I imagine multiple packages or a single packages but with choices (the
former is probably easier to build, the latter easier to maintain once
built: TBD). The main point is to avoid newbies having to go hunt for
packages/downloads to get simple things done (simple as in what *they*
are used to being simple: putting up "Hello, world" in a dialog box
should be a no-brainer (and bundled as working example)). Same for
networking (usockets?), multi-threading (need that for proper GUI work
anyway), database access, etc.
One or more IDEs or IDE of choice (at least GNU/X/W32-Emacs, with
optionally easily-activated VImpulse thrown in for VI die-hards;
others may be ABLE, Eclipse+Cusp, etc.)
One or more Common LISP implementations:
CLISP - for the size-sensitive
SBCL - for the speed-freaks; may need to contribute to Win32 port to
make this happen
ECL - for the C/C++ lovers
Lispworks Personal Edition - coz' it's good
Allegro Express Edition - ditto
Corman Common LISP - well, it's the only Windows-only
implementation; can hardly leave that out, now, can i?
A set of (optional) packages (idea borrowed from Edi's StarterPack).
General requirements: must work on Windows (but I'd be willing to
contribute patches to make that happen for important ones), must be
easily installable (which means handling dependencies), should be
downloaded on-demand (preferably pulling them from Cliki or home site
etc. on demand, so may need to hack ADSF-INSTALL for Windows or use
CLBUILD or ask Edi how he did it, etc.).
A GUI built-in/ready-to-go. I'd prefer it to be something like Cells-
gtk, which provides two good things in one but it's a hairy beast to
get up and running (esp. on Windows). Alternatives: MCLIM+GTK, MCCLIM
+Graphics-forms, LTK, RNDZL with pre-built GUI examples, wxCL (yes, I
know it's dead), etc. Will need to figure out how to bundle the
servers for these if need be.
Other packages: regular expressions, rational (for the current times)
path/filename abstraction, networking, database access, containers,
series, utilities, Qi, CLOCC, etc. Main requirements is that they
should be complete (i.e. not half-finished) *or* stable and still
Everything should work out-of-the-box, meaning that after installation
(and the choices the user made during that), starting up the IDE
should be a double-click affair, packages should be pre-loaded or
hints should be provided on how to load them (e.g. could be menu in
There should be ready-to-run examples that demonstrate just about
every basic facility and package. Examples must be discoverable
There should be an easy way to deploy a program: this requires careful
balancing of the whole program-as-you-go/image/core model with the
build-an-executable-and-send-it-out model: both should be obvious,
supported, explained and demonstrated.
Some sort of tutorial should be bundled (maybe Peter's book, or Lisp
In Spells or something: copyright issues here, so must get appropriate
permissions). Hyperspec (CLtL?) bundled and integrated.
Anyway, that's about it. I'm sure I've forgotten a lot (tell me!) and
I'm over-reaching (will probably need to trim some of this down so I
my addled brain can handle all of it). This is not something I'm
aiming to have up-and-running in a few weeks; this will take some
time. I think it may be best to start with a single IDE, single
implementation, with GUI and multi-threading and some other minor
packages, examples and tutorial pre-installed; that will already be a
Some reality-check questions:
Is this is good idea or should I instead direct my efforts to helping
some of the other somewhat similar initiatives? If so, which one(s)?
Are there any download stats for Lisp-in-a-Box, Peter's LispBox, Edi's
Starterpack, etc. Are these things popular?
As said, I'll probably need to trim it down a bit. What do you think I
Is this better as a Gardeners project? If so, why? If not, why not?
Anybody willing to help?
Any and all feedback welcome (especially if you think I'm crazy to
even try it).
I am a Lisp noob, working on Windows. I am your intended audience. And
I sorely want what you describe. And if you're able make it while
staying away from emacs, I will give you my first born.
Others have asked questions why this would be desirable. I'll try to
answer from my perspective.
Q: Why wouldn't Windows users just run a commercial version?
A: Same reasons non-windows-users don't run a commercial version. I'm
a piss-poor student. I won't pay for a Lisp I'm not going to be using
commercially, and odds are I won't be using it commercially before
I've learned the language. And any free trial version I've seen has
been crippled in a way that makes it unusable for me. Yes, I will use
more heap than that limit (in fact I have, in my ~4 months of Lisp).
Q: Why not emacs?
A: I don't want to start a flame war. However, emacs' apparent
popularity is a mystery to me. I take it it's supposed to be text
editor. My minimum expectations for text-editor is for it to have ctrl-
c/ctrl-v and a proper undo function. Emacs has neither. I can
configure it for cut and paste, but I think I'm stuck with its undo
function. I could go on. I get that emacs can be configured to work
right, but I don't want to configure it. Any text-area widget from a
GUI toolkit already meets these requirements. When I have to configure
something to do ctrl-c/ctrl-v, that just screams "Fuck you windows
user", to me. I can imagine that that is on purpose.
Q: Why not LispBox and Able?
A: LispBox gave me a set up that allowed me to write and evaluate Lisp
code, and I don't know what I'd do without it. Still, I was stuck with
emacs. It also seems to be a stack of lots of different software that
no one fully understands. See my thread on printing unicode.
A: Able looks like it's great, but it crashes as soon as I load it.
Q: But Windows users hate our freedom and like to kill kittens!
A: Most don't. I run Debian on my server, and have even sold macs. For
my personal computer I prefer windows, for many reasons I wont get
From what I can tell after a some months of using it, Common Lisp isfantastic language. Languages like Python and Ruby are really popular
these days; Lisp has all their features plus 50 times the speed. I see
no reason why Lisp couldn't be huge, if getting just started with it
was a little easier.
As for the general direction of your project, I think you may be
making a mistake in trying to do to much. Like being compatible with
many implementations of Lisp. If the solution is supposed to "just
work", I think it would be better to choose a single Common Lisp
implementation and make it work flawlessly, choose one GUI toolkit,
one IDE etc. Whatever you do I wish you the best of luck, because this
is a something I think many people want, and it may be huge for the
popularity of Lisp.
- Windows Common LISP
- From: jvdvyah
- Windows Common LISP
- Prev by Date: Re: The PL design space is not that simple (was: Re: Alternatives 4)
- Next by Date: Re: Alternatives
- Previous by thread: Re: Windows Common LISP
- Next by thread: Re: Windows Common LISP