I need to build a prototype on Windows using Lisp (preferably Common Lisp) that has CLIM or at least a popup menu system. It has to be free or cheap. I'm not choosey, would learn any Lisp dialect or Scheme.

DrRacket and the, Scheme like, language racket has windows/GUI libraries. Hopefully someone else will come with a CL alternative for you, but this is the first thing that came to mind when seeing the question

I use in CL for GUI the Qt libraries via CommonQt. McCLIM a free implementation of CLIM is said to work on windows with backends: gtkairo, Graphic-Forms, but I haven't figured out to work it. That's a pity.

McClim is a free CLIM implementation. But it's not a complete CLIM implementation and under Windows you would need an X-Window emulator like Cygwin or Xming. Please don't ask me any details how to get McClim running on Windows.

LTk is a Common Lisp wrapper around "wish", the "windowing shell" of Tcl/Tk. LTk is known to work on Windows.

Thanks everyone! After posting, LispWorks support emailed me back, pointing to their CAPI instead of CLIM. They provided some generous free support to help me ID the one menu feature I needed, and I have enough to start my prototype.

It was alot of googling on my specific question before I reached this forum. (Should have googled Lisp Forum.) Then the forum registration process asked "what are those round things"; almost failed that. BTW they're curvey things, not round! partly round things, even.

It was an interesting experience taking up Lisp and Emacs again after 26 years, and no programming since roughly 15 years ago! Such a rich language, and tools appears sweet so far, these days. The LispWorks editor parses the code and displays using color; perhaps this is so common now you'll roll your eyes. Free hypertext documentation on Common Lisp itself. Naaa iicce LET the hacking begin!!

Regards,--Hoggep.s. Common Lisp could use public/private...but I guess it's too late for that.

Hogge wrote:p.s. Common Lisp could use public/private...but I guess it's too late for that.

Getting off-topic for this thread, but ... In CL, public/private is effectively part of symbol name resolution in the package system. Put your structure in a separate package. Only extern the public parts of the API.

public/private are about restricting the damage that 'bad' programmers can do to your program, but common-lisp in general is about empowering programmers to do what they think is best. As nuntius said, exported symbols are your public api, people using double-colon to access internals are aware of the dragons they are poking.