Commit Graph

8620 Commits

Author SHA1 Message Date
Kartik K. Agaram
9ae724e1ec preserve indentation of the sandbox 2021-06-20 23:07:23 -07:00
Kartik K. Agaram
7045af7a4e 'with' lets us drop a few more parens 2021-06-20 22:33:05 -07:00
Kartik K. Agaram
fa26249931 new macro: with 2021-06-20 22:32:03 -07:00
Kartik K. Agaram
ecc763f092 new macro: ret
http://arclanguage.org/item?id=11068
2021-06-20 22:32:03 -07:00
Kartik K. Agaram
deb610367f start dropping parens everywhere 2021-06-20 21:29:33 -07:00
Kartik K. Agaram
6e1aa99a00 start guessing parentheses based on indentation 2021-06-20 21:18:38 -07:00
Kartik K. Agaram
9d7d99fe6c snapshot
This is going better than expected; just 3 failing tests among the new
ones.
2021-06-20 20:36:47 -07:00
Kartik K. Agaram
29795a0db4 start emitting indent tokens 2021-06-18 21:42:01 -07:00
Kartik K. Agaram
e5cf570890 redo next-token in more high-level terms 2021-06-18 20:39:33 -07:00
Kartik K. Agaram
80fb9ca9f4 . 2021-06-18 20:12:32 -07:00
Kartik K. Agaram
c6cb360544 . 2021-06-18 20:08:19 -07:00
Kartik K. Agaram
93e2e3f934 start emitting token for newline 2021-06-18 20:00:29 -07:00
Kartik K. Agaram
24275c3828 newlines are now a token 2021-06-18 19:54:01 -07:00
Kartik K. Agaram
dd133c2a09 start implementing indent-sensitivity
General plan:
  stop skipping newlines during tokenization
  introduce a new indent token, initially skip it transparently
  start doing cleverer things
2021-06-18 19:52:54 -07:00
Kartik K. Agaram
b5306cabd3 . 2021-06-18 19:40:35 -07:00
Kartik K. Agaram
2acc00f9b9 . 2021-06-18 07:54:24 -07:00
Kartik K. Agaram
c22dbbea39 make code in Readme easier to copy
Thanks Sumeet Agarwal for the suggestion.
2021-06-18 07:11:36 -07:00
Kartik K. Agaram
8c47da082b fix emulated build
Embarrassingly broken since May 15 (commit ff8ec9bcff).

Thanks Jack Rusher for reporting this.

(fixes #48)
2021-06-18 07:04:36 -07:00
Kartik K. Agaram
0f2d0d6abe shell: stop punning tokens as cells 2021-06-18 06:53:55 -07:00
Kartik Agaram
ee42915282
Merge pull request #47 from akkartik/fix-precision
Fix precision
2021-06-17 21:27:05 -07:00
Sumeet Agarwal
bad113ebc0 create .gitignore 2021-06-17 21:25:06 -07:00
Sumeet Agarwal
f36f022b08 change precision when loading sandbox code 2021-06-17 21:24:41 -07:00
Kartik Agaram
dd60caa3f5 . 2021-06-15 21:50:13 -07:00
Kartik K. Agaram
678c936633 . 2021-06-15 21:40:51 -07:00
Kartik K. Agaram
bca7f834c3 . 2021-06-15 21:40:40 -07:00
Kartik Agaram
614d0ecff4 . 2021-06-15 20:56:41 -07:00
Kartik Agaram
10687ed8bb . 2021-06-15 20:50:55 -07:00
Kartik Agaram
6515bace46 . 2021-06-15 20:41:34 -07:00
Kartik K. Agaram
b28899fe37 .
Support newlines. Looks like we pasted the input from the browser window
during the pairing session.
2021-06-15 20:38:53 -07:00
Kartik K. Agaram
03e6248c14 example program by Sumeet Agarwal
https://adventofcode.com/2017/day/1
https://archive.org/details/2021-06-02-akkartik-sumeet
2021-06-15 20:38:45 -07:00
Kartik Agaram
3a3fe4addb shell: better screenshot 2021-06-15 15:54:56 -07:00
Kartik K. Agaram
6280749410 always print black pixels when rendering screens
This is an old 'optimization' that turns out to not actually matter.
2021-06-15 15:37:37 -07:00
Kartik Agaram
3c70328b25 . 2021-06-15 14:57:55 -07:00
Kartik Agaram
0138b000a1 shell: improve docs 2021-06-15 14:48:52 -07:00
Kartik Agaram
88378503c4 . 2021-06-15 14:46:27 -07:00
Kartik K. Agaram
bc21fe0baf document responsiveness trade-off 2021-06-15 13:02:15 -07:00
Kartik K. Agaram
2bf7cb83ba do more work per fake-screen refresh
Refreshing the fake screen is still a heavyweight operation. Double-buffering
makes it less obvious but doesn't actually reduce the amount of work. We
need to ensure that we do enough work between refreshes to make them economic.
2021-06-15 12:36:38 -07:00
Kartik K. Agaram
8068b8450f more precisely track count of calls to eval
Before I only separately counted calls at each stack depth. I don't remember
if that seemed good enough or was just an oversight.
2021-06-15 12:28:52 -07:00
Kartik K. Agaram
c2c6f4c7ab flickerlessly render fake screens in environment
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.
2021-06-15 10:33:18 -07:00
Kartik K. Agaram
b9fea69687 . 2021-06-15 08:59:36 -07:00
Kartik K. Agaram
f99cd767a4 periodic run of misc_checks
I should really stop using /disp8 jumps at the top-level given how inconvenient
it is to check for overly large offsets.
2021-06-12 22:34:22 -07:00
Kartik K. Agaram
0511b9fd11 helper to render fonts outside video RAM, take 2 2021-06-12 22:22:54 -07:00
Kartik K. Agaram
bda6982ba1 fix a bounds check
This should have gotten cleaned up during commit e0f6dd5240 (Mar 23).
2021-06-12 21:58:31 -07:00
Kartik K. Agaram
242b83ed46 roll back previous commit
These helpers don't actually help render to buffers with geometries different
from video RAM.
2021-06-12 21:41:50 -07:00
Kartik K. Agaram
b78bff9307 extract a helper to render fonts outside video RAM 2021-06-12 21:41:02 -07:00
Kartik K. Agaram
0dda332ce3 .
Roll back to commit 70919b45f0. Recent commits add lots of extra function
args for dubious benefit.
2021-06-12 21:11:22 -07:00
Kartik K. Agaram
82fdf176c1 snapshot
Looks like what's slowing down screen rendering is in fact _font_ rendering.
2021-06-12 21:11:03 -07:00
Kartik K. Agaram
85bcf050e7 . 2021-06-12 17:50:30 -07:00
Kartik K. Agaram
9b5b3bccd1 trying to eliminate flicker when rendering screen
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_.
2021-06-12 17:40:53 -07:00
Kartik K. Agaram
286819685e eliminate some implicit writes to real screen 2021-06-12 16:24:27 -07:00