-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
See if I can add support for OfrontPlus #2
Comments
It looks like I need an i386 virtual machine so I can build BlackBox then build OfrontPlus. Both are expecting a 32 bit environment. |
You don't need a virtual machine and a 32-bit environment. Ofront+ natively works on any version of Linux or *BSD. Quick build instructions:
If your platform is not in the list, you can still try to build it, but you'll need to generate intermediate C files under another host system (Lib/Bin/o2c; Bin/o2c), move them (Lib/Obj/*; Obj/) to your system, and then compile them (Lib/Bin/cc; Bin/cc). |
On 7/25/21 1:33 PM, Oleg N. Cher wrote:
You don't need a virtual machine and a 32-bit environment. Ofront+ natively works on any version of Linux or *BSD.
Quick build instructions:
- go to Target/Your_platform/Lib/Bin and run ./build (rebuild libOfront.a)
- go to Target/Your_platform/Bin and run ./build (rebuild Ofront+ and tools).
If your platform is not in the list, you can still try to build it, but you'll need to generate intermediate C files under another host system (Lib/Bin/o2c; Bin/o2c), move them (Lib/Obj/*;Lib/Obj) to your system, and then build them (Lib/Bin/cc; Bin/cc).
Thanks Oleg, this is good news (I don't have to setup another box!).
Let me give it a try. I want to write a post about getting OfrontPlus
up and also add any needed OfrontPlus specific modules to Artemis so
that I can write Oberon-07 code and have it work with more compilers.
All the best,
Robert
|
Dear Robert,
Must be:
Since SYSTEM.ROT is defined as:
SYSTEM.ROT does not get x as VAR parameter, but has returned result. See BlackBox: Dev/Docu/P-S-I.odc
After these fixes, Ofront+ builds Obn2.Mod: ofront+ -s7 -48 Obn2.Mod It is a little more complicated with other modules, since there are dependencies on Math, Out. Of course, we can develop these modules or layers for the libOfront.a library. What is your vision of this? |
Good afternoon Oleg, Thanks for spotting this. I will correct it. My goal with Obn2.Mod is to easy the path of bringing historic I've started looking at Math and Out. Out in particular has allot of variance between dialects would benefit Math I think is in the same boat as Out but I am reluctant to attempt it yet. I've been out of University a very My current thinking based on looking at Ofront+ and using OBNC and Obn-3 is any module(s) requiring C A secondary goal (which Ofront/Ofront+ offer a path towards) is making the standard Oberon System libraries like Text Like with compiler specific Out, Math, etc, may Artemis should simply have multiple implementations of Text. You'd I know that Display will need to be compiler specific (assuming something like SDL2 or OpenGL is used for implementation) I want to thank you for both your contributions and patience. I'm new to Oberon and Oberon Systems and as I mentioned on the All the best, Robert |
Using Ofront+ after fixing typos I get the correct output per Oleg.
I've added a sub directory called ofrontplus to Artemis for any Ofront+ specific modules. |
Good afternoon Robert, I even compiled it into a static library Artemis.a, which can be linked to our projects in the future. I attach all the scripts for the build. I hope this will be interesting for you. But I still don't have any implementations of the modules Math, Out, Strings and extConvert. Ofront+ has a sufficient set of libraries to make a layer for redirecting these interfaces to existing libraries located in Ofront.a As for the other Oberon-07 compilers - I have no influence on their development or support. Thank you for your activity! |
Hello Oleg,
This is very exciting. I'm still learning ofront+. The fastest way for
me to create In, Out, Err and Math would probably be to wrap C code. Is
this acceptable in ofront+? If so I think I can add those the next
chance I get to work on Artemis.
One of my motivations in Artemis is that working code is a really good
form of getting people to support things.
I think if I can have working code with three very different compilers,
Ofront+, Obn-3 and OBNC then I can sorta prove that we (the Oberon
programming community) should support a common standard set of modules
again.
So that make my job sorta two part, provide working usable code that
works with at least three compilers and two then have conversations with
the compiler's authors about normalizing Oberon-07 code support towards
what make sense.
It'll take me a while because this is all new and is happening when I
can spare time. But I am patient about this and don't expect changes
over night and more likely over a year or two.
Again our exchanges has been so helpful.
All the best,
Robert
…On 7/31/21 2:02 PM, Oleg N. Cher wrote:
Good afternoon Robert,
I want to inform you with joy that Ofront+ was able to translate all
Artemis modules.
image
<https://user-images.githubusercontent.com/1090608/127752199-1cdaa27d-81e2-4e77-9a59-dbeac21f85a0.png>
I even compiled it into a static library Artemis.a, which can be
linked to our projects in the future.
I attach all the scripts for the build. I hope this will be
interesting for you.
Artemis.zip <https://github.com/rsdoiel/Artemis/files/6911813/Artemis.zip>
But I still don't have any implementations of the modules Math, Out,
Strings and extConvert. Ofront+ has a sufficient set of libraries to
make a layer for redirecting these interfaces to existing libraries
located in Ofront.a
As for the other Oberon-07 compilers - I have no influence on their
development or support.
If you'll have any questions specifically about Ofront+, I will be
happy to answer, as I offer free support for my users.
Thank you for your activity!
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABJIPI6YLDIZL6ISIYGJRDT2RQIFANCNFSM5A62NE6Q>.
|
Hello, Robert. I am also glad of our productive communication. Ofront+ has very good support for linking to the C language, partly inherited from Ofront, partly from CPfront, I did a lot myself. I am attaching a new Artemis build to show you these features. I think I've done everything except Out.Real. I didn't have any ideas for it, although it's supposed to be easy to do with UNPK. But I didn't test this code! .Def differs from .Mod in that it does not generate .c, but only .oh (Oberon Header). Using extension ".oh" is the suggestion of Stewart Greenhill to avoid a name conflict with C (for example, math.h is a C library, and Math.oh is a header generated from Oberon). I didn't agree at first, but then I realized the wisdom of this decision. I am sure that there are many more such things, thanks to which Ofront+ will seem to you a well-thought-out translator, made very carefully. Perhaps we can profit from the implementation of Out.Real from libraries for other Oberon-07 translators/compilers. But I'll leave that up to you. I would have made Out.Real long ago, but I am confused by the second parameter (margins). |
Slightly optimized/fixed module extConvert.zip |
Oleg-N-Cher would like Artemis to work with OfrontPlus. OfrontPlus is built in Component Pascal. I need to figure out to setup and run an environment that supports Component Pascal compilation so I can install OfrontPlus and include that in the compatibility modules and testing.
The text was updated successfully, but these errors were encountered: