Commit Graph

7742 Commits

Author SHA1 Message Date
Kartik K. Agaram 1010b50bb8 7742 - baremetal/shell is alive 2021-02-14 14:41:35 -08:00
Kartik K. Agaram 4961a020b4 7741 - baremetal/shell: first run: single number 2021-02-14 14:30:46 -08:00
Kartik K. Agaram 1a9d3cb7ef 7740 - baremetal/shell: eval and render line 2021-02-14 13:20:37 -08:00
Kartik K. Agaram 90a8d404af 7739 - baremetal/shell: first draft of loop
This is quite new and speculative. I tried to list out some potential future
tests later when we add 'return'. We'll see how it goes.
2021-02-14 00:05:12 -08:00
Kartik Agaram fdc9096dfd 7738 2021-02-13 20:19:11 -08:00
Kartik Agaram 535fe9ac96 7737 2021-02-13 18:41:43 -08:00
Kartik K. Agaram 9b5ead67ec 7736
Game of Life with a larger grid.
2021-02-13 17:50:45 -08:00
Kartik K. Agaram 7b0f543e9d 7735 - baremetal: game of life simulator 2021-02-13 17:34:04 -08:00
Kartik K. Agaram 159a15e019 7734 - baremetal/shell: break out of group 2021-02-13 00:24:40 -08:00
Kartik K. Agaram 09de4c08de 7733 - baremetal/shell: conditional skips groups 2021-02-13 00:08:22 -08:00
Kartik K. Agaram c6c9ec5e9c 7732 - baremetal/shell: grouping words
Now there's a neat resonance carrying over all 3 levels of Mu notation.
2021-02-12 23:49:00 -08:00
Kartik K. Agaram 103cfd6f86 7731 - baremetal/shell: conditional execution 2021-02-12 23:49:00 -08:00
Kartik K. Agaram 378ffca74c 7730 - baremetal/shell: boolean values
In the process I found a bug in the Mu compiler. Limitations of just asserting
the emitted code but not running it.
2021-02-12 23:49:00 -08:00
Kartik K. Agaram 97a77434c5 7729 2021-02-12 22:04:36 -08:00
Kartik K. Agaram be4b86e91b 7728 2021-02-12 21:59:35 -08:00
Kartik K. Agaram 2ffd995524 7727 - baremetal/shell: 1+1 2021-02-11 22:04:09 -08:00
Kartik K. Agaram 8b95a1be65 7726 2021-02-11 21:27:25 -08:00
Kartik K. Agaram 8bb22dcb0a 7725 - baremetal/shell: start on evaluator 2021-02-11 21:11:47 -08:00
Kartik K. Agaram ead6c01fa4 7724 - baremetal: rendering array values 2021-02-11 20:59:39 -08:00
Kartik K. Agaram d1bcd1421f 7723 - baremetal: rendering string values 2021-02-11 19:34:55 -08:00
Kartik K. Agaram 884c92984f 7722 2021-02-11 18:46:57 -08:00
Kartik K. Agaram 0039f81b31 7721 - baremetal: start rendering values 2021-02-11 01:21:50 -08:00
Kartik K. Agaram c4bd8edae2 7720 - baremetal: load more sectors again 2021-02-11 01:14:30 -08:00
Kartik K. Agaram e396b3a0a3 7719 - baremetal: print floats 2021-02-11 00:44:13 -08:00
Kartik K. Agaram 79e6d41bea 7718
Bugfix in clear-screen.
2021-02-11 00:37:32 -08:00
Kartik K. Agaram 64a1c14198 7717 - baremetal: enable FPU (I think) 2021-02-11 00:12:08 -08:00
Kartik K. Agaram 4d08e78ed4 7716 2021-02-10 23:51:27 -08:00
Kartik K. Agaram edd20161c5 7715 2021-02-10 23:13:08 -08:00
Kartik K. Agaram 36e70d36e1 7714 2021-02-10 23:01:11 -08:00
Kartik K. Agaram 08c55cb2b7 7713 2021-02-10 22:34:08 -08:00
Kartik K. Agaram 2be221bce8 7712 2021-02-10 22:14:46 -08:00
Kartik K. Agaram d4afe371f5 7711 - baremetal/shell: line data structure
Pretty thin; perhaps we should put cursor management in words. But we don't
need every node in the list of words to know which word in the list the
cursor is at.
2021-02-10 22:11:54 -08:00
Kartik K. Agaram 07852ae00f 7710
Include a file for commit 7708.
2021-02-10 20:08:32 -08:00
Kartik K. Agaram 4a3414791f 7709
Fix the jarringness in the previous commit. Gap buffers now always occupy
the same width on screen regardless of where their cursor is. The price:
we sometimes have more whitespace between words. But that is perhaps a
good thing.
2021-02-09 23:18:20 -08:00
Kartik K. Agaram 7d40021799 7708 - baremetal/shell: word data structure
Not everything here is tested, but enough that I'm starting to feel confident.

We see our first divergence with apps/tile. In apps/tile we render everything,
then go back and figure out where to position the cursor. This relies on
some low-level smarts and is also quite klunky and complex.

In baremetal/shell I plan to do something simpler: maintain a tree of objects
where each level knows which sub-object under it has the cursor. Now I
can pass in the cursor object to each object, and if it detects that it
has the cursor it can recursively figure out which sub-object has the cursor.
The bottom-most objects (grapheme stacks) draw the cursor as they render
themselves. Single-pass algorithm, draw the cursor as you render, no low-level
smarts needed.

But there's a divergence. What in apps/tile used to look like this, with
a cursor ␣ at the end of the word 'abc':

  abc␣def

..now looks like this:

  abc␣ def

..with an extra space.

This could cause some jarring 'dancing' as you move the cursor through a
list of words.
2021-02-09 22:57:37 -08:00
Kartik K. Agaram 1969febce5 7707 2021-02-09 22:00:02 -08:00
Kartik K. Agaram f3f6bc3f01 7706 2021-02-09 21:57:11 -08:00
Kartik K. Agaram dfa61e6299 7705 2021-02-09 21:53:24 -08:00
Kartik K. Agaram c29e589b6a 7704 2021-02-09 21:42:44 -08:00
Kartik K. Agaram d5011d5187 7703 2021-02-09 21:42:14 -08:00
Kartik K. Agaram 9a91f0a840 7702 2021-02-09 21:41:58 -08:00
Kartik K. Agaram c1e841fc2d 7701 2021-02-09 20:53:47 -08:00
Kartik Agaram 94e43069c7 7700 2021-02-09 08:19:40 -08:00
Kartik K. Agaram 168e3f9d39 7699
Gap buffer with a more testable interface for rendering to screen.
2021-02-08 22:20:21 -08:00
Kartik Agaram bfcf5c7252 7698 - starting to test-drive baremetal shell 2021-02-07 23:45:31 -08:00
Kartik Agaram 0be63b75c2 7697 2021-02-07 22:42:33 -08:00
Kartik Agaram 899759edef 7696 2021-02-07 22:24:27 -08:00
Kartik Agaram a99775b445 7695 - baremetal: second bg assertion for spaces
When I'm also checking graphemes I assume that spaces can be in other bg
colors. However, if I want to closely check the bg color for a cell with
a space in it (ahem, cursor), I have to check the color in isolation.
2021-02-07 21:12:11 -08:00
Kartik Agaram 1d7aae96f0 7694 - baremetal: asserting bg color in tests 2021-02-07 20:51:54 -08:00
Kartik Agaram 8f34dfd1e0 7693 - baremetal: pass background color everywhere 2021-02-07 15:50:16 -08:00