[whatwg/encoding] Specify the usage of token queues ("streams") for I/O (#221)

For a long time, token queues (formerly "streams") had been defined as simple data structures, with no reference to I/O except for a few uses of a "wait until" operation not defined anywhere and a comment on the spec's source saying that the read operation blocks on I/O.

This change introduces the concept of "blocking tokens", which are allowed to block when being read from the token queue. This makes it possible for token queues to be used as a direct spec representation of implementation-internal I/O streams, while all other operations done on token queues use immediate tokens.

This pull request depends on #215, which introduces the name "token queues" and defines the implicit conversions with strings and byte sequences.

<hr>

<!--
Thank you for contributing to the Encoding Standard! Please describe the change you are making and complete the checklist below if your change is not editorial.
-->

Although this change isn't editorial, all implementations are in fact using token queues for I/O, but I haven't checked yet if my changes conflict with the implementations.

- [ ] At least two implementers are interested (and none opposed):
   * …
   * …
- [ ] [Tests](https://github.com/web-platform-tests/wpt) are written and can be reviewed and commented upon at:
   * …
- [ ] [Implementation bugs](https://github.com/whatwg/meta/blob/master/MAINTAINERS.md#handling-pull-requests) are filed:
   * Chrome: …
   * Firefox: …
   * Safari: …

(See [WHATWG Working Mode: Changes](https://whatwg.org/working-mode#changes) for more details.)


<!--
    This comment and the below content is programatically generated.
    You may add a comma-separated list of anchors you'd like a
    direct link to below (e.g. #idl-serializers, #idl-sequence):

    Don't remove this comment or modify anything below this line.
    If you don't want a preview generated for this pull request,
    just replace the whole of this comment's content by "no preview"
    and remove what's below.
-->
***
<a href="https://whatpr.org/encoding/221.html" title="Last updated on Jun 25, 2020, 11:57 AM UTC (77709e0)">Preview</a> | <a href="https://whatpr.org/encoding/221/e11e447...77709e0.html" title="Last updated on Jun 25, 2020, 11:57 AM UTC (77709e0)">Diff</a>
You can view, comment on, or merge this pull request online at:

  https://github.com/whatwg/encoding/pull/221


-- Commit Summary --

  * Rename Encoding's "streams" to "token queues"
  * Export token queue and its algorithms.
  * Don't export prepend.
  * Adds implicit conversions between token queues and strings/byte sequences.
  * Merge remote-tracking branch 'upstream/master' into token-queues
  * Specify the usage of token queues for I/O

-- File Changes --

    M encoding.bs (362)

-- Patch Links --

https://github.com/whatwg/encoding/pull/221.patch

https://github.com/whatwg/encoding/pull/221.diff


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/encoding/pull/221

Received on Thursday, 25 June 2020 11:57:43 UTC