Page 1 of 1

MultiOberon as 64-bit compiler

PostPosted: Mon Sep 16, 2019 3:07 am
by Ivan Denisov
Try the compiler MultiOberon for x64.
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423

Re: 64-bit compiler

PostPosted: Sun Sep 22, 2019 7:05 pm
by Josef Templ
Ivan Denisov wrote:Try the compiler MultiOberon for x64.
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423


Interesting approach!
Are there any numbers available regarding compilation speed and execution speed?

- Josef

Re: 64-bit compiler

PostPosted: Tue Sep 24, 2019 8:55 am
by Dmitry Dagaev
MultiOberon is an Oberon Compiler with 3 different backends:

BlackBox Native x86 code Generator (now 1.6)
Ofront Generated C-Language Code Translator;
LLVM representation Generator.

The current version is 0.8 for BlackBox 1.6. BlackBox 1.7 and linux support is planned in 0.9.

Re: 64-bit compiler

PostPosted: Tue Sep 24, 2019 9:50 am
by Dmitry Dagaev
Josef Templ wrote:Are there any numbers available regarding compilation speed and execution speed?

Optimization usage is in development, the figures below are preliminary.
Compile time (no optimization) - 270% LLVM, 100% BlackBox;
Loading time - 1330% LLVM (JIT compiler), 100% BlackBox;
Execution time (no optimization) - similar.

The optimizer is not available now, llc.exe with -O0..-O3 can be used instead.

Re: 64 it compiler

PostPosted: Wed Jul 22, 2020 4:17 am
by X512
Ivan Denisov wrote:Try the compiler MultiOberon for x64.
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423

Does it support generating OCF modules with correct descriptors and meta information?

Re: MultiOberon as 64-bit compiler

PostPosted: Thu Jul 23, 2020 5:22 pm
by Dmitry Dagaev
In recent 0.95 pre-version:
1. COFF and ELF object file formats modules loading implemented on Windows and Unix 32/64;
2. Building objects and executive files implemented;
3. Modules testing implemented and compiler tests included as examples.

Re: 64 it compiler

PostPosted: Thu Jul 23, 2020 5:30 pm
by Dmitry Dagaev
X512 wrote:Does it support generating OCF modules with correct descriptors and meta information?

MultiOberon has 3 backends:
- Omb (based on DevCPP) generates OCF modules as usual;
- Omf (based on OFront) provides descriptors and meta, but does not support dynamic modules loading (to be implemented next);
- Oml (LLVM based) provides descriptors and meta, and dynamic loading is implemented in 2 ways:
--- LLVM bytecode .bc module file;
--- COFF and ELF .o module file.

Re: MultiOberon as 64-bit compiler

PostPosted: Wed Dec 02, 2020 4:07 pm
by Dmitry Dagaev
MultiOberon version 1.0 released.
1. Omf (based on OFront) dynamic modules loading implemented;
2. Specific minimal shells ombsh,omfsh,omlsh for all backends;
3. Testing and benchmarking abilities;
4. Multi-platform development support.

Re: MultiOberon as 64-bit compiler

PostPosted: Wed Feb 17, 2021 3:56 pm
by Dmitry Dagaev
MultiOberon version 1.1 released.
1. Arm32 and Arm64 support added;
2. Installers are provided for all platforms (.msi for Windows, .deb for Linux)

Re: MultiOberon as 64-bit compiler

PostPosted: Mon Aug 02, 2021 6:42 am
by Dmitry Dagaev
MultiOberon version 1.2 released.
1. Testing environment and modules naming convention changes
2. X64 loader position independent code support
3. Metadata signatures for functions including params
4. Limited registers operations