Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Unify surrogate/no-surrogate mapping behind a single abstraction

Ouverte
#1,581 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
35/100
Type d'issue
Refactorisation
Clarté
Plutôt claire
Activité
Calme
Stack technique
rust

Piste de recherche

Commencez par lire la gestion actuelle des surrogate dans whp.rs et le module surrogate, puis examinez la PR #1578 et sa discussion de revue. Définissez une abstraction de mapping unique couvrant à la fois SurrogateProcess et le mode no-surrogate, vérifiez si WHvMapGpaRange2 prend en charge GetCurrentProcess(), et assurez-vous que whp.rs appelle une méthode map(...) sans branchement spécifique au mode.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

kind/enhancement kind/refactor lifecycle/confirmed

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:

  1. Enum / trait abstraction: Make SurrogateProcess an enum (or dyn Trait) with two variants — one backed by a real surrogate process (WHvMapGpaRange2) and one that maps from the host process directly (WHvMapGpaRange). The NoSurrogateGuard could be folded into the no-surrogate variant.

  2. 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 whether WHvMapGpaRange2 with GetCurrentProcess() 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.

Langage dominant
Rust
Étoiles
4.7k
Forks
217
Merge moyen
2 j 55 min
PR mergées (30 j)
56

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de hyperlight-dev/hyperlight

Toutes les issues de hyperlight-dev/hyperlight

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.