Skip to content

Releases: basilisp-lang/basilisp

Release v0.3.5

16 Dec 14:50
8e526ac
Compare
Choose a tag to compare

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

09 Dec 16:02
66f7773
Compare
Choose a tag to compare

Added

  • Added support for the optional attr-map? on the ns 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

26 Nov 15:54
c8b168e
Compare
Choose a tag to compare

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 and symbol functions did not treat string arguments as potentially namespaced (#1131)
  • Fix a bug where condp would throw an exception if a result expression was nil (#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 with macroexpand-all in a nested macro call (#1143)

Full Changelog: v0.3.2...v0.3.3

Release v0.3.2

14 Nov 02:42
7cdadd2
Compare
Choose a tag to compare

Added

  • Added support for constructing a data representation of reader conditionals (#1125)

Fixed

  • Fix a bug where basilisp test command fails due to an invalid argparse 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

11 Nov 14:38
27c54ed
Compare
Choose a tag to compare

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 prevent attrs.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, and empty would not preserve collection metadata (#1103)

Full Changelog: v0.3.0...v0.3.1

Release v0.3.0

01 Nov 15:14
416355c
Compare
Choose a tag to compare

Added

  • Added support for Python 3.13 (#1056)
  • Added support for .cljc files (#1097)

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 of nil (#1093)

Removed

  • Removed support for Python 3.8 (#1083)

New Contributors

Full Changelog: v0.2.4...v0.3.0

Release v0.2.4

25 Sep 17:11
4786b7c
Compare
Choose a tag to compare

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 to basilisp test CLI subcommand (#1075)
  • Added an empty entry to sys.path for basilisp 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

19 Sep 15:10
49fa1d1
Compare
Choose a tag to compare

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 on require (#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 including do 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)

⚠️ Note: Due to changes in the generated code generated by the compiler, you may experience exceptions at startup if upgrading from a previous version of Basilisp. You can force Basilisp to ignore cached bytecode (and regenerate) using --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

15 Sep 15:04
5ab9c84
Compare
Choose a tag to compare

Added

  • Added the -p/--include-path CLI command to prepend entries to the sys.path as an alternative to PYTHONPATH (#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-level do forms unless those forms specify ^:use-var-indirection metadata (which currently is only used in the ns 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 and vals 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

29 Aug 17:43
abaf009
Compare
Choose a tag to compare

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 and vals did not yield keys and values from sequences of map entries (#1018)
  • Fix a bug where set and vec 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