| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
4:26 compared to 6:20 on my laptop.
|
|
|
|
| |
This speeds up the final test but not all together.
|
|
|
|
| |
Something wrong with my profiling, though. Numbers aren't adding up.
|
| |
|
|
|
|
|
| |
Tests are getting slow so quickly that I'm tempted to push forward the
rewrite to C.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Don't prevent run-code from clobbering existing functions, but warn
because it makes traces easier to read if the different sections of a
test can be distinguished.
|
|
|
|
|
| |
Now that we aren't loading system software for every test we can afford
to log the loading of test functions.
|
| |
|
| |
|
|
|
|
|
| |
This was painless compared to the chessboard app. Still need to handle
input, though. Fingers crossed..
|
| |
|
|
|
|
| |
This had been on hold for some time; dependencies are crutches.
|
|
|
|
|
|
|
| |
We'll keep it around for keyboard input now, for the nice scancode
names.
Ansi escape codes from http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Just forget about unicode for now.
|
|
|
|
| |
Doesn't quite work yet; I can't have spaces after labels.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For now we want to parse two labels:
'run', identifying call stack, op and args
'mem', distinguishing reads and writes
This should give us fodder for a few weeks, to build both a folding UI
for individual statements and descending the call stack, and also a
query engine that can figure out sources and sinks in the trace graph.
|
|
|
|
|
|
| |
But now that we've added the keyboard parameter to process-keys,
modifying it in a recursive call also clobbers it in the caller. All
because of my weird, non-standard use of shared scope.
|
| |
|
|
|
|
|
|
| |
Swap printing generalized objects using arc's infrastructure to be the
$-prefixed debug helper, while the erstwhile $print-key-to-host becomes
the primitive print-character to host.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
process-key is extracted to work on a given character, but its helpers
for parsing strings and comments still read keys directly from keyboard.
Still, this took long enough to get working that it's worth saving.
Milestones:
a) figuring out how to debug without dumping trace crap on the screen
in cursor mode.
b) realizing you can't assign directly to result in the up case. Have
to let the recursive call do it.
c) replacing continuations in 'process-key'.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
You can't just extract the array from inside a buffer. Its length isn't
right. Only reason we didn't catch this sooner is I think that arc's
simulated memory is initialized to all nils, which has some
serendipitous properties.
I should initialize memory to random values one of these days and see
what shakes out.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We'll make 'buffer' properly generic at some point. Basically need to
support multi-word types.
x:list:integer <- copy y:list:integer # ok
x:list <- copy y:list:integer # ok
x:list:integer <- copy y:list # error
We'll need a separate runtime operator like maybe-coerce for the third
case.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the right time for this change I've been meaning to make,
because it lets me drop my hack in 'abort-to'.
'abort-to' is likely still a bad idea because:
a) Just because this example doesn't need to clear a few things on
abort doesn't mean such use cases don't exist. In other words, there's
no way to tell if your stack frame recently returned from an abort.
That question isn't even well-posed at the moment; what does
'recently' even mean?
b) I may need to run deferred statements on each stack frame, and it's
not clear how to rewrite 'defer' to be robust to aborts. Exceptions
entering through the back door?
Looks like all this is expected when implementing exception-like
behavior using continuations:
http://matt.might.net/articles/implementing-exceptions
c) Of course we don't have composable exceptions. I still don't grok
the value of that. We don't need yield since we have channels. What
else might we need continuations for? Let's try to come up with a
clean way to implement the amb operator or something.
http://www.randomhacks.net/2005/10/11/amb-operator
|
|
|
|
|
|
|
| |
Poor man's continuation. Not first class or delimited yet. And we see
the problem: hard to specify precisely what to do after unwinding the
stack. We start reaching for a try/catch statement. But let's see if
there's a better way.
|
|
|
|
| |
Yet another 'grow-buffer' bug.
|
|
|
|
| |
'grow-buffer' was never working until now. Too much spiking lately.
|
|
|
|
| |
'#\\' only contains one escape character: the first backslash
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|