README.md 22.3 KB
Newer Older
1
![OpenGEODE Logo](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

Features
--------

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

Maxime Perrotin's avatar
Maxime Perrotin committed
46
OpenGEODE is made primarily for Linux.
47

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

50
It is installed with all dependencies in the TASTE virtual machine that you can download from [this link](https://taste.tools/#install). Manual installation is possible in a native Linux environment.
51
Debian 10 (buster) is the baseline. Recent versions of Ubuntu (20.x) should work as well.
52

53
54
55
Using TASTE
-----------

Maxime Perrotin's avatar
Maxime Perrotin committed
56
__Important: OpenGEODE is already installed in the TASTE10 Virtual Machine (based on Debian Buster), and fully integrated with the toolset. It is the easiest way to get started with OpenGEODE__
57

Maxime Perrotin's avatar
Maxime Perrotin committed
58
To start a new project run:
59
```
Maxime Perrotin's avatar
Maxime Perrotin committed
60
$ taste
61
62
```

Maxime Perrotin's avatar
Maxime Perrotin committed
63
Select a project name and the graphical editor will pop-up shortly after. You can add functions to the system and specify the imnplementation language to __SDL__. When you edit the function, the OpenGEODE editor will start.
64
65
66
67
68
69
70
71

You can check an example of a system using Opengeode if you go in `~/tool-src/kazoo/tests/Demo_ABB_Opengeode` and run `make` to build it. Then `taste` to edit.

The code is automatically generated when you exit the tool.

Manual
------

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

74
75
76
```
$ git clone https://github.com/esa/opengeode
$ cd opengeode
77
$ make full-install   # it will prompt for sudo password to call apt
78
```
Maxime Perrotin's avatar
Maxime Perrotin committed
79

80
81
82
83
84
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
85

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

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

Will Binns's avatar
Will Binns committed
93
94
95
OpenGEODE Website
=================

96
97
A [web page](http://opengeode.net/) has been created with more information about
OpenGEODE.
Will Binns's avatar
Will Binns committed
98
99
100
101
102

The [source](https://github.com/esa/opengeode/blob/master/wiki/opengeode.mediawiki)
for the page can be found in the [wiki](https://github.com/esa/opengeode/tree/master/wiki)
folder of this repository. Any changes to the wiki source will be subsequently
merged into the wiki by the wiki maintainers.
Maxime Perrotin's avatar
Maxime Perrotin committed
103

Maxime Perrotin's avatar
Maxime Perrotin committed
104
105
106
Information and contact
=======================

Maxime Perrotin's avatar
Maxime Perrotin committed
107
For additional information please contact:
Maxime Perrotin's avatar
Maxime Perrotin committed
108
109
maxime (dot) perrotin (at) esa (dot) int

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

114
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
115
116
117
118

Licence
=======

Will Binns's avatar
Will Binns committed
119
License is LGPL (see file [LICENSE](https://github.com/esa/opengeode/blob/master/LICENSE))
Maxime Perrotin's avatar
Maxime Perrotin committed
120
121
There is no runtime, and the generated code is not subject to any license.

122
The fonts are the fonts from Ubuntu, check licence in file [FONT-LICENSE.TXT](https://github.com/esa/opengeode/blob/master/FONT-LICENCE.txt)
Maxime Perrotin's avatar
Maxime Perrotin committed
123
The background pattern was downloaded from www.subtlepatterns.com
Maxime Perrotin's avatar
Maxime Perrotin committed
124
125
126

Changelog
=========
127
128
129
130
**3.5.5 (04/2021)**
- Fix support for single input/output expressions (with no message name)
- Fix graphical location of errors for undefined states

131
132
133
134
**3.5.4 (04/2021)**
- Fix code generation when no signals are defined (only exported procedures)
- Add renames clause (aliases) for input/output expressions

135
136
137
**3.5.3 (04/2021)**
- Model checking observers: add support for parameters in input/output expressions

138
139
**3.5.2 (04/2021)**
- Model checking observers: run only one transition per call
Maxime Perrotin's avatar
Maxime Perrotin committed
140
- Support field names called "state"
141

Maxime Perrotin's avatar
Maxime Perrotin committed
142
143
144
145
**3.5.1 (04/2021)**
- Support aliases:
  dcl var type renames foo.bar.baz;

146
147
148
**3.5.0 (04/2021)**
- Support Input/Ouput expressions for model checkers

Maxime Perrotin's avatar
Maxime Perrotin committed
149
150
151
**3.4.6 (04/2021)**
- Introduce monitors to support model checking observers

Maxime Perrotin's avatar
Maxime Perrotin committed
152
153
154
**3.4.5 (04/2021)**
- Fix bug affecting RPC

Maxime Perrotin's avatar
Maxime Perrotin committed
155
156
157
**3.4.4 (04/2021)**
- After RPC call, execute corresponding transition in the state machine (if any)

Maxime Perrotin's avatar
Maxime Perrotin committed
158
159
160
**3.4.3 (03/2021)**
- Ignore duplicate signal definition at system level (impacts only taste systems)

Maxime Perrotin's avatar
Maxime Perrotin committed
161
162
163
**3.4.2 (03/2021)**
- Minor bugfix

164
165
166
**3.4.1 (03/2021)**
- Fix support of remote synchronous calls

167
168
169
**3.4.0 (03/2021)**
- Support exported/reference procedures (allowing remote synchronous calls)

Maxime Perrotin's avatar
Maxime Perrotin committed
170
171
172
**3.3.7 (03/2021)**
- Support IA5String type

173
174
175
**3.3.7 (03/2021)**
- Fix handling of context parameters in type/instances

176
**3.3.6 (12/2020)**
177
- Minor bugfix with procedure parsing
178

179
180
181
**3.3.5 (11/2020)**
- Improve link between error messages and graphical symbols

182
183
184
**3.3.4 (10/2020)**
- Fix bug when drawing connections in decision branches

185
186
187
**3.3.3 (10/2020)**
- Refactoring : Generate all data types in ASN.1

188
189
190
**3.3.2 (10/2020)**
- Fix reporting of semantic errors in procedures

Maxime Perrotin's avatar
Maxime Perrotin committed
191
192
193
194
195
**3.3.1 (09/2020)**
- Fix issue with type synonyms
- Update installation procedure
- Enable pip3 installations from PyPI

196
197
**3.3.0 (08/2020)**
- Save the state as an ASN.1 model instead of a native Ada type
198

Maxime Perrotin's avatar
Maxime Perrotin committed
199
- Ada backend basic support for "decision any"
200
201
202
**3.2.3 (09/2020)
- Fix type checks when a type inherits another type with different constraints

Maxime Perrotin's avatar
Maxime Perrotin committed
203
204
205
**3.2.2 (09/2020)
- Fix a regression with legacy, non-kazoo taste systems, related to the import of check_queue symbol

206
207
**3.2.1 (07/2020)**
- Fix issue with the "present" operator
208
209
- Move the context declaration to the .ads
- Always expose the Get_State function (returns char * to C)
210

211
212
**3.2.0 (07/2020)**
- Add basic support for state type/instance
Maxime Perrotin's avatar
Maxime Perrotin committed
213

214
**3.1.2 (07/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
215
- Reinforce syntax error checking and reporting
Maxime Perrotin's avatar
Maxime Perrotin committed
216

217
**3.1.1 (07/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
218
219
- 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
220

221
**3.1.0 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
222
223
224
225
226
- 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
227

228
**3.0.9 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
229
- Minor fixes in C backend related to case sensitivity
Maxime Perrotin's avatar
Maxime Perrotin committed
230

231
**3.0.8 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
232
233
- Support ASN.1 integer constants with no range (plain x INTEGER ::= 5)
- Check that procedures with a return type are called only from TASKs
234

235
**3.0.7 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
236
237
- Fix update of data dictionary window
- Fix unconstained constants support
238

239
**3.0.6 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
240
- Fix CONNECT symbol
Maxime Perrotin's avatar
Maxime Perrotin committed
241

242
**3.0.5 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
243
- Add support to standard SDL syntax *x := CALL procedure* in tasks
244

245
**3.0.4 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
246
- Fix use of ASN.1 constants in decision branches
247

248
**3.0.3 (05/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
249
250
- Replace the unicode separator when flattening the model for code generation
- Fix calls to the exit procedure in nested states
251

252
**3.0.2 (05/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
253
- Fix API change in Pyside2
Maxime Perrotin's avatar
Maxime Perrotin committed
254

255
**3.0.1 (05/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
256
- Improve generated Makefile/gpr project file
Maxime Perrotin's avatar
Maxime Perrotin committed
257

258
**3.0.0 (12/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
259
260
261
- Port of Opengeode to Python3
- Use PySide2 instead of PySide
- Asn1scc module supports additional options
262

263
**2.1.5 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
264
- Fix unicode issues
Maxime Perrotin's avatar
Maxime Perrotin committed
265

266
**2.1.4 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
267
- Improve code generated for simulation
Maxime Perrotin's avatar
Maxime Perrotin committed
268

269
**2.1.3 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
270
- Improve statechart rendering (in particular with nested states)
Maxime Perrotin's avatar
Maxime Perrotin committed
271

272
**2.1.2 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
273
- Change import name case for set/reset of timer (for taste compatibility)
Maxime Perrotin's avatar
Maxime Perrotin committed
274

275
**2.1.1 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
276
- Create cache folder if it was missing
277

278
**2.1.0 (09/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
279
- Reinforce type checks when using substrings and indexes, and
Maxime Perrotin's avatar
Maxime Perrotin committed
280
281
282
283
284
285
286
      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)

287
**2.0.44 (09/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
288
- Fix case issue when used combined with kazoo
289

290
**2.0.43 (05/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
291
- Better handling of path in generated gpr files
292

293
**2.0.42 (05/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
294
- Fix substring support (can now write var(1,2) := {1,2})
295

296
**2.0.41 (05/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
297
- Add --taste flag to target taste integration with kazoo
298

299
**2.0.40 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
300
- Improve generated gpr file
Maxime Perrotin's avatar
Maxime Perrotin committed
301

302
**2.0.39 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
303
304
- Fix append operator when using substrings
- Fix unicode issue
Maxime Perrotin's avatar
Maxime Perrotin committed
305

306
**2.0.38 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
307
- Support advanced "in" expressions (e.g. "someVar in {enum1, enum2}",
308
309
      or "someVar in {{a 4, b false}, {a 1, b true}}"

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

313
**2.0.36 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
314
- Fix unicode issue in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
315

316
**2.0.35 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
317
- Add helper when editing text (update data dictionary selection)
Maxime Perrotin's avatar
Maxime Perrotin committed
318

319
**2.0.34 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
320
321
322
323
- Relax range check for substrings
- Save/restore windows geometry when quitting/opening the tool
- Make datatypes fully visible in the data dictionary window
- write[ln] operator now supports embedded newlines
Maxime Perrotin's avatar
Maxime Perrotin committed
324

325
**2.0.33 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
326
- Fix unicode issue in Ada backend when using substrings
Maxime Perrotin's avatar
Maxime Perrotin committed
327

328
**2.0.32 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
329
- Fix segfault and improve copy paste of nested states in branches
Maxime Perrotin's avatar
Maxime Perrotin committed
330

331
**2.0.31 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
332
333
- Can cut/paste nested states (nested content was lost before)
- Can copy/paste and then rename states with nested content
Maxime Perrotin's avatar
Maxime Perrotin committed
334

335
**2.0.30 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
336
- Fix bug when double clicking in an autocompletion box in text areas
337

338
**2.0.29 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
339
- Fix range computations and modulo operator
340

341
**2.0.28 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
342
- Fix saving issue on new non-taste models
Maxime Perrotin's avatar
Maxime Perrotin committed
343

344
**2.0.27 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
345
- Fix type checking when using substrings
Maxime Perrotin's avatar
Maxime Perrotin committed
346

347
**2.0.26 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
348
- minor bugfix with underscore/dash confusion
Maxime Perrotin's avatar
Maxime Perrotin committed
349

350
**2.0.25 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
351
- fixed variable renaming bug in code generation for nested states
352

353
**2.0.24 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
354
- Add choice_to_int operator
355

356
**2.0.23 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
357
- Add basic support for NEWTYPE definitions
Maxime Perrotin's avatar
Maxime Perrotin committed
358

359
**2.0.22 (02/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
360
- Generate GPR files to ease the build using gprbuild
Maxime Perrotin's avatar
Maxime Perrotin committed
361

362
**2.0.21 (02/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
363
- Fix regression in simulation build script
Maxime Perrotin's avatar
Maxime Perrotin committed
364

365
**2.0.20 (02/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
366
- Added "val" operator to convert a number to an enumerant
367
368
369
      useage: someVal := val (0, MyEnumeratedType)
      with someVal of type MyEnumeratedType. Will return the first enumerant

370
**2.0.19 (01/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
371
- for CHOICE types variables can be declared with enumerated type
Maxime Perrotin's avatar
Maxime Perrotin committed
372
373
      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
374
- If there is an enumerated type with the exact same content as the list
Maxime Perrotin's avatar
Maxime Perrotin committed
375
      of CHOICE determinants, cast is possible using to_selector and to_enum
Maxime Perrotin's avatar
Maxime Perrotin committed
376

377
**2.0.18 (12/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
378
- Generate code in the current directory, not in the one of the .pr
379

380
**2.0.17 (09/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
381
- Fix type checking of the "power" operator
382

383
**2.0.16 (07/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
384
- Added interaction with system clipboard (basic for floating items)
385

386
**2.0.15 (07/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
387
- Fix many bugs in type checking system
Maxime Perrotin's avatar
Maxime Perrotin committed
388

389
**2.0.14 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
390
- fix numerical checks when setting timer parameters
391
  
392
**2.0.13 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
393
- Add taste-compatible cache mechanism when calling asn1scc
394
  
395
**2.0.12 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
396
- Fix resolution of ASN.1 constants - values were not use propertly when
397
398
      a constant was referencing another constant (numerical operations only)

399
**2.0.11 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
400
- Ada backend: fix choice determinant issue leading to CHOICE_NOT_FOUND bug
401

402
**2.0.10 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
403
- Various fixes in statechart rendering, esp. from command line
404

405
**2.0.9 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
406
407
- Add timers in statecharts
- Fix statechart list of signals when tab is activated from a sub-diagram
408

409
**2.0.8 (05/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
410
- Minor bugfix
411

412
**2.0.7 (05/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
413
414
- Add option to generate code with QGen (C and Ada)
- Better reporting of model parsing error
415

416
**2.0.6 (05/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
417
- Several fixes with the Append operator when working on complex types
Maxime Perrotin's avatar
Maxime Perrotin committed
418

419
**2.0.5 (04/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
420
- Fix zoom-in on laptops keyboards with ctrl-shift-+
taste's avatar
taste committed
421

422
**2.0.4 (03/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
423
- Fix issue with variable prefix in nested states (in generated code)
424

425
**2.0.3 (03/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
426
427
- Optimize calls to asn1scc
- Fix paste error when input symbol is selected
Maxime Perrotin's avatar
Maxime Perrotin committed
428

429
**2.0.2 (03/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
430
431
432
433
434
- Better support of ASN.1 constants
- Support timer when using process type
- Trigger model check proposal on save only if not checked recently
- Fix Statechart rendering (incl. with process type)
- Ada backend: when a branch is ignored, generate "null"
435

436
**2.0.1 (02/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
437
- Detect type mismatches when user mixes signed and unsigned variables
Maxime Perrotin's avatar
Maxime Perrotin committed
438

439
**2.0.0 (02/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
440
441
- 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
442

443
**1.5.44 (01/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
444
445
- Bugfix: Return error code when Ada generation fails
- Tests: reorder arguments to asn1scc for v4 compatibility
Maxime Perrotin's avatar
Maxime Perrotin committed
446

447
**1.5.43 (01/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
448
- Add preliminary compatibility with asn1scc v4
449

450
**1.5.42 (10/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
451
452
- Fix case issue with process types
- Remove submodules
453

454
**1.5.40 (07/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
455
- Fix range check in arrays
Maxime Perrotin's avatar
Maxime Perrotin committed
456

457
**1.5.39 (07/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
458
- Minor fix in testcase Makefile
459

460
**1.5.38 (06/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
461
- Fix unicode issue in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
462

463
**1.5.37 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
464
- Fix Ada backend bug with sequence of literals in nested states
465

466
**1.5.36 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
467
- Fix Unicode issues in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
468

469
**1.5.35 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
470
- Fix FOR LOOPS code generation
Maxime Perrotin's avatar
Maxime Perrotin committed
471

472
**1.5.34 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
473
- Fix statechart message selection box
474

475
**1.5.33 (04/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
476
477
- Fix unicode issue with the simulation code
- Use -fPIC when building the simulation library
478

479
**1.5.32 (04/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
480
481
482
- Unicode bugfixes in Ada backend
- Bugfix with SEQUENCE OF literals in Ada backend
- Various bugfixes with mixed int32/64 bits
Maxime Perrotin's avatar
Maxime Perrotin committed
483

484
**1.5.28 (03/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
485
- Added preliminary support for PROCESS TYPE and instances
Maxime Perrotin's avatar
Maxime Perrotin committed
486

487
**1.5.26 (02/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
488
- Statecharts can be configured to filter out signals
Maxime Perrotin's avatar
Maxime Perrotin committed
489

490
**1.5.25 (01/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
491
- Ada backend generates aliased context (used for model checking)
492

493
**1.5.24 (01/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
494
- PR file use better indentation for text areas (no line return)
495

496
**1.5.23 (12/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
497
498
- In simulation mode, bugfix in the declaration of the startup function
- Code generator prepared for model checking
499

500
**1.5.22 (12/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
501
- Simulation function save/restore context fix
502

503
**1.5.21 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
504
505
- Fix regression with test-math (import of external functions)
- Use monospace font in the HTML rendering of ASN.1 files
Maxime Perrotin's avatar
Maxime Perrotin committed
506

507
**1.5.20 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
508
509
- Fix wrongly formatted error reporting in FOR loops
- Support SDL2010 dot field separator (variable.field,
510
      while sdl92 only supported variable!field)
Maxime Perrotin's avatar
Maxime Perrotin committed
511
- Sequence of literals now support field selectors
512
      (i.e. { variable.field } is now a valid statement)
Maxime Perrotin's avatar
Maxime Perrotin committed
513
- Support inner procedure call with return statement
514

515
**1.5.19 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
516
- Fix integer cast in Ada
517

518
**1.5.18 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
519
- Fix parsing of ASN.1 constants that use an annonymous inner type
520

521
**1.5.17 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
522
- Fixed issue with initialization of generated code in state aggregations
Maxime Perrotin's avatar
Maxime Perrotin committed
523

524
**1.5.16 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
525
- Fix minor indentation issue when saving
Maxime Perrotin's avatar
Maxime Perrotin committed
526

527
**1.5.15 (10/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
528
- Report incomplete startup transitions as errors in nested states
529

530
**1.5.14 (10/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
531
- Support named integers (requires asn1scc 3.3.04 or more recent)
Maxime Perrotin's avatar
Maxime Perrotin committed
532

533
**1.5.13 (10/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
534
535
536
537
- Better support of warnings
- Fixed detection of CHOICE assignment erros
- Raise error if process miss the start transition
- Raise error in case of SEQUENCE OF type mismatch
538

539
**1.5.12 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
540
- Detect duplicate declaration of procedures
Maxime Perrotin's avatar
Maxime Perrotin committed
541

542
**1.5.11 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
543
- Allow semicolon in the declaration of procedures after RETURNS keyword
544

545
**1.5.10 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
546
- readonly mode with more restrictions
547

548
**1.5.9 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
549
- Added --readonly command line to restrict process modifications
550

551
**1.5.8 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
552
- Bugfix - Ada backend failed when there were continuous signals in
553
               nested states but none at root level (missing end if)
Maxime Perrotin's avatar
Maxime Perrotin committed
554
555
- Load fix when there is no dataview
- Additional type checks
556

557
**1.5.7 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
558
559
- Bugfix - Update completion list of process symbol
- Sort ASN.1 types in data dictionary
Maxime Perrotin's avatar
Maxime Perrotin committed
560

561
**1.5.6 (08/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
562
563
564
565
566
- 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,)
- Fixed issue with rendering (coordinates of symbols could be wrong)
- Introduce data dictionary
Maxime Perrotin's avatar
Maxime Perrotin committed
567

568
**1.5.4 (08/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
569
- Various GUI improvements
Maxime Perrotin's avatar
Maxime Perrotin committed
570

571
**1.5.3 (07/2016):**
Maxime Perrotin's avatar
Maxime Perrotin committed
572
- Ada backend fix: Continous signals now handled in states
Maxime Perrotin's avatar
Maxime Perrotin committed
573
      where input is not consumed
574

575
**1.5.2 (07/2016):**
Maxime Perrotin's avatar
Maxime Perrotin committed
576
577
- Asn1scc API added to interface with DMT/asn2dataModel
- Better statechart rendering (less distance between nodes)
578

579
**1.4.5 (07/2016):**
Maxime Perrotin's avatar
Maxime Perrotin committed
580
581
582
- Context variable was not prefixed properly
- Callback function for timers use 64bits integer
- RIs use prefix with unicode separation to avoid name clashes
Maxime Perrotin's avatar
Maxime Perrotin committed
583

584
**1.4.4 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
585
- Minor bugfix in Ada backend to support typeless systems
586

587
**1.4.3 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
588
- Add support for priority of continuous signals in Ada code generator
589

590
**1.4.2 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
591
- Reload / render properly priority of continuous signals
592

593
**1.4.1 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
594
- Continuous states can check the presence of messages in the input queue
595
      to respect the SDL semantics
Maxime Perrotin's avatar
Maxime Perrotin committed
596
- Bugfix in Ada code generator on continuous states
597

598
**1.3.28 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
599
- Excluded states (with *(statelist) ) were case sensitive
Maxime Perrotin's avatar
Maxime Perrotin committed
600

601
**1.3.27 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
602
603
- Fix bug in Ada backend when using continous signals
- Better handling of simulation script
Maxime Perrotin's avatar
Maxime Perrotin committed
604

605
**1.3.26 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
606
- Fix parser issues with negative expressions
607

608
**1.3.25 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
609
- Fix reporting of syntax errors in state aggregations
610

611
**1.3.22 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
612
613
- Bug fix in range checks for division and subtraction
- Optimise loading when there are no CIF comments
Maxime Perrotin's avatar
Maxime Perrotin committed
614

615
**1.3.21 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
616
- Complete support of optional fields
Maxime Perrotin's avatar
Maxime Perrotin committed
617
618
      (check tests/regression/test-optionalfields)

619
**1.3.20 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
620
- Improve simulator interface
Maxime Perrotin's avatar
Maxime Perrotin committed
621

622
**1.3.19 (04/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
623
624
- Various bugfixes with ternary operator
- Added demo "test-save" showing how to emulate the behaviour of the SAVE
Maxime Perrotin's avatar
Maxime Perrotin committed
625
      symbol
Maxime Perrotin's avatar
Maxime Perrotin committed
626
- ASN.1 types are shown with SDL-syntax (no hyphens)
Maxime Perrotin's avatar
Maxime Perrotin committed
627

628
**1.3.18 (04/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
629
630
- Add support for value notation of NULL type
- Remove warning when accessing CHOICE fields
631

632
**1.3.17 (04/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
633
- Add support for value notation of empty SEQUENCEs ("{}")
634

635
**1.3.16 (03/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
636
- Bugfix in testing aggregation states in the GUI
Maxime Perrotin's avatar
Maxime Perrotin committed
637

638
**1.3.15 (03/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
639
- Bugfix in Ada backend when a state aggregation contained only empty
Maxime Perrotin's avatar
Maxime Perrotin committed
640
641
      states (directly returning states).

642
**1.3.14**
Maxime Perrotin's avatar
Maxime Perrotin committed
643
- Minor bugfix with command line handling
644

645
**1.3.13**
Maxime Perrotin's avatar
Maxime Perrotin committed
646
- Bugfix in rendering of Continuous signals
647

648
**1.3.12**
Maxime Perrotin's avatar
Maxime Perrotin committed
649
- Render properly parameterless procedures that are declared in the .pr
Maxime Perrotin's avatar
Maxime Perrotin committed
650
      file but without a textbox
Maxime Perrotin's avatar
Maxime Perrotin committed
651
- When going to parent scene, fixed rendering issue
Maxime Perrotin's avatar
Maxime Perrotin committed
652

653
**1.3.11**
Maxime Perrotin's avatar
Maxime Perrotin committed
654
- Parser is more tolerant to incomplete systems
Maxime Perrotin's avatar
Maxime Perrotin committed
655

656
**1.3.9/10 (01/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
657
- Checker verifies that decision coverage is complete on Real and Boolean
Maxime Perrotin's avatar
Maxime Perrotin committed
658
      types
Maxime Perrotin's avatar
Maxime Perrotin committed
659
- F3 generates Ada code
Maxime Perrotin's avatar
Maxime Perrotin committed
660

661
**1.3.8 (01/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
662
- Fix logging when LLVM is not installed
663

664
**1.3.7 (12/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
665
- Added icon to use Continuous Signals from the GUI
Maxime Perrotin's avatar
Maxime Perrotin committed
666

667
**1.3.6 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
668
- Support external procedures having a return statement
669
670
671
       this allows to import math functions from the libmath without having
       to provide manual code. see test-math

672
**1.3.5 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
673
- Better support for continous signals
674

675
**1.3.4 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
676
677
- Early support for continous signals
- Regression issue fixed (test-nocif2)
Maxime Perrotin's avatar
Maxime Perrotin committed
678

679
**1.3.3 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
680
681
- Better support of platform-dependent screen resolution and dpi
- Minor fixes in statechart scenes (no negative coordinates)
Maxime Perrotin's avatar
Maxime Perrotin committed
682

683
**1.3.1 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
684
685
- Support for State Aggregations (parallel states)
- Improved statechart rendering
686

687
**1.2.10 (10/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
688
689
690
691
692
693
- Better support of renamePolicy
- Better handling of models without CIF coordinates
- Minor bug fixes
- Forloop syntax error handled correctly when using range
- support Hex and bit string literals when working with OCTET STRING
- support OUT keyword for procedure FPAR
Maxime Perrotin's avatar
Maxime Perrotin committed
694

695
**1.2.4 (07/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
696
697
- Use version 3.2.x of the ASN1SCC compiler with new -renamePolicy flag
- Improve robustness
698

699
**1.1.1 (07/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
700
701
- Strongly report syntax errors with symbol location and warning if user
  tries to save a model with syntax errors
Maxime Perrotin's avatar
Maxime Perrotin committed
702

703
**1.1.0 (07/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
704
- Write/Writeln procedure support enumerated types
705

706
**1.0.1 (06/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
707
- Bugfix: use mono when calling asn1.exe by default (needed redhat-based
Maxime Perrotin's avatar
Maxime Perrotin committed
708

709
**1.0.0 (06/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
710
711
- Bugfixes and minor improvements
- Python API / Simulator function (coupled with other TASTE components)
Maxime Perrotin's avatar
Maxime Perrotin committed
712

713
**1.0RC (10/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
714
715
716
717
718
- 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
719

720
**0.994 (07/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
721
- Maintenance release, minor fixes
722

723
**0.993 (07/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
724
725
726
727
728
729
730
- 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
Maxime Perrotin's avatar
Maxime Perrotin committed
731

732
**0.99 (04/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
733
734
735
- Refactoring of the backend engine, now using singledispatch
- Support of hierachical states
- Minor bugfixes
Maxime Perrotin's avatar
Maxime Perrotin committed
736

737
**0.98**
Maxime Perrotin's avatar
Maxime Perrotin committed
738
739
740
741
742
- 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
743

744
**0.97**
Maxime Perrotin's avatar
Maxime Perrotin committed
745
746
747
- 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
Maxime Perrotin's avatar
Maxime Perrotin committed
748