@@ -24,8 +24,8 @@ and made implicit to achieve higher efficiencies and save resources.
2424An important dichotomy in CPython is unbuffered vs buffered streams. In
2525MicroPython, all streams are currently unbuffered. This is because all
2626modern OSes, and even many RTOSes and filesystem drivers already perform
27- buffering on their side. Adding another later of buffering is counter-
28- productive (an issue known as "bufferbloat") and spends precious memory.
27+ buffering on their side. Adding another layer of buffering is counter-
28+ productive (an issue known as "bufferbloat") and takes precious memory.
2929Note that there still cases where buffering may be useful, so we may
3030introduce optional buffering support at a later time.
3131
@@ -34,7 +34,7 @@ it's whether a stream may incur short read/writes or not. A short read
3434is when a user asks e.g. 10 bytes from a stream, but gets less, similarly
3535for writes. In CPython, unbuffered streams are automatically short
3636operation susceptible, while buffered are guarantee against them. The
37- no short read/writes is an important traits , as it allows to develop
37+ no short read/writes is an important trait , as it allows to develop
3838more concise and efficient programs - something which is highly desirable
3939for MicroPython. So, while MicroPython doesn't support buffered streams,
4040it still provides for no-short-operations streams. Whether there will
@@ -47,7 +47,7 @@ be a port-specific class, where such a need is governed by hardware
4747peculiarities.
4848
4949The no-short-operations behavior gets tricky in case of non-blocking
50- streams, blockedness vs non-blockedness being another CPython dichotomy,
50+ streams, blocking vs non-blocking behavior being another CPython dichotomy,
5151fully supported by MicroPython. Non-blocking streams never wait for
5252data either to arrive or be written - they read/write whatever possible,
5353or signal lack of data (or ability to write data). Clearly, this conflicts
@@ -56,7 +56,7 @@ buffered (and this no-short-ops) streams is convoluted in CPython - in
5656some places, such combination is prohibited, in some it's undefined or
5757just not documented, in some cases it raises verbose exceptions. The
5858matter is much simpler in MicroPython: non-blocking stream are important
59- for efficient asynchronuous operations, so this property prevails on
59+ for efficient asynchronous operations, so this property prevails on
6060the "no-short-ops" one. So, while blocking streams will avoid short
6161reads/writes whenever possible (the only case to get a short read is
6262if end of file is reached, or in case of error (but errors don't
0 commit comments