Hy

Latest version: v1.0.0

Safety actively analyzes 714792 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 7

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 interpreted 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 interpreter
(WKG + eigenhombre)

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)

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 feature.

This also normalizes behavior from Py 2 --> Py 3.

Thank you so much, Konrad Hinsen.

Language Changes
------------------------------

* (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)

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 than 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)

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)

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)

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)

Page 6 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.