Commit Graph

11 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 648d9432b6 clarify a corner case in 2's complement integers
https://merveilles.town/@akkartik/106577885001702701
2021-07-14 01:15:10 -07:00
Kartik K. Agaram 0e9503d739 print call stack on all low-level errors 2021-05-15 00:15:24 -07:00
Kartik K. Agaram 316bf37541 undo previous commit 2021-04-05 21:16:45 -07:00
Kartik K. Agaram 928fd47d68 snapshot: stupid debugging session
I spent a while building a little keyboard scancode printer:

  $ ./translate ex1.mu &&  qemu-system-i386 disk.img

..and wondering why up-arrow was 0x48 in hex but 724 in decimal. I ended
up paranoidly poking at a bunch of crap (though there _is_ a cool chromatography-based
debugging technique in 126write-int-decimal.subx) before I realized:

  - 724 just has one extra digit over the correct answer
  - the 0xe0 scan code is a 3-digit number in decimal -- and the final digit is '4'

There's nothing actually wrong.
2021-04-05 21:15:06 -07:00
Kartik Agaram 1a1a1671ed 7866 2021-03-07 19:46:21 -08: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 022595a20a 6821 - highlight words clobbered by the next word
Another suggestion from the Future of Software forum.
2020-09-20 13:42:13 -07:00
Kartik Agaram 86a124769d 6808 2020-09-19 21:53:52 -07:00
Kartik Agaram 34dd228eb2 6627 2020-07-10 21:08:26 -07:00
Kartik Agaram c09c91e185 6612 - reorganize layers 2020-07-05 12:13:28 -07:00