Commit Graph

8522 Commits

Author SHA1 Message Date
Kartik K. Agaram 55001994ef .
Keyboard state machine for jumping to function definition.
2021-06-04 20:13:38 -07:00
Kartik K. Agaram 6f7846ebc4 .
Menu shortcut for jumping to function definition.
2021-06-04 20:13:13 -07:00
Kartik K. Agaram f47051ae57 . 2021-06-04 20:08:29 -07:00
Kartik K. Agaram cd4d0ae5b6 .
Keep hotkeys stable when different elements are in focus.
2021-06-04 20:07:10 -07:00
Kartik K. Agaram 81b3f72fb8 . 2021-06-04 19:58:20 -07:00
Kartik K. Agaram eb6758c61f . 2021-06-04 19:41:27 -07:00
Kartik K. Agaram 30745be5b5 . 2021-06-04 19:41:05 -07:00
Kartik K. Agaram 84bc03ab39 . 2021-06-04 19:40:06 -07:00
Kartik K. Agaram 4dd08c268d . 2021-06-04 16:46:20 -07:00
Kartik K. Agaram 224e264a65 . 2021-06-04 16:43:19 -07:00
Kartik K. Agaram cfb5dbce59 . 2021-06-04 16:41:18 -07:00
Kartik K. Agaram e683a3fdee . 2021-06-04 16:39:05 -07:00
Kartik K. Agaram 380837ac2a more convenient 'def' 2021-06-04 16:12:30 -07:00
Kartik K. Agaram bb1ccae27f rename the definition primitive to 'def' 2021-06-04 16:07:07 -07:00
Kartik K. Agaram 4bb826b40e . 2021-06-03 20:55:42 -07:00
Kartik K. Agaram 1c6b965a7f starting to support function editing 2021-06-03 20:49:24 -07:00
Kartik K. Agaram d00f8dc6ca . 2021-06-03 20:37:51 -07:00
Kartik K. Agaram 3ef69a05b0 . 2021-06-03 20:29:37 -07:00
Kartik K. Agaram 6b34a1c9bf . 2021-06-03 14:55:33 -07:00
Kartik K. Agaram b9ad848cff . 2021-06-03 14:49:49 -07:00
Kartik K. Agaram 63cd30d806 . 2021-06-03 14:42:07 -07:00
Kartik K. Agaram 9446e7e594 .
Drop some low-entropy trace lines.
2021-06-03 00:03:20 -07:00
Kartik K. Agaram bd49d5c35c shell: more stable trace when rerunning 2021-06-02 23:57:23 -07:00
Kartik K. Agaram 60872b2b77 . 2021-06-02 23:36:34 -07:00
Kartik Agaram 35336a5f64 .
State as of https://archive.org/details/akkartik-mu-2021-05-31
2021-05-31 23:13:10 -07:00
Kartik Agaram ccadba5b95 .
Until we get scrolling on functions, it's a little cleaner to draw the
primitives on top.
2021-05-31 20:40:08 -07:00
Kartik K. Agaram 7640a77c5f interrupt repl on keypress 2021-05-31 15:18:25 -07:00
Kartik K. Agaram 0c0541d709 . 2021-05-31 15:18:25 -07:00
Kartik K. Agaram ee536ff3e8 . 2021-05-31 15:18:25 -07:00
Kartik Agaram 82171a0fdf . 2021-05-31 10:47:05 -07:00
Kartik K. Agaram e3c7445330 clean up trace depth in a few places
It turns out the problem was that `and` wasn't cleaning up after itself
when it short-circuited evaluation. Similar problems in a couple more places.
2021-05-31 10:38:39 -07:00
Kartik K. Agaram 940401ff9e . 2021-05-31 10:19:38 -07:00
Kartik K. Agaram 0ea329da1f bugfix for disappearing trace
It turns out I have a problem with trace depth somewhere which I just wasn't
noticing before. Running certain sandboxes (line; maybe loops?) twice was
causing traces to no longer start at depth 1, which implies that they weren't
terminating at depth 1. This became a lot more obvious since I instituted
a max-depth.
2021-05-31 10:14:09 -07:00
Kartik K. Agaram 650f417de2 . 2021-05-31 08:59:09 -07:00
Kartik K. Agaram 3331144395 data.limg now loading properly again 2021-05-31 08:09:19 -07:00
Kartik K. Agaram d2094133aa clearer test
It actually has nothing to do with macros. I just wasn't supporting backquotes
outside macros before.
2021-05-31 08:01:09 -07:00
Kartik K. Agaram e9d2f00edb multi-macroexpanding backquote != nested backquote
This was quite difficult to diagnose. The issue I noticed was that brline
had stopped working. All the bugs in previous commits were hiding the cause.
Once I cleaned them up, I realized the problem was that the `(,x0 ,y0)
was triggering the nested-backquote check. The fix was fairly straightforward
then (even though I didn't yet understand why). But how to write a test
for this? I spent some time trying to do so without defining a macro using
literal macros, before I realized:

  You can't call literal macros; we don't have first-class macros.

Trying to insert literal macro support just breaks everything because we
have no way to distinguish between a literal macro call and the stage in
macroexpand where a symbol has been replaced with its macro definition.

How do you explain stuff like this? I grow weary of Lisp.

There's still some issue in loading the entire definition of brline from
data.limg.
2021-05-31 08:00:26 -07:00
Kartik K. Agaram f691782d11 clean up a few things in macro tests 2021-05-31 07:24:51 -07:00
Kartik K. Agaram af6fc79959 . 2021-05-30 21:52:31 -07:00
Kartik K. Agaram 35e0613849 shell: raise errors when loading code on boot 2021-05-30 19:12:20 -07:00
Kartik K. Agaram 067fa9c725 bugfix: unbound variables were not raising error
Since we switched error trace semantics from a designated label to a designated
depth (commit 9831a8cef9 on May 19).
2021-05-30 18:02:40 -07:00
Kartik K. Agaram 961ce67569 . 2021-05-30 17:20:42 -07:00
Kartik K. Agaram 4cc603deeb unconditionally trace errors
Now that we never have a null trace, tracing errors is always safe. And
now that we're running with low trace max-depth we're more likely to run
into problems with missing errors in the trace.
2021-05-30 17:15:21 -07:00
Kartik K. Agaram b699982fb4 . 2021-05-30 16:45:38 -07:00
Kartik K. Agaram 40c6066324 . 2021-05-30 16:41:38 -07:00
Kartik K. Agaram cde14438e0 first test re-running sandbox with a deeper trace 2021-05-30 16:38:20 -07:00
Kartik K. Agaram e700d30d8c . 2021-05-30 16:20:31 -07:00
Kartik K. Agaram 46009cd1bb . 2021-05-30 10:13:53 -07:00
Kartik K. Agaram 158b53eb8f first attempt doesn't work
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_.
2021-05-30 09:23:36 -07:00
Kartik K. Agaram 1496548287 start progressively increasing trace depth
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.
2021-05-30 08:51:58 -07:00