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

•
Automatic conversions between different versions (MCP0014), section 18.8.2. Ticket #1622.

•
Flattening is clearly specified (MCP0019), section 5.3.1 and section 5.6. Ticket #1829.

•
Convert from Integer to Enumeration (MCP0022), primarily section 4.8.5.3. Ticket #1842.

•
Explicitly casting a Model to Record (MCP0023), section 12.6.1. Ticket #1953.

•
Initialization of Clocked Continuous States (MCP0024), section 16.8.1, section 16.9 and section 16.10. Ticket #2007.

•
An added option to Ellipse Annotation to draw only an arc (MCP0026), section 18.6.5.4. Ticket #2045.

•
Allowing mixed Real and nonReal Record Derivatives (MCP0028), section 12.7.1. Ticket #2134.
The definition of pure functions was refined, in particular to restore backwards compatibility with Modelica 3.2, section 12.3. Ticket #1937.
The following minor improvements were made (starting from 3.3 Revision 1):

•
Clarified simulation model, section 1.2. Ticket #730.

•
Clarified structural analysis, section 1.2. Ticket #588.

•
Clarified metasymbols, section 1.4 and 2.3.1. Ticket #1616.

•
Typo, section 2.3.1. Ticket #1702.

•
Clarified newline, section 2.4.4. Ticket #1479.

•
Allow ’”’ and define it to be equal to ’\”’ (and similarly for ’\?’), section 2.3.1. Ticket #1176.

•
Clarified that builtin functions in the specification, section 3.7 and 12.5. Ticket #1608.

•
Clarified named arguments for builtin operators, in particular spatialDistribution, section 3.7.2 and section 12.4.1. Ticket #2002.

•
Clarified that semiLinear is continuous, section 3.7.2. Ticket #112.

•
Corrected spelling, section 3.7.2. Ticket #1828.

•
Corrected typo in code and reformulated description, section 3.7.2.2. Ticket #1588, #1729, and #2166.

•
Corrected typo for events, section 3.7.3.2. Ticket #1657.

•
Clarified sample operator, section 3.7.3. Ticket #677.

•
Additional functions give parameter expression, section 3.8.2. Ticket #1082.

•
Clarified ExternalObject, section 4.4.2.2. Ticket #1546.

•
Simplified rules type prefixes for structured components, section 4.4.2.2. Ticket #1686.

•
Clarified that unexpanded bindings shall be unexpanded, section 4.4.3. Ticket #2153.

•
Clarified conditional components, section 4.4.5. Ticket #2057.

•
Improved example to avoid using class, section 4.5.3. Ticket #553.

•
Clarify inheritance from predefines types, section 4.6. Ticket #1250.

•
Allow connector inheriting from operator record, section 4.6. Ticket #1714.

•
Clarify restrictions on record components, section 4.6. Ticket #1615.

•
Clarify that only functions may have external clause, section 4.6 and section 12.2. Ticket #2014.

•
Clarified equation count for operator record, section 4.7. Ticket #866.

•
Clarified restriction on attributes, section 4.8. Ticket #1426.

•
Clarified how reserved the different builtin types are, section 4.8. Ticket #1538.

•
Removed restriction on nominal and explained purpose, section 4.8.1. Ticket #1445.

•
Added unbounded to Real, section 4.8.1 and section 4.8.7. Ticket #926.

•
Added fixedattribute for String, section 4.8.4. Ticket #1797.

•
Clarified and corrected example in section 4.8.5. Ticket #1849 and #2150.

•
Clarified nominal attribute, section 4.8.7 and section 15.2. Ticket #1877.

•
Added that Connections is builtin package, section 4.8.8.4. Ticket #1883.

•
Clarified lookuporder regarding import, section 5.3.1. Ticket #1573.

•
Extend calling functions through component to array case, section 5.3.2 and section 3.1. Ticket #1613.

•
Clarified existing use of automatic inner declarations, section 5.4 and section 18.7. Ticket #1551 and #1749.

•
Removed restriction on array size for modifiers, section 6.3. Ticket #1432.

•
Clarified that 2/3 and 2^(3) are Real, section 6.6. Ticket #1647.

•
Clarified that external declaration is inherited, section 7.1. Ticket #789.

•
Further clarified order for multiple inheritance, section 5.6.1 and section 7.1. Ticket #2015.

•
Clarified inheritance restrictions, section 7.1.3. Ticket #1451.

•
Restricted merging of modifiers, section 7.2.3. Ticket #791.

•
Clarified each especially for nested arrays, section 7.2.4 and section 7.2.5. Ticket #1596.

•
Clarified replaceable with array sizes on types, section 7.3. Ticket #1251.

•
Corrected and moved example, section 7.3 and section 7.3.2. Ticket #1034.

•
Clarified ”redeclare class extends B”, section 7.3.1. Ticket #462 and #709.

•
Corrected example, section 7.3.2. Ticket #1725.

•
Clarified description and annotation on constrainingclause, section 7.3.2.1. Ticket #512.

•
Corrected typo, section 7.3.4. Ticket #1770.

•
Clarified forequation with types, section 8.3.2. Ticket #915.

•
Clarified event generation, section 8.5. Ticket #2114.

•
Further clarified initial() for whenclauses, section 8.6 – and indicated that this appendix is not normative. Ticket #1852.

•
Clarified using startattribute for parameters, section 8.6. Ticket #2136.

•
Clarified that states for first order ODE, section 8.6.1. Ticket #937.

•
Clarified adding input/output prefix for expandable connector variables, section 9.1.3. Ticket #829.

•
Clarified creating elements in expandable connectors, section 9.1.3. Ticket #428.

•
Corrected expandable connector example, section 9.1.3. Ticket #1763.

•
Clarified that streamvariables do not generate equations, section 9.2. Ticket #1584.

•
Restrict that stream only connects to stream, section 9.3. Ticket #796.

•
Clarified section heading, section 9.3.1. Ticket #727.

•
Clarified vector arguments for operators in section 9.4.1. Ticket #1590.

•
Corrected example, section 9.4.3.1. Ticket #2143.

•
Clarified return type for reduction expressions, section 10.3.4. Ticket #981.

•
Extended reduction expression sum to operator records, section 10.3.4. Ticket #1897.

•
Clarified table in section 10.3.4.1. Ticket #1722.

•
Match parenthesis, section 10.4.1.2. Ticket #1558.

•
Recommend better alternative for generating vector, section 10.4.3. Ticket #1837.

•
Defined unary operators, section 10.6.2. Ticket #2027.

•
Allow missing trailing indices, sections section 10.5 and section 10.6.9. Ticket #1603.

•
Clarified that elementwise division gives real result, section 10.6.6. Ticket #1119.

•
Removed misleading comment, section 11.1.2. Ticket #938.

•
Clarified how assignment works for multireturning functions, section 11.2.1.1. Ticket #1921.

•
Clarified no equations and initial algorithms in functions, section 12.2. Ticket #2160.

•
Clarified assigning to record variables with bindings in functions, section 12.2. Ticket #2016.

•
Clarified initialization of variables in functions, section 12.4.4. Ticket #1708.

•
Standarize current practice of using = instead of := for bindings in functions, section 12.2. Ticket #1595.

•
Clarified function partial evaluation, section 12.4.2.1. Ticket #647.

•
Clarified initialization of record components in functions, section 12.4.4. Ticket #1230.

•
Clarified flexible array sizes, section 12.4.5. Ticket #2158.

•
Clarified name of output for record constructor in section 12.6. Ticket #366.
 •

•
Clarified that using C89 and added possibility for C89, C99, and C11 , section 12.9. Ticket #1088.

•
Clarified input/output to external functions, section 12.9. Ticket #775.

•
Clarified handling of Boolean variables for external C, section 12.9.1.1. Ticket #1846.

•
Added that Strings can be sent to FORTRAN 77, section 12.9.1.1. Ticket #1971.

•
Allow multiple include directories, section 12.9.4. Ticket #2103.

•
Allow specific libraries for different compiler versions, section 12.9.4. Ticket #1316.

•
Added external warning functions, section 12.9.6. Ticker #1967.

•
Clarified that pointers are only valid during each call, section 12.9.7. Ticket #1611.

•
Clarified constructor and destructor, section 12.9.7. Ticket #1907.

•
Clarified ’structured entity’ to be ’directory’, section 13.2.2. Ticket #922.

•
Clarified handling of incorrect package.order, section 13.2.2.1. Ticket #1858.

•
Restricted use of files with multiple classes, section 13.2.2.2. Ticket #1854.

•
Clarified storing resources in a filesystem, section 13.2.3. Ticket #685, #1623.

•
Used correct font, section 13.2.3. Ticket #2061.

•
Clarified that inStream optimizations are allowed, section 15.2. Ticket #1766.

•
Corrected actualStream example in section 15.3. Ticket #1652.

•
Corrected nonperiodic rational clocks, section 16.3. Ticket #2022.

•
Clarified initialization of clocked discretized continuoustime partitions, section 16.8.2. Ticket #1528.

•
Defined rendering order, section 18.6. Ticket #1750.

•
Clarified rotation direction, section 18.6.1. Ticket #1830.

•
Clarified coordinate system definition, section 18.6.1.1. Ticket #1831.

•
Defined coordinate system inheritance to be less suprising, section 18.6.1.1 and section 18.6.3. Ticket #1978.

•
Clarified lineThickness and borderPattern, section 18.6.5 section 18.6.1.2. Ticket #1896.

•
Corrected formatting, section 18.6.1.2. Ticket #1825.

•
Made the different Textannotations more similar, section 4.8.8.4. Ticket #1621.

•
Clarified LinePatterns in section 18.6.5. Ticket #1483.

•
Corrected flipping of components and bitmaps, and clarified various aspects of bitmaps, section 18.6.2 and section 18.6.5.6. Ticket #1923.

•
Clarified arrows, section 18.6.5.1. Ticket #1894.

•
Clarified existing use of zerowidth texts, section 18.6.5.5. Ticket #1636.

•
Added specific fontnames, section 18.6.5.5. Ticket #1986.

•
Added alternative for macroexpansion, section 18.6.5.5. Ticket #2148.

•
Corrected example in section 18.6.7.1. Ticket #2111.

•
Placed annotation last in classes, in particular section 18.7. Ticket #1009.

•
Cleaned up code and formatting in section 18.7. Ticket #2041, #2042, and #2125.

•
Added missing nanoprefix, section 19.1. Ticket #1261.

•
Replaced the outdated contents of chapter 20 by a hyperlink. Ticket #2130.

•
Added ModelicaServices to chapter 20. Ticket #2132.

•
Restrict grammar to avoid modifiers with leading dot, section B.2. Ticket #1027.

•
Restrict grammar for baseprefix, section B.2.2. Ticket #917.

•
Restrict grammar for arrays, section 3.1. Ticket #809.

•
Restrict grammar for function arguments (replacing semantic restriction), section 3.1. Ticket #1634.

•
Corrected typo in section D.2. Ticket #1317.