Squirrel is a light-weight programming language (around 6000 lines of code) that features higher-order functions, classes/inheritance, delegation, tail recursion, generators, cooperative threads, exception handling, reference counting and garbage collection on demand. It has a C-like syntax.
| Tags | Software Development Compilers Interpreters |
|---|---|
| Licenses | zlib/libpng |
| Operating Systems | OS Independent |
| Implementation | C++ |
Recent releases


Changes: sq_getfunctioninfo was added. The compile time flag SQUSEDOUBLE was added to use double precision floats. The global slot _floatsize_ was added in the base library to recognize single precision and double precision builds. sq_wakeupvm can now resume the vm with an exception. sqstd_format was added. Generators can now be instantiated by calling sq_call() or closure.call(). A bug in sqstd_printcallstack was fixed. A modulo by zero was fixed. Negative enums and constants were fixed. A generator crash bug which occurred if invoked as tail call was fixed. A few minor bugs were fixed.


Changes: The _newslot metamethod in classes was added. enums and constants were added. sq_pushconsttable and sq_setconsttable were added to the API. Function default parameters were added. Octal literals were added. The debug hook was fixed, so "calls" and "returns" are properly notified in the same number. A coroutine bug was fixed.


Changes: The behavior for generators iteration using foreach was changed. Now, when a generator is iterated by foreach, the value returned by a "return val" statement will terminate the iteration but will not be returned as foreach iteration. sq_setclassudsize(), sq_clear(), table.clear(), and array.clear() were added. sq_cmp() was fixed. Minor bugs were fixed.


Changes: VM refactoring: optimized internal function memory layout. Code size optimization for float literals (on 32-bit float builds). Improved C reference performance in NO_GARBAGE_COLLECTOR builds. Minor bugs in the API have been fixed. The regexp library has been fixed for GCC users.


Changes: 64-bit architecture support, functions with environments, static class members, API improvements, and minor bugfixes.