|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's a dependency cycle here:
- draw-grapheme (Mu) uses read-grapheme (Mu) to be unicode-aware.
- read-grapheme uses read-byte (SubX). Streams are a fundamental data
structure in Mu. For the Mu compiler to be able to reason about the
safety of stream operations, they need to be an opaque type. All
stream primitives are written in SubX. To manipulate a stream's
internals we force people to reach for SubX. That way if there's no
SubX code there's confidence that things are safe.
- read-byte and other stream operations have unit tests, like they
should. The unit tests need to print data to screen when say a test
fails. To do this they use various check- functions (SubX) that take a
string argument.
- Printing a string to screen uses draw-grapheme (Mu).
Perhaps I should maintain variants of drawing primitives that operate
only on ASCII.
|