Skip to content

Commit

Permalink
combine regexes into passes
Browse files Browse the repository at this point in the history
  • Loading branch information
Fogapod committed Feb 16, 2024
1 parent 485205f commit 7555c23
Show file tree
Hide file tree
Showing 29 changed files with 2,792 additions and 2,428 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ Cargo.lock

# flamegraph script
perf.data
perf.data.old
flamegraph.svg
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ include = [
rand = "0.8"

# pattern definition
regex = { version ="1.10", features = ["perf-dfa-full"] }
# excluded a couple unicode features
regex-automata = { version = "0.4", default-features = false, features = ["std", "perf", "meta", "nfa", "dfa", "hybrid", "unicode-case", "unicode-perl", "unicode-word-boundary"] }

# logging
log = "0.4"
Expand Down
155 changes: 80 additions & 75 deletions benches/any.ron
Original file line number Diff line number Diff line change
@@ -1,77 +1,82 @@
(
patterns: {
// highly nested
"a": {"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Original": ()},
]},
]},
]},
]},
]},
]},
]},
]},
]},
// many items
"o": {"Any": [
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
]},
},
accent: [
(
name: "",
rules: {
// highly nested
"a": {"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Any": [
{"Original": ()},
]},
]},
]},
]},
]},
]},
]},
]},
]},
// many items
"o": {"Any": [
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
{"Original": ()},
]},
},
),
],
)
27 changes: 16 additions & 11 deletions benches/concat.ron
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
(
patterns: {
// use \w+ and \W+ to vary string lengths
r"\w+": {"Concat": (
{"Original": ()},
{"Original": ()},
)},
r"\W+": {"Concat": (
{"Original": ()},
{"Original": ()},
)},
},
accent: [
(
name: "",
rules: {
// use \w+ and \W+ to vary string lengths
r"\w+": {"Concat": (
{"Original": ()},
{"Original": ()},
)},
r"\W+": {"Concat": (
{"Original": ()},
{"Original": ()},
)},
},
),
]
)
15 changes: 10 additions & 5 deletions benches/literal.ron
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
(
patterns: {
"a": {"Literal": "A"},
"o": {"Literal": "short"},
r"\d+": {"Literal": "veryLongStringaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1234123412344rhrkghsghkgshal;ghaslfnkhsgkshgshgsjdgjkdngkjgh"},
},
accent: [
(
name: "",
rules: {
"a": {"Literal": "A"},
"o": {"Literal": "short"},
r"\d+": {"Literal": "veryLongStringaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1234123412344rhrkghsghkgshal;ghaslfnkhsgkshgshgsjdgjkdngkjgh"},
},
),
]
)
11 changes: 8 additions & 3 deletions benches/lower.ron
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
(
patterns: {
r"\w+": {"Lower": {"Lower": {"Lower": {"Lower": {"Lower": {"Original": ()}}}}}},
},
accent: [
(
name: "",
rules: {
r"\w+": {"Lower": {"Lower": {"Lower": {"Lower": {"Lower": {"Original": ()}}}}}},
},
),
]
)
15 changes: 10 additions & 5 deletions benches/original.ron
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
(
patterns: {
// varying string lenghts
r"\w+": {"Original": ()},
r"\W+": {"Original": ()},
},
accent: [
(
name: "",
rules: {
// varying string lenghts
r"\w+": {"Original": ()},
r"\W+": {"Original": ()},
},
),
]
)
11 changes: 8 additions & 3 deletions benches/upper.ron
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
(
patterns: {
r"\w+": {"Upper": {"Upper": {"Upper": {"Upper": {"Upper": {"Original": ()}}}}}},
},
accent: [
(
name: "",
rules: {
r"\w+": {"Upper": {"Upper": {"Upper": {"Upper": {"Upper": {"Original": ()}}}}}},
},
),
]
)
57 changes: 31 additions & 26 deletions benches/weights.ron
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
(
patterns: {
"a": {"Weights": {1: {"Literal": "single"}}},
"o": {"Weights": {
0: {"Weights": {1: {"Literal": "many variants"}}},
1: {"Weights": {1: {"Literal": "1"}}},
2: {"Weights": {1: {"Literal": "2"}}},
3: {"Weights": {1: {"Literal": "3"}}},
4: {"Weights": {1: {"Literal": "4"}}},
5: {"Weights": {1: {"Literal": "5"}}},
6: {"Weights": {1: {"Literal": "6"}}},
7: {"Weights": {1: {"Literal": "7"}}},
8: {"Weights": {1: {"Literal": "8"}}},
9: {"Weights": {1: {"Literal": "9"}}},
10: {"Weights": {1: {"Literal": "10"}}},
11: {"Weights": {1: {"Literal": "11"}}},
12: {"Weights": {1: {"Literal": "12"}}},
13: {"Weights": {1: {"Literal": "13"}}},
14: {"Weights": {1: {"Literal": "14"}}},
15: {"Weights": {1: {"Literal": "15"}}},
16: {"Weights": {1: {"Literal": "16"}}},
17: {"Weights": {1: {"Literal": "17"}}},
18: {"Weights": {1: {"Literal": "18"}}},
19: {"Weights": {1: {"Literal": "19"}}},
20: {"Weights": {1: {"Literal": "20"}}},
}},
},
accent: [
(
name: "",
rules: {
"a": {"Weights": {1: {"Literal": "single"}}},
"o": {"Weights": {
0: {"Weights": {1: {"Literal": "many variants"}}},
1: {"Weights": {1: {"Literal": "1"}}},
2: {"Weights": {1: {"Literal": "2"}}},
3: {"Weights": {1: {"Literal": "3"}}},
4: {"Weights": {1: {"Literal": "4"}}},
5: {"Weights": {1: {"Literal": "5"}}},
6: {"Weights": {1: {"Literal": "6"}}},
7: {"Weights": {1: {"Literal": "7"}}},
8: {"Weights": {1: {"Literal": "8"}}},
9: {"Weights": {1: {"Literal": "9"}}},
10: {"Weights": {1: {"Literal": "10"}}},
11: {"Weights": {1: {"Literal": "11"}}},
12: {"Weights": {1: {"Literal": "12"}}},
13: {"Weights": {1: {"Literal": "13"}}},
14: {"Weights": {1: {"Literal": "14"}}},
15: {"Weights": {1: {"Literal": "15"}}},
16: {"Weights": {1: {"Literal": "16"}}},
17: {"Weights": {1: {"Literal": "17"}}},
18: {"Weights": {1: {"Literal": "18"}}},
19: {"Weights": {1: {"Literal": "19"}}},
20: {"Weights": {1: {"Literal": "20"}}},
}},
},
),
]
)
Loading

0 comments on commit 7555c23

Please sign in to comment.