Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIMD Optimizations #114

Open
epage opened this issue Feb 1, 2023 · 3 comments
Open

SIMD Optimizations #114

epage opened this issue Feb 1, 2023 · 3 comments
Labels
A-combinator Area: combinators A-input Area: input / parsing state C-enhancement Category: Raise on the bar on expectations

Comments

@epage
Copy link
Collaborator

epage commented Feb 1, 2023

Some past nom suggestions:

The question is what should the API look like, how do we handle people who don't want the compile time hit, etc

@epage epage added A-combinator Area: combinators C-enhancement Category: Raise on the bar on expectations A-input Area: input / parsing state labels Feb 1, 2023
@epage
Copy link
Collaborator Author

epage commented Feb 28, 2023

@VorpalBlade
Copy link
Contributor

It would be nice to see aho-corasick used for take_till with a set of literals, not just memchr for take_until. That would be a breaking change (without specialisation, at least) though.

@epage
Copy link
Collaborator Author

epage commented Jun 27, 2024

Hadn't noted it here but I've found that any discussion of SIMD or advanced algorithms will need a prototype with performance numbers before we can consider how we might want to redesign things to support it.

The problem we had was we thought "why use memchr to look for a string and instead uses memmem which was designed for this"? While memmem works well for a lot of regex-like cases, for parsing it tanked our performance numbers, see #86 and #317.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-combinator Area: combinators A-input Area: input / parsing state C-enhancement Category: Raise on the bar on expectations
Projects
None yet
Development

No branches or pull requests

2 participants