Lower computation expressions, sequences, quotations, and resumable code

Aperta
#36 0 commenti 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
20/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
fsharp
Ambito
compilers

Direzione di ricerca

Inizia con l’issue principale #8 e l’unblocker #35, quindi leggi le issue #5, #6 e #18, oltre agli ADR 0006, 0008, 0015 e 0027. Il lavoro è completo quando i comportamenti computation-expression, sequence, quotation e resumable-code elencati superano i controlli del compilatore, del runtime, del consumo downstream di F#, di portable-PDB, di NativeAOT, di dynamic e della modalità optimized-mode.

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

Descrizione

wayfinder:task

Parent: #8
Blocked by: #35

Outcome

Implement the specialized F# translations that build on the core typed and lowered representations.

Acceptance criteria

  • Computation-expression syntax translates through general builder lookup and typing, including binding, return, combination, delay, loops, exception handling, resource use, custom operations, and applicative forms.
  • Sequence expressions and quotations preserve their specified semantic and metadata contracts.
  • Resumable-code and task-like state-machine lowering covers suspension, resumption, cancellation, exception paths, disposal, generic builders, and debug anchors.
  • Tests use multiple unrelated compiler-owned builders and state-machine programs; no production branch recognizes a library namespace, type, or member.
  • Generated code passes runtime, downstream F# consumption, portable-PDB, and NativeAOT consumer checks within the declared envelope.
  • Dynamic and optimized modes remain behaviorally compatible with the relevant compiler options.

Decision inputs

Issues #5, #6, and #18; ADRs 0006, 0008, 0015, and 0027.

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

Lingua principale
F#
Stelle
0
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

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.