| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
In the process we uncovered yet another out-of-bounds access, in the
implementation of 'reply'. Another sign from the gods that large-scope
pointers/references are a bad idea.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Chip away at eliminating that 'pc' reference by first throwing out the
most common expression that uses it: instructions[pc].
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Each phase implicitly calls previous phases.
Most C++ scenarios implicitly call one, two or three of the phases.
More clear now that 'load' does more than just add recipes.
|
|
|
|
|
| |
This first step is just stopping run() after a fixed number of
instructions. But the scheduler layer isn't done yet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's a test in this commit, but it doesn't actually fail, because by
some accident the memory at index 2 of recipe 'f' has data at the
is_label offset and breaks out of the loop. Graah. How did I ever
misplace that "Reading One Instruction" waypoint? I could swear I was
concerned about this possibility when I implemented calls.
Today has been tough on my confidence. STL helps avoid memory leaks but
doesn't help with buffer overflows nearly as much as I thought.
Oh brilliant, valgrind caught the problem! And there weren't any others.
I feel much better.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Drop the ability to run just some C++ tests. It's a lousy interface
to use line numbers, we can't selectively run mu tests, we haven't used
it in a while because our tests run plenty fast, and it's complicating
other parts, like Next_recipe_number and test space handling.
2. Create a new layer right up top to show the usage message and all the
different forms that are possible. Good for documentation until we come
up with a way to put the different forms in their own layers. At least
it's out of the test layer now.
3. Strengthen the assertion that no recipes exist in test space before
we start running any sorts of tests. Earlier it was possible for
files loaded explicitly to overflow into test space because we were
asserting before load, not after. Now we check if we need to run tests,
load all files, then make the assertion, run tests, and exit if
necessary.
Now we don't need to mess with commandline args at all in layer 50.
That's a sign that we're on the right track.
|
|
|
|
|
|
|
| |
Required still more tweaking of Recipe namespaces. Mindlessly inserting
setup() took a couple of hours to debug because the test function and
the function it was testing ended up getting the same recipe number,
with the inevitable infinite loop :/
|
| |
|
|
|
|
|
|
| |
We have tangled vs regular comments, but they highlight the same. So
we're still at 3 colors for comments. Anything more starts to seem
gratuitous.
|
| |
|
| |
|
|
|