From b63f6e4df56174f284dbf67bef982dd646239b19 Mon Sep 17 00:00:00 2001 From: Kodi Arfer Date: Tue, 6 Feb 2018 16:27:19 -0800 Subject: [PATCH] Reorganize NEWS items --- NEWS | 64 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/NEWS b/NEWS index 932d8cf..ce57bce 100644 --- a/NEWS +++ b/NEWS @@ -1,67 +1,73 @@ Changes from 0.13.0 - [ Language Changes ] + [ Removals ] * Python 3.3 is no longer supported - * The unquote-splice or ~@ form now accepts any false value as empty. + * `def` is gone; use `setv` instead + * `apply` is gone; use the new `#*` and `#**` syntax instead * `yield-from` is no longer supported under Python 2 + * Periods are no longer allowed in keywords + * Numeric literals can no longer begin with a comma or underscore + * Literal `Inf`s and `NaN`s must now be capitalized like that + + [ Other Breaking Changes ] * `apply` has been replaced with Python-style unpacking operators `#*` and `#**` (e.g., `(f #* args #** kwargs)`) - * Single-character "sharp macros" changed to "tag macros", which can have + * Single-character "sharp macros" are now "tag macros", which can have longer names - * Periods are no longer allowed in keywords + * `xi` from `hy.extra.anaphoric` is now a tag macro `#%` * `eval` is now a function instead of a special form - * Added a form of string literal called "bracket strings" delimited by - `#[FOO[` and `]FOO]`, where `FOO` is customizable + + [ New Features ] * The compiler now automatically promotes values to Hy model objects as necessary, so you can write ``(eval `(+ 1 ~n))`` instead of ``(eval `(+ 1 ~(HyInteger n)))`` - * Literal `Inf`s and `NaN`s must now be capitalized like that - * Numeric literals can no longer begin with a comma or underscore - * `get` is available as a function - * new `comment` macro - * support EDN `#_` syntax to discard the next term * `return` has been implemented as a special form + * Added a form of string literal called "bracket strings" delimited by + `#[FOO[` and `]FOO]`, where `FOO` is customizable + * Added support for PEP 492 (`async` and `await`) with `fn/a`, `defn/a`, + `with/a`, and `for/a` + * Added a macro `comment` + * Added EDN `#_` syntax to discard the next term * `while` loops may now contain an `else` clause, like `for` loops - * `xi` from `hy.extra.anaphoric` is now the `#%` tag macro * `#%` works on any expression and has a new `&kwargs` parameter `%**` - * new `doc` macro and `#doc` tag macro - * support for PEP 492 with `fn/a`, `defn/a`, `with/a` and `for/a` - * remove `def` - * support for relative imports (PEP 328) + * Added a macro `doc` and a tag macro `#doc` + * `get` is available as a function + * `~@` (`unquote-splice`) form now accepts any false value as empty [ Bug Fixes ] + * Relative imports (PEP 328) are now allowed * Numeric literals are no longer parsed as symbols when followed by a dot and a symbol - * Hy now respects the environment variable PYTHONDONTWRITEBYTECODE + * Hy now respects the environment variable `PYTHONDONTWRITEBYTECODE` * String literals should no longer be interpreted as special forms or macros * Tag macros (née sharp macros) whose names begin with `!` are no longer mistaken for shebang lines * Fixed a bug where REPL history wasn't saved if you quit the REPL with `(quit)` or `(exit)` * `exec` now works under Python 2 - * No TypeError from multi-arity defn returning values evaluating to None - * try form now possible in defmacro/deftag + * No TypeError from multi-arity `defn` returning values evaluating to `None` + * `try` forms are now possible in `defmacro` and `deftag` + * Multiple expressions are now allowed in `try` * Fixed a crash when `macroexpand`ing a macro with a named import * Fixed a crash when `with` suppresses an exception. `with` now returns `None` in this case. - * Fixed a crash when --repl-output-fn raises an exception - * Fixed a crash when HyTypeError was raised with objects that had no + * Fixed a crash when `--repl-output-fn` raises an exception + * Fixed a crash when `HyTypeError` was raised with objects that had no source position * `assoc` now evaluates its arguments only once each - * `break` and `continue` now raise an error when given arguments - instead of silently ignoring them - * Multiple expressions are now allowed in the else clause of - a for loop + * Multiple expressions are now allowed in the `else` clause of + a `for` loop * `else` clauses in `for` and `while` are recognized more reliably * Statements in the condition of a `while` loop are repeated properly - * Argument destructuring no longer interferes with function docstrings. - * Multiple expressions are now allowed in `try` - * `(yield-from)` is now a syntax error + * Argument destructuring no longer interferes with function docstrings + * Nullary `yield-from` is now a syntax error + * `break` and `continue` now raise an error when given arguments + instead of silently ignoring them [ Misc. Improvements ] * `read`, `read_str`, and `eval` are exposed and documented as top-level functions in the `hy` module - * Experimental `let` macro in `hy.contrib.walk` + * An experimental `let` macro has been added to `hy.contrib.walk` Changes from 0.12.1