TheAngryByrd / TheAngryByrd/fsharp2

Implement typed declaration checkpoints and semantic fingerprints

Open
#34 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: #31, #32, and #33

Outcome

Create the immutable typed declaration graph and fingerprint contract that connects checking, lowering, diagnostics, and incremental compilation.

Acceptance criteria

  • Typed declarations have stable identities, explicit semantic dependencies, and file-level checkpoints that preserve F# source order.
  • Exported, implementation, debug, and diagnostic fingerprints are separate versioned values.
  • A body-only edit can change implementation without changing exported meaning; public or inline edits change consumer-visible fingerprints; trivia and debug-only edits remain distinguishable.
  • Unknown semantic impact is represented explicitly and widens invalidation conservatively.
  • Typed nodes retain necessary ranges and resolved symbols but contain no SRM handles, metadata tokens, row offsets, cache serializer objects, or final artifact identities.
  • Clean and reused checking produce equivalent typed graphs and diagnostics.
  • Fingerprint evidence remains independent of cache layout.

Decision inputs

Issues #17 and #19; ADRs 0013, 0018, 0022, and 0023.

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 by reading parent issue #8, blockers #31, #32, and #33, then review issues #17 and #19 and ADRs 0013, 0018, 0022, and 0023. Use the acceptance criteria as the completion checklist: equivalent clean and reused checking, separated fingerprints, conservative unknown impact, source-order checkpoints, and typed nodes independent of cache and final artifact details.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.