{"id":26389,"library":"sibilisp","title":"Sibilisp","description":"A LISP-like language dialect based on Sibilant that transpiles to JavaScript. Current stable version is 0.14.2. Sibilisp enhances Sibilant with ES2015+ module system, promises, default arguments, generators, tail recursion via loop/recur, functional programming primitives, and sum/tagged types. It compiles .slisp, .sibilant, and .js files into readable JavaScript without prototype pollution. Differentiators include built-in prelude module (like Lodash), pattern matching macros, and a focus on functional programming while remaining multi-paradigm.","status":"active","version":"0.14.2","language":"javascript","source_language":"en","source_url":"https://github.com/urbandrone/sibilisp","tags":["javascript","lisp","sibilant","transpiler","open-source","mit","cli"],"install":[{"cmd":"npm install sibilisp","lang":"bash","label":"npm"},{"cmd":"yarn add sibilisp","lang":"bash","label":"yarn"},{"cmd":"pnpm add sibilisp","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"The package is primarily used as a CLI tool; importing it as a module is uncommon but supported.","wrong":null,"symbol":"default","correct":"import sibilisp from 'sibilisp'"},{"note":"ESM-only in modern versions. CommonJS require may work if package supports it, but ESM is preferred.","wrong":"const { compile } = require('sibilisp')","symbol":"compile","correct":"import { compile } from 'sibilisp'"},{"note":"The prelude is a separate module; importing from the main package will not include it.","wrong":"import prelude from 'sibilisp'","symbol":"prelude","correct":"import { prelude } from 'sibilisp/prelude'"},{"note":"REPL functionality is exported from a subpath; ensure your bundler supports package exports.","wrong":null,"symbol":"repl","correct":"import { repl } from 'sibilisp/repl'"},{"note":"Custom error class for compilation errors.","wrong":null,"symbol":"SibilispError","correct":"import { SibilispError } from 'sibilisp'"}],"quickstart":{"code":"npm install -g sibilisp\necho '(defun hello (name) (print (+ \"Hello, \" name \"!\")))\n(hello \"World\")' > hello.slisp\nsibilisp hello.slisp -o hello.js\nnode hello.js\n# Output: Hello, World!","lang":"bash","description":"Install Sibilisp globally, write a simple LISP-like program greeting the user, transpile to JavaScript, and run it."},"warnings":[{"fix":"Use `--out-dir` flag to specify custom output directory.","message":"Version 0.12.0 changed the default output directory from 'build/' to 'dist/'.","severity":"breaking","affected_versions":">=0.12.0 <0.13.0"},{"fix":"Replace `--modules commonjs` with `--module-system commonjs`.","message":"The `--modules` flag is deprecated in favor of `--module-system`.","severity":"deprecated","affected_versions":">=0.14.0"},{"fix":"Upgrade Node.js to 12 or later.","message":"Removed support for Node.js versions < 12.","severity":"breaking","affected_versions":">=0.15.0"},{"fix":"Use `(import-macros ...)` to share macros across files.","message":"Macros defined in one file are not visible in other files unless explicitly imported.","severity":"gotcha","affected_versions":">=0.10.0"},{"fix":"Use `(recur ...)` inside `loop` for tail-call optimization.","message":"Tail recursion optimization only works with explicit `recur` form; plain recursive calls may cause stack overflow.","severity":"gotcha","affected_versions":">=0.9.0"},{"fix":"Use `prelude.fmap` instead of `prelude.map`.","message":"The `prelude` module's `map` function is being renamed to `fmap` to avoid conflict with JS Array.prototype.map.","severity":"deprecated","affected_versions":">=0.14.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `import { prelude } from 'sibilisp/prelude'` and ensure your bundler supports package exports (`exports` field in package.json).","cause":"Importing prelude from wrong path or bundler not resolving subpath exports.","error":"Error: Cannot find module 'sibilisp/prelude'"},{"fix":"Ensure all s-expressions are correctly parenthesized and no stray JavaScript code is present.","cause":"Using JavaScript keywords or invalid LISP syntax in .slisp file.","error":"SyntaxError: Unexpected identifier"},{"fix":"Run `npm install -g sibilisp` or use `npx sibilisp`.","cause":"Not installed globally or not in PATH.","error":"sibilisp: command not found"},{"fix":"Wrap function calls in parentheses: `(myfunc arg1 arg2)`. Check macro definitions.","cause":"Missing parentheses or incorrect macro expansion.","error":"TypeError: (intermediate value) is not a function"},{"fix":"Upgrade Node.js to version 12 or later.","cause":"Using an outdated Node.js version.","error":"Error: Unsupported node version. Please use Node.js 12 or newer."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}