README.md 22.2 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
-----------

56
__Important: OpenGEODE is already installed in the TASTE Virtual Machine, and fully integrated with the toolset, however, the current TASTE VM is a bit old - it is based on Debian 9 which does not have important dependencies to support the latest version of OpenGEODE. It is missing Python 3.7+ and PySide2. An upgrade is in the works, but it's not ready yet. If you are familiar enough with Linux, you can manually upgrade by completing the following steps.__
57

58
_Install the [TASTE VM](https://taste.tools/#install). Once logged in, enter a new shell and:_
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
```
# Switch to root
sudo su

# Make sure VM image is up to date
apt-get update
apt-get upgrade
apt-get dist-upgrade

# Point APT to Buster to prepare for upgrade
sed -i 's/stretch/buster/g' /etc/apt/sources.list

# Upgrade packages to Buster; when prompted allow services to be restarted automatically
apt-get upgrade

# Upgrade distribution to Buster
apt-get dist-upgrade

# Remove packages no longer needed
apt-get autoremove

# Return to taste user; exit root
exit

# Navigate to TASTE source; upgrade
cd ~/tool-src
git pull
git checkout feature_buster
./Update-TASTE.sh
```

After this upgrade, you can work with the latest version of the tools, in particular the new Kazoo build system and Opengeode 3.xx (which you can update at any time). The Quick Reference Card has not been updated to reflect this yet.

The main differences to create/edit a project is that you must just run `taste<` (and not `taste-create-project/taste-edit-project` anymore). To build, run `make`.

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.

In the interface view, select the SDL language for the implementation of the blocks you want to model using OpenGEODE.

Then when you right-click on the SDL block you can select the option "Open SDL Editor".

The code is automatically generated when you exit the tool.

Manual
------

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

107
108
109
```
$ git clone https://github.com/esa/opengeode
$ cd opengeode
110
$ make full-install   # it will prompt for sudo password to call apt
111
```
Maxime Perrotin's avatar
Maxime Perrotin committed
112

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

119
120
121
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)
122
123

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

125
```bash
Maxime Perrotin's avatar
Maxime Perrotin committed
126
$ cd /opt
127
$ tar xvf asn1scc-bin-4.xx.tar.bz2    # Use the file name version you got
Maxime Perrotin's avatar
Maxime Perrotin committed
128
$ echo 'export PATH=$PATH:/opt/asn1scc' >> ~/.bashrc
129
```
Maxime Perrotin's avatar
Maxime Perrotin committed
130

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

Maxime Perrotin's avatar
Maxime Perrotin committed
133
```bash
Maxime Perrotin's avatar
Maxime Perrotin committed
134
$ mono /opt/asn1scc/asn1.exe
Maxime Perrotin's avatar
Maxime Perrotin committed
135
```
Maxime Perrotin's avatar
Maxime Perrotin committed
136

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

139
140
141
```
$ git pull
$ make install    # alternatively:  pip3 install --user --upgrade . 
142
```
Maxime Perrotin's avatar
Maxime Perrotin committed
143

Will Binns's avatar
Will Binns committed
144
145
146
OpenGEODE Website
=================

147
148
A [web page](http://opengeode.net/) has been created with more information about
OpenGEODE.
Will Binns's avatar
Will Binns committed
149
150
151
152
153

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
154

Maxime Perrotin's avatar
Maxime Perrotin committed
155
156
157
Information and contact
=======================

Maxime Perrotin's avatar
Maxime Perrotin committed
158
For additional information please contact:
Maxime Perrotin's avatar
Maxime Perrotin committed
159
160
maxime (dot) perrotin (at) esa (dot) int

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

165
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
166
167
168
169

Licence
=======

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

173
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
174
The background pattern was downloaded from www.subtlepatterns.com
Maxime Perrotin's avatar
Maxime Perrotin committed
175
176
177

Changelog
=========
178
179
180
**3.2.3 (09/2020)
- Fix type checks when a type inherits another type with different constraints

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

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

189
190
**3.2.0 (07/2020)**
- Add basic support for state type/instance
Maxime Perrotin's avatar
Maxime Perrotin committed
191

192
**3.1.2 (07/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
193
- Reinforce syntax error checking and reporting
Maxime Perrotin's avatar
Maxime Perrotin committed
194

195
**3.1.1 (07/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
196
197
- 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
198

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

206
**3.0.9 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
207
- Minor fixes in C backend related to case sensitivity
Maxime Perrotin's avatar
Maxime Perrotin committed
208

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

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

217
**3.0.6 (06/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
218
- Fix CONNECT symbol
Maxime Perrotin's avatar
Maxime Perrotin committed
219

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

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

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

230
**3.0.2 (05/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
231
- Fix API change in Pyside2
Maxime Perrotin's avatar
Maxime Perrotin committed
232

233
**3.0.1 (05/2020)**
Maxime Perrotin's avatar
Maxime Perrotin committed
234
- Improve generated Makefile/gpr project file
Maxime Perrotin's avatar
Maxime Perrotin committed
235

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

241
**2.1.5 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
242
- Fix unicode issues
Maxime Perrotin's avatar
Maxime Perrotin committed
243

244
**2.1.4 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
245
- Improve code generated for simulation
Maxime Perrotin's avatar
Maxime Perrotin committed
246

247
**2.1.3 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
248
- Improve statechart rendering (in particular with nested states)
Maxime Perrotin's avatar
Maxime Perrotin committed
249

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

253
**2.1.1 (10/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
254
- Create cache folder if it was missing
255

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

265
**2.0.44 (09/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
266
- Fix case issue when used combined with kazoo
267

268
**2.0.43 (05/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
269
- Better handling of path in generated gpr files
270

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

274
**2.0.41 (05/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
275
- Add --taste flag to target taste integration with kazoo
276

277
**2.0.40 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
278
- Improve generated gpr file
Maxime Perrotin's avatar
Maxime Perrotin committed
279

280
**2.0.39 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
281
282
- Fix append operator when using substrings
- Fix unicode issue
Maxime Perrotin's avatar
Maxime Perrotin committed
283

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

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

291
**2.0.36 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
292
- Fix unicode issue in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
293

294
**2.0.35 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
295
- Add helper when editing text (update data dictionary selection)
Maxime Perrotin's avatar
Maxime Perrotin committed
296

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

303
**2.0.33 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
304
- Fix unicode issue in Ada backend when using substrings
Maxime Perrotin's avatar
Maxime Perrotin committed
305

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

309
**2.0.31 (04/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
310
311
- 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
312

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

316
**2.0.29 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
317
- Fix range computations and modulo operator
318

319
**2.0.28 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
320
- Fix saving issue on new non-taste models
Maxime Perrotin's avatar
Maxime Perrotin committed
321

322
**2.0.27 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
323
- Fix type checking when using substrings
Maxime Perrotin's avatar
Maxime Perrotin committed
324

325
**2.0.26 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
326
- minor bugfix with underscore/dash confusion
Maxime Perrotin's avatar
Maxime Perrotin committed
327

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

331
**2.0.24 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
332
- Add choice_to_int operator
333

334
**2.0.23 (03/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
335
- Add basic support for NEWTYPE definitions
Maxime Perrotin's avatar
Maxime Perrotin committed
336

337
**2.0.22 (02/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
338
- Generate GPR files to ease the build using gprbuild
Maxime Perrotin's avatar
Maxime Perrotin committed
339

340
**2.0.21 (02/2019)**
Maxime Perrotin's avatar
Maxime Perrotin committed
341
- Fix regression in simulation build script
Maxime Perrotin's avatar
Maxime Perrotin committed
342

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

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

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

358
**2.0.17 (09/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
359
- Fix type checking of the "power" operator
360

361
**2.0.16 (07/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
362
- Added interaction with system clipboard (basic for floating items)
363

364
**2.0.15 (07/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
365
- Fix many bugs in type checking system
Maxime Perrotin's avatar
Maxime Perrotin committed
366

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

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

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

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

387
**2.0.8 (05/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
388
- Minor bugfix
389

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

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

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

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

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

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

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

417
**2.0.0 (02/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
418
419
- 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
420

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

425
**1.5.43 (01/2018)**
Maxime Perrotin's avatar
Maxime Perrotin committed
426
- Add preliminary compatibility with asn1scc v4
427

428
**1.5.42 (10/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
429
430
- Fix case issue with process types
- Remove submodules
431

432
**1.5.40 (07/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
433
- Fix range check in arrays
Maxime Perrotin's avatar
Maxime Perrotin committed
434

435
**1.5.39 (07/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
436
- Minor fix in testcase Makefile
437

438
**1.5.38 (06/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
439
- Fix unicode issue in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
440

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

444
**1.5.36 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
445
- Fix Unicode issues in Ada backend
Maxime Perrotin's avatar
Maxime Perrotin committed
446

447
**1.5.35 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
448
- Fix FOR LOOPS code generation
Maxime Perrotin's avatar
Maxime Perrotin committed
449

450
**1.5.34 (05/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
451
- Fix statechart message selection box
452

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

457
**1.5.32 (04/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
458
459
460
- 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
461

462
**1.5.28 (03/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
463
- Added preliminary support for PROCESS TYPE and instances
Maxime Perrotin's avatar
Maxime Perrotin committed
464

465
**1.5.26 (02/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
466
- Statecharts can be configured to filter out signals
Maxime Perrotin's avatar
Maxime Perrotin committed
467

468
**1.5.25 (01/2017)**
Maxime Perrotin's avatar
Maxime Perrotin committed
469
- Ada backend generates aliased context (used for model checking)
470

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

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

478
**1.5.22 (12/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
479
- Simulation function save/restore context fix
480

481
**1.5.21 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
482
483
- 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
484

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

493
**1.5.19 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
494
- Fix integer cast in Ada
495

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

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

502
**1.5.16 (11/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
503
- Fix minor indentation issue when saving
Maxime Perrotin's avatar
Maxime Perrotin committed
504

505
**1.5.15 (10/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
506
- Report incomplete startup transitions as errors in nested states
507

508
**1.5.14 (10/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
509
- Support named integers (requires asn1scc 3.3.04 or more recent)
Maxime Perrotin's avatar
Maxime Perrotin committed
510

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

517
**1.5.12 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
518
- Detect duplicate declaration of procedures
Maxime Perrotin's avatar
Maxime Perrotin committed
519

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

523
**1.5.10 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
524
- readonly mode with more restrictions
525

526
**1.5.9 (09/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
527
- Added --readonly command line to restrict process modifications
528

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

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

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

546
**1.5.4 (08/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
547
- Various GUI improvements
Maxime Perrotin's avatar
Maxime Perrotin committed
548

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

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

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

562
**1.4.4 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
563
- Minor bugfix in Ada backend to support typeless systems
564

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

568
**1.4.2 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
569
- Reload / render properly priority of continuous signals
570

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

576
**1.3.28 (06/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
577
- Excluded states (with *(statelist) ) were case sensitive
Maxime Perrotin's avatar
Maxime Perrotin committed
578

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

583
**1.3.26 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
584
- Fix parser issues with negative expressions
585

586
**1.3.25 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
587
- Fix reporting of syntax errors in state aggregations
588

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

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

597
**1.3.20 (05/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
598
- Improve simulator interface
Maxime Perrotin's avatar
Maxime Perrotin committed
599

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

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

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

613
**1.3.16 (03/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
614
- Bugfix in testing aggregation states in the GUI
Maxime Perrotin's avatar
Maxime Perrotin committed
615

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

620
**1.3.14**
Maxime Perrotin's avatar
Maxime Perrotin committed
621
- Minor bugfix with command line handling
622

623
**1.3.13**
Maxime Perrotin's avatar
Maxime Perrotin committed
624
- Bugfix in rendering of Continuous signals
625

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

631
**1.3.11**
Maxime Perrotin's avatar
Maxime Perrotin committed
632
- Parser is more tolerant to incomplete systems
Maxime Perrotin's avatar
Maxime Perrotin committed
633

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

639
**1.3.8 (01/2016)**
Maxime Perrotin's avatar
Maxime Perrotin committed
640
- Fix logging when LLVM is not installed
641

642
**1.3.7 (12/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
643
- Added icon to use Continuous Signals from the GUI
Maxime Perrotin's avatar
Maxime Perrotin committed
644

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

650
**1.3.5 (11/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
651
- Better support for continous signals
652

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

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

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

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

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

677
**1.1.1 (07/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
678
679
- 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
680

681
**1.1.0 (07/2015)**
Maxime Perrotin's avatar
Maxime Perrotin committed
682
- Write/Writeln procedure support enumerated types
683

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

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

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

698
**0.994 (07/2014)**
Maxime Perrotin's avatar
Maxime Perrotin committed
699
- Maintenance release, minor fixes
700

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

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

715
**0.98**
Maxime Perrotin's avatar
Maxime Perrotin committed
716
717
718
719
720
- 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
721

722
**0.97**
Maxime Perrotin's avatar
Maxime Perrotin committed
723
724
725
- 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
726