Relooper can exhaust the stack when processing large functions
I maintainer di solito rispondono entro 5 giorni
@arbelonson-source ci sta già lavorando.
Dal 15/9/2026.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
Direzione di ricerca
Read the relooper implementation and trace how it processes sequential CFG nodes after a Simple block; the issue does not name a file or test path. Reproduce the stack overflow with the blake_256 test case, then verify that sequential nodes are processed without tail-recursive calls and the test completes without requiring a larger-stack thread.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Our relooper implementation is tail-recursive, meaning that as we process nodes in the CFG we recursively call into relooper to process the subsequent nodes. In working on https://github.com/immunant/c2rust/pull/1827 I found that the threads used when running tests have a small enough stack size that we overflow the stack when trying to transpile the blake_256 test case. In that PR I work around it by spawning a thread with a larger stack, but that's not a robust solution. The proper fix here is to tweak relooper to use a loop when processing sequential nodes instead of tail-recursing after each Simple block. Should be straightforward to implement but I want to split it off of #1827 to avoid bloating that PR.
- Lingua principale
- Rust
- Stelle
- 4.8k
- Fork
- 318
- Merge medio
- 7g 11h
- PR unite (30g)
- 10
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 immunant/c2rust
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
immunant/c2rust#621 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
I maintainer di solito rispondono entro 5 giorni
Tutte le issue di immunant/c2rust
Issue simili
-
C-bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rust-lang/rust-analyzer#23501 ·
I maintainer di solito rispondono entro 1 giorno
-
Streamable HTTP client: a 401 or 403 with a JSON-RPC error body and no WWW-Authenticate loses its HTTP statusForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug P2 ready for work T-security T-transport
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/rust-sdk#1339 ·
I maintainer di solito rispondono entro 3 giorni
-
scripts/gen-gallery.py:118: a ready session now reports in_progress, so SESSION_READY_OLD can goApertanightly-audit
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
antithesishq/snouty#396 ·
I maintainer di solito rispondono entro 1 giorno
-
French BIP39 wordlist starts with a UTF-8 BOM, so generated French mnemonics carry U+FEFF and derive a non-canonical seedForse già presa @Kshot3000 l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
ergoplatform/sigma-rust#976 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno