Inverted CheckRuleFiles condition in SpeechRules::replace_single_char causes unicode-full.yaml to reload when CheckRuleFiles is "None"
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 84/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- accessibility
Direzione di ricerca
Leggi src/speech.rs e confronta la condizione CheckRuleFiles in SpeechRules::replace_single_char con i controlli in SpeechRules::update e read_files. Modifica la condizione come descritto nell’issue, poi esegui i test pertinenti per il caricamento dei file di regole e la sostituzione di singoli caratteri. Il lavoro è completato quando "None" ignora i timestamp dei file e "All" continua a rilevare le modifiche ai file.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
In src/speech.rs, SpeechRules::replace_single_char has an inverted equality check when computing should_ignore_file_time:
let should_ignore_file_time = pref_manager.pref_to_string("CheckRuleFiles") == "All";
Every other rule loader in src/speech.rs (such as SpeechRules::update and read_files) uses != "All":
let should_ignore_file_time = pref_manager.pref_to_string("CheckRuleFiles") != "All";
Impact
- When
CheckRuleFiles: "None"(recommended for environments where rule files are static or loaded from in-memory archives/zip files):should_ignore_file_timeevaluates tofalseinstead oftrueinsidereplace_single_char.is_file_up_to_datechecks the file's modification timestamp on every character lookup that falls back tounicode-full.yaml(such as Mathematical Italic characters𝑥, 𝑎, 𝑏, 𝑐after canonicalization).- In environments where rule files are backed by an in-memory filesystem or lack valid modification timestamps (returning
UNIX_EPOCH),is_file_up_to_datereturnsfalseon every call, causing MathCAT to re-parse the ~6,500-entryunicode-full.yamlfile on every single character lookup (~30ms per character on mobile devices, adding 200–480ms of latency per expression or navigation step).
- When
CheckRuleFiles: "All":should_ignore_file_timeevaluates totrue, so edits tounicode-full.yamlare ignored instead of being reloaded.
Proposed Fix
In src/speech.rs inside SpeechRules::replace_single_char, change == "All" to != "All":
- let should_ignore_file_time = pref_manager.pref_to_string("CheckRuleFiles") == "All";
+ let should_ignore_file_time = pref_manager.pref_to_string("CheckRuleFiles") != "All";
- Lingua principale
- Rust
- Stelle
- 131
- Fork
- 97
- Merge medio
- 21h 45m
- PR unite (30g)
- 95
Preparare l'ambiente
- 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 daisy/MathCAT
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
daisy/MathCAT#946 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di daisy/MathCAT
Issue simili
-
area:schema documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
ElectronicWave/Elemental#252 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dekobon/big-code-analysis#1887 ·
I maintainer di solito rispondono entro 1 giorno
-
Shell中文符号输入异常Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno