Skip to content

Releases: LIPS-scheme/lips

0.11.0

29 Apr 22:42
Compare
Choose a tag to compare

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 of Symbol(#gensym) check macroexpand)
  • 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 and for-each (that use map)
  • fix exception when call to match fail to match

0.10.4

29 Apr 22:41
Compare
Choose a tag to compare

Bug fixes

  • fix accessing props on native objects like Object function #6

0.10.3

29 Apr 22:41
Compare
Choose a tag to compare

Bug fixes

  • fix print that get stdout from global env not from user one + better babel fix added in 0.10.1

0.10.2

22 Apr 21:14
Compare
Choose a tag to compare

Bug fixes

  • fix version number in source code (fixing wrong build)

0.10.1

22 Apr 21:13
Compare
Choose a tag to compare

Bug fixes

  • fix for babel when using for-each (weakBind was not working because babel was using apply(void 0, ...)
  • add missing error function used in example macros

0.10.0

22 Apr 10:07
Compare
Choose a tag to compare

0.10.0

Breaking

  • change order of split, replace, match, search and instanceof so you can use them with curry
  • append and append! 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 and some functions
  • new function unbind to help write function that work with functions as objects (LIPS wrap them)
  • add alias for . as get 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 and reduce sync when possible
  • basic type checking
  • documented unquote-splicing and unquote functions that throw error when used outside of quasiquote
  • 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 use lips.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

22 Apr 10:06
Compare
Choose a tag to compare

Bugfixes

  • fix small issue with invoking macros

0.9.0

14 Apr 11:41
Compare
Choose a tag to compare

Breaking

  • for-each and map 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 and or macros

0.8.1

08 Jan 22:30
Compare
Choose a tag to compare

Bugfix

  • use exception.code for code that triggered exception

0.8.0

08 Jan 22:30
Compare
Choose a tag to compare

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