Revision history for MoarVM::Bytecode

0.0.27  2026-06-22T22:44:55+02:00
    - Workaround potential race-conditions in @-constants
    - Bump dependency on List::Agnostic

0.0.26  2026-02-10T11:57:03+01:00
    - Bump dependencies
    - Update ops list

0.0.25  2026-01-19T22:50:32+01:00
    - Make sure a method .elems exist in order to cope
      with new Array::Agnostic strictness
    - Modernize META information
    - Update copyright year

0.0.24  2025-01-10T17:38:39+01:00
    - Increase area x5 to look for magic number
    - Some .gist tweaks

0.0.23  2025-01-08T23:03:39+01:00
    - Also show coverables information in .gist
    - Allow specification of a use target instead of just
      paths or setting letters

0.0.22  2025-01-04T13:41:52+01:00
    - Remove support for specifying identities, it does not
      belong in this module
    - Remove dependency on Identity::Utils, it is no longer
      needed here

0.0.21  2025-01-01T12:43:26+01:00
    - Bump dependency on Identity::Utils to fix errors
    - Update copyright year

0.0.20  2024-12-31T17:05:53+01:00
    - Bump dependency on Identity::Utils to make the module
      installable again without testing errors

0.0.19  2024-12-31T16:03:03+01:00
    - Add dependency on "Identity::Utils"
    - Add support for .new($identity, $repo)
    - Don't add EVAL blocks to coverables
    - Remove usage of 6.e Format for now: it stops this module
      from being pre-compiled when used in another module

0.0.18  2024-12-27T12:20:24+01:00
    - Add method "coverables"

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<Buf> 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
