@all Thanks a lot for your awesome comments and feedback.
Besides compiler, emulator, and hypervisor, there is a symbolic execution engine in selfie that we are working on and would love to get feedback from you. The goal is to teach, eventually, a more formal approach when reasoning about correctness already in undergraduate classes. But the engine is also a research vehicle, especially the bounded model checking part.
Beautiful, beautiful project. Containing the deepest twists of computation in a single file, and not a single #include. I only missed it including a text editor. Love it!
I just looked into the project and the slides are incredible. It would be nice if more professors would put so much effort into creating slides and not just take over the previous one and present them.
I'm looking into self-hosting compilers, is there a good link for Oberons code that achieves this? Or you just are mentioning that Oberon would probably be able to if one were implemented?
Also, following on from A2, Composita introduces a component architecture to allow managed memory without GC, and contextless switches (IMHO better than Rust):
We chose not to include support of Boolean operators and instead ask the students to implement that as part of an assignment. We use a self-grader for that. There is an assignment for bitwise Boolean operators. The assignment for logical Boolean operators with lazy evaluation is work in progress.
(Such links are for the curious. Reposts are ok after about a year: https://news.ycombinator.com/newsfaq.html)