Stutter 0.19 A programming language called Stutter. It is intended to be an experimental, interpreted language based on the LISP, Scheme & friends family, for personal/educational purposes. Portability is desired, within reasonable limits. All the software is open source, licensed on a "do whatever you want with it" basis. (igor2 clarifies: this means that Stutter is public domain.) There is an interpreter library and a command line environment (tested on Linux, although they should compile on other similar platforms with little or no modification). A simple C API exists for embedding the interpreter; also, there is a script interface module for Stutter in GPMI, the General Package/Module Interface. [http://sourceforge.net/projects/libgpmi] Contact: k-zed@hactar.net Capabilities: * Core language with integer, double, string, multidimensional array types * Lists * Macros * Closures * Tail recursion is optimised into iteration * Mark & sweep garbage collector * Embeddable interpreter library with simple C API * A subset of CLOS, defstruct * Modules that can be compiled in or loaded in run time * SETF architecture Modules: * SQLite3 * PostgreSQL * XML parser * Perl regex library To learn programming in Stutter, you can read a basic LISP tutorial (most of the simple list-related stuff might work), and browse the documentation. VIM users, you can add this line to your .vimrc: au BufNewFile,BufRead *.stt setf lisp au BufNewFile,BufRead *.stt set expandtab This will make VIM handle *.stt files as LISP source code (useful for syntax highlighting and autoindent). REVISION HISTORY 0.19: rewritten error message generation (again) module architecture blobs 0.18: standard library reorganization and automatic loading better setf mechanism, other new/improved macros and utilities symbol-macrolet some locale support (local-encoding and iconv) new error code management (register-error) better error trace 0.17: #N[=#] labels (list circularization) #'...' and #"..." python-style raw string literals pcre module PostgreSQL module moved rename and unlink from stserv to here some new builtins (eg. getenv, readdir) bugfixes 0.16: added support for x86_64 added simple subset of CLOS XML parser module convenient macros for builtin definition weak pointers modified, faster memory allocator removed object finalizers removed object property lists 0.15: NO_READLINE compile flag added LOOP macro (and nested list support for ASSIGN) cached reusable objects for first N (256) integers added character type speed optimisations 0.14: new type: cookie object finalization sqlite module 0.13: tab-completion in shell shell registers *ARGV* and $0 for scripts 0.12: safer memory handling everywhere arrays store references instead of objects optimised GC data structures (significantly faster) error trace 0.11: rewritten parser from scratch streams, file i/o dictionaries setf comma-splice 0.10: closures symbolic macros object property lists keyword symbols now evaluate to themselves 0.9: optional function arguments with default values backquote and comma syntax structs 0.8: miscellaneous fixes 0.7: optimised name lookups new builtins: do, let, mapcar, filter, etc. improved shell (multiline editing) 0.6: optimisations, miscellaneous fixes 0.5: arrays 0.4: tail call optimisation saner macros assoclists