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

Collected ABNF should be based on sender requirements for list expansion #192

Closed
mnot opened this issue Jan 17, 2019 · 7 comments
Closed

Comments

@mnot
Copy link
Member

mnot commented Jan 17, 2019

Currently, the collected ABNF in each draft uses the recipient version of the #rule expansion. I'm wondering whether it should use the stricter, simpler sender version, as that's closer to the "ideal on-the-wire" form.

@reschke
Copy link
Contributor

reschke commented Feb 25, 2019

Before we do that, I'd like to get #164 done.

@reschke
Copy link
Contributor

reschke commented Mar 28, 2019

At the end of the day, we need to decide what the ABNF in general and the collected ABNF in particular are for.

My understanding was that we have the ABNF to guide people to write sane parsers, and have additional prose putting constraints on top. Putting the constraints into the grammar makes it useless for deriving parsers.

@mnot
Copy link
Member Author

mnot commented Mar 29, 2019

I think #211 is gathering data that will help this decision.

@mnot
Copy link
Member Author

mnot commented Sep 30, 2019

So, #164 done.

#211 showed that there aren't very many cases of really big prose requirements on top of ABNF (thankfully).

So, I think we're down to the original question; is ABNF for showing people how to write sane parsers, or what the "ideal" wire form is like?

Given the differences between the ABNF and what real-world parsers need to do to handle the Web (as evidenced by #128 -- and I think that's just the tip of the iceberg), I'd be more comfortable saying that it's for generation.

If we want it to be used for parsing, we'd need to a) convince people to actually use it to build their parsers (which they don't seem to want to do, largely), and b) align the ABNF with the reality of how those parsers work, -or- convince people to change their parsers to align with the ABNF (which I don't think is realistic).

@royfielding
Copy link
Member

I agree that it should be for generation, but it is also for what a recipient must accept for interop (e.g. obs-date):

https://httpwg.org/http-core/draft-ietf-httpbis-semantics-latest.html#http.date

Do we have a short way of saying both?

@mnot
Copy link
Member Author

mnot commented Jul 2, 2020

Discussed; agreed to switch collected ABNF to sender version (currently in 4.5.1).

@reschke reschke changed the title Collected ABNF Collected ABNF should be based on sender requirements for list expansion Jul 2, 2020
royfielding added a commit that referenced this issue Jul 7, 2020
Collected ABNF should be based on sender requirements for list expansion (#192)

Remember to recompile your local copy of bap (cd bap && make clean && make)
reschke added a commit that referenced this issue Jul 8, 2020
@reschke
Copy link
Contributor

reschke commented Jul 9, 2020

(still need to check new Vary expansion)

reschke added a commit that referenced this issue Jul 9, 2020
bap fix: list rule expansion for groups was not updated for 2019 style expansion (#192)
@reschke reschke closed this as completed Jul 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants