6
30
Fork
You've already forked LCL
1
Lua Common Lisp. An implementation of Common Lisp targeting Lua.
  • Common Lisp 92.8%
  • Lua 7%
  • Shell 0.2%
2026年05月28日 21:35:44 -04:00
examples Add a few examples 2025年01月01日 12:23:17 -05:00
ext Array printing improvements 2026年05月06日 22:37:26 -04:00
lisp And add type expressions 2026年05月28日 21:35:44 -04:00
stdlib And add type expressions 2026年05月28日 21:35:44 -04:00
.gitignore Bump version 2026年04月16日 21:47:42 -04:00
.luarc.json Cleanup build system 2026年04月30日 12:31:54 -04:00
build.sh Add image generation to standard build 2025年12月28日 13:58:20 -05:00
lcl.asd Bump version 2026年04月16日 21:47:42 -04:00
lcl_lib.lua Proper support for random on bignum limits. 2026年05月16日 18:50:10 -04:00
lcl_loadcore.lua Better image support 2025年09月18日 22:09:45 -04:00
LICENSE Bump year 2026年01月01日 12:49:41 -05:00
LICENSE.lua Bump year 2026年01月01日 12:49:41 -05:00
loadlcl.lua.m4 Better image support 2025年09月18日 22:09:45 -04:00
README.org Bump version 2026年04月16日 21:47:42 -04:00
serialize.lua Performance fixes in deserializer 2026年05月26日 20:44:40 -04:00

Lua Common Lisp is an implementation of Common Lisp targeting the Lua language. The goal of this project is to provide an implementation of Common Lisp that can be used wherever an unmodified Lua VM is running.

LCL is being tested on LuaJIT 2.1.1774896198.

LCL is not a Common Lisp to Lua compiler. LCL has a Common Lisp to Lua compiler. LCL is an implementation of Common Lisp that happens to be running on Lua.

Getting started

Download lcl.lua from the releases.

Loading lcl.lua in your Lua implementation will open a Common Lisp repl.

rlwrap luajit lcl.lua

Also refer to the examples/ folder for examples of using LCL with programs that embed Lua.

To load LCL without starting the repl, set LCL_LIB=true in Lua before loading LCL.

Also note the experimental image file support.

See also the documentation.

Incompatibilities with Common Lisp

LCL is currently being developed and is not a complete Common Lisp implementation.

Most functions and macros still work differently than specified by the standard or are currently missing or incomplete.

Any incompatibilities are considered bugs.

Build

SBCL and LuaJIT are required to build Lua Common Lisp.

bash ./build.sh

The build file provides options for the version of Lua and SBCL to use to build.

Documenatation

Documentation is provided on the wiki: https://codeberg.org/gsou/LCL/wiki