Releases: jcubic/lips
Releases · jcubic/lips
0.11.0
Features
- Add support to list cycles
- new macro
ignore
that will swallow promises - add
try
macro - add
current-environment
function eval
LIPS function now accept environment as second argument- better toString of gensym symbols (it now shows
#gensym_1#
instead ofSymbol(#gensym)
checkmacroexpand
) - macroexpand now produce formatted LIPS code (API exposed in Formatter::break that break LIPS code into lines)
Bug fixes
- call error in evaluate when promise returned from function is rejected
- fix errors in
map
,reduce
,fold
andfor-each
(that usemap
) - fix exception when call to match fail to match
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.10.0
Breaking
- change order of
split
,replace
,match
,search
andinstanceof
so you can use them withcurry
append
andappend!
no require list or nil second argument- apply is no longer Macro it's now a function (so it can be used in curry)
Features
- change
append!
from macro to function (it will work with any value as fist list argument not only with names help
function and help system inside functions. First expression after function arguments is docs.- add
pipe
,compose
,fold
andsome
functions - new function
unbind
to help write function that work with functions as objects (LIPS wrap them) - add alias for
.
asget
so you can pass it to curry, with.
LIPS will try to create pair - lambda function introspection
- hypeapp example
- better loading of code
- make
map
,filter
,find
,for-each
andreduce
sync when possible - basic type checking
- documented
unquote-splicing
andunquote
functions that throw error when used outside ofquasiquote
- allow to extend the parser (kind of reader macros)
Bug fixes
- fix
if
it should not return false if false value is undefined - fix even and odd functions with BigInt
- fix curry
- fix when inside quasiquote there is empty list
- make
load
uselips.exec
, so it execute code sequentially - fix
append
- fix
timer
to use with expression - fix macros without arguments
- fix calling
setTimeout
#5
0.9.1
0.9.0
Breaking
for-each
andmap
works as in Scheme spec (use multiple arguments and don't use index)
Features
- better binary (options -f -c + read stdin + REPL + indent + catch exception)
- indent API function
- allow to use dots and variable names
.
function now work with multiple arguments and gets nested object value- add
undefined
to default Environment so you can use it in Lips code - add function
nop
- tokenizer with meta data now include newlines and comments (nothing is removed)
Bugs
- fix offset in tokenizer
- fix assign variables from variables (e.g. function or variable aliases)
- fix return value of Math operation that should return float #1
- fix tokenizer meta data with strings outside of S-Expressions or in lonely lines
- fix print of lips Symbols (update string function)
- fix missing recursive calls to unquote in quasiquote macro
- fix major issues with quasiquote that make macros don't work quite right
- fix parser when using multiple specials (unquote, quote etc.) in a row
- fix scope when evaluating macros
- fix async issues with list values inside let, lambda and begin macros
- don't evaluate next expressions in
and
andor
macros
0.8.1
0.8.0
Features
- new nth and reverse functions
- new type checking functions null? regex? pair? string? number? symbol? array? object? boolean?
- add lips source code that throwed exception in JavaScript error message
Bugfix
- fix lambda with rest parameter
Breaking
if
now check if argument is boolean