Author Topic: Self Compiling  (Read 5535 times)

0 Members and 1 Guest are viewing this topic.

John

  • Hero Member
  • *****
  • Posts: 3542
Re: Self Compiling
« Reply #15 on: October 29, 2018, 06:46:10 PM »
Charles,

Is what you have for the next release on Github usable?

It would be great if Josť had something to experiment with.

Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 3971
    • Oxygen Basic
Re: Self Compiling
« Reply #16 on: October 29, 2018, 08:39:46 PM »

Hi John,

Most of the new (object) features are now working but require thorough testing, and a few extra error-traps.

John

  • Hero Member
  • *****
  • Posts: 3542
Re: Self Compiling
« Reply #17 on: October 29, 2018, 09:20:07 PM »
Sounds like you're getting close to an official release.


Arnold

  • Hero Member
  • *****
  • Posts: 762
Re: Self Compiling
« Reply #18 on: November 14, 2018, 01:47:30 AM »
Hi Charles,

I have read the Oxylog.txt file in your latest OXSC18.zip. That looks really impressive. You have obviously added many important modifications in the last four months.

If some of my previously posted code should not be compatible with your changes, you do not have to pay attention. Basically, I consider these examples as experimental approaches anyway. If there should be a conflict with a new version of O2, I will try to adjust those examples, and if I get stuck, I will ask for help (as always).

Roland

Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 3971
    • Oxygen Basic
Re: Self Compiling
« Reply #19 on: November 15, 2018, 02:27:15 AM »
Hi Roland,

It should not break any of your recent examples.

But there are two major differences:

o2-dependent binaries are no longer supported

secondary (dynamic compiling) is no longer supported. I think it could be replaced by an eval function.

I think I was the only one using these features :)

John

  • Hero Member
  • *****
  • Posts: 3542
Re: Self Compiling
« Reply #20 on: December 11, 2018, 01:56:15 AM »
Charles,

It would be great to have a high level diagram of how O2 is assembled. Maybe a block diagram or a category / function tree.

Would Doxygen work with o2.

I'm going to play around with Doxygen using Script BASIC C source. It has a treeview option we might be able to use as a reference for O2.
« Last Edit: December 11, 2018, 02:15:52 AM by John »

Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 3971
    • Oxygen Basic
Re: Self Compiling
« Reply #21 on: December 11, 2018, 04:01:52 AM »
Hi John,

The top-level organisation of o2:

BuildOxygenDLL.o2bas
Code: [Select]
  $dll
  $filename "oxygen.dll"
  uses RTL32
  uses main

main.inc components
Code: [Select]
  $ o2version chr(34)+"0.1.0 2018-12-11T12:00:00"+chr(34)
  '
  'DEFINITIONS GROUP
  '=================
  '
  uses glob 'GLOBAL STRUCTURES, CONSTANTS & VARIABLES
  uses lexa 'LOW LEVEL LEXING
  uses reco 'RECORDS
  uses lang 'CORE KEYWORDS AND EQUATES
  '
  'PARSING GROUP
  '=============
  '
  uses lexi 'LEXING
  uses pars 'PARSING
  '
  'COMPILATION GROUP
  '=================
  '
  uses meta 'META-PROGRAMMING
  uses decl 'DECLARATIVES
  uses enco 'ASM ENCODING FUNCTIONS
  uses expl 'LOWER EXPRESSIONS
  uses expr 'HIGHER EXPRESSIONS
  uses tran 'TOP TRANSLATION LAYER
  '
  'HEADERS ASSEMBLY AND LINKAGE GROUP
  '==================================
  '
  uses hdrs 'HEADERS FOR EXECUTABLE CODE
  uses assm 'ASSEMBLER (TO O2 MACHINE SCRIPT)
  uses link 'O2 MACHINE SCRIPT LINKER
  '


Arnold

  • Hero Member
  • *****
  • Posts: 762
Re: Self Compiling
« Reply #22 on: December 11, 2018, 04:11:22 AM »
Hi John,

I do not see the link to sandbox.allbasic.info above any more. If I try to open it from allbasic.info I get a warning of a privacy error (the web site is not secure) and the page is not loaded. Is something missing?

What source control management tool can be used to fetch the contents of a project? I see there is TotoiseSVN, Mercurial and others. I do not know at the moment how these version control systems work. I also do not know if Charles will decide to apply such a history system at some point of Oxygen's development (which obviously is possible with GitHub too), but perhaps there are some advantages e.g. in view of the many examples which are provided with Oxygen. And perhaps Gitlab could be used for some major projects done with Oxygenbasic. Charles should not be held responsible for such kind of projects - maybe give some advice if necessary and appropriate.

Roland

John

  • Hero Member
  • *****
  • Posts: 3542
Re: Self Compiling
« Reply #23 on: December 11, 2018, 10:45:34 AM »
Roland,

There was a conflict between Plesk and Gitlab renewing Let's Encrypt certs. I hope the problem is resolved in the next day or two.

When Charles starts releasing tested examples using the SC compiler, I'm going to setup a new project under OxygenBasic for examples only. I will try to group them in like functioning categories.

Chrome will allow you to bypass the cert being expired. Firefox is a little more work.
« Last Edit: December 11, 2018, 02:44:24 PM by John »

Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 3971
    • Oxygen Basic
Re: Self Compiling
« Reply #24 on: December 11, 2018, 08:16:25 PM »
I'm refactoring a lot of symbols, involving hundreds of changes. So maybe diff is not the best viewing tool.

John

  • Hero Member
  • *****
  • Posts: 3542
Re: Self Compiling
« Reply #25 on: December 11, 2018, 08:33:04 PM »
Okay.

If folks want to track your changes they can view it in the O2 sandbox.

The idea behind posting the DIFF files was to help understand better how a compiler works.

I agree that this can get verbose.


Arnold

  • Hero Member
  • *****
  • Posts: 762
Re: Self Compiling
« Reply #26 on: January 19, 2019, 01:33:37 AM »
Hi Charles,

with my editor of choice (PSPAD) I am able to compare now between these installations:

B0 2018-07-21 T 15:33:59 (OxygenbasicProgress of July/21/18)
B0 2018-03-12 T 06:46:15 (OxygenbasicProgress of Jan/14/19)
0.1.0 2019-01-15T06:08:44 (OXSC19 of Jan/15/19)

I am not sure about oxygen.dll of Jan/14. My explorer indicates a date of Oct/10/2018 so I assume it is newer despite the printed version? Does this version already include some features which were requested by Josť and Brian? I also assume this oxygen.dll was built using fbc.

For OXSC19 I used the /inc folder and also co2.exe, gxo2.exe of OxygenbasicProgress Jan/14. Is this ok? rtl32.inc and rtl64.inc are identical with the files of OXSC19.

I assume OXSC19 is the path which you want to develop further. Which features did you add/change with the self-compiled version? And is it ok to check some of the demos with it? With my compilation I can already achieve a lot.

I may ask too many questions here. But my only intention is not to be counterproductive and do the wrong actions. I would like to get the same outcome as you.

Roland

(Small joke)
Assistant: I did the calculation. And I recalculated it twice.
Boss: Well done.
Assistant: These are the three results.

Mike Lobanovsky

  • Admin Support Member
  • *****
  • Posts: 1889
Re: Self Compiling
« Reply #27 on: January 19, 2019, 05:15:22 AM »
Assistant: I did the calculation. And I recalculated it twice.
Boss: Well done.
Assistant: These are the three results.

In fact, nothing funny. He calc'ed and recalc'ed random numbers.

;D
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Arnold

  • Hero Member
  • *****
  • Posts: 762
Re: Self Compiling
« Reply #28 on: January 20, 2019, 04:26:09 AM »
Hi Mike,

yes, sometimes I will get more than one result, but at least one solution will work. Most of the time my apps will run with all three versions of Oxygen on my pc, either without or with minor modifications.

I am definitely surprised at the progress of the self-compiling variant of Oxygen.dll that Charles has already achieved. Sometimes there are missing error messages and Oxygen terminates silently. But with that in mind, it is already possible to develop and test programs. I did not expect this.

Roland