Lower mutable scalar globals through Whale tracked global storage
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 32/100
Direzione di ricerca
Start by reading whale/src/codegen/mod.rs and the upstream ir/src/global_storage.rs API, then discuss the unresolved semantics with @LunaStev before implementing anything. Confirm how frontend types and initializers map to tracked module-owned storage, including execution lifetime and uninitialized, readonly, and memory-budget behavior. Done means multiple functions share the same initialized global while immutable constants, local shadowing, and unsupported globals remain unchanged.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Motivation
LLVM accepts a mutable static X and X+=1, while Whale rejects mutable global storage. Official Whale a48f74ad now has addressable GlobalStorage distinct from compile-time constants, with initialization and readonly validation. Wave still locks the older API.
Starting point: whale/src/codegen/mod.rs:23.
Validation
Audited canonical Wave 540728c2eb6cc12f5c69c3fb3fdb96e07ba059a4 (0.0.1-alpha-dev), whose tree matches the local checkout. Validation: Executed mutable-global capability probe and inspected official GlobalStorage API. Executed compiler probes use the matching checkout-built compiler and std on Linux amd64 (Rust 1.89.0 / LLVM 21.1.8). Source/header or mocked checks are not native execution on another OS.
Scope
After #996, map the approved scalar global subset to tracked module-owned storage. Use frontend types/initializers and clarify per-execution lifetime/state expectations before implementation.
Related: #996, #874. These links do not claim those broader or completed scopes are unfinished.
Design discussion required
This issue records a proposal or an unresolved contract; it is not approval to choose new semantics. Please mention @LunaStev to discuss the design before starting implementation.
Completion criteria
- Multiple functions observe the same initialized global within an execution.
- Uninitialized/readonly/memory-budget behavior follows verified upstream semantics.
- Immutable constants, local shadowing and unsupported globals retain existing behavior.
- Lingua principale
- Rust
- Stelle
- 56
- Fork
- 21
- Merge medio
- 23h 20m
- PR unite (30g)
- 45
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di wavefnd/Wave
-
Reject unrepresentable POSIX listener descriptors before Unix-domain acceptForse già presa @ShahadatTest l’ha presa 6 giorni fa. Apertabug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
wavefnd/Wave#1082 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Preserve expression assembly result types when recording HIR conversionsForse già presa @hiyouwhatsapp l’ha presa 2 giorni fa. Apertabug help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
bug help wanted
Difficoltà 4/5 3-5 giorni Idoneità per principianti 53/100
I maintainer di solito rispondono entro 1 giorno
-
Preserve the previous build output when writing its Cargo receipt failsForse già presa @hiyouwhatsapp l’ha presa 2 giorni fa. Apertabug build help wanted
Difficoltà 4/5 3-5 giorni Idoneità per principianti 56/100
I maintainer di solito rispondono entro 1 giorno
-
Reconcile obsolete staging assets before verifying a new Nightly generationForse già presa @hiyouwhatsapp l’ha presa 2 giorni fa. Apertabug ci help wanted
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di wavefnd/Wave
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
swc-project/swc-ai-issues#164 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
pop-os/cosmic-player#367 ·
-
good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
servo/rust-smallvec#873 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
messense/dav-server-rs#82 ·
I maintainer di solito rispondono entro 1 giorno