about summary refs log tree commit diff stats
path: root/304screen.subx
Commit message (Collapse)AuthorAgeFilesLines
* 7842 - new directory organizationKartik K. Agaram2021-03-031-460/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* 7237Kartik Agaram2020-11-141-0/+3
| | | | | | | Minor tweaks to get Mu shell running nicely on a Linux console atop Qemu. We also need to switch a few 256-color codes to 8-color mode. I'm not sure whether/how to patch the repo for those.
* 7234Kartik Agaram2020-11-141-1/+1
|
* 6946 - print floats somewhat intuitively in hexKartik Agaram2020-10-041-0/+13
|
* 6792Kartik Agaram2020-09-161-39/+25
| | | | Roll back all buffering of Stdout.
* 6791Kartik Agaram2020-09-161-0/+8
| | | | Yeah, this isn't working.
* 6790 experiment: explicit flushKartik Agaram2020-09-161-25/+31
| | | | | | | | | tile is already visibly slow (49x212 screen) :/ So programmer needs more control over performance. But this may not be the right approach. That extra flush-stdout in tui.mu suggests it's either going to be finicky, or we have to flush on every attribute change. And going through a buffered-file may be slower. May.
* 6781 - new app: RPN (postfix) calculatorKartik Agaram2020-09-151-0/+19
| | | | This was surprisingly hard; bugs discovered all over the place.
* 6777Kartik Agaram2020-09-141-0/+31
| | | | Print answers in decimal in apps/arith.mu
* 6718Kartik Agaram2020-08-161-0/+13
|
* 6706 - support utf-8Kartik Agaram2020-08-021-2/+46
| | | | | | | | | | | | | | For example: fn main -> r/ebx: int { var x/eax: grapheme <- copy 0x9286e2 # code point 0x2192 in utf-8 print-grapheme-to-real-screen x print-string-to-real-screen "\n" } Graphemes must fit in 4 bytes (21 bits for code points). Unclear what we should do for longer clusters since graphemes are a fixed-size type at the moment.
* 6705Kartik Agaram2020-08-021-1/+1
| | | | Another stupid bug: I've been printing out 3 nulls for every byte of ascii.
* 6704Kartik Agaram2020-08-021-28/+28
| | | | | This is stupid; all this while I've been writing escape sequences to the screen they've been going out on stderr.
* 6703 - new types: code-point and graphemeKartik Agaram2020-08-021-2/+3
| | | | | | | | | | Both have the same size: 4 bytes. So far I've just renamed print-byte to print-grapheme, but it still behaves the same. I'm going to support printing code-points next, but grapheme 'clusters' spanning multiple code-points won't be supported for some time.
* 6699 - start building out fake screenKartik Agaram2020-08-011-29/+29
| | | | | We now have all existing apps and prototypes going through the dependency-injected wrapper, even though it doesn't actually implement the fake screen yet.
* 6680Kartik Agaram2020-07-261-3/+0
|
* 6624Kartik Agaram2020-07-091-0/+1
|
* 6612 - reorganize layersKartik Agaram2020-07-051-0/+338