TheAngryByrd / TheAngryByrd/fsharp2

Implement structured diagnostic policy and compatibility

Open
#27 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

wayfinder:task
Dominant language
F#
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Parent: #8
Blocked by: #25 and #26

Outcome

Create the shared diagnostic policy used by every compiler phase and expand supported diagnostics through focused Compatibility Oracle cases.

Acceptance criteria

  • Phase modules report structured diagnostic facts rather than preformatted console strings.
  • The policy preserves occurrence, FS code, effective severity, message, source range, ordering, output stream, suppression, warning level, promotion, exit behavior, and artifact-publication behavior.
  • Parser and checker recovery can report multiple deterministic diagnostics without uncontrolled cascades.
  • Culture, flat/full-path formatting, UTF-8 output, warning-as-error, per-code suppression, and per-code promotion are represented explicitly.
  • Each supported language feature contributes positive and negative diagnostic cases to the generic conformance manifest.
  • Prototype-only diagnostics are reserved for explicit unsupported envelopes or internal failures and cannot stand in for known FS behavior.
  • Complete family-wide FS Diagnostic Compatibility remains visible as a final Compatibility Gate, not inferred from a few sample codes.

Decision inputs

Issues #2, #5, #15, and #16; ADRs 0004, 0005, 0008, 0014, and 0016.

This issue inherits the corpus-neutral acceptance policy in #8.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the corpus-neutral acceptance policy in #8, then read the blocking issues #25 and #26 and ADRs 0004, 0005, 0008, 0014, and 0016. Trace how the generic conformance manifest and Compatibility Oracle cases are organized. Done means all listed diagnostic policy behaviors and family-wide FS compatibility gates are represented without prototype substitutions.

Written by the indexing model from the issue text.

Assessment

Tech stack
fsharp
Domain
compilers, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.