Unify surrogate/no-surrogate mapping behind a single abstraction
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- rust
- Ambito
- operating-systems
Direzione di ricerca
Inizia leggendo la gestione attuale dei surrogate in whp.rs e nel modulo surrogate, quindi esamina la PR #1578 e la relativa discussione di revisione. Definisci un'unica astrazione di mapping che copra sia SurrogateProcess sia la modalità no-surrogate, verifica se WHvMapGpaRange2 supporta GetCurrentProcess() e assicurati che whp.rs chiami un metodo map(...) senza diramazioni specifiche della modalità.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
PR #1578 adds a no-surrogate mode (HYPERLIGHT_MAX_SURROGATES=0) that uses WHvMapGpaRange instead of WHvMapGpaRange2. Currently whp.rs branches on Option<SurrogateProcess> to choose the mapping path.
Proposal
Unify the surrogate and no-surrogate paths so whp.rs doesn't need to know or care which mode is active. Two possible approaches:
-
Enum / trait abstraction: Make
SurrogateProcessan enum (ordyn Trait) with two variants — one backed by a real surrogate process (WHvMapGpaRange2) and one that maps from the host process directly (WHvMapGpaRange). TheNoSurrogateGuardcould be folded into the no-surrogate variant. -
Always use
WHvMapGpaRange2: Use the current process handle as the source when surrogates are disabled, eliminating the branch entirely. This needs validation — it's unclear whetherWHvMapGpaRange2withGetCurrentProcess()is a supported pattern.
Either way, the mapping call would move into the surrogate module so whp.rs just calls a single map(...) method.
Origin
Suggestion from @syntactically in PR #1578 review.
- Lingua principale
- Rust
- Stelle
- 4.7k
- Fork
- 214
- Merge medio
- 3g 5h
- PR unite (30g)
- 47
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
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 hyperlight-dev/hyperlight
-
lifecycle/needs-review
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
hyperlight-dev/hyperlight#1842 ·
I maintainer di solito rispondono entro 1 giorno
-
lifecycle/needs-review
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
hyperlight-dev/hyperlight#1836 ·
I maintainer di solito rispondono entro 1 giorno
-
lifecycle/needs-review
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
hyperlight-dev/hyperlight#1804 ·
I maintainer di solito rispondono entro 1 giorno
-
lifecycle/needs-review
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
hyperlight-dev/hyperlight#1787 ·
I maintainer di solito rispondono entro 1 giorno
-
lifecycle/confirmed
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
hyperlight-dev/hyperlight#1700 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di hyperlight-dev/hyperlight
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
HigherOrderCO/Bend#1294 ·
-
chore P0
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
todo:ticket
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
docs: CLAUDE.md version banner shows 1.4.0 instead of 1.5.0 (recurring drift, root cause unresolved)Apertaawaiting-response backend bug documentation enhancement P2 platform/linux qa safety
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
wildcard/caro#1520 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Liquid glass draws square corners on undecorated windows (cornerRadius without clipsToBounds)Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
tauri-apps/window-vibrancy#230 ·