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: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,11 @@ luarocks make --local shen-scm-1.rockspec # or: install the development tree
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`)
or build from a checkout with the `scm` rockspec above.

Prefer zero install? Grab `shen-bundle.lua` from the
[latest release](https://github.com/pyrex41/shen-lua/releases/latest) —
the whole system in one file.
Expand Down
53 changes: 53 additions & 0 deletions shen-0.10.0-1.rockspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
rockspec_format = "3.0"
package = "shen"
version = "0.10.0-1"

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

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.
]],
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" },
}
9 changes: 6 additions & 3 deletions shen-0.9.0-1.rockspec
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,18 @@ source = {
tag = "v0.9.0",
}

-- NOTE: this rockspec pins tag v0.9.0, which bundles the Shen 41.1 kernel.
-- For kernel 41.2 use shen-0.10.0-1.rockspec (tag v0.10.0) or later.
description = {
summary = "A speed-focused LuaJIT port of the Shen language (kernel 41.2)",
summary = "A speed-focused LuaJIT port of the Shen language (kernel 41.1)",
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.
the Shen 41.1 KLambda sources are bundled and compiled on first boot, then
served from a bytecode cache. NOTE: this version bundles kernel 41.1; for
kernel 41.2 install shen 0.10.0 or later.
]],
homepage = "https://github.com/pyrex41/shen-lua",
license = "BSD-3-Clause (Shen kernel: BSD)",
Expand Down
Loading