h1. Release Notes


h2. Eclipse APP4MC 0.9.6 (Oct 2019)

Model handling
* Model migration support (0.9.5 -> 0.9.6)
* New "no-load" nature (avoids model loading while moving/copying model files)
* Multi-line strings are supported in the editor (for selected string attributes)

Model changes
* Extended ModeConditions (allow the comparison of two mode labels)
* Refined EventChain definition (to explicitly describe fork-join, alternative, etc.)
* Counter added to RunnableCall

Build infrastructure
* Split git repository and independent build job for model migration component
* Changed to tycho-pomless maven builds

_For details see "Release 0.9.6 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.9.6/bugs_


h2. Eclipse APP4MC 0.9.5 (Jul 2019)

Model handling
* Model migration support (0.9.4 -> 0.9.5)
* New validation framework

Model changes
* Consolidated call graph: items of tasks and runnables are unified, call sequences are removed
* Simplified clock definitions (used in scenarios of variable rate stimuli)
* Limited frequency values to non negative (value >= 0)

_For details see "Release 0.9.5 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.9.5/bugs_


h2. Eclipse APP4MC 0.9.4 (Apr 2019)

Model handling
* Model migration support (0.9.3 -> 0.9.4)
* Optimized model search
* New validation framework (preview)

Model changes
* Extended modes to allow the handling of counters (integer values, comparison, increment, decrement)
* Uniform use of execution conditions (for stimuli, runnables, mode switches)
* Model cleanup (removed runnable deadlines, distinct naming)

_For details see "Release 0.9.4 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.9.4/bugs_


h2. Eclipse APP4MC 0.9.3 (Jan 2019)

Model handling
* Model migration support (0.9.2 -> 0.9.3)
* Optimized model search

Model changes
* Introduced "Ticks" as base concept for required computation effort
* Simplified "Execution Needs" (no specific entries for different processing units)
* Reworked distributions (discrete, continuous, time) without generics

_For details see "Release 0.9.3 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.9.3/bugs_


h2. Eclipse APP4MC 0.9.2 (Oct 2018)

Model handling
* Model migration support (0.9.1 -> 0.9.2)
* New model search dialog
* New model builders (with a Groovy-like builder pattern)

Model changes
* Small extensions in the hardware model

_For details see "Release 0.9.2 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.9.2/bugs_


h2. Eclipse APP4MC 0.9.1 (Jul 2018)

General
* New Eclipse Oxygen.3a based product (compatible with Java 8, Java 9 and Java 10)
* License change from EPL-1.0 to EPL-2.0

Model handling
* Model migration support (0.9.0 -> 0.9.1)
* New implementation of transient back references
* Unified approach for fast name search and mass delete
* Updated model utilities

Model changes
* New concept of DataDependency (to describe potential data dependencies)
* New possibility to specify RunnableParameters and CallArguments


h2. Eclipse APP4MC 0.9.0 (Apr 2018)

Model handling
* Model migration support (0.8.3 -> 0.9.0)
* Updated model utilities

Model changes
* *New hardware model*
* New concept of ExecutionNeed (replaces the former RunnableInstructions)

 __Note: This is the first implementation of the new hardware model. It will be extended in the next version and (minor) changes are expected__.


h2. Eclipse APP4MC 0.8.3 (Jan 2018)

General
* New Eclipse Neon.3 based product

Model handling
* Model migration support (0.8.2 -> 0.8.3)
* Updated model utilities

Model changes
* New mode conditions (logical AND)
* New timing requirement (end to start)
* Reworked Stimuli definitions
* New reference to port for client server and sender receiver communication

_For details see "Release 0.8.3 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.3/bugs_


h2. Eclipse APP4MC 0.8.2 (Oct 2017)

General
* Model changes (extensions)
* New graphical editors (based on Sirius)

Model handling
* Model migration support (0.8.1 -> 0.8.2)
* New model utilities

Model changes
* New runnable item to get the result of an asynchronous request
* New possibility to specify the label access implementation
* New measurement model
* New component event

_For details see "Release 0.8.2 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.2/bugs_


h2. Eclipse APP4MC 0.8.1 (Jul 2017)

General
* Model changes (extension and harmonization)
* Improved model handling
* New tooling: EMF Graphical Viewer

Model handling
* Model migration support (0.8.0 -> 0.8.1)
* New support for compressed model files (zip)
* More back references

Model changes
* Extended Schedulers (hierarchical, reservation based)
* Extend Semaphore definition (types)
* Consistent naming of Triggers, Activations and Stimuli
* New elements for data driven computation (conditions, triggers)

_For details see "Release 0.8.1 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.1/bugs_



h2. Eclipse APP4MC 0.8.0 (Apr 2017)

General
* Model changes (mainly to simplify handling)
* Improved tooling: model utilities
* New UI components: Multicore Wizard, Task-Visualizer (draft version)

Model handling
* Model migration support (0.7.2 -> 0.8.0)

Model changes
* Simplified model handling: Mapping Model, Modes, Time
* New classifiers to annotate Core and Memory
* Reworked Property Constraints
* Extended OS Overheads

_For details see "Release 0.8.0 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.0/bugs_



h2. Eclipse APP4MC 0.7.2 (Jan 2017)

General
* Smaller product definition (optional parts can be installed via update sites)
* Harmonized model API

Model handling
* Model migration support (0.7.1 -> 0.7.2)
* Improved back references

Model changes
* New core-specific runtimes (instructions) for runnables
* New model elements for streaming communication (Channels)*
* New Transmission Policy for communication (e.g. label accesses) 
* New Event-based Stimulus
* New Data Consistency needs
* New Counters for InterProcessActivation and EventStimulus
* Harmonized model elements to describe probability
* Storage of common elements (e.g. tags) in one central location

Bug fixes / Improvements
* Model migration (ISR call graph, Section names, cross document references)
* Back references (Memory -> Mapping, Scheduler -> CoreAllocation)

Documentation
* New model elements: Physical memory sections, Channels
* New examples

 * =  __Experimental feature (first modeling attempt that may change in future versions)__.

_For details see "Release 0.7.2 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.7.2/bugs_



h2. Eclipse APP4MC 0.7.1 (Oct 2016)

Model handling
* Model migration support (0.7.0 -> 0.7.1)
* Improved update of opposite references
* Storage of default values is enabled by default

Model changes
* New distribution "Beta Distribution"
* New stimuli type "Synthetic" (to "replay" activations from a hardware trace)
* New DataStabilityGroup
* Introduced SamplingType as new attribute for Deviation
* Introduced physical memory sections (PhysicalSectionConstraint, PhysicalSectionMapping)
* Reworked AffinityConstraints (removed Scheduler constraints, added Data constraints)
* Reworked Event / Event-Chain Constraints
* Reworked RunnableSequencingConstraints
* New types for DataSizes and DataRates

_For details see "Bugzilla entries for 0.7.1":https://bugs.eclipse.org/bugs/buglist.cgi?product=App4mc&target_milestone=0.7.1_



h2. Eclipse APP4MC 0.7.0 (Jul 2016)

Model handling
* Model migration support (itea1.1.0 -> itea1.1.1 -> 0.7.0)
* Simplified model creation wizard
* One consolidated model
* Additional opposite references (transient) to ease model navigation
* Scripting support for workflows (based on Eclipse EASE)

Model changes
* Removed 'attributes' and 'features' from hardware model
* Replaced generic __ProcessAllocation__ with specific __ISRAllocation__ and __TaskAllocation__
* New __BigInteger__ values for __CustomAttributes__
* Some renamed classes and attributes (details in the help)

Model structure
* Removed direct dependency to Franca (replaced by implicit reference by interface name)

Documentation
* Updated model documentation / class diagrams
* New developer guide regarding Model Migration Framework
* New developer guide regarding Workflows

