Home
/
Tools
/
Common Lisp Portability Library Status
Common Lisp Portability Library Status
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>
0
Like
0
Add to favorites
Original Article
Export to Word
Export to PDF
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
Lobsters Hottest
A side-by-side reference sheet comparing syntax and features of Common Lisp, Racket, Clojure, and Emacs Lisp.
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.
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.
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.
Reddit r/LocalLLaMA
The author ports vLLM's serving stack to C++20, creating a 66 MiB binary with no Python at inference, token-for-token verifiable against vLLM and competitive in throughput on tested hardware.