[streams] Separate out exported abstract ops from internal ones (#372)

Ideally, other specs should only refer to a few of our abstract ops, e.g.:

- AcquireReadableStreamReader ( stream )
- CloseReadableStream ( stream )
- EnqueueInReadableStream ( stream, chunk )
- ErrorReadableStream ( stream, e )
- IsReadableStream ( x )
- IsReadableStreamLocked ( stream )
- TeeReadableStream ( stream, shouldClone )

plus maybe a few more. Others are "implementation details", e.g. FinishClosingReadableStream ( stream ) or RequestReadableStreamPull ( stream ) or similar. Additionally, for each of the above, there are some "usage details" that are important. E.g. see the intro of https://streams.spec.whatwg.org/#enqueue-in-readable-stream

A few strategies:

- Separate sections, e.g. exported abstract ops and internal abstract ops
- Some kind of tag, like that proposed for #371 
- A separate "for other specifications" section describing the usage of exported abstract ops
  - Pro: authors of other specs probably don't care to actually read the details of e.g. EnqueueInReadableStream
  - Con: duplication; keeping in sync; is this normative or non-normative?
- Some kind of toggle switch that gives you a "for other spec authors" view, which hides any non-exported abstract ops (and maybe hides the algorithms for the exported ones?)

Thoughts appreciated. Probably especially from @annevk as Fetch editor.

---
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/issues/372

Received on Thursday, 2 July 2015 06:42:39 UTC