Okay, I should then clarify.
Out of all the OS and platforms we would like to see the engine running on:
Windows intel (x32)
Windows intel (x64)
Windows Arm (x64)
MacOS 10.6.8 intel (x32)
MacOS 10.9 intel (x64)
MacOS Arm (aarch-x64)
Linux (GTK2) intel (x64)
Linux (QT) intel (x64)
Linux Arm (x64)
Linux (ChromeOS) x64 (m-series)
Unix (armv7l)
Currently, we have
one successful compile target out of the eleven listed above.
But one thing seems obvious to me - with all those different architectures and platforms in mind, the engine should be as minimal as possible - with everything abstracted away from being locked up in an application binary. It should all be referenced as either a library or a stack (externally), so that changing any of this does not have to result in a recompile of the engine.
Personally at this point, I'm getting to the point where I'm increasingly hamstrung by the engine and find myself thinking more about what alternatives can be used. Even if that is seen as a hugely backwards step initially, it may be best to start from bare-bones with something that does actually compile and isn't locked in.
I can say though, that it's an absolute headache to get a C++ parser to understand xTalk and all it's nuances.
For example, if I want to do the equivalent of the xTalk script:
I'd have to do this in C++
Code: Select all
#include <iostream>
int main() {
float myNumber;
myNumber = 10;
return 0;
}
Now that might not sound too much of a problem, except when you consider I can do the following in xTalk:
Code: Select all
put word 3 of line 9 of cd fld "thisfld" of card id 7712 of stack "targStack" into myNumber
C++ just does not understand that kind of high level abstraction, so you need a lextable to break it all down into it's component parts. Then tokenise it into various sections so it can be made sense of. A parser to make sense of it all (essentially reassembling it into something that makes sense to C++), something that does error checking and error handling during that parsing if it doesn't make sense, something to then interpret the response back from C++ code into xTalk, then finally something to output it back to either a command line or GUI. Not easy, and multiple layers to work through. It's a pain.
Or to put it another way, writing an engine for xTalk interpretation is more like writing an emulator. After all, you are turning one load of instruction set into another, then delivering the result back into human-readable form. (so perhaps the idea of running the interpreter in as common a language as possible is not a bad idea), but even assembly or machine code has it's differences between processors.
Now this might sound negative, but this is why I consider the only 'active' version of OXT lite to be the linux version - it's the only one I can currently make any changes to the engine in (getting rid of the registration screen at first launch), so currently the only one I see as having a viable future. The others may as well be read-only (as they are effectively 'stuck' at that older version if they won't compile).
If someone gets the Mac (or more likely) the Windows versions to compile without throwing any warnings, then I'll feel a lot happier. Until then, it's why I'm interested in an alternative engine.

- holding-the-flame.jpg (12.7 KiB) Viewed 1109 times