hy/NEWS
2013-07-04 22:25:40 -04:00

241 lines
7.7 KiB
Plaintext

Changes from Hy 0.9.8
[ Syntax Fixes ]
* Macros are now module-specific, and must be required when used. (KH)
* 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)
* Empty expression is now the same as an empty vector. (Guillermo Vaya)
[ Language Changes ]
* HyDicts (quoted dicts or internal HST repr) are now lists
that compiled down to dicts by the Compiler later on. (ND)
* Macros can be constants as well. (KH)
* Add eval-when-compile and eval-and-compile (KH)
* Add break and continue to Hy (Morten Linderud)
* Core language libraries added. As example, I've included `take` and
`drop` in this release. More to come (PT)
[ Misc. Fixes ]
* Ensure compiler errors are always "user friendly" (JD)
* Hy REPL quitter repr adjusted to match Hy syntax (Morten Linderud)
* Windows will no longer break due to missing readline (Ralph Moritz)
Changes from Hy 0.9.7
[ Syntax Fixes ]
* Quasi-quoting now exists long with quoting. Macros will also not
expand things in quotes.
* kwapply now works with symbols as well as raw dicts. (ND)
* Try / Except will now return properly again. (PT)
* Bare-names sprinked around the AST won't show up anymore (ND)
[ Language Changes ]
* Added a new (require) form, to import macros for that module (PT)
* Native macros exist and work now! (ND)
* (fn) and (lambda) have been merged (ND)
* New (defclass) builtin for class definitions (JD)
* Add unquote-splicing (ND)
[ Errata ]
* Paul was an idiot and marked the j-related bug as a JD fix, it was
actually ND. My bad.
Changes from Hy 0.9.6
[ Syntax Fixes ]
* UTF-8 encoded hy symbols are now hy_... rather than __hy_..., it's
silly to prefex them as such. (PT)
* `j' is no longer always intepreted as a complex number; we use it much
more as a symbol. (ND)
* (decorate-with) has been moved to (with-decorate) (JD)
* New (unless) macro (JD)
* New (when) macro (JD)
* New (take) macro (@eigenhombre)
* New (drop) macro (@eigenhombre)
* import-from and import-as finally removed. (GN)
* Allow bodyless functions (JD)
* Allow variable without value in `let' declaration (JD)
* new (global) builtin (@eal)
* new lambda-list syntax for function defs, for var-arity, kwargs. (JK)
[ Language Changes ]
* *HUGE* rewrite of the compiler. Massive thanks go to olasd
and jd for making this happen. This solves just an insane number
of bugs. (ND, PT, JD)
* Eval no longer sucks with statements (ND)
* New magic binary flags / mis fixes with the hy intepreter
(WKG + @eigenhombre)
Changes from Hy 0.9.5
[ Syntax Fixes ]
* .pyc generation routines now work on Python 3. (Vladimir Gorbunov)
* Allow empty (do) forms (JD)
* The `else' form is now supported in `try' statements. (JD)
* Allow `(raise)', which, like Python, will re-raise
the last Exception. (JD)
* Strings, bools, symbols are now valid top-level entries. (Konrad Hinsen)
* UTF-8 strings will no longer get punycode encoded. (ND)
* bare (yield) is now valid. (PT)
* (try) now supports the (finally) form. (JD)
* Add in the missing operators and AugAssign operators. (JD)
* (foreach) now supports the (else) form. (JD)
[ Language Changes ]
=============== WARNING: WARNING: READ ME: READ ME: ===================
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
amazing feautre.
This also normalizes behavior from Py 2 --> Py 3.
Thank you so much, Konrad Hinsen.
=======================================================================
* (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
bits. (JD)
* We've moved to a new import style, (import-from) and (import-as) will
be removed before 1.0. (GN)
* Prototypes for quoted forms (PT)
* Prototypes for eval (PT)
* Enhance tracebacks from language breakage coming from the compiler (JD)
* The REPL no longer bails out if the internals break (Konrad Hinsen)
* We now support float and complex numbers. (Konrad Hinsen)
* Keywords (such as :foo) are now valid and loved. (GN)
Changes from Hy 0.9.4
[ Syntax Fixes ]
* `try' now accepts `else': (JD)
(try BODY
(except [] BODY)
(else BODY))
Changes from Hy 0.9.4
[ Syntax Fixes ]
* Statements in the `fn' path early will not return anymore. (PT)
* Added "not" as the inline "not" operator. It's advised to still
use "not-in" or "is-not" rather then nesting. (JD)
* `let' macro added (PT)
* Added "~" as the "invert" operator. (JD)
* `catch' now accepts a new format: (JD)
(catch [] BODY)
(catch [Exception] BODY)
(catch [e Exception] BODY)
(catch [e [Exception1 Exception2]] BODY)
* With's syntax was fixed to match the rest of the code. It's now: (PT)
(with [name context-managed-fn] BODY)
(with [context-managed-fn] BODY)
[ Language Changes ]
* Added `and' and `or' (GN)
* Added the tail threading macro (->>) (PT)
* UTF encoded symbols are allowed, but mangled. All Hy source is now
presumed to be UTF-8. (JD + PT)
* Better builtin signature checking (JD)
* If hoisting (for things like printing the return of an if statement)
have been added. '(print (if true true true))' (PT)
[ Documentation ]
* Initial documentation added to the source tree. (PT)
Changes from Hy 0.9.3
[ Syntax Fixes ]
* Nested (do) expressions no longer break Hy (PT)
* `progn' is now a valid alias for `do' (PT)
* `defun' is now a valid alias for `defn' (PT)
* Added two new escapes for \ and " (PT)
[ Language Changes ]
* 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.
* `print' no longer breaks in Python 3.x (PT)
* Added `list-comp' list comprehensions. (PT)
* Function hoisting (for things like inline invocation of functions,
e.g. '((fn [] (print "hi!")))' has been added. (PT)
* `while' form added. (ND)
(while [CONDITIONAL] BODY)
[ Documentation ]
* Initial docs added. (WKG + CW)
Changes from Hy 0.9.2
[ General Enhancements ]
* hy.__main__ added, `python -m hy' will now allow a hy shim into existing
Python scripts. (PT)
[ Language Changes ]
* `import-as' added to allow for importing modules. (Amrut Joshi)
* `slice' added to slice up arrays. (PT)
* `with-as' added to allow for context managed bits. (PT)
* `%' added to do Modulo. (PT)
* Tuples added with the '(, foo bar)' syntax. (PT)
* `car' / `first' added. (PT)
* `cdr' / `rest' added. (PT)
* hy --> .pyc compiler added. (PT)
* Completer added for the REPL Readline autocompletion. (PT)
* Merge the `meth' macros into hy.contrib. (PT)
* Changed __repr__ to match Hy source conventions. (PT)
* 2.6 support restored. (PT)
Changes from Hy 0.9.1
[ General Enhancements ]
* Hy REPL added. (PT)
* Doc templates added. (PT)
[ Language Changes ]
* Add `pass' (PT)
* Add `yield' (PT)
* Moved `for' to a macro, and move `foreach' to old `for'. (PT)
* Add the threading macro (`->'). (PT)
* Add "earmufs" in. (tenach)
* Add comments in (PT)
Changes from Hy 0.9.0
[ Language Changes ]
* Add `throw' (PT)
* Add `try' (PT)
* add `catch' (PT)
Changes from Hy 0.8.2
[ Notes ]
* Complete rewrite of old-hy. (PT)