You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/moon_wgsl-issue-tracker.md
+14-2Lines changed: 14 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# moon_wgsl Issue Tracker
2
2
3
-
Last updated: 2026-04-15
3
+
Last updated: 2026-04-29
4
4
5
5
## Status Legend
6
6
@@ -32,7 +32,19 @@ Last updated: 2026-04-15
32
32
|`WGSL-017`|`moon ide analyze` architecture audit | Instance-scoped composition and package-level compatibility helpers still rely on raw registry maps instead of one explicit registry abstraction, so the global registry boundary remains implicit in core code. |`DONE`| Added a shared internal `WgslSourceRegistry` abstraction and moved both `Composer` and package-level compatibility helpers onto it, so global helpers now wrap an explicit singleton registry instead of being the core state model. Verified with `moon fmt && moon test` on 2026-04-15 (`66/66` passing), including a new regression that composer snapshots stay isolated from later global mutations. |
33
33
|`WGSL-018`|`moon ide analyze` architecture audit | WGSL declaration parsing and dependency analysis are split across composer and export, so item extraction, source catalogs, and tree-shaking can drift as the language surface grows. |`DONE`| Extracted shared declaration-graph and dependency-analysis logic into `wgsl_analysis.mbt`, and routed compose-time item extraction plus export-time tree-shaking/source-map generation through the same helpers. Verified with `moon fmt && moon test` on 2026-04-15 (`66/66` passing), including a new regression that compose/export preserve the same annotated global dependencies. |
34
34
|`WGSL-019`|`moon ide analyze` architecture audit |`composer.mbt` still owns most import-planning and namespace-rewrite helpers, leaving the primary orchestration file too large and too sticky for further features. |`DONE`| Split composer-specific import planning, namespace resolution, and alias-renaming helpers into `composer_imports.mbt`, leaving `composer.mbt` focused on public API, session setup, condition handling, and recursive orchestration. Verified with `moon fmt && moon test` on 2026-04-15 (`66/66` passing). |
35
+
|`WGSL-020`| GitHub issue #2| Bevy-style const declarations with trailing line comments could be merged into the following declaration and then disappear from alias rewrites/tree-shaking. |`DONE`| Fixed by treating line-comment-terminated declarations as complete declaration boundaries. Released in `0.1.3` and verified with `moon test` on 2026-04-29. |
36
+
|`WGSL-021`| GitHub issue #3| Mixed Bevy PBR import graphs exposed missing import-only entry preservation and nested alias/type rewrites for source-level composition. |`DONE`| Fixed by preserving import-only WGSL entry items and expanding the Bevy mixed full/item import regression suite. Released across `0.1.4` and `0.1.5`; verified with `moon test` on 2026-04-29. |
37
+
|`WGSL-022`| GitHub issue #4| Repeated full-module imports under a nested alias skipped cached alias redirects, leaving expressions such as `view_bindings::view` unresolved. |`DONE`| Fixed by reusing cached alias redirects when a full-module import has already been visited. Released in `0.1.6`; verified with `moon test` on 2026-04-29 (`85/85` passing). |
38
+
|`WGSL-023`| Upstream naga_oil parity audit | The upstream compose test surface was only partially represented in local tests and not tracked as an explicit coverage matrix. |`DONE`| Added `docs/naga_oil-parity.md` with the upstream compose test/fixture matrix, source-level compatibility boundary, blocked cases, and the next architecture priorities. |
39
+
|`WGSL-024`| Architecture review | Import syntax parsing/planning is still split between preprocessor metadata parsing and composer/module-graph import target parsing, so alias/group syntax can drift between APIs. |`TODO`| Consolidate `parse_imports` and `collect_wgsl_import_targets` around one canonical import AST/parser, then route both metadata output and recursive compose planning through that representation. |
40
+
|`WGSL-025`| Upstream `additional_import` parity | Descriptor-level `additional_imports` exists, but source-level `compose_wgsl` / `export_wgsl_with_options` has no stable root-request API for injecting additional imports. |`DONE`| Added root-only `WgslComposeOptions.additional_imports`, wired descriptor-level additional imports into registered composable module source, and added compose/export regressions based on the upstream `add_imports` fixture shape. Full `virtual`/`override` overlay semantics remain part of `WGSL-012` because they require Naga. |
41
+
|`WGSL-026`| Upstream `bad_identifiers` parity | Naga can sanitize invalid/reserved identifiers during IR writeback, but this source-level library currently lacks a defined identifier-sanitization layer. |`TODO`| Implement a limited source-level sanitizer for declarations/references the local analyzer can identify, and document that full parser/IR-equivalent sanitization remains outside source-only scope. |
42
+
|`WGSL-027`| Upstream `invalid_override` parity | Redirect/override-style source-level APIs do not yet diagnose redirects that never match a local declaration, while upstream catches invalid override cases through Naga. |`TODO`| Add explicit redirect diagnostics, likely through export diagnostics or a checked compose API, without pretending to validate full Naga `virtual`/`override` semantics. |
43
+
|`WGSL-028`| Upstream `test_shader` parity | The local parity corpus lacks a simple compute shader smoke test corresponding to upstream `compute_test.wgsl`. |`DONE`| Added `testdata/upstream_compose/compute_test` and an export smoke test that preserves the compute entry point plus imported module dependency. Verified with `moon test` on 2026-04-29. |
35
44
36
45
## Current work queue
37
46
38
-
- No active `TODO` or `IN_PROGRESS` items. `WGSL-012` remains intentionally `BLOCKED` on true Naga/runtime-backed parity coverage.
47
+
-`WGSL-024`: consolidate import parsing and planning around one canonical import AST.
48
+
-`WGSL-026`: add a documented source-level identifier sanitizer where local parsing is sufficient.
49
+
-`WGSL-027`: add checked redirect diagnostics for source-level override/redirect usage.
50
+
-`WGSL-012` remains intentionally `BLOCKED` on true Naga/runtime-backed parity coverage.
0 commit comments