Skip to content

v0.2.0

Choose a tag to compare

@zharinov zharinov released this 07 Jan 22:11
· 275 commits to master since this release
ac2aea2

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 pub keyword 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 --bytecode flag 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=auto by @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_type uses 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_query helper 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/EndObj for 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: :: string annotation on quantified captures produces correct types by @zharinov in #261
  • fix: :: TypeName on 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 tree and query AST into ast command by @zharinov in #276
  • fix: parse tree-sitter sequence syntax as Seq instead of wildcard Tree by @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 MatchIR builder by @zharinov in #282
  • fix: ban empty anonymous nodes with diagnostic by @zharinov in #283
  • refactor: decompose emit/mod.rs into focused modules by @zharinov in #284
  • refactor: rename tests.rs to diagnostics_tests.rs by @zharinov in #285
  • refactor: decompose typegen/typescript module by @zharinov in #286
  • refactor: decompose compile module by @zharinov in #287
  • refactor: decompose analyze module by @zharinov in #288
  • refactor: clean up bytecode module naming and structure by @zharinov in #289
  • refactor: Reorganize src/parser imports by @zharinov in #291
  • refactor: Extract inline tests to dedicated *_tests.rs files by @zharinov in #292
  • refactor: Update AGENTS.md by @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 Match struct allocation by @zharinov in #300
  • refactor: Add semantic builder API to CaptureEffects by @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_node clobbering by @zharinov in #307
  • fix: Bypass Up navigation when Down fails for childless nodes by @zharinov in #308
  • chore: Bump to v0.2.0 by @zharinov in #309

Full Changelog: 0.1.0...0.2.0