1.2 KiB
1.2 KiB
The Keithlisp Programmer's Reference
Keithlisp is a tiny, stripped-down version of Lisp written in C. It's vaguely reminiscent of Common Lisp; however, Keithlisp does NOT fully adhere to the Common Lisp standard! Many Common Lisp functions are not present or behave differently in Keithlisp.
General Advice
- Keithlisp assumes that you, the programmer, know what you are doing. Many Keithlisp functions will segfault or otherwise misbehave if you do not provide them with the data they expect.
- Keithlisp doesn't properly parse tokens longer than 64 bytes. This includes string literals.
- Strings in Keithlisp are sequences of bytes. A zero byte does not necessarily correspond to the end of a string.
- You can comment out
#define LISP_USE_ATOMS_ALIST
in main.h to remove the atoms_alist. This significantly reduces Keithlisp's memory footprint, but makes it impossible to retrieve the name of an atom. - Keithlisp doesn't automatically garbage-collect return values at the moment, but this may change in the future. If you know whether a function will return a cons/string referenced elsewhere or not, you should insert a garbage collector annotation in your code.