Commit Graph

8888 Commits

Author SHA1 Message Date
Kartik K. Agaram
4fd5514a59 . 2021-08-10 04:19:54 -07:00
Kartik K. Agaram
33b77b31b4 . 2021-08-10 04:18:34 -07:00
Kartik K. Agaram
12d37bf5b9 . 2021-08-10 04:16:36 -07:00
Kartik K. Agaram
d94eb48b92 . 2021-08-10 04:16:22 -07:00
Kartik K. Agaram
cb38fc348b . 2021-08-10 04:15:40 -07:00
Kartik K. Agaram
0c8f865861 . 2021-08-10 04:14:32 -07:00
Kartik K. Agaram
4f236749a2 . 2021-08-10 04:11:51 -07:00
Kartik K. Agaram
dd625f6caa . 2021-08-10 04:08:15 -07:00
Kartik K. Agaram
7784855c18 . 2021-08-08 11:15:22 -07:00
Kartik K. Agaram
b67270e171 . 2021-08-07 22:57:15 -07:00
Kartik K. Agaram
fbc1f309d8 . 2021-08-07 22:57:15 -07:00
Kartik K. Agaram
3e6da6e25c . 2021-08-06 21:01:38 -07:00
Kartik K. Agaram
cbfaf23ae3 . 2021-08-06 20:54:34 -07:00
Kartik K. Agaram
52f1c1fb2f beginnings of a Slack archive reader
I'm hackily depending on Python (3.something) to prototype the disk
image creator. But no non-std libs.

Once the disk image is created, I've validated that it can be loaded
from disk without too much latency (assuming KVM).
2021-08-06 20:46:52 -07:00
Kartik K. Agaram
19d2e6423a . 2021-08-02 10:27:58 -07:00
Kartik K. Agaram
4692c48f40 better error handling on stray commas 2021-08-01 18:26:35 -07:00
Kartik K. Agaram
964becd404 . 2021-08-01 14:47:30 -07:00
Kartik K. Agaram
15b1c2651c . 2021-08-01 10:22:16 -07:00
Kartik K. Agaram
b625c6304e support non-line-oriented processing in next-word
Immediately this simplifies support for comments in image data.
2021-07-29 20:07:13 -07:00
Kartik K. Agaram
e55d3f5814 maintain aspect ratio when rendering images 2021-07-29 08:24:27 -07:00
Kartik K. Agaram
54765018be . 2021-07-29 08:05:24 -07:00
Kartik K. Agaram
63c7d5c4e0 downsampling photos makes the dithering seem worse
We support 128px, so let's use the whole 128px.
2021-07-29 07:55:54 -07:00
Kartik K. Agaram
c9382ee2c9 . 2021-07-29 07:55:45 -07:00
Kartik K. Agaram
295e50f025 shell: reliable image rendering 2021-07-29 07:55:28 -07:00
Kartik K. Agaram
e9fb7e4453 shell: rendering image definitions
Not quite working yet. Only the very first rendering succeeds. After
that any keypress triggers a second render which aborts. Image is
getting corrupted in memory somehow.
2021-07-29 00:41:19 -07:00
Kartik K. Agaram
fc951149a0 shell: support loading 128x128px images
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.
2021-07-28 23:58:46 -07:00
Kartik K. Agaram
e2f18e8866 shell: literal images 2021-07-28 23:28:29 -07:00
Kartik K. Agaram
e2f6e9011e saving definitions containing string literals
This was the whole proximal goal in implementing balanced terminals.

Printing these is still unreliable. It always surrounds in [], which may
not work.
2021-07-28 23:08:07 -07:00
Kartik K. Agaram
9f52758dfe . 2021-07-28 22:57:20 -07:00
Kartik K. Agaram
04134396a3 . 2021-07-28 22:51:31 -07:00
Kartik K. Agaram
bec33a7067 shell: second notation for string literals
I've always been dissatisfied with the notion of escaping. It introduces
a special-case meta-notation within the tokenizer, and the conventional
approach leads to exponential "leaning toothpick syndrome" with each
level of escaping.

One potential "correct" solution is to keep string terminals
parameterizable:

  [abc]           => abc
  [=]             => =
  [=[abc]=]       => abc
  [=[a]bc]=]      => a]bc
  [==[a]=]bc]==]  => a]=]bc

..and so on. Basically the terminals grow linearly as the number of
escapings grow.

While this is workable, I'd like to wait until I actually need it, and
then gauge whether the need is a sign of the stack growing too complex,
with too many layers of notation/parsing. Mu's goal is just 3 notations,
and it's going to require constant vigilance to keep that from growing.

Therefore, for now, there are two notations for string literals, one
symmetric and one balanced:

  "abc"           => abc
  [abc]           => abc

The balancing notation permits nested brackets as long as they balance.
  [abc [def]]     => abc [def]

If you need unbalanced square brackets, use the symmetric terminals:
  "abc [def"      => abc [def

If you need double quotes inside strings, use the balanced notation:
  [abc "def]      => abc "def

If you need _both_ square brackets (whether balanced or unbalanced) and
double quotes, you're currently shit outta luck.
2021-07-28 20:44:02 -07:00
Kartik K. Agaram
267c74b59a shell: render image from pbm data stream 2021-07-27 22:38:26 -07:00
Kartik K. Agaram
6199445243 . 2021-07-26 21:13:19 -07:00
Kartik K. Agaram
a0432bf589 . 2021-07-26 20:33:31 -07:00
Kartik K. Agaram
bade3ae86c . 2021-07-26 17:37:44 -07:00
Kartik K. Agaram
a5cbf871ea . 2021-07-26 17:28:49 -07:00
Kartik K. Agaram
bfa0efb7d1 game of life in lisp
Super slow; each frame is cleared as a sort of progress indicator while
it computes the next frame.

In the process I realize I need to adjust every single trace in the
shell sources to be more fault-tolerant to a filled-up trace stream.
2021-07-26 17:19:04 -07:00
Kartik K. Agaram
46441d7204 .
Smoked out some issues by rendering a single frame of Game of Life.
Incredibly slow.
2021-07-26 02:27:32 -07:00
Kartik K. Agaram
81c3678515 gracefully trace large multi-dimensional arrays 2021-07-26 02:08:09 -07:00
Kartik K. Agaram
6a92f3b535 gracefully trace large arrays 2021-07-26 02:06:48 -07:00
Kartik K. Agaram
6b57715502 palette operations now a bit faster 2021-07-26 01:33:48 -07:00
Kartik K. Agaram
438c00fd1f . 2021-07-26 01:21:46 -07:00
Kartik K. Agaram
ef637b6bab . 2021-07-26 01:12:04 -07:00
Kartik K. Agaram
3e76e0540b shell primitive: initialize array of some size 2021-07-26 00:56:30 -07:00
Kartik K. Agaram
4c224c5375 shell primitive: iset to mutate array at index 2021-07-25 16:46:12 -07:00
Kartik K. Agaram
f7a890d435 shell primitive: array index 2021-07-25 16:35:21 -07:00
Kartik K. Agaram
17e50d27d4 shell: array type 2021-07-25 16:24:45 -07:00
Kartik K. Agaram
7ed4a6aed9 . 2021-07-25 16:24:45 -07:00
Kartik K. Agaram
ff24d7b810 . 2021-07-25 16:24:45 -07:00
Kartik K. Agaram
251f317c38 . 2021-07-25 16:24:45 -07:00