D.1.1 Main changes in Modelica 3.5
The following Modelica Change Proposals are backward compatible extensions added in 3.5:

•
Change of specification format (MCP0018). The development of the specification was changed to use LaTeX for formatting; and https://github.com/modelica/ModelicaSpecification for issuetracking.

•
Annotations for Predefined Plots (MCP0033), section 18.2.2. Ticket #2710.

–
Generalize links in text markup, section 18.2.2.3. Ticket #2692.

–
Mandate that Axis.unit is for tick labels, section 18.2.2.1. Ticket #2633.

–
Define meaning of empty Axis.unit, section 18.2.2.1. Ticket #2632.

–
Elaborate on inheritance of figures, section 18.2.2. Ticket #2588.

–
Clarified that leading and ending newline is ignored, section 18.2.2.5. Ticket #2581.

–
Made figure title optional, section 18.2.2. Ticket #2580.

–
Clarified curves and units for figures, section 18.2.2.1 and section 18.2.2.2. Ticket #2579.

–
Clarified uniqueness of Figure and Plot identifiers, section 18.2.2. Ticket #2544.

–
Relaxed uniqueness of Plot identifiers, section 18.2.2. Ticket #2537.

–
Updated to have HTMLcaption, subplot title and identifier. Ticket #2363.

–
Other issues resolved were:

•
Overall improvements of the document, made easier by the switch to LaTeX.

–
A real bibliography was added, but excluding papers in this chapter; #2740.

–
Dead links in the bibliography were removed and DOI used when possible. Ticket #2502.

–
Chapter introductions are now nonnormative, #2366.

–
The index was updated to reference the main definition of the term, and the glossary removed to avoid duplicated effort; #2726.

–
Hyphens and dashes were cleaned up, #2628.
 –

–
Moved nonnormative text to separate paragraphs. Ticket #2536.

–
Consistent use of different quote symbols. Ticket #2508.

–
The minor issues related to change of formatting, continuous integration, examples, and maintenance of repository are not listed here.

–

•
Improved functions, chapter 12.

–
Clarified impure function as function arguments, section 12.3. Ticket #2756.

–
Clarified that public variables in functions must be input or output, section 12.2. Ticket #2730.

–
Changed inputs to C functions to be constcorrect, section 12.9.1.2. Ticket #1955.

–
Clarified that external object is a class, section 12.9.7. Ticket #2705.

–
Deprecate "builtin" external language, section 12.9. Avoid reference to Modelica.Math section 3.7.3. Ticket #2662.

–
Clarified functions with no outputs, section 12.4.7. Ticket #2692.

–
Replace use of outdated grammarconstruct classname, section 13.5, section 12.4.2, and section 18.7. Ticket #2598.

–
Updated example for function as argument to function, section 12.4.2. Ticket #2563.

–
Extend function inverses and clarify them, section 12.8. Ticket #2478.

–
Clarify consequence of using impure functions in binding equations for parameters, section 12.3. Ticket #2475.

–
Removed deprecated assignments from function declaration template, section 12.1. Ticket #2439.

–
Corrected regression in example specifying the second derivative of a function, section 12.7.1. Ticket #2401.

–
Clarified variability restrictions of inputs in functions, section 3.8.2. Ticket #2243.

–
Clarified handling of lib/dll on Windows, section 12.9.4. Ticket #2252.

–
Clarified function component, section 12.4.2. Ticket #2255.

–
Clarified that objectfiles are not libraryfiles, section 12.9.4. Ticket #2257.

–
Clarified ModelicaAllocateString, section 12.9.6. Ticket #2279.

–
Clarified memory management for external objects, section 12.9.7. Ticket #2524.

–
Introduced ModelicaDuplicateString for Ccode, section 12.9.6.2. Ticket #2417.

–
Improved ModelicaAllocateString for Ccode, section 12.9.6.2. Ticket #2403.

–

•
Clarified synchronous Modelica, chapter 16

–
Clarified that clock operators are not callable in functions and that functions may not contain Clockvariables and that they do not vectorize, section 16.2.3. Ticket #2177 and Ticket #2269.

–
Clarified that clocks are not valid inputs for hold, section 16.5.1. Ticket #2174.

–
Clarified rational clock to only have translationtime clock inference, operator 16.2. Ticket #2386.

–
Clarified that different clock partitions should be separate, section 16.7.4. Ticket #2365.

–
Rewrote rationale to be positive, section 16.1. Ticket #2512.

–
Clarified terminology for discrete states, section 16.4. Ticket #2651.

–
Clarified that clocked signals are extrapolated using hold, not constant section 16.2.1. Ticket #2607.

–
Clarified that clock constructors can take named arguments and that clock partioning must be parametric, section 16.3; Ticket #2394.

–
Restricted noClock to not take a Clock as input, section 16.5.2. Ticket #2355.

–
Consistently use "Event Clock". Ticket #2356.

–
Clarified that Boolean clock is considered for clock partitioning, section 16.7.3. Ticket #2179.

–
Clarified Real Clock constructor interval argument, section 16.3. Ticket #2180.

–
Clarified inferencing of solverMethod by rewriting algorithm, section 16.8.4. Ticket #2182.

–
Clarified wording of solver method for clock constructor, section 16.3. Ticket #2194.

–
Clarify that clocked operators cannot be differentiated, section 16.5.2. Ticket #2236.

–
Clarified that hold and backSample only take component expressions, section 16.7.1. Ticket #2270.

–

•
Clarified statemachines, chapter 17.

–
Removed color recommendation for state machines, section 17.2. Ticket #2650.

–
Clarified connecting multiple outputs (for statemachines), section 17.3.6. Ticket #2735.

–
Clarified inactive equations, section 17.3.3. Ticket #2734.

–
Defined hierarchical ticksInState and timeInState, section 17.1. Ticket #2407.

–
Correct both variants of nextResetStates to clarify reset handling, section 17.3.2. Ticket #2209.

–

•
Conversions, section 18.8.2.1, were used for Modelica Standard Library 4.0.0, and were thus clarified and slightly extended for the future.

–
Extend convertMessage to elements of classes, section 18.8.2.1. Ticket #2516.

–
Clarify convertClassIf for enumerations and strings and restrict allowed types, section 18.8.2.1. Ticket #2451.

–
Further clarify conversion rules, section 18.8.2.1. Ticket #2522.

–
Avoid ambiguity by giving precedence to convertModifiers, section 18.8.2.1. Ticket #2409.

–
Clarified inheritance for conversions, section 18.8.2.1. Ticket #2178.

–

•
Added and clarified other specific annotations, chapter 18.

–
Annotation SourceDirectory which is a starting point for exporting sources, section 12.9.4. Ticket #2145.

–
Clarified Evaluate annotation for hierarchical components, section 18.3. Ticket #2288.

–
Added testcase annotation for incorrect models, section 18.4.1. Ticket #2340.

–
Clarified choicesAllMatching, section 7.3.4. Ticket #2693.

–
Clarified HTML encoded contents, section 18.2. Ticket #2593.

–
Allow restricted form of Dialog annotation for classes, section 18.7. Ticket #2617.

–
Clarified connectorSizing, section 18.7. Ticket #2599.

–
Improved description for Documentation annotation (included with MCP0033), section 18.2. Ticket #2594.

–
Clarified order in parameter dialog, section 18.7. Ticket #2310.

–
Clarify URI fragments, section 18.2. Ticket #2445.

–
Specify that Dialog group does not have a default, section 18.7. Ticket #2476.

–
Clarify aspect ratio for lines with arrows, section 18.6.5.1. Ticket #2528.

–
Clarify that protection of classes prevent "copying", section 18.9.1. Ticket #2260.

–
Extended bitmaps to allow svgformat, section 18.6.5.6. Ticket #174.

–
Clarified macros for text, section 18.6.5.5. Ticket #2416.

–
State that changing default name for inner/outer component is not good, section 18.7. Ticket #2398.

–
Clarified that preserveAspectRatio is a hint, section 18.6.1.1. Ticket #2268.

–
Clarified that includefiles provide prototypes, section 12.9. Ticket #2278.

–
Clarified visibility of encrypted contents, section 18.9.1. Ticket #2318.

–
Clarified that missingInnerMessage is a literal string, section 18.7. Ticket #2334.

–
Clarified textmacros including %class, section 18.7. Ticket #2335.

–
Clarified that obsolete is not inherited, section 18.7. Ticket #2338.

–
Added unit for %par, section 18.7. Ticket #2339.

–
Clarified textannotations on connections, section 18.6.4. Ticket #2170.

–
Add iconVisible to be able to show/hide connectors in icon layer for public connectors, section 18.6.2. Ticket #2200.

–
Correct grammar for experiment and give default for startTime, section 18.4.1. Ticket #2224.

–
Clarified that versionBuild and dateModified can be used for uses annotation, section 18.8.2. Ticket #2239.

–
Clarified that image backgrounds are assumed to be white/transparent with light color, section 18.7. Ticket #2244.

–
Clarified that IconMap is also allowed on short class definitions, section 18.6.3. Ticket #2281.

–
Clarify that some protection annotations have no effect (not merely no "meaningful effect"), section 18.9.1. Ticket #2193.

–

•
Minor updates of syntax, appendix A.

–
Update grammar to use description instead of nonexistent comment, section A.2. Ticket #2620.

–
Allow empty quoted identifier, section 2.3.1. Ticket #2612.

–
Allow .13 as floating point number, section 2.4.1. Ticket #2122.

–
Factor out functionpartial application, section A.2.7. Ticket #2250.

–
Reverted regression for function arguments, section A.2.7. Ticket #2176.

–
Renamed stringcomment to descriptionstring, section 2.2. Ticket #2467.

–
Clarified quoted identifiers, section 2.3.1. Ticket #2408.

–
Correct grammar to allow ".*" as one token for import, section A.2.2. Ticket #2430.

–
Removed redundant parentheses in syntax rules, section A.2. Ticket #2434.

–
Removed old underscores in syntax rule, section A.2.7. Ticket #2431.

–
Corrected use of annotationcomment, section A.2.3. Ticket #2428.

–

•
Improved DAEchapter to be a complete description, appendix B.

•
Improved stream connector formulation, appendix C

–
Updated notation to use massflows as derivatives, appendix C. Ticket #2644.

–
Further clarify inStream simplifications, section C.3.3. Ticket #2242.

–
Clarified inStream to make it clear that positive massflow is assumed, section C.2. Ticket #2253.

–

•
Stated that disable conditional components are ignored for inner/outer, section 5.4. Ticket #2499.

•
Clarify some use of heterogenous record arrays, chapter 10. Ticket #2282.

•
Allow end for noninteger indexed arrays, section 10.5.2. Ticket #2204.

•
Improved encapsulated short class to be consistent with encapsulation, section 4.5.1. Ticket #2743.

•
Clarified that array declarations cannot be scalar, section 10.1. Ticket #2753.

•
Clarified acyclic rule for nonfixed parameters, section 4.4.3. Ticket #2742.

•
Clarified final for classes, section 7.2.6. Ticket #2676.

•
Made whendescriptions more similar, section 8.3.5.2 and section 8.3.5.3. Ticket #2635.

•
Make assertion level a structural parameter, section 8.3.7. Ticket #2642.

•
Deprecate byte order mark, section 13.4.1. Ticket #2675.

•
State that matrix/vector algebra functions return Real, section 10.3.5. Ticket #2673.

•
Clarified each, section 7.2.5. Ticket #2630.

•
Clarified elsewhen initial, section 8.6. Ticket #2636.

•
Consistently use "discretetime variable". Ticket #2640.

•
Clarified use of expandable connector, section 9.1.3. Ticket #2606.

•
Made ndims constant, section 3.8.1. Ticket #2605.

•
Restrict use of size of components of expandable connectors, section 9.1.3. Ticket #2560.

•
Clarify scoping for component names, section 5.3.2. Ticket #2547.

•
Extend promote to be allowed in Modelica, and not only internally in the specification, section 10.3. Ticket #2568.

•
Clarify that iterator ranges cannot be deduced from expandable connector variables, section 11.2.2.1. Ticket #2560.

•
Restructure description of Real and Integer types to keep details together, section 4.8.1. Ticket #2552.

•
Clarify pre for arrays, section 3.7.5. Ticket #2566.

•
Clarify variability guarantee, section 4.4.4. Ticket #2553.

•
Corrected errors in example of overdetermined connectors for power system, section 9.4.3.1. Ticket #2564.

•
Cleanup of example of overdetermined connectors for power system, section 9.4.3.1. Ticket #2565.

•
Correct so that normal connector cannot inherit from expandable connector, section 7.1.3. Ticket #2298.

•
Clarify that locally nonsingular models can be combined to a globally singular model, section 4.7. Ticket #2510.

•
Clarify interaction between variability and perfect matching, section 3.8. Ticket #2525.

•
In examples change SIunits to Units.SI following MSL 4.0.0. Ticket #2504.

•
Remove outdated statement that model and class are the same, section 4.6. Ticket #1345.

•
Remove outdated statement that constants cannot be modified, section 12.6. Ticket #2492.

•
Revert regressions for lookup, section 5.3. Ticket #2175.

•
Clarify handling of equations involving connectors, section 4.6. Ticket #2235.

•
Clarified some builtin array functions, section 10.3.5. Ticket #2295.

•
Clarified when initial() for algorithms, section 8.6. Ticket #2436.

•
Clarify differentiability of expressions, section 4.4.4. Ticket #2464.

•
Clarified standard type coercion, section 10.6.13. Ticket #2326.

•
Fully renamed declaration assignments to binding equations, section 12.4.4. Ticket #2249.

•
Restrict lefthand sides to not be components of models and blocks, section 11.2.1.2. Ticket #2385.

•
Correct order in example of shortcircuit logic, section 3.3.1. Ticket #2442.

•
Clarified evaluation of forequations, section 8.3.2.1. Ticket #2205.

•
Clarify how sizes can be deduced from binding equations, section 10.1. Ticket #2212.

•
Clarify that component declarations allow indexing with types, section 4.4.1. Ticket #2221.

•
Corrected formulation of synchronous dataflow principle, section 8.4. Ticket #2348.

•
Restrict functions to not have connectors  later clarified, section 12.2. Ticket #2308.

•
Clarified sample, section 3.7.5. Ticket #2118.

•
Clarified that presentation of units is not restricted to ASCII, section 19.1. Ticket #2142.

•
Clarified array variants for short classes, section 4.4.2. Ticket #2159.

•
Clarified examples for external libraries, section 12.9.4. Ticket #2192.

•
Clarified overdetermined connector handling by renaming "breakable branch" to "optional spanning tree edge", section 9.4.1. Ticket #2201.

•
Improved pseudocode spatialDistribution, section 3.7.4.2. Ticket #2202.

•
Clarified reinit, section 3.7.5. Ticket #2203.

•
Allow sum and product of matrix with non integer index, section 10.3.4. Ticket #2204.

•
Correct spelling of units to be consistent with SI, chapter 19. Ticket #2232.

•
Clarify that description string of modifier replaces existing one, section 7.2. Ticket #2237.

•
Clarified that first argument to cat is an integer parameter expression, section 10.4.2. Ticket #2273.

•
Clarified illegal modification of outer element, section 5.4. Ticket #2283.