1. 23

I proudly present the CLI/Mono version of the Oberon+ IDE as an alternative (and replacement in medium term) of the LuaJIT based IDE and toolchain.

Mono is a great technology and very well suited as an Oberon+ runtime environment. In contrast to LuaJIT it supports static typing on bytecode level and a corresponding speed-up. I did measurements with the Are-we-fast-yet benchmark suite and found a speedup factor 2.5 on Linux compared to LuaJIT (see https://github.com/rochus-keller/Oberon/blob/master/testcases/Are-we-fast-yet/Are-we-fast-yet_results_linux.pdf for more information). Mono is still sufficiently fast compared to the new CoreCLR engine from Microsoft; I did measurements with different versions of Mono and CoreCLR and found performance differences to be within 30% (see https://www.quora.com/Is-the-Mono-CLR-really-slower-than-CoreCLR/answer/Rochus-Keller for more information). I prefer Mono over CoreCLR because of wider platform support, the soft-debugger wire protocol (which the Oberon+ IDE uses) and the lean minimal configuration (less than 10 MB).

The generated assemblies have been successfully tested on Windows, macOS and Linux, with Mono, CoreCLR and .NET, 32 as well as 64 bits (with many issues fixed since the MVP release on October 1st).

Here is a version of the Oberon System as an example: http://software.rochus-keller.ch/OberonSystem_SDL_CLI_Assemblies.zip

Here are the binary versions (download, unpack/mount and run, no installation requried, examples included) for Windows, macOS and Linux i386:

http://software.rochus-keller.ch/OberonIDE_win32.zip

http://software.rochus-keller.ch/OberonIDE_macOS_x64.dmg

http://software.rochus-keller.ch/OberonIDE_linux_i386.tar.gz

And of course you can also build it yourself; build instructions are included in the referenced README.

  1.  

  2. 1

    Glad to answer questions.