github basilisp-lang/basilisp v0.1.dev14
Release v0.1.dev14

latest releases: v0.3.8, v0.3.7, v0.3.6...
pre-release4 years ago

New Features

  • Added support for futures (#441)
  • Added support for calling Python functions and methods with keyword arguments (#531)
  • Added support for Lisp functions being called with keyword arguments (#528)
  • Added support for multi-arity methods on deftypes (#534)
  • Added metadata about the function or method context of a Lisp AST node in the NodeEnv (#548)
  • Added reify* special form (#425)
  • Added support for multi-arity methods on definterface (#538)
  • Added support for Protocols (#460)
  • Added support for Volatiles (#460)
  • Added JSON encoder and decoder in basilisp.json namespace (#484)
  • Added support for generically diffing Basilisp data structures in basilisp.data namespace (#555)
  • Added support for artificially abstract bases classes in deftype, defrecord, and reify types (#565)
  • Added support for transient maps, sets, and vectors (#568)

Changed

  • Basilisp set and map types are now backed by the HAMT provided by immutables (#557)
  • get now responds nil (or its default) for any unsupported types (#570)
  • nth now supports only sequential collections (or nil) and will throw an exception for any invalid types (#570)
  • Use functools.singledispatch for to achieve higher performance polymorphism on most runtime functions (#552, #559)
  • Update the keyword cache to use a Python threading.Lock rather than an Atom (#552)
  • rest no longer returns nil, it always returns an empty sequence (#558)

Bug Fixes

  • Fixed a bug where the Basilisp AST nodes for return values of deftype members could be marked as statements rather than expressions, resulting in an incorrect nil return (#523)
  • Fixed a bug where defonce would throw a Python SyntaxError due to a superfluous global statement in the generated Python (#525)
  • Fixed a bug where Basilisp would throw an exception when comparing seqs by = to non-seqable values (#530)
  • Fixed a bug where aliased Python submodule imports referred to the top-level module rather than the submodule (#533)
  • Fixed a bug where static methods and class methods on types created by deftype could not be referred to directly (defeating the purpose of the static or class method) (#537)
  • Fixed a bug where deftype forms could not be declared without at least one field (#540)
  • Fixed a bug where not all builtin Basilisp types could be pickled (#518)
  • Fixed a bug where deftype forms could not be created interfaces declared not at the top-level of a code block in a namespace (#376)
  • Fixed multiple bugs relating to symbol resolution of imported symbols in various contexts (#544)
  • Fixed a bug where the = function did not respect the equality partition for various builtin collection types (#556)
  • Fixed a bug where collection types could evaluate as boolean false (#566)
  • Fixed a bug where reduce required a 1-arity function for the variant with an initial value, rather than returning that initial value (#567)

Don't miss a new basilisp release

NewReleases is sending notifications on new releases.