Dépôt Heptagon avec modifications pour asynchrone
Find a file
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.
2017-09-29 00:08:42 +02:00
compiler Enforce well-formedness of clocks 2017-09-29 00:08:42 +02:00
examples Logico-numerical DCS example 2017-03-16 11:59:47 +01:00
lib Added operator (=>) in Pervasives module 2016-06-25 08:37:47 +02:00
m4 Small corrections + missing files 2011-10-20 18:12:06 +02:00
manual User manual update 2017-05-23 22:04:46 +02:00
test Tests addition 2017-05-23 22:10:39 +02:00
tools Added bzreax script ; added uninstall target in Makefiles 2015-02-27 15:50:21 +01:00
web User manual update 2017-05-23 22:04:46 +02:00
.gitignore Optional compilation of Controllable-Nbac-related modules and tools. 2014-10-21 15:41:40 +02:00
aclocal.m4 Added a build system for Heptagon 2011-10-20 18:06:41 +02:00
CHANGES Version 1.03.04 2017-05-24 01:19:55 +02:00
clean_heptc stronger heptc and clean_heptc 2011-11-21 03:26:13 +01:00
config.in New configure script options to enable/disable byte/native targets 2015-09-21 18:53:52 +02:00
configure New configure script options to enable/disable byte/native targets 2015-09-21 18:53:52 +02:00
configure.in Adapt to new interface of reatk.ctrlNbac (≥ 0.11) 2017-09-20 16:47:17 +01:00
COPYING Headers and license file for GPL 2012-06-27 18:14:29 +02:00
CTestConfig.cmake Tests with ctest 2012-07-16 01:03:37 +02:00
CTestScript.cmake Tests with ctest 2012-07-16 01:03:37 +02:00
CTestTestfile.cmake Tests with ctest 2012-07-16 01:03:37 +02:00
heptc Requalify enumeration types only when exporintg to Controllable-Nbac. 2014-10-31 14:16:05 +01:00
install-sh Added missing file 2011-10-20 18:08:25 +02:00
Makefile New configure script options to enable/disable byte/native targets 2015-09-21 18:53:52 +02:00
Makefile-bin Corrected Makefile for binary distribution 2013-11-04 11:52:46 +01:00
Makefile-distrib Version 1.03.04 2017-05-24 01:19:55 +02:00
README_CODER.txt Add a readme for coders. (should go when makefile) 2011-11-18 12:32:36 +01:00
todo.txt updated the todo.txt 2011-06-09 11:54:43 +02:00