Changes from Hy 0.9.10 * Many thanks to Guillermo VayĆ” (Willyfrog) for preparing this release's release notes. Major shout-out. (PT) [ Misc. Fixes ] * Many many many documentation fixes * Change virtualenv name to be `hy' * Rewrite language.hy not to require hy.core.macros * Rewrite the bootstrap macros in hy * Cleanup the hy.macros module * Add comments to the functions and reorder them * Translation of meth from Python to Hy * PY3 should really check for Python >= 3 * Add hy._compat module to unify all Python 2 and 3 compatibility codes. * Import future.print_statement in hy code * Coerce the contents of unquote-splice'd things to a list * Various setup.py enhancements. * PEP8 fixes * Use setuptools.find_packages() * Update PyPI classifiers * Update website URL * Install the argparse module in Python 2.6 and before * Delete the duplicate rply in install_requires. With the PyPI version, tests are failed. * Finally fixed access to hy.core.macros here. have to explicitly require them. [ Language Changes ] * Slightly cleaner version of drop-while, could use yield-from when ready * Added many native core functions * Add zero? predicate to check if an object is zero * Macro if-python2 for compile-time choice between Python 2 and Python 3 code branches * Added new travis make target to skip flake8 on pypy but run it on all others * Add "spy mode" to REPL * Add CL handling to hyc * Add yield from via macro magic. * Add some machinery to avoid importing hy in setup.py * Add a rply-based parser and lexer * Allow quoting lambda list keywords. * Clarified rest / cdr, cleaned up require * Make with return the last expression from its branch * Fix yielding to not suck (#151) * Make assoc accept multiple values, also added a even/odd check for checkargs * Added ability to parse doc strings set in defclass declarations, * Provide bin scripts for both Windows and *nix * Removes setf in favor of setv Changes from Hy 0.9.9 [ Stupid Fixes ] * I forgot to include hy.core.language in the sdist. (PT) 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) * Importing a broken module's behavior now matches Python's more closely. (Morten Linderud) [ 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)