Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't know enough about Oberon and the Modulas as I should, but I'm guessing GC was the default and was required for safety? The libraries required GC too?

GC was originally intended to be the most common form of allocation in Rust, but once linear types and regions were properly implemented it turned out that GC wasn't nearly as necessary as was previously thought. It is definitely useful though for some use cases, which is why it will be built as a library, with language hooks to make it clean to use, but users definitely won't have to pay for it if they don't use it.



The GC was part of the kernel.

The whole operating system was implemented in Oberon, just with Assembly for the usual parts there is no way around it.

Both languages have value types and stack allocation as well. GC is only used for explicitly allocated heap data.

Modula-3 allows for declaration of untraced references as well.


Ahh - your comments about Unix taking the wrong path in another story have more context now - I wasn't aware that GC had been integrated into an actual working kernel in the wild. Very interesting!


If you want to read about the very first Oberon implementation, here is some info,

http://www.inf.ethz.ch/personal/wirth/ProjectOberon/

Afterwards, there were improved systems which provided a better experience, improved the programming language and had some parts moved from Assembly into proper Oberon. Namely EthOS and Active Oberon (AOS/Bluebottle).

If such systems had got industry support, who knows how mainstream computing would be now.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: