about summary refs log tree commit diff stats
path: root/baremetal/shell
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* 7749Kartik K. Agaram2021-02-151-3/+1
| | | | | Forget about support for quitting for now. Quit by rebooting the computer or VM.
* 7744Kartik K. Agaram2021-02-141-4/+6
|
* 7743Kartik K. Agaram2021-02-142-1/+56
| | | | 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.
* 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-111-4/+206
|
* 7725 - baremetal/shell: start on evaluatorKartik K. Agaram2021-02-112-0/+174
|
* 7724 - baremetal: rendering array valuesKartik K. Agaram2021-02-111-0/+105
|
* 7723 - baremetal: rendering string valuesKartik K. Agaram2021-02-111-3/+48
|
* 7722Kartik K. Agaram2021-02-111-0/+2
|
* 7721 - baremetal: start rendering valuesKartik K. Agaram2021-02-111-0/+84
|
* 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.
* 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-091-9/+6
|
* 7704Kartik K. Agaram2021-02-091-6/+6
|
* 7703Kartik K. Agaram2021-02-091-0/+3
|
* 7702Kartik K. Agaram2021-02-092-7/+7
|
* 7699Kartik K. Agaram2021-02-082-11/+442
| | | | Gap buffer with a more testable interface for rendering to screen.
* 7698 - starting to test-drive baremetal shellKartik Agaram2021-02-071-0/+234