Skip to content

luthersystems/elps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

642 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ELPS — Embedded Lisp Interpreter

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

Links

Community & Support