rochus-keller / Oberon

Oberon parser, code model & browser, compiler and IDE with debugger, and an implementation of the Oberon+ programming language
GNU General Public License v2.0
464 stars 30 forks source link

Error when compiling any Oberon code on Linux Mint #19

Closed napard closed 2 years ago

napard commented 2 years ago

Following the manual compilation procedure, I get the folowwing error when trying to compile any module of the examples folder:

ObxIDE: ../PeLib/MethodSignature.cpp:122: DotNetPELib::Param* DotNetPELib::MethodSignature::getParam(int, bool) const: Assertion `false' failed.

I've tried other modules from the examples and from test cases and the same problem appears. Note that exporting to C seems to work, I didn't try to compile the generated C code in any way though.

rochus-keller commented 2 years ago

Can you please give me a bit more information, e.g. what means "Following the manual compilation procedure"? Did you compile using ObxIde2.pro or which *.pro file? Which version or commit did you use to compile?

napard commented 2 years ago

I compiled the IDE following the detailed steps on the Build Steps section in the README.md

Commit used is the latest, direct downloaded from the zip file generated by GitHub.

After downloading the required zip files, extracting and renaming as detailed in the build steps, I used qmake and make to generate the executable.

Maybe I could give more detail when going back to the build PC later...

rochus-keller commented 2 years ago

I just compiled the IDE and compiled/run some applications from the testcases subdirectory, which worked as expected. But there are indeed issues with the two Example.obxpro. Thank you for pointing that out to me. I didn't have a look at these examples for a few month and made some language updates since then. I will have a look at it tonight and provide a fix.

napard commented 2 years ago

Thank you very much, I'll do some other tests in the meantime and report accordingly if needed.

rochus-keller commented 2 years ago

There was an issue in Pelib which only occured when trying to write to the receiver parameter of a bound procedure (which is only done in the somewhat peculiar List example I adopted from Wikipedia). Pelib originally was not ready for virtual and instance methods; I had to add this functionality and apparently didn't consider each affected code part; I hope that now I found all of them. There is a new commit for both the Pelib and Oberon repository.

rochus-keller commented 2 years ago

Can we close this?