Common Lisp 可移植性库状态
摘要
Common Lisp 可移植性库的全面状态概览,展示了不同 Common Lisp 实现之间的兼容性百分比。
<p><a href="https://lobste.rs/s/rfkain/common_lisp_portability_library_status">评论</a></p>
查看缓存全文
缓存时间: 2026/05/26 03:15
# Common Lisp 可移植性库状态
来源: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%
原子操作(如比较并交换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%
基本多线程构造,包括锁和条件变量。
## 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%
直接内存操作以及与遵循C ABI的外部库的交互。
## 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%
如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抽象语法树内省(附带CLtL2环境)。
## 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%
用于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%
便携式定义反射库,包含源代码位置跟踪。
## 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%
捕获调用栈并检查帧。
## 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浮点数扩展,如无穷大、NaN处理和陷阱屏蔽。
## 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%
不可重新绑定的全局变量。
## 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%
编译时环境内省。
## 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%
Gray流的兼容层,包含扩展。
## 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%
允许退出Lisp进程。
## 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%
不会在内存中移动且可与外部系统共享的简单数组。
## 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%
获取函数的 lambda 列表。
## 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%
将当前栈跟踪打印为字符串。
## 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%
CLtL2 中描述但未包含在 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%
允许任意函数成为标准的 Lisp 调试器
## 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%
这个库实现了一个简单的弃用机制。
## 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%
提供由 ED 函数调用的钩子函数,以委托编辑文件或对象。
## 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%
通过 CLOS 协议的自定义序列类。
## 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%
CPU 架构和操作系统的标准化平台特性。
## 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%
从文件的元数据查询其大小。
## 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%
访问 GC 相关任务,如弱引用、弱表和终结器。
## 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%
通过 CLOS 协议的自定义流类。
## 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%
提供 *INSPECTOR-HOOK* (CDR-6),由 INSPECT 函数调用以委托检查。
## 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%
提供一个可移植的 macroexpand-all 函数。
## 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%
包本地昵称,避免包命名冲突。
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%
包锁防止对包的意外修改
## 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%
允许宏编写者在宏展开过程中发生错误时向宏用户提供更好的反馈。
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%
随 ASDF 发布的通用工具包库。处理路径名、文件系统、外部进程等。
## 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 套接字,用于建立 TCP 或 UDP 连接和服务器。
相似文章
Hyperpolyglot Lisp:Common Lisp、Racket、Clojure、Emacs Lisp
一份对照参考表,比较Common Lisp、Racket、Clojure和Emacs Lisp的语法与特性。
关于C扩展、可移植性和替代编译器
本文讨论了编写可移植C代码的实际挑战,这些挑战源于对非标准编译器扩展和glibc条件头文件的依赖,并通过构建C编译器的示例进行说明。
C++ 标准库在过去十五年间一直在自我撤步,证据公开
一份详细的目录,列出了从 C++11 到 C++26 期间被正式弃用、非正式不推荐或由于 ABI 约束实际上已损坏但无法修复的 C++ 标准库特性。文章指出,C++ 委员会推出一系列替代品来替换其自身特性的模式始终如一,其中包含一个基准测试,显示 Rust 和 C++ 标准库容器之间的 P99 延迟差异高达 58 倍。
@mattpocockuk: - 文档完善 - 可移植
Matt Pocock的一条推文,强调某个工具或库文档完善且可移植。
在浏览器中试用 LispE
关于在浏览器中试用 LispE(一种 Lisp 方言)的简要介绍或链接。