The compiler is running itself as missions. These are event-based missions. They are executed synchronously, but they are executed.
Tests now show that we can run event-based missions & execute all parts of those missions. Next up: change he compiler over to using these new kinds of missions. Also make these new missions be run by fools.
Message-oriented missions now execute asynchronously under the control of Fools. Each fool is guaranteed to be doing only one thing at a time (though that isn't tested).
Switched over to using the new style of missions in the main compiler. Of course, the compiler now crashes and dies, due to subscribing to an event while processing that event. Dunno why this didn't cause a failure in test, given that I do have a test for it. But oh well - will have to fix in next commit.
Program uses new message-based missions exclusively. Crashes, and am unable to repro in test. Want to set a checkpoint.
Cleaned up the execution & waiting. More efficient, more thread-safe. Going to go a new direction on message delivery guarantees, so want to get commit-clean.