-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
152 lines (135 loc) · 6.6 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
Revision history for MoarVM::Bytecode
{{$NEXT}}
- Changed all references to "cuuid" to "cuid"
- Add "named" attribute to Callsite, with named arguments
- Add Callsite.has-named-arg convenience method
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