11.. default-role :: code
22
3- Unreleased
3+ 1.0a4 (released 2022-01-09)
44==============================
55
66Removals
@@ -13,9 +13,6 @@ Other Breaking Changes
1313 `(import [foo [bar]]) ` is now `(import foo [bar]) `
1414 and `(import [foo :as baz]) ` is now `(import foo :as baz) `.
1515 To import all names from a module, use `(import foo *) `.
16- * Functions that provide first-class Python operators, such as ``+ ``
17- in constructs like ``(reduce + xs) ``, are no longer brought
18- into scope automatically. Say ``(import hy.pyops *) `` to get them.
1916* Lots of objects (listed below) have been spun off to a new package
2017 called `Hyrule `_, from which you can `import ` or `require ` them.
2118 Thus Hy now brings only the `hy ` module and a limited set of core
@@ -25,37 +22,42 @@ Other Breaking Changes
2522 * Classes: `PrettyPrinter `, `Sequence `
2623 * Macros: `#% `, `#: `, `-> `, `->> `, `ap-dotimes `, `ap-each `, `ap-each-while `, `ap-filter `, `ap-first `, `ap-if `, `ap-last `, `ap-map `, `ap-map-when `, `ap-reduce `, `ap-reject `, `as-> `, `assoc `, `cfor `, `comment `, `defmacro! `, `defmacro/g! `, `defmain `, `defn+ `, `defn/a+ `, `defseq `, `dict=: `, `do-n `, `doto `, `fn+ `, `fn/a+ `, `ifp `, `let+ `, `lif `, `list-n `, `loop `, `ncut `, `of `, `profile/calls `, `profile/cpu `, `seq `, `setv+ `, `smacrolet `, `unless `, `with-gensyms `
2724
25+ * Functions that provide first-class Python operators, such as `+ `
26+ in constructs like `(reduce + xs) `, are no longer brought
27+ into scope automatically. Say `(import hy.pyops *) ` to get them.
28+ * Hy scoping rules more closely follow Python scoping in certain edge
29+ cases.
30+ * `let ` is now a core macro with somewhat different semantics. In
31+ particular, definition-like core macros (`defn `, `defclass `,
32+ `import `) now introduce new names that shadow corresponding
33+ `let `-bound names and persist outside the body of the `let `.
2834* The constructors of `String ` and `FString ` now check that the input
29- would be syntactically legal.
35+ would be syntactically legal as a literal .
3036* `hy.extra.reserved ` has been renamed to `hy.reserved `.
31- * Hy scoping rules more closely follow Python scoping in certain edge cases.
32- * `let ` is now a core macro. Semantics of `let ` have changed in certain
33- edge cases: Any assignment or assignment-like operations (`with `, `match `,
34- etc.) will *assign * to the let-bound name, while any definintions or
35- definition-like operations (`defn `, `defclass `, `import `) will *shadow * the
36- let-bound name (and will also continue to be defined after the `let `-scope ends).
3737
3838Bug Fixes
3939------------------------------
40- * `let ` should no longer re-evaluate default arguments.
41- * Improved error messages for illegal uses of `finally ` and `else `.
42- * `match ` should no longer re-evaluate subect.
43- * `hy-repr ` now properly formats bracketed strings.
40+ * In comprehension forms other than `for `, assignments (other than
41+ `:setv ` and loop clauses) are now always visible in the surrounding
42+ scope.
43+ * `match ` now only evaluates the subject once.
44+ * `let ` will no longer re-evaluate the default arguments of a
45+ function it's used in.
46+ * `hy.repr ` now properly formats bracket strings.
47+ * The `repr ` and `str ` of string models now include `brackets ` if
48+ necessary.
4449* When standard output can't accommodate Unicode, `hy2py ` now crashes
4550 instead of emitting incorrect Python code.
4651* Fixed a bug with self-requiring files on Windows.
47- * The `repr ` and `str ` of string models now include `brackets ` if
48- necessary.
49- * Complex comprehensions are now always treated as inline expressions for
50- variable scoping, rather than creating a new block scope. Specifically,
51- assignments within comprehensions are now always visible to the surrounding code.
52+ * Improved error messages for illegal uses of `finally ` and `else `.
5253
5354New Features
5455------------------------------
5556* `hy.repr ` now supports several more standard types.
56- * the attribute access macro `. ` now accepts method calls.
57- * `as_model ` checks for self-references in its argument.
58- * New function `hy.model_patterns.keepsym `
57+ * The attribute access macro `. ` now allows method calls. For example,
58+ `(. x (f a)) ` is equivalent to `(x.f a) `.
59+ * `hy.as-model ` checks for self-references in its argument.
60+ * New function `hy.model_patterns.keepsym `.
5961
6062.. _Hyrule : https://github.com/hylang/hyrule
6163
0 commit comments