diff --git a/MLS.tex b/MLS.tex index 40f2202d7..3e3f61a8d 100644 --- a/MLS.tex +++ b/MLS.tex @@ -4,10 +4,11 @@ % Define title for use by LaTeXML. % An extended title is defined separately in the 'titlepage'. -\newcommand{\mlsversion}{3.5-dev} +\newcommand{\mlsversion}{3.5 (RC1)} +\newcommand{\mlsdate}{December 31, 2020} \title{Modelica\textsuperscript{\textregistered} Language Specification version~\mlsversion} -\date{\today} +\date{\mlsdate} \author{Modelica Association} @@ -36,7 +37,7 @@ % needed for over-determined connectors (as it would otherwise overflow) \cleardoublepage \pagestyle{fancy} -\rhead{Modelica Language Specification 3.5-dev\\ \nouppercase{\rightmark} \vspace{1mm}} +\rhead{Modelica Language Specification \mlsversion\\ \nouppercase{\rightmark} \vspace{1mm}} \lhead{\includegraphics[height=6.5mm]{Modelica_Language}} \renewcommand{\headrulewidth}{0.0pt} diff --git a/chapters/revisions.tex b/chapters/revisions.tex index 80037d40d..d0e13c172 100644 --- a/chapters/revisions.tex +++ b/chapters/revisions.tex @@ -5,6 +5,404 @@ \chapter{Modelica Revision History}\label{modelica-revision-history} is not normative. The current version of this document is available from \url{https://www.modelica.org/documents}. +\section{Modelica 3.5}\label{modelica-3-5} +Modelica 3.5 was last edited \mlsdate, and will later be voted to be approved +The Modelica 3.5 specification was edited by Hans Olsson. + +\subsection{Main changes in Modelica 3.5}\label{main-changes-in-modelica-3-5} + +The following Modelica Change Proposals are backward compatible extensions added in 3.5: +\begin{itemize} +\item Change of specification format (MCP-0018). +The development of the specification was changed to use \LaTeX for formatting; and \url{https://github.com/modelica/ModelicaSpecification} for issue-tracking. +\item Annotations for Predefined Plots (MCP-0033), \cref{annotations-for-figures}. Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2710}{\#2710}. +\begin{itemize} +\item Generalize links in text markup, \cref{text-markup-escape-sequences}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2692}{\#2692}. +\item Mandate that Axis.unit is for tick labels, \cref{axis-properties}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2633}{\#2633}. +\item Define meaing of empty Axis.unit, \cref{axis-properties}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2632}{\#2632}. +\item Elaborate on inheritance of figures, \cref{annotations-for-figures}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2588}{\#2588}. +\item Clarified that leading and ending newline is ignored, \cref{text-markup-in-captions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2581}{\#2581}. +\item Made figure title optional, \cref{annotations-for-figures}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2580}{\#2580}. +\item Clarified curves and units for figures, \cref{axis-properties} and \cref{plot-curves}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2579}{\#2579}. +\item Clarified uniqueness of Figure and Plot identifiers, \cref{annotations-for-figures}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2544}{\#2544}. +\item Relaxed uniqueness of Plot identifiers, \cref{annotations-for-figures}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2537}{\#2537}. +\item Updated to have HTML-caption, sub-plot title and identifier. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2363}{\#2363}. +\end{itemize} +\end{itemize} + +Other issues resolved were: +\begin{itemize} +\item Overall improvements of the document, made easier by the switch to \LaTeX. +\begin{itemize} +\item A real bibliography was added, but excluding papers in this chapter; \href{https://github.com/modelica/ModelicaSpecification/pull/2740}{\#2740}. +\item Dead links in the bibliograph were removed and DOI used when possible. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2502}{\#2502}. +\item Chapter introductions are now non-normative, \href{https://github.com/modelica/ModelicaSpecification/issues/2366}{\#2366}. +\item The index was updated to reference the main definition of the term, and the glossary removed to avoid duplicated effort; \href{https://github.com/modelica/ModelicaSpecification/pull/2726}{\#2726}. +\item Hyphens and dashes were cleaned up, \href{https://github.com/modelica/ModelicaSpecification/pull/2628}{\#2628}. +\item Minor English language improvements, including removing "allows to" and "may not". +Tickets \href{https://github.com/modelica/ModelicaSpecification/issues/2685}{\#2685}, \href{https://github.com/modelica/ModelicaSpecification/issues/2683}{\#2683}, and additional ones. +\item Moved non-normative text to separate paragraphs. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2536}{\#2536}. +\item Consistent use of different quote symbols. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2508}{\#2508}. +\item The minor issues related to change of formatting, continuous integration, examples, and maintenance of repository are not listed here. +\end{itemize} + +\item Improved functions, \cref{functions}. +\begin{itemize} +\item Clarified impure function as function arguments, \cref{pure-modelica-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2756}{\#2756}. +\item Clarified that public variables in functions must be input or output, \cref{function-as-a-specialized-class}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2730}{\#2730}. +\item Changed inputs to C functions to be const-correct, \cref{arrays-1}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/1955}{\#1955}. +\item Clarified that external object is a class, \cref{external-objects}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2705}{\#2705}. +\item Deprecate "builtin" external language, \cref{external-function-interface}. +Avoid reference to Modelica.Math \cref{built-in-mathematical-functions-and-external-built-in-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2662}{\#2662}. +\item Clarified functions with no outputs, \cref{empty-function-calls}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2692}{\#2692}. +\item Replace use of outdated grammar-construct class-name, \cref{external-resources}, \cref{functional-input-arguments-to-functions}, and \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2598}{\#2598}. +\item Updated example for function as argument to function, \cref{functional-input-arguments-to-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2563}{\#2563}. +\item Extend function inverses and clarify them, \cref{declaring-inverses-of-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2478}{\#2478}. +\item Clarify consequence of using impure functions in binding equations for parameters, \cref{pure-modelica-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2475}{\#2475}. +\item Removed deprecated assignments from function declaration template, \cref{function-declaration}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2439}{\#2439}. +\item Corrected regression in example specifying the second derivative of a function, \cref{using-the-derivative-annotation}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2401}{\#2401}. +\item Clarified variability restrictions of inputs in functions, \cref{parameter-expressions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2243}{\#2243}. +\item Clarified handling of lib/dll on Windows, \cref{annotations-for-external-libraries-and-include-files}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2252}{\#2252}. +\item Clarified function component, \cref{functional-input-arguments-to-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2255}{\#2255}. +\item Clarified that object-files are not library-files, \cref{annotations-for-external-libraries-and-include-files}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2257}{\#2257}. +\item Clarified ModelicaAllocateString, \cref{utility-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2279}{\#2279}. +\item Clarified memory management for external objects, \cref{external-objects}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2524}{\#2524}. +\item Introduced ModelicaDuplicateString for C-code, \cref{utility-functions-for-allocating-strings}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2417}{\#2417}. +\item Improved ModelicaAllocateString for C-code, \cref{utility-functions-for-allocating-strings}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2403}{\#2403}. +\end{itemize} + +\item Clarified synchonous Modelica, \cref{synchronous-language-elements} +\begin{itemize} +\item Clarified that clock operators are not callable in functions and that functions may not contain Clock-variables and that they do not vectorize, \cref{argument-restrictions-component-expression}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2177}{\#2177} and Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2269}{\#2269}. +\item Clarified that clocks are not valid inputs for hold, \cref{base-clock-conversion-operators}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2174}{\#2174}. +\item Clarified rational clock to only have translation-time clock inference, \cref{modelica:clock-rational}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2386}{\#2386}. +\item Clarified that different clock partitions should be separate, \cref{sub-clock-partitioning}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2365}{\#2365}. +\item Rewrote rationale to be positive, \cref{rationale-for-clocked-semantics}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2512}{\#2512}. +\item Clarified terminology for discrete states, \cref{clocked-state-variables}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2651}{\#2651}. +\item Clarified that clocked signals are extrapolated using hold, not constant \cref{clocks-and-clocked-variables}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2607}{\#2607}. +\item Clarified that clock constructors can take named arguments and that clock paritioning must be parametric, \cref{clock-constructors}; +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2394}{\#2394}. +\item Restricted noClock to not take a Clock as input, \cref{sub-clock-conversion-operators}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2355}{\#2355}. +\item Consistently use "Event Clock". +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2356}{\#2356}. +\item Clarified that Boolean clock is considered for clock partitioning, \cref{base-clock-partitioning}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2179}{\#2179}. +\item Clarified Real Clock constructor interval argument, \cref{clock-constructors}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2180}{\#2180}. +\item Clarified inferencing of solverMethod by rewriting algorithm, \cref{inferencing-of-solvermethod}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2182}{\#2182}. +\item Clarified wording of solver method for clock constructor, \cref{clock-constructors}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2194}{\#2194}. +\item Clarify that clocked operators cannot be differentiated, \cref{sub-clock-conversion-operators}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2236}{\#2236}. +\item Clarified that hold and backSample only take component expressions, \cref{flattening-of-model}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2270}{\#2270}. +\end{itemize} + +\item Clarified state-machines, \cref{state-machines}. +\begin{itemize} +\item Removed color recommendation for state machines, \cref{state-machine-graphics}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2650}{\#2650}. +\item Clarified connecting multiple outputs (for state-machines), \cref{merging-connections-to-multiple-outputs}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2735}{\#2735}. +\item Clarified inactive equations, \cref{activation-handling}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2734}{\#2734}. +\item Defined hierarchical ticksInState and timeInState, \cref{transitions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2407}{\#2407}. +\item Correct both variants of nextResetStates to clarify reset handling, \cref{reset-handling}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2209}{\#2209}. +\end{itemize} + + +\item Conversions, \cref{conversion-rules}, were used for Modelica Standard Library 4.0.0, and were thus clarified and slightly extended for the future. +\begin{itemize} +\item Extend convertMessage to elements of classes, \cref{convertmessageoldclass-failed-message2}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2516}{\#2516}. +\item Clarify convertClassIf for enumerations and strings and restrict allowed types, \cref{conversion-rules}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2451}{\#2451}. +\item Further clarify conversion rules, \cref{conversion-rules}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2522}{\#2522}. +\item Avoid ambiguity by giving precedence to convertModifiers, \cref{conversion-rules}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2409}{\#2409}. +\item Clarified inheritance for conversions, \cref{conversion-rules}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2178}{\#2178}. +\end{itemize} + +\item Added and clarified other specific annotations, \cref{annotations}. +\begin{itemize} +\item Annotation SourceDirectory which is a starting point for exporting sources, \cref{annotations-for-external-libraries-and-include-files}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2145}{\#2145}. +\item Clarified Evaluate annotation for hierarchical components, \cref{annotations-for-code-generation}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2288}{\#2288}. +\item Added test-case annotation for incorrect models, \cref{annotations-for-simulation-experiments}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2340}{\#2340}. +\item Clarified choicesAllMatching, \cref{annotation-choices-for-suggested-redeclarations-and-modifications}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2693}{\#2693}. +\item Clarified HTML encoded contents, \cref{annotations-for-documentation}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2593}{\#2593}. +\item Allow restricted form of Dialog annotation for classes, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2617}{\#2617}. +\item Clarified connectorSizing, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2599}{\#2599}. +\item Improved description for Documentation annotation (included with MCP-0033), \cref{annotations-for-documentation}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2594}{\#2594}. +\item Clarified order in parameter dialog, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2310}{\#2310}. +\item Clarify URI fragments, \cref{annotations-for-documentation}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2445}{\#2445}. +\item Specify that Dialog group does not have a default, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2476}{\#2476}. +\item Clarify aspect ratio for lines with arrows, \cref{line}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2528}{\#2528}. +\item Clarify that protection of classes prevent "copying", \cref{protection-of-classes}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2260}{\#2260}. +\item Extended bitmaps to allow svg-format, \cref{bitmap}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/174}{\#174}. +\item Clarified macros for text, \cref{text}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2416}{\#2416}. +\item State that changing default name for inner/outer component is not good, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2398}{\#2398}. +\item Clarified that preserveAspectRatio is a hint, \cref{coordinate-systems}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2268}{\#2268}. +\item Clarified that include-files provide prototypes, \cref{external-function-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2278}{\#2278}. +\item Clarified visibility of encrypted contents, \cref{protection-of-classes}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2318}{\#2318}. +\item Clarified that missingInnerMessage is a literal string, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2334}{\#2334}. +\item Clarified text-macros including \lstinline!%class!, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2335}{\#2335}. +\item Clarified that obsolete is not inherited, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2338}{\#2338}. +\item Added unit for \lstinline!%par!, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2339}{\#2339}. +\item Clarified text-annotations on connections, \cref{connections1}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2170}{\#2170}. +\item Add iconVisible to be able to show/hide connectors in icon layer for public connectors, \cref{component-instance}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2200}{\#2200}. +\item Correct grammar for experiment and give default for startTime, \cref{annotations-for-simulation-experiments}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2224}{\#2224}. +\item Clarified that versionBuild and dateModified can be used for uses annotation, \cref{version-handling}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2239}{\#2239}. +\item Clarified that image backgrounds are assumed to be white/transparent with light color, \cref{annotations-for-the-graphical-user-interface}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2244}{\#2244}. +\item Clarified that IconMap is also allowed on short class definitions, \cref{extends-clause}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2281}{\#2281}. +\item Clarify that some protection annotations have no effect (not merely no "meaningful effect"), \cref{protection-of-classes}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2193}{\#2193}. +\end{itemize} + +\item Minor updates of syntax, \cref{modelica-concrete-syntax}. +\begin{itemize} +\item Update grammar to use description instead of non-existent comment, \cref{grammar}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2620}{\#2620}. +\item Allow empty quoted identifier, \cref{identifiers}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2612}{\#2612}. +\item Allow .13 as floating point number, \cref{floating-point-numbers}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2122}{\#2122}. +\item Factor out function-partial application, \cref{expressions1}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2250}{\#2250}. +\item Reverted regression for function arguments, \cref{expressions1}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2176}{\#2176}. +\item Renamed string-comment to description-string, \cref{comments}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2467}{\#2467}. +\item Clarified quoted identifiers, \cref{identifiers}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2408}{\#2408}. +\item Correct grammar to allow ".*" as one token for import, \cref{class-definition}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2430}{\#2430}. +\item Removed redundant parentheses in syntax rules, \cref{grammar}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2434}{\#2434}. +\item Removed old underscores in syntax rule, \cref{expressions1}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2431}{\#2431}. +\item Corrected use of annotation-comment, \cref{extends}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2428}{\#2428}. +\end{itemize} + +\item Improved DAE-chapter to be a complete description, \cref{modelica-dae-representation}. +\begin{itemize} +\item Added clocked variables. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2286}{\#2286}. +\item Stated solvability requirements for discrete-valued variables. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2639}{\#2639}. +\end{itemize} + +\item Improved stream connector formulation, \cref{derivation-of-stream-equations} +\begin{itemize} +\item Updated notation to use have mass-flows as derivatives, \cref{derivation-of-stream-equations}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2644}{\#2644}. +\item Further clarify inStream simplifications, \cref{connection-of-3-stream-connectors-where-one-mass-flow-rate-is-identical-to-zero-n-3-and}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2242}{\#2242}. +\item Clarified inStream to make it clear that positive mass-flow is assumed, \cref{rationale-for-the-formulation-of-the-instream-operator}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2253}{\#2253}. +\end{itemize} + + +\item Stated that disable conditional components are ignored for inner/outer, \cref{instance-hierarchy-name-lookup-of-inner-declarations}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2499}{\#2499}. +\item Clarify some use of heterogenous record arrays, \cref{arrays}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2282}{\#2282}. +\item Allow end for non-integer indexed arrays, \cref{indexing-with-end}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2204}{\#2204}. +\item Improved encapsulated short class to be consistent with encapsulation, \cref{short-class-definitions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2743}{\#2743}. +\item Clarified that array declarations cannot be scalar, \cref{array-declarations}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2753}{\#2753}. +\item Clarified acyclic rule for non-fixed parameters, \cref{acyclic-bindings-of-constants-and-parameters}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2742}{\#2742}. +\item Clarified final for classes, \cref{final-element-modification-prevention}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2676}{\#2676}. +\item Made when-descriptions more similar, \cref{restrictions-on-where-a-when-equation-may-occur} and \cref{restrictions-on-equations-within-when-equations}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2635}{\#2635}. +\item Make assertion level a structural parameteter, \cref{assert}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2642}{\#2642}. +\item Deprecate byte order mark, \cref{mapping-a-package-class-hierarchy-into-a-directory-hierarchy-structured-entity}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2675}{\#2675}. +\item State that matrix/vector algebra functions return Real, \cref{matrix-and-vector-algebra-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2673}{\#2673}. +\item Clarified each, \cref{modifiers-for-array-elements}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2630}{\#2630}. +\item Clarified elsewhen initial, \cref{initialization-initial-equation-and-initial-algorithm}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2636}{\#2636}. +\item Consistently use "discrete-time variable". +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2640}{\#2640}. +\item Clarified use of expandable connector, \cref{expandable-connectors}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2606}{\#2606}. +\item Made ndims constant, \cref{constant-expressions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2605}{\#2605}. +\item Restrict use of size of components of expandable connectors, \cref{expandable-connectors}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2560}{\#2560}. +\item Clarify scoping for component names, \cref{composite-name-lookup}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2547}{\#2547}. +\item Extend promote to be allowed in Modelica, and not only internally in the specification, \cref{built-in-array-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2568}{\#2568}. +\item Clarify that iterator ranges cannot be deduced from expandable connector variables, \cref{implicit-iteration-ranges}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2560}{\#2560}. +\item Restructure description of Real and Integer types to keep details together, \cref{real-type}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2552}{\#2552}. +\item Clarify pre for arrays, \cref{event-related-operators-with-function-syntax}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2556}{\#2566}. +\item Clarify variability guarantee, \cref{component-variability-prefixes-discrete-parameter-constant}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2553}{\#2553}. +\item Corrected errors in example of over-determined connectors for power system, \cref{an-overdetermined-connector-for-power-systems}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2564}{\#2564}. +\item Cleanup of example of over-determined connectors for power system, \cref{an-overdetermined-connector-for-power-systems}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2565}{\#2565}. +\item Correct so that normal connector cannot inherit from expandable connector, \cref{restrictions-on-the-kind-of-base-class}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2298}{\#2298}. +\item Clarify that locally non-singular models can be combined to a globally singular model, \cref{balanced-models}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2510}{\#2510}. +\item Clarify interaction between variability and perfect matching, \cref{variability-of-expressions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2525}{\#2525}. +\item In examples change SIunits to Units.SI following MSL 4.0.0. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2504}{\#2504}. +\item Remove outdated statement that model and class are the same, \cref{specialized-classes}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/1345}{\#1345}. +\item Remove outdated statement that constants cannot be modified, \cref{record-constructor-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2492}{\#2492}. +\item Revert regressions for lookup, \cref{static-name-lookup}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2175}{\#2175}. +\item Clarify handling of equations involving connectors, \cref{specialized-classes}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2235}{\#2235}. +\item Clarified some builtin array functions, \cref{matrix-and-vector-algebra-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2295}{\#2295}. +\item Clarified when initial() for algorithms, \cref{initialization-initial-equation-and-initial-algorithm}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2436}{\#2436}. +\item Clarify differentiability of expressions, \cref{component-variability-prefixes-discrete-parameter-constant}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2464}{\#2464}. +\item Clarified standard type coercion, \cref{standard-type-coercion}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2326}{\#2326}. +\item Fully renamed declaration assignments to binding equations, \cref{initialization-and-binding-equations-of-components-in-functions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2249}{\#2249}. +\item Restrict left-hand sides to not be components of models and blocks, \cref{restrictions-on-assigned-variables}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2385}{\#2385}. +\item Correct order in example of short-circuit logic, \cref{example-guarding-expressions-against-incorrect-evaluation}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2442}{\#2442}. +\item Clarified evaluation of for-equations, \cref{explicit-iteration-ranges-of-for-equations}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2205}{\#2205}. +\item Clarify how sizes can be deduced from binding equations, \cref{array-declarations}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2212}{\#2212}. +\item Clarify that component declarations allow indexing with types, \cref{syntax-and-examples-of-component-declarations}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2221}{\#2221}. +\item Corrected formulation of synchronous data-flow principle, \cref{synchronous-data-flow-principle-and-single-assignment-rule}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2348}{\#2348}. +\item Restrict functions to not have connectors - later clarified, \cref{function-as-a-specialized-class}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/2308}{\#2308}. + +\item Clarified sample, \cref{event-related-operators-with-function-syntax}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2118}{\#2118}. +\item Clarified that presentation of units is not restricted to ASCII, \cref{the-syntax-of-unit-expressions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2142}{\#2142}. +\item Clarified array variants for short classes, \cref{component-declaration-static-semantics}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2159}{\#2159}. +\item Clarified examples for external libraries, \cref{annotations-for-external-libraries-and-include-files}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2192}{\#2192}. +\item Clarified over-determined connector handling by renaming "breakable branch" to "optional spanning tree edge", \cref{overconstrained-equation-operators-for-connection-graphs}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2201}{\#2201}. +\item Improved pseudo-code spatialDistribution, \cref{spatialdistribution}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2202}{\#2202}. +\item Clarified reinit, \cref{event-related-operators-with-function-syntax}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2203}{\#2203}. +\item Allow sum and product of matrix with non integer index, \cref{reduction-functions-and-operators}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2204}{\#2204}. +\item Correct spelling of units to be consistent with SI, \cref{unit-expressions}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2232}{\#2232}. +\item Clarify that description string of modifier replaces existing one, \cref{modifications}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2237}{\#2237}. +\item Clarified that first argument to cat is an integer parameter expression, \cref{array-concatenation}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2273}{\#2273}. +\item Clarified illegal modification of outer element, \cref{instance-hierarchy-name-lookup-of-inner-declarations}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/2283}{\#2283}. + + + +\if0 +\item xxx, \cref{xxx}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/issues/}{\#}. +\item xxx, \cref{xxx}. +Ticket \href{https://github.com/modelica/ModelicaSpecification/pull/}{\#}. +\fi +\end{itemize} \section{Modelica 3.4}\label{modelica-3-4} Modelica 3.4 was released April 10, 2017. The Modelica 3.4 specification was edited by Hans Olsson.