Live data from Hacker News

Selfie – Tiny self-compiling C compiler, RISC-V emulator and hypervisor

selfie.cs.uni-salzburg.at

21–30 of 32 posts

Re: Selfie – Tiny self-compiling C compiler, RISC-V emulator and hypervisor

#23

No boolean operators?! That's an odd choice.

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.

Re: Selfie – Tiny self-compiling C compiler, RISC-V emulator and hypervisor

#25
@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.

Re: Selfie – Tiny self-compiling C compiler, RISC-V emulator and hypervisor

#27

What drivel. Make an artificial language which nobody uses, with a target architecture=X. Post it pretending that it is relevant. I Call BS on OP

The language is a strict subset of C modulo some small semantical differences that are relevant for bootstrapping, see https://github.com/cksystemsteaching/selfie/blob/master/sema...

Re: Selfie – Tiny self-compiling C compiler, RISC-V emulator and hypervisor

#28

Earlier quoted context omitted.

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?

Oberon is implemented in itself: http://www.projectoberon.com The implementation includes the hardware too. Taken together, the system including single-tasking OS, windowing system and Oberon takes about 9000 lines of code.

Even better, A2/bluebottle is multithreaded with a ZUI and runs faster than Linux:

https://www.research-collection.ethz.ch/bitstream/handle/20....

Also, following on from A2, Composita introduces a component architecture to allow managed memory without GC, and contextless switches (IMHO better than Rust):

http://concurrency.ch/Content/publications/Blaeser_Component...

Re: Selfie – Tiny self-compiling C compiler, RISC-V emulator and hypervisor

#30
post #3

I think Oberon would be a better candidate for this than C. You could get a tiny and extremely fast compiler for a full-featured programming language.

You can get a proper C compiler in 2KLOC [or under 5Kloc of assembly https://github.com/oriansj/mescc-tools-seed/blob/master/x86/... | https://github.com/oriansj/mescc-tools-seed/blob/master/x86/...] Covering things like gotos, inline assembly, structs, unions, arrays and dozens of types and primitives.

Oberon doesn't provide much advantage over that.

Post reply on HN