Skip to content

Phase 6: close the M8 warning and optimization gates #79

Open
0 of 2 issues completed
Open

Description

@biuld

Why this phase

The last two gates. Both are currently unmeasured for the same reason: no scoreboard reads their annotations.

M8-W — warnings

67 non-FFI files in warning/, annotated with @shouldWarnWith. Measured code distribution:

Code Files Code Files
UnusedName 13 ShadowedTypeVar 3
MissingTypeDeclaration 8 UnusedImport 3
WildcardInferredType 8 MissingNewtypeSuperclassInstance 3
UserDefinedWarning 8 WarningParsingModule 2
DuplicateExportRef 7 HiddenConstructors, HidingImport, ImplicitImport, … 2 each
MissingKindDeclaration 5 DuplicateImport, UnverifiableSuperclassInstance, … 1 each
UnusedExplicitImport 5
ShadowedName 4
DuplicateImportRef 4

Twelve files carry no annotation at all and are compile-only cases.

M8-O — optimization

10 optimize files, not vendored, with .out.js goldens. Two things must be decided before this can be scored:

  1. Vendor them, keeping .purs only per the existing rule — which loses the goldens.
  2. State what "optimize output agrees" means when the oracle is JavaScript. P7 and P10 both optimize verified IR and re-verify after each pass; the comparison has to be against optimizer output shape, not against purs' JavaScript.

Sub-issues

Tracked as children of this epic.

Gate

Warning-code agreement reaches 100% for the tracked warning corpus, and the stated optimize comparison agrees for all 10 optimize files.

References

  • docs/design/D-04-suite-roadmap.md — M8, M8-W/M8-O gate rows
  • tests/upstream/README.md — the vendoring rule and its .out exclusion
  • docs/implementation/backend/optimization.md — OPT-01..OPT-14, Verified

Validation

cargo fmt --all --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgate:M8Blocks the warning and optimization gates (D-04 M8-W, M8-O)

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions