Version 4.18.3 The "incomplete" release version
It'll be completed with a DLC release coming soon
complx
- Menu option File > Clean Load removed since students were using it and wondering why tests were failing. (Zeroed out memory/registers can still be achieved through File > Advanced Load).
- Simulate Subroutine Call dialog reworked, now doesn't require a stack label or a halt statement in the program. Also now supports Subroutines written using pass by registers.
- New Menu option Start Replay String Server which allows complx to retrieve a replay string from host (when running in CS2110's Docker setup).
as2obj
- Can now output a file with each memory address in all representations
pylc3
- Soft Assertions - By default almost all assertXXX functions are soft, meaning they don't immediately end the test.
- pyLC3 now outputs a JSON file with the test results (and assertions) in addition to the unittest text output.
- pyLC3 now generates a verification string when a test fails. (Unfortunately complx can't use these yet, coming soon)
- New functions fillString, fillArray to place a string or array at a specific address.
- New function fillNode for writing an arbitrary "node" type with arbitrary data in memory
- New function fillData for writing an arbitrary datastructure/struct/record out in memory
- Assertion functions for the above types assertValueAt, assertStringAt, assertArrayAt, assertNodeAt, assertDataAt for checking structures beginning at a specific memory address.
- assertAddress renamed to assertValueAt to conform to the new style of assertions.
- callSubroutine / expectSubroutineCall now have a pass by registers mode to call a subroutine.
- Fixed negative parameters for expectXXXCall acted weirdly.
- Fixed output for assertReturned if a HALT statement was encountered before a RET statement.
- Fixed expectSubroutineCall assertion output always displaying the params as unsigned numbers.
- Changed pyLC3 now displays a note to students to post the full output from the grader.
liblc3
- New warning when an invalid value is written to the PSR
- Fixed broken R6 when backstepping when true traps was set.