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 fordeftype
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 stylearray[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 Pythonstr
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
andafor
towith-async
andfor-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
- @amano-kenji made their first contribution in #1245
- @ShalokShalom made their first contribution in #1257
- @jf made their first contribution in #1259
Full Changelog: v0.3.8...v0.4.0