Dépôt Heptagon avec modifications pour asynchrone
Find a file
Timothy Bourke 0b7eba8458 Add error for non-stateful decls. in pervasives
Attempts to compile a pervasives.epi containing functions with multiple
outputs or nodes now fail with an informative error message.

* The following files demonstrate the problem:

  pervasives.epi:
    type bool = true | false
    external val node test(bool;bool) returns bool

  broken.ept:
    node broken() returns (y : bool)
    let
      y = test(false, false);
    tel

  Running:
    heptc -nopervasives pervasives.epi
    heptc -stdlib . -target c broken.ept

  Fails with:

    ---------
    Internal compiler error
    Passe : Static evaluation failed of the pervasive operator test
    ----------
    Fatal error: exception Misc.Assert_false

* A different error occurs for nodes that return multiple outputs:

  pervasives.epi:
    type bool = true | false
    external val node test(bool;bool) returns (bool;bool)

  broken.ept:
    node broken() returns (y : bool)
    var l1 : bool;
    let
      (y,l1) = test(false, false);
    tel

  Running:
    heptc -nopervasives pervasives.epi
    heptc -stdlib . broken.ept

  Gives:
    Inconsistent clock annotation for exp test(false, false).
    File "broken.ept", line 4, characters 11-29:
    >  (y,l1) = test(false, false);
    >           ^^^^^^^^^^^^^^^^^^
    Clock Clash: this expression has clock 'a3,
    but is expected to have clock ('a4 * 'a5).

  The name "test" is parsed as an Eextvalue (rather than an Eapp), and there
  is an implicit assumption in compiler/minils/analysis/clocking.ml that such
  values have a simple clock.
2016-04-26 16:34:26 +02:00
compiler Add error for non-stateful decls. in pervasives 2016-04-26 16:34:26 +02:00
examples Update of example Extern_C 2015-09-17 17:20:31 +02:00
lib Math module 2015-09-17 16:51:24 +02:00
m4 Small corrections + missing files 2011-10-20 18:12:06 +02:00
manual Manual: control structures (present, reset) 2016-02-16 17:18:17 +01:00
test Adding tests 2015-09-04 17:33:49 +02:00
tools Added bzreax script ; added uninstall target in Makefiles 2015-02-27 15:50:21 +01:00
web Updated heptagon manual for web 2016-02-16 17:58:41 +01: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.02.00 2015-12-13 22:38:24 +01: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 New configure script options to enable/disable byte/native targets 2015-09-21 18:53:52 +02: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.00 2016-01-18 17:43:25 +01: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