Skip to content

0.27.0

Compare
Choose a tag to compare
@Kodiologist Kodiologist released this 06 Jul 19:38
· 341 commits to master since this release

Removals

  • Python 3.7 is no longer supported.

Other Breaking Changes

  • Reader macros now always read a full identifier after the initial #. Thus, #*foo is now parsed as a call to the reader macro named *foo; to unpack a variable named foo, say #* foo.
  • The names of reader macros names are no longer mangled.
  • Question marks (?) are no longer mangled specially, so foo? now mangles to hyx_fooXquestion_markX instead of is_foo.
  • hy2py's recursive mode now expects a module name as input, not any old directory. You must be in the parent directory of the module directory.

New Features

  • Python 3.12 is now supported.
  • New built-in object hy.M for easy imports in macros.
  • cut now has a function version in hy.pyops.
  • The py macro now implicitly parenthesizes the input code, so Python's indentation restrictions don't apply.
  • try no longer requires except, except*, or finally, and it allows else even without except or except*.
  • nonlocal and global can now be called with no arguments, in which case they're no-ops.
  • For easier reading, hy --spy now prints a delimiter after the Python equivalent of your code, before the result of evaluating the code.

Bug Fixes

  • Fixed an installation failure in some situations when version lookup fails.
  • Fixed some bugs with traceback pointing.
  • Fixed some bugs with escaping in bracket f-strings
  • The parser no longer looks for shebangs in the REPL or hy -c.
  • require with relative module names should now work correctly with hy -m, as well as hy2py's recursive mode.
  • hy.models.Symbol no longer allows constructing a symbol beginning with #.