cl-cffi-gtk is a Lisp binding to GTK+ 3 which is a library for creating graphical user interfaces.cl-cffi-gtk is licensed using the LGPL which has been adopted with a preamble
that clarifies the terms for use with Lisp programs and is referred as the
This work is based on the cl-gtk2 library which has been developed by
Kalyanov Dmitry and already is a fairly complete Lisp binding to GTK+ 2.The focus of this work is to document the library more complete and to
do the implementation as consistent and complete as possible. Most informations about GTK+
can be gained by reading the C documentation. Therefore, the C documentation
from The GTK+ Project is included into the Lisp files to document the Lisp
binding to the GTK+ library. This documentation is also available online at
cl-cffi-gtk API documentation.At this time, the library is developed and tested with SBCL 1.1.9 and
GTK+ 3.6.4 on a Linux system. Furthermore, the following libraries GLIB 2.36.0,
Pango 1.32.5, and Cairo 1.12.4 are loaded.Examples of the usage are included in a gtk-demo and tutorial examples. Start
with the tutorial available online at
GTK+ 3 Tutorial for Lisp
to learn how to use the library. Some more information and a gallery are available from the project website
cl-cffi-gtk Project.The latest version is available from the repository at
Minimal bridge to Tcl/Tk
Mozilla XUL bindings for Common LispHomepage
Source repositoryLicense: BSD
Embed Tcl/Tk scripts in Common Lisp
Pure Common Lisp library for antialiased cursor rendering for clx.
clx-truetype is pure common lisp solution for antialiased TrueType font rendering using CLX and XRender extension.
CommonQt is a SMOKE-based binding to the Qt GUI library.Homepage: http://common-lisp.net/project/commonqt/License: MITSee also: qtools cl-smoke eql
Common Lisp bindings for the ncurses terminal library.
Halftone is a simple image viewer written with Qtools. The project can be found on github.
As of 2015, halftone is on Quicklisp.Halftone is licensed under the Artistic License 2.0.
McCLIM is an implementation of the CLIM 2.0 specification.
System to ensure that the necessary Qt libs are available.
A collection of tools to aid in development with CommonQt.
A collection of components and utilities for use in Qt applications.
Extensions for ASDF.
A simple regression testing framework
Log4CL is high performance extensible logging library for Common Lisp
Home page: https://github.com/sharplispers/log4cl
Previous (abandoned) home page: https://github.com/7max/log4cl
Status Library is maintained by sharplispers at https://github.com/sharplispers/log4cl. Features
Modeled after Log4J with the familiar concepts such as log categories, appenders and layouts
No dependencies other then Bordeaux-threads
High performance implementation that minimizes consing, with benchmarking showing it faster then log4j in most cases.
Buffered and un-buffered stream appenders, console appender, file appender and daily rolling file appender with configurable name are all implemented. Auto-flushing of buffered appenders by background thread.
Automatic naming of log categories, so that a log statement that does
not specifically name a logger, appearing in a function SOME-PACKAGE:FOO inside of a local flet function BAR, will automatically log into the category SOME-PACKAGE:FOO:BAR
Appenders, layouts, and most everything else is implemented via CLOS,
and can be easily changed/extended/customized. Automatic log category naming
is also implemented via CLOS and can be specialized per-package, so packages
can implement their own custom naming options.
Easy/abbreviated configuration function for interactive REPL work, with several pre-defined "sane" configurations, as well as traditional log4j like configuration via properties file, with option to auto-reload on changes.
Pattern layout, with several enhancements, such as options to modify
separator and case (including invert) of log categories, for example one can print log category FOO:BAR:BAZ as foo--bar--baz
Multiple logging hierarchies support, with each having an completely
independent configuration with regards to log levels and appenders, suitable for example for virtual hosts.
Extensive test suite with over 400+ assertions.
Tested on SBCL, CCL, CLISP and LispWorks
A quick-start guide is provided in README.md file
Portable CL Locale Support
An implementation of the X Window System protocol in Lisp.
DO+ (doplus) is a high-level, extensible iteration construct for Common Lisp with a reasonably simple implementation, which in particular does not use a code walker.
Generic purpose logger utility.
Extensible object equivalence protocol
STMX is an actively maintained, high-performance concurrency library providing Transactional Memory for Common Lisp.Home page and downloads: http://github.com/cosmos72/stmx Main features
Extremely intuitive to use and to write correct, thread-safe concurrent code
Brings database-style transactions to Common Lisp by introducing transactional memory
High performance implementation, benchmarked to exceed 7 millions transactions per CPU core per second on commodity PC hardware
Support for hardware memory transactions (requires 64-bit SBCL and CPUs with Intel TSX instructions - currently Core i5 4570, Core i7 4670, Core i7 4770 and some others). They increase STMX performance up to almost 40 millions transactions per CPU core per second
Removes the need for traditional locks, mutexes and conditions - writing correct concurrent code with them is well known to be hard
Transactional code is intrinsically deadlock-free: if two transactions conflict one of them will be re-executed
Automatic commit and rollback: if a transaction completes normally it will be committed, if it signals an error it will be rolled back
Transactions are composable: they can be executed in a larger transaction, either in sequence (all-or-nothing) or as alternatives (try them until one succeeds)
Offers freedom of choice between blocking and non-blocking transactional functions: given either behaviour, it is trivial to transform it into the other.
Features transactional versions of popular data structures: hash tables, red-black trees, stack, fifo
Includes transactional data structure for multicast publish/subscribe
Creating new transactional data structures is easy
Extensive test suite
Tested on SBCL, ABCL, CCL, CMUCL and ECL.
Very simple to install with Quicklisp
A quick-start guide and installation instructions are provided in README.md fileLicense: LLGPL What STMX is NOT
In order not to confuse programmers - less experienced ones in particular - and to avoid rising unrealistic hopes, the author himself stated the following about STMX:
it is NOT a quick hack to automagically transform existing, slow, single-threaded programs into fast, concurrent ones. No matter how much transactions can help, writing concurrent code still requires careful design and implementation - and testing. And refactoring takes time too.
it is NOT for optimization-focused programmers trying to squeeze the last cycle from their Common Lisp programs. STMX records an in-memory transaction log containing all reads and writes from/to transactional memory, then later (during commit) validates the transaction log against the latest data present in transactional memory and finally copies the transaction log onto the transactional memory while holding locks. STMX is quite optimized, but this machinery comes at an obvious performance cost with respect to hand-made, highly optimized locking code (but a good reality check is to ask yourself how many people have the skill and patience to write such code without bugs).
it is NOT supposed to be used for all data structures in a Common Lisp program. STMX is intended only for the data accessed concurrently by multiple threads while being modified by at least one thread. And even in that case, transactional memory is not always needed: it depends on the kinds of modifications.
it is NOT a serialization or persistence framework. Rather, messing with metaclasses and playing (allowed) tricks with slots contents as STMX does, quite likely does not mix well with serialization or persistence libraries such as CL-STORE, because they typically need full control on the slots of the objects to be serialized and de-serialized.
it is NOT a million dollar library from some deep-pocket company. At the moment, it is the work of a single person.
NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase
Portability library for Common Lisp programs