You can clone with
HTTPS or Subversion.
Packfile: A little more documentation
disasm: Piles of comments
It would be good if someone else looking at this code had
some idea what everything was supposed to do.
disasm: Minor fixes to label handling
disasm: Print namespace path coming and going
disasm: Show Keys
disasm: Separate out displaying op argument
I'm about to reuse it to display Key contents
disasm: Move printing of type
I'd like to remove all the PACT types from the constant output, so
lets let each type handle displaying the type.
disasm: switch from say(a + b) to say(a, b)
Lets me remove a lot of string() conversions
Packfile: update dumper for Subroutine and Multi
Store and print multisigs
Involves updating Packfile.Subroutine to store the sig and disasm to
disasm: Catch up with the new Subroutine world
This tracks labels based on Subroutine identity instead of name, which
is far more reliable. This also means that we handle labels for
multis correctly now!
Packfile.Decompile: Use Subroutine in constants
Instead of using the raw Sub, store a Packfile.Subroutine built from
Packfile.Subroutine: Build from a core Sub
This also stores the Sub inside the Subroutine for future reference.
disasm: Print multi candidates
Oh, it does it wrong, but it at least shows them
disasm: No longer need dumper.pbc
Packfile.Key: use int for types
Fixes calling the wrong multi constructor
Packfile.Decompile: Initial multi handling
Appears to collect multi candidates properly
Packfile.Key: Actually advance the key
disasm: minor change to null output
disasm: output string encodings
disasm: Initial assembly output
Probably more intelligible than the dumper output.
Packfile.Decompile: subs don't have get_bool
I wanted to check for null anyway
Packfile: helper function to add oplibs
Some tests for PACT.Packfile
Packfile: Remove unused 'useful opcode'
Test Decompiling a (basically) empty sub
This is in t/02-decompile because I realized I probably want some
tests for the basic packfile data structures in 01-packfile/
t/common: PACT uses call_bits frequently
t/common: Add decompile function
Packfile: oplibs are stored in hashes, not RPAs
Packfile: dump oplibs
Decompile: Don't try to pop things off a null sub
It doesn't work very well. Managed to avoid this one in manual
testing by having an :immediate sub in there so there was dead code
before the first sub.
First bug caught by writing tests. How exciting.
disasm: Use Winxed $directives
t/common: Central compile function
Takes in PIR, outputs a Packfile. Going to be doing this a lot so
would rather not write those three lines over and over again.
Packfile.Decompile: use $load directive
It's clearer than writing my own init function, and matches the
style I'm using for tests.