elps

command module
v1.47.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2026 License: BSD-3-Clause Imports: 1 Imported by: 0

README

ELPS — An embedded Lisp interpreter for Go programs

Go ReferenceLuther SystemsInsideOutDiscord


ELPS (Ellipse) is a Lisp-1 dialect designed to be embedded within Go applications. It provides a standalone CLI for running, linting, formatting, debugging, and exploring ELPS Lisp code.

Install

go install github.com/luthersystems/elps@latest

Or build from source:

git clone https://github.com/luthersystems/elps.git
cd elps && make

Quick Start

Launch an interactive REPL:

$ elps repl
> (+ 3 1)
4
> (defun greet (name) (format-string "Hello, %s!" name))
> (greet "World")
"Hello, World!"
> ^D

Run a program:

$ elps run prog.lisp

Embed in a Go program:

env := lisp.NewEnv(nil)
env.Runtime.Reader = parser.NewReader()
env.Runtime.Library = &lisp.RelativeFileSystemLibrary{}
lisp.InitializeUserEnv(env)
lisplib.LoadLibrary(env)
env.LoadString(`(debug-print "hello world")`)

Editor Support

CLI

Command Description
elps run file.lisp Run a Lisp source file
elps repl Start an interactive REPL
elps lsp Start the Language Server Protocol server
elps debug file.lisp Start the debug adapter (DAP)
elps lint file.lisp Run static analysis
elps fmt file.lisp Format source code
elps doc <query> Show function/package documentation
elps mcp Start the MCP server for AI tooling

Documentation

Examples

Community & Support

Documentation

Overview

Command elps is a frontend for an embedded list processing system.

Directories

Path Synopsis
_examples
wasm/app command
wasm/server command
A basic HTTP server.
A basic HTTP server.
Package analysis provides scope-aware semantic analysis for ELPS lisp source.
Package analysis provides scope-aware semantic analysis for ELPS lisp source.
perf
Package perf provides call-graph-based performance analysis for ELPS source files.
Package perf provides call-graph-based performance analysis for ELPS source files.
Package astutil provides shared AST walking utilities for ELPS lisp values.
Package astutil provides shared AST walking utilities for ELPS lisp values.
Package diagnostic provides Rust-style annotated error rendering for ELPS CLI output.
Package diagnostic provides Rust-style annotated error rendering for ELPS CLI output.
Package docs embeds the ELPS language reference for use by the CLI.
Package docs embeds the ELPS language reference for use by the CLI.
Package formatter provides source code formatting for ELPS lisp files.
Package formatter provides source code formatting for ELPS lisp files.
Package lint provides static analysis for ELPS lisp source files.
Package lint provides static analysis for ELPS lisp source files.
lisplib
Package lisplib is used to conveniently load the standard library for the elps environment
Package lisplib is used to conveniently load the standard library for the elps environment
x/debugger
Package debugger implements the ELPS debugger engine (Layer 1).
Package debugger implements the ELPS debugger engine (Layer 1).
x/debugger/dapserver
Package dapserver implements a DAP (Debug Adapter Protocol) server for the ELPS debugger engine.
Package dapserver implements a DAP (Debug Adapter Protocol) server for the ELPS debugger engine.
x/debugger/debugrepl
Package debugrepl provides an interactive CLI debug REPL built on top of the extensible repl.RunEnv function and the debugger engine.
Package debugrepl provides an interactive CLI debug REPL built on top of the extensible repl.RunEnv function and the debugger engine.
Package lsp implements a Language Server Protocol server for ELPS.
Package lsp implements a Language Server Protocol server for ELPS.
Package minifier provides deterministic, scope-aware identifier minification for ELPS source files and parsed programs.
Package minifier provides deterministic, scope-aware identifier minification for ELPS source files and parsed programs.
regexparser
Package parser provides a lisp parser.
Package parser provides a lisp parser.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL