Commit e9e02e7d authored by Dennis Hendriks's avatar Dennis Hendriks
Browse files

Merge branch 'develop' into 'master'

#131 develop to master for v0.2-RC1

See merge request !111
parents c6a03a80 03186b5f
Pipeline #600 failed with stage
in 0 seconds
This diff is collapsed.
......@@ -21,7 +21,7 @@ pipeline {
tools {
jdk 'openjdk-jdk11-latest'
maven 'apache-maven-3.6.3'
maven 'apache-maven-3.8.1'
}
options {
......@@ -35,23 +35,48 @@ pipeline {
steps {
wrap([$class: 'Xvnc', takeScreenshot: false, useXauthority: true]) {
sh '''
# Print versions.
java -version
mvn -version
git --version
# Print environment.
printenv
# Check license headers are present for all files, where relevant.
./misc/license-header/license-header-check.bash
BUILD_ARGS=
# Get Git last commit date.
GIT_DATE_EPOCH=$(git log -1 --format=%cd --date=raw | cut -d ' ' -f 1)
GIT_DATE=$(date -d @$GIT_DATE_EPOCH -u +%Y%m%d-%H%M%S)
# Configure 'jenkins' profile for build.
BUILD_ARGS="-Pjenkins"
# Configure 'sign' profile for build.
# Sign 'master' branch, to allow checking release signing before deployment.
# Sign releases. Determined based on release version tag name.
if [[ "$GIT_BRANCH" == "master" || "$TAG_NAME" =~ ^v[0-9]+\\.[0-9]+.*$ ]]; then
# Sign releases, based on release version tag name.
# Sign 'master' branch, to allow checking release signing before deployment.
BUILD_ARGS="$BUILD_ARGS -Psign"
fi
# Override the 'escet.version.enduser' property for releases. Remains 'dev' otherwise.
if [[ "$TAG_NAME" =~ ^v[0-9]+\\.[0-9]+.*$ ]]; then
BUILD_ARGS="$BUILD_ARGS -Descet.version.enduser=$TAG_NAME"
fi
# Override the 'escet.version.qualifier' property for Jenkins builds.
# It starts with 'v' and the Git date, followed by a qualifier postfix.
# For releases, the qualifier postfix is the postfix of the version tag (if any).
# For non-releases, the qualifier postfix is 'dev'.
if [[ "$TAG_NAME" =~ ^v[0-9]+\\.[0-9]+.*$ ]]; then
# Only for actual releases, override the default 'dev' release version.
BUILD_ARGS="$BUILD_ARGS -DreleaseVersion=$TAG_NAME"
QUALIFIER_POSTFIX=$(echo "$TAG_NAME" | sed -e 's/^[^-]*//g')
else
QUALIFIER_POSTFIX=-dev
fi
BUILD_ARGS="$BUILD_ARGS -Descet.version.qualifier=v$GIT_DATE$QUALIFIER_POSTFIX"
# Perform build.
./build.sh $BUILD_ARGS
'''
}
......@@ -60,7 +85,7 @@ pipeline {
post {
success {
// Documentation/websites.
archiveArtifacts '*/org.eclipse.escet.*documentation/target/*-website.zip'
archiveArtifacts '*/org.eclipse.escet.*documentation/target/*-website-*.zip'
// Update site.
archiveArtifacts 'products/org.eclipse.escet.product/target/*-updatesite-*.zip'
......@@ -99,7 +124,7 @@ pipeline {
// Documentation/websites.
// NOTE: for these artifacts the qualifier is 'SNAPSHOT' rather than the actual version qualifier.
sh 'ssh genie.escet@projects-storage.eclipse.org mkdir -p ${DOWNLOADS_PATH}/${RELEASE_VERSION}/websites/'
sh 'scp -r */org.eclipse.escet.*documentation/target/*-website.zip ${DOWNLOADS_URL}/${RELEASE_VERSION}/websites/'
sh 'scp -r */org.eclipse.escet.*documentation/target/*-website-*.zip ${DOWNLOADS_URL}/${RELEASE_VERSION}/websites/'
// Update site (archive).
sh 'scp -r products/org.eclipse.escet.product/target/*-updatesite-*.zip ${DOWNLOADS_URL}/${RELEASE_VERSION}/'
......@@ -125,11 +150,11 @@ pipeline {
cp releng/website/*.html deploy/www/${RELEASE_VERSION}
cp releng/website/*.png deploy/www/${RELEASE_VERSION}
sed -i -e "s/@VERSION@/${RELEASE_VERSION}/g" deploy/www/${RELEASE_VERSION}/index.html
unzip -q products/org.eclipse.escet.documentation/target/*-website.zip -d deploy/www/${RELEASE_VERSION}/escet/
unzip -q chi/org.eclipse.escet.chi.documentation/target/*-website.zip -d deploy/www/${RELEASE_VERSION}/chi/
unzip -q cif/org.eclipse.escet.cif.documentation/target/*-website.zip -d deploy/www/${RELEASE_VERSION}/cif/
unzip -q setext/org.eclipse.escet.setext.documentation/target/*-website.zip -d deploy/www/${RELEASE_VERSION}/setext/
unzip -q tooldef/org.eclipse.escet.tooldef.documentation/target/*-website.zip -d deploy/www/${RELEASE_VERSION}/tooldef/
unzip -q products/org.eclipse.escet.documentation/target/*-website-*.zip -d deploy/www/${RELEASE_VERSION}/escet/
unzip -q chi/org.eclipse.escet.chi.documentation/target/*-website-*.zip -d deploy/www/${RELEASE_VERSION}/chi/
unzip -q cif/org.eclipse.escet.cif.documentation/target/*-website-*.zip -d deploy/www/${RELEASE_VERSION}/cif/
unzip -q setext/org.eclipse.escet.setext.documentation/target/*-website-*.zip -d deploy/www/${RELEASE_VERSION}/setext/
unzip -q tooldef/org.eclipse.escet.tooldef.documentation/target/*-website-*.zip -d deploy/www/${RELEASE_VERSION}/tooldef/
'''
dir('deploy/www') {
sh '''
......
......@@ -38,7 +38,7 @@ public class ChannelTypeID extends StateLessObjectTypeID {
* @param tid Data type of data being transported. {@code null} means a 'void' channel.
*/
public ChannelTypeID(TypeID tid) {
super(false, TypeKind.CHANNEL, (tid == null) ? Collections.EMPTY_LIST : list(tid));
super(false, TypeKind.CHANNEL, (tid == null) ? Collections.emptyList() : list(tid));
}
@Override
......
......@@ -47,7 +47,7 @@ public abstract class TypeID {
* @param kind Type kind of the type.
*/
public TypeID(boolean needsCoordinator, TypeKind kind) {
this(needsCoordinator, kind, Collections.EMPTY_LIST);
this(needsCoordinator, kind, Collections.emptyList());
}
/**
......
......@@ -25,49 +25,36 @@ include::_root_attributes.asciidoc[]
:title-logo-image: {imgsdir}/eclipse-incubation.png
:favicon: favicon.png
Chi is a modeling language for describing and analyzing performance of
discrete event systems by means of simulation.
It uses a process-based view, and uses synchronous point-to-point
communication between processes. A process is written as an imperative
program, with a syntax much inspired by the well-known Python language.
Chi is a modeling language for describing and analyzing performance of discrete event systems by means of simulation.
It uses a process-based view, and uses synchronous point-to-point communication between processes.
A process is written as an imperative program, with a syntax much inspired by the well-known Python language.
Chi is one of the tools of the Eclipse ESCET(TM) project. Visit the
link:https://eclipse.org/escet[project website] for downloads,
installation instructions, source code, general tool usage information,
information on how to contribute, and more.
Chi is one of the tools of the Eclipse ESCET(TM) project.
Visit the link:https://eclipse.org/escet[project website] for downloads, installation instructions, source code, general tool usage information, information on how to contribute, and more.
[WARNING]
====
The Eclipse ESCET project, including the Chi language and toolset,
is currently in the
link:https://wiki.eclipse.org/Development_Resources/Process_Guidelines/What_is_Incubation[Incubation Phase].
The Eclipse ESCET project, including the Chi language and toolset, is currently in the link:https://wiki.eclipse.org/Development_Resources/Process_Guidelines/What_is_Incubation[Incubation Phase].
image:{imgsdir}/eclipse-incubation.png[,width=300,pdfwidth=45%]
====
ifdef::website-output[]
TIP: You can link:eclipse-escet-incubation-chi-manual.pdf[download this manual]
as a PDF as well.
TIP: You can link:eclipse-escet-incubation-chi-manual.pdf[download this manual] as a PDF as well.
endif::website-output[]
Tutorial::
The <<tut-chapter-chi-tutorial>>
teaches the Chi language, and its use in modeling and simulating systems
to answer your performance questions.
The <<tut-chapter-chi-tutorial>> teaches the Chi language, and its use in modeling and simulating systems to answer your performance questions.
+
Some interesting topics are:
+
* Basics (<<tut-chapter-data-types>>, <<tut-chapter-statements>>,
<<tut-chapter-stochastic-behavior>>)
* Basics (<<tut-chapter-data-types>>, <<tut-chapter-statements>>, <<tut-chapter-stochastic-behavior>>)
* Programming (<<tut-chapter-processes>>, <<tut-chapter-channels>>)
* Modeling (<<tut-chapter-buffers>>, <<tut-chapter-servers-with-time>>,
<<tut-chapter-conveyors>>)
* Modeling (<<tut-chapter-buffers>>, <<tut-chapter-servers-with-time>>, <<tut-chapter-conveyors>>)
Reference manual::
The <<ref-chapter-reference-manual>>
describes the Chi language in full detail, for example the top level language
elements or all statements. It also contains a list with all standard library
functions and a list with all distribution functions.
The <<ref-chapter-reference-manual>> describes the Chi language in full detail, for example the top level language elements or all statements.
It also contains a list with all standard library functions and a list with all distribution functions.
+
Some interesting topics are:
+
......@@ -76,13 +63,11 @@ Some interesting topics are:
* <<ref-chapter-distributions>> (Available distributions)
Tool manual::
The <<tool-chapter-tool-manual,Tool manual>>
describes the Chi simulator software.
The <<tool-chapter-tool-manual,Tool manual>> describes the Chi simulator software.
Use of the software to create and simulate Chi programs is also explained.
Release notes::
The <<release-notes-chapter-index,Release notes>> provides information on
all Chi releases.
The <<release-notes-chapter-index,Release notes>> provides information on all Chi releases.
Legal::
See <<legal-chapter-index,Legal>> for copyright and licensing information.
......
......@@ -17,27 +17,20 @@ indexterm:[legal]
[[legal-chapter-index]]
== Legal
The material in this documentation is
Copyright (c) 2010, 2021 Contributors to the Eclipse Foundation.
The material in this documentation is Copyright (c) 2010, 2021 Contributors to the Eclipse Foundation.
Eclipse ESCET and ESCET are trademarks of the Eclipse Foundation.
Eclipse, and the Eclipse Logo are registered trademarks of the
Eclipse Foundation. Other names may be trademarks of their
respective owners.
Eclipse, and the Eclipse Logo are registered trademarks of the Eclipse Foundation.
Other names may be trademarks of their respective owners.
*License*
The Eclipse Foundation makes available all content in this document
("Content"). Unless otherwise indicated below, the Content is provided to you
under the terms and conditions of the MIT License. A copy of the MIT License
is available at link:https://opensource.org/licenses/MIT[]. For purposes of the
MIT License, "Software" will mean the Content.
If you did not receive this Content directly from the Eclipse Foundation,
the Content is being redistributed by another party ("Redistributor") and
different terms and conditions may apply to your use of any object code in
the Content. Check the Redistributor's license that was provided with the
Content. If no such license exists, contact the Redistributor. Unless
otherwise indicated below, the terms and conditions of the MIT License
still apply to any source code in the Content and such source code may be
obtained at link:http://www.eclipse.org[].
The Eclipse Foundation makes available all content in this document ("Content").
Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the MIT License.
A copy of the MIT License is available at link:https://opensource.org/licenses/MIT[].
For purposes of the MIT License, "Software" will mean the Content.
If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") and different terms and conditions may apply to your use of any object code in the Content.
Check the Redistributor's license that was provided with the Content.
If no such license exists, contact the Redistributor.
Unless otherwise indicated below, the terms and conditions of the MIT License still apply to any source code in the Content and such source code may be obtained at link:http://www.eclipse.org[].
......@@ -26,25 +26,18 @@ The Chi language has three kinds of distributions:
* <<ref-continuous-distributions>>, distributions returning a real number value
The constant distributions are used during creation of the Chi program.
Before adding stochastic behavior, you want to make sure the program itself
is correct. It is much easier to verify correctness without stochastic
behavior, but if you have to change the program again after the verification,
you may introduce new errors in the process.
Before adding stochastic behavior, you want to make sure the program itself is correct.
It is much easier to verify correctness without stochastic behavior, but if you have to change the program again after the verification, you may introduce new errors in the process.
The constant distributions solve this by allowing you to program with
stochastic sampling in the code, but it is not doing anything (since you get
the same predictable value on each sample operation). After verifying
correctness of the program, you only need to modify the distributions that you
use to get proper stochastic behavior.
The constant distributions solve this by allowing you to program with stochastic sampling in the code, but it is not doing anything (since you get the same predictable value on each sample operation).
After verifying correctness of the program, you only need to modify the distributions that you use to get proper stochastic behavior.
indexterm:[constant distribution]
[[ref-constant-distributions]]
=== Constant distributions
The constant distributions have very predictable samples, which makes them
ideal for testing functioning of the program before adding stochastic
behavior.
The constant distributions have very predictable samples, which makes them ideal for testing functioning of the program before adding stochastic behavior.
* `dist` `bool` *constant*`(bool b)`
+
......@@ -278,12 +271,6 @@ See also:: Weibull(a, b), <<law-ref>>, page 284
[bibliography]
=== References
- [[[banks-ref]]] Handbook of Simulation,
Principles, Methodology, Advances, Applications, and Practice,
editor Jerry Banks,
publisher John Wiley & Sons, inc, 1998
- [[[banks-ref]]] Handbook of Simulation, Principles, Methodology, Advances, Applications, and Practice, editor Jerry Banks, publisher John Wiley & Sons, inc, 1998
- [[[law-ref]]] Simulation Modeling & Analysis, fourth edition,
by Averill M. Law,
publisher McGraw-Hill, International Edition, 2007,
ISBN 978-007-125519-6
- [[[law-ref]]] Simulation Modeling & Analysis, fourth edition, by Averill M. Law, publisher McGraw-Hill, International Edition, 2007, ISBN 978-007-125519-6
......@@ -15,73 +15,56 @@ include::_part_attributes.asciidoc[]
[[ref-chapter-lexical-syntax]]
== Lexical syntax
At the lowest level, a Chi specification file consists of a sequence of
characters. The characters are grouped together to form keywords, names,
literal values such as numbers, and symbols such as expression operators
like `pass:c[+]` and statement separator `;`. Also comments are recognized at this
level.
At the lowest level, a Chi specification file consists of a sequence of characters.
The characters are grouped together to form keywords, names, literal values such as numbers, and symbols such as expression operators like `pass:c[+]` and statement separator `;`.
Also comments are recognized at this level.
=== Whitespace
The characters that delimit groups and lines from each other is known as
_whitespace_. It contains the 'tab' character (U0009), the 'line feed'
character (U000A), the 'carriage return' character (U000D), and the 'space'
character (U0020).
The characters that delimit groups and lines from each other is known as _whitespace_.
It contains the 'tab' character (U0009), the 'line feed' character (U000A), the 'carriage return' character (U000D), and the 'space' character (U0020).
=== Comment
A comment is a line of text intended for annotating the program text. It can
also be used to (temporarily) add or remove statements.
A comment is a line of text intended for annotating the program text.
It can also be used to (temporarily) add or remove statements.
In the latter case, do note that the meaning of the program may change.
A line of comment starts with a 'hash' character `#`, and continues
until a 'line feed' character (or the end of the file). All characters in the
comment are ignored by the simulator.
A line of comment starts with a 'hash' character `#`, and continues until a 'line feed' character (or the end of the file).
All characters in the comment are ignored by the simulator.
[[ref-lexical-names]]
=== Names
A name is a word-like group of characters. It may start with a `$` prefix.
After the prefix (if one is provided), first a letter (`A` to `Z` or `a`
to `z`) or an 'underscore' character `+_+` should be used, optionally
followed by more letters, 'underscore' characters, or digits `0` to `9`.
A name is a word-like group of characters.
It may start with a `$` prefix.
After the prefix (if one is provided), first a letter (`A` to `Z` or `a` to `z`) or an 'underscore' character `+_+` should be used, optionally followed by more letters, 'underscore' characters, or digits `0` to `9`.
Some names are special in the sense that the Chi language reserves them for
its own use, for example the names `model` and `end`. Keywords are always
written using lowercase letters. In the grammar diagrams, the keywords are
shown in a rounded box. Names starting with a `$` prefix are never used as
keyword.
Some names are special in the sense that the Chi language reserves them for its own use, for example the names `model` and `end`.
Keywords are always written using lowercase letters.
In the grammar diagrams, the keywords are shown in a rounded box.
Names starting with a `$` prefix are never used as keyword.
Names not used as keyword can be used to give entities in the Chi program a
unique identification. In the grammar of this reference manual names are split
according to the kind of entity that they refer to:
Names not used as keyword can be used to give entities in the Chi program a unique identification.
In the grammar of this reference manual names are split according to the kind of entity that they refer to:
ConstantName:: Name that refers to a constant value, see <<ref-constant-definitions>>
for details.
ConstantName:: Name that refers to a constant value, see <<ref-constant-definitions>> for details.
EnumtypeName:: Name that refers to an enum type, see <<ref-enum-definitions>> for
details.
EnumtypeName:: Name that refers to an enum type, see <<ref-enum-definitions>> for details.
EnumvalueName:: Name that refers to a value within an enum type, see
<<ref-enum-value-expression>> for details.
EnumvalueName:: Name that refers to a value within an enum type, see <<ref-enum-value-expression>> for details.
FieldName:: Name that refers to a field in a tuple type, see <<ref-tuple-type>>
for more details about tuples.
FieldName:: Name that refers to a field in a tuple type, see <<ref-tuple-type>> for more details about tuples.
FunctionName:: Name that refers to a function definition, see
<<ref-function-definitions>> for details.
FunctionName:: Name that refers to a function definition, see <<ref-function-definitions>> for details.
ModelName:: Name that refers to a model definition, see <<ref-model-definitions>>
for details.
ModelName:: Name that refers to a model definition, see <<ref-model-definitions>> for details.
ProcessName:: Name that refers to a process definition, see
<<ref-process-definitions>> for details.
ProcessName:: Name that refers to a process definition, see <<ref-process-definitions>> for details.
TypeName:: Name that refers to a type, see <<ref-type-definitions>> for details.
VariableName:: Name that refers to a variable (see <<ref-variable-declarations>>) or
formal parameter in a process or function (see <<ref-formal-parameters>>).
VariableName:: Name that refers to a variable (see <<ref-variable-declarations>>) or formal parameter in a process or function (see <<ref-formal-parameters>>).
Names are also shown in a rounded box, but as shown above, start with an
uppercase letter and end with `Name`.
Names are also shown in a rounded box, but as shown above, start with an uppercase letter and end with `Name`.
......@@ -15,90 +15,68 @@ include::_part_attributes.asciidoc[]
[[ref-chapter-svg-visualization]]
== SVG visualization
The Chi simulator has the possibility to display an SVG file during the
simulation. The model can modify the displayed image depending on the state of
the simulated system, thus visualizing the system.
The Chi simulator has the possibility to display an SVG file during the simulation.
The model can modify the displayed image depending on the state of the simulated system, thus visualizing the system.
Such a visualization is useful for getting a quick global verification, as
well as explaining the purpose of the model to people that do not know the
detailed ins and outs of the problem being solved.
Such a visualization is useful for getting a quick global verification, as well as explaining the purpose of the model to people that do not know the detailed ins and outs of the problem being solved.
Below are the technical details of the SVG visualization. The tutorial has a
<<tut-chapter-svg-visualization,more gentle introduction>> into the subject.
Below are the technical details of the SVG visualization.
The tutorial has a <<tut-chapter-svg-visualization,more gentle introduction>> into the subject.
=== SVG interface
The SVG visualization itself is controlled by the simulator. Normally, it is
updated just before a time step is performed. The simulation can however
force an update with the `redraw` command (see below for details).
The SVG visualization itself is controlled by the simulator.
Normally, it is updated just before a time step is performed.
The simulation can however force an update with the `redraw` command (see below for details).
The simulation accesses the SVG visualization by opening a file for writing
with a name like `SVG:xyz.svg`. The `SVG:` prefix redirects the request to
the SVG visualizer, the `xyz.svg` suffix is the name of the SVG file to
display. The file should be available at the file system.
The simulation accesses the SVG visualization by opening a file for writing with a name like `SVG:xyz.svg`.
The `SVG:` prefix redirects the request to the SVG visualizer, the `xyz.svg` suffix is the name of the SVG file to display.
The file should be available at the file system.
Different Chi processes may open the same file at the same time. The SVG
visualizer can only display one SVG file at a time, it is not allowed for
processes to open different `.svg` files.
Different Chi processes may open the same file at the same time.
The SVG visualizer can only display one SVG file at a time, it is not allowed for processes to open different `.svg` files.
=== Visualization modification commands
After opening the file, the content of the SVG file can be changed by
modifying the nodes. This is done by writing lines with commands (one command
at each line). Available commands are:
After opening the file, the content of the SVG file can be changed by modifying the nodes.
This is done by writing lines with commands (one command at each line).
Available commands are:
* *Copy an element (recursively)*
+
`copy [orig-id], [opt-prefix], [op-suffix]`, with `[orig-id]` the
id-name of the element to copy, `[opt-prefix]` an optional prefix that is
added to the `id` of all copied elements, and `[opt-suffix]` an optional
suffix that is added to the `id` of all copied elements. Since the `id`
of all elements must be unique, leaving both the prefix and the suffix empty
gives an error about duplicate `id` labels.
`copy [orig-id], [opt-prefix], [op-suffix]`, with `[orig-id]` the id-name of the element to copy, `[opt-prefix]` an optional prefix that is added to the `id` of all copied elements, and `[opt-suffix]` an optional suffix that is added to the `id` of all copied elements.
Since the `id` of all elements must be unique, leaving both the prefix and the suffix empty gives an error about duplicate `id` labels.
+
Note that the element (and its descendants) is only copied, but not moved.
In other words, after copying it is fully obscured by the original element.
The next step is normally an absolute move command or an attribute command
to perform a relative translate transformation.
The next step is normally an absolute move command or an attribute command to perform a relative translate transformation.
* *Move an element to an absolute position*
+
`absmove [id] ([xpos], [ypos])` with `[id]` the id-name of the
element to move, `[xpos]` the horizontal position to move to, and
`[ypos]` the vertical position to move to. This operation adds a
translation to the `transform` attribute of the node such that the
top-left corner of the bounding rectangle is moved to the provided position.
It also takes the existing transformation into account, and in doing so,
will fail if the transformation cannot be reversed.
`absmove [id] ([xpos], [ypos])` with `[id]` the id-name of the element to move, `[xpos]` the horizontal position to move to, and `[ypos]` the vertical position to move to.
This operation adds a translation to the `transform` attribute of the node such that the top-left corner of the bounding rectangle is moved to the provided position.
It also takes the existing transformation into account, and in doing so, will fail if the transformation cannot be reversed.
+
The origin of the coordinate system is at the top-left of the SVG
visualization window, with positive X running to the right, and positive Y
running down.
The origin of the coordinate system is at the top-left of the SVG visualization window, with positive X running to the right, and positive Y running down.
+
Avoid using this operation repeatedly on the same element. Instead move it
once to a base position, and perform relative translate transformations
on a child element to move it to the desired position.
Avoid using this operation repeatedly on the same element.
Instead move it once to a base position, and perform relative translate transformations on a child element to move it to the desired position.
* *Change an attribute of an element*
+
`attr [id].[atrribute] = [value]` with `[id]` the id-name of the
element, `[attribute]` the name of the attribute of the element to change,
and `[value]` the new value of the attribute.
`attr [id].[atrribute] = [value]` with `[id]` the id-name of the element, `[attribute]` the name of the attribute of the element to change, and `[value]` the new value of the attribute.
+
A change overwrites any previous value of the attribute. Also, names of
attributes and syntax of values are not checked.
A change overwrites any previous value of the attribute.
Also, names of attributes and syntax of values are not checked.
* *Change the text of an element*
+
`text [id] = [value]` with `[id]` the id-name of the element, and
`[value]` the new text.
`text [id] = [value]` with `[id]` the id-name of the element, and `[value]` the new text.
* *Force a redraw of the image*
+
Normally the program redraws the SVG image when it detects a change in time
after making changes in the image by using one of the previous commands.
With this command you can fake a change in time, thus allowing you to also
display intermediate states.
Normally the program redraws the SVG image when it detects a change in time after making changes in the image by using one of the previous commands.
With this command you can fake a change in time, thus allowing you to also display intermediate states.
+
The command is mostly useful in experiments, where time never changes.
......@@ -17,27 +17,24 @@ indexterm:[release, notes]
[[release-notes-chapter-index]]
== Chi release notes
The release notes for the releases of Chi and the associated tools, as
part of the Eclipse ESCET project, are listed below in reverse chronological
order.
The release notes for the releases of Chi and the associated tools, as part of the Eclipse ESCET project, are listed below in reverse chronological order.
The release notes may refer to issues, the details for which can be found
at the Eclipse ESCET
link:https://gitlab.eclipse.org/eclipse/escet/escet/-/issues[GitLab issues page].
The release notes may refer to issues, the details for which can be found at the Eclipse ESCET link:https://gitlab.eclipse.org/eclipse/escet/escet/-/issues[GitLab issues page].
See also the Eclipse ESCET link:https://www.eclipse.org/escet/escet/#release-notes-chapter-index[toolkit release notes] covering those aspects that are common to the various Eclipse ESCET tools.
See also the Eclipse ESCET
link:https://www.eclipse.org/escet/escet/#release-notes-chapter-index[toolkit release notes]
covering those aspects that are common to the various Eclipse ESCET tools.
=== Version 0.2
TBD
Improvements and fixes:
- Chi simulator no longer crashes when using the Eclipse Compiler for Java (ecj) as Java compiler (issue #46).
=== Version 0.1
The first release of Chi as part of the Eclipse ESCET project.
This release is based on the initial contribution by the Eindhoven University
of Technology (TU/e).
This release is based on the initial contribution by the Eindhoven University of Technology (TU/e).
Most notable changes compared to the last TU/e release:
......
......@@ -15,15 +15,12 @@ include::_part_attributes.asciidoc[]
[[tool-chapter-command-line]]
== Command line options
When you run the Chi software from the command line, the interactive dialog
as shown in <<tool-chapter-software-operation>> is not shown (at least not by
default), and everything has to be specified at the command line instead.
When you run the Chi software from the command line, the interactive dialog as shown in <<tool-chapter-software-operation>> is not shown (at least not by default), and everything has to be specified at the command line instead.
The Chi simulator software takes one input file, which is a filename
with `.chi` extension, or a filename with `.cchi` extension.
The Chi simulator software takes one input file, which is a filename with `.chi` extension, or a filename with `.cchi` extension.
Below is a list of the available options of such a command line. Most of them
are for advanced uses only, and not of interest to most users.
Below is a list of the available options of such a command line.
Most of them are for advanced uses only, and not of interest to most users.
=== Simulator options
......@@ -41,14 +38,13 @@ Prints the help text of the application to the console.
* `--option-dialog=<bool>`
+
Whether to show the option dialog after the command line options have
been processed. Default is `off`.
Whether to show the option dialog after the command line options have been processed.
Default is `off`.
* `--output-mode=<outmode>`, `-m <outmode>`
+
The output mode. Specify `error` for errors only; `warning` for errors
and warnings only; `normal` (default) for errors, warnings, and normal
output; or `debug` for errors, warnings, normal, and debug output.
The output mode.
Specify `error` for errors only; `warning` for errors and warnings only; `normal` (default) for errors, warnings, and normal output; or `debug` for errors, warnings, normal, and debug output.
* `--show-license`
+
......@@ -56,29 +52,24 @@ Prints the license text of the application to the console.
* `--devmode=<bool>`
+
Whether exceptional situations return limited user friendly information
(`--devmode=off`), or extended developer oriented information
(`--devmode=on`).
Whether exceptional situations return limited user friendly information (`--devmode=off`), or extended developer oriented information (`--devmode=on`).
Default is user friendly information.
=== Compiler options