Hera-py

Latest version: v1.0.5

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

Scan your dependencies

Page 2 of 3

0.8.0

Added
- The disassembler subcommand.
- The `--throttle` flag, to limit the number of operations executed on a single run.
- The `--credits` flag.

Fixed
- Newlines are no longer semi-randomly printed to standard error in preprocessing and assembling mode.

0.7.0

Added
- The `assemble` subcommand, for assembling HERA programs into raw machine code.
- The `clear` debugging command, for clearing breakpoints.
- The `break` debugging command now accepts a special argument `.` which sets a breakpoint at the current line.
- The `break` debugging command now accepts arguments of the form `<path>:<line>` for setting breakpoints in different files.

Changed
- The `break` debugging command now prints the location of the breakpoint that it set.
- The preprocess subcommand now prints its normal output to standard out instead of standard error.

Fixed
- When no file path is provided, the `break` debugging command defaults to the current file (whereas behavior was unpredictable before).
- `assign` commands in the debugger can now be undone.
- In the debugging minilanguage, the subtraction operator no longer needs to be separated from integer literals by whitespace.

0.6.0

Added
- Hexadecimal and octal escape sequences are now accepted in character and string literals.
- Support for parameters-in-registers version of the Tiger standard library.

Changed
- Execution times of long-running programs has been cut down by roughly 50%.
- Use of `SWI` and `RTI` operations now result in parse-time errors instead of run-time warnings.
- HERA files may no longer contain non-ASCII bytes.
- Type errors are detected even in files with parse errors.
- The `--no-debug` flag has been renamed to `--no-debug-ops`.
- The `jump` debugging command has been renamed to `goto`.
- When `__eval` results in a Python exception, the error message with the location is printed to standard error, rather than the raw Python traceback.

Removed
- The `jump` debugging command (now called `goto`) may no longer be invoked with no arguments.

Fixed
- The debugger no longer crashes when printing the value of a label on the last line of a program.
- The debugger no longer crashes when `list` or `ll` is invoked after the end of the program.
- A relative branch to a label whose instruction number is greater than 255 is no longer erroneously reported as an error.

0.5.2

Added
- The `warn-octal-off` flag.
- The `info` command now accepts one or more argument for specific aspects of the program state.
- The `info` command can now print information about the program's call stack.
- The `help` command now accepts abbreviated command names.

Changed
- The `--no-ret-warn` flag has been renamed to `--warn-return-off`.
- The `--big-stack` and `--warn-return-off` flags can no longer be used with the `preprocess` subcommand.

Fixed
- `hera-py` now installs with Python 3.4 without errors. I believe this was broken in version 0.5.1.
- The debugger now executes data statements on start-up.
- The `execute` debugging command now prints an error message when invoked with no arguments.

0.5.1

Added
- Arithmetic operations are supported in printing and assigning values in the debugger.
- Much more informative messages for parse errors.
- Detection of invalid return addresses, and accompanying `--no-ret-warn` flag.
- The `undo` debugging command.
- The `on` and `off` debugging commands for flag manipulation.
- The `next` debugging command now takes an optional argument.
- The `print` debugging command now takes accepts an optional format specifier argument.
- The `print` debugging command now takes multiple comma-separated arguments.
- Printing the program counter or `PC_ret` (`R13`) in the debugger now indicates what line of code the registers correspond to.
- The `--no-debug` command-line flag.

Changed
- The `restart` debugging command may no longer be abbreviated.
- The `skip` debugging command has been renamed to `jump`.
- Debugger now prints three lines of context instead of one after commands that affect the program counter.
- The syntax for memory locations in the debugger minilanguage is now `<address>` instead of `M[address]`.

Removed
- The `+n` argument to the `jump` debugging command.
- Flags can no longer be printed with the `print` debugging command. Use the `info` command instead.
- Flags can no longer be changed with the `assign` debugging command. Use the new `on` and `off` commands instead.

Fixed
- A label may no longer be the second argument to `RETURN`.
- The `assign` debugging command no longer prints a spurious error message when invoked.
- Negative numbers are parsed correctly in the debugging minilanguage.
- The debugger now respects the `--no-color` command-line flag.
- The printed register values after program execution now correctly print negative numbers under the signed interpretation of 16 bits.
- The `step` command no longer stops prematurely when the number of instructions executed exceeds the length of the program.
- Printing invalid registers in the debugger no longer crashes it.

0.5.0

Added
- Error messages for `include` with non-existent file now print the line number.
- The `list` and `ll` debugging commands.
- The `execute` debugging command.
- The `info` debugging command.
- The `assign` debugging command, and its alias `x = y`.
- The `step` debugging command.
- The debugging expresson mini-language.
- A warning is printed when `R11` is used as the second argument of `NOT`.
- A warning is printed when `CALL` and `RETURN` are used with atypical registers.
- `help` debugging command takes one or more arguments and prints more detailed help messages for specific commands.
- `TIGER_STRING` is accepted as an alias for `LP_STRING`.
- `--big-stack` command-line flag.

Changed
- Relative branch instructions can now target labels.
- Warning for zero-prefixed octal literals will only be printed once per program, rather than for every occurrence.
- Data statements may never follow code, even when in different files.
- ANSI colors are not used when standard error is not a tty-like device.
- Invalid backslash escapes in string literals are now errors.
- Newlines in string literals are no longer allowed.

Fixed
- Use of undefined labels gives proper error message instead of Python exception.
- `continue` in debugger doesn't get stuck on breakpoints.
- `break` debugging command now accepts labels as arguments.
- Constants and data labels cannot be used as branch targets.
- Re-defined constants prevent execution, instead of just printing an error message.
- Passing too few parameters to `SET` no longer crashes the program.
- Constants can no longer be used before they are declared.
- Invalid zero-prefixed octal literals no longer crash the interpreter.
- Labels are calculated correctly after branches on registers.
- `skip` debugging command no longer executes instructions, matching its help description.
- Symbols beginning with "m" can now be printed in the debugger.
- Too few arguments to `CALL` op now causes an error message to be printed, instead of crashing the interpreter.
- Invalid backslash escapes in character literals now cause an error instead of crashing the interpreter.

Removed
- The `--lines` command-line argument.

Page 2 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.