about summary refs log tree commit diff stats
path: root/shell/sandbox.mu
Commit message (Collapse)AuthorAgeFilesLines
* start emitting indent tokensKartik K. Agaram2021-06-181-23/+35
|
* always print black pixels when rendering screensKartik K. Agaram2021-06-151-2/+0
| | | | This is an old 'optimization' that turns out to not actually matter.
* flickerlessly render fake screens in environmentKartik K. Agaram2021-06-151-33/+9
| | | | | | | | Font rendering now happens off the real screen, which provides the effect of double-buffering. Apps can now also use convert-graphemes-to-pixels for more traditional double-buffering.
* .Kartik K. Agaram2021-06-121-95/+55
| | | | | Roll back to commit 70919b45f0. Recent commits add lots of extra function args for dubious benefit.
* snapshotKartik K. Agaram2021-06-121-12/+41
| | | | Looks like what's slowing down screen rendering is in fact _font_ rendering.
* .Kartik K. Agaram2021-06-121-16/+14
|
* trying to eliminate flicker when rendering screenKartik K. Agaram2021-06-121-13/+26
| | | | | | | | | | | | | | | | | | | Two interesting things: - We don't really need double-buffering for rendering the screen on the sandbox as a progress indicator. Everything else is untouched, and render-screen should be doing that as well. - Rendering just pixels of the fake screen is buttery smooth. It's the _graphemes_ that are slowing things down. Even though there's so many fewer of them! As a result, drawing the fake screen less frequently in `evaluate` doesn't actually help with flicker. Even though it'll make the debug cycle shorter. So my current plan is to attack flicker in isolation before I mess with the render frequency. In this commit I optimized away the cursor handling. Still doesn't seem to be helping. In fact it actually seems _worse_.
* eliminate some implicit writes to real screenKartik K. Agaram2021-06-121-37/+37
|
* .Kartik K. Agaram2021-06-121-12/+12
| | | | | | Rename cells containing screens to screen vars because of the ambiguity that each grapheme in fake screens is represented by a type screen-cell. While we're at it, we also analogously rename keyboard vars.
* shell: larger fake screenKartik K. Agaram2021-06-121-3/+9
|
* .Kartik K. Agaram2021-06-111-1/+1
|
* .Kartik K. Agaram2021-06-111-1/+1
|
* .Kartik K. Agaram2021-06-111-41/+0
|
* .Kartik K. Agaram2021-06-111-3/+3
|
* .Kartik K. Agaram2021-06-111-21/+24
|
* .Kartik K. Agaram2021-06-111-1/+0
|
* .Kartik K. Agaram2021-06-111-12/+11
|
* .Kartik K. Agaram2021-06-091-36/+0
|
* .Kartik K. Agaram2021-06-091-6/+13
|
* .Kartik K. Agaram2021-06-091-1/+12
|
* .Kartik K. Agaram2021-06-091-3/+4
|
* .Kartik K. Agaram2021-06-091-2/+2
| | | | Add argument to a few functions.
* shell: function modal now also creates functionsKartik K. Agaram2021-06-081-1/+1
|
* .Kartik K. Agaram2021-06-081-46/+36
| | | | | | | I wrote a comment about how some code was not covered by tests, and then promptly forgot what it was for. This is why we need tests. Now the hack is gone.
* shell: support negative integer literalsKartik K. Agaram2021-06-061-0/+18
| | | | We still don't support _any_ fractional literals, positive or negative.
* more space for definitionsKartik K. Agaram2021-06-061-1/+1
|
* conditionally display cursor in sandboxKartik K. Agaram2021-06-041-34/+40
|
* .Kartik K. Agaram2021-06-041-2/+2
|
* .Kartik K. Agaram2021-06-041-0/+4
| | | | Menu shortcut for jumping to function definition.
* .Kartik K. Agaram2021-06-041-8/+8
|
* .Kartik K. Agaram2021-06-041-2/+2
| | | | Keep hotkeys stable when different elements are in focus.
* .Kartik K. Agaram2021-06-041-8/+7
|
* .Kartik K. Agaram2021-06-031-5/+8
|
* .Kartik K. Agaram2021-06-031-13/+11
|
* .Kartik K. Agaram2021-06-031-2/+2
|
* shell: more stable trace when rerunningKartik K. Agaram2021-06-021-1/+113
|
* .Kartik K. Agaram2021-05-311-28/+28
|
* shell: raise errors when loading code on bootKartik K. Agaram2021-05-301-3/+16
|
* bugfix: unbound variables were not raising errorKartik K. Agaram2021-05-301-3/+21
| | | | | Since we switched error trace semantics from a designated label to a designated depth (commit 9831a8cef9 on May 19).
* first test re-running sandbox with a deeper traceKartik K. Agaram2021-05-301-3/+74
|
* .Kartik K. Agaram2021-05-301-1/+47
|
* first attempt doesn't workKartik K. Agaram2021-05-301-0/+9
| | | | | | I was aware of some complications. The various indexes and y coordinates in the trace's cache would be unstable and need to be recomputed. But it's surprising that the trace _completely disappears_.
* start progressively increasing trace depthKartik K. Agaram2021-05-301-24/+30
| | | | | | | | | | | The goal: the sandbox initially maintains a shallow trace. As you expand into the trace, the environment reruns the sandbox at greater depth as needed. The challenge: expanding happens within edit-trace, which doesn't have the whole sandbox needed to re-run the sandbox. We'll either need to expand the trace's capabilities to include the whole sandbox, or duplicate some logic to decide when to run the sandbox.
* disable ctrl-s when browsing traceKartik K. Agaram2021-05-231-2/+6
| | | | | We're soon going to be dynamically rerunning the sandbox in other ways when browsing the trace.
* .Kartik K. Agaram2021-05-231-4/+4
|
* shell: reduce trace depth in sandboxKartik K. Agaram2021-05-221-1/+1
| | | | We'll gradually make this more dynamic.
* disallow null tracesKartik K. Agaram2021-05-191-6/+11
| | | | | | We now use traces everywhere for error-checking. Null traces introduce the possibility of changing a functions error response, and therefore its semantics.
* shell: traces track a maximum depth to recordKartik K. Agaram2021-05-191-2/+2
|
* shell: add a lot of error-checkingKartik K. Agaram2021-05-181-0/+6
|
* .Kartik K. Agaram2021-05-071-4/+4
|