README.md 17.6 KB
Newer Older
Maxime Perrotin's avatar
Maxime Perrotin committed
1 2 3 4 5 6 7 8 9 10 11 12 13
OpenGEODE
=========

OpenGEODE is a tiny open-source SDL editor that is developed for
the purpose of providing an easy to use and free state machine editor and
Ada code generator to the TASTE toolchain from the European Space Agency,
running in combination with ESA's ASN.1 "Space Certifiable" ASN.1 compiler.

SDL is the Specification and Description Language (Z100 standard from ITU-T).

This is NOT related to the graphical Simple DirectMedia Layer libraries!

Visit http://sdl-forum.org for more information about SDL.
14 15 16 17 18 19 20 21 22 23
Visit http://www.pragmadev.com to get a full-featured commercial SDL tool and support


![alt tag](icons/opengeode-screenshot.png)


Features
--------

- Graphical editor of SDL processes and procedures.
Maxime Perrotin's avatar
Maxime Perrotin committed
24 25 26
- SDL2010 features: state composition and state aggregation
- Works on pure PR+CIF files (textual SDL notation)
- Supports ASN.1 data types - using ESA Space Certified compiler (www.github.com/ttsiodras/asn1scc)
Maxime Perrotin's avatar
Maxime Perrotin committed
27
- Generates Ada code
dbarbera's avatar
dbarbera committed
28
- Automatic conversion to Statechart diagrams
29
- Save the complete or parts of the model to PNG/SVG/PDF files
dbarbera's avatar
dbarbera committed
30 31 32 33
- Hyperlinks (link a symbol content to any external document or web page)
- Context-dependent text auto-completion
- Syntax highlighting
- Undo/Redo, Copy-Paste
34
- (Limited) VIM mode - You can use :wq or :%s,search,replace,g, and /search pattern
Maxime Perrotin's avatar
Maxime Perrotin committed
35
- Python API to parse and render SDL from other Python modules
Maxime Perrotin's avatar
Maxime Perrotin committed
36 37 38 39

Installation
============

40 41 42 43
On Windows, download the binary from [here](http://download.tuxfamily.org/taste/opengeode_windows.zip)

Uzip it and run opengeode.exe. It contains everything without any other external dependencies.

44 45 46
Note: the Windows binary may not be up to date.. it is created mostly as a proof of concept.


47 48
Linux Pre-requisites
--------------------
Maxime Perrotin's avatar
Maxime Perrotin committed
49

Maxime Perrotin's avatar
Maxime Perrotin committed
50
To install OpenGEODE on Linux you need to install some system-level dependencies:
Maxime Perrotin's avatar
Maxime Perrotin committed
51

Maxime Perrotin's avatar
Maxime Perrotin committed
52 53 54
- Python 2.7 with pip (installed by default on nearly all Linux distributions)
- Pyside
- Graphviz
55
- [ASN1SCC V4](https://github.com/ttsiodras/asn1scc)
Maxime Perrotin's avatar
Maxime Perrotin committed
56 57 58
- GNAT

And optionally llvm and llvmpy
Maxime Perrotin's avatar
Maxime Perrotin committed
59

Maxime Perrotin's avatar
Maxime Perrotin committed
60
On Debian, Ubuntu, and probably other distributions:
Maxime Perrotin's avatar
Maxime Perrotin committed
61

62
```bash
Maxime Perrotin's avatar
Maxime Perrotin committed
63
$ sudo apt install pkg-config python-pyside pyside-tools graphviz python-ply \
Maxime Perrotin's avatar
Maxime Perrotin committed
64
                       graphviz-dev libgraphviz-dev  python-pip gnat \
Maxime Perrotin's avatar
Maxime Perrotin committed
65 66 67 68 69
                       libmono-system-runtime4.0-cil libmono-corlib4.0-cil \
                       libmono-system-runtime-serialization-formatters-soap4.0-cil \
                       libmono-system-web4.0-cil libmono-system-xml4.0-cil \
                       libmono-system4.0-cil mono-runtime libmono-system-numerics4.0-cil \
                       libmono-system-data-linq4.0-cil libmono-corlib2.0-cil libmono-system2.0-cil
70
```
Maxime Perrotin's avatar
Maxime Perrotin committed
71

Maxime Perrotin's avatar
Maxime Perrotin committed
72
Some of these packages may be more recent on your distribution.
Maxime Perrotin's avatar
Maxime Perrotin committed
73

74 75 76
To install the ASN.1 compiler, you must get the latest binary release of the version 4 from [here](https://github.com/ttsiodras/asn1scc/releases)

Then run (possibly as root):
Maxime Perrotin's avatar
Maxime Perrotin committed
77

78
```bash
Maxime Perrotin's avatar
Maxime Perrotin committed
79
$ cd /opt
80
$ tar xvf asn1scc-bin-4.xx.tar.bz2    # Use the file name version you got
Maxime Perrotin's avatar
Maxime Perrotin committed
81
$ echo 'export PATH=$PATH:/opt/asn1scc' >> ~/.bashrc
82
```
Maxime Perrotin's avatar
Maxime Perrotin committed
83

Maxime Perrotin's avatar
Maxime Perrotin committed
84
Open a new terminal and check that it works:
Maxime Perrotin's avatar
Maxime Perrotin committed
85

Maxime Perrotin's avatar
Maxime Perrotin committed
86
```bash
Maxime Perrotin's avatar
Maxime Perrotin committed
87
$ mono /opt/asn1scc/asn1.exe
Maxime Perrotin's avatar
Maxime Perrotin committed
88
```
Maxime Perrotin's avatar
Maxime Perrotin committed
89

Maxime Perrotin's avatar
Maxime Perrotin committed
90 91
OpenGEODE installation
----------------------
Maxime Perrotin's avatar
Maxime Perrotin committed
92

93
Make sure all dependencies are installed. In particular make sure you are using the version 4 of the ASN1SCC compiler.
Maxime Perrotin's avatar
Maxime Perrotin committed
94

Maxime Perrotin's avatar
Maxime Perrotin committed
95

96
```bash
TASTE User's avatar
TASTE User committed
97
$ git clone https://github.com/esa/opengeode.git
dbarbera's avatar
dbarbera committed
98
```
Maxime Perrotin's avatar
Maxime Perrotin committed
99

100
And install it:
Maxime Perrotin's avatar
Maxime Perrotin committed
101

102
```bash
103
$ cd opengeode
104
$ make full-install
105
```
Maxime Perrotin's avatar
Maxime Perrotin committed
106

Maxime Perrotin's avatar
Maxime Perrotin committed
107

Maxime Perrotin's avatar
Maxime Perrotin committed
108 109 110
Information and contact
=======================

Maxime Perrotin's avatar
Maxime Perrotin committed
111
OpenGEODE is part of the [TASTE project](http://taste.tuxfamily.org)
Maxime Perrotin's avatar
Maxime Perrotin committed
112

Maxime Perrotin's avatar
Maxime Perrotin committed
113
For additional information please contact:
Maxime Perrotin's avatar
Maxime Perrotin committed
114 115
maxime (dot) perrotin (at) esa (dot) int

Maxime Perrotin's avatar
Maxime Perrotin committed
116

117
The LLVM backend was designed and implemented by Diego Barbera during the ESA
Maxime Perrotin's avatar
Maxime Perrotin committed
118
Summer of Code 2014 (It is unfortunately unmaintained now and does not support all features of the tool).
119
Some parts implemented by Laurent Meyer (native SDL type support in the parser)
Maxime Perrotin's avatar
Maxime Perrotin committed
120

Maxime Perrotin's avatar
Maxime Perrotin committed
121 122 123

The ASN.1 compiler (ASN1Scc) that OpenGEODE is based on was
developed by George Mamais and Thanassis Tsiodras for the European
124
Space Agency. Information at https://github.com/ttsiodras/asn1scc
Maxime Perrotin's avatar
Maxime Perrotin committed
125 126 127 128 129

Licence
=======

License is LGPL (see file LICENSE)
Maxime Perrotin's avatar
Maxime Perrotin committed
130 131
There is no runtime, and the generated code is not subject to any license.

Maxime Perrotin's avatar
Maxime Perrotin committed
132
The fonts are the fonts from Ubuntu, check licence in file FONT-LICENSE.TXT
Maxime Perrotin's avatar
Maxime Perrotin committed
133
The background pattern was downloaded from www.subtlepatterns.com
Maxime Perrotin's avatar
Maxime Perrotin committed
134 135 136

Changelog
=========
Maxime Perrotin's avatar
Maxime Perrotin committed
137

138 139 140
2.0.41 (05/2019)
    - Add --taste flag to target taste integration with kazoo

Maxime Perrotin's avatar
Maxime Perrotin committed
141 142 143
2.0.40 (04/2019)
    - Improve generated gpr file

Maxime Perrotin's avatar
Maxime Perrotin committed
144 145 146 147
2.0.39 (04/2019)
    - Fix append operator when using substrings
    - Fix unicode issue

148 149 150 151
2.0.38 (04/2019)
    - Support advanced "in" expressions (e.g. "someVar in {enum1, enum2}",
      or "someVar in {{a 4, b false}, {a 1, b true}}"

Maxime Perrotin's avatar
Maxime Perrotin committed
152 153 154
2.0.37 (04/2019)
    - Support substrings on the left part of an expression (a(1,2) := ...)

Maxime Perrotin's avatar
Maxime Perrotin committed
155 156 157
2.0.36 (04/2019)
    - Fix unicode issue in Ada backend

Maxime Perrotin's avatar
Maxime Perrotin committed
158 159 160
2.0.35 (04/2019)
    - Add helper when editing text (update data dictionary selection)

Maxime Perrotin's avatar
Maxime Perrotin committed
161 162
2.0.34 (04/2019)
    - Relax range check for substrings
Maxime Perrotin's avatar
Maxime Perrotin committed
163 164
    - Save/restore windows geometry when quitting/opening the tool
    - Make datatypes fully visible in the data dictionary window
165
    - write[ln] operator now supports embedded newlines
Maxime Perrotin's avatar
Maxime Perrotin committed
166

Maxime Perrotin's avatar
Maxime Perrotin committed
167 168 169
2.0.33 (04/2019)
    - Fix unicode issue in Ada backend when using substrings

Maxime Perrotin's avatar
Maxime Perrotin committed
170 171 172
2.0.32 (04/2019)
    - Fix segfault and improve copy paste of nested states in branches

Maxime Perrotin's avatar
Maxime Perrotin committed
173 174 175 176
2.0.31 (04/2019)
    - Can cut/paste nested states (nested content was lost before)
    - Can copy/paste and then rename states with nested content

177 178 179
2.0.30 (03/2019)
    - Fix bug when double clicking in an autocompletion box in text areas

180 181 182
2.0.29 (03/2019)
    - Fix range computations and modulo operator

Maxime Perrotin's avatar
Maxime Perrotin committed
183 184 185
2.0.28 (03/2019)
    - Fix saving issue on new non-taste models

Maxime Perrotin's avatar
Maxime Perrotin committed
186 187 188
2.0.27 (03/2019)
    - Fix type checking when using substrings

Maxime Perrotin's avatar
Maxime Perrotin committed
189 190 191
2.0.26 (03/2019)
    - minor bugfix with underscore/dash confusion

192 193 194
2.0.25 (03/2019)
    - fixed variable renaming bug in code generation for nested states

195 196 197
2.0.24 (03/2019)
    - Add choice_to_int operator

Maxime Perrotin's avatar
Maxime Perrotin committed
198 199 200
2.0.23 (03/2019)
    - Add basic support for NEWTYPE definitions

Maxime Perrotin's avatar
Maxime Perrotin committed
201 202 203
2.0.22 (02/2019)
    - Generate GPR files to ease the build using gprbuild

Maxime Perrotin's avatar
Maxime Perrotin committed
204 205 206
2.0.21 (02/2019)
    - Fix regression in simulation build script

207 208 209 210 211
2.0.20 (02/2019)
    - Added "val" operator to convert a number to an enumerant
      useage: someVal := val (0, MyEnumeratedType)
      with someVal of type MyEnumeratedType. Will return the first enumerant

Maxime Perrotin's avatar
Maxime Perrotin committed
212 213 214 215
2.0.19 (01/2019)
    - for CHOICE types variables can be declared with enumerated type
      corresponding to the choice distriminant. CHOICE type is suffixed by
      "-selection", and the "present" operator now returns type type
Maxime Perrotin's avatar
Maxime Perrotin committed
216 217
    - If there is an enumerated type with the exact same content as the list
      of CHOICE determinants, cast is possible using to_selector and to_enum
Maxime Perrotin's avatar
Maxime Perrotin committed
218

219 220 221
2.0.18 (12/2018)
    - Generate code in the current directory, not in the one of the .pr

222 223 224
2.0.17 (09/2018)
    - Fix type checking of the "power" operator

225 226 227
2.0.16 (07/2018)
    - Added interaction with system clipboard (basic for floating items)

Maxime Perrotin's avatar
Maxime Perrotin committed
228 229 230
2.0.15 (07/2018)
    - Fix many bugs in type checking system

231 232 233
2.0.14 (06/2018)
    - fix numerical checks when setting timer parameters
  
234 235 236
2.0.13 (06/2018)
    - Add taste-compatible cache mechanism when calling asn1scc
  
237 238 239 240
2.0.12 (06/2018)
    - Fix resolution of ASN.1 constants - values were not use propertly when
      a constant was referencing another constant (numerical operations only)

241 242 243
2.0.11 (06/2018)
    - Ada backend: fix choice determinant issue leading to CHOICE_NOT_FOUND bug

244 245 246
2.0.10 (06/2018)
    - Various fixes in statechart rendering, esp. from command line

247 248 249 250
2.0.9 (06/2018)
    - Add timers in statecharts
    - Fix statechart list of signals when tab is activated from a sub-diagram

Maxime Perrotin's avatar
Maxime Perrotin committed
251
2.0.8 (05/2018)
252 253
    - Minor bugfix

Maxime Perrotin's avatar
Maxime Perrotin committed
254 255 256
2.0.7 (05/2018)
    - Add option to generate code with QGen (C and Ada)
    - Better reporting of model parsing error
257

Maxime Perrotin's avatar
Maxime Perrotin committed
258 259 260
2.0.6 (05/2018)
    - Several fixes with the Append operator when working on complex types

taste's avatar
taste committed
261 262 263
2.0.5 (04/2018)
    - Fix zoom-in on laptops keyboards with ctrl-shift-+

264 265 266
2.0.4 (03/2018)
    - Fix issue with variable prefix in nested states (in generated code)

Maxime Perrotin's avatar
Maxime Perrotin committed
267 268
2.0.3 (03/2018)
    - Optimize calls to asn1scc
269
    - Fix paste error when input symbol is selected
Maxime Perrotin's avatar
Maxime Perrotin committed
270

271 272 273 274
2.0.2 (03/2018)
    - Better support of ASN.1 constants
    - Support timer when using process type
    - Trigger model check proposal on save only if not checked recently
Maxime Perrotin's avatar
Maxime Perrotin committed
275
    - Fix Statechart rendering (incl. with process type)
276
    - Ada backend: when a branch is ignored, generate "null"
277

Maxime Perrotin's avatar
Maxime Perrotin committed
278 279 280
2.0.1 (02/2018)
    - Detect type mismatches when user mixes signed and unsigned variables

281 282 283 284
2.0.0 (02/2018)
    - V2 of Opengeode is based on ASN1SCC V4 and is not compatible with V3
    - Main changes concern support of unsigned numbers in ASN.1 types

Maxime Perrotin's avatar
Maxime Perrotin committed
285 286 287 288
1.5.44 (01/2018)
    - Bugfix: Return error code when Ada generation fails
    - Tests: reorder arguments to asn1scc for v4 compatibility

289 290 291
1.5.43 (01/2018)
    - Add preliminary compatibility with asn1scc v4

TASTE User's avatar
TASTE User committed
292
1.5.42 (10/2017)
293
    - Fix case issue with process types
TASTE User's avatar
TASTE User committed
294
    - Remove submodules
295

Maxime Perrotin's avatar
Maxime Perrotin committed
296 297 298
1.5.40 (07/2017)
    - Fix range check in arrays

299 300 301
1.5.39 (07/2017)
    - Minor fix in testcase Makefile

Maxime Perrotin's avatar
Maxime Perrotin committed
302 303 304
1.5.38 (06/2017)
    - Fix unicode issue in Ada backend

305 306 307
1.5.37 (05/2017)
    - Fix Ada backend bug with sequence of literals in nested states

Maxime Perrotin's avatar
Maxime Perrotin committed
308 309 310
1.5.36 (05/2017)
    - Fix Unicode issues in Ada backend

Maxime Perrotin's avatar
Maxime Perrotin committed
311 312 313
1.5.35 (05/2017)
    - Fix FOR LOOPS code generation

314 315 316
1.5.34 (05/2017)
    - Fix statechart message selection box

317 318 319 320
1.5.33 (04/2017)
    - Fix unicode issue with the simulation code
    - Use -fPIC when building the simulation library

321
1.5.32 (04/2017)
Maxime Perrotin's avatar
Maxime Perrotin committed
322 323
    - Unicode bugfixes in Ada backend
    - Bugfix with SEQUENCE OF literals in Ada backend
324
    - Various bugfixes with mixed int32/64 bits
Maxime Perrotin's avatar
Maxime Perrotin committed
325

326
1.5.28 (03/2017)
Maxime Perrotin's avatar
Maxime Perrotin committed
327 328
    - Added preliminary support for PROCESS TYPE and instances

Maxime Perrotin's avatar
Maxime Perrotin committed
329 330 331
1.5.26 (02/2017)
    - Statecharts can be configured to filter out signals

332 333 334
1.5.25 (01/2017)
    - Ada backend generates aliased context (used for model checking)

335 336 337
1.5.24 (01/2017)
    - PR file use better indentation for text areas (no line return)

Maxime Perrotin's avatar
Maxime Perrotin committed
338
1.5.23 (12/2016)
339
    - In simulation mode, bugfix in the declaration of the startup function
Maxime Perrotin's avatar
Maxime Perrotin committed
340
    - Code generator prepared for model checking
341

342 343 344
1.5.22 (12/2016)
    - Simulation function save/restore context fix

Maxime Perrotin's avatar
Maxime Perrotin committed
345 346 347 348
1.5.21 (11/2016)
    - Fix regression with test-math (import of external functions)
    - Use monospace font in the HTML rendering of ASN.1 files

349 350
1.5.20 (11/2016)
    - Fix wrongly formatted error reporting in FOR loops
351 352
    - Support SDL2010 dot field separator (variable.field,
      while sdl92 only supported variable!field)
353 354
    - Sequence of literals now support field selectors
      (i.e. { variable.field } is now a valid statement)
355
    - Support inner procedure call with return statement
356

357 358 359
1.5.19 (11/2016)
    - Fix integer cast in Ada

360 361 362 363
1.5.18 (11/2016)
    - Fix parsing of ASN.1 constants that use an annonymous inner type

1.5.17 (11/2016)
Maxime Perrotin's avatar
Maxime Perrotin committed
364 365
    - Fixed issue with initialization of generated code in state aggregations

Maxime Perrotin's avatar
Maxime Perrotin committed
366 367
1.5.16 (11/2016)
    - Fix minor indentation issue when saving
Maxime Perrotin's avatar
Maxime Perrotin committed
368

369 370 371
1.5.15 (10/2016)
    - Report incomplete startup transitions as errors in nested states

Maxime Perrotin's avatar
Maxime Perrotin committed
372 373 374
1.5.14 (10/2016)
    - Support named integers (requires asn1scc 3.3.04 or more recent)

375 376 377
1.5.13 (10/2016)
    - Better support of warnings
    - Fixed detection of CHOICE assignment erros
378
    - Raise error if process miss the start transition
Maxime Perrotin's avatar
Maxime Perrotin committed
379
    - Raise error in case of SEQUENCE OF type mismatch
380

Maxime Perrotin's avatar
Maxime Perrotin committed
381 382 383
1.5.12 (09/2016)
    - Detect duplicate declaration of procedures

384 385 386
1.5.11 (09/2016)
    - Allow semicolon in the declaration of procedures after RETURNS keyword

387 388 389
1.5.10 (09/2016)
    - readonly mode with more restrictions

390 391 392
1.5.9 (09/2016)
    - Added --readonly command line to restrict process modifications

393 394 395 396
1.5.8 (09/2016)
    - Bugfix - Ada backend failed when there were continuous signals in
               nested states but none at root level (missing end if)
    - Load fix when there is no dataview
397 398
    - Additional type checks

Maxime Perrotin's avatar
Maxime Perrotin committed
399 400 401 402
1.5.7 (09/2016)
    - Bugfix - Update completion list of process symbol
    - Sort ASN.1 types in data dictionary

Maxime Perrotin's avatar
Maxime Perrotin committed
403
1.5.6 (08/2016)
Maxime Perrotin's avatar
Maxime Perrotin committed
404 405 406
    - vi interface supports history
    - vi interface for substitution can apply to the whole model (with g)
    - refactoring function via vi interface (eg. %state,fromName,toName,)
Maxime Perrotin's avatar
Maxime Perrotin committed
407
    - Fixed issue with rendering (coordinates of symbols could be wrong)
Maxime Perrotin's avatar
Maxime Perrotin committed
408
    - Introduce data dictionary
Maxime Perrotin's avatar
Maxime Perrotin committed
409

Maxime Perrotin's avatar
Maxime Perrotin committed
410 411 412
1.5.4 (08/2016)
    - Various GUI improvements

413
1.5.3 (07/2016):
Maxime Perrotin's avatar
Maxime Perrotin committed
414 415
    - Ada backend fix: Continous signals now handled in states
      where input is not consumed
416

Maxime Perrotin's avatar
Maxime Perrotin committed
417
1.5.2 (07/2016):
418
    - Asn1scc API added to interface with DMT/asn2dataModel
Maxime Perrotin's avatar
Maxime Perrotin committed
419
    - Better statechart rendering (less distance between nodes)
420

Maxime Perrotin's avatar
Maxime Perrotin committed
421
1.4.5 (07/2016):
422 423
    - Context variable was not prefixed properly
    - Callback function for timers use 64bits integer
Maxime Perrotin's avatar
Maxime Perrotin committed
424 425
    - RIs use prefix with unicode separation to avoid name clashes

426

427 428 429
1.4.4 (06/2016)
    - Minor bugfix in Ada backend to support typeless systems

430 431 432
1.4.3 (06/2016)
    - Add support for priority of continuous signals in Ada code generator

433 434 435
1.4.2 (06/2016)
    - Reload / render properly priority of continuous signals

436
1.4.1 (06/2016)
437 438
    - Continuous states can check the presence of messages in the input queue
      to respect the SDL semantics
439
    - Bugfix in Ada code generator on continuous states
440

Maxime Perrotin's avatar
Maxime Perrotin committed
441 442 443
1.3.28 (06/2016)
    - Excluded states (with *(statelist) ) were case sensitive

Maxime Perrotin's avatar
Maxime Perrotin committed
444 445 446 447
1.3.27 (05/2016)
    - Fix bug in Ada backend when using continous signals
    - Better handling of simulation script

448 449 450
1.3.26 (05/2016)
    - Fix parser issues with negative expressions

Maxime Perrotin's avatar
Maxime Perrotin committed
451
1.3.25 (05/2016)
452 453
    - Fix reporting of syntax errors in state aggregations

Maxime Perrotin's avatar
Maxime Perrotin committed
454
1.3.22 (05/2016)
455
    - Bug fix in range checks for division and subtraction
456
    - Optimise loading when there are no CIF comments
Maxime Perrotin's avatar
Maxime Perrotin committed
457

Maxime Perrotin's avatar
Maxime Perrotin committed
458 459 460 461
1.3.21 (05/2016)
    - Complete support of optional fields
      (check tests/regression/test-optionalfields)

Maxime Perrotin's avatar
Maxime Perrotin committed
462 463 464
1.3.20 (05/2016)
    - Improve simulator interface

Maxime Perrotin's avatar
Maxime Perrotin committed
465 466 467 468
1.3.19 (04/2016)
    - Various bugfixes with ternary operator
    - Added demo "test-save" showing how to emulate the behaviour of the SAVE
      symbol
Maxime Perrotin's avatar
Maxime Perrotin committed
469
    - ASN.1 types are shown with SDL-syntax (no hyphens)
Maxime Perrotin's avatar
Maxime Perrotin committed
470

471 472
1.3.18 (04/2016)
    - Add support for value notation of NULL type
473
    - Remove warning when accessing CHOICE fields
474

475 476 477
1.3.17 (04/2016)
    - Add support for value notation of empty SEQUENCEs ("{}")

Maxime Perrotin's avatar
Maxime Perrotin committed
478 479 480
1.3.16 (03/2016)
    - Bugfix in testing aggregation states in the GUI

Maxime Perrotin's avatar
Maxime Perrotin committed
481 482 483 484
1.3.15 (03/2016)
    - Bugfix in Ada backend when a state aggregation contained only empty
      states (directly returning states).

485 486 487
1.3.14
    - Minor bugfix with command line handling

488 489 490
1.3.13
    - Bugfix in rendering of Continuous signals

Maxime Perrotin's avatar
Maxime Perrotin committed
491 492 493
1.3.12
    - Render properly parameterless procedures that are declared in the .pr
      file but without a textbox
494
    - When going to parent scene, fixed rendering issue
Maxime Perrotin's avatar
Maxime Perrotin committed
495

Maxime Perrotin's avatar
Maxime Perrotin committed
496 497 498
1.3.11
    - Parser is more tolerant to incomplete systems

Maxime Perrotin's avatar
Maxime Perrotin committed
499
1.3.9/10 (01/2016)
Maxime Perrotin's avatar
Maxime Perrotin committed
500 501
    - Checker verifies that decision coverage is complete on Real and Boolean
      types
Maxime Perrotin's avatar
Maxime Perrotin committed
502
    - F3 generates Ada code
Maxime Perrotin's avatar
Maxime Perrotin committed
503

504 505 506
1.3.8 (01/2016)
    - Fix logging when LLVM is not installed

Maxime Perrotin's avatar
Maxime Perrotin committed
507 508 509
1.3.7 (12/2015)
    - Added icon to use Continuous Signals from the GUI

510 511 512 513 514
1.3.6 (11/2015)
     - Support external procedures having a return statement
       this allows to import math functions from the libmath without having
       to provide manual code. see test-math

515 516 517
1.3.5 (11/2015)
     - Better support for continous signals

Maxime Perrotin's avatar
Maxime Perrotin committed
518 519 520 521
1.3.4 (11/2015)
     - Early support for continous signals
     - Regression issue fixed (test-nocif2)

Maxime Perrotin's avatar
Maxime Perrotin committed
522
1.3.3 (11/2015)
Maxime Perrotin's avatar
Maxime Perrotin committed
523
     - Better support of platform-dependent screen resolution and dpi
Maxime Perrotin's avatar
Maxime Perrotin committed
524
     - Minor fixes in statechart scenes (no negative coordinates)
Maxime Perrotin's avatar
Maxime Perrotin committed
525

Maxime Perrotin's avatar
Maxime Perrotin committed
526
1.3.1 (11/2015)
527
     - Support for State Aggregations (parallel states)
Maxime Perrotin's avatar
Maxime Perrotin committed
528
     - Improved statechart rendering
529

530
1.2.10 (10/2015)
Maxime Perrotin's avatar
Maxime Perrotin committed
531 532 533
     - Better support of renamePolicy
     - Better handling of models without CIF coordinates
     - Minor bug fixes
534
     - Forloop syntax error handled correctly when using range
535
     - support Hex and bit string literals when working with OCTET STRING
536
     - support OUT keyword for procedure FPAR
Maxime Perrotin's avatar
Maxime Perrotin committed
537

Maxime Perrotin's avatar
Maxime Perrotin committed
538
1.2.4 (07/2015)
539 540 541 542
     - Use version 3.2.x of the ASN1SCC compiler with new -renamePolicy flag
     - Improve robustness

1.1.1 (07/2015)
Maxime Perrotin's avatar
Maxime Perrotin committed
543 544 545
     - Strongly report syntax errors with symbol location and warning if user
       tries to save a model with syntax errors

546 547 548
1.1.0 (07/2015)
     - Write/Writeln procedure support enumerated types

Maxime Perrotin's avatar
Maxime Perrotin committed
549 550 551 552
1.0.1 (06/2015)
     - Bugfix: use mono when calling asn1.exe by default (needed redhat-based
                                                          distros)

Maxime Perrotin's avatar
Maxime Perrotin committed
553 554 555 556
1.0.0 (06/2015)
     - Bugfixes and minor improvements
     - Python API / Simulator function (coupled with other TASTE components)

557
1.0RC (10/2014)
558 559 560 561 562 563
     - Release candidate Version 1
     - Allow standalone systems (made of one process)
     - Major refactoring of parser and Ada backend
     - Many bugfixes and improvements
     - First version of LLVM backend

564 565 566
0.994 (07/2014)
     - Maintenance release, minor fixes

Maxime Perrotin's avatar
Maxime Perrotin committed
567 568 569 570 571 572 573 574 575
0.993 (07/2014)
     - Parser bugfixes
     - Better support for nested states
     - Ada generator improvements
     - Support for unicode
     - Indentation of PR code
     - Copy-paste of procedures and nested states
     - Improved regression testing

576
0.99 (04/2014)
Maxime Perrotin's avatar
Maxime Perrotin committed
577
     - Refactoring of the backend engine, now using singledispatch
578
     - Support of hierachical states
Maxime Perrotin's avatar
Maxime Perrotin committed
579 580
     - Minor bugfixes

581 582

0.98
Maxime Perrotin's avatar
Maxime Perrotin committed
583 584 585 586 587
     - Added support for FOR loops
       In a task, use "for x in range([start], stop, [range]): ... endfor"
       or "for x in sequenceOfvariable: ... endfor"
     - Default symbol size is smaller
     - Various minor bugfixes
588 589 590


0.97
Maxime Perrotin's avatar
Maxime Perrotin committed
591 592 593 594
     - added support for default value when declaring a variable
       e.g. DCL myVar myType ::= { x 5, y 2 };
       default value must be a ground expression