Gekko versions overview
At the moment, there are a number of Gekko versions available, and this page will attempt to clarify the differences. (If you are deciding whether to use 32- or 64-bit Gekko, see this page).
To sum up:
- If you are a new user, you are advised to choose the latest 3.1.x version from this page. Regarding bitness, it is advised to use Gekko 64-bit if you can (if you are using Windows 64-bit, which is normal nowadays).
- If you have already built systems in an older Gekko 2.x or 2.x.x version and do not want to migrate just yet, choose the 2.4 version from this page (this is a 32-bit version). If you really need a lot of RAM, consider Gekko 2.5.2 in the 64-bit version.
The Gekko 3.1.x development versions are fully compatible with 3.0. Care is taken not to break anything in 3.1.x, so these versions are in a sense “stable” development versions, but if you are very risk-averse, you may stick to 3.0. (Any “risky” development of 3.0 will take place in a future 3.3.x series).
If you are an existing user of a Gekko 2.x or 2.x.x version, you cannot jump directly to 3.0 or 3.1.x without translating your command files to the 3.0 syntax (cf. the TRANSLATE command). It is advised to migrate, but if you are unable to, you should use Gekko 2.4, which is fully compatible with all prior 2.x or 2.x.x versions. (The versions in the 2.5.x series contain some experiemental components related to modelling). Regarding syntax changes from 2.x.x to 3.x.x, you may consult the cheat sheet.
Versions with an even even number after the first period are so-called stable versions (for instance 2.4 or 3.0), whereas development versions have en uneven number after the first period (for instance, 3.1.1). Because of many syntax changes in the preceeding years, there is currently a syntax and functionality freeze regarding 3.0, so that users can use 3.0/3.1.x without worrying that their code would need migration/translation anytime soon. Any “risky” changes to the Gekko source code, or any syntax adjustments, will take place in a future 3.3.x series that will probably start up sometime in 2023. In general, no major syntax changes are planned for Gekko at the moment.
Care is taken regarding the 3.1.x versions in order to keep these stable and fully backwards compatible with Gekko 3.0. Therefore, in the 3.1.x series, it is avoided to change core parts of the Gekko source code, but new components may be implemented, and other improvements will be introduced as well, for instance improved error messages, improved graphical interface, etc. All in all, the 3.1.x versions will get some health checkups, but no heavy surgery.
The 3.1.x series will implement new timeseries frequencies, and possibly new variable types, too. In spite of this, the databank format will stay compatible with the 3.0 version, more details on this page. More info about future versions: see also the roadmap, and the material from the steering committe meetings.
Difference between 3.0 and 3.1.x
Why these two versions? Since there is a current syntax and functionality freeze regarding 3.0, the further development could have taken place in the form of patches to 3.0. But this would have entailed a large number of “patches”, for instance regarding the introduction of higher frequency timeseries. That is not really a “patch”, but rather a new capability, and even though care is taken not to break anything when introducing capabilities like higher frequencies, there is still a risk. Therefore, the official 3.0 is risk-free, whereas the 3.1.x series entails some minor risk of some new capabilities breaking an existing module. Care is taken that existing syntax and functionality in 3.0 still work in the 3.1.x series, and the 3.1.x will also benefit from polishing of things like error messages, graphical interface, etc. Therefore, 3.1.x will continue to mature, including the removal of glitches/annoyances, whereas 3.0 will be frozen in time. With one exception, however: outright bugs in 3.0 that are deemed serious enough will be fixed (in both the 3.0 and 3.1.x versions simultaneously).
From Gekko 3.1.10 (and 2.5.2), it is possible to use a 64-bit version of Gekko. For Gekko 3.1.10 and onwards, it is generally advised to use the 64-bit version if possible, because it can access much more RAM. The 32-bit versions are limited to use 3 GB RAM as a firm limit, whereas the 64-bit versions can use much more (disk-swapping works quite well, so even with only 8 GB physical RAM, 20-30 GB memory can often be used without problems). Also, for timeseries, calculations seem to run somewhat faster on 64-bit. Finally, 64-bit is the future, so the 32-bit version of Gekko will be slowly phased out. See more on bitness on this page.