ElTh0r0 / stackandconquer

A challenging tower conquest board game inspired by "Mixtour".
GNU General Public License v3.0
3 stars 3 forks source link

Clarify Javascript standard used by CPU players #13

Closed maksverver closed 1 week ago

maksverver commented 1 week ago

DummyCPU.js currently contains:

https://github.com/ElTh0r0/stackandconquer/blob/5ebf4a4e51b82eb9c7e2f9ce99f310a91fc62aa4/data/cpu/DummyCPU.js#L37-L38

But the project requires Qt 6 at a minimum, and as far as I can tell, Qt 6 supports ECMAScript 6. So is it really true that CPU implementation should be written in ES5?

ElTh0r0 commented 1 week ago

When you are building the project with Cmake, it requires Qt 6 (I didn't want to spend effort supporting Qt 5 + 6 in CmakeLists.txt), but when using make/qmake both Qt 5 & 6 are supported.

Main reason for supporting <= Qt 5.11 is the compatibility with ReactOS; there I can use Qt 5.6 (!) only. Very very small niche - I know! Most likely all other supported operating systems/distributions should be on Qt >=5.12 or even >=5.15 in the meantime. I didn't check the Qt version at the OS's for a while. I'll check in detail during the next days and if only ReactOS remains with the very old Qt version, I might consider dropping the support for it and allowing ES6.

maksverver commented 1 week ago

Thanks for clarifying. I'm not saying that you should get rid of ES5 support if there is a good reason for it, but I am a bit concerned that it's difficult to verify ES5 compliance when only ReactOS still uses an ES5 engine.

For my AI(s), I've tried writing ES5 code (avoiding classes, let, const, arrow functions, etc.) but I've only tested with Qt 6, so if any ES6 code slipped in by mistake, there is essentially no way for me to find out about it.

ElTh0r0 commented 1 week ago

I have decided to drop support for Qt versions <= 5.11. Qt >= 5.12 is now required, which is required by the oldest supported Ubuntu version (Focal 20.04).

This means, that ES6 is supported - if not even ES7. I didn't find any clear statement in the Qt documentation. Only hint I found is this one.