Skip to content

Release v0.4.0

Latest
Compare
Choose a tag to compare
@chrisrink10 chrisrink10 released this 07 Jun 20:58
a35d85f

Added

  • Added support for referring imported Python names as by from ... import ... (#1154)
  • Added the basilisp.url namespace for structured URL manipulation (#1239)
  • Added support for proxies (#425)
  • Added a :slots meta flag for deftype to disable creation of __slots__ on created types (#1241)
  • Added support for f-strings (#922)
  • Added the aslice macro to facilitate the use of Python style array[start:stop:step] slicing in Basilisp (#1248)
  • Added the IPending interface which is implemented by delays, futures, and promises (#1260)
  • Added the basilisp.pprint namespace (#513)

Changed

  • Removed implicit support for single-use iterables in sequences, and introduced iterator-seq to explicitly handle them (#1192)
  • basilisp.core/str now delegates to the builtin Python str in all cases except for customizing the string output for builtin Python types (#1237)
  • Optimised mainstream seq-consuming functions by coercing their inputs into seq upfront (#1234)
  • Renamed awith and afor to with-async and for-async for improved clarity (#1248)
  • basilisp.main.init will only initialize the runtime environment on the first invocation (#1242)
  • Updated support for PyPy to 3.9 and 3.10 (#1265)

Fixed

  • Fix a bug where protocols with methods with leading hyphens in method names could not be defined (#1230)
  • Fix a bug where attempting to :refer a non-existent Var from another namespace would throw an unhelpful exception (#1231)
  • Fixed a bug where (range 0) would return (0) rather than than () as expected (#1258)

New Contributors

Full Changelog: v0.3.8...v0.4.0