Today we issued a pre-release of version 7.3 to 3rd party vendors, and in addition to a good number of fixes and improvements in both RTL and IDE, there is another noteworthy change. The convention for naming of Clarion DLLs and Libs has always been “C” plus the major version number, so we have C60Run.dll, C70Run.dll, and so on. The reasoning behind this came from the earliest release of Clarion for Windows, at a time when the internals of both RTL and File drivers were changing quite frequently. And in order to ensure that programs didn’t crash because of these internal changes, there was versioning code that diligently checked the version number of the RTL used in any binary against the currently loaded RTL. This version checking very often required you to do a complete rebuild of all your binaries even when no internals in the RTL or Drivers (or Compiler) had changed to require it, except for the external version number.
Now in Clarion 7.3 we’ve made some changes for the better. The visible change is that in Version 7.3 the naming convention used for Clarion DLLs and LIBs is no longer version specific. Now in 7.3 we use a prefix of “CLA” for all our binaries. For example:
C70RUN.DLL is now CLARUN.DLL
C70RUNL.LIB is now CLARUNL.LIB
C70TPS.DLL is now CLATPS.DLL
And so on.
But the changes you can’t see are where the benefits can be found. In continuing to reduce the lines between product releases, our version checking code has had a makeover. Now we maintain an internal version for the RTL that is separate from the external visible version number, and assuming that no changes to internal structures accessible from the outside world have been made, and the RTL internal number hasn’t been incremented, then rebuilding of binaries won’t be required.
That means, for example, the following:
If a user has his Exe plus 20 Dlls built with 7.3.7852 and a few weeks later we release 7.3.8011 – and it has some fix he needs, he can just copy the 7.3.8001 RTL and drivers into his app folder and run his app without a rebuild of his binaries. We see huge benefits in productivity ahead with this change.
For the project settings of your .Apps, the change is seamless – you don’t have to take any action for items the templates have added to the project. If you use the macro expansion symbols those are also updated to return the new naming convention.
Of course if a rebuild of binaries is needed, a message (not an error) will be displayed, or if the incorrect RTL is used it will also just show a message alerting the user about the use of the incorrect version.
Along with this version change the SYSTEM properties; PROP:ExeVersion and the PROP:LibVersion are also changed and extended, see the Help file for details.