Skip to content

0.26.0

Compare
Choose a tag to compare
@Kodiologist Kodiologist released this 08 Feb 18:42
· 482 commits to master since this release
58a870e

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 to bnot.
  • Dotted identifiers like foo.bar and .sqrt now parse as expressions (like (. foo bar) and (. None sqrt)) instead of symbols. Some odd cases like foo. and foo..bar are now syntactically illegal.

  • New macro do-mac.

  • New macro pragma (although it doesn't do anything useful yet).

  • hy.cmdline.HyREPL is now hy.REPL.

  • Redundant scripts named hy3, hyc3, and hy2py3 are no longer installed. Use hy, hyc, and hy2py instead.

New Features

  • Pyodide is now officially supported.
  • ., .., etc. are now usable as ordinary symbols (with the remaining special rule that ... compiles to Ellipsis).
  • 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 as sys.ps1) after hy.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).