Skip to content

Releases: LIPS-scheme/lips

0.7.0

08 Jan 22:29
Compare
Choose a tag to compare

Features

  • (let iter macro that's transformation of (let* ((iter (lambda () ...
  • expandable (let iter and (define (foo) by macroexpand

Bugfix

  • fix macroexpand evaluation of code
  • use nil in cons when cdr is empty list

0.6.1

07 Oct 19:58
Compare
Choose a tag to compare

Bugfix

  • fix reduce infinite loop
  • fix invoking lambdas in dynamic scope
  • fix print of Array with multi line strings and BigInts

0.6.0

07 Oct 19:58
Compare
Choose a tag to compare

Breaking

  • change api for evaluate to have object {env, dynamic_scope, error}
  • rename set to set!, set-cdr to set-cdr! and set-car to set-car!
  • rename defmacro to define-macro like in scheme
  • change order of arguments in env.inherit

Features

  • add bit operation functions
  • add float, round and ceil functions
  • add env variable to lips namespace which is alias to global_environment
  • add find and for-each higher order functions
  • add length function
  • add new function which create instance of objects
  • allow to set value using set! and dot expression that is used to get the value
  • better invalid mime on script tag detection
  • use ES6 symbols as names for lips symbols in gensym function

Bugs

  • show error when invoking trampoline in dynamic scope
  • fix eq? and >= functions
  • fix set! (change existing reference or create new if not existing in scope chain)
  • fix return value of if macro
  • fix defmacro
  • fix parsing expressions that have multiple special characters in a row
  • handle float calculations
  • throw exception when try to execute native non function value
  • fix resolving Promises when evaluating code
  • don't allow regex that start with space (so it work when you have two divisions in one S-Expression)
  • fix parsing float numbers that start with dot
  • prevent evaluation of quoted expressions in macros
  • fix macro sharing body between invocations
  • fix read function
  • fix parsing boolean values
  • fix map, reduce and filter to handle async functions
  • fix access variables that have value of undefined

0.2.0

04 Mar 08:25
Compare
Choose a tag to compare

Features

  • Add reduce and set functions
  • add while, ++ and -- macros
  • ignore comments everything after ; but not inside strings and regexes
  • gensym and load functions
  • better string function
  • Pair methods for working with ALists + Pair::reduce
  • throw exception on car/cdr with non list

Bugs

  • fix parsing empty strings
  • fix various errors catch by lint
  • fix parsing ALists with list as keys and values
  • fix parsing quasiquote that evaluate to single pair out if unquote