Opened 6 years ago

Closed 6 years ago

#5018 closed defect (fixed)

Patch MSL 3.2.2/3.2.1 with missing 'each'?

Reported by: Francesco Casella Owned by: Adrian Pop
Priority: blocker Milestone: 1.13.0
Component: Third-Party Libraries Version:
Keywords: Cc: Martin Sjölund, Per Östlund

Description

The NF is very strict w.r.t the use of each in array attribute modifiers. It has allowed to discover a number of missing 'each' qualifiers in the MSL, that will be fixed in the upcoming MSL 3.2.3, due to be released in September, and it (correctly) fails to flatten a number of models because of that.

Should we bother to patch them in the version of MSL 3.2.2 and MSL 3.2.1 that we'll ship with the next releases, or should we just expect people to use MSL 3.2.3?

In principle, using MSL 3.2.3 seems a better solution, but the problem is, we don't have any provision for automatic library version updates, so all existing user models, that contain a uses annotation pointing to MSL 3.2.2, it will still silently use that and issue warnings or possibly fail if the NF is used.

Changing uses annotations is a bit of an advanced topic, the average user and the newbie won't have any idea.

Comments?

Change History (9)

comment:1 by tknodt@…, 6 years ago

A version/ release is something freezed and defined. It should not be changed.
What could be done is to add a suggestion into the error message.

in reply to:  1 comment:2 by Francesco Casella, 6 years ago

Replying to tknodt@…:

A version/ release is something freezed and defined. It should not be changed.

If a released version of MSL contains invalid Modelica code, which makes it unusable with a Modelica tool that follows the standard, I can't see the point of keeping it like that for posterity...

comment:3 by Per Östlund, 6 years ago

Milestone: 1.13.02.0.0

Switching to the NF is targeted for 2.0, so this is not a blocker for 1.13.0.

comment:4 by Francesco Casella, 6 years ago

Milestone: 2.0.01.14.0
Type: discussiondefect

I had some discussion with Thomas Beutlich (MAP-LIB leader) and we agreed a maintenance version of 3.2.2 with these changes is unlikely to happen, though we'll try to avoid this kind of issues from 3.2.3 onwards.

So, we should patch MSL 3.2.2 adding all the missing each instances. This is a list to all the commits to the 3.2.3 development branch regarding this issue:

https://github.com/modelica/ModelicaStandardLibrary/commit/652771fd6015117b16818f9db35f719c67e5c4be
https://github.com/modelica/ModelicaStandardLibrary/commit/0d69f7f323f74df45cb67a8bae7bf7dd5930851c
https://github.com/modelica/ModelicaStandardLibrary/commit/11b7728e81806253c671b4d21a09991384639b5e
https://github.com/modelica/ModelicaStandardLibrary/commit/3028d6c33ddd55b856c4ff1bb36bf8165b9ac075
https://github.com/modelica/ModelicaStandardLibrary/commit/c3c6327184204c0c01c9e596097b6ba46d0b5c79
https://github.com/modelica/ModelicaStandardLibrary/commit/73e2788a5a6b175991370eebfbc7228f3242c5f8
https://github.com/modelica/ModelicaStandardLibrary/commit/627b01fa8bdf41c0e589ad2c4cd06cc0d0d24253
https://github.com/modelica/ModelicaStandardLibrary/commit/4957c5f46ed928d3c893afbec5c234f51192c336
https://github.com/modelica/ModelicaStandardLibrary/commit/c8131672dd72e6d39894a288061d64e7f1ab4361
https://github.com/modelica/ModelicaStandardLibrary/commit/f28a8b208c697187707759f51db2baa31cf2ac60
https://github.com/modelica/ModelicaStandardLibrary/commit/fe289dcca85a3ff24cfb9368bbfb163cfc08346c
https://github.com/modelica/ModelicaStandardLibrary/commit/dc1a45e422a8a9021cd91f31ab8db1e60a3d3189
https://github.com/modelica/ModelicaStandardLibrary/commit/59a08b01343a159bf620e9b72d2e1dd59b023a95
https://github.com/modelica/ModelicaStandardLibrary/commit/bed777e845cf515041cf4c7074e867257c69f063
https://github.com/modelica/ModelicaStandardLibrary/commit/a91aa0ca90d37684444bdbd8d82ea1494df06811
https://github.com/modelica/ModelicaStandardLibrary/commit/8722ed7241045028059d608c8fcc3ccdd3fa19af
https://github.com/modelica/ModelicaStandardLibrary/commit/e1ec30868888fcb7bbca92da7d93bfb23ae84c1d
https://github.com/modelica/ModelicaStandardLibrary/commit/e77b13ac5d846ecc8601ef5c2581e7111dbc760e
https://github.com/modelica/ModelicaStandardLibrary/commit/40351c7f985c7998d4c2715fdb84a7089f8fd50b
https://github.com/modelica/ModelicaStandardLibrary/commit/2bffeba02680d3e8a7bfc12510a4ccde375c416d

I'm not sure if there is a way to convert them automatically to a patch file, or if it is necessary to do this manually. In the second case, please let me know how can I help getting that done.

Once these are patched we can check here if there are remaining issues with this feature.

This is required for 1.14.0, when people will start using -d=newInst seriously, but it would be nice to have it ASAP, so as to improve the NF coverage of all non-MSL libraries

Last edited 6 years ago by Francesco Casella (previous) (diff)

comment:5 by Martin Sjölund, 6 years ago

Really not even going to be accepted in the 3.2 maintenance branch? Doesn't matter if there will be a new release or not, but shouldn't it be accepted anyway?

comment:6 by Francesco Casella, 6 years ago

I quote Thomas Beutlich:

I doubt we have the resources to go for a MSL v3.2.2 maintenance release. It would not speed any thing up, but just gives us more work. Additionally, the maint/3.2.2 branch is in a unclear state with even new features added and missing bug fixes back ported.

Given that, I'm not sure adding these fixes to the 3.2.2 maintenance branch will give any added value, since that is in a pretty mixed-up state. Are we using the maintenance branch of 3.2.2 as a basis for our patch file? Otherwise, I wouldn't bother

Last edited 6 years ago by Francesco Casella (previous) (diff)

comment:7 by Martin Sjölund, 6 years ago

We are using the maintenance branch as the basis for the patches. So if we can push them into the maintenance branch, we won't get conflicts with the patches.

comment:8 by Francesco Casella, 6 years ago

OK. In that case, I don't see anything wrong in pushing those fixes to that branch. I hope GIT is smart enough to allow merging them in without too much fuss. Is that possible?

comment:9 by Francesco Casella, 6 years ago

Milestone: 1.14.01.13.0
Resolution: fixed
Status: newclosed

We are now distributing MSL 3.2.2 with patched 'each' since 1.13.0

Note: See TracTickets for help on using tickets.