Skip to content

Old, but suprisingly complete toolkit with no dependancies on other non-lisp libraries.

License

Notifications You must be signed in to change notification settings

earl-kent/cl-garnet

Repository files navigation

Garnet is a Graphical User Interface Toolkit

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.

Dependancies/requirements

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

Installing/Running

The easiest way to install and run the demo apps is:

  1. Make sure you have Quicklisp installed.
  2. Clone the Garnet repo to a convenient location:
    git clone https://github.com/earl-ducaine/cl-garnet ~/garnet
        
  3. 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
        
  4. 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.

Documentation

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.

About

Old, but suprisingly complete toolkit with no dependancies on other non-lisp libraries.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published