[Oberon] Hennessy.Mod (was: Fwd: IDE with integrated sourceleveldebuggerandLuaJITVM running the Oberon System)
rochus.keller at bluewin.ch
rochus.keller at bluewin.ch
Mon Feb 17 23:57:57 CET 2020
@ Michael Schierl
Originally I found it here: http://oberon.wikidot.com/obenchmarks and after additional search I found the download link to the source as referenced in the Readme file.
I was actually using this version since October: https://github.com/rochus-keller/Oberon/blob/master/testcases/Hennessy.Mod
It doesn't depend on the Oberon System anymore and works pretty well with my OBNLC. Here are the benchmarks when run on my (old) laptop: https://github.com/rochus-keller/Oberon/blob/master/testcases/Hennessy_Results. With my two versions of Oberon to Lua source code transpilers all procedures besides Puzzle worked. With the bytecode compiler I get also error messages from the procedures Quick and Bubble; since I had still enough other procedures and results to compare, I didn't bother much and saved the debugging for later.
The version you referenced I added on Sunday again from the original source with only little modifications for Oberon-07 compatibility; I didn't have much time to test it, but it seems to also have the error messages in Puzzle Quick and Bubble and Texts.WriteReal also doesn't seem to work. Will look into that when I find some time. I will also have a look at your changes then. Acutally I was only interested in the difference between my generator variants and OBNC. With both my current bytecode generator and the Lua source code generator using multiple returns (instead of thunks) the difference is a factor of two which is about what can be expected according to http://luajit.org/performance_x86.html. I still could replace my Lua C API based implementations of the backend libraries by LuaJIT FFI and do optimizations in the frontend to get an additional speedup, but I achieved the hoped-for proof of concept even without that.
From: Michael Schierl
Sent on: Mon, 17 Feb 2020 23:15:10 +0100
To: oberon at lists.inf.ethz.ch
Subject: [Oberon] Hennessy.Mod (was: Fwd: IDE with integrated sourceleveldebuggerandLuaJITVM running the Oberon System)
Am 17.02.2020 um 17:47 schrieb rochus.keller at bluewin.ch:
> @ all
> I added some application modules (Sierpinski etc.) to my Oberon System version and implemented additional procedures in the backend to support them;
Hennessy.Mod looks interesting as a benchmark to compare emulators.
I had to tweak it slightly so that it compiles in the original Project
Unfortunately, the whole thing does not run, although it compiles fine.
I get some weird traps while trying to flush the output from the Writer
to the log buffer.
When removing a few tests and/or reducing their variable size so that
the module variables are below 64KB in size, it works.
Is that a known limitation of Project Oberon? It surprises me that the
compiler does not warn about it, but compiles it fine.
More information about the Oberon