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.
X AI KOLs Following
A tweet by Matt Pocock emphasizing that a tool or library is well-documented and portable.
Lobsters Hottest
A brief mention or link to try LispE, a Lisp dialect, in the browser.