1191 Commits (f864d10095ea3782908dfc63f9e74dfaafbf4a08)
 

Author SHA1 Message Date
jeltz f864d10095
Update async example
The new example is more useful because it involves a memory.
4 years ago
jeltz 622a55ed81
Use _local_out variable for _async_step method 4 years ago
jeltz e0fd48562b
Add argument for out variable name 4 years ago
jeltz c36ab43ab1
WIP: Add _async_step method
Copy functions are called, but the body doesn't use the good variable
names.
4 years ago
jeltz 34902b58f0
Add basic copy functions
Warning: These functions are not yet atomic.
4 years ago
jeltz 5376d9993e
Add _in struct for async 4 years ago
jeltz fdee5b68c0
WIP: Add MstepAsync method to ObC 4 years ago
jeltz 53cc7a739f
Add an example of the async keyword 4 years ago
jeltz efd6bebf91
Add basic Easync support to heptagon/*
Warning: While the project compiles, async code is not yet generated.
4 years ago
jeltz df3238cd52
Add Easync to MiniLustre (cont.) 4 years ago
jeltz 85d06d6d56
Add Easync to MiniLustre 4 years ago
jeltz a1390a5dae
Add an alias for ack_name type 4 years ago
jeltz 9447e3566f
Handle Easync in heptagon/*
Warning: The code still doesn't compile.
4 years ago
jeltz 830f8e4bfa
Add async call syntax to the parser
Warning: The code doesn't compile at this stage.
4 years ago
Gwenaël Delaval 67abb99502 Merge branch 'generate-types-file' into 'master'
C backend: generate A_types.{h,c} when compiling A.epi

See merge request synchrone/heptagon!4
5 years ago
Gwenaël Delaval 91dd7af1a0 Merge branch 'web-update' into 'master'
Point to gitlab repo

See merge request synchrone/heptagon!3
5 years ago
Adrien Guatto 54cbec9190 C backend: generate A_types.{h,c} when compiling A.epi
Before this commit, the C backend would put the translated definitions
of an interface file A.epi into A.{h,c}. This is inconsistent with the
C code generated for source files, which expects to find A_types.{h,c}.
5 years ago
Adrien Guatto f05c20aba9 web: point to gitlab repo 5 years ago
Gwenaël Delaval 239e23211f Remove test t20.ept 6 years ago
Gwenaël Delaval a304a9003b Merge branch 'fix_boolop' into 'master'
Fix miscompilation of Pervasives.xor to C

See merge request gdelaval/heptagon!1
6 years ago
Gwenaël Delaval 89eddd77c4 Add test for xor operator 6 years ago
Gwenaël Delaval d2234e64d8 Merge branch 'fix_heptc_script' into 'master'
Remove broken Python bit from heptc script

See merge request gdelaval/heptagon!2
6 years ago
Adrien Guatto 0435a2420d Fix miscompilation of Pervasives.xor to C 6 years ago
Adrien Guatto 99460e24e5 Remove broken Python bit from heptc script 6 years ago
Gwenaël Delaval e0d1900f3a Version 1.05.00
- Option -simple-scheduler active for scheduling post-ctrln code generation
 - Handle implication operator in Sigali backend
 - Compatibility with reatk >= 0.14
6 years ago
Gwenaël Delaval b51c292231 Allow use of simple scheduler after control synthesis code generation
The -simple-scheduler option now imply the use of simple scheduler
both before and after control synthesis code generation.
6 years ago
Nicolas Berthier 7abe92dc0d Adapt to new interface of reatk.ctrlNbac (≥ 0.14) 6 years ago
Nicolas Berthier 8872bb3998 Do not remove sub-directories in `Compiler_utils.clean_dir' 6 years ago
Nicolas Berthier 95bb1a72ad Handle implication operator in Sigali backend 6 years ago
Gwenaël Delaval 95c9eb699b Version 1.04.00 7 years ago
Gwenaël Delaval 24469c9ae1 Update .gitignore 7 years ago
Timothy Bourke 63289fe9f6 Allow semicolons after tel's 7 years ago
Timothy Bourke fa4aaee865 Typedef for real in C target 7 years ago
Timothy Bourke 94badc5f01 Add an abbreviation for the 'real' type 7 years ago
Timothy Bourke 0747494c7a Fix line counting. Ignore kind2 property comments 7 years ago
Timothy Bourke abfc038b6b Accept single line "--" comments 7 years ago
Timothy Bourke 2d9fb52bec Fix a mistake in new when patterns 7 years ago
Timothy Bourke 4dadf6b4d6 Enforce well-formedness of clocks
For a clock (ck on x) to be well-formed in an environment H, we must
have H x = ck, i.e., the clock of x is the same as the clock ck of the
stream being sampled.

This constraint is guaranteed by construction for fully inferred clocks
(by the rules for when and merge), but nothing guarantees that user
declarations be well-formed. This can lead to problems.

For instance, this invalid program is incorrectly accepted:

    node f (x : bool; a : bool :: . on b;
		      b : bool :: . on a) returns (y:bool);
    let
	y = true;
    tel

as is this one:

    node f(a: bool :: . on a; b: bool :: . on a)
    returns (z: bool);
    var w : bool;
    let
	w = a when b;
	z = false fby w;
    tel

This invalid program is incorrectly accepted and leads to an internal
compiler error:

    node f (x : bool) returns (y:bool);
    var a : bool :: . on b;
	b : bool :: . on a;
    let
	y = true;
	a = true;
	b = true;
    tel

This patch enforces the well-formedness constraint. It gives a sensible
error message when the constraint cannot be satisfied.
7 years ago
Timothy Bourke cae38d0e60 Accept when-syntax for declaring clocks
The parameter or local declaration:
    x : bool :: . on y

Can now be made using the 'standard' Lustre syntax:
    x : bool when y

In this case, the translation gives x the clock:
    'a on y

and relies on the (MiniLS) Clocking pass to instantiate the fresh clock
variables.
7 years ago
Timothy Bourke 0ef0ac5529 Allow "and" as a synonym for "&" 7 years ago
Timothy Bourke 3d75602a0d Accept "e when not x" for "e whenot x" 7 years ago
Timothy Bourke 9de1a96843 Allow (optional) semicolon after returns clause 7 years ago
Timothy Bourke 685c3aa862 Accept .lus file extension 7 years ago
Timothy Bourke 66da5f4b5c Minor fix to Merlin improvements. 7 years ago
Timothy Bourke f8afddd0d9 Work better with merlin 7 years ago
Nicolas Berthier 100c08ee36 Bug correction in normalization of merge: fix propagation of type annotations
Minils.CtrlNbacGen relies on such type annotations to generat
Controllable-Nbac nodes.  This fix allows the use of ReaX to enforce
contracts of nodes involving merge operations on tuples over multiple
data types, such as:

  (a, b) = merge c
           (true -> ((true when c), (0 when c)))
           (false -> ((false whenot c), (2 whenot c)));

This kind of code previously led to erroneous Controllable-Nbac code.
7 years ago
Nicolas Berthier 15b2c09425 Adapt to new interface of reatk.ctrlNbac (≥ 0.11) 7 years ago
Gwenaël Delaval 4274b21733 Version 1.03.04 7 years ago
Gwenaël Delaval b942f456ed "Last" pass bug correction 7 years ago
Gwenaël Delaval 35bce1d5e8 Added simple scheduler with -simple-scheduler option
Scheduler_simple module: simplest possible scheduler, with
only topological sort and without any "smart" algo/heuristic.
7 years ago