TheAngryByrd / TheAngryByrd/fsharp2

Implement the metadata-only target-reference and F# signature importer

Open
#30 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

Build the NativeAOT-safe target-reference universe used by name resolution and typing.

Acceptance criteria

  • Public metadata APIs import assembly and module identity, nesting, type forwarders, types, members, accessibility, attributes, generics, constraints, and signatures.
  • Independently authored decoding imports the F# semantic signature data required for cross-assembly F# consumption.
  • The importer never loads or executes target assemblies and does not depend on runtime reflection types, the official compiler, or FSharp.Compiler.Service.
  • Results depend on supplied reference content and options rather than the compiler host target framework; same-path content changes invalidate correctly.
  • Malformed, missing, duplicate, or incompatible metadata fails safely with structured diagnostics.
  • The production importer remains separate from #17's test-only metadata envelope inspector.
  • Strict trimming and NativeAOT publication remain warning-free.

Decision inputs

Issues #4, #5, and #17; ADRs 0002, 0009, 0010, 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 #25 and #26, decision inputs #4, #5, and #17, and ADRs 0002, 0009, 0010, and 0023. Done means a NativeAOT-safe, metadata-only importer meets all listed acceptance criteria, including F# signature decoding, safe diagnostics, content-based invalidation, separation from #17, and warning-free trimming and publication.

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
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.