JADE 5.3.0 JTOPMERET® PSA
This is a public service announcement for anyone who uses or intends to use JTOPMERET.
If you don’t know what that is, then this article is not for you.
TL;DR
For TOPMERET delivered with JADE 5.3.0, if you have existing models built with TOPMERET and wish to add a new model or update an existing one with the new version in the same simulator, all JTOPMERET models must be regenerated / rebuilt.
The longer version:
A recent version of TOPMERET 5.0.+ packaged with JADE 5.3.0 has this blurb in the release notes (section 1.1.10 Other Topmeret Improvements, under Bug Fixes):
Fixed bug in matrix solutions when compressibility is active that caused model crash.
Fixing crashes is cool.
Unfortunately there’s more to the story.
If I have interpreted the changes between an older version of TOPMERET and the newest to which I have access1, this is a breaking change.
That is, it breaks backward compatibility.
Newer versions2 of TOPMERET have used a library to store some of the code, that is the code is delivered once instead of generated anew for each model. What is generated is the call to the module in the library.
The bug fix solution includes a new argument to the module call.
While keeping module call structure intact does not equate to backward compatibility, changing it breaks it unless methods are used to restore it.
The first ramification:
If you have existing models built in TOPMERET and wish to add a new model or update an existing one(s) with the new version in the same simulator, all JTOPMERET models must be regenerated / rebuilt.
If you have methods and tools set up to rebuild all models easily or if it already standard practice to do so, then you should experience no additional (unexpected) pain. If you do not, then be aware that existing models will not work with the new library and extra effort will be needed to upgrade.
And this is where the PSA ends.
I have more to say about this, but my intent is to prevent users from unexpected surprise during their upgrade so I will save further comments for another time and place.
[1] I am currently providing a limited introduction to JTOPMERET for a client and am using their version for the training.
[2] Newer versions is a relative term. In the past, the modules were provided as plain text code. Now they aren’t. That’s OK. There is IP there to protect.
Comments