Commit Graph

18 Commits

Author SHA1 Message Date
Kartik K. Agaram d253a31828 rename grapheme to code-point-utf8
Longer name, but it doesn't lie. We have no data structure right now for
combining multiple code points. And it makes no sense for the notion of
a grapheme to conflate its Unicode encoding.
2021-11-09 08:12:11 -08:00
Kartik K. Agaram d1808995b2 copy back some error messages from linux/ 2021-11-09 07:30:44 -08:00
Kartik K. Agaram a459208291 copy back some tests from linux/ 2021-11-09 07:28:49 -08:00
Kartik K. Agaram cc39b738c5 . 2021-11-09 07:27:17 -08:00
Kartik K. Agaram c970190021 first rendering of non-latin script
Open question: why does column 0 get cropped? The spacing also seems
excessive. Are we taking up 3 grid points?
2021-08-30 00:34:40 -07:00
Kartik K. Agaram 877fbf640a . 2021-08-30 00:06:51 -07:00
Kartik K. Agaram 6e05a8fa27 fix bad terminology: grapheme -> code point
Unix text-mode terminals transparently support utf-8 these days, and so
I treat utf-8 sequences (which I call graphemes in Mu) as fundamental.

I then blindly carried over this state of affairs to bare-metal Mu,
where it makes no sense. If you don't have a terminal handling
font-rendering for you, fonts are most often indexed by code points and
not utf-8 sequences.
2021-08-29 22:20:09 -07:00
Kartik K. Agaram 71e4f38129 7842 - new directory organization
Baremetal is now the default build target and therefore has its sources
at the top-level. Baremetal programs build using the phase-2 Mu toolchain
that requires a Linux kernel. This phase-2 codebase which used to be at
the top-level is now under the linux/ directory. Finally, the phase-2 toolchain,
while self-hosting, has a way to bootstrap from a C implementation, which
is now stored in linux/bootstrap. The bootstrap C implementation uses some
literate programming tools that are now in linux/bootstrap/tools.

So the whole thing has gotten inverted. Each directory should build one
artifact and include the main sources (along with standard library). Tools
used for building it are relegated to sub-directories, even though those
tools are often useful in their own right, and have had lots of interesting
programs written using them.

A couple of things have gotten dropped in this process:
  - I had old ways to run on just a Linux kernel, or with a Soso kernel.
    No more.
  - I had some old tooling for running a single test at the cursor. I haven't
    used that lately. Maybe I'll bring it back one day.

The reorg isn't done yet. Still to do:
  - redo documentation everywhere. All the README files, all other markdown,
    particularly vocabulary.md.
  - clean up how-to-run comments at the start of programs everywhere
  - rethink what to do with the html/ directory. Do we even want to keep
    supporting it?

In spite of these shortcomings, all the scripts at the top-level, linux/
and linux/bootstrap are working. The names of the scripts also feel reasonable.
This is a good milestone to take stock at.
2021-03-03 22:21:03 -08:00
Kartik Agaram 74f1512ff1 7690
Convert comments about magic constants into metadata.
2021-02-07 00:20:29 -08:00
Kartik Agaram da791479a0 7165
All tasks of https://github.com/akkartik/mu/issues/45#issuecomment-719990879
should now be complete.
2020-11-03 14:04:35 -08:00
Kartik Agaram 65dcc74693 7163 - first type checks for 'return' statements 2020-11-03 13:29:09 -08:00
Kartik Agaram 951c3f4c92 7158 2020-11-02 00:07:07 -08:00
Kartik Agaram 307a75530f 7123 - tile: truncate string if necessary 2020-10-26 23:57:39 -07:00
Kartik Agaram 8e4b4f2013 6807 - tile: render intermediate stack state 2020-09-19 21:44:48 -07:00
Kartik Agaram fc42975cf4 6751
More copypasta. I'd be able to remove this duplication if we had first-class
functions, but they involve an accessibility cost.
2020-09-07 22:14:54 -07:00
Kartik Agaram 742bbf27f7 6737 2020-09-06 21:36:05 -07:00
Kartik Agaram cd94852dbc 6733 - read utf-8 'grapheme' from byte stream
No support for combining characters. Graphemes are currently just utf-8
encodings of a single Unicode code-point. No support for code-points that
require more than 32 bits in utf-8.
2020-08-28 23:24:04 -07:00
Kartik Agaram 392ebcce80 6732 2020-08-28 22:38:08 -07:00