0.26.0
Removals
- Coloring error messages and Python representations for models is no longer supported. (Thus, Hy no longer depends on
colorama
.)
Other Breaking Changes
-
Various warts have been smoothed over in the syntax of
'
, `,~
, and~@
:- Whitespace is now allowed after these syntactic elements. Thus one can apply
~
to a symbol whose name begins with "@". - ` and
~
are no longer allowed in identifiers. (This was already the case for'
.) - The bitwise NOT operator
~
has been renamed tobnot
.
- Whitespace is now allowed after these syntactic elements. Thus one can apply
-
Dotted identifiers like
foo.bar
and.sqrt
now parse as expressions (like(. foo bar)
and(. None sqrt)
) instead of symbols. Some odd cases likefoo.
andfoo..bar
are now syntactically illegal. -
New macro
do-mac
. -
New macro
pragma
(although it doesn't do anything useful yet). -
hy.cmdline.HyREPL
is nowhy.REPL
. -
Redundant scripts named
hy3
,hyc3
, andhy2py3
are no longer installed. Usehy
,hyc
, andhy2py
instead.
New Features
- Pyodide is now officially supported.
.
,..
, etc. are now usable as ordinary symbols (with the remaining special rule that...
compiles toEllipsis
).- On Pythons ≥ 3.7, Hy modules can now be imported from ZIP archives in the same way as Python modules, via
zipimport
_. hy2py
has a new command-line option--output
.hy2py
can now operate recursively on a directory.
Bug Fixes
hy.REPL
now restores the global values it changes (such assys.ps1
) afterhy.REPL.run
terminates.hy.REPL
no longer mixes up Hy's and Python's Readline histories when run inside Python's REPL.- Fixed
hy.repr
of non-compilable uses of sugared macros, such as(quote)
and(quote 1 2)
.