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.