Modify mask operators to remove explicit mask where it isn't needed
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 50/100
- Type d'issue
- Refactorisation
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- cpp
- Domaine
- performance
Piste de recherche
Locate the mask operators that currently call from_builtin, along with the from_raw and from_prechecked_builtin entry points. Determine which operations preserve valid mask bits without extra masking, update only those conversions, and verify that operators such as complement still remove unwanted bits.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The compact mask is a plain integer, which may be bigger than the bits actually being masked (e.g., 64-bit value for a mask of 40 bits).
The operators call from_builtin to convert the output of the operation to a mask, and in doing so this explicitly masks off the unwanted bits of the mask to make sure that the extraneous bits don't have some unintended side-effect. For example, calling ~ will set some of the out-of-bound bits to 1, which can introduce subtle issues.
But some operators are guaranteed to produce a valid output provided the inputs are valid. For example, given two masks of 40 bits each, their internal values will not contain any bits beyond position 40. Performing an AND will produce an output which also is limited to 40 bits. In such a case, rather than calling from_builtin, an alternative from_raw (or from_prechecked_builtin) could be called which omits the extra AND operation to mask off unwanted bits. This would be opt-in - only operators known to generate valid bits would call this.
- Langage dominant
- C++
- Étoiles
- 6
- Forks
- 2
- Merge moyen
- 2 j 1 h
- PR mergées (30 j)
- 17
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de intel/xvec
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 50/100
Les mainteneurs répondent en général sous 1 jour
-
C++29 extension
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
Les mainteneurs répondent en général sous 1 jour
-
C++29 extension
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
intel/xvec#32 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de intel/xvec
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 87/100
maplibre/maplibre-native#4822 ·
Les mainteneurs répondent en général sous 1 jour
-
bug-unconfirmed
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
ai_p2 comp-datalake
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
ClickHouse/ClickHouse#127437 ·
Les mainteneurs répondent en général sous 1 jour
-
Jupyter kernel leaks two file descriptors per cell; after ~100 cells every cell fails with "pipe() failed"Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour