TheAngryByrd / TheAngryByrd/fsharp2

Implement declaration-granular incremental compilation and reusable state

Open
#41 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: #34, #38, and #40

Outcome

Implement Warm Compilation through the persistent NativeAOT service, declaration-aware semantic queries, and versioned memory and content-addressed disk caches.

Acceptance criteria

  • Query keys include complete source, reference, option, toolchain, schema, and artifact-affecting inputs.
  • Explicit declaration dependencies and file checkpoints drive reuse and conservative invalidation; the final link remains fresh.
  • Exported, implementation, debug, and diagnostic fingerprints explain every reuse, recheck, re-lower, and re-emit decision.
  • Standalone clean compilation is the correctness reference for every reused result.
  • Service ownership, epochs, concurrency, cancellation, protocol negotiation, stale-daemon recovery, compare-and-swap state publication, isolation, integrity, eviction, and restart reuse are defined and tested.
  • Failed requests do not advance last-successful state or artifacts; uncertainty widens invalidation.
  • Cold Compilation bypasses both cache levels, cache layout stays private, and structured evidence satisfies #19 without treating MSBuild skips as Warm Compilation.

Decision inputs

Issues #12 and #19; ADRs 0003, 0013, 0016, 0018, and 0022.

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 parent issue #8, blockers #34, #38, and #40, then read ADRs 0003, 0013, 0016, 0018, and 0022 alongside the persistent NativeAOT service, semantic-query, cache, and compilation requirements. No files or tests are named; done means the listed acceptance criteria are defined and tested, with clean compilation remaining the correctness reference.

Written by the indexing model from the issue text.

Assessment

Tech stack
fsharp
Domain
build-system, compilers, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.