- Prevent special forms being passed as value at
Symbol.Eval
level. - Add checks for ambiguous arity detection in
MultiFn
.
- Expand macro-expansions in place during 'List.parse()'
- Add
MacroExpand
public function - Prevent macros being passed as value at
Symbole.Eval
level. - All
Values
operations return&List{}
as result instead ofValues
.
- Move
Slang
to separate repository - Add support for member access using qualified symbols (i.e.,
foo.Bar.Baz
).
- Add support for macros through
macro*
special form. - Use Macro support to add
defn
anddefmacro
macros. - Rewrite
core.lisp
withdefn
macro.
- Add support for custom special forms through
SpecialForm
type. - Update package documentation.
- Remove all type specific functions in favour generic slang core.
- Add type init through Type.Invoke() method
- Remove GoFunc in favor of Fn
- Add slang tests using lisp files (#8)
- Added tests for function definitions
- Improve function call reflection logic to handle error returns
- Add evaluation error with positional info
- Add position info to Set, List, Vector, Symbol
- Add slang runtime package, add generic repl package
- Add support for variadic functions
- Add Values type and Seq types
- Add let and throw special forms
- Add support for multi-arity functions
- Convert List, Set, Vector, Symbol types to struct
- Modify List, Set, Vector types to embed Values type
- Move special form functions into sabre root package
- Add parent method to scope and modify def to apply at root scope
- Add working clojure style quote system
- Move SpecialFn to sabre root package as GoFunc
- remove redundant strictFn type
- Add error function and type functions
- Add experimental Set implementation
- Add special Nil type, add not & do core functions
- Add type check and type init functions for all types
- Add unit tests for all string and eval methods
- Fix nested lambda binding issue
- Split builtin functions into core package
- Fully working LISP reader.
- Working Evaluation logic with no automatic type conversion.
- Core functions
def
,eval
andfn
implemented. - Simple working REPL implemented.