| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Also standardized warnings.
|
| |
|
| |
|
|
|
|
|
|
| |
A couple of times now I've accidentally named a scenario the same thing
as a recipe inside it that I define using 'run' or something. The
resulting infinite loop is invariably non-trivial to debug.
|
|
|
|
|
|
|
|
|
| |
More verbose, but it saves trouble when debugging; there's never
something you thought should be traced but just never came out the other
end.
Also got rid of fatal errors entirely. Everything's a warning now, and
code after a warning isn't guaranteed to run.
|
| |
|
|
|
|
|
| |
Also, turns out I haven't been building 999spaces.cc in my default
build. Now fixed.
|
| |
|
| |
|
|
|
|
|
| |
Just in case we had many lines of warnings before that are now cleared
up. Again, I'm feeling confident enough to not write a test.
|
| |
|
|
|
|
|
|
| |
Don't die on unbalanced '{'.
I won't bother adding more tests for warnings. Suffice it to say that we
need to gradually eliminate all asserts that check for illegal mu code.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eventually we might be able to get rid of die entirely.
This is just a preliminary stab at a random error. In the process I ran
into two issues that have impeded debugging before:
a) Naming conflicts within scenarios are a real no-no. I need to warn on
them, but the rules are getting complicated:
Always print warnings on redefine
But not in interactive mode
Or in scenarios checking warning behavior
Unless the scenario recipe itself is overridden
b) Now that we've added collect_layers and a long time can go between
traces, debugging is a minefield because trace lines don't print to
screen immediately after they're created. Need to do something about
that. Maybe explicitly trigger collection by tracing '\n' or something.
These are the next two items on my todo list.
|
| |
|
| |
|
|
|
|
|
|
| |
Starting to feel some need to test this persistence support. Next time
I'll create a fake storage handle and support for 'assume-storage
filename'.
|
| |
|
| |
|
| |
|
|
|
|
| |
How did this image get corrupted?
|
| |
|
|
|
|
|
|
|
| |
No restore. We'll have to do that manually for the first lesson.
The version control is also super ugly; every save creates a new commit.
But that's ok; version control is just the backup of last resort.
|
| |
|
|
|
|
|
| |
We want to avoid accidentally mixing lessons into ourselves. Require
users to git-enable it first.
|
|
|
|
|
|
|
| |
Very rudimentary ability to read/write from file+version control. No
control over name.
Recipes now saved. But what to do about sandboxes?
|
|
|
|
|
| |
Otherwise can't use colors inside recipes! This will do for now, until
we start distinguishing '[' at end of line.
|
| |
|
|
|
|
|
| |
Nice to get a couple of easy wins under my belt after the troubles with
memory corruption.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The recent session makes me weary of deleting comment counts from inside
strings, and the newlines everywhere take up vertical space. Considered
println like pascal/ruby, but I'd like something I can add/remove at the
end of existing prints. So this hack for $print.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rendering the screen was easy to fix: I'd just never gotten around to
printing anything but spaces.
Rendering the 'screen:' was harder. Turned out I wasn't incrementing
row, and so the screen contents were overwriting the header. Much
fiddling with row ensued. Still unclear if I have a sane policy for
managing row. I don't leave cursor on start of next line after
render-string (relying on run-interactive to return strings terminated
by newlines) but I do so in render-screen.
Never mind, all architecture is illusion and all programs sit on the
edge of chaos. This is just the best way I know how to permit others to
periodically reclaim architecture from chaos by expending energy. But
it'll never be perfect.
Crash-only architecture for the win.
|
|
|
|
|
|
|
| |
Between it and support for printing screens our tests take twice as long
to run as they did two days ago.
Still the one failing test. Finishing all this cleanup first.
|
| |
|
|
|
|
|
| |
Bring back my optimizations for avoiding unnecessary work. But they
shouldn't be needed for correctness, and they aren't.
|
| |
|
|
|
|
|
|
| |
Now we can investigate the remaining issues:
print-string to main screen not working to print 'screen:'
print-integer to toy screen not working to print '4'
|
|
|
|
| |
I was counting locations when I should have been counting elements.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Things I figured out:
- 'row' in render-screen doesn't perfectly track cursor-row in screen
- proximal cause was forgetting to add left:number to stop-printing
- trying to print to screen outside bounds was silently succeeding and
corrupting simulated memory
- if we silently ignore prints outside bounds things are fine
But why are prints outside screen bounds working? We should be accessing
screen data using 'index', and that's checking its bounds.
|
| |
|