[FR] Support RE2 regular expression engine

Aperta
#1,650 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

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
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp

Direzione di ricerca

Non vengono indicati file, test o punti di ingresso. Inizia individuando la gestione attuale di std::regex e l’API rivolta agli embedder, quindi determina come potrebbe essere fornito un motore RE2 alternativo. Il lavoro è completato quando le espressioni non valide segnalano un errore e impediscono l’esecuzione dei benchmark.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Is your feature request related to a problem? Please describe.
When given an invalid regular expression, Chromium perftests using this library crash.

This is because Chromium compiles google_benchmark with std::regex and with exceptions disabled, and so there's no way for it to recover from a regular expression parsing error.

Describe the solution you'd like
When given an invalid regular expression, an error should be reported and no benchmarks should be run.

The Chromium project already incorporates the re2 regular expression library, so if it was possible for the embedder to provide the re2 engine then this problem could be solved.

Describe alternatives you've considered
Chromium could use the POSIX regex library, but it wouldn't work on Windows. Chromium could use the POSIX regex library on non-Windows platforms, but then behaviour would differ between platforms, which causes a lot of problems.

Additional context
N/A

Lingua principale
C++
Stelle
10.5k
Fork
1.8k
Merge medio
1g 17h
PR unite (30g)
30

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di google/benchmark

Tutte le issue di google/benchmark

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.