A website about Lisp programming and related topics
The graphical look and feel of Garnet may be old-fashioned, but there is one thing in it which still shines IMHO: the constraint programming part. Other Lisp constraints tools are cells and it graphical extension cells-gtk.
Garnet (and CLX) had peculiar installation methods, which I changed a bit. Hum, a lot. It's an autoconf/asdf mixture at the moment:
CL=<your-lisp-binary-name> ./configure --prefix=$HOME make make install<your-lisp-binary-name> can be clisp, cmucl or sbcl currently. Garnet installs a script file <your-lisp-binary-name>-garnet, which loads a memory image of Garnet.
Custom widgets can be found here. Installation is similar to Garnet itself:
CL=<your-lisp-binary-name-with-garnet> ./configure --prefix=$HOME make make install<your-lisp-binary-name-with-garnet> can be clisp-garnet, cmucl-garnet or sbcl-garnet currently. To run the examples:
(asdf:oos 'asdf:load-op :garnet-widgets) (test-framed-aggregate:test)and you will get a window as the one below:
If you modify one value in the frame "Electromagnetism", the code uses circular constraints (energy depends on length, frequency depends on energy and length depends on frequency) to update the remaining fields in the frame. I would like to hear if this is possible with cells, and how.