New Features
macroexpand
andmacroexpand-1
functions (#394)reset-vals!
andswap-vals!
Atom functions (#399)format
,printf
, and a few other formatting functions (#401)rand
,rand-int
, and a few other basic random functions (#402)assoc-in
,update-in
, and a few other associative utility functions (#404)- Several namespace utility functions (#405)
- Preliminary support for Python 3.8 (#406 and #407)
- Added the
ILookup
interface toIAssociative
(#410) - Support for Reader Conditional syntax (#409)
Changes
- Python builtins may now be accessed using the
python
namespace from within Basilisp code, rather thanbuiltins
(#400) - Basilisp code files can now be named and organized more like Clojure projects.
__init__
files are not necessary, though they may still be used. Folders can bear the same name as a namespace file, which will allow nesting. (#393) - Renamed Basilisp's parser module to analyzer, to more accurately reflect it's purpose (#390)
- Changed
binding
behavior to usepush-thread-bindings
andpop-thread-bindings
, which use a thread-local for bindings, to more closely emulate Clojure (#405) - Internal
IAsssociative.entry
usages have been changed toILookup.val_at
(#410)
Bug Fixes
- Allow direct code references to static methods and fields (#392)