about summary refs log tree commit diff stats
path: root/shell/sandbox.mu
Commit message (Collapse)AuthorAgeFilesLines
* better error handling on stray commasKartik K. Agaram2021-08-011-0/+1
|
* shell: support loading 128x128px imagesKartik K. Agaram2021-07-281-1/+1
| | | | | | I'm loading them in uncompressed ASCII format, and all streams and gap buffers all over the place need to get massively scaled up to 256KB capacity. But the tests don't yet run out of RAM, so I'll keep going.
* clean up final abort in macroexpandKartik K. Agaram2021-06-301-0/+6
|
* one more bug, and documentation for infixKartik K. Agaram2021-06-231-3/+3
| | | | One error message gets a bit worse.
* .Kartik K. Agaram2021-06-211-66/+82
|
* preserve indentation of the sandboxKartik K. Agaram2021-06-201-2/+2
|
* 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.