Map assembly source instructions to emitted bytes and relocations

Aperta
#71 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
28/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java, rust

Direzione di ricerca

Start by reading assembler/src/ast.rs and assembler/src/assembler.rs to see how source spans and branch relaxation are currently represented, plus object/src/core/reloc.rs for relocation records. Check the upstream prerequisites first — Whale#43, Whale#77 and Whale#138 define the mapping contract, and this repo's issues #65 and #70 are dependencies — since the issue explicitly forbids inventing the missing upstream semantics. Done means the contract fields (source span, section, post-relaxation offset/length, relocation IDs) are consumed, unavailable mappings degrade without false locations, and tests cover repeated instructions, changed branch lengths, section switches and unresolved externals.

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

Descrizione

assembler blocked upstream enhancement help wanted object priority low whale

Problem / current evidence

The audited assembler does not publish a stable source-to-final-byte map. Branch relaxation, sections and relocations make it unsafe to infer offsets from printed tokens or instruction counts.

Code and contract references

Scope / proposed contract

After Whale exposes source spans and final encoding ranges, consume that mapping to link an instruction to bytes and relocation records. The upstream mapping contract is a prerequisite, not an IDE-side guess.

Completion criteria

  • Define required upstream fields: source identity/span, section identity, final offset/length and optional relocation IDs.
  • Use post-relaxation byte ranges and account for directives/padding that are not instructions.
  • Handle unavailable/partial mappings without assigning a misleading source location.
  • Selecting source or byte range highlights the corresponding supported region.
  • Test repeated instructions, changed branch lengths, section switches and unresolved external relocations.

Dependencies and boundaries

  • Depends on #65.
  • Depends on #70.
  • Upstream prerequisites / contract coordination: Whale#43, Whale#77, Whale#138.
  • Blocked upstream: implement only once the prerequisite data/behavior described in this issue exists. Do not manufacture missing compiler semantics or report an unimplemented capability as supported.
  • Ecosystem index: #49; existing foundations: #8.

Difficulty

High — spans compiler contracts, process/debugger lifecycle or structured inspection.

Audit baseline: Wave 509a1e46; Whale e3a12d08; Vex 71f29daa; WfP 2804fc02. This issue records source-audit findings and proposed work; no implementation or new execution is claimed. The checks above are future acceptance criteria. Prefer small fixtures and targeted validation; full builds or real debugger/IDE sessions should be explicit and necessary.

Lingua principale
Java
Stelle
0
Fork
3
Merge medio
8h 8m
PR unite (30g)
1

Preparare l'ambiente

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 wavefnd/wave-for-platform

Tutte le issue di wavefnd/wave-for-platform

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.