README.md 21.5 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
**3.5.0 (04/2021)**
- Support Input/Ouput expressions for model checkers

Maxime Perrotin's avatar
Maxime Perrotin committed
130
131
132
**3.4.6 (04/2021)**
- Introduce monitors to support model checking observers

Maxime Perrotin's avatar
Maxime Perrotin committed
133
134
135
**3.4.5 (04/2021)**
- Fix bug affecting RPC

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

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

Maxime Perrotin's avatar
Maxime Perrotin committed
142
143
144
**3.4.2 (03/2021)**
- Minor bugfix

145
146
147
**3.4.1 (03/2021)**
- Fix support of remote synchronous calls

148
149
150
**3.4.0 (03/2021)**
- Support exported/reference procedures (allowing remote synchronous calls)

Maxime Perrotin's avatar
Maxime Perrotin committed
151
152
153
**3.3.7 (03/2021)**
- Support IA5String type

154
155
156
**3.3.7 (03/2021)**
- Fix handling of context parameters in type/instances

157
**3.3.6 (12/2020)**
158
- Minor bugfix with procedure parsing
159

160
161
162
**3.3.5 (11/2020)**
- Improve link between error messages and graphical symbols

163
164
165
**3.3.4 (10/2020)**
- Fix bug when drawing connections in decision branches

166
167
168
**3.3.3 (10/2020)**
- Refactoring : Generate all data types in ASN.1

169
170
171
**3.3.2 (10/2020)**
- Fix reporting of semantic errors in procedures

Maxime Perrotin's avatar
Maxime Perrotin committed
172
173
174
175
176
**3.3.1 (09/2020)**
- Fix issue with type synonyms
- Update installation procedure
- Enable pip3 installations from PyPI

177
178
**3.3.0 (08/2020)**
- Save the state as an ASN.1 model instead of a native Ada type
Maxime Perrotin's avatar
Maxime Perrotin committed
179
- Ada backend basic support for "decision any"
180

181
182
**3.2.1 (07/2020)**
- Fix issue with the "present" operator
183
184
- Move the context declaration to the .ads
- Always expose the Get_State function (returns char * to C)
185

186
187
**3.2.0 (07/2020)**
- Add basic support for state type/instance
Maxime Perrotin's avatar
Maxime Perrotin committed
188

189
**3.1.2 (07/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
190
- Reinforce syntax error checking and reporting
Maxime Perrotin's avatar
Maxime Perrotin committed
191

192
**3.1.1 (07/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
193
194
- 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
195

196
**3.1.0 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
197
198
199
200
201
- 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
202

203
**3.0.9 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
204
- Minor fixes in C backend related to case sensitivity
Maxime Perrotin's avatar
Maxime Perrotin committed
205

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

210
**3.0.7 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
211
212
- Fix update of data dictionary window
- Fix unconstained constants support
213

214
**3.0.6 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
215
- Fix CONNECT symbol
Maxime Perrotin's avatar
Maxime Perrotin committed
216

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

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

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

227
**3.0.2 (05/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
228
- Fix API change in Pyside2
Maxime Perrotin's avatar
Maxime Perrotin committed
229

230
**3.0.1 (05/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
231
- Improve generated Makefile/gpr project file
Maxime Perrotin's avatar
Maxime Perrotin committed
232

233
**3.0.0 (12/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
234
235
236
- Port of Opengeode to Python3
- Use PySide2 instead of PySide
- Asn1scc module supports additional options
237

238
**2.1.5 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
239
- Fix unicode issues
Maxime Perrotin's avatar
Maxime Perrotin committed
240

241
**2.1.4 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
242
- Improve code generated for simulation
Maxime Perrotin's avatar
Maxime Perrotin committed
243

244
**2.1.3 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
245
- Improve statechart rendering (in particular with nested states)
Maxime Perrotin's avatar
Maxime Perrotin committed
246

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

250
**2.1.1 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
251
- Create cache folder if it was missing
252

253
**2.1.0 (09/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
254
- Reinforce type checks when using substrings and indexes, and
Maxime Perrotin's avatar
Maxime Perrotin committed
255
256
257
258
259
260
261
      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)

262
**2.0.44 (09/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
263
- Fix case issue when used combined with kazoo
264

265
**2.0.43 (05/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
266
- Better handling of path in generated gpr files
267

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

271
**2.0.41 (05/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
272
- Add --taste flag to target taste integration with kazoo
273

274
**2.0.40 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
275
- Improve generated gpr file
Maxime Perrotin's avatar
Maxime Perrotin committed
276

277
**2.0.39 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
278
279
- Fix append operator when using substrings
- Fix unicode issue
Maxime Perrotin's avatar
Maxime Perrotin committed
280

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

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

288
**2.0.36 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
289
- Fix unicode issue in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
290

291
**2.0.35 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
292
- Add helper when editing text (update data dictionary selection)
Maxime Perrotin's avatar
Maxime Perrotin committed
293

294
**2.0.34 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
295
296
297
298
- 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
299

300
**2.0.33 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
301
- Fix unicode issue in Ada backend when using substrings
Maxime Perrotin's avatar
Maxime Perrotin committed
302

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

306
**2.0.31 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
307
308
- 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
309

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

313
**2.0.29 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
314
- Fix range computations and modulo operator
315

316
**2.0.28 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
317
- Fix saving issue on new non-taste models
Maxime Perrotin's avatar
Maxime Perrotin committed
318

319
**2.0.27 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
320
- Fix type checking when using substrings
Maxime Perrotin's avatar
Maxime Perrotin committed
321

322
**2.0.26 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
323
- minor bugfix with underscore/dash confusion
Maxime Perrotin's avatar
Maxime Perrotin committed
324

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

328
**2.0.24 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
329
- Add choice_to_int operator
330

331
**2.0.23 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
332
- Add basic support for NEWTYPE definitions
Maxime Perrotin's avatar
Maxime Perrotin committed
333

334
**2.0.22 (02/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
335
- Generate GPR files to ease the build using gprbuild
Maxime Perrotin's avatar
Maxime Perrotin committed
336

337
**2.0.21 (02/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
338
- Fix regression in simulation build script
Maxime Perrotin's avatar
Maxime Perrotin committed
339

340
**2.0.20 (02/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
341
- Added "val" operator to convert a number to an enumerant
342
343
344
      useage: someVal := val (0, MyEnumeratedType)
      with someVal of type MyEnumeratedType. Will return the first enumerant

345
**2.0.19 (01/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
346
- for CHOICE types variables can be declared with enumerated type
Maxime Perrotin's avatar
Maxime Perrotin committed
347
348
      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
349
- If there is an enumerated type with the exact same content as the list
Maxime Perrotin's avatar
Maxime Perrotin committed
350
      of CHOICE determinants, cast is possible using to_selector and to_enum
Maxime Perrotin's avatar
Maxime Perrotin committed
351

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

355
**2.0.17 (09/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
356
- Fix type checking of the "power" operator
357

358
**2.0.16 (07/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
359
- Added interaction with system clipboard (basic for floating items)
360

361
**2.0.15 (07/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
362
- Fix many bugs in type checking system
Maxime Perrotin's avatar
Maxime Perrotin committed
363

364
**2.0.14 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
365
- fix numerical checks when setting timer parameters
366
  
367
**2.0.13 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
368
- Add taste-compatible cache mechanism when calling asn1scc
369
  
370
**2.0.12 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
371
- Fix resolution of ASN.1 constants - values were not use propertly when
372
373
      a constant was referencing another constant (numerical operations only)

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

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

380
**2.0.9 (06/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
381
382
- Add timers in statecharts
- Fix statechart list of signals when tab is activated from a sub-diagram
383

384
**2.0.8 (05/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
385
- Minor bugfix
386

387
**2.0.7 (05/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
388
389
- Add option to generate code with QGen (C and Ada)
- Better reporting of model parsing error
390

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

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

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

400
**2.0.3 (03/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
401
402
- Optimize calls to asn1scc
- Fix paste error when input symbol is selected
Maxime Perrotin's avatar
Maxime Perrotin committed
403

404
**2.0.2 (03/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
405
406
407
408
409
- 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"
410

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

414
**2.0.0 (02/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
415
416
- 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
417

418
**1.5.44 (01/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
419
420
- Bugfix: Return error code when Ada generation fails
- Tests: reorder arguments to asn1scc for v4 compatibility
Maxime Perrotin's avatar
Maxime Perrotin committed
421

422
**1.5.43 (01/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
423
- Add preliminary compatibility with asn1scc v4
424

425
**1.5.42 (10/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
426
427
- Fix case issue with process types
- Remove submodules
428

429
**1.5.40 (07/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
430
- Fix range check in arrays
Maxime Perrotin's avatar
Maxime Perrotin committed
431

432
**1.5.39 (07/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
433
- Minor fix in testcase Makefile
434

435
**1.5.38 (06/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
436
- Fix unicode issue in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
437

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

441
**1.5.36 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
442
- Fix Unicode issues in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
443

444
**1.5.35 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
445
- Fix FOR LOOPS code generation
Maxime Perrotin's avatar
Maxime Perrotin committed
446

447
**1.5.34 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
448
- Fix statechart message selection box
449

450
**1.5.33 (04/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
451
452
- Fix unicode issue with the simulation code
- Use -fPIC when building the simulation library
453

454
**1.5.32 (04/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
455
456
457
- 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
458

459
**1.5.28 (03/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
460
- Added preliminary support for PROCESS TYPE and instances
Maxime Perrotin's avatar
Maxime Perrotin committed
461

462
**1.5.26 (02/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
463
- Statecharts can be configured to filter out signals
Maxime Perrotin's avatar
Maxime Perrotin committed
464

465
**1.5.25 (01/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
466
- Ada backend generates aliased context (used for model checking)
467

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

471
**1.5.23 (12/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
472
473
- In simulation mode, bugfix in the declaration of the startup function
- Code generator prepared for model checking
474

475
**1.5.22 (12/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
476
- Simulation function save/restore context fix
477

478
**1.5.21 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
479
480
- 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
481

482
**1.5.20 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
483
484
- Fix wrongly formatted error reporting in FOR loops
- Support SDL2010 dot field separator (variable.field,
485
      while sdl92 only supported variable!field)
Maxime Perrotin's avatar
Maxime Perrotin committed
486
- Sequence of literals now support field selectors
487
      (i.e. { variable.field } is now a valid statement)
Maxime Perrotin's avatar
Maxime Perrotin committed
488
- Support inner procedure call with return statement
489

490
**1.5.19 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
491
- Fix integer cast in Ada
492

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

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

499
**1.5.16 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
500
- Fix minor indentation issue when saving
Maxime Perrotin's avatar
Maxime Perrotin committed
501

502
**1.5.15 (10/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
503
- Report incomplete startup transitions as errors in nested states
504

505
**1.5.14 (10/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
506
- Support named integers (requires asn1scc 3.3.04 or more recent)
Maxime Perrotin's avatar
Maxime Perrotin committed
507

508
**1.5.13 (10/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
509
510
511
512
- 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
513

514
**1.5.12 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
515
- Detect duplicate declaration of procedures
Maxime Perrotin's avatar
Maxime Perrotin committed
516

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

520
**1.5.10 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
521
- readonly mode with more restrictions
522

523
**1.5.9 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
524
- Added --readonly command line to restrict process modifications
525

526
**1.5.8 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
527
- Bugfix - Ada backend failed when there were continuous signals in
528
               nested states but none at root level (missing end if)
Maxime Perrotin's avatar
Maxime Perrotin committed
529
530
- Load fix when there is no dataview
- Additional type checks
531

532
**1.5.7 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
533
534
- Bugfix - Update completion list of process symbol
- Sort ASN.1 types in data dictionary
Maxime Perrotin's avatar
Maxime Perrotin committed
535

536
**1.5.6 (08/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
537
538
539
540
541
- 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
542

543
**1.5.4 (08/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
544
- Various GUI improvements
Maxime Perrotin's avatar
Maxime Perrotin committed
545

546
**1.5.3 (07/2016):**
Maxime Perrotin's avatar
Maxime Perrotin committed
547
- Ada backend fix: Continous signals now handled in states
Maxime Perrotin's avatar
Maxime Perrotin committed
548
      where input is not consumed
549

550
**1.5.2 (07/2016):**
Maxime Perrotin's avatar
Maxime Perrotin committed
551
552
- Asn1scc API added to interface with DMT/asn2dataModel
- Better statechart rendering (less distance between nodes)
553

554
**1.4.5 (07/2016):**
Maxime Perrotin's avatar
Maxime Perrotin committed
555
556
557
- 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
558

559
**1.4.4 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
560
- Minor bugfix in Ada backend to support typeless systems
561

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

565
**1.4.2 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
566
- Reload / render properly priority of continuous signals
567

568
**1.4.1 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
569
- Continuous states can check the presence of messages in the input queue
570
      to respect the SDL semantics
Maxime Perrotin's avatar
Maxime Perrotin committed
571
- Bugfix in Ada code generator on continuous states
572

573
**1.3.28 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
574
- Excluded states (with *(statelist) ) were case sensitive
Maxime Perrotin's avatar
Maxime Perrotin committed
575

576
**1.3.27 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
577
578
- Fix bug in Ada backend when using continous signals
- Better handling of simulation script
Maxime Perrotin's avatar
Maxime Perrotin committed
579

580
**1.3.26 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
581
- Fix parser issues with negative expressions
582

583
**1.3.25 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
584
- Fix reporting of syntax errors in state aggregations
585

586
**1.3.22 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
587
588
- Bug fix in range checks for division and subtraction
- Optimise loading when there are no CIF comments
Maxime Perrotin's avatar
Maxime Perrotin committed
589

590
**1.3.21 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
591
- Complete support of optional fields
Maxime Perrotin's avatar
Maxime Perrotin committed
592
593
      (check tests/regression/test-optionalfields)

594
**1.3.20 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
595
- Improve simulator interface
Maxime Perrotin's avatar
Maxime Perrotin committed
596

597
**1.3.19 (04/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
598
599
- 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
600
      symbol
Maxime Perrotin's avatar
Maxime Perrotin committed
601
- ASN.1 types are shown with SDL-syntax (no hyphens)
Maxime Perrotin's avatar
Maxime Perrotin committed
602

603
**1.3.18 (04/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
604
605
- Add support for value notation of NULL type
- Remove warning when accessing CHOICE fields
606

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

610
**1.3.16 (03/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
611
- Bugfix in testing aggregation states in the GUI
Maxime Perrotin's avatar
Maxime Perrotin committed
612

613
**1.3.15 (03/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
614
- Bugfix in Ada backend when a state aggregation contained only empty
Maxime Perrotin's avatar
Maxime Perrotin committed
615
616
      states (directly returning states).

617
**1.3.14**
Maxime Perrotin's avatar
Maxime Perrotin committed
618
- Minor bugfix with command line handling
619

620
**1.3.13**
Maxime Perrotin's avatar
Maxime Perrotin committed
621
- Bugfix in rendering of Continuous signals
622

623
**1.3.12**
Maxime Perrotin's avatar
Maxime Perrotin committed
624
- Render properly parameterless procedures that are declared in the .pr
Maxime Perrotin's avatar
Maxime Perrotin committed
625
      file but without a textbox
Maxime Perrotin's avatar
Maxime Perrotin committed
626
- When going to parent scene, fixed rendering issue
Maxime Perrotin's avatar
Maxime Perrotin committed
627

628
**1.3.11**
Maxime Perrotin's avatar
Maxime Perrotin committed
629
- Parser is more tolerant to incomplete systems
Maxime Perrotin's avatar
Maxime Perrotin committed
630

631
**1.3.9/10 (01/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
632
- Checker verifies that decision coverage is complete on Real and Boolean
Maxime Perrotin's avatar
Maxime Perrotin committed
633
      types
Maxime Perrotin's avatar
Maxime Perrotin committed
634
- F3 generates Ada code
Maxime Perrotin's avatar
Maxime Perrotin committed
635

636
**1.3.8 (01/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
637
- Fix logging when LLVM is not installed
638

639
**1.3.7 (12/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
640
- Added icon to use Continuous Signals from the GUI
Maxime Perrotin's avatar
Maxime Perrotin committed
641

642
**1.3.6 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
643
- Support external procedures having a return statement
644
645
646
       this allows to import math functions from the libmath without having
       to provide manual code. see test-math

647
**1.3.5 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
648
- Better support for continous signals
649

650
**1.3.4 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
651
652
- Early support for continous signals
- Regression issue fixed (test-nocif2)
Maxime Perrotin's avatar
Maxime Perrotin committed
653

654
**1.3.3 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
655
656
- Better support of platform-dependent screen resolution and dpi
- Minor fixes in statechart scenes (no negative coordinates)
Maxime Perrotin's avatar
Maxime Perrotin committed
657

658
**1.3.1 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
659
660
- Support for State Aggregations (parallel states)
- Improved statechart rendering
661

662
**1.2.10 (10/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
663
664
665
666
667
668
- 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
669

670
**1.2.4 (07/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
671
672
- Use version 3.2.x of the ASN1SCC compiler with new -renamePolicy flag
- Improve robustness
673

674
**1.1.1 (07/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
675
676
- 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
677

678
**1.1.0 (07/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
679
- Write/Writeln procedure support enumerated types
680

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

684
**1.0.0 (06/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
685
686
- Bugfixes and minor improvements
- Python API / Simulator function (coupled with other TASTE components)
Maxime Perrotin's avatar
Maxime Perrotin committed
687

688
**1.0RC (10/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
689
690
691
692
693
- 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
694

695
**0.994 (07/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
696
- Maintenance release, minor fixes
697

698
**0.993 (07/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
699
700
701
702
703
704
705
- 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
706

707
**0.99 (04/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
708
709
710
- Refactoring of the backend engine, now using singledispatch
- Support of hierachical states
- Minor bugfixes
Maxime Perrotin's avatar
Maxime Perrotin committed
711

712
**0.98**
Maxime Perrotin's avatar
Maxime Perrotin committed
713
714
715
716
717
- 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
718

719
**0.97**
Maxime Perrotin's avatar
Maxime Perrotin committed
720
721
722
- 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
723