Release v0.1.0b1
Pre-release
Pre-release
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 bypython -m
(#791) - Added the
memoize
core fn (#812) - Added support for
thrown-with-msg?
assertions tobasilisp.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*
, andletfn*
forms to avoid unnecessary extra assignments (#793, #794, #799) - Generate Python classes for
deftype*
andreify*
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
andprn
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
anddefrecord
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)