Commit Graph

1200 Commits

Author SHA1 Message Date
Kartik Agaram
a87bc353f5 . 2020-10-24 19:33:41 -07:00
Kartik Agaram
e648bc9c88 tile: process space in middle of word 2020-10-24 18:26:19 -07:00
Kartik Agaram
1137dd2a99 tile: process space at start of word
This was very difficult to debug.

We still need to process space in the middle of a word.
2020-10-24 16:52:33 -07:00
Kartik Agaram
03012c91c2 tile: adjust spacing between commandline and stack 2020-10-23 00:09:24 -07:00
Kartik Agaram
4568607634 7087 - defining functions now seems to be working 2020-10-20 22:15:32 -07:00
Kartik Agaram
6b973819d0 7086
Expanding words now seems to be working. I was forgetting to update 'prev'
pointers in a few places.
2020-10-20 21:48:53 -07:00
Kartik Agaram
9ac5159486 7085 2020-10-20 21:18:38 -07:00
Kartik Agaram
cbe90c6a2b 7084
Cursor now updating right.

Still a couple of bugs:
  ctrl-e doesn't know about multiple lines
  function calls don't expand right in multi-line sandboxes
    (but at least I'm now getting to see them in action!)
2020-10-20 13:39:31 -07:00
Kartik Agaram
38ff550455 7083
Defining functions mostly working. But we still need to fix the cursor
afterwards.
2020-10-20 10:02:31 -07:00
Kartik Agaram
ce94374bd1 7082 2020-10-20 09:39:12 -07:00
Kartik Agaram
5bdcb85f67 7081
Defining new functions seems to be working. _However_, we aren't yet detecting
duplicates. `x x *` leads to a declaration of `x x f`.
2020-10-20 09:33:13 -07:00
Kartik Agaram
c2d537c46b 7080
Constructing new functions with ctrl-d is now working right. But the call
seems exactly flipped.
2020-10-20 01:07:21 -07:00
Kartik Agaram
0cdbfff256 7079 2020-10-19 23:53:45 -07:00
Kartik Agaram
e28b949f18 7078 2020-10-19 23:20:33 -07:00
Kartik Agaram
5e9a482193 7077 - tile: render function list 2020-10-19 23:13:28 -07:00
Kartik Agaram
5532ea013b 7066 - tile: some more primitives for testing
Lesson learned: functions store args in _reverse_ order. Since evaluation
is very frequent, it's worth optimizing for it.
2020-10-19 22:41:46 -07:00
Kartik Agaram
3ff287f410 7065 2020-10-19 22:29:08 -07:00
Kartik Agaram
7144ae7638 7064 2020-10-19 22:27:52 -07:00
Kartik Agaram
1158758f20 7063 - tile: scaffolding for defining functions 2020-10-18 23:41:57 -07:00
Kartik Agaram
f1a3f88e95 7062 2020-10-18 23:23:36 -07:00
Kartik Agaram
266ac87340 7061 2020-10-18 23:22:06 -07:00
Kartik Agaram
19fd3c9ca4 7060 - tile: renaming variables now works 2020-10-18 23:07:23 -07:00
Kartik Agaram
956394017e 7059
Cursor now in the right place after rename. But stack still doesn't show
the value of a name.
2020-10-18 22:48:11 -07:00
Kartik Agaram
a3ddc1bdb3 7058
Snapshot; things seem to be working besides ctrl-r, but we aren't yet rendering
only the final line.
2020-10-18 21:57:09 -07:00
Kartik Agaram
47497ea552 7057 - tile: back to names
We can now create new bindings for names while evaluating lines.
2020-10-18 20:51:47 -07:00
Kartik Agaram
82d1fe7c9c 7056 - orange-pink 2020-10-18 20:18:51 -07:00
Kartik Agaram
d7d384a72b 7055 2020-10-18 15:49:20 -07:00
Kartik Agaram
e170b35d8b 7054 2020-10-18 15:39:34 -07:00
Kartik Agaram
dc0e03e4a5 7053
Rename seems to now be working. State still isn't rendered right, so we
can't be sure.
2020-10-17 23:29:02 -07:00
Kartik Agaram
1fc218bf9d 7052 2020-10-17 23:10:00 -07:00
Kartik Agaram
26bfae3d5e 7051 2020-10-17 13:54:33 -07:00
Kartik Agaram
d29dcd1263 7050 2020-10-17 12:32:44 -07:00
Kartik Agaram
ab697ede40 7049 2020-10-17 11:50:43 -07:00
Kartik Agaram
e3d6e067c6 7048 2020-10-17 11:48:13 -07:00
Kartik Agaram
302082ab70 7047 2020-10-17 11:45:37 -07:00
Kartik Agaram
5f8c473c55 7046 - start of flow for naming words
Names don't stick yet, but we have a scaffolding for printing a dialog
and accepting input.
2020-10-17 11:40:29 -07:00
Kartik Agaram
2dd300eb20 7045 2020-10-16 22:46:39 -07:00
Kartik Agaram
b72c5a60ff 7044 2020-10-16 22:40:40 -07:00
Kartik Agaram
7244bf99dd 7043 - the REPL is dead; long live the IVL 2020-10-16 22:29:23 -07:00
Kartik Agaram
16212c63cb 7042 2020-10-15 22:37:21 -07:00
Kartik Agaram
fc1d71dd09 7039
Ok, I think we may finally be done crushing all the pesky bugs.

And now we can insert and delete words in the middle of a line, and have
expanded calls stay stable!
2020-10-15 21:22:51 -07:00
Kartik Agaram
02cefc7065 7038
Arrow keys now seem to be working right within expanded functions. Still
seeing one minor issue with left-arrow skipping words.
2020-10-15 21:19:52 -07:00
Kartik Agaram
2885e1d441 7037
Expanding words now working, but ctrl-f/ctrl-b inside expanded words not
working right.
2020-10-15 20:54:06 -07:00
Kartik Agaram
514dea3aab 7036
ctrl-u now working.
2020-10-15 20:48:27 -07:00
Kartik Agaram
70da3b3846 7035
ctrl-f and ctrl-b working right. Now ctrl-u is segfaulting. Also expanding
words.
2020-10-15 20:46:01 -07:00
Kartik Agaram
6fdfd5607b 7034
Finally following up on commit 7020. Ctrl-a and ctrl-e now work, but word-wise
motions are still showing some funkiness.
2020-10-15 20:37:11 -07:00
Kartik Agaram
480fd9958a 7032 2020-10-14 13:42:03 -07:00
Kartik Agaram
d9f8784d4c 7031 2020-10-14 12:46:53 -07:00
Kartik Agaram
7dd5a41e07 7030 2020-10-14 12:22:32 -07:00
Kartik Agaram
9635163bdc 7029 2020-10-14 12:00:19 -07:00
Kartik Agaram
098dd58df4 7021 2020-10-14 03:51:50 -07:00
Kartik Agaram
5fe86b8348 7020
snapshot: migrating call-path to store word handles rather than word indexes.

ctrl-a and ctrl-e are segfaulting. There are likely other problems.

The major new change here is that allocating a call-path-element no longer
initializes it.
2020-10-14 03:31:06 -07:00
Kartik Agaram
3b18846e1f 7019 2020-10-14 02:52:30 -07:00
Kartik Agaram
c3edaff02a 7018 - tile: tweak spacing between stacks
Until now the word being typed had a slightly larger invisible margin,
which was a little strange. Should look cleaner now.
2020-10-13 10:58:18 -07:00
Kartik Agaram
f3a8a2588f 7017 2020-10-13 10:29:42 -07:00
Kartik Agaram
6310b0c44d 7016 - raw addrs shouldn't escape functions
We don't have the static checks for this yet, but discovering I've not
been following my own rules bumps the priority on it.
2020-10-13 10:15:23 -07:00
Kartik Agaram
af52cb8d1f 7015 - bugfix in column width computation
I just got bitten by variable shadowing! It's a lot less theoretical concern
now.
2020-10-13 00:05:05 -07:00
Kartik Agaram
54fd7d7a99 7014
7013 had broken right-justification when rendering the stack. Redo.
2020-10-12 21:25:41 -07:00
Kartik Agaram
1faea03428 7013 2020-10-12 19:00:16 -07:00
Kartik Agaram
32cc6779af 7012
Fix CI.
2020-10-12 12:08:25 -07:00
Kartik Agaram
6c21568f03 7011 - tile: keep garbage out of the stack 2020-10-12 11:39:28 -07:00
Kartik Agaram
598f942624 7010
A new example that better demonstrates the value of named arguments.
2020-10-12 10:10:31 -07:00
Kartik Agaram
855431280d 7009 - tile: real hotkey to quit 2020-10-12 10:07:55 -07:00
Kartik Agaram
4d985cda1e 7008 - tile: center menu 2020-10-11 23:06:13 -07:00
Kartik Agaram
5668acaf44 7007 - tile: hotkey to clear sandbox
Alternative symbols considered for the menu option:
  ∅
  AC (like in a calculator)
2020-10-11 23:00:45 -07:00
Kartik Agaram
e6c19a3465 7006 2020-10-11 22:56:46 -07:00
Kartik Agaram
fcdf04ee78 7005 - tile: move to start/end of line 2020-10-11 22:37:18 -07:00
Kartik Agaram
aceeba8d48 7004 2020-10-11 22:15:29 -07:00
Kartik Agaram
31a1ade9a2 7003 2020-10-11 22:11:03 -07:00
Kartik Agaram
9cbb6dce54 7002 - tile: next-word 2020-10-11 00:23:35 -07:00
Kartik Agaram
8c0d0c8464 7001 2020-10-11 00:17:24 -07:00
Kartik Agaram
1c441baf96 7000 - tile: previous-word also bumps up to caller 2020-10-11 00:11:04 -07:00
Kartik Agaram
28d99f031d 6999 - tile: move to previous word 2020-10-10 23:38:42 -07:00
Kartik Agaram
cfad9c494e 6998 2020-10-10 22:08:23 -07:00
Kartik Agaram
4b75c6b554 6997 2020-10-10 22:07:13 -07:00
Kartik Agaram
3d203a4484 6996 2020-10-10 21:43:34 -07:00
Kartik Agaram
7c2d5dc88b 6995 2020-10-10 21:40:03 -07:00
Kartik Agaram
24c4854223 6994 2020-10-10 21:32:43 -07:00
Kartik Agaram
818512d15a 6993 2020-10-10 21:31:33 -07:00
Kartik Agaram
07faf800ac 6992
Left arrow key out of an expanded word now working.

Still to fix: left arrow key out of the first word in the first word.
2020-10-10 21:30:02 -07:00
Kartik Agaram
ae6340f225 6991 - tile: nested calls now expanding
I just needed to remove an obsolete guardrail in render-line.

Still seeing some bugs with left-arrow when playing around with the full
expansion of `1 2+`.
2020-10-10 21:22:00 -07:00
Kartik Agaram
831a133a4b 6990
Bring back definitions for 1+ and 2+. Expanding nested calls still doesn't
work.
2020-10-10 02:08:46 -07:00
Kartik Agaram
dae19c9fe6 6989 - tile: arrow keys now seem to handle calls 2020-10-10 02:00:46 -07:00
Kartik Agaram
b25167a9ae 6988
Oh, of course. I can't compare the word with the word at the cursor. Not
even its interned pointer. We have to track the call path.
2020-10-10 01:43:12 -07:00
Kartik Agaram
e8367b2bc2 6987 - left-arrow to jump to caller/callee
Starting to work. I'm still seeing problems in lines with multiple expanded
calls, but perhaps that's a rendering issue.

The code is absolutely ghastly.
2020-10-10 01:42:58 -07:00
Kartik Agaram
f864cf0874 6986
Cursor now stays on the right row as we bounce in and out of function calls.
2020-10-09 23:43:24 -07:00
Kartik Agaram
5b7ccbc8f4 6985 - tile: make calls read-only 2020-10-09 23:35:19 -07:00
Kartik Agaram
cbd076e02c 6984 2020-10-09 23:32:50 -07:00
Kartik Agaram
6e93444ff4 6983 - tile: right-arrow can now move out of calls 2020-10-09 23:30:19 -07:00
Kartik Agaram
5ba974b4e5 6982 - right-arrow now moves into expanded calls
Rendering is still ugly. Cursor isn't on the right row. But the hard part
is behind us.

This was a stupid mistake in function-body, and it happened because I've
been getting lazy and passing (addr handle) objects when I should be passing
in "constant" addr objects.

I'm not sure why I was so resistant to debugging by print here. I spent
3 days waffling about with this bug.
2020-10-09 23:24:00 -07:00
Kartik Agaram
8c43582fb2 6981
Tile: simplify the contract for render-column.
2020-10-09 22:27:22 -07:00
Kartik Agaram
ec6221b485 6980
Changing tack..
2020-10-09 22:15:14 -07:00
Kartik Agaram
315926f732 6979
Use the fake-screen infrastructure we already have for non-interactive
mode.
2020-10-09 21:43:42 -07:00
Kartik Agaram
cb01075a2e 6978
We don't have tests yet in the tile prototype, mostly because we don't
yet feel confident about what desired behavior should be. But it's still
helpful to have a non-interactive mode for tracking down segfaults.
2020-10-09 21:25:32 -07:00
Kartik Agaram
7c6bb4d316 6977
Snapshot. We've gotten arrow keys navigating, but segfault when getting
to the second word in an expanded function call body.
2020-10-09 21:17:51 -07:00
Kartik Agaram
eb2ccccceb 6976 2020-10-09 21:10:14 -07:00
Kartik Agaram
0c465d1dcc 6975 2020-10-09 21:08:40 -07:00
Kartik Agaram
5659eccded 6974 2020-10-08 20:32:49 -07:00
Kartik Agaram
e9957c78da 6972 - tile: stop persisting cursor-word
Rather surprisingly, this transformation worked the first time!
2020-10-08 20:32:34 -07:00
Kartik Agaram
b8fd119b78 6969
Fix and cleanup.
2020-10-06 00:41:20 -07:00
Kartik Agaram
ce094a5d82 6968
Snapshot that requires a check in the Mu compiler.

Currently I don't spill a register if it could possibly be over-written
by a function output within. However, find-in-call-path is a good example
of where this constraint is too lenient and results in unsafe code. The
variable `curr` gets clobbered during loop update by the variable `match?`.

What's the answer? Perhaps we should ban all conditional updates to function
outputs? That'd be dashed inconvenient.
2020-10-06 00:36:28 -07:00
Kartik Agaram
e41bc160a0 6967
Function expand/contract still works, but the implementation is totally
different under the hood.
2020-10-05 22:21:27 -07:00
Kartik Agaram
a9e56c46c6 6966 2020-10-05 21:35:46 -07:00
Kartik Agaram
88e23b97df 6965 2020-10-05 21:32:45 -07:00
Kartik Agaram
c2844535f3 6964 - tile: start tracking word index in fn body 2020-10-05 21:22:42 -07:00
Kartik Agaram
21387ef514 6963 - tile: more idiomatic conventional repl 2020-10-05 21:09:42 -07:00
Kartik Agaram
6833b4542c 6962
Slowly hoist cursor-word from environment to sandbox. This isn't its final
destination.
2020-10-05 20:44:50 -07:00
Kartik Agaram
c626219e3f 6961 2020-10-05 20:37:47 -07:00
Kartik Agaram
5fa8e972d6 6960 2020-10-05 18:36:28 -07:00
Kartik Agaram
f13576b5d2 6957
The final fix to the raytracing program involves rounding modes. It turns
out x86 processors round floats by default, unlike C which has trained
me to expect truncation. Rather than mess with the MXCSR register, I added
another instruction for truncation. Now milestone 3 emits perfectly correct
results.
2020-10-05 10:25:25 -07:00
Kartik Agaram
fa2092a024 6953 2020-10-05 09:26:54 -07:00
Kartik Agaram
cdff5d73ce 6952 - raytracing: much better
The image is now visually indistinguishable from the baseline, though the
file isn't quite bit-for-bit correct.

I found 3 bugs:
a) I forgot to normalize the ray. After creating a helper to "automatically"
do it for me, it turns out said helper requires manually using.
b) I forgot to multiply by t at one place.
c) vec3-length was half-written.

For the umpteenth time, the bugs were all in the last place I looked. I
was worried about spending a lot of time transcribing `main` without any
feedback, but that turned out to be perfect.
2020-10-04 23:12:21 -07:00
Kartik Agaram
5c105a7aca 6949 - snapshot of next raytracing milestone
Not yet right, but worth a snapshot just because it gives a cool result.
Here, try it out:
  $ ./translate_mu_debug apps/raytracing/3.mu
  $ ./a.elf > x.ppm
Now view x.ppm as an image.

In general, this was quite tedious to write. And a still-open question
is how to emit the progress bar to stderr. My options are to either duplicate
all my print-* functions (already proliferating) or add global variables
to Mu.
2020-10-04 21:15:28 -07:00
Kartik Agaram
f5e1656d15 6948 - stress-testing prints of floats
Looks good.
2020-10-04 11:55:55 -07:00
Kartik Agaram
b8d613e7c2 6946 - print floats somewhat intuitively in hex 2020-10-04 11:18:23 -07:00
Kartik Agaram
93c6352dda 6943
Move some implementation around for floating-point.

I originally thought I wouldn't bother supporting sigils like %xmm0. But
it turns out I need them to pass floats into SubX function calls. And it
turns out the sigils work fine for free.
2020-10-04 00:54:57 -07:00
Kartik Agaram
1bf5d5f44e 6942 2020-10-04 00:19:54 -07:00
Kartik Agaram
2f5a8496e6 6940 2020-10-03 22:55:19 -07:00
Kartik Agaram
f6eba67645 6937 2020-10-03 20:24:14 -07:00
Kartik Agaram
cce9cda971 6935 - raytracing using floats 2020-10-03 20:17:08 -07:00
Kartik Agaram
4787d7d4b8 6934 2020-10-03 20:06:27 -07:00
Kartik Agaram
7b85e97ea8 6933 2020-10-03 19:50:24 -07:00
Kartik Agaram
42500e3f47 6932 - another bug related to floats
For most of Mu's history we've selected between primitives based on types
just by checking whether a type is a literal or not. Now we've started
checking if it's a float as well. However, floats need one additional check:
the call site may have an (addr float) that is dereferenced.
2020-10-03 13:55:52 -07:00
Kartik Agaram
c2ec9e21c9 6931 - support fp registers in variable lookup 2020-10-03 12:05:53 -07:00
Kartik Agaram
8719ea906d 6930 2020-10-03 11:40:26 -07:00
Kartik Agaram
b94e94e035 6927 - working on a raytracing tutorial
https://raytracing.github.io/books/RayTracingInOneWeekend.html
2020-10-03 00:24:57 -07:00
Kartik Agaram
4230946e6a 6925 - tile: don't try to print escape sequences 2020-10-01 22:49:31 -07:00
Kartik Agaram
f3ca0e3cb3 6922 2020-10-01 20:39:56 -07:00
Kartik Agaram
df04b364a6 6918
Fix CI.
2020-10-01 00:01:15 -07:00
Kartik Agaram
8d32a9aab9 6915 - a new family of Mu branch instructions
The realization of commit 6916 means that we should be using jump-if-addr*
after comparing floats. Which is super ugly. Let's create aliases to them
called jump-if-float*.
2020-09-30 23:46:43 -07:00
Kartik Agaram
72c42f90cf 6908 - compiling all floating-point operations
We don't yet support emulating these instructions in `bootstrap`. But generated
binaries containing them run natively just fine.
2020-09-30 21:17:37 -07:00
Kartik Agaram
558bf57587 6907 - converting to and from floating-point
Some bugfixes to the previous commit.
2020-09-29 22:17:25 -07:00
Kartik Agaram
c3176a3f70 6906 2020-09-29 21:41:58 -07:00
Kartik Agaram
a4ef7ce888 6905 - first floating-point instruction compiling
(Though the generated code doesn't work yet.)
2020-09-29 21:33:51 -07:00
Kartik Agaram
092205deb3 6904
New fields for primitives to support code-generation for floating-point
primitives.
2020-09-29 20:53:59 -07:00
Kartik Agaram
8246324ebb 6903
Make a few tests more self-contained.

I'd prefer to just run a function called `setup` first thing on startup
and move this portion of convert-mu to it:
    # initialize global data structures
    c7 0/subop/copy *Next-block-index 1/imm32
    8b/-> *Primitive-type-ids 0/r32/eax
    89/<- *Type-id 0/r32/eax  # stream-write
    c7 0/subop/copy *_Program-functions 0/imm32
    c7 0/subop/copy *_Program-functions->payload 0/imm32
    c7 0/subop/copy *_Program-types 0/imm32
    c7 0/subop/copy *_Program-types->payload 0/imm32
    c7 0/subop/copy *_Program-signatures 0/imm32
    c7 0/subop/copy *_Program-signatures->payload 0/imm32

However, this approach doesn't fix my run_one_test tooling.
2020-09-29 20:33:29 -07:00
Kartik Agaram
cf1ddc4170 6902 2020-09-29 19:24:29 -07:00
Kartik Agaram
d2b9c7283a 6901 2020-09-29 09:14:09 -07:00
Kartik Agaram
55847cde87 6900 - mu.subx: new primitive type 'float'
Using it will currently emit incorrect programs.
2020-09-29 03:51:32 -07:00
Kartik Agaram
8cd797a165 6899 2020-09-29 03:51:32 -07:00
Kartik Agaram
8b1da9bbb2 6898 - names for floating-point xmm* registers 2020-09-29 03:51:19 -07:00
Kartik Agaram
3a2888ae47 6895 2020-09-28 22:19:18 -07:00
Kartik Agaram
64a39b29eb 6891 2020-09-27 23:14:18 -07:00
Kartik Agaram
4f872e345a 6889
Teach the self-hosted translator about the new /xm32 and /x32 metadata
for floating-point registers.
2020-09-27 23:00:04 -07:00
Kartik Agaram
7258083c6f 6884 2020-09-27 07:32:08 -07:00
Kartik Agaram
866cccca76 6883 2020-09-26 23:55:44 -07:00
Kartik Agaram
abab2fdefd 6882 2020-09-26 23:51:23 -07:00
Kartik Agaram
fec64dbc76 6881 - tile: function calls can now be expanded 2020-09-26 23:50:05 -07:00
Kartik Agaram
6e0ff0e5dc 6880
We need the state of the stack at the call-site. But rendering is already
working surprisingly well.
2020-09-26 23:40:47 -07:00
Kartik Agaram
4578687622 6879
Extract a new function.
2020-09-26 23:29:14 -07:00
Kartik Agaram
6f4ff604de 6878 - tile: mock-up for expanding function calls 2020-09-26 23:24:55 -07:00
Kartik Agaram
009559f1fb 6877
Track just whether to step inside or not.
2020-09-26 23:07:11 -07:00
Kartik Agaram
866e6e72a8 6876
Back to commit 6872.
2020-09-26 23:05:36 -07:00
Kartik Agaram
e5aa1b3cb6 6875
Snapshot. Caching subsidiary stacks is a dead end; they're just the final
iteration. We need to render all iterations.
2020-09-26 23:02:39 -07:00
Kartik Agaram
270dce161f 6874 2020-09-26 23:02:03 -07:00
Kartik Agaram
78cfd370e5 6873
Now saving the subsidiary stack.
2020-09-26 22:27:09 -07:00
Kartik Agaram
62c539d8ac 6872
Hackily show function definition.
2020-09-26 22:14:36 -07:00
Kartik Agaram
ef7f0a540a 6871
Segfault now fixed. Everything seems to be working again.
2020-09-26 22:10:34 -07:00
Kartik Agaram
ebb93c6d58 6870
Emit a stack of not ints but more complex objects containing the int payload.

Function calls again segfaulting.
2020-09-26 21:59:50 -07:00
Kartik Agaram
65e6633b79 6869 2020-09-26 21:30:04 -07:00
Kartik Agaram
5babe16f2d 6868
First function call working in apps/tile!
2020-09-26 21:26:20 -07:00
Kartik Agaram
e46cfc2e0c 6867
Segfault fixed. This shouldn't have been so hard.
2020-09-26 20:47:52 -07:00
Kartik Agaram
42349345f4 6866 2020-09-26 20:15:45 -07:00
Kartik Agaram
b8682e7349 6865 2020-09-26 20:14:06 -07:00
Kartik Agaram
a060a4dc30 6864 2020-09-26 20:07:58 -07:00
Kartik Agaram
70dba10a6c 6863 2020-09-26 20:05:12 -07:00
Kartik Agaram
88d690ccad 6862
Fix CI.
2020-09-26 20:00:54 -07:00
Kartik Agaram
11d3ce7146 6861 - tile: conventional repl 2020-09-26 19:15:04 -07:00
Kartik Agaram
e0bceffe08 6860
Snapshot: tile currently segfaulting. I need to back up and make it easier
to debug.
2020-09-26 13:41:23 -07:00
Kartik Agaram
fca30f0f86 6859 2020-09-25 20:05:10 -07:00
Kartik Agaram
2929ca471b 6857 2020-09-25 16:58:18 -07:00
Kartik Agaram
bf1b3155fb 6856 2020-09-25 16:56:02 -07:00
Kartik Agaram
d061cbff87 6855
Get rid of cutesy justify thresholds. They didn't actually save me any
trouble, and they won't generalize to other literals besides ints.
2020-09-25 09:47:55 -07:00
Kartik Agaram
5914ed31a9 6854 2020-09-25 09:34:24 -07:00
Kartik Agaram
0ecd596b70 6853 - tile: initialize a test function definition 2020-09-24 21:17:25 -07:00
Kartik Agaram
a04f816cff 6852 - tile: placeholder for lexical scopes 2020-09-24 20:44:13 -07:00
Kartik Agaram
b27a1a2523 6851 2020-09-24 20:39:22 -07:00
Kartik Agaram
6d35f049cc 6850 2020-09-24 16:30:02 -07:00
Kartik Agaram
985f226801 6849 2020-09-24 16:28:15 -07:00
Kartik Agaram
7e7d298bfd 6848 2020-09-24 08:37:47 -07:00
Kartik Agaram
1fc5ce90ca 6846 2020-09-23 22:45:04 -07:00
Kartik Agaram
3daf4cb3e3 6845 2020-09-23 22:35:00 -07:00
Kartik Agaram
22a7849a5e 6844 - tile: initial data model
I actually deleted a test here! Hard-core prototype mode.
2020-09-23 22:24:51 -07:00
Kartik Agaram
91a254de16 6842 - hackily load local Vim settings
I have scripts to load vimrc.vim from the directory of the file being edited.
This hack loads vimrc.vim from the top-level mu/ directory when I edit
files in some common directories.
2020-09-23 21:43:23 -07:00
Kartik Agaram
3702858928 6841
Initial sketch for a menu bar.
2020-09-22 22:28:10 -07:00
Kartik Agaram
5234c224d0 6840
Extract "unmoving background" into a separate function.
2020-09-22 22:23:24 -07:00
Kartik Agaram
0160465466 6839
Not sure what I was seeing. clear-screen is plenty stable.
2020-09-22 22:19:30 -07:00
Kartik Agaram
89684e6677 6838
Interestingly, erasing the screen partially looks better to me even though
it's clearly slower. The divider never being redrawn provides a sense of
stability.
2020-09-22 22:10:26 -07:00
Kartik Agaram
4b3461fa0a 6837 2020-09-22 21:54:38 -07:00
Kartik Agaram
abfdb26cd3 6836 2020-09-22 21:53:43 -07:00
Kartik Agaram
670bf6ed01 6833 - tile: right-justify for negative numbers 2020-09-22 10:13:35 -07:00
Kartik Agaram
8152b0d109 6832 - tile: right-justify numbers
Fails noisily for negative integers so far.
2020-09-22 00:27:56 -07:00
Kartik Agaram
04d06dfe53 6831 - tile: preserve color contrast
Formula from Chris Maughan: (0.2126*R + 0.7152*G + 0.0722*B) > 0.5
2020-09-21 23:42:57 -07:00
Kartik Agaram
a4f5e38695 6830 - tile: hash bg rather than fg color 2020-09-21 21:38:22 -07:00
Kartik Agaram
e655f673b5 6829 - tile: colorize values on the stack 2020-09-21 21:27:44 -07:00
Kartik Agaram
2404478a7f 6828 2020-09-21 20:57:03 -07:00
Kartik Agaram
a71e5326bd 6827 - tile: make top of stack line up
Idea from the Future of Software group. I was resistant for several days,
because stacks should grow up, and because it didn't seem like a problem
that the first column's result grew farther and farther away from its input.
But eventually I noticed that the final result can also be arbitrarily
far below, which seems more serious.

This approach also has the salubrious effect of not requiring the precomputation
of max-depth.
2020-09-21 20:55:14 -07:00
Kartik Agaram
f8104b38dc 6826 - tile: indent columns compared to their final word 2020-09-21 20:48:12 -07:00
Kartik Agaram
4c363e6e49 6825 - tile: stop rendering the final word, in case it's incomplete 2020-09-21 20:45:55 -07:00
Kartik Agaram
ce1b997619 6824 - tile: gap in column width computation 2020-09-21 20:25:24 -07:00