Skip to content

Jeremias-A-Queiroz/cardputer-emacs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

uLisp Cardputer Emacs

This project transforms the M5Stack Cardputer into a standalone, pocket-sized Lisp Machine. Built on top of uLisp, it replaces the standard serial-blocking REPL with a resident micro-Emacs style text editor.

By utilizing a dual-memory architecture, text editing is handled natively in C++ (via efficient Gap Buffers allocated in the ESP32-S3 SRAM/PSRAM), while the uLisp Workspace remains 100% dedicated to code execution. This allows for smooth, multi-buffer text editing (=scratch=, =REPL=) and seamless on-device S-expression evaluation (Zero-Copy Eval) without triggering Lisp Garbage Collection pauses during typing.

Key Features:

  • Native Micro-Emacs UI: Modeline, minibuffer, and dynamic buffer management.
  • Hardware Keymap: Support for physical modifier chords (=CTRL=, =OPT=) on the Cardputer keyboard.
  • Zero-Copy Evaluation: Evaluate S-expressions directly from the editor buffer (=C-x C-e=) into the uLisp engine.
  • Legacy Support: The standard USB Serial REPL, WiFi stack, and hardware I/O remain fully functional.

About

A pocket-sized Lisp Machine: A micro-Emacs style text editor integrated with uLisp for the M5Stack Cardputer. It features a native C++ gap-buffer architecture, multiple buffers, and on-device Zero-Copy evaluation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors