Added
- Added support for Python 3.14 (#1282)
- Added support for Unicode escape sequences in string literals (#1295)
- Added environment variable configurations for the PyTest testrunner to allow more specific test discovery (#1301)
- Added no-op Clojure compatibility functions:
inc',dec',int-array,long-array,short-array,float-array,double-array,bool-array(#1305)
Changed
tryandcatchspecial form bodies may now be empty and will returnnilwhen no expressions are given (#1294)basilisp.str/blank?now matches the behavior of Clojure, which returns true fornil, empty strings, and strings consisting of all whitespace (#1305)- String representations of infinity and NaN values now matches Clojure (#1305)
- Promises can now be called to deliver the result (#1305)
- Calling
keywordonnilnow returnsnil(#1305) consalways returns anISeqnow, not specifically aPersistentList(#1305)seqable?now returnstruefornil(#1305)- Calling a vector with an invalid index will now raise
IndexError(#1305) keysandvalsnow returnnilrather than an empty seq if the input collection is empty (#1305)get-inalways returns the input mapping if no keys are given (#1305)assoc!allows an odd number of arguments, substitutingnilfor the missing value (#1305)nthrestandnthnextreturn the input collection unchanged if the index given is negative (#1305)even?andodd?predicates throw exceptions for non-integral inputs (#1305)minandmaxnow return##NaNif any input argument is##NaN(#1305)- Ratios which reduce to an integer are now returned from the reader as integers (#1305)
mod,quot, andremreturn values are now consistent with the Clojure return values for the same inputs (#1305)derivewill throw exceptions if the provided hierarchy is invalid or if the tag and parent are invalid types (#1305)
Fixed
- Fix a bug where
importrefers would incorrectly be applied to all import modules in the same form (#1274) - Suppress pytest assertion rewrite warning for basilisp when running
basilisp test(#1252) - Fix a bug where
+characters were not allowed after theein scientific notation literal numbers (#1292) - Fix a bug where namespaces created dynamically at the REPL could not be required from other namespaces in the REPL (#1302)
- Fix a bug where NaN floats were not properly represented in compiled code (#1305)
- Fix a bug where calling
dissocon a record type would throw an exception for keys which weren't defined on the record (#1305) - Fix a bug where arithmetic functions with operands of different types would throw exceptions (#1305)
- Fix a bug where
number?andinteger?would return true for Pythonbooltypes (#1305)
Removed
- Removed support for Python 3.9 (#1283)
Other
- Improve the state of the Python type hints in
basilisp.lang.multifn(#800)
Full Changelog: v0.4.0...v0.5.0.dev2