Skip to content

Release v0.1.0b1

Pre-release
Pre-release
Compare
Choose a tag to compare
@chrisrink10 chrisrink10 released this 25 Jan 22:42
· 216 commits to main since this release
36994ba

Added

  • Added support for passing through :tag metadata to the generated Python AST (#354)
  • Added support for calling symbols as functions on maps and sets (#775)
  • Added support for passing command line arguments to Basilisp (#779)
  • Added support for autocompleting names in the python/ pseudo-namespace for Python builtins at the REPL (#787)
  • Added a subcommand for bootstrapping the Python installation with Basilisp (#790)
  • Added support for executing Basilisp namespaces directly via basilisp run and by python -m (#791)
  • Added the memoize core fn (#812)
  • Added support for thrown-with-msg? assertions to basilisp.test/is (#831)
  • Added support for reading scientific notation literals, octal and hex integer literals, and arbitrary base (2-36) integer literals (#769)
  • Added support for passing trailing maps to functions which accept Basilisp keyword arguments (#663)
  • Added support for loading namespaces as an alias only (#664)

Changed

  • Optimize calls to Python's operator module into their corresponding native operators (#754)
  • Allow vars to be callable to adhere to Clojure conventions (#767)
  • Adjust input path compatibility in basilisp.core/load input path to be relative to the namespace or the root path (#782)
  • No longer warn on unused bindings when their name begins with _ (#756)
  • Improve the Python generation for do, if, let*, and letfn* forms to avoid unnecessary extra assignments (#793, #794, #799)
  • Generate Python classes for deftype* and reify* forms using modern @attr.define, @attr.frozen, and @attr.field APIs (#799)
  • Generate Protocol functions with nicer names based on the protocol function and dispatch type (#803)
  • Loosen the dependency specification for Immutables and Pyrsistent to allow for a wider version range (#805)
  • Allow case forms with only a default expression (#807)
  • Make pr a dynamic variable (#820)
  • Emit OS specific line endings for the println and prn fns (#810)
  • Support any character in character literals (#816)
  • Loosen typing-extensions dependency's minimal version to 4.7.0 (#809)

Fixed

  • Fix issue with (count nil) throwing an exception (#759)
  • Fix issue with keywords not testing for membership in sets when used as a function (#762)
  • Fix an issue for executing Basilisp scripts via a shebang where certain platforms may not support more than one argument in the shebang line (#764)
  • Fix issue with keywords throwing TypeError when used as a function on vectors (#770)
  • Fix an issue where the constructors of types created by deftype and defrecord could not be called if they contained - characters (#777)
  • Fix issue with the variadic ampersand operator treated as a binding in macros (#772)
  • Fix a bug the variadic arg symbol was not correctly bound to nil when no variadic arguments were provided (#801)
  • Fix a bug where the quotient of very large numbers was incorrect (#822)
  • Fix a bug where basilisp.test/is may fail to generate expected/actual info on failures when declared inside a macro (#829)
  • Fix a bug where sequential destructuring bindings do not bind names correctly when nested within associative destructuring bindings (#834)

Removed

  • Removed support for PyPy 3.8 (#785)

Other

  • Improve the state of the Python type hints in basilisp.lang.* (#797, #784)
  • Update Sphinx and its associated contrib libraries to ^7.1.0 (#815)