about summary refs log tree commit diff stats
path: root/baremetal
Commit message (Collapse)AuthorAgeFilesLines
* 7762 - baremetal/shell: backspaceKartik K. Agaram2021-02-202-5/+21
| | | | | | The text buffer can now shrink, which means we need to be careful to erase the old location of the cursor. Just clear screen before render each time. Which means we need to be more efficient with our rendering.
* 7761 - baremetal/shell: read input from keyboardKartik K. Agaram2021-02-203-8/+72
|
* 7759 - changing course; delete the postfix shellKartik K. Agaram2021-02-205-3358/+0
| | | | | | | | | | | | | | | | | | | | | | | | It might be too ambitious for an initial Mu system, and I also want to watch my novelty budget. I also have great doubts about the ability of this live-updating postfix system to scale to interesting programs. Conditionals, loops, multi-line functions, all this requires further work. Instead, I'm going to recenter around Mu's original goals: - saying no to most features - encouraging/teaching testing - traces as a unifying metaphor In particular, instead of a live-updating system, the new debug loop will be: - generate a trace - browse the trace - modify the program - generate a trace - ... The only persistence we'll need here is a way to track what the programmer has drilled into in the trace. That might have some commonalities with the old system of expanded words.
* 7758Kartik K. Agaram2021-02-202-0/+1090
| | | | Just some temporary files before I blow them away.
* 7757Kartik K. Agaram2021-02-192-15/+119
|
* 7753Kartik K. Agaram2021-02-151-2/+5
|
* 7752Kartik K. Agaram2021-02-151-2/+20
|
* 7751Kartik K. Agaram2021-02-151-8/+10
|
* 7750Kartik K. Agaram2021-02-151-0/+2
|
* 7749Kartik K. Agaram2021-02-151-3/+1
| | | | | Forget about support for quitting for now. Quit by rebooting the computer or VM.
* 7747Kartik K. Agaram2021-02-151-25/+16
|
* 7744Kartik K. Agaram2021-02-141-4/+6
|
* 7743Kartik K. Agaram2021-02-143-3/+58
| | | | First bugfix in baremetal/shell. Already it's much easier to debug.
* 7742 - baremetal/shell is aliveKartik K. Agaram2021-02-141-1/+10
|
* 7741 - baremetal/shell: first run: single numberKartik K. Agaram2021-02-141-0/+34
|
* 7740 - baremetal/shell: eval and render lineKartik K. Agaram2021-02-142-0/+108
|
* 7739 - baremetal/shell: first draft of loopKartik K. Agaram2021-02-142-62/+237
| | | | | 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.
* 7738Kartik Agaram2021-02-131-5/+2
|
* 7736Kartik K. Agaram2021-02-131-22/+34
| | | | Game of Life with a larger grid.
* 7735 - baremetal: game of life simulatorKartik K. Agaram2021-02-131-0/+243
|
* 7734 - baremetal/shell: break out of groupKartik K. Agaram2021-02-131-2/+93
|
* 7733 - baremetal/shell: conditional skips groupsKartik K. Agaram2021-02-131-1/+83
|
* 7732 - baremetal/shell: grouping wordsKartik K. Agaram2021-02-121-1/+95
| | | | Now there's a neat resonance carrying over all 3 levels of Mu notation.
* 7731 - baremetal/shell: conditional executionKartik K. Agaram2021-02-121-3/+69
|
* 7730 - baremetal/shell: boolean valuesKartik K. Agaram2021-02-123-10/+226
| | | | | In the process I found a bug in the Mu compiler. Limitations of just asserting the emitted code but not running it.
* 7729Kartik K. Agaram2021-02-121-3/+3
|
* 7728Kartik K. Agaram2021-02-121-0/+30
|
* 7727 - baremetal/shell: 1+1Kartik K. Agaram2021-02-113-0/+35
|
* 7726Kartik K. Agaram2021-02-113-7/+210
|
* 7725 - baremetal/shell: start on evaluatorKartik K. Agaram2021-02-112-0/+174
|
* 7724 - baremetal: rendering array valuesKartik K. Agaram2021-02-115-0/+1644
|
* 7723 - baremetal: rendering string valuesKartik K. Agaram2021-02-116-3/+370
|
* 7722Kartik K. Agaram2021-02-111-0/+2
|
* 7721 - baremetal: start rendering valuesKartik K. Agaram2021-02-111-0/+84
|
* 7720 - baremetal: load more sectors againKartik K. Agaram2021-02-111-10/+26
|
* 7719 - baremetal: print floatsKartik K. Agaram2021-02-114-0/+646
|
* 7718Kartik K. Agaram2021-02-111-4/+4
| | | | Bugfix in clear-screen.
* 7717 - baremetal: enable FPU (I think)Kartik K. Agaram2021-02-112-5/+20
|
* 7716Kartik K. Agaram2021-02-101-0/+8
|
* 7715Kartik K. Agaram2021-02-101-2/+1
|
* 7714Kartik K. Agaram2021-02-101-0/+8
|
* 7713Kartik K. Agaram2021-02-105-14/+20
|
* 7712Kartik K. Agaram2021-02-101-71/+0
|
* 7711 - baremetal/shell: line data structureKartik K. Agaram2021-02-102-4/+176
| | | | | | 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.
* 7710Kartik K. Agaram2021-02-101-0/+58
| | | | Include a file for commit 7708.
* 7709Kartik K. Agaram2021-02-092-24/+28
| | | | | | | 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.
* 7708 - baremetal/shell: word data structureKartik K. Agaram2021-02-092-1/+786
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* 7707Kartik K. Agaram2021-02-091-0/+14
|
* 7706Kartik K. Agaram2021-02-092-9/+30
|
* 7705Kartik K. Agaram2021-02-091-6/+3
|