README.md 19.6 KB
Newer Older
Maxime Perrotin's avatar
Maxime Perrotin committed
1
![alt tag](icons/opengeode4.png)
2

Maxime Perrotin's avatar
Maxime Perrotin committed
3
4
5
OpenGEODE
=========

Maxime Perrotin's avatar
Maxime Perrotin committed
6
OpenGEODE is an open-source SDL editor that is developed for
Maxime Perrotin's avatar
Maxime Perrotin committed
7
8
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,
Maxime Perrotin's avatar
Maxime Perrotin committed
9
running in combination with ESA's "Space Certifiable" ASN.1 compiler.
Maxime Perrotin's avatar
Maxime Perrotin committed
10
11
12
13
14
15

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.
16

17
![OpenGEODE Screenshot](icons/opengeode-screenshot.png)
18
19
20
21
22
23


Features
--------

- Graphical editor of SDL processes and procedures.
24
- Support for state composition and state aggregation (parallel/nested states)
Maxime Perrotin's avatar
Maxime Perrotin committed
25
- Works on pure PR+CIF files (textual SDL notation)
Maxime Perrotin's avatar
Maxime Perrotin committed
26
- 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
36
37
38
39
40
41
42
43
- Simulator (prototype)

Main limitations
-----------

- Supports only one process at a time (use [TASTE](https://taste.tools) to connect processes to form a complete system)
- Minimal support of legacy SDL datatypes (newtypes/synonyms..): use ASN.1 instead

Maxime Perrotin's avatar
Maxime Perrotin committed
44
45
46
47

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

Maxime Perrotin's avatar
Maxime Perrotin committed
48
OpenGEODE is made primarily for Linux.
49

Maxime Perrotin's avatar
Maxime Perrotin committed
50
It is part of the [TASTE project](https://taste.tools)
51

52
53
It is installed with all dependencies in the TASTE virtual machine that you can download from this link. Manual installation is possible in a native Linux environment.
Debian 10 (buster) is the baseline. Recent versions of Ubuntu (20.x) should work as well.
54

55
The following commands should automate the installation (with exception of ASN1SCC - see below):
Maxime Perrotin's avatar
Maxime Perrotin committed
56

57
58
59
```
$ git clone https://github.com/esa/opengeode
$ cd opengeode
60
$ make full-install   # it will prompt for sudo password to call apt
61
```
Maxime Perrotin's avatar
Maxime Perrotin committed
62

63
64
65
66
67
The installation will be done in the `~/.local` folder by the Python3 pip tool. Make sure you add this to your .bashrc (or equivalent):

```
export PATH=~/.local/bin:$PATH
```
Maxime Perrotin's avatar
Maxime Perrotin committed
68

69
70
71
OpenGEODE uses the ASN1 [ASN1SCC](https://github.com/ttsiodras/asn1scc) for the datatypes. You must install it manually:

Get the latest binary release from [here](https://github.com/ttsiodras/asn1scc/releases)
72
73

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

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

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

Maxime Perrotin's avatar
Maxime Perrotin committed
83
```bash
Maxime Perrotin's avatar
Maxime Perrotin committed
84
$ mono /opt/asn1scc/asn1.exe
Maxime Perrotin's avatar
Maxime Perrotin committed
85
```
Maxime Perrotin's avatar
Maxime Perrotin committed
86

87
Once you have the dependencies installed you can update the tool by running the following commands:
Maxime Perrotin's avatar
Maxime Perrotin committed
88

89
90
91
```
$ git pull
$ make install    # alternatively:  pip3 install --user --upgrade . 
92
```
Maxime Perrotin's avatar
Maxime Perrotin committed
93

Maxime Perrotin's avatar
Maxime Perrotin committed
94

Maxime Perrotin's avatar
Maxime Perrotin committed
95
96
97
98
Information and contact
=======================


Maxime Perrotin's avatar
Maxime Perrotin committed
99
For additional information please contact:
Maxime Perrotin's avatar
Maxime Perrotin committed
100
101
maxime (dot) perrotin (at) esa (dot) int

Maxime Perrotin's avatar
Maxime Perrotin committed
102

103
The LLVM backend was designed and implemented by Diego Barbera during the ESA
Maxime Perrotin's avatar
Maxime Perrotin committed
104
Summer of Code 2014. This component is not maintained.
105
Some parts implemented by Laurent Meyer (native SDL type support in the parser)
Maxime Perrotin's avatar
Maxime Perrotin committed
106

107
The ASN.1 compiler (ASN1SCC) that OpenGEODE is based on was developed by George Mamais and Thanassis Tsiodras for the European Space Agency.
Maxime Perrotin's avatar
Maxime Perrotin committed
108
109
110
111
112

Licence
=======

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

Maxime Perrotin's avatar
Maxime Perrotin committed
115
The fonts are the fonts from Ubuntu, check licence in file FONT-LICENSE.TXT
Maxime Perrotin's avatar
Maxime Perrotin committed
116
The background pattern was downloaded from www.subtlepatterns.com
Maxime Perrotin's avatar
Maxime Perrotin committed
117
118
119

Changelog
=========
Maxime Perrotin's avatar
Maxime Perrotin committed
120
121
122
3.1.2 (07/2020)
    - Reinforce syntax error checking and reporting

Maxime Perrotin's avatar
Maxime Perrotin committed
123
124
125
126
3.1.1 (07/2020)
    - Reinforce syntax error checking and reporting
      Don't allow user escape a symbol syntax error: refocus text until fixed

Maxime Perrotin's avatar
Maxime Perrotin committed
127
128
129
130
131
132
133
3.1.0 (06/2020)
    - Add support for mkstring operator to transform an element into an array
      mkstring (a, b, c) is in principle equivalent to ASN.1 Value Notation {a, b, c}
      however ASN.1 value notation can't be used for a single indexed element : { foo(1) }
      as this is an ambiguous syntax (it can be mixed with a record field, with value 1).
      mkstring is the actuall Z100 (SDL standard) syntax to be used

Maxime Perrotin's avatar
Maxime Perrotin committed
134
135
136
3.0.9 (06/2020)
    - Minor fixes in C backend related to case sensitivity

137
138
139
140
141
142
143
144
3.0.8 (06/2020)
    - Support ASN.1 integer constants with no range (plain x INTEGER ::= 5)
    - Check that procedures with a return type are called only from TASKs

3.0.7 (06/2020)
    - Fix update of data dictionary window
    - Fix unconstained constants support

Maxime Perrotin's avatar
Maxime Perrotin committed
145
146
147
3.0.6 (06/2020)
    - Fix CONNECT symbol

148
149
150
151
3.0.5 (06/2020)
    - Add support to standard SDL syntax x := CALL procedure
      in tasks

152
153
154
3.0.4 (06/2020)
    - Fix use of ASN.1 constants in decision branches

155
156
157
158
3.0.3 (05/2020)
    - Replace the unicode separator when flattening the model for code generation
    - Fix calls to the exit procedure in nested states

Maxime Perrotin's avatar
Maxime Perrotin committed
159
160
161
3.0.2 (05/2020)
    - Fix API change in Pyside2

Maxime Perrotin's avatar
Maxime Perrotin committed
162
163
164
3.0.1 (05/2020)
    - Improve generated Makefile/gpr project file

165
166
167
168
169
3.0.0 (12/2019)
    - Port of Opengeode to Python3
    - Use PySide2 instead of PySide
    - Asn1scc module supports additional options

Maxime Perrotin's avatar
Maxime Perrotin committed
170
171
172
2.1.5 (10/2019)
    - Fix unicode issues

Maxime Perrotin's avatar
Maxime Perrotin committed
173
174
175
2.1.4 (10/2019)
    - Improve code generated for simulation

Maxime Perrotin's avatar
Maxime Perrotin committed
176
177
178
2.1.3 (10/2019)
    - Improve statechart rendering (in particular with nested states)

179
180
2.1.2 (10/2019)
    - Change import name case for set/reset of timer (for taste compatibility)
Maxime Perrotin's avatar
Maxime Perrotin committed
181

182
183
184
2.1.1 (10/2019)
    - Create cache folder if it was missing

Maxime Perrotin's avatar
Maxime Perrotin committed
185
186
187
188
189
190
191
192
193
2.1.0 (09/2019)
    - Reinforce type checks when using substrings and indexes, and
      variable-length arrays. the latter can no longer be indexed on the
      left side of an assignment, as the size cannot be set that way
      The proper ways to set values of a variable-length array are:
      1) ASN.1 value notation var := { a, b, c }
      2) New assignment to replace a value using append statements:
         var := var (0) // { b } // var (2, 3)

194
195
196
2.0.44 (09/2019)
    - Fix case issue when used combined with kazoo

197
198
199
200
2.0.43 (05/2019)
    - Better handling of path in generated gpr files

2.0.42 (05/2019)
201
202
    - Fix substring support (can now write var(1,2) := {1,2})

203
204
205
2.0.41 (05/2019)
    - Add --taste flag to target taste integration with kazoo

Maxime Perrotin's avatar
Maxime Perrotin committed
206
207
208
2.0.40 (04/2019)
    - Improve generated gpr file

Maxime Perrotin's avatar
Maxime Perrotin committed
209
210
211
212
2.0.39 (04/2019)
    - Fix append operator when using substrings
    - Fix unicode issue

213
214
215
216
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
217
218
219
2.0.37 (04/2019)
    - Support substrings on the left part of an expression (a(1,2) := ...)

Maxime Perrotin's avatar
Maxime Perrotin committed
220
221
222
2.0.36 (04/2019)
    - Fix unicode issue in Ada backend

Maxime Perrotin's avatar
Maxime Perrotin committed
223
224
225
2.0.35 (04/2019)
    - Add helper when editing text (update data dictionary selection)

Maxime Perrotin's avatar
Maxime Perrotin committed
226
227
2.0.34 (04/2019)
    - Relax range check for substrings
Maxime Perrotin's avatar
Maxime Perrotin committed
228
229
    - Save/restore windows geometry when quitting/opening the tool
    - Make datatypes fully visible in the data dictionary window
230
    - write[ln] operator now supports embedded newlines
Maxime Perrotin's avatar
Maxime Perrotin committed
231

Maxime Perrotin's avatar
Maxime Perrotin committed
232
233
234
2.0.33 (04/2019)
    - Fix unicode issue in Ada backend when using substrings

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

Maxime Perrotin's avatar
Maxime Perrotin committed
238
239
240
241
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

242
243
244
2.0.30 (03/2019)
    - Fix bug when double clicking in an autocompletion box in text areas

245
246
247
2.0.29 (03/2019)
    - Fix range computations and modulo operator

Maxime Perrotin's avatar
Maxime Perrotin committed
248
249
250
2.0.28 (03/2019)
    - Fix saving issue on new non-taste models

Maxime Perrotin's avatar
Maxime Perrotin committed
251
252
253
2.0.27 (03/2019)
    - Fix type checking when using substrings

Maxime Perrotin's avatar
Maxime Perrotin committed
254
255
256
2.0.26 (03/2019)
    - minor bugfix with underscore/dash confusion

257
258
259
2.0.25 (03/2019)
    - fixed variable renaming bug in code generation for nested states

260
261
262
2.0.24 (03/2019)
    - Add choice_to_int operator

Maxime Perrotin's avatar
Maxime Perrotin committed
263
264
265
2.0.23 (03/2019)
    - Add basic support for NEWTYPE definitions

Maxime Perrotin's avatar
Maxime Perrotin committed
266
267
268
2.0.22 (02/2019)
    - Generate GPR files to ease the build using gprbuild

Maxime Perrotin's avatar
Maxime Perrotin committed
269
270
271
2.0.21 (02/2019)
    - Fix regression in simulation build script

272
273
274
275
276
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
277
278
279
280
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
281
282
    - 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
283

284
285
286
2.0.18 (12/2018)
    - Generate code in the current directory, not in the one of the .pr

287
288
289
2.0.17 (09/2018)
    - Fix type checking of the "power" operator

290
291
292
2.0.16 (07/2018)
    - Added interaction with system clipboard (basic for floating items)

Maxime Perrotin's avatar
Maxime Perrotin committed
293
294
295
2.0.15 (07/2018)
    - Fix many bugs in type checking system

296
297
298
2.0.14 (06/2018)
    - fix numerical checks when setting timer parameters
  
299
300
301
2.0.13 (06/2018)
    - Add taste-compatible cache mechanism when calling asn1scc
  
302
303
304
305
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)

306
307
308
2.0.11 (06/2018)
    - Ada backend: fix choice determinant issue leading to CHOICE_NOT_FOUND bug

309
310
311
2.0.10 (06/2018)
    - Various fixes in statechart rendering, esp. from command line

312
313
314
315
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
316
2.0.8 (05/2018)
317
318
    - Minor bugfix

Maxime Perrotin's avatar
Maxime Perrotin committed
319
320
321
2.0.7 (05/2018)
    - Add option to generate code with QGen (C and Ada)
    - Better reporting of model parsing error
322

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

taste's avatar
taste committed
326
327
328
2.0.5 (04/2018)
    - Fix zoom-in on laptops keyboards with ctrl-shift-+

329
330
331
2.0.4 (03/2018)
    - Fix issue with variable prefix in nested states (in generated code)

Maxime Perrotin's avatar
Maxime Perrotin committed
332
333
2.0.3 (03/2018)
    - Optimize calls to asn1scc
334
    - Fix paste error when input symbol is selected
Maxime Perrotin's avatar
Maxime Perrotin committed
335

336
337
338
339
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
340
    - Fix Statechart rendering (incl. with process type)
341
    - Ada backend: when a branch is ignored, generate "null"
342

Maxime Perrotin's avatar
Maxime Perrotin committed
343
344
345
2.0.1 (02/2018)
    - Detect type mismatches when user mixes signed and unsigned variables

346
347
348
349
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
350
351
352
353
1.5.44 (01/2018)
    - Bugfix: Return error code when Ada generation fails
    - Tests: reorder arguments to asn1scc for v4 compatibility

354
355
356
1.5.43 (01/2018)
    - Add preliminary compatibility with asn1scc v4

TASTE User's avatar
TASTE User committed
357
1.5.42 (10/2017)
358
    - Fix case issue with process types
TASTE User's avatar
TASTE User committed
359
    - Remove submodules
360

Maxime Perrotin's avatar
Maxime Perrotin committed
361
362
363
1.5.40 (07/2017)
    - Fix range check in arrays

364
365
366
1.5.39 (07/2017)
    - Minor fix in testcase Makefile

Maxime Perrotin's avatar
Maxime Perrotin committed
367
368
369
1.5.38 (06/2017)
    - Fix unicode issue in Ada backend

370
371
372
1.5.37 (05/2017)
    - Fix Ada backend bug with sequence of literals in nested states

Maxime Perrotin's avatar
Maxime Perrotin committed
373
374
375
1.5.36 (05/2017)
    - Fix Unicode issues in Ada backend

Maxime Perrotin's avatar
Maxime Perrotin committed
376
377
378
1.5.35 (05/2017)
    - Fix FOR LOOPS code generation

379
380
381
1.5.34 (05/2017)
    - Fix statechart message selection box

382
383
384
385
1.5.33 (04/2017)
    - Fix unicode issue with the simulation code
    - Use -fPIC when building the simulation library

386
1.5.32 (04/2017)
Maxime Perrotin's avatar
Maxime Perrotin committed
387
388
    - Unicode bugfixes in Ada backend
    - Bugfix with SEQUENCE OF literals in Ada backend
389
    - Various bugfixes with mixed int32/64 bits
Maxime Perrotin's avatar
Maxime Perrotin committed
390

391
1.5.28 (03/2017)
Maxime Perrotin's avatar
Maxime Perrotin committed
392
393
    - Added preliminary support for PROCESS TYPE and instances

Maxime Perrotin's avatar
Maxime Perrotin committed
394
395
396
1.5.26 (02/2017)
    - Statecharts can be configured to filter out signals

397
398
399
1.5.25 (01/2017)
    - Ada backend generates aliased context (used for model checking)

400
401
402
1.5.24 (01/2017)
    - PR file use better indentation for text areas (no line return)

Maxime Perrotin's avatar
Maxime Perrotin committed
403
1.5.23 (12/2016)
404
    - In simulation mode, bugfix in the declaration of the startup function
Maxime Perrotin's avatar
Maxime Perrotin committed
405
    - Code generator prepared for model checking
406

407
408
409
1.5.22 (12/2016)
    - Simulation function save/restore context fix

Maxime Perrotin's avatar
Maxime Perrotin committed
410
411
412
413
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

414
415
1.5.20 (11/2016)
    - Fix wrongly formatted error reporting in FOR loops
416
417
    - Support SDL2010 dot field separator (variable.field,
      while sdl92 only supported variable!field)
418
419
    - Sequence of literals now support field selectors
      (i.e. { variable.field } is now a valid statement)
420
    - Support inner procedure call with return statement
421

422
423
424
1.5.19 (11/2016)
    - Fix integer cast in Ada

425
426
427
428
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
429
430
    - Fixed issue with initialization of generated code in state aggregations

Maxime Perrotin's avatar
Maxime Perrotin committed
431
432
1.5.16 (11/2016)
    - Fix minor indentation issue when saving
Maxime Perrotin's avatar
Maxime Perrotin committed
433

434
435
436
1.5.15 (10/2016)
    - Report incomplete startup transitions as errors in nested states

Maxime Perrotin's avatar
Maxime Perrotin committed
437
438
439
1.5.14 (10/2016)
    - Support named integers (requires asn1scc 3.3.04 or more recent)

440
441
442
1.5.13 (10/2016)
    - Better support of warnings
    - Fixed detection of CHOICE assignment erros
443
    - Raise error if process miss the start transition
Maxime Perrotin's avatar
Maxime Perrotin committed
444
    - Raise error in case of SEQUENCE OF type mismatch
445

Maxime Perrotin's avatar
Maxime Perrotin committed
446
447
448
1.5.12 (09/2016)
    - Detect duplicate declaration of procedures

449
450
451
1.5.11 (09/2016)
    - Allow semicolon in the declaration of procedures after RETURNS keyword

452
453
454
1.5.10 (09/2016)
    - readonly mode with more restrictions

455
456
457
1.5.9 (09/2016)
    - Added --readonly command line to restrict process modifications

458
459
460
461
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
462
463
    - Additional type checks

Maxime Perrotin's avatar
Maxime Perrotin committed
464
465
466
467
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
468
1.5.6 (08/2016)
Maxime Perrotin's avatar
Maxime Perrotin committed
469
470
471
    - 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
472
    - Fixed issue with rendering (coordinates of symbols could be wrong)
Maxime Perrotin's avatar
Maxime Perrotin committed
473
    - Introduce data dictionary
Maxime Perrotin's avatar
Maxime Perrotin committed
474

Maxime Perrotin's avatar
Maxime Perrotin committed
475
476
477
1.5.4 (08/2016)
    - Various GUI improvements

478
1.5.3 (07/2016):
Maxime Perrotin's avatar
Maxime Perrotin committed
479
480
    - Ada backend fix: Continous signals now handled in states
      where input is not consumed
481

Maxime Perrotin's avatar
Maxime Perrotin committed
482
1.5.2 (07/2016):
483
    - Asn1scc API added to interface with DMT/asn2dataModel
Maxime Perrotin's avatar
Maxime Perrotin committed
484
    - Better statechart rendering (less distance between nodes)
485

Maxime Perrotin's avatar
Maxime Perrotin committed
486
1.4.5 (07/2016):
487
488
    - Context variable was not prefixed properly
    - Callback function for timers use 64bits integer
Maxime Perrotin's avatar
Maxime Perrotin committed
489
490
    - RIs use prefix with unicode separation to avoid name clashes

491

492
493
494
1.4.4 (06/2016)
    - Minor bugfix in Ada backend to support typeless systems

495
496
497
1.4.3 (06/2016)
    - Add support for priority of continuous signals in Ada code generator

498
499
500
1.4.2 (06/2016)
    - Reload / render properly priority of continuous signals

501
1.4.1 (06/2016)
502
503
    - Continuous states can check the presence of messages in the input queue
      to respect the SDL semantics
504
    - Bugfix in Ada code generator on continuous states
505

Maxime Perrotin's avatar
Maxime Perrotin committed
506
507
508
1.3.28 (06/2016)
    - Excluded states (with *(statelist) ) were case sensitive

Maxime Perrotin's avatar
Maxime Perrotin committed
509
510
511
512
1.3.27 (05/2016)
    - Fix bug in Ada backend when using continous signals
    - Better handling of simulation script

513
514
515
1.3.26 (05/2016)
    - Fix parser issues with negative expressions

Maxime Perrotin's avatar
Maxime Perrotin committed
516
1.3.25 (05/2016)
517
518
    - Fix reporting of syntax errors in state aggregations

Maxime Perrotin's avatar
Maxime Perrotin committed
519
1.3.22 (05/2016)
520
    - Bug fix in range checks for division and subtraction
521
    - Optimise loading when there are no CIF comments
Maxime Perrotin's avatar
Maxime Perrotin committed
522

Maxime Perrotin's avatar
Maxime Perrotin committed
523
524
525
526
1.3.21 (05/2016)
    - Complete support of optional fields
      (check tests/regression/test-optionalfields)

Maxime Perrotin's avatar
Maxime Perrotin committed
527
528
529
1.3.20 (05/2016)
    - Improve simulator interface

Maxime Perrotin's avatar
Maxime Perrotin committed
530
531
532
533
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
534
    - ASN.1 types are shown with SDL-syntax (no hyphens)
Maxime Perrotin's avatar
Maxime Perrotin committed
535

536
537
1.3.18 (04/2016)
    - Add support for value notation of NULL type
538
    - Remove warning when accessing CHOICE fields
539

540
541
542
1.3.17 (04/2016)
    - Add support for value notation of empty SEQUENCEs ("{}")

Maxime Perrotin's avatar
Maxime Perrotin committed
543
544
545
1.3.16 (03/2016)
    - Bugfix in testing aggregation states in the GUI

Maxime Perrotin's avatar
Maxime Perrotin committed
546
547
548
549
1.3.15 (03/2016)
    - Bugfix in Ada backend when a state aggregation contained only empty
      states (directly returning states).

550
551
552
1.3.14
    - Minor bugfix with command line handling

553
554
555
1.3.13
    - Bugfix in rendering of Continuous signals

Maxime Perrotin's avatar
Maxime Perrotin committed
556
557
558
1.3.12
    - Render properly parameterless procedures that are declared in the .pr
      file but without a textbox
559
    - When going to parent scene, fixed rendering issue
Maxime Perrotin's avatar
Maxime Perrotin committed
560

Maxime Perrotin's avatar
Maxime Perrotin committed
561
562
563
1.3.11
    - Parser is more tolerant to incomplete systems

Maxime Perrotin's avatar
Maxime Perrotin committed
564
1.3.9/10 (01/2016)
Maxime Perrotin's avatar
Maxime Perrotin committed
565
566
    - Checker verifies that decision coverage is complete on Real and Boolean
      types
Maxime Perrotin's avatar
Maxime Perrotin committed
567
    - F3 generates Ada code
Maxime Perrotin's avatar
Maxime Perrotin committed
568

569
570
571
1.3.8 (01/2016)
    - Fix logging when LLVM is not installed

Maxime Perrotin's avatar
Maxime Perrotin committed
572
573
574
1.3.7 (12/2015)
    - Added icon to use Continuous Signals from the GUI

575
576
577
578
579
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

580
581
582
1.3.5 (11/2015)
     - Better support for continous signals

Maxime Perrotin's avatar
Maxime Perrotin committed
583
584
585
586
1.3.4 (11/2015)
     - Early support for continous signals
     - Regression issue fixed (test-nocif2)

Maxime Perrotin's avatar
Maxime Perrotin committed
587
1.3.3 (11/2015)
Maxime Perrotin's avatar
Maxime Perrotin committed
588
     - Better support of platform-dependent screen resolution and dpi
Maxime Perrotin's avatar
Maxime Perrotin committed
589
     - Minor fixes in statechart scenes (no negative coordinates)
Maxime Perrotin's avatar
Maxime Perrotin committed
590

Maxime Perrotin's avatar
Maxime Perrotin committed
591
1.3.1 (11/2015)
592
     - Support for State Aggregations (parallel states)
Maxime Perrotin's avatar
Maxime Perrotin committed
593
     - Improved statechart rendering
594

595
1.2.10 (10/2015)
Maxime Perrotin's avatar
Maxime Perrotin committed
596
597
598
     - Better support of renamePolicy
     - Better handling of models without CIF coordinates
     - Minor bug fixes
599
     - Forloop syntax error handled correctly when using range
600
     - support Hex and bit string literals when working with OCTET STRING
601
     - support OUT keyword for procedure FPAR
Maxime Perrotin's avatar
Maxime Perrotin committed
602

Maxime Perrotin's avatar
Maxime Perrotin committed
603
1.2.4 (07/2015)
604
605
606
607
     - 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
608
609
610
     - Strongly report syntax errors with symbol location and warning if user
       tries to save a model with syntax errors

611
612
613
1.1.0 (07/2015)
     - Write/Writeln procedure support enumerated types

Maxime Perrotin's avatar
Maxime Perrotin committed
614
615
616
617
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
618
619
620
621
1.0.0 (06/2015)
     - Bugfixes and minor improvements
     - Python API / Simulator function (coupled with other TASTE components)

622
1.0RC (10/2014)
623
624
625
626
627
628
     - 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

629
630
631
0.994 (07/2014)
     - Maintenance release, minor fixes

Maxime Perrotin's avatar
Maxime Perrotin committed
632
633
634
635
636
637
638
639
640
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

641
0.99 (04/2014)
Maxime Perrotin's avatar
Maxime Perrotin committed
642
     - Refactoring of the backend engine, now using singledispatch
643
     - Support of hierachical states
Maxime Perrotin's avatar
Maxime Perrotin committed
644
645
     - Minor bugfixes

646
647

0.98
Maxime Perrotin's avatar
Maxime Perrotin committed
648
649
650
651
652
     - 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
653
654
655


0.97
Maxime Perrotin's avatar
Maxime Perrotin committed
656
657
658
659
     - 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