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

Aperta
#30 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
28/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
fsharp
Ambito
compilers

Direzione di ricerca

Inizia leggendo l’issue principale #8, i blocker #25 e #26, gli input decisionali #4, #5 e #17 e gli ADR 0002, 0009, 0010 e 0023. Il lavoro è completato quando un importer sicuro per NativeAOT e basato esclusivamente sui metadati soddisfa tutti i criteri di accettazione elencati, inclusi il decoding delle firme F#, diagnostica sicura, invalidazione basata sul contenuto, separazione da #17 e trimming e pubblicazione senza avvisi.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

wayfinder:task

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.

Lingua principale
F#
Stelle
0
Fork
0
Merge medio
3h 15m
PR unite (30g)
1

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di TheAngryByrd/fsharp2

Tutte le issue di TheAngryByrd/fsharp2

Issue simili

Altre issue su Compilers

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.