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

Looking for feedback on an upcoming winnow API change #2

Open
epage opened this issue Jun 30, 2023 · 0 comments
Open

Looking for feedback on an upcoming winnow API change #2

epage opened this issue Jun 30, 2023 · 0 comments
Labels
A-parsing Area: Related to the parsing user input C-question Category: Further information is requested C-upstream Category: Issue for a dependency, will be fixed upstream

Comments

@epage
Copy link

epage commented Jun 30, 2023

When developing winnow, I found that certain behavior had a dramatic performance impact (e.g. using Located). My theory on the root cause was that the slowdown is because of how much bigger the return type of parsers gets. winnow-rs/winnow#268 tries to change the API to allow people to reduce the size of their return types. In that PR, I've made comments on the code that highlight what the impact of this change is.

This is a major change going from a pure-functional API to more imperative (while still allowing a mostly declarative use). It allows for a new class of bugs but prevents a different class.

What I'm wanting to understand is what users of winnow think of this API, ranging from "its good" to "if the gains are there" to "I'd drop winnow.

@simonsan simonsan added C-question Category: Further information is requested C-upstream Category: Issue for a dependency, will be fixed upstream A-parsing Area: Related to the parsing user input labels Aug 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-parsing Area: Related to the parsing user input C-question Category: Further information is requested C-upstream Category: Issue for a dependency, will be fixed upstream
Projects
None yet
Development

No branches or pull requests

2 participants