Revision history for MoarVM::Bytecode
0.0.17 2024-09-25T17:57:09+02:00
- Changed all references to "cuuid" to "cuid"
- Add "named" attribute to Callsite, with named arguments
- Add Callsite.has-named-arg convenience method
- Add CI badge for each OS
- Upped dependencies where possible
- Add dependency on META::verauthapi
- Make sure all public classes have proper ^ver ^auth ^api
0.0.16 2024-04-29T13:08:31+02:00
- Add :highlight argument to MoarVM::Bytecode::Frame.hexdump
- Change --opcode argument in "bcinfo" to --opcodes to allow
specification of multiple comma-separated opcodes
- Helper script "bcinfo" will now highlight opcodes where
possible
0.0.15 2024-04-28T20:20:10+02:00
- Add helper script "bceval"
- Add MoarVM::Op.not-inlineable method
- Add MoarVM::Bytecode::Frame.inlineable method
0.0.14 2024-04-28T17:47:00+02:00
- Make sure that cu-dependencies contain actual
CompUnit::PrecompilationDependency::File objects
- Add :instantiate named argument to "files" method
- Use new "Format" capability to speed up gists
- Add Strings.bytes and Frames.bytes methods
- Bump dependency on List::Agnostic
- Added helper script "bcinfo"
0.0.13 2024-04-26T22:52:31+02:00
- Rename "bytecode-offset" and "bytecode-length" methods
on MoarVM::Bytecode class to "opcodes-offset" and
"opcodes-length" respectively to prevent confusion
- Rename "bytecode" method on MoarVM::Bytecode::Frame and
MoarVM::Bytecode to "opcodes" to prevent confusion
- Make MoarVM::Bytecode and MoarVM::Bytecode::Frame Iterable,
producing the opcodes when iterated over
- Add MoarVM::Bytecode::Frame.de-compile method that produces
a string with all opcodes de-compiled
- Add the "M" attribute to MoarVM::Bytecode::Frame, to hook
the frame back to the actual bytecode object it lives in
- Removed "callsites" attribute from MoarVM::Bytecode::Frame:
it is now being handled by "M"
0.0.12 2024-04-26T15:58:56+02:00
- Add "csites" helper script to introspect callsites
- Add MoarVM::Bytecode.op method that will also attempt to
look up any extension opcodes that may be defined in that
bytecode
- Give MoarVM::Bytecode::ExtensionOp the same API as
MoarVM::Op, so they can be used transparently
- Allow support for reading module precomp files, as
opposed to just pure MoarVM bytecode files
- Add "cu-dependencies" attribute that lists any compunit
dependencies in module precomp files.
- Fix various issues in decompilation and hexdump
0.0.11 2024-04-24T21:54:18+02:00
- Add "sheap" helper script for string heap introspection
- Removed dependency on HexDump::Tiny, and replaced that by a
local, simplified way of showing a hexdump
- Added a MoarVM::Bytecode::Callsite.gist method
- Fixed issue in Callsite processing: flattened named args don't
have an index into the string heap
- Fixed issue opcode processing with rl() and wl() arguments
0.0.10 2024-04-24T13:32:46+02:00
- Removed the "bytecode-offset" and "bytecode-length" attributes
from the "Frame" class, and replaced these by a single "bytecode"
attribute that will lazily produce a C with the actual
bytecode of the frame
- Rename the MoarVM::Op.attributes method to "adverbs" to more
closely match the wording used in MoarVM
- Pre-compile all possible MoarVM::Op objects, as they're all
singletons
- Replace the MoarVM::Op.reify-all method by "all-ops" method, as
all possible objects have already been reified
- Add MoarVM::Op "all-adverbs" method, which returns a list of
all possible adverbs
- Make MoarVM::Op.bytes smarter, as some ops have a variable size
depending on the actual instance in the bytecode
- Add "opinfo" helper script for interactive op lookup
0.0.9 2024-04-21T20:10:38+02:00
- Make sure all classes have at least a rudimentary "gist" method
- Add "Op" class to obtain bytecode operation information, including
a helper script "makeOPS.raku" to cull that information from the
MoarVM oplist
0.0.8 2024-04-18T22:56:28+02:00
- Only add "Statement" objects if the bytecode offset is different
- Provide basic "gist" support
0.0.7 2024-04-18T13:16:30+02:00
- Rename "annotation-offset" and "annotation-length" methods on
the "Bytecode" object to "annotation-data-offset" and
"annotation-data-offset" to avoid confusion with similarly
named methods on the "Frame" object
- Reformat documentation a bit
- Document method "uint16"
- Add utility methods "uint16s" and "uints32" and document
them
- Remove attribute "name" from "Frame" class to be replaced by
a lazily mixed in role method "name" if the object actually
has a name
- Add lazily mixed in role method "filename" to "Frame" objects
if the object actually has a filename
- Add class "Statement" to capture information about a statement:
For now this will only "offset" and "line" methods
- Add method "statements" to "Frame" class, containing the
"Statement" objects of the frame.
- Remove "annotation-offset" and "annotation-entries" methods
from the "Frame" object
0.0.6 2024-04-17T21:31:28+02:00
- Add "Callsite" and "Argument" classes and a first stab at
documenting them
- Add "callsites" method, a list of "Callsite" objects
0.0.5 2024-04-17T12:22:35+02:00
- Add "Frames" class to provide a lazy positional interface to
frame information
- Make frame reification lazy and abstract this into a "Frames"
object
- Add "reify-all" method to "Frames" object to reify all "Frame"
objects that haven't been reified before, in a hypered way
0.0.4 2024-04-16T20:24:22+02:00
- Simplify internal representation of "sc-dependencies"
- Move documentation to separate file for convenience
- Add level 7 bytecode documentation from MoarVM repo for reference
- Add "str" utility method
- Add "ExtensionOp", "Frame", "Local" and "Lexical" classes and a
first stab at documenting them
- Add instance method "extension-ops", a list of "ExtensionOp"
objects
- Add instance method "frames" returning a "Frame" object for
each frame
0.0.3 2024-04-15T18:44:58+02:00
- Add instance method "sc-dependencies" providing a positional
interface to the Serialization Context dependencies
0.0.2 2024-04-15T13:24:25+02:00
- Replace class method "blib" by more general "rootdir"
- Add class method "files" to produce all bytecode files of a
Rakudo installation
- Add dependency on "paths"
- The "setting" method now searches for the bytecode file, to
enable proper CI testing, which has a weird file layout
0.0.1 2024-04-14T22:14:30+02:00
- Initial version