Releases: basilisp-lang/basilisp
Release v0.3.5
Changed
alter-var-root
now 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
ns
macro (#1173)
Full Changelog: v0.3.4...v0.3.5
Release v0.3.4
Added
- Added support for the optional
attr-map?
on thens
macro (#1159) - Added support for the optional pre- and post-conditions in
fn
forms (#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
case
macro (#1148) - Fix a bug where
py->lisp
did 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.process
namespace (#1108)
Changed
- The Custom Data Readers Loader will only now examine the top directory and up to its immediate subdirectories of each
sys.path
entry, 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
keyword
andsymbol
functions did not treat string arguments as potentially namespaced (#1131) - Fix a bug where
condp
would 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/time
would fail to expand withmacroexpand-all
in 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 test
command fails due to an invalidargparse
configuration (#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
postwalk
implementation 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-tags
reader metadata syntax^[tag ...]
from Clojure 1.12 (#1111) - Add support for tagged literals (#1104)
Changed
- Types generated by
reify
may optionally be marked as^:mutable
now to preventattrs.exceptions.FrozenInstanceError
s 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
, andempty
would not preserve collection metadata (#1103)
Full Changelog: v0.3.0...v0.3.1
Release v0.3.0
Added
Fixed
- Fix an issue with
basilisp test
standard 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
nil
for 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
Release v0.2.4
Added
- Added functions to
basilisp.test
for using and combining test fixtures (#980) - Added the
importing-resolve
function for dynamically importing and resolving a Python name (#1065, #1070) - Added support for highlighting matching parens, brackets, and braces at the REPL (#1074)
- Added the
-p
/--include-path
argument tobasilisp test
CLI subcommand (#1075) - Added an empty entry to
sys.path
forbasilisp test
CLI subcommand (#1075)
Fixed
- Fix a bug where the reader was double counting the CRLF newline seq in metadata (#1063)
- Conform to the
cider-nrepl
info
ops spec by ensuring result's:file
is URI, also added missing :column number (#1066) - Fix a bug with
basilisp.edn/write-string
where nested double quotes were not escaped properly (#1071) - Fix a bug where additional arguments to
basilisp test
CLI subcommand were not being passed correctly to Pytest (#1075)
Full Changelog: v0.2.3...v0.2.4
Release v0.2.3
Added
- Added a compiler metadata flag for suppressing warnings when Var indirection is unavoidable (#1052)
- Added the
--emit-generated-python
CLI argument to control whether generated Python code strings are stored by the runtime for each compiled namespace (#1045) - Added the ability to reload namespaces using the
:reload
flag onrequire
(#1060)
Changed
- The compiler will issue a warning when adding any alias that might conflict with any other alias (#1045)
- The compiler is now capable of unrolling top level
do
forms (not includingdo
forms emitted by macros) (#1028)
Fixed
- Fix a bug where Basilisp did not respect the value of Python's
sys.dont_write_bytecode
flag when generating bytecode (#1054) - Fix a bug where Basilisp import names existed in the same namespace as
def
names, which caused some unexpected behavior (#1045)
--disable-ns-cache
CLI command or by using the BASILISP_DO_NOT_CACHE_NAMESPACES=true
environment variable. Alternatively, you can either clear your Python cache using whatever means you typically use or recreate your virtual env.
Full Changelog: v0.2.2...v0.2.3
Release v0.2.2
Added
- Added the
-p
/--include-path
CLI command to prepend entries to thesys.path
as an alternative toPYTHONPATH
(#1027) - Added an empty entry to
sys.path
for all CLI entrypoints (basilisp run
,basilisp repl
, etc.) (#1027) - Added command line arguments for enabling the development logger and configuring the logging level (#1047)
Changed
- The compiler will no longer require
Var
indirection for top-leveldo
forms unless those forms specify^:use-var-indirection
metadata (which currently is only used in thens
macro) (#1034) - nREPL server no longer sends ANSI color escape sequences in exception messages to clients (#1039)
Fixed
- Fix a bug where the compiler would always generate inline function definitions even if the
inline-functions
compiler option is disabled (#1023) - Fix a bug where
defrecord
/deftype
constructors could not be used in the type's methods (#1025) - Fix a bug where
keys
andvals
would fail for records (#1030) - Fix a bug where operations on records created by
defrecord
failed for fields whose Python-safe names were mangled by the Python compiler (#1029) - Fix incorrect line numbers for compiler exceptions in nREPL when evaluating forms in loaded files (#1037)
- Fix issue where the compiler exception message from the nREPL server could refer to the initially loaded file instead of the updated one (#1042)
Full Changelog: v0.2.1...v0.2.2
Release v0.2.1
Changed
- Exceptions occurring during inlining during macroexpansion are no longer obscured by the outer macroexpansion exception (#1013)
Fixed
- Fix the behaviour of
nil
with several collection functions (#1011) - Fix a bug where
keys
andvals
did not yield keys and values from sequences of map entries (#1018) - Fix a bug where
set
andvec
do not produce collections of map entries when called on map arguments (#1020) - Fix lazy sequences not propagating
AttributeError
(#1019)
Full Changelog: v0.2.0...v0.2.1