1. 15
  1.  

  2. 3

    This is cool!

    To make the obligatory comment about C FFIs: It’s sad that today the best way for Oberon to use Rust code is for that Rust code to expose a C interface. C has such limited expressiveness; we need a better way to do cross-language code reuse that doesn’t force everything through the narrow aperture of C.

    1. 1

      Thanks. Oberon uses C as a low-level feature, and also can make use of the many field-proven C libraries or libraries with a C API. C has not a limited but a frighteningly large expressivness; there are nearly no limits on what can be done in C. The idea is to do the critical stuff in Oberon (or Rust if you prefer). While the FFI language cannot avoid e.g. dangling pointers, it doesn’t allow many risky things you can do in C. If you require something like inter-language type or memory safety there is already the CLI (ECMA-335) which is optimized for this.