Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,9 @@ luarocks tree whose interpreter is LuaJIT, e.g.
`luarocks --lua-dir=$(brew --prefix luajit) --lua-version=5.1 install shen`.)

Rock versions map to kernels: **0.9.0** bundles kernel **41.1**, **0.10.0+**
bundles **41.2** (check with `shen -e '(version)'`). If luarocks hands you
0.9.0, ask for the newer rock explicitly (`luarocks install shen 0.10.0-1`)
bundles **41.2** (check with `shen -e '(version)'`). **0.10.1** is the current
release (0.10.0 + the warm-FASL `(load)` echo fix, #40). If luarocks hands you
0.9.0, ask for the newer rock explicitly (`luarocks install shen 0.10.1-1`)
or build from a checkout with the `scm` rockspec above.

Prefer zero install? Grab `shen-bundle.lua` from the
Expand Down
57 changes: 57 additions & 0 deletions shen-0.10.1-1.rockspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
rockspec_format = "3.0"
package = "shen"
version = "0.10.1-1"

source = {
url = "git+https://github.com/pyrex41/shen-lua.git",
tag = "v0.10.1",
}

description = {
summary = "A speed-focused LuaJIT port of the Shen language (kernel 41.2)",
detailed = [[
shen-lua runs the Shen language on LuaJIT 2.1 by compiling KLambda to Lua
source. Embed with `local shen = require("shen")` (boot/eval/call/fn plus
list/symbol marshaling), or use the `shen` launcher for a REPL, running
.shen files, and -e one-liners. Requires LuaJIT (Lua 5.1 semantics + FFI);
the Shen 41.2 KLambda sources are bundled and compiled on first boot, then
served from a bytecode cache.

0.10.1 is a patch over 0.10.0 (same kernel 41.2): a warm FASL-cache `(load)`
hit now re-emits each top-level form's value echo, so `(load FILE)` stdout no
longer depends on cache state and matches the other ports (pyrex41/shen-lua#40).
]],
homepage = "https://github.com/pyrex41/shen-lua",
license = "BSD-3-Clause (Shen kernel: BSD)",
labels = { "shen", "language", "compiler", "luajit" },
}

dependencies = {
-- LuaJIT only: the runtime uses the FFI (prolog engine, test driver) and
-- Lua 5.1 semantics (loadstring/setfenv).
"lua == 5.1",
}

build = {
type = "builtin",
modules = {
shen = "shen.lua",
boot = "boot.lua",
prims = "prims.lua",
runtime = "runtime.lua",
compiler = "compiler.lua",
prolog_engine = "prolog_engine.lua",
prolog_compile = "prolog_compile.lua",
typecheck_native = "typecheck_native.lua",
lua_interop = "lua_interop.lua",
repl = "repl.lua",
},
install = {
bin = { shen = "bin/shen" },
},
-- The vendored Shen 41.2 KLambda kernel sources, compiled on boot.
-- They land in the rock directory
-- (<tree>/lib/luarocks/rocks-5.1/shen/<version>/klambda); boot.lua's
-- find_kldir() derives that path from its own install location.
copy_directories = { "klambda" },
}
Loading