Repository navigation
v0.2.0
What's Changed
- feat: Update README.md by @zharinov in #121
- feat: Add explicit bin target for plotnik CLI in Cargo.toml by @zharinov in #122
- feat: Add "pub" syntax token by @zharinov in #123
- feat: Create ADR-0010 for type system by @zharinov in #124
- refactor: Parser by @zharinov in #126
- chore: Bump to 0.1.1 by @zharinov in #127
- refactor: Avoid node clones on casting by @zharinov in #128
- refactor: Use Visitor pattern for query AST traversal by @zharinov in #129
- chore(deps): update dtolnay/rust-toolchain digest to f7ccc83 by @renovate[bot] in #130
- chore(deps): update rust crate insta to v1.45.0 by @renovate[bot] in #132
- feat: Final docs by @zharinov in #133
- refactor: Multi-stage query building by @zharinov in #131
- chore: Remove
pubkeyword by @zharinov in #134 - feat: Switch to Arborium by @zharinov in #135
- docs: Update README.md by @zharinov in #136
- chore: Update renovate.json by @zharinov in #137
- feat: Restrict defs by @zharinov in #138
- docs: Update docs by @zharinov in #139
- refactor: Query test helpers by @zharinov in #140
- refactor: Test helpers by @zharinov in #141
- feat: Multi-file compilation by @zharinov in #142
- refactor: Simplify multi-file system by @zharinov in #143
- docs: Update type system by @zharinov in #144
- refactor: Symbol table by @zharinov in #145
- chore: Update renovate.json by @zharinov in #148
- chore(deps): update rust crate serde_json to v1.0.146 by @renovate[bot] in #146
- chore(config): migrate Renovate config by @renovate[bot] in #149
- chore(deps): update arborium crates to v2.4.3 by @renovate[bot] in #150
- feat: Type check pass by @zharinov in #151
- feat: Enforce code invariants by @zharinov in #152
- refactor: Binary format by @zharinov in #154
- chore(deps): update arborium crates to v2.4.5 by @renovate[bot] in #153
- feat: Enforce node type ids as NonZeroU16 by @zharinov in #155
- chore(deps): update rust crate serde_json to v1.0.147 by @renovate[bot] in #156
- feat: Warn on using
(...)instead of{...}for sequences by @zharinov in #157 - refactor: Improve diagnostics by @zharinov in #158
- docs: Update banner by @zharinov in #159
- feat: Add semicolon as line comment delimiter by @zharinov in #161
- chore(deps): update rust crate serde_json to v1.0.148 by @renovate[bot] in #160
- chore(deps): update arborium crates to v2.4.6 by @renovate[bot] in #162
- chore(deps): update rust crate proc-macro2 to v1.0.104 by @renovate[bot] in #163
- test: Enable supertype_via_lang_trait test by @zharinov in #164
- feat(lib): add type_system module with shared type abstractions by @zharinov in #167
- chore(deps): update rust crate insta to v1.45.1 by @renovate[bot] in #166
- chore(deps): update arborium crates to v2.4.6 - autoclosed by @renovate[bot] in #165
- feat: add bytecode IDs, constants, and header by @zharinov in #168
- feat: add bytecode navigation and sections by @zharinov in #169
- feat: add bytecode effects, entrypoints, and type metadata by @zharinov in #170
- feat: add bytecode instruction decoding by @zharinov in #171
- feat: add bytecode module loader by @zharinov in #172
- chore(deps): pin rust crate tempfile to v3.23.0 by @renovate[bot] in #173
- chore(deps): update rust crate tempfile to v3.24.0 by @renovate[bot] in #174
- refactor(alt_kinds): inline branch_range helper by @zharinov in #175
- refactor(printer): rename indent param to depth by @zharinov in #176
- refactor(source_map): reorder derive attributes by @zharinov in #177
- refactor(dependencies): consolidate RefFinder structs by @zharinov in #178
- chore: symlink CLAUDE.md to AGENTS.md by @zharinov in #179
- refactor: move type_check tests into module directory by @zharinov in #180
- fix: bubble captures from named nodes without creating scope by @zharinov in #181
- feat: add bytecode emit infrastructure by @zharinov in #183
- refactor: switch TypeScript emission to bytecode path by @zharinov in #185
- chore(deps): update arborium crates to v2.4.7 by @renovate[bot] in #182
- chore(deps): update rust crate syn to v2.0.112 by @renovate[bot] in #184
- refactor: extract langs tests to separate file by @zharinov in #186
- refactor: rename TypeKind to TypeShape for clarity by @zharinov in #187
- feat: add MISSING node AST helpers by @zharinov in #188
- feat: add anchor placement validation by @zharinov in #189
- feat: add bytecode IR with symbolic labels by @zharinov in #190
- feat: add bytecode dump for debugging by @zharinov in #191
- feat: add query compilation to bytecode by @zharinov in #192
- feat: add
--bytecodeflag to debug command by @zharinov in #193 - test: update module_tests for new bytecode format by @zharinov in #194
- docs: update binary format and runtime documentation by @zharinov in #195
- refactor: move dump format docs, remove unimplemented WIP by @zharinov in #196
- refactor: use early exits to reduce nesting by @zharinov in #197
- feat: add anchor placement validation by @zharinov in #198
- fix: resolve bytecode member indices at emit time by @zharinov in #199
- refactor: consolidate compiler utilities and passes by @zharinov in #200
- refactor: move typescript codegen to top-level module by @zharinov in #201
- refactor: split compile.rs and simplify bytecode IR by @zharinov in #202
- refactor: restructure CLI commands by @zharinov in #203
- docs: add CLI reference and update documentation by @zharinov in #204
- refactor: reorganize compiler by @zharinov in #205
- refactor: improve test patterns by @zharinov in #206
- refactor: reorganize bytecode tests with file-based snapshots by @zharinov in #207
- refactor: sequential type indices in bytecode by @zharinov in #208
- feat: void-type option and optional language for infer by @zharinov in #209
- refactor: add QueryContext and simplify LinkedQuery by @zharinov in #210
- refactor: move unwrap_optional to bytecode module by @zharinov in #211
- refactor: enforce lifetime naming convention by @zharinov in #212
- refactor: add colors module for terminal output by @zharinov in #215
- feat: add inline source support for tree command by @zharinov in #216
- refactor: add bytecode format module for shared formatting by @zharinov in #217
- refactor: use NonZeroU16 for StepId/StringId, colorize dump output by @zharinov in #218
- feat: add runtime engine for query execution by @zharinov in #219
- feat: add exec and trace CLI commands by @zharinov in #220
- docs: add trace format and tree navigation documentation by @zharinov in #221
- feat: add colorized output for infer command by @zharinov in #222
- refactor: change negated field syntax from !field to -field by @zharinov in #223
- chore: remove unused STEP_ACCEPT constant by @zharinov in #224
- chore(deps): update rust crate clap to v4.5.54 by @renovate[bot] in #213
- chore(deps): update arborium crates to v2.5.0 by @renovate[bot] in #214
- chore: remove unused ADR infrastructure by @zharinov in #225
- chore(deps): update arborium to v2.5.0 and add groovy/wit languages by @zharinov in #226
- fix: recursion depth tracking and sequence quantifier navigation by @zharinov in #227
- docs: update README and AGENTS.md by @zharinov in #228
- feat(cli): add positional shifting for exec/trace commands by @zharinov in #229
- refactor(compile): implement skip-retry iteration for quantifiers by @zharinov in #230
- fix(engine): labeled alternation with definition reference by @zharinov in #231
- fix(engine): restore cursor position after Call returns by @zharinov in #232
- fix(engine): use depth-based cursor restoration in Call/Return by @zharinov in #233
- fix(compile): use exact navigation for alternation branches and definition bodies by @zharinov in #234
- fix(compile): use BTreeMap order for tagged alternation variant indices by @zharinov in #235
- fix(engine): search among siblings when executing Call instruction by @zharinov in #236
- test(engine): add regression test for enum tag with definition refs by @zharinov in #239
- refactor: extract quantifier_operator_kind helper by @zharinov in #240
- chore(deps): update rust crate insta to v1.46.0 by @renovate[bot] in #238
- chore(deps): update rust crate syn to v2.0.113 by @renovate[bot] in #237
- refactor: normalize ref_returns_structured to use is_some_and chain by @zharinov in #241
- refactor: extract parse_quantifier helper to reduce duplication by @zharinov in #242
- feat: add suppressive captures (
@_ syntax) by @zharinov in #243 - chore: remove accidentally committed wip docs by @zharinov in #244
- fix: check both stdout and stderr for
--color=autoby @zharinov in #245 - fix: use Void for zero-capture enum variants by @zharinov in #246
- docs: Update logo by @zharinov in #247
- docs: Update README.md by @zharinov in #248
- feat: debug-only type verification for materialized values by @zharinov in #249
- fix:
debug_verify_typeuses correct entrypoint for multi-def queries by @zharinov in #250 - refactor: replace
‼with ASCII!/!!for nav symbols by @zharinov in #251 - chore: minor doc formatting by @zharinov in #252
- feat: unified CLI flags for seamless command switching by @zharinov in #253
- refactor: extract
prepare_queryhelper for exec/trace commands by @zharinov in #254 - refactor: improve trace text formatting by @zharinov in #255
- refactor: improve trace and dump format for Call instructions by @zharinov in #256
- fix: skip
Obj/EndObjfor definitions without direct captures by @zharinov in #257 - fix: captured refs create scope boundaries in type inference by @zharinov in #258
- fix: implement call-site scoping for captured refs by @zharinov in #259
- refactor: VM receives bootstrap address as runtime parameter by @zharinov in #260
- fix:
:: stringannotation on quantified captures produces correct types by @zharinov in #261 - fix:
:: TypeNameon struct/enum captures names the type instead of aliasing Node by @zharinov in #262 - chore(deps): update arborium crates to v2.6.0 by @renovate[bot] in #263
- fix: propagate output types through named nodes and sequences by @zharinov in #264
- fix: trailing anchor constraints trigger backtracking by @zharinov in #266
- fix: named wildcard
(_)now correctly matches only named nodes by @zharinov in #267 - fix: reset DIM before emitting field type in typegen by @zharinov in #268
- fix: captured tagged alternation in field produces tagged union by @zharinov in #269
- docs: Update README by @zharinov in #270
- fix: nested untagged alternation containing tagged alternation by @zharinov in #271
- chore(deps): update arborium crates to v2.6.0 by @renovate[bot] in #265
- fix: empty captured sequences produce empty struct instead of null by @zharinov in #272
- feat: unify
treeand query AST intoastcommand by @zharinov in #276 - fix: parse tree-sitter sequence syntax as
Seqinstead of wildcardTreeby @zharinov in #277 - chore(deps): update rust crate quote to v1.0.43 by @renovate[bot] in #275
- chore(deps): update rust crate proc-macro2 to v1.0.105 by @renovate[bot] in #274
- fix: split large epsilon fan-outs to avoid instruction size panic by @zharinov in #278
- refactor: merge alternation wrapper effects into body instructions by @zharinov in #279
- fix: type verification panic for uncaptured recursive tagged alternations by @zharinov in #280
- refactor: add batch methods to
MatchIRbuilder by @zharinov in #282 - fix: ban empty anonymous nodes with diagnostic by @zharinov in #283
- refactor: decompose
emit/mod.rsinto focused modules by @zharinov in #284 - refactor: rename
tests.rstodiagnostics_tests.rsby @zharinov in #285 - refactor: decompose
typegen/typescriptmodule by @zharinov in #286 - refactor: decompose
compilemodule by @zharinov in #287 - refactor: decompose
analyzemodule by @zharinov in #288 - refactor: clean up bytecode module naming and structure by @zharinov in #289
- refactor: Reorganize
src/parserimports by @zharinov in #291 - refactor: Extract inline tests to dedicated
*_tests.rsfiles by @zharinov in #292 - refactor: Update
AGENTS.mdby @zharinov in #293 - refactor: Enforce facade pattern for
query/module by @zharinov in #294 - refactor: Use neutral wording in type verification panic messages by @zharinov in #295
- refactor: Add invariant enforcement to engine by @zharinov in #297
- chore(deps): update rust crate serde_json to v1.0.149 by @renovate[bot] in #296
- feat: Ban empty sequences
{}and alternations[]by @zharinov in #298 - refactor: Eliminate intermediate
Matchstruct allocation by @zharinov in #300 - refactor: Add semantic builder API to
CaptureEffectsby @zharinov in #301 - refactor: Add builder pattern and private fields to core structs by @zharinov in #302
- docs: Update README.md by @zharinov in #305
- refactor: Change bytecode to distinguish named and anonymous nodes by @zharinov in #304
- chore(deps): update rust crate indexmap to v2.13.0 by @renovate[bot] in #303
- chore(deps): update rust crate syn to v2.0.114 - autoclosed by @renovate[bot] in #299
- fix: Cascade overflow pre-effects to prevent bytecode encoding panic by @zharinov in #306
- fix: Place Node/Text capture effects on entry to prevent
matched_nodeclobbering by @zharinov in #307 - fix: Bypass Up navigation when Down fails for childless nodes by @zharinov in #308
- chore: Bump to
v0.2.0by @zharinov in #309
Full Changelog: 0.1.0...0.2.0