Embedded stutter - datasheet

Language family lisp
Language capabilities
  • Embeddable interpreter library with simple C API
  • Support for multiple parallel execution contexts
  • Core language with integer, double, string, multidimensional array types
  • Lists
  • Macros
  • Closures
  • Support for opaque binary data (blob)
  • Tail recursion is optimized into iteration
  • Mark & sweep garbage collector
  • A subset of CLOS, defstruct
  • Support for customizable SETF
  • flexible I/O stream handling with arbitrary backends
Implemented in ANSI C (C89) with minor dependencies on commonly available calls such as stat(2) or gettimeofday(2).
Library implementation size below 9000 sloc
Library API size below 900 sloc
Project license Public Domain
API features
  • fully reentrant API
  • multiple global/library contexts
  • multiple var contexts in each library context
  • load and evaluate stutter expressions from file or string or object stream
  • call dynamically registered C functions from stutter
  • call stutter functions from C
  • register variables and symbols in var context from C
  • register new data types
  • create I/O streams with custom C backend implementation
Downloads and contacts
  • project page
  • source release tarballs
  • Version control: svn://repo.hu/estutter
  • Contact: mail to: estt [at] igor2.repo.hu
  • Chat: IRC server: repo.hu port: 6667 channel: #pcb-rnd