about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 645Kartik K. Agaram2015-01-271-2/+7
|
* 644 - backspacing out from within strings/commentsKartik K. Agaram2015-01-271-12/+23
| | | | | | | | | | | | I'd worried last night that I'd have to track the points where comments/strings begin, but at least so far this is elegant. Might run into problems when I try to backspace over strings after ending them. And backspacing over comments after terminating them is a whole different ball of wax. We still can't backspace over newlines because we can't move the cursor across lines because we can't tell where our cursor currently is. And even if we could tell we'd need to track how long each line is. A new data structure is needed..
* 643 - bug in use-before-set logicKartik K. Agaram2015-01-272-16/+10
| | | | | | | | Ran into this in color-repl.mu: I wasn't checking struct variables in 'get' operations. Still no way to test for use-before-set logic. But we'll fix it when we leave arc behind.
* 642 - repl app: backslash quoting in stringsKartik K. Agaram2015-01-271-0/+24
|
* 641Kartik K. Agaram2015-01-271-11/+13
| | | | | | Looping/breaking more than one block feels brittle somehow. It's not like java where the language can distinguish loops from other blocks. I think I'm just going to use jumps for more than one block.
* 640 - some todos for testsKartik K. Agaram2015-01-271-0/+10
|
* 639Kartik K. Agaram2015-01-271-1/+1
|
* 638 - quick spike: syntax highlighting in replKartik K. Agaram2015-01-273-4/+208
| | | | | | | | | | | | | | | Backspace kinda works. Parens are colored in three rotating colors which helps with balancing. Comments and strings are colored. But it's hard to handle backspace in all situations. Like if you backspace over a quote you have to either quit the string-slurping routine you're in, or return to string slurping mode. Similarly for comments; *there* you don't even have a end delimiter to let you know you're back in a comment. You have to keep track of what came before. I experimented with a library but it interacts poorly with the charterm library I'm already using. Ended up with a gross inefficient approach instead.
* 637 - show repl errors properlyKartik K. Agaram2015-01-261-0/+2
| | | | | We'll never be able to avoid dying on syntax errors. But hopefully we can make sessions easy to restore.
* 636 - a repl utility for arc in muKartik K. Agaram2015-01-261-0/+103
| | | | | | | Next step: convenience features like balancing parens, coloring parens. For that I'll have to leave line-based buffering behind. My workflow seems to be spike-test-clean.
* 635Kartik K. Agaram2015-01-262-3/+54
|
* 634Kartik K. Agaram2015-01-262-6/+53
|
* 633Kartik K. Agaram2015-01-261-1/+1
|
* 632Kartik K. Agaram2015-01-261-2/+1
|
* 631 - temporary: hook into underlying arc 'eval'Kartik K. Agaram2015-01-262-0/+21
|
* 630 - routines can now allocate unlimited memoryKartik K. Agaram2015-01-262-13/+11
|
* 629Kartik K. Agaram2015-01-262-15/+45
|
* 628Kartik K. Agaram2015-01-261-0/+27
|
* 627Kartik K. Agaram2015-01-262-4/+29
|
* 626 - start eliminating the memory-per-routine limitKartik K. Agaram2015-01-262-5/+31
|
* 625 - guard against errors with input-output argsKartik K. Agaram2015-01-252-16/+45
| | | | | | | | | | | (Another attempt at 623.) I dunno, this may all be a wild goose chase. I haven't been disciplined in tagging in-out arguments in 'read-move' and its helpers. Maybe I should just drop those 'nochange' oargs in 'read' and 'write'. Maybe I should reserve output args only for return values that callers might actually care about, and use more conventional metadata like 'const' or 'unique' or 'inout' on other args.
* 624 - no, that's all wrong, scratch 623Kartik K. Agaram2015-01-257-76/+46
|
* 623 - 'nochange' to guard against race conditionsKartik K. Agaram2015-01-258-55/+93
| | | | | | | | | I dunno, this may all be a wild goose chase. I haven't been disciplined in tagging in-out arguments in 'read-move' and its helpers. Maybe I should just drop those 'nochange' oargs in 'read' and 'write'. Maybe I should reserve output args only for return values that callers might actually care about, and use more conventional metadata like 'const' or 'unique' or 'inout' on other args.
* 621 - fix race condition in buffered-stdin.muKartik K. Agaram2015-01-252-19/+24
|
* 620 - fix broken examples and tests againKartik K. Agaram2015-01-254-26/+63
| | | | | | | | | I just did this in 611; what's the point of all this if tests can't stay passing? I don't understand why buffered-stdin.mu needs to preempt itself. stdin and buffered-stdin somehow end up sharing a single circular buffer, that's probably causing a race condition.
* 619 - chessboard now working rightKartik K. Agaram2015-01-252-5/+28
| | | | | | 2 bugs found: a) Have to slurp the newlines. b) Have to clear the line-buffer at the start of each line.
* 618Kartik K. Agaram2015-01-252-0/+0
|
* 617Kartik K. Agaram2015-01-251-92/+0
|
* 616 - buffered-stdin handles backspaceKartik K. Agaram2015-01-254-2/+46
| | | | Chessboard now *almost* handles backspace perfectly.
* 615 - eliminate scheduler non-determinismKartik K. Agaram2015-01-241-2/+5
|
* 614Kartik K. Agaram2015-01-241-0/+1
|
* 613 - support for interrupting with ctrl-cKartik K. Agaram2015-01-241-0/+3
|
* 612 - support for the backspace keyKartik K. Agaram2015-01-241-0/+7
|
* 611 - all tests passing againKartik K. Agaram2015-01-242-15/+9
|
* 610 - all examples working againKartik K. Agaram2015-01-243-7/+3
|
* 609Kartik K. Agaram2015-01-241-7/+7
| | | | Shove the complexity of reading newlines as low as possible.
* 608Kartik K. Agaram2015-01-241-3/+2
|
* 607Kartik K. Agaram2015-01-241-3/+9
| | | | | | Shove the complexity of printing newlines as low as possible. Definite instability in that one trace.
* 605 - example program for line-oriented inputKartik K. Agaram2015-01-243-2/+45
| | | | | | | | | | We need the hack of printing characters typed to screen right after we see them. But only when it's the real screen. And there's no way to write a test for that because it explicitly shouldn't happen for fake terminals :( Never mind, we'll be able to test it when we provide some mechanism for suppressing print. The equivalent of 'stty -echo'.
* 604 - new function to buffer stdinKartik K. Agaram2015-01-242-5/+129
| | | | | Still surprisingly hard to debug. We might be barking up the wrong tree. Or we might just need to lump it. System software is hard.
* 603Kartik K. Agaram2015-01-241-9/+12
|
* 602Kartik K. Agaram2015-01-241-6/+9
|
* 601 - fix callers of 'read-key'Kartik K. Agaram2015-01-243-3/+4
|
* 600 - fake keyboardKartik K. Agaram2015-01-222-9/+61
| | | | | Use asynchronous channels like 'stdin' for most tests. Use the synchronous fakes for testing low-level stdin helpers.
* 599Kartik K. Agaram2015-01-211-1/+0
|
* 598 - clear up a minor mysteryKartik K. Agaram2015-01-213-4/+11
|
* 597Kartik K. Agaram2015-01-212-8/+14
|
* 596Kartik K. Agaram2015-01-212-78/+48
|
* 595 - tests can now interrupt and restart routinesKartik K. Agaram2015-01-214-832/+70
| | | | Also cleaned up much of the mess in 594.
* 594 - random snapshot after a lengthy debugKartik K. Agaram2015-01-214-13/+860
| | | | | | I'd caused a bug in Arc: https://github.com/arclanguage/anarki/commit/97b3464256 Almost done interrupting and restarting routines.