Libraries and Programs for Chicken
This page contains links to a few handy libraries I wrote for Felix L. Winkelmann’s excellent Chicken scheme compiler.
You probably want to use Chicken version 0.990 or newer. I’ve been using the “development” version from CVS, 0.1073, and it seems fine.
These files should work on most Unix-based operating systems. I’ve personally tried them on Redhat Linux, Solaris and HP-UX 11.00. Note that there are important bugfixes in Chicken for Solaris and HP-UX which are only present in versions 0.1072 and newer.
If you have any suggestions, patches, bug-fixes, or comments, please email them to me! You can reach me at the address listed on this page.
Database connectivity modules -
db.scm, based on Oleg Kiselyov’s
db-util.scm, and drivers for a few databases:
socket.scm- low- and higher-level interfaces to BSD sockets (AF_UNIX and AF_INET)
plt-net.scm- PLT (mzscheme) compatibility routines, layered on top of socket.scm
multiplex.scm- Mailboxes for interthread communications, and a select()-driven multiplexor for socket I/O. This allows threads to do “blocking” reads without really blocking all the other threads in the process - the multiplexor uses
select()to awaken blocked threads as necessary. A simple multi-threaded “eval” server is included as an example.
md5-openssl.scm- A binding to the OpenSSL MD5 library
lalrv0.9 - Mark Johnson’s 1993 LALR(1) parser generator
readline.scm- A binding to GNU readline (note - GPLed!). Makes using csi more fun
scmake- a quick, ugly, buggy, incomplete experiment in writing a “make” tool in scheme
Once you’ve got
readline.scm compiled up and installed, you can
make CSI load it at startup time by putting the following in your
(require 'readline) (current-input-port (make-gnu-readline-port "csi> ")) (gnu-history-install-file-manager (string-append (or (getenv "HOME") ".") "/.csi.history"))
A simple Javadoc/Doxygen/Schmooz-like documentation-extraction tool for Scheme. Specially formatted comments in Scheme source code are translated to (pseudo-)SXML fragments of DocBook, which can then be translated to XML text and included in DocBook documents.
A binding for GTK+ version 2.0 (not 1.2!). The version you see linked above is really alpha. I’ll be fleshing it out and cleaning it up over the coming weeks. A PDF rendering of the API documentation is available.
New since version 20021014.1:
Many new examples, including
explore.scm, a very simple GObject type-tree explorer
New library, G+, based on JLib. (Not source compatible with JLib, just based on the idea.)
- Able to hook GBoxed copy/finalize and GObject reference/finalize.
gtk:gc-when-idle, which collects when the program is idle for a configurable length of time
- Better support for GtkTreeStore, GtkWidget, graphics contexts, and GtkEditable.
- Some type errors fixed
- Many new procedures
New since version 20021007.1:
Installs as a proper Chicken extension by using the
There’s now more than zero documentation. Still work to be done, but it’s a start. It uses docscm.
- Support for libglade 2.0
Wrapper-generation completely reorganised
GType now used to generate object/boxed/enum/etc. wrappers (it was always used by
Each GObject/GInterface/GBoxed subclass now compiled separately
- Supports GtkListStore to a usable degree. It’s no more painful to use than it is in C.
- Timeouts and idle-handlers are supported.