It has a long storied history and has been dormant for many years. An overview of it’s history can be found on Cliki
Yet it is mostly functional and suprisingly complete, and it remains one of the only pure CL GUI Toolkits fully open source.
Currently the project is going through a massive code cleanup. Practically all feature specifications are out of date by decades, so I’m targetting a minimal, modern, convenient platform: Ubuntu 16.04/SBCL 1.3.1.debian. Other somewhat modern versions of Ubuntu and SBCL are likely to work. Other GNU/Linux distributions are also likely to work. Mac and Windows probably won’t, neither (most likely) will other CLs. But once things are cleaned up, it shouldn’t be hard to support a wide variety of platforms as long as they support ANSI Common Lisp and CLX. You may also need additional xfont libraries loaded, e.g. you’re using Ubuntu
apt-get install xfonts-100dpi
The easiest way to install and run the demo apps is:
- Make sure you have Quicklisp installed.
- Clone the Garnet repo to a convenient location:
git clone https://github.com/earl-ducaine/cl-garnet ~/garnet
- Make sure your Lisp isn’t running, then create a symbolic link
in Quicklisp’s local-projects folder and delete Quicklisp’s
system index. (to force it to re-search directories)
cd ~/quicklisp/local-projects ln -s ~/garnet . rm ~/quicklisp/local-projects/system-index.txt
- You should now be able to load the repo and all its dependancies
via Quicklisp, and run the demo or begin using the library.
(ql:quickload :xoanon.gui.garnet) (demos-controller::do-go)
Note that ASDF integration is not quite working flawlessly. So, you’ll find it difficult to reload the library more than once into a single lisp session. Also, sometimes it’s necessary to delete your ASDF cache. Something like the following:
rm -rf ~/.cache/common-lisp
Or one of the sub folders. But I like rebuilding everything from time to time.
Garnet’s documentation is extensive, but it was originally written in Scribe. There is currently a scribe c library which converts scribe documents to tex, but it’s not fully integrated yet. So, no updates can be made to the Garnet documentation until that integartion is finished. Still the documentation is quite useful, with good examples and an introductory tutorial. What is out of date is the initial process of loading Garnet, which predates the advent of ASDF.