Opened 15 years ago
Closed 15 years ago
#228 closed enhancement (fixed)
avoid recompilation of regular expressions, at least for simple cases
Reported by: | felix winkelmann | Owned by: | felix winkelmann |
---|---|---|---|
Priority: | not urgent at all | Milestone: | |
Component: | compiler | Version: | |
Keywords: | regex compilation syntax | Cc: | |
Estimated difficulty: |
Description
Compiler syntax for string-(search|match)[-positions]
with literal or quoted first argument could transform into code that uses a "latch":
(string-XXX LIT ...) ~> (let* ((T1 '#(#f)) (T2 (##sys#slot T1 0))) (string-XXX (or T2 (let ((T3 (regexp LIT))) (##sys#setslot T1 0 T3) T3)) ...))
Note: See
TracTickets for help on using
tickets.
The internal routine used to canonicalize regular-expression arguments now keeps a global cache which speeds up things considerably (commit 5760e2dc26dcc5cc24a3d09b6042e3acfb49251c, branch experimental).