cpufeatures: `cfg_select!`-like macro
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- performance
Direzione di ricerca
Parti dal punto di ingresso cpufeatures::new! e confronta il comportamento richiesto con la semantica della macro cfg_select! di Rust. Traccia il modo in cui vengono lette le verifiche delle feature generate, quindi definisci e testa un’interfaccia di selezione ordinata che eviti letture atomiche ripetute e preservi il fallback; il lavoro è completato quando le combinazioni di feature richieste selezionano il ramo corretto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
More than once I wrote a piece of code that has the following shape:
cpufeatures::new!(has_avx512f_vaes, "avx512f", "vaes");
if has_avx512f_vaes::get() {
return /* .. */;
}
cpufeatures::new!(has_avx2_vaes, "avx2", "vaes");
if has_avx2_vaes::get() {
return /* .. */;
}
cpufeatures::new!(has_aes_sse41, "aes", "sse4.1");
if has_aes_sse41::get() {
return /* .. */;
}
// Fallback
It'd be great to have something that can replace multiple individual atomic reads with a single one in such cases.
The shape of cfg_select! seems perfect for this.
- Lingua principale
- Rust
- Stelle
- 674
- Fork
- 170
- Merge medio
- 1g 12h
- PR unite (30g)
- 10
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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 RustCrypto/utils
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
RustCrypto/utils#1546 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
RustCrypto/utils#1537 · 7 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
RustCrypto/utils#1534 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
RustCrypto/utils#1510 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
RustCrypto/utils#1509 ·
Tutte le issue di RustCrypto/utils
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
TheLarkInn/aipm#2413 ·
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
todo:ticket
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
taikoxyz/taiko-mono#22168 · 1 commento ·