Stuff I forgot to commit.

This commit is contained in:
peteraa 2020-06-29 16:17:24 +02:00
parent b8ae0092c1
commit 9f47433501
14 changed files with 517 additions and 249 deletions

View file

@ -1,57 +0,0 @@
* Tasks
** DONE File IO and test
** DONE Stop exploding the heap with logs :DDD
** DONE Fix DONE instruction for VM termination
*** DONE Add setting instructions
** DONE Add assembler
** DONE Chisel tester
** DONE Add LF
** DONE Redo colors in fansi. ANSI fucks up string formatting
** DONE Columnize log events
** DONE Chisel test log evaluator
** DONE Create giftWrapper script
** DONE Better sourceinfo stuff
Good enough
** DONE Test options
*** DONE How much NOP pad?
*** DONE Verbosity?
*** DONE Which tests?
** DONE ish Step counter, pretty print VM log, including final memory state
** TODO More programs
*** DONE Real programs
*** TODO Basic programs
Needs more
** DONE Merge in LF changes
** TODO Breakpoints
*** TODO VM breakpoints
**** TODO Record breakpoints in chisel tester
*** TODO Chisel breakpoints
**** TODO Freeze processor to record state
**** TODO Record breakpoints in chisel tester
*** TODO Draw breakpoints in the printer
** TODO Calculate steps needed
** TODO Unmangle derailed traces
With incorrect designs the trace printer ends up printing a lot of diveregent
unsychnronizable blocks
** DONE Fix DONE instruction
*** DONE Parse error
*** DONE Use DONE address
** DONE Hazard generator
good enough
** TODO Semantic logging
Currently logging is quite awkward, a combination of fansi and regular strings.
Ideally a markdown format such as HTML should be used. There are already plenty
good scala libraries for this, such as liyaohi's stuff (big shoutout!)
** TODO Interactive stepping
This one is a pretty big undertaking, but it could be very useful to run the circuit in an interactiv
environment.
https://venus.cs61c.org/ is a good example of how useful this can be for a virtual machine.
This task requires pretty good understanding of chisel.
* Maybe
** DONE Move instruction recording to IMEM rather than IF?
Only care about what IF gets, won't have to deal with whatever logic is in IF.
** DONE Figure out why loading instructions backwards made shit werk
Not as funny as you'd think. The issue was overwriting the last written instruction with 0