Expand description
§The SPAIK-LISP Programming Language
This is the documentation for SPAIK an embeddable Lisp dialect for Rust.
(dolist (x '(this new unknown))
(println "Hello, {x} World!"))Hello, this World!
Hello, new World!
Hello, unknown World!§Running SPAIK from Rust
use spaik::Spaik;
let mut vm = Spaik::new();
vm.exec(r#"(println "code")"#).unwrap();
let res: f32 = vm.eval(r#"(sqrt (+ 1 2))"#).unwrap();Re-exports§
Modules§
- error
- Structured Errors
- prelude
- The easiest way to get started with SPAIK is
use spaik::prelude::* - proc_
macro_ deps - This is NOT a public interface. Dependencies for procedural macros (feature “derive”.)
- repl
- Interactive Read-Eval-Print-Loop
Structs§
- Example
Object - Object for use in SPAIK examples
- Gc
- Thread-safe reference-counted smart-pointer. Cheap to clone. Used to refer
to
Userdatastored on the SPAIK heap. - Ignore
- A type that all SPAIK values may be converted to.
- Promise
- Promise made to
SpaikPlug - SPV
- Safe Primitive Value, a way of safely referring to GC storage
- Spaik
- A SPAIK Context, this is the main way to use SPAIK
- Spaik
Plug - Asynchronous SPAIK, in another thread
- Sym
Enums§
Traits§
- Args
- AsSym
- Enum
Call - Fissile
- Structs that can be stored inline in the GC
Arenamemory must implement this trait. - From
Lisp - The
memparameter is necessary here, because some of the conversions may need to create an SPV reference-counter - Into
Lisp - The
memparameter is necessary here, because some of the conversions may need to do memory allocation. - Into
Subr - Subr
- Userdata
Functions§
- minify
- Remove unneeded whitespace from SPAIK code.
- run_
tests - Run SPAIK tests from the
./testsdirectory and report any errors. - scratch_
main - SPAIK scratchpad for use in development of SPAIK itself. Rust doesn’t have a good REPL, this is my substitute. Changes to this file should not be commited to git.