11.. default-role :: code
22
3- Unreleased
3+ 0.27.0 (released 2023-07-06)
44=============================
55
66Removals
@@ -9,17 +9,31 @@ Removals
99
1010Breaking Changes
1111------------------------------
12- * Reader macros now always read a full identifier after the initial `# `,
13- allowing for reader macros that start with characters such as `* `, `^ `, `_ `.
14- Forms like `#*word ` will attempt to dispatch a macro named `*word `;
15- to unpack a symbol named `word `, write `#* word ` (note the space).
16- * Reader macro names are no longer mangled.
12+ * Reader macros now always read a full identifier after the initial
13+ `# `. Thus, `#*foo ` is now parsed as a call to the reader macro named
14+ `*foo `; to unpack a variable named `foo `, say `#* foo `.
15+ * The names of reader macros names are no longer mangled.
1716* Question marks (`? `) are no longer mangled specially, so `foo? ` now
1817 mangles to `hyx_fooXquestion_markX ` instead of `is_foo `.
1918* `hy2py `'s recursive mode now expects a module name as input, not any
2019 old directory. You must be in the parent directory of the module
2120 directory.
2221
22+ New Features
23+ ------------------------------
24+ * Python 3.12 is now supported.
25+ * New built-in object `hy.M ` for easy imports in macros.
26+ * `cut ` now has a function version in `hy.pyops `.
27+ * The `py ` macro now implicitly parenthesizes the input code, so
28+ Python's indentation restrictions don't apply.
29+ * `try ` no longer requires `except `, `except* `, or `finally `, and it
30+ allows `else ` even without `except ` or `except* `.
31+ * `nonlocal ` and `global ` can now be called with no arguments, in
32+ which case they're no-ops.
33+ * For easier reading, `hy --spy ` now prints a delimiter after the
34+ Python equivalent of your code, before the result of evaluating the
35+ code.
36+
2337Bug Fixes
2438------------------------------
2539* Fixed an installation failure in some situations when version lookup
@@ -32,20 +46,6 @@ Bug Fixes
3246* `hy.models.Symbol ` no longer allows constructing a symbol beginning
3347 with `# `.
3448
35- New Features
36- ------------------------------
37- * Python 3.12 is now supported.
38- * `nonlocal ` and `global ` can now be called with no arguments, in which
39- case they're no-ops.
40- * `try ` no longer requires `except `, `except* `, or `finally `, and it
41- allows `else ` even without `except ` or `except* `.
42- * The `py ` macro now implicitly parenthesizes the input code, so Python's
43- indentation restrictions don't apply.
44- * `cut ` now has a function version in `hy.pyops `.
45- * New built-in object `hy.M ` for easy imports in macros.
46- * `hy --spy ` now prints a delimiter between the Python equivalent of
47- your code and the result of evaluating the code for easier reading.
48-
49490.26.0 (released 2023-02-08)
5050=============================
5151
@@ -75,15 +75,6 @@ Breaking Changes
7575* Redundant scripts named `hy3 `, `hyc3 `, and `hy2py3 ` are no longer
7676 installed. Use `hy `, `hyc `, and `hy2py ` instead.
7777
78- Bug Fixes
79- ------------------------------
80- * `hy.REPL ` now restores the global values it changes (such as
81- `sys.ps1 `) after `hy.REPL.run ` terminates.
82- * `hy.REPL ` no longer mixes up Hy's and Python's Readline histories
83- when run inside Python's REPL.
84- * Fixed `hy.repr ` of non-compilable uses of sugared macros, such as
85- `(quote) ` and `(quote 1 2) `.
86-
8778New Features
8879------------------------------
8980* Pyodide is now officially supported.
@@ -94,6 +85,15 @@ New Features
9485* `hy2py ` has a new command-line option `--output `.
9586* `hy2py ` can now operate recursively on a directory.
9687
88+ Bug Fixes
89+ ------------------------------
90+ * `hy.REPL ` now restores the global values it changes (such as
91+ `sys.ps1 `) after `hy.REPL.run ` terminates.
92+ * `hy.REPL ` no longer mixes up Hy's and Python's Readline histories
93+ when run inside Python's REPL.
94+ * Fixed `hy.repr ` of non-compilable uses of sugared macros, such as
95+ `(quote) ` and `(quote 1 2) `.
96+
9797.. _zipimport : https://docs.python.org/3.11/library/zipimport.html
9898
99990.25.0 (released 2022-11-08)
@@ -180,24 +180,6 @@ Other Breaking Changes
180180* `hy.cmdline.run_repl ` has been replaced with
181181 `hy.cmdline.HyREPL.run `.
182182
183- Bug Fixes
184- ------------------------------
185- * Fixed a crash when using keyword objects in `match `.
186- * Fixed a scoping bug in comprehensions in `let ` bodies.
187- * Literal newlines (of all three styles) are now recognized properly
188- in string and bytes literals.
189- * `defmacro ` no longer allows further arguments after `#* args `.
190- * `!= ` with model objects is now consistent with `= `.
191- * Tracebacks from code parsed with `hy.read ` now show source
192- positions.
193- * Elements of `builtins ` such as `help ` are no longer overridden until
194- the REPL actually starts.
195- * Readline is now imported only when necessary, to avoid triggering a
196- CPython bug regarding the standard module `curses `
197- (`cpython#46927 `_).
198- * Module names supplied to `hy -m ` are now mangled.
199- * Hy now precompiles its own Hy code during installation.
200-
201183New Features
202184------------------------------
203185* Added user-defined reader macros, defined with `defreader `.
@@ -220,6 +202,24 @@ New Features
220202* Added a command-line option `-u ` (or `--unbuffered `) per CPython.
221203* Tab-completion in the REPL now attempts to unmangle names.
222204
205+ Bug Fixes
206+ ------------------------------
207+ * Fixed a crash when using keyword objects in `match `.
208+ * Fixed a scoping bug in comprehensions in `let ` bodies.
209+ * Literal newlines (of all three styles) are now recognized properly
210+ in string and bytes literals.
211+ * `defmacro ` no longer allows further arguments after `#* args `.
212+ * `!= ` with model objects is now consistent with `= `.
213+ * Tracebacks from code parsed with `hy.read ` now show source
214+ positions.
215+ * Elements of `builtins ` such as `help ` are no longer overridden until
216+ the REPL actually starts.
217+ * Readline is now imported only when necessary, to avoid triggering a
218+ CPython bug regarding the standard module `curses `
219+ (`cpython#46927 `_).
220+ * Module names supplied to `hy -m ` are now mangled.
221+ * Hy now precompiles its own Hy code during installation.
222+
223223.. _cpython#46927 : https://github.com/python/cpython/issues/46927#issuecomment-1093418916
224224.. _cpython#90678 : https://github.com/python/cpython/issues/90678
225225
@@ -258,6 +258,14 @@ Other Breaking Changes
258258 would be syntactically legal as a literal.
259259* `hy.extra.reserved ` has been renamed to `hy.reserved `.
260260
261+ New Features
262+ ------------------------------
263+ * `hy.repr ` now supports several more standard types.
264+ * The attribute access macro `. ` now allows method calls. For example,
265+ `(. x (f a)) ` is equivalent to `(x.f a) `.
266+ * `hy.as-model ` checks for self-references in its argument.
267+ * New function `hy.model_patterns.keepsym `.
268+
261269Bug Fixes
262270------------------------------
263271* In comprehension forms other than `for `, assignments (other than
@@ -274,14 +282,6 @@ Bug Fixes
274282* Fixed a bug with self-requiring files on Windows.
275283* Improved error messages for illegal uses of `finally ` and `else `.
276284
277- New Features
278- ------------------------------
279- * `hy.repr ` now supports several more standard types.
280- * The attribute access macro `. ` now allows method calls. For example,
281- `(. x (f a)) ` is equivalent to `(x.f a) `.
282- * `hy.as-model ` checks for self-references in its argument.
283- * New function `hy.model_patterns.keepsym `.
284-
285285.. _Hyrule : https://github.com/hylang/hyrule
286286
2872871.0a3 (released 2021-07-09)
0 commit comments