system programming
Libraries having to do with system programming - memory management, timers, system calls, etc. Anything to do with implementation or OS specifics also belongs here.

  • CSERIAL-PORT is a Common Lisp RS-232 Uinx/Windows serial library.
    • ACL-COMPAT - ACL-COMPAT is a free set of compatibility layers for parts of Franz's ACL system programming API for several Common Lisp implementations
    • Bordeaux-Threads - Bordeaux-Threads is a library to write multi-threaded applications in a portable way
    • bt-semaphore - simple semaphores for bordeaux-threads
    • cl-async - Cl-async is a asynchronous I/O library wrapping the libuv C library
    • cl-async-future - cl-async-future is a future (or "promise") implementation that allows a simple abstraction for values that may or may not be available yet
    • cl-daemonize - cl-daemonize is a tool to daemonize a Lisp process without the need for screen/detachtty
    • cl-environment - CL-ENVIRONMENT is a small library that tries to canonicalize access to some of the internals of different CL implementations
    • cl-event - cl-event is a Lisp libevent wrapper
    • cl-fad - CL-FAD is a portable pathname library based on code from Peter Seibel's book Practical Common Lisp, providing a way to work with files and directories
    • cl-fuse - CL-FUSE provides Common Lisp bindings for FUSE (file system in user space)
    • cl-inotify - cl-inotify is an interface to the Linux inotify facility for file change notifications
    • CL-IPC - CL-IPC is an UFFI wrapper to do Unix IPC
    • cl-libusb - cl-libusb provides an interface to libusb, a library that provides access to USB devices across many different operating systems
    • CL-PACKAGE-LOCKS - A unified way of dealing with package locks on those implementations that support them (or that's the eventual goal anyways)
    • cl-syslog - CL-SYSLOG provides access to the Unix syslog logging facility and UDP remote syslog capability
    • cl-win32ole - Common Lisp OLE Libray liki a Ruby's win32ole
    • Clon - There are three packages by the name of "CLON", although the third one doesn't actually introduce any conflict because the package is named com.dvlsoft.clon
    • closer-weak - closer-weak provides CLisp-style weak objects support for CMUCL and SBCL
    • CLTIO - CLTIO is a UFFI binding to the Unix termio library for raw serial/termial I/O
    • clufs - Common Lisp User Space File System
    • COM.INFORMATIMAGO.SUSV3 - SUSV3 is an interface to the Single Unix Specification version 3 API
    • conium - Conium is a portability library for debugger- and compiler-related
    • Creating Executables - Most Common Lisp implementations support creating native-format executable files
    • detachtty - detachtty is a Unix system programming utility that lets you run interactive programs (such as Lisp) non-interactively
    • do-backup - do-backup is a tool for performing backups on some regular basis on unix systems
    • executor - executor is a portability layer for external executable invocation
    • external-program - external-program provides a largely-portable wrapper for running programs external to the Lisp process (ie - exec())
    • getopt - getopt is a library for processing command-line arguments
    • green-threads - GREEN-THREADS is a portable library implementing green threads (lightweight, cooperatively multitasked, user threads) in Common Lisp
    • IOlib - I/O(mainly networking) library containing: a BSD sockets library, a DNS resolver and an I/O multiplexer that supports select(2), epoll(4) and kqueue(2)
    • lh-usb - lh-usb is a set of bindings for the Linux usbfs interface for writing usb device drivers from user-space Lisp code
    • nibbles - Nibbles is a library for accessing octet-addressed blocks of data
    • optparser - optparser is a Unix command-line options parser for simple shell scripts, geared towards ease-of-use and unambiguity
    • Osicat - Operating system interface library mainly for Unix
    • Portable Exit - A portability layer for ending the Lisp image
    • Portable-Threads - Portable-threads is the GBBopen project's portable-thread code all packaged up for ASDF-Install
    • reserve-channel - Simple routing daemons that checks reachability of packets to external host and switch routing to backup channels if needed
    • RESOURCE-UTILIZATION - RESOURCE-UTILIZATION gathers and displays resource utilization statistics from Linux's /proc interface
    • sb-cpu-affinity - sb-cpu-affinity lets you set Linux scheduler CPU affinity masks from SBCL
    • SB-X86-PORTIO - SB-X86-PORTIO is a module for doing raw port I/O on SBCL/x86/x86-64
    • shelisp - Shelisp provides mechanisms for composing and running Unix shell (particularly bash) commands and constructs from Common Lisp
    • stassats-inotify - stassats-inotify is an interface to the Linux inotify facility for file change notifications
    • Terminfo - A Common Lisp interface to the terminfo database by Paul Foley
    • thread-pool - thread-pool is library that allows asynchronous function execution from a static thread pool
    • trivial-features - trivial-features ensures consistent *FEATURES* across multiple Common
    • trivial-garbage - trivial-garbage provides a portable API to finalizers, weak hash-tables and weak pointers
    • trivial-gray-streams - trivial-gray-streams provides an extremely thin compatibility layer for Gray streams
    • trivial-raw-io - trivial-raw-io provides access to raw serial/termial I/O (termios) under Unix
    • trivial-timers - Trivial-timers is a minimally portable implementation of the SBCL timer extension using Bordeaux-Threads
    • unix-options - unix-options is a library for processing Unix-style command-line arguments
    • unix-opts - This is a minimalistic parser of command line options
    • wclas - wclas: with-command-line-arguments

    Tools for dealing with assembler/machine code: (main topic: machine code)

    • Apple II archaeology - Apple II archaeology is a collection of Lisp code useful for Apple II retrocomputing
    • armish - Armish is an arm assembler
    • Assem - Assem is an ISA-level code layer for Common Lisp
    • BITMOP - BITMOP is a DSL for definition and manipulation of register sets, registers, bitfields and bitfield values, all of which are first-class objects
    • cl-comfy-arm - cl-comfy-arm is an implementation by JosephOswald of Henry Baker's COMFY assembler for the ARM architecture
    • cl-elf - cl-elf is a library for reading and writing the ELF executable file format
    • CL-IO-ELF - CL-IO-ELF is a parser for ELF executable file format
    • cl-larval - S-Exp syntax to write assembler for AVR microcontrollers
    • COMFY-6502 - COMFY-6502 is a port by JosephOswald of Henry Baker's COMFY-6502 compiler to Common Lisp
    • common-db - common-db is a programmable debugging substrate, mostly geared to driving target devices by establishing control via on-chip debugging machinery through a JTAG (IEEE 1149.1) external port
    • swap-bytes - swap-bytes is a library for efficient endianness conversion in SBCL and CCL
    • SYMTABLE - SYMTABLE is a simplistic symbol-table abstraction

    Tools for working with embedded systems (Arduino, etc.): (main topic: embedded)

    • Apple II archaeology - Apple II archaeology is a collection of Lisp code useful for Apple II retrocomputing
    • Arduino Lisp - Arduino Lisp is a compiler from a subset of Common Lisp to the subset of C++ used by the Arduino C++ compiler
    • arduino-experiments - arduino-experiments is a library for interfacing to the Arduino embedded computer via serial I/O from Lisp
    • cl-larval - S-Exp syntax to write assembler for AVR microcontrollers
    • cluck - Cluck is a Common Lisp library written by Kevin Rosenberg for assisting in configuring timers on microcontroller chips
    • common-db - common-db is a programmable debugging substrate, mostly geared to driving target devices by establishing control via on-chip debugging machinery through a JTAG (IEEE 1149.1) external port