Common Lisp Portability Library Status

Lobsters Hottest Tools

Summary

A comprehensive status overview of Common Lisp portability libraries showing compatibility percentages across different Common Lisp implementations.

<p><a href="https://lobste.rs/s/rfkain/common_lisp_portability_library_status">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 05/26/26, 03:15 AM

# Common Lisp Portability Library Status Source: [https://portability.cl/](https://portability.cl/) ## [ATOMICS](https://shinmera.com/docs/atomics) - ABCL0% - ALLEGRO100% - CCL100% - CLASP100% - CLISP0% - CMUCL0% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO100% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Thin wrapper over atomic operators such as Compare and Swap \(CAS\)\. ## [BORDEAUX\-THREADS](https://github.com/sionescu/bordeaux-threads) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL0% - GENERA100% - JSCL0% - LISPWORKS100% - MCL100% - MEZZANO100% - MKCL100% - MOCL0% - SBCL100% - SCL100% - XCL0% Basic multithreading constructs including locks and condition variables\. ## [CFFI](https://common-lisp.net/project/cffi/) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL100% - MEZZANO0% - MKCL100% - MOCL0% - SBCL100% - SCL100% - XCL0% Direct memory manipulation and interaction with foreign libraries following the C ABIs\. ## [CL\-ENVIRONMENTS](https://github.com/alex-gutev/cl-environments) - ABCL100% - ALLEGRO100% - CCL100% - CLASP0% - CLISP100% - CMUCL100% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Environment introspection as described in CLtL2\. ## [CLAST](http://clast.sourceforge.net/) - ABCL0% - ALLEGRO100% - CCL100% - CLASP0% - CLISP0% - CMUCL100% - CORMAN0% - ECL0% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Common Lisp Abstract Syntax Tree introspection \(with CLtL2 environments\)\. ## [CLOSER\-MOP](https://github.com/pcostanza/closer-mop) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL100% - MEZZANO100% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% For the common Meta\-Object Protocol extension to CLOS\. ## [DEFINITIONS](https://shinmera.com/docs/definitions) - ABCL75% - ALLEGRO75% - CCL100% - CLASP100% - CLISP75% - CMUCL75% - CORMAN75% - ECL75% - GCL75% - GENERA75% - JSCL75% - LISPWORKS75% - MCL75% - MEZZANO75% - MKCL75% - MOCL75% - SBCL100% - SCL75% - XCL75% Portable definitions reflection library, including source location tracking\. ## [DISSECT](https://shinmera.com/docs/dissect) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL0% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS0% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Capturing the call stack and inspecting frames\. ## [FLOAT\-FEATURES](https://shinmera.com/docs/float-features) - ABCL100% - ALLEGRO90% - CCL100% - CLASP100% - CLISP10% - CMUCL100% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS90% - MCL0% - MEZZANO100% - MKCL90% - MOCL0% - SBCL100% - SCL0% - XCL0% IEEE floating point number extensions such as infinities, NaN handling, and trap masking\. ## [GLOBAL\-VARS](https://github.com/lmj/global-vars) - ABCL0% - ALLEGRO0% - CCL100% - CLASP0% - CLISP0% - CMUCL0% - CORMAN0% - ECL0% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Unrebindable global variables\. ## [INTROSPECT\-ENVIRONMENT](https://github.com/Bike/introspect-environment) - ABCL0% - ALLEGRO0% - CCL100% - CLASP100% - CLISP0% - CMUCL100% - CORMAN0% - ECL0% - GCL0% - GENERA0% - JSCL0% - LISPWORKS0% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Compile\-time introspection of environments\. ## [NONTRIVIAL\-GRAY\-STREAMS](https://github.com/yitzchak/nontrivial-gray-streams) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO100% - MKCL100% - MOCL0% - SBCL100% - SCL0% - XCL0% A compatibility layer for Gray streams including extensions\. ## [SHUT\-IT\-DOWN](http://verisimilitudes.net/2017-12-30) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL100% - GENERA0% - JSCL0% - LISPWORKS100% - MCL100% - MEZZANO0% - MKCL100% - MOCL0% - SBCL100% - SCL100% - XCL100% Allow for exiting the Lisp process\. ## [STATIC\-VECTORS](https://github.com/sionescu/static-vectors) - ABCL0% - ALLEGRO100% - CCL100% - CLASP100% - CLISP0% - CMUCL100% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Simple arrays that don't move in memory and can be shared with foreign systems\. ## [TRIVIAL\-ARGUMENTS](https://shinmera.com/docs/trivial-arguments) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO100% - MKCL0% - MOCL0% - SBCL100% - SCL100% - XCL0% Retrieve the lambda\-list of a function\. ## [TRIVIAL\-BACKTRACE](https://common-lisp.net/project/trivial-backtrace/) - ABCL0% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN0% - ECL0% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL100% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL100% - XCL0% Printing the current stack trace to a string\. ## [TRIVIAL\-CLTL2](https://github.com/Zulu-Inuoe/trivial-cltl2) - ABCL100% - ALLEGRO100% - CCL100% - CLASP88% - CLISP0% - CMUCL100% - CORMAN0% - ECL12% - GCL0% - GENERA0% - JSCL0% - LISPWORKS0% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Some of the extensions described in CLtL2 that were not included in ANSI\. ## [TRIVIAL\-CUSTOM\-DEBUGGER](https://github.com/phoe/trivial-custom-debugger) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL0% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO100% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Allows arbitrary functions to become the standard Lisp debugger ## [TRIVIAL\-DEPRECATE](https://shinmera.com/project/trivial-deprecate) - ABCL75% - ALLEGRO75% - CCL75% - CLASP75% - CLISP75% - CMUCL75% - CORMAN75% - ECL75% - GCL75% - GENERA75% - JSCL75% - LISPWORKS75% - MCL75% - MEZZANO75% - MKCL75% - MOCL75% - SBCL100% - SCL75% - XCL75% This library implements a simple deprecation mechanism\. ## [TRIVIAL\-ED\-FUNCTIONS](https://github.com/yitzchak/trivial-ed-functions) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP0% - CMUCL0% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS0% - MCL0% - MEZZANO100% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Provide hook functions called by ED function to delegate editing of file or object\. ## [TRIVIAL\-EXTENSIBLE\-SEQUENCES](https://shinmera.com/docs/trivial-extensible-sequences) - ABCL100% - ALLEGRO0% - CCL0% - CLASP100% - CLISP0% - CMUCL0% - CORMAN0% - ECL0% - GCL0% - GENERA0% - JSCL0% - LISPWORKS0% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Custom sequence classes through a CLOS protocol\. ## [TRIVIAL\-FEATURES](https://github.com/trivial-features/trivial-features) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL100% - MEZZANO100% - MKCL100% - MOCL100% - SBCL100% - SCL100% - XCL100% Standardised platform features for CPU architectures and operating systems\. ## [TRIVIAL\-FILE\-SIZE](https://github.com/ruricolist/trivial-file-size) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN0% - ECL50% - GCL100% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Query a file's size from its metadata\. ## [TRIVIAL\-GARBAGE](https://common-lisp.net/project/trivial-garbage/) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO100% - MKCL0% - MOCL0% - SBCL100% - SCL100% - XCL0% Access to GC related tasks such as weak pointers, weak tables, and finalizers\. ## [TRIVIAL\-GRAY\-STREAMS](https://github.com/trivial-gray-streams/trivial-gray-streams) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN0% - ECL100% - GCL0% - GENERA100% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO100% - MKCL100% - MOCL100% - SBCL100% - SCL0% - XCL0% Custom stream classes through a CLOS protocol\. ## [TRIVIAL\-INSPECTOR\-HOOK](https://github.com/yitzchak/trivial-inspector-hook) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP0% - CMUCL0% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS0% - MCL0% - MEZZANO100% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Provide \*INSPECTOR\-HOOK\* \(CDR\-6\) that is called by the INSPECT function to delegate inspection\. ## [TRIVIAL\-MACROEXPAND\-ALL](https://github.com/yitzchak/trivial-macroexpand-all) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100% - MCL0% - MEZZANO0% - MKCL100% - MOCL0% - SBCL100% - SCL100% - XCL0% Provide a portable macroexpand\-all function\. ## [TRIVIAL\-PACKAGE\-LOCAL\-NICKNAMES](https://github.com/phoe/trivial-package-local-nicknames) - ABCL100% - ALLEGRO100% - CCL100%\*1\.12 - CLASP100% - CLISP0% - CMUCL0% - CORMAN0% - ECL100% - GCL0% - GENERA0% - JSCL0% - LISPWORKS100%\*7\.2 - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Package nicknames that are local to another package, avoiding package naming conflicts\. 1. 1\.12CCL 2. 7\.2LISPWORKS ## [TRIVIAL\-PACKAGE\-LOCKS](https://github.com/yitzchak/trivial-package-locks) - ABCL0% - ALLEGRO100% - CCL0% - CLASP0% - CLISP75% - CMUCL75% - CORMAN0% - ECL75% - GCL0% - GENERA0% - JSCL0% - LISPWORKS0% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100% - SCL0% - XCL0% Package locks protect against unintentional modifications of a package ## [TRIVIAL\-WITH\-CURRENT\-SOURCE\-FORM](https://github.com/scymtym/trivial-with-current-source-form) - ABCL0% - ALLEGRO0% - CCL0% - CLASP100%\*0\.1\.0 - CLISP0% - CMUCL0% - CORMAN0% - ECL0% - GCL0% - GENERA0% - JSCL0% - LISPWORKS0% - MCL0% - MEZZANO0% - MKCL0% - MOCL0% - SBCL100%\*0\.1\.01\.3\.13 - SCL0% - XCL0% Allows macro writers to provide better feedback to macro users when errors are signaled during macroexpansion\. 1. CLASPSince0\.1\.0 2. 1\.3\.13SBCLSince0\.1\.0 ## [UIOP](https://common-lisp.net/project/asdf/uiop.html) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL100% - GENERA100% - JSCL0% - LISPWORKS100% - MCL100% - MEZZANO100% - MKCL100% - MOCL100% - SBCL100% - SCL100% - XCL100% The general toolkit library shipped with ASDF\. Handles pathnames, filesystems, external processes, and more\. ## [USOCKET](https://common-lisp.net/project/usocket/) - ABCL100% - ALLEGRO100% - CCL100% - CLASP100% - CLISP100% - CMUCL100% - CORMAN100% - ECL100% - GCL0% - GENERA100% - JSCL0% - LISPWORKS100% - MCL100% - MEZZANO75% - MKCL0% - MOCL100% - SBCL100% - SCL100% - XCL0% POSIX/BSD sockets to establish TCP or UPD connections and servers\.

Similar Articles

On C extensions, portability, and alternative compilers

Lobsters Hottest

This article discusses the practical challenges of writing portable C code due to reliance on non-standard compiler extensions and glibc's conditional headers, illustrating with examples from building a C compiler.

The C++ Standard Library Has Been Walking Itself Back for Fifteen Years, and the Receipts Are Public

Lobsters Hottest

A detailed catalogue of C++ standard library features that have been formally deprecated, informally discouraged, or are effectively broken but cannot be fixed due to ABI constraints, spanning from C++11 to C++26. The article argues a consistent pattern of the C++ committee shipping replacements for its own features, including a benchmark showing 58x P99 latency difference between Rust and C++ standard library containers.

Why Common Lisp is now the best programming language

Hacker News Top

An opinion piece arguing that Common Lisp is now the best programming language because LLMs shift the bottleneck from writing code to fast feedback loops, live image-based development, interactive debuggers, and macro-driven domain-specific languages that cut code volume and token costs.