[SPAM | WERBUNG] Is there an Oberon System 3 or 4 version known to work on modern Linux kernels?
I downloaded and tried all Linux x86 versions of the original Oberon Systems 3 and 4 I found and tried to run them on Debian Bookworm, but I get nothing but segfaults. Does anyone have a version which was built with and includes a OP2 lineage compiler, and which runs on current Linux kernels? Thanks R.K.
Hi Rochus, OberonV4 for Linux (available at https://sourceforge.net/projects/oberon/files/Oberon%20V4%20for%20GNU_Linux/) should run on actual Linux kernels, given 32bit support is installed, see thread started by Richard Hable (https://lists.inf.ethz.ch/pipermail/oberon/2025/017029.html) some time ago. You have to edit the sob script according to Tools&Tips on SF (https://sourceforge.net/p/oberon/wiki/Tools/). OLR by Peter Matthias (see http://oberon.wikidot.com/oberon-linux-revival-olr) is System 3 and I have succeeded on several systems running on a framebuffer console and on some X11. On some systems I had to adjust/experiment with the environment variables; they are documented on the referenced page. Feel free to contact me by PM, if you still have problems. regards -- Bernhard On 18.07.25 14:05, Rochus Keller wrote:
I downloaded and tried all Linux x86 versions of the original Oberon Systems 3 and 4 I found and tried to run them on Debian Bookworm, but I get nothing but segfaults.
Does anyone have a version which was built with and includes a OP2 lineage compiler, and which runs on current Linux kernels?
Thanks R.K.
@ Bernhard Treutwein Thank you very much for the links. I can confirm that both versions indeed start and seem to work on my Debian bookworm. The files of the V4 1.7 version have a modification date of November 2004, which is amazing. The compiler seems to be the OP2 version by N. Mannhart with the "pseudo Risc" IR, with changes up to August 1997, which is exactly what I was looking for. I had tried with an earlier version of OLR which crashed at start, but this one now runs, although it goes into infinite loop when closing the window, so I have to kill it. At first glance, the compiler seems to have changed quite a bit compared to Mannhart's version, so I will try my luck with V4. Best regards R.K. _______________________________ From: Bernhard Treutwein Sent on: Mon, 21 Jul 2025 17:11:53 +0200 To: oberon@lists.inf.ethz.ch Cc: Subject: Re: [Oberon] [SPAM | WERBUNG] Is there an Oberon System 3 or 4version known to work on modern Linux kernels? Hi Rochus, OberonV4 for Linux (available at https://sourceforge.net/projects/oberon/files/Oberon%20V4%20for%20GNU_Linux/) should run on actual Linux kernels, given 32bit support is installed, see thread started by Richard Hable (https://lists.inf.ethz.ch/pipermail/oberon/2025/017029.html) some time ago. You have to edit the sob script according to Tools&Tips on SF (https://sourceforge.net/p/oberon/wiki/Tools/). OLR by Peter Matthias (see http://oberon.wikidot.com/oberon-linux-revival-olr) is System 3 and I have succeeded on several systems running on a framebuffer console and on some X11. On some systems I had to adjust/experiment with the environment variables; they are documented on the referenced page. Feel free to contact me by PM, if you still have problems. regards -- Bernhard On 18.07.25 14:05, Rochus Keller wrote:
I downloaded and tried all Linux x86 versions of the original Oberon Systems 3 and 4 I found and tried to run them on Debian Bookworm, but I get nothing but segfaults.
Does anyone have a version which was built with and includes a OP2 lineage compiler, and which runs on current Linux kernels?
Thanks R.K.
In case anyone is interested, I migrated a subset of the Are-we-fast-yet benchmark suite to Oberon 90 and run it on the Oberon System V4 release 1.7 x86 on two different machines and Linux versions. The summary can be found at github.com/rochus-keller/Are-we-fast-yet/blob/main/Oberon90/Results/Summary.md It compares the Oberon with the C performance with different optimization levels. Best regards R.K.
Hello Rochus, Am 24.07.2025 um 02:19 schrieb Rochus Keller:
In case anyone is interested, I migrated a subset of the Are-we-fast-yet benchmark suite to Oberon 90 and run it on the Oberon System V4 release 1.7 x86 on two different machines and Linux versions.
The summary can be found at github.com/rochus-keller/Are-we-fast-yet/blob/main/Oberon90/Results/Summary.md It compares the Oberon with the C performance with different optimization levels.
That does not surprise me at all. More interesting would be using a "period correct" gcc version (i.e. something created at the same time as the Oberon compiler, more like gcc2 than gcc12). Or at least limit it to the instruction set emitted by the Oberon compiler (I assume it is equivalent to -march=i386). Modern gcc versions usually either target MMX or even AVX and this makes a huge difference when unrolling loops with maths in them. And on the other hand, when you want to see what an optimizing compiler can do on your machine, use "-march=native -mtune=native" to generate code that uses the exact instruction set of the machine you are compiling on (Spoiler: Probably not much difference. However, it will *decrease* the gap between 32-bit and 64-bit as the default 32-bit target is something like Pentium2 and the default 64-bit target is quite a bit newer). Regards, Michael
@ Michael Schierl Thanks for the feedback. I didn't look at the details of the OP2 code generator, just at the modification history. The version included with the Oberon System V4 in use is not younger than 1997, and the modification date of the source files is 2004. The Pentium Pro (i686) appeared in 1995. Both GCC versions I used default to i686, so I left the architecture as is. Unfortunately I don't have "period correct" GCC versions, but I think it is fair to assume that at least the -O0 version could be expected to have generated code with similar performance as todays versions. To be on the safe side, I re-run the benchmarks on the EliteBook with GCC 4.8.2 with explicit "-march=i486 -mno-mmx" options. The comments in the Oberon source code state "code generator for Intel i386, i387/ i486", so I assume that -march=i486 is a fair choice (-mno-mmx is redundant when using -march=i486). I added the results to a new sheet in the file "Results Mint Rebecca HP EliteBook 2530p.ods". As you can see, the results are pretty much the same. Maybe NBody would have rendered a bigger difference, but it doesn't work so far, and I didn't use it. Best regards R.K.
Hello, Am 18.07.2025 um 14:05 schrieb Rochus Keller:
I downloaded and tried all Linux x86 versions of the original Oberon Systems 3 and 4 I found and tried to run them on Debian Bookworm, but I get nothing but segfaults.
Does anyone have a version which was built with and includes a OP2 lineage compiler, and which runs on current Linux kernels?
Assuming you are using a 64-bit (x86_64) Bookworm, try to edit the launcher script to launch the binaries like this exec setarch i386 -X ${ohome}/linux.oberon "$@" -c That way, the process runs in a 32-bit personality with NX disabled and at least for me there are no segfaults that way. (Some X11 graphics glitches, but no segfaults). Hope this helps (anyone), Michael
participants (3)
-
Bernhard Treutwein -
Michael Schierl -
Rochus Keller