TheAngryByrd / TheAngryByrd/fsharp2

Emit generic ECMA-335 metadata and IL from symbolic fragments

Open
#38 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: #30, #34, #35, and #37

Outcome

Complete the selected symbolic-fragment and fresh-link architecture for generic CLI metadata and executable IL.

Acceptance criteria

  • Lowered declarations and methods become immutable symbolic fragments containing stable symbols, labels, locals, exception regions, instructions, and debug contributions.
  • Fragments never contain final handles, tokens, heap offsets, method offsets, RVAs, or PE/PDB identities.
  • A fresh deterministic public-SRM linker plans rows and layout, resolves references, encodes signatures and bodies, and validates all symbolic operands.
  • Assemblies, modules, nested and generic types, fields, methods, properties, events, interfaces, constraints, calls, locals, and exception regions are emitted correctly.
  • PEReader, metadata readers, IL verification, runtime consumers, and cross-root deterministic repeats pass.
  • Output follows the supplied target references and options rather than the host target framework.
  • The selected #7 boundary remains replaceable without leaking encoder state upstream.

Decision inputs

Issue #7; ADRs 0002, 0006, 0009, and 0021.

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 #30, #34, #35, and #37, then review issue #7 and ADRs 0002, 0006, 0009, and 0021. Done means meeting the listed symbolic-fragment and fresh-link acceptance criteria, including deterministic output and passing PEReader, metadata, IL verification, runtime, and cross-root checks.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.