Releases: basilisp-lang/basilisp
Releases · basilisp-lang/basilisp
Release v0.4.0
Added
- Added support for referring imported Python names as by
from ... import ...(#1154) - Added the
basilisp.urlnamespace for structured URL manipulation (#1239) - Added support for proxies (#425)
- Added a
:slotsmeta flag fordeftypeto disable creation of__slots__on created types (#1241) - Added support for f-strings (#922)
- Added the
aslicemacro to facilitate the use of Python stylearray[start:stop:step]slicing in Basilisp (#1248) - Added the
IPendinginterface which is implemented by delays, futures, and promises (#1260) - Added the
basilisp.pprintnamespace (#513)
Changed
- Removed implicit support for single-use iterables in sequences, and introduced
iterator-seqto explicitly handle them (#1192) basilisp.core/strnow delegates to the builtin Pythonstrin all cases except for customizing the string output for builtin Python types (#1237)- Optimised mainstream seq-consuming functions by coercing their inputs into
sequpfront (#1234) - Renamed
awithandafortowith-asyncandfor-asyncfor improved clarity (#1248) basilisp.main.initwill 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
:refera 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
Release v0.3.8
Added
Changed
- Function parameter names will not be automatically generated with unique suffixes unless the function meta key
^:safe-py-paramsis provided (#1212)
Fixed
- Fix an issue where the compiler would generate an illegal
returnstatement for asynchronous generators (#1180) - Fix an issue where consecutive reader comment forms would not be ignored (#1207)
Full Changelog: v0.3.7...v0.3.8
Release v0.3.7
Fixed
- Fix a regression introduced in #1176 where the testrunner couldn't handle relative paths in
sys.path, causingbasilisp testto fail when no arugments were provided (#1204) - Fix a bug where
basilisp.process/execcould deadlock reading process output if that output exceeded the buffer size (#1202) - Fix
basilisp boostrapissue on MS-Windows where the boostrap file loaded too early, before Basilisp was insys.path(#1208)
Full Changelog: v0.3.6...v0.3.7
Release v0.3.6
Added
- Added support for the
:decoratorsmeta key in anonymousfns (#1178)
Changed
importnow returns nil instead of the last module's string representation (#1174)- The
:decoratorskey now works indefnwhen passed as a metadata name key, expanding its support todefn-derived macros likedefasync(#1178). - Change Python import machinery to be centered around Python code, rather than Basilisp namespaces (#1155, #1165)
Fixed
- Fix a bug in
defnwhere theattr-map?and function metdata were merged into a seq instead of a map, causingmacroexpandto fail in some cases (#1186) - Fix a bug where
basilisp.process/execthrew an exception when inheriting the stdout stream from the current process (#1190) - Fix a bug where
condpthrew an exception in certain cases (#1194)
Full Changelog: v0.3.5...v0.3.6
Release v0.3.5
Changed
alter-var-rootnow returns the new value to align with Clojure behavior. Updated the docstring to highlight side effects of direct linking optimization (#1166)
Fixed
- Fix a regression introduced in #1161 which prevented passing namespace metadata on the name in the
nsmacro (#1173)
Full Changelog: v0.3.4...v0.3.5
Release v0.3.4
Added
- Added support for the optional
attr-map?on thensmacro (#1159) - Added support for the optional pre- and post-conditions in
fnforms (#1167)
Fixed
- Fix a bug where
#characters were not legal in keywords and symbols (#1149) - Fix a bug where seqs were not considered valid input for matching clauses of the
casemacro (#1148) - Fix a bug where
py->lispdid not keywordize string keys potentially containing namespaces (#1156) - Fix a bug where anonymous functions using the
#(...)reader syntax were not properly expanded in a syntax quote (#1160) - Fix a bug where certain types of objects (such as objects created via
deftype) could not be unquoted correctly in macros (#1153)
Full Changelog: v0.3.3...v0.3.4
Release v0.3.3
Added
- Added support for a subset of qualified method syntax introduced in Clojure 1.12 (#1109)
- Added the
basilisp.processnamespace (#1108)
Changed
- The Custom Data Readers Loader will only now examine the top directory and up to its immediate subdirectories of each
sys.pathentry, instead of recursive descending into every subdirectory, improving start up performance (#1135)
Fixed
- Fix a bug where tags in data readers were resolved as Vars within syntax quotes, rather than using standard data readers rules (#1129)
- Fix a bug where
keywordandsymbolfunctions did not treat string arguments as potentially namespaced (#1131) - Fix a bug where
condpwould throw an exception if a result expression wasnil(#1137) - Fix a bug where integer division which resulted in an integer would return a
fractions.Fraction(#1140) - Fix a bug where
basilisp.core/timewould fail to expand withmacroexpand-allin a nested macro call (#1143)
Full Changelog: v0.3.2...v0.3.3
Release v0.3.2
Added
- Added support for constructing a data representation of reader conditionals (#1125)
Fixed
- Fix a bug where
basilisp testcommand fails due to an invalidargparseconfiguration (#1119) - Fix a bug where
basilisp.walk/walk(and any functions that depend on it) did not preserve collection metadata (#1123) - Fix a bug where the private
postwalkimplementation in the reader did not preserve collection metadata (#1123) - Fix a bug where unknown data reader tags in non-selected reader conditional branches prevented reading the forms (#1118)
Full Changelog: v0.3.1...v0.3.2
Release v0.3.1
Added
- Added support for the
:param-tagsreader metadata syntax^[tag ...]from Clojure 1.12 (#1111) - Add support for tagged literals (#1104)
Changed
- Types generated by
reifymay optionally be marked as^:mutablenow to preventattrs.exceptions.FrozenInstanceErrors being thrown when mutating methods inherited from the supertype(s) are called (#1088)
Fixed
- Fix a bug where symbols and keyword containing
:characters in the name were rejected by the reader (#1105) - Fix a bug where records did not support reducing via
reduce-kv(#1102) - Fix a bug where collection modifying library functions such as
conj,disj,assoc,dissoc, andemptywould not preserve collection metadata (#1103)
Full Changelog: v0.3.0...v0.3.1
Release v0.3.0
Added
Fixed
- Fix an issue with
basilisp teststandard streams output that can lead to failures on MS-Windows (#1080) - Fix an issue where destructuring a vector would throw an exception rather than returning
nilfor invalid key types (#1090) - Fix an issue where destructuring default values would take precedence over falsey values in the source data structure (#1078)
- Fixed a bug where imported Python names containing
-(in lieu of_) could not be referenced using the-syntax (#1085) - Fixed a compatibility issue where
*print-length*defaulted to 50 instead ofnil(#1093)
Removed
- Removed support for Python 3.8 (#1083)
New Contributors
- @bobisageek made their first contribution in #1077
- @djblue made their first contribution in #1096
Full Changelog: v0.2.4...v0.3.0