Skip to content

v0.4

Choose a tag to compare

@dsisco11 dsisco11 released this 11 Jan 10:36
55a9164

Release Notes — TinyAst.Preprocessor 0.4.0

Highlights

  • Upgraded to TinyPreprocessor v0.4 and aligned merge behavior with v0.4 semantics.
  • Added line-boundary support for SyntaxTree source-map boundary resolution.
  • Expanded test coverage for canonical ResourceId scenarios and redundant merge work prevention.

Breaking / Behavioral changes

  • Merge identity is now resolver-authoritative:
    • ResourceId is treated as opaque during merge (not required to be path-like).
    • Merge uses the resolver-produced resolved-id mapping (MergeContext.ResolvedReferences) per directive occurrence.
    • Merge no longer re-derives dependency IDs from raw reference strings (path heuristics).

New features

  • Boundary resolution support (Line boundaries):
    • Implemented IContentBoundaryResolver<SyntaxTree, LineBoundary> and a provider wired into the pipeline.
    • Enables boundary-aware source-map lookups (e.g., line index resolution) via TinyPreprocessor’s boundary extensions.

Improvements

  • No redundant merge work (validated by tests):
    • Shared dependencies and include-of-include graphs are processed exactly once per ResourceId.
  • Test instrumentation seam:
    • Added a protected virtual OnProcessResource(ResourceId) hook to observe per-resource processing in tests.

Documentation

  • Updated README and bridge docs to reflect:
    • TinyPreprocessor v0.4 requirement
    • resolved-id mapping merge semantics
    • boundary resolution capability
  • Added changelog and linked it from README.

Quality

  • Added XML documentation for public/protected APIs (eliminates CS1591 warnings).