Convert NEWS to reStructuredText

This commit is contained in:
Kodi Arfer 2018-02-06 16:50:57 -08:00
parent b63f6e4df5
commit 355f3f4259
2 changed files with 187 additions and 107 deletions

View File

@ -1,4 +1,4 @@
include AUTHORS include AUTHORS
include LICENSE include LICENSE
include NEWS include NEWS.rst
include README.md include README.md

View File

@ -1,15 +1,20 @@
Changes from 0.13.0 .. default-role:: code
[ Removals ] Changes from 0.13.0
===================
Removals
------------------------------
* Python 3.3 is no longer supported * Python 3.3 is no longer supported
* `def` is gone; use `setv` instead * `def` is gone; use `setv` instead
* `apply` is gone; use the new `#*` and `#**` syntax instead * `apply` is gone; use the new `#*` and `#**` syntax instead
* `yield-from` is no longer supported under Python 2 * `yield-from` is no longer supported under Python 2
* Periods are no longer allowed in keywords * Periods are no longer allowed in keywords
* Numeric literals can no longer begin with a comma or underscore * Numeric literals can no longer begin with a comma or underscore
* Literal `Inf`s and `NaN`s must now be capitalized like that * Literal `Inf`\s and `NaN`\s must now be capitalized like that
[ Other Breaking Changes ] Other Breaking Changes
------------------------------
* `apply` has been replaced with Python-style unpacking operators `#*` and * `apply` has been replaced with Python-style unpacking operators `#*` and
`#**` (e.g., `(f #* args #** kwargs)`) `#**` (e.g., `(f #* args #** kwargs)`)
* Single-character "sharp macros" are now "tag macros", which can have * Single-character "sharp macros" are now "tag macros", which can have
@ -17,7 +22,8 @@ Changes from 0.13.0
* `xi` from `hy.extra.anaphoric` is now a tag macro `#%` * `xi` from `hy.extra.anaphoric` is now a tag macro `#%`
* `eval` is now a function instead of a special form * `eval` is now a function instead of a special form
[ New Features ] New Features
------------------------------
* The compiler now automatically promotes values to Hy model objects * The compiler now automatically promotes values to Hy model objects
as necessary, so you can write ``(eval `(+ 1 ~n))`` instead of as necessary, so you can write ``(eval `(+ 1 ~n))`` instead of
``(eval `(+ 1 ~(HyInteger n)))`` ``(eval `(+ 1 ~(HyInteger n)))``
@ -34,7 +40,8 @@ Changes from 0.13.0
* `get` is available as a function * `get` is available as a function
* `~@` (`unquote-splice`) form now accepts any false value as empty * `~@` (`unquote-splice`) form now accepts any false value as empty
[ Bug Fixes ] Bug Fixes
------------------------------
* Relative imports (PEP 328) are now allowed * Relative imports (PEP 328) are now allowed
* Numeric literals are no longer parsed as symbols when followed by a dot * Numeric literals are no longer parsed as symbols when followed by a dot
and a symbol and a symbol
@ -48,7 +55,7 @@ Changes from 0.13.0
* No TypeError from multi-arity `defn` returning values evaluating to `None` * No TypeError from multi-arity `defn` returning values evaluating to `None`
* `try` forms are now possible in `defmacro` and `deftag` * `try` forms are now possible in `defmacro` and `deftag`
* Multiple expressions are now allowed in `try` * Multiple expressions are now allowed in `try`
* Fixed a crash when `macroexpand`ing a macro with a named import * Fixed a crash when `macroexpand`\ing a macro with a named import
* Fixed a crash when `with` suppresses an exception. `with` now returns * Fixed a crash when `with` suppresses an exception. `with` now returns
`None` in this case. `None` in this case.
* Fixed a crash when `--repl-output-fn` raises an exception * Fixed a crash when `--repl-output-fn` raises an exception
@ -64,14 +71,17 @@ Changes from 0.13.0
* `break` and `continue` now raise an error when given arguments * `break` and `continue` now raise an error when given arguments
instead of silently ignoring them instead of silently ignoring them
[ Misc. Improvements ] Misc. Improvements
------------------------------
* `read`, `read_str`, and `eval` are exposed and documented as top-level * `read`, `read_str`, and `eval` are exposed and documented as top-level
functions in the `hy` module functions in the `hy` module
* An experimental `let` macro has been added to `hy.contrib.walk` * An experimental `let` macro has been added to `hy.contrib.walk`
Changes from 0.12.1 Changes from 0.12.1
==============================
[ Language Changes ] Language Changes
------------------------------
* Pythons 2.6, 3.0, 3.1, and 3.2 are no longer supported * Pythons 2.6, 3.0, 3.1, and 3.2 are no longer supported
* `let` has been removed. Python's scoping rules do not make a proper * `let` has been removed. Python's scoping rules do not make a proper
implementation of it possible. Use `setv` instead. implementation of it possible. Use `setv` instead.
@ -105,7 +115,8 @@ Changes from 0.12.1
* `hy.core.reserved` is now `hy.extra.reserved` * `hy.core.reserved` is now `hy.extra.reserved`
* `cond` now supports single argument branches * `cond` now supports single argument branches
[ Bug Fixes ] Bug Fixes
------------------------------
* All shadowed operators have the same arities as real operators * All shadowed operators have the same arities as real operators
* Shadowed comparison operators now use `and` instead of `&` * Shadowed comparison operators now use `and` instead of `&`
for chained comparisons for chained comparisons
@ -119,23 +130,28 @@ Changes from 0.12.1
* The REPL now prints the correct value of `do` and `try` forms * The REPL now prints the correct value of `do` and `try` forms
* Fixed a crash when tokenizing a single quote followed by whitespace * Fixed a crash when tokenizing a single quote followed by whitespace
[ Misc. Improvements ] Misc. Improvements
------------------------------
* New contrib module `hy-repr` * New contrib module `hy-repr`
* Added a command-line option `--repl-output-fn` * Added a command-line option `--repl-output-fn`
Changes from 0.12.0 Changes from 0.12.0
==============================
[ Bug Fixes ] Bug Fixes
------------------------------
* Allow installation without Git * Allow installation without Git
Changes from 0.11.0 Changes from 0.11.0
==============================
This release brings some quite significant changes on the language and as a This release brings some quite significant changes on the language and as a
result very large portions of previously written Hy programs will require result very large portions of previously written Hy programs will require
changes. At the same time, documentation and error messages were improved, changes. At the same time, documentation and error messages were improved,
hopefully making the language easier to use. hopefully making the language easier to use.
[ Language Changes ] Language Changes
------------------------------
* New syntax for let, with and defclass * New syntax for let, with and defclass
* defmacro will raise an error on &kwonly, &kwargs and &key arguments * defmacro will raise an error on &kwonly, &kwargs and &key arguments
* Keyword argument labels to functions are required to be strings * Keyword argument labels to functions are required to be strings
@ -166,7 +182,8 @@ hopefully making the language easier to use.
* comp, constantly, complement and juxt added * comp, constantly, complement and juxt added
* keyword arguments allowed in method calls before the object * keyword arguments allowed in method calls before the object
[ Bug Fixes ] Bug Fixes
------------------------------
* Better error when for doesn't have body * Better error when for doesn't have body
* Better error detection with list comprehensions in Python 2.7 * Better error detection with list comprehensions in Python 2.7
* Setting value to callable will raise an error * Setting value to callable will raise an error
@ -177,7 +194,8 @@ hopefully making the language easier to use.
* In python 3.3+, generator functions always return a value * In python 3.3+, generator functions always return a value
* &rest can be used after &optional * &rest can be used after &optional
[ Misc. Improvements ] Misc. Improvements
------------------------------
* Version information includes SHA1 of current commit * Version information includes SHA1 of current commit
* Improved Python 3.5 support * Improved Python 3.5 support
* Allow specification of global table and module name for (eval ...) * Allow specification of global table and module name for (eval ...)
@ -205,8 +223,10 @@ hopefully making the language easier to use.
* contrib.anaphoric moved to hy.extra * contrib.anaphoric moved to hy.extra
Changes from 0.10.1 Changes from 0.10.1
==============================
[ Language Changes ] Language Changes
------------------------------
* new keyword-argument call syntax * new keyword-argument call syntax
* Function argument destructuring has been added. * Function argument destructuring has been added.
* Macro expansion inside of class definitions is now supported. * Macro expansion inside of class definitions is now supported.
@ -223,14 +243,16 @@ Changes from 0.10.1
* Support for the @ matrix-multiplication operator (forthcoming in * Support for the @ matrix-multiplication operator (forthcoming in
Python 3.5) has been added. Python 3.5) has been added.
[ Bug Fixes ] Bug Fixes
------------------------------
* Nested decorators now work correctly. * Nested decorators now work correctly.
* Importing hy modules under Python >=3.3 has been fixed. * Importing hy modules under Python >=3.3 has been fixed.
* Some bugs involving macro unquoting have been fixed. * Some bugs involving macro unquoting have been fixed.
* Misleading tracebacks when Hy programs raise IOError have been * Misleading tracebacks when Hy programs raise IOError have been
corrected. corrected.
[ Misc. Improvements ] Misc. Improvements
------------------------------
* attribute completion in REPL * attribute completion in REPL
* new -m command-line flag for running a module * new -m command-line flag for running a module
* new -i command-line flag for running a file * new -i command-line flag for running a file
@ -241,6 +263,7 @@ Changes from 0.10.1
let form has been improved. let form has been improved.
Changes from 0.10.0 Changes from 0.10.0
==============================
This release took some time (sorry, all my fault) but it's got a bunch of This release took some time (sorry, all my fault) but it's got a bunch of
really nice features. We hope you enjoy hacking with Hy as much as we enjoy really nice features. We hope you enjoy hacking with Hy as much as we enjoy
@ -256,7 +279,8 @@ Changes from 0.10.0
- Hy Society - Hy Society
[ Language Changes ] Language Changes
------------------------------
* Implement raise :from, Python 3 only. * Implement raise :from, Python 3 only.
* defmain macro * defmain macro
* name & keyword functions added to core * name & keyword functions added to core
@ -269,24 +293,29 @@ Changes from 0.10.0
* keyword? to find out keywords * keyword? to find out keywords
* setv no longer allows "." in names * setv no longer allows "." in names
[Internals ] Internals
------------------------------
* Builtins reimplemented in terms of python stdlib * Builtins reimplemented in terms of python stdlib
* gensyms (defmacro/g!) handles non-string types better * gensyms (defmacro/g!) handles non-string types better
[Tools] Tools
------------------------------
* Added hy2py to installed scripts * Added hy2py to installed scripts
[ Misc. Fixes ] Misc. Fixes
------------------------------
* Symbols like true, false, none can't be assigned * Symbols like true, false, none can't be assigned
* Set sys.argv default to [''] like Python does * Set sys.argv default to [''] like Python does
* REPL displays the python version and platform at startup * REPL displays the python version and platform at startup
* Dockerfile added for https://registry.hub.docker.com/_/hylang/ * Dockerfile added for https://registry.hub.docker.com/_/hylang/
[ Contrib changes ] Contrib changes
------------------------------
* Fix ap-first and ap-last for failure conditions * Fix ap-first and ap-last for failure conditions
Changes from 0.9.12 Changes from 0.9.12
==============================
0.10.0 - the "oh man I'm late for PyCon" release 0.10.0 - the "oh man I'm late for PyCon" release
@ -294,7 +323,8 @@ Changes from 0.9.12
together. You're the best! together. You're the best!
- Hy Society - Hy Society
[ Breaking Changes ] Breaking Changes
------------------------------
We're calling this release 0.10 because we broke We're calling this release 0.10 because we broke
API. Sorry about that. We've removed kwapply in API. Sorry about that. We've removed kwapply in
@ -303,7 +333,8 @@ Changes from 0.9.12
(apply function-call args kwargs) ; is the signature (apply function-call args kwargs) ; is the signature
[Thanks] Thanks
------------------------------
Major shoutout to Clinton Dreisbach for implementing loop/recur. Major shoutout to Clinton Dreisbach for implementing loop/recur.
As always, massive hugs to olasd for the constant reviews and for As always, massive hugs to olasd for the constant reviews and for
@ -320,11 +351,12 @@ Changes from 0.9.12
-Hy Society -Hy Society
[ Language Changes ] Language Changes
------------------------------
* `for' revamped again (Last time, we hope!), this time using a saner * `for` revamped again (Last time, we hope!), this time using a saner
itertools.product when nesting itertools.product when nesting
* `lisp-if'/`lif' added for the lisp-like everything is true if, giving * `lisp-if`/`lif` added for the lisp-like everything is true if, giving
seasoned lispers a better if check (0 is a value, etc) seasoned lispers a better if check (0 is a value, etc)
* Reader Macros are macros now! * Reader Macros are macros now!
* yield-from is now a proper yield from on Python 3. It also now breaks on * yield-from is now a proper yield from on Python 3. It also now breaks on
@ -333,24 +365,26 @@ Changes from 0.9.12
* We finally have a lisp like cons cells * We finally have a lisp like cons cells
* Generator expressions, set & dict comprehensions are now supported * Generator expressions, set & dict comprehensions are now supported
* (.) is a mini DSL for attribute access * (.) is a mini DSL for attribute access
* `macroexpand' & `macroexpand-1' added to core * `macroexpand` & `macroexpand-1` added to core
* `disassemble' added to core, which dumps the AST or equivalent python code * `disassemble` added to core, which dumps the AST or equivalent python code
* `coll?' added to core to check for a collection * `coll?` added to core to check for a collection
* `identity' function added to core * `identity` function added to core
[ Misc. Fixes ] Misc. Fixes
------------------------------
* Lots of doc fixes. Reorganization as well as better docs on Hy internals * Lots of doc fixes. Reorganization as well as better docs on Hy internals
* Universal Wheel Support * Universal Wheel Support
* Pygments > 1.6 supports Hy now. All codeblocks in docs have been changed * Pygments > 1.6 supports Hy now. All codeblocks in docs have been changed
from clojure to hy from clojure to hy
* Hy REPL supports invoking with --spy & -i options [reword] * Hy REPL supports invoking with --spy & -i options [reword]
* `first' and `rest' are functions and not macros anymore * `first` and `rest` are functions and not macros anymore
* "clean" target added to Makefile * "clean" target added to Makefile
* hy2py supports a bunch of commandline options to show AST, source etc. * hy2py supports a bunch of commandline options to show AST, source etc.
* Sub-object mangling: every identifier is split along the dots & mangled * Sub-object mangling: every identifier is split along the dots & mangled
separately separately
[ Bug Fixes ] Bug Fixes
------------------------------
* Empty MacroExpansions work as expected * Empty MacroExpansions work as expected
* Python 3.4 port. Sorry this wasn't in a 3.4 release time, we forgot to do * Python 3.4 port. Sorry this wasn't in a 3.4 release time, we forgot to do
a release. Whoops. a release. Whoops.
@ -359,7 +393,8 @@ Changes from 0.9.12
* Fixed unicode encoding issue in REPL during unicode exceptions * Fixed unicode encoding issue in REPL during unicode exceptions
* Fixed handling of comments at end of input (#382) * Fixed handling of comments at end of input (#382)
[ Contrib changes ] Contrib changes
------------------------------
* Curry module added to contrib * Curry module added to contrib
* Loop/recur module added which provides TCO at tail position * Loop/recur module added which provides TCO at tail position
* defmulti has been added - check out more in the docs -- thanks to Foxboron for this one! * defmulti has been added - check out more in the docs -- thanks to Foxboron for this one!
@ -367,6 +402,7 @@ Changes from 0.9.12
Changes from Hy 0.9.11 Changes from Hy 0.9.11
==============================
tl;dr: tl;dr:
@ -393,7 +429,8 @@ Changes from Hy 0.9.11
0.9.12's NEWS. Thanks, y'all! (PT) 0.9.12's NEWS. Thanks, y'all! (PT)
[ Language Changes ] Language Changes
------------------------------
* Translate foo? -> is_foo, for better Python interop. (PT) * Translate foo? -> is_foo, for better Python interop. (PT)
* Reader Macros! * Reader Macros!
* Operators + and * now can work without arguments * Operators + and * now can work without arguments
@ -407,7 +444,8 @@ Changes from Hy 0.9.11
* Added type coercing to the right integer for the platform * Added type coercing to the right integer for the platform
[ Misc. Fixes ] Misc. Fixes
------------------------------
* Added information about core team members * Added information about core team members
* Documentation fixed and extended * Documentation fixed and extended
* Add astor to install_requires to fix hy --spy failing on hy 0.9.11. * Add astor to install_requires to fix hy --spy failing on hy 0.9.11.
@ -423,31 +461,36 @@ Changes from Hy 0.9.11
* Badges for pypi version and downloads. * Badges for pypi version and downloads.
[ Syntax Fixes ] Syntax Fixes
------------------------------
* get allows multiple arguments * get allows multiple arguments
[ Bug Fixes ] Bug Fixes
------------------------------
* OSX: Fixes for readline Repl problem which caused HyREPL not allowing 'b' * OSX: Fixes for readline Repl problem which caused HyREPL not allowing 'b'
* Fix REPL completions on OSX * Fix REPL completions on OSX
* Make HyObject.replace more resilient to prevent compiler breakage. * Make HyObject.replace more resilient to prevent compiler breakage.
[ Contrib changes ] Contrib changes
------------------------------
* Anaphoric macros added to contrib * Anaphoric macros added to contrib
* Modified eg/twisted to follow the newer hy syntax * Modified eg/twisted to follow the newer hy syntax
* Added (experimental) profile module * Added (experimental) profile module
Changes from Hy 0.9.10 Changes from Hy 0.9.10
==============================
* Many thanks to Guillermo Vayá (Willyfrog) for preparing this release's * Many thanks to Guillermo Vayá (Willyfrog) for preparing this release's
release notes. Major shout-out. (PT) release notes. Major shout-out. (PT)
[ Misc. Fixes ] Misc. Fixes
------------------------------
* Many many many documentation fixes * Many many many documentation fixes
* Change virtualenv name to be `hy' * Change virtualenv name to be `hy`
* Rewrite language.hy not to require hy.core.macros * Rewrite language.hy not to require hy.core.macros
* Rewrite the bootstrap macros in hy * Rewrite the bootstrap macros in hy
* Cleanup the hy.macros module * Cleanup the hy.macros module
@ -468,7 +511,8 @@ Changes from Hy 0.9.10
* Finally fixed access to hy.core.macros here. have to explicitly require * Finally fixed access to hy.core.macros here. have to explicitly require
them. them.
[ Language Changes ] Language Changes
------------------------------
* Slightly cleaner version of drop-while, could use yield-from when ready * Slightly cleaner version of drop-while, could use yield-from when ready
* Added many native core functions * Added many native core functions
@ -489,25 +533,30 @@ Changes from Hy 0.9.10
* Make assoc accept multiple values, also added an even/odd check for * Make assoc accept multiple values, also added an even/odd check for
checkargs checkargs
* Added ability to parse doc strings set in defclass declarations, * Added ability to parse doc strings set in defclass declarations,
* Provide bin scripts for both Windows and *nix * Provide bin scripts for both Windows and \*nix
* Removes setf in favor of setv * Removes setf in favor of setv
Changes from Hy 0.9.9 Changes from Hy 0.9.9
==============================
[ Stupid Fixes ] Stupid Fixes
------------------------------
* I forgot to include hy.core.language in the sdist. (PT) * I forgot to include hy.core.language in the sdist. (PT)
Changes from Hy 0.9.8 Changes from Hy 0.9.8
==============================
[ Syntax Fixes ] Syntax Fixes
------------------------------
* Macros are now module-specific, and must be required when used. (KH) * Macros are now module-specific, and must be required when used. (KH)
* Added a few more string escapes to the compiler (Thomas Ballinger) * Added a few more string escapes to the compiler (Thomas Ballinger)
* Keywords are pseudo-callable again, to get the value out of a dict. (PT) * Keywords are pseudo-callable again, to get the value out of a dict. (PT)
* Empty expression is now the same as an empty vector. (Guillermo Vaya) * Empty expression is now the same as an empty vector. (Guillermo Vaya)
[ Language Changes ] Language Changes
------------------------------
* HyDicts (quoted dicts or internal HST repr) are now lists * HyDicts (quoted dicts or internal HST repr) are now lists
that compiled down to dicts by the Compiler later on. (ND) that compiled down to dicts by the Compiler later on. (ND)
@ -519,7 +568,8 @@ Changes from Hy 0.9.8
* Importing a broken module's behavior now matches Python's more * Importing a broken module's behavior now matches Python's more
closely. (Morten Linderud) closely. (Morten Linderud)
[ Misc. Fixes ] Misc. Fixes
------------------------------
* Ensure compiler errors are always "user friendly" (JD) * Ensure compiler errors are always "user friendly" (JD)
* Hy REPL quitter repr adjusted to match Hy syntax (Morten Linderud) * Hy REPL quitter repr adjusted to match Hy syntax (Morten Linderud)
@ -527,8 +577,10 @@ Changes from Hy 0.9.8
Changes from Hy 0.9.7 Changes from Hy 0.9.7
==============================
[ Syntax Fixes ] Syntax Fixes
------------------------------
* Quasi-quoting now exists long with quoting. Macros will also not * Quasi-quoting now exists long with quoting. Macros will also not
expand things in quotes. expand things in quotes.
@ -536,7 +588,8 @@ Changes from Hy 0.9.7
* Try / Except will now return properly again. (PT) * Try / Except will now return properly again. (PT)
* Bare-names sprinkled around the AST won't show up anymore (ND) * Bare-names sprinkled around the AST won't show up anymore (ND)
[ Language Changes ] Language Changes
------------------------------
* Added a new (require) form, to import macros for that module (PT) * Added a new (require) form, to import macros for that module (PT)
* Native macros exist and work now! (ND) * Native macros exist and work now! (ND)
@ -544,18 +597,21 @@ Changes from Hy 0.9.7
* New (defclass) builtin for class definitions (JD) * New (defclass) builtin for class definitions (JD)
* Add unquote-splicing (ND) * Add unquote-splicing (ND)
[ Errata ] Errata
------------------------------
* Paul was an idiot and marked the j-related bug as a JD fix, it was * Paul was an idiot and marked the j-related bug as a JD fix, it was
actually ND. My bad. actually ND. My bad.
Changes from Hy 0.9.6 Changes from Hy 0.9.6
==============================
[ Syntax Fixes ] Syntax Fixes
------------------------------
* UTF-8 encoded hy symbols are now hy_... rather than __hy_..., it's * UTF-8 encoded hy symbols are now `hy_`... rather than `__hy_`..., it's
silly to prefex them as such. (PT) silly to prefex them as such. (PT)
* `j' is no longer always interpreted as a complex number; we use it much * `j` is no longer always interpreted as a complex number; we use it much
more as a symbol. (ND) more as a symbol. (ND)
* (decorate-with) has been moved to (with-decorate) (JD) * (decorate-with) has been moved to (with-decorate) (JD)
* New (unless) macro (JD) * New (unless) macro (JD)
@ -564,11 +620,12 @@ Changes from Hy 0.9.6
* New (drop) macro (@eigenhombre) * New (drop) macro (@eigenhombre)
* import-from and import-as finally removed. (GN) * import-from and import-as finally removed. (GN)
* Allow bodyless functions (JD) * Allow bodyless functions (JD)
* Allow variable without value in `let' declaration (JD) * Allow variable without value in `let` declaration (JD)
* new (global) builtin (@eal) * new (global) builtin (@eal)
* new lambda-list syntax for function defs, for var-arity, kwargs. (JK) * new lambda-list syntax for function defs, for var-arity, kwargs. (JK)
[ Language Changes ] Language Changes
------------------------------
* *HUGE* rewrite of the compiler. Massive thanks go to olasd * *HUGE* rewrite of the compiler. Massive thanks go to olasd
and jd for making this happen. This solves just an insane number and jd for making this happen. This solves just an insane number
@ -579,13 +636,15 @@ Changes from Hy 0.9.6
Changes from Hy 0.9.5 Changes from Hy 0.9.5
==============================
[ Syntax Fixes ] Syntax Fixes
------------------------------
* .pyc generation routines now work on Python 3. (Vladimir Gorbunov) * .pyc generation routines now work on Python 3. (Vladimir Gorbunov)
* Allow empty (do) forms (JD) * Allow empty (do) forms (JD)
* The `else' form is now supported in `try' statements. (JD) * The `else` form is now supported in `try` statements. (JD)
* Allow `(raise)', which, like Python, will re-raise * Allow `(raise)`, which, like Python, will re-raise
the last Exception. (JD) the last Exception. (JD)
* Strings, bools, symbols are now valid top-level entries. (Konrad Hinsen) * Strings, bools, symbols are now valid top-level entries. (Konrad Hinsen)
* UTF-8 strings will no longer get punycode encoded. (ND) * UTF-8 strings will no longer get punycode encoded. (ND)
@ -594,9 +653,9 @@ Changes from Hy 0.9.5
* Add in the missing operators and AugAssign operators. (JD) * Add in the missing operators and AugAssign operators. (JD)
* (foreach) now supports the (else) form. (JD) * (foreach) now supports the (else) form. (JD)
[ Language Changes ] WARNING: WARNING: READ ME: READ ME:
-----------------------------------
=============== WARNING: WARNING: READ ME: READ ME: ===================
From here on out, we will only support "future division" as part of hy. From here on out, we will only support "future division" as part of hy.
This is actually quite a pain for us, but it's going to be quite an This is actually quite a pain for us, but it's going to be quite an
amazing feature. amazing feature.
@ -604,7 +663,9 @@ Changes from Hy 0.9.5
This also normalizes behavior from Py 2 --> Py 3. This also normalizes behavior from Py 2 --> Py 3.
Thank you so much, Konrad Hinsen. Thank you so much, Konrad Hinsen.
=======================================================================
Language Changes
------------------------------
* (pass) has been removed from the language; it's a wart that comes from * (pass) has been removed from the language; it's a wart that comes from
a need to create valid Python syntax without breaking the whitespace a need to create valid Python syntax without breaking the whitespace
@ -619,25 +680,28 @@ Changes from Hy 0.9.5
* Keywords (such as :foo) are now valid and loved. (GN) * Keywords (such as :foo) are now valid and loved. (GN)
Changes from Hy 0.9.4 Changes from Hy 0.9.4
==============================
[ Syntax Fixes ] Syntax Fixes
------------------------------
* `try' now accepts `else': (JD) * `try` now accepts `else`: (JD)
(try BODY
(except [] BODY) `(try BODY (except [] BODY) (else BODY))`
(else BODY))
Changes from Hy 0.9.4 Changes from Hy 0.9.4
==============================
[ Syntax Fixes ] Syntax Fixes
------------------------------
* Statements in the `fn' path early will not return anymore. (PT) * Statements in the `fn` path early will not return anymore. (PT)
* Added "not" as the inline "not" operator. It's advised to still * Added "not" as the inline "not" operator. It's advised to still
use "not-in" or "is-not" rather than nesting. (JD) use "not-in" or "is-not" rather than nesting. (JD)
* `let' macro added (PT) * `let` macro added (PT)
* Added "~" as the "invert" operator. (JD) * Added "~" as the "invert" operator. (JD)
* `catch' now accepts a new format: (JD) * `catch` now accepts a new format: (JD)
(catch [] BODY) (catch [] BODY)
(catch [Exception] BODY) (catch [Exception] BODY)
(catch [e Exception] BODY) (catch [e Exception] BODY)
@ -646,9 +710,10 @@ Changes from Hy 0.9.4
(with [name context-managed-fn] BODY) (with [name context-managed-fn] BODY)
(with [context-managed-fn] BODY) (with [context-managed-fn] BODY)
[ Language Changes ] Language Changes
------------------------------
* Added `and' and `or' (GN) * Added `and` and `or` (GN)
* Added the tail threading macro (->>) (PT) * Added the tail threading macro (->>) (PT)
* UTF encoded symbols are allowed, but mangled. All Hy source is now * UTF encoded symbols are allowed, but mangled. All Hy source is now
presumed to be UTF-8. (JD + PT) presumed to be UTF-8. (JD + PT)
@ -656,87 +721,102 @@ Changes from Hy 0.9.4
* If hoisting (for things like printing the return of an if statement) * If hoisting (for things like printing the return of an if statement)
have been added. '(print (if true true true))' (PT) have been added. '(print (if true true true))' (PT)
[ Documentation ] Documentation
------------------------------
* Initial documentation added to the source tree. (PT) * Initial documentation added to the source tree. (PT)
Changes from Hy 0.9.3 Changes from Hy 0.9.3
==============================
[ Syntax Fixes ] Syntax Fixes
------------------------------
* Nested (do) expressions no longer break Hy (PT) * Nested (do) expressions no longer break Hy (PT)
* `progn' is now a valid alias for `do' (PT) * `progn` is now a valid alias for `do` (PT)
* `defun' is now a valid alias for `defn' (PT) * `defun` is now a valid alias for `defn` (PT)
* Added two new escapes for \ and " (PT) * Added two new escapes for \ and " (PT)
[ Language Changes ] Language Changes
------------------------------
* Show a traceback when a compile-error bubbles up in the Hy REPL (PT) * Show a traceback when a compile-error bubbles up in the Hy REPL (PT)
* `setf' / `setv' added, the behavior of `def` may change in the future. * `setf` / `setv` added, the behavior of `def` may change in the future.
* `print' no longer breaks in Python 3.x (PT) * `print` no longer breaks in Python 3.x (PT)
* Added `list-comp' list comprehensions. (PT) * Added `list-comp` list comprehensions. (PT)
* Function hoisting (for things like inline invocation of functions, * Function hoisting (for things like inline invocation of functions,
e.g. '((fn [] (print "hi!")))' has been added. (PT) e.g. '((fn [] (print "hi!")))' has been added. (PT)
* `while' form added. (ND) * `while` form added. (ND)
(while [CONDITIONAL] BODY) (while [CONDITIONAL] BODY)
[ Documentation ] Documentation
------------------------------
* Initial docs added. (WKG + CW) * Initial docs added. (WKG + CW)
Changes from Hy 0.9.2 Changes from Hy 0.9.2
==============================
[ General Enhancements ] General Enhancements
------------------------------
* hy.__main__ added, `python -m hy' will now allow a hy shim into existing * hy.__main__ added, `python -m hy` will now allow a hy shim into existing
Python scripts. (PT) Python scripts. (PT)
[ Language Changes ] Language Changes
------------------------------
* `import-as' added to allow for importing modules. (Amrut Joshi) * `import-as` added to allow for importing modules. (Amrut Joshi)
* `slice' added to slice up arrays. (PT) * `slice` added to slice up arrays. (PT)
* `with-as' added to allow for context managed bits. (PT) * `with-as` added to allow for context managed bits. (PT)
* `%' added to do Modulo. (PT) * `%` added to do Modulo. (PT)
* Tuples added with the '(, foo bar)' syntax. (PT) * Tuples added with the '(, foo bar)' syntax. (PT)
* `car' / `first' added. (PT) * `car` / `first` added. (PT)
* `cdr' / `rest' added. (PT) * `cdr` / `rest` added. (PT)
* hy --> .pyc compiler added. (PT) * hy --> .pyc compiler added. (PT)
* Completer added for the REPL Readline autocompletion. (PT) * Completer added for the REPL Readline autocompletion. (PT)
* Merge the `meth' macros into hy.contrib. (PT) * Merge the `meth` macros into hy.contrib. (PT)
* Changed __repr__ to match Hy source conventions. (PT) * Changed __repr__ to match Hy source conventions. (PT)
* 2.6 support restored. (PT) * 2.6 support restored. (PT)
Changes from Hy 0.9.1 Changes from Hy 0.9.1
==============================
[ General Enhancements ] General Enhancements
------------------------------
* Hy REPL added. (PT) * Hy REPL added. (PT)
* Doc templates added. (PT) * Doc templates added. (PT)
[ Language Changes ] Language Changes
------------------------------
* Add `pass' (PT) * Add `pass` (PT)
* Add `yield' (PT) * Add `yield` (PT)
* Moved `for' to a macro, and move `foreach' to old `for'. (PT) * Moved `for` to a macro, and move `foreach` to old `for`. (PT)
* Add the threading macro (`->'). (PT) * Add the threading macro (`->`). (PT)
* Add "earmufs" in. (tenach) * Add "earmufs" in. (tenach)
* Add comments in (PT) * Add comments in (PT)
Changes from Hy 0.9.0 Changes from Hy 0.9.0
==============================
[ Language Changes ] Language Changes
------------------------------
* Add `throw' (PT) * Add `throw` (PT)
* Add `try' (PT) * Add `try` (PT)
* add `catch' (PT) * add `catch` (PT)
Changes from Hy 0.8.2 Changes from Hy 0.8.2
==============================
[ Notes ] Notes
------------------------------
* Complete rewrite of old-hy. (PT) * Complete rewrite of old-hy. (PT)