82 Commits (58086190eb03163873ce007fdce0441f6af0acb7)

Author SHA1 Message Date
Gwenaël Delaval 58086190eb Headers and license file for GPL
Headers for every source file (excluding examples), mentioning
authors, copyright and license (GPL)

COPYING file with GPLv3 content.
12 years ago
Gwenal Delaval bb0bc8bfe5 Added local assume/guarantee
Added local assume/guarantee in contracts.

No syntax associated to these local asume/guarantee: internal use only.
12 years ago
Léonard Gérard 8a78bc7d7d Add [external] in the signatures. fix callgraph acordingly. 12 years ago
Cédric Pasteur 2f993a602c Fixed base clock in code generation
Put the base clock inside the equation where it 
belongs.
13 years ago
Léonard Gérard c75236b688 miscs 13 years ago
Léonard Gérard f0cbbccc2a unsafe in minils node 13 years ago
Léonard Gérard b49c37f7bf Add ways to declare unsafe functions + unsafe fix 13 years ago
Cédric Pasteur 04b8853a1d Added a new reinit operator
It has type:
reinit: t at r * t -> t at r

It can be used to put a constant value in a 
location.
13 years ago
Adrien Guatto d0ed09c3e5 Ext-value inlining pass. 13 years ago
Cédric Pasteur 81947eca40 Made linearity field not optional
This helped solve a few bugs with linear types,
for instance when using automata.
The intermediate code is not well-typed (wrt to
linear types only), after the encoding of automata.
13 years ago
Cédric Pasteur 8cc879be7a Generate code from interface (.epi) files
It includes the definition of types, constants
and prototypes defined in the interface.
13 years ago
Gwenaël Delaval c57b71b6aa Merge branch 'bzr' into decade
- Added Boolean module (enum types to boolean vectors)
- Added Hept_clocking analysis, called before Boolean
- Added z3z target from minils (sigali format)
- Bug corrections in Normalize, Normalize_mem

Conflicts:
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/heptagon.ml
	compiler/heptagon/parsing/hept_parser.mly
	compiler/heptagon/parsing/hept_parsetree.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/main/hept2mls.ml
	compiler/main/heptc.ml
	compiler/main/mls2seq.ml
	compiler/minils/minils.ml
	compiler/minils/transformations/normalize_mem.ml
	test/check
13 years ago
Cédric Pasteur 7d95b95ed7 Merge branch 'memalloc' into decade
Conflicts:
	compiler/global/signature.ml
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/hept_printer.ml
	compiler/heptagon/hept_utils.ml
	compiler/heptagon/heptagon.ml
	compiler/heptagon/parsing/hept_parser.mly
	compiler/heptagon/parsing/hept_parsetree.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/heptagon/transformations/switch.ml
	compiler/main/hept2mls.ml
	compiler/minils/minils.ml
	compiler/minils/mls_printer.ml
	compiler/obc/c/cgen.ml
	compiler/obc/control.ml
	compiler/utilities/misc.mli
13 years ago
Brice Gelineau c70d34ec06 Preliminary version of multidimensional iterators. 13 years ago
Léonard Gérard 83b0182874 Merge branch 'clocked_inputs' into decade
Conflicts:
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/heptagon/parsing/hept_static_scoping.ml
	compiler/main/mls2obc.ml
	compiler/obc/c/cmain.ml
13 years ago
Léonard Gérard 108981c0eb Static constraints in the source. Equal removed
( = ) in pervasives is a stub, it will be typed in a polymorphic way.
This is necessary to have a simple way to transform exp into a static_exp
even when there is the = operator.
13 years ago
Brice Gelineau 938e8897b2 n-ary Sarray_power Earray_fill 13 years ago
Léonard Gérard fbfa6eda1a Add Ewhen to the minils ast, And clocking of iterators.
Ewhen is now the only case of possible recursion for minils exps.
This add was motivated by equations like :
(y,z) = f(x) when c
This equation to be correctly normalized in minils before needed :
y',z' = f(x)
y = y' when c
z = z' when c
But this new variables where needless since the final translation of when c
is the identity.
13 years ago
Leonard Gerard 88497a2da3 parsing clocks. 13 years ago
Leonard Gerard a8215c8083 compile ! nearly all tests passed. 13 years ago
Cédric Pasteur cf34234ed5 Fixed linear typing of iterators 13 years ago
Cédric Pasteur 6c9d9e90d1 Linearity annotations in the AST 13 years ago
Cédric Pasteur 1059329c0e Interference compiles 13 years ago
Cédric Pasteur 7787428f34 Compile fixes 13 years ago
Cédric Pasteur 3ee0e5e7b4 First version of interference.ml 13 years ago
Léonard Gérard 9fa8e7e6ff mk_equation in hept computes the stateful field. 13 years ago
Gwenal Delaval 8c4217ab83 Rebase bzr branch on old decade 13 years ago
Gwenaël Delaval 85bbe21d6c Sigali pass into compiler + added a_id field to applications
- Added "z3z" target language, calling sigali code generation

- a_id is application id, so as to identify node applications; added
to Minils AST. a_id is given on hept2mls pass.

This is needed for the controller execution from controller synthesis.
13 years ago
Léonard Gérard d6240e1c67 100 and java scalarized 13 years ago
Leonard Gerard 8da5ce4648 no order in declarations 13 years ago
Leonard Gerard c0602c6df6 etuple removed 13 years ago
Léonard Gérard 5d2f7dfa85 jeudi soir. still on mls2obc. 13 years ago
Cédric Pasteur 611c94bbbd Itfusion moved to heptagon 13 years ago
Cédric Pasteur cbf92beba2 First try at a normalization in Heptagon
I can't see if it compiles yet
13 years ago
Cédric Pasteur 2c7b609d2e Forme normale Minils 13 years ago
Cédric Pasteur 2fdf2855d3 Added a new truncated select operator
a[>e<] returns the element in the array at index
e, a[0] if e < 0 and a[n-1] if e >= n
13 years ago
Cédric Pasteur 99eeacbceb Added mapi iterator
The last argument of the iterated function is the
index of the element in the array.
13 years ago
Léonard Gérard b8b16a7355 blop 13 years ago
Cédric Pasteur b1b8e103f2 Added partial application for iterators
For instance:
  ... = map<<n>> (f<<se>>)((t1, t1'))(t2, t3)

is translated to:
  for(int i =...)
    ... = f(t1, t1', t2[i], t3[i])
13 years ago
Léonard Gérard cab8bb706e backport from async. 13 years ago
Léonard Gérard 8f4411e145 Recursives Qualnames.
In order to have a correct handling of inner classes in Java, and to prepare for modules inside modules.
14 years ago
Léonard Gérard 315527231c Async in Heptagon Minils Obc. 14 years ago
Léonard Gérard d265d7a89b Minimize created exps with invalid_type. 14 years ago
Léonard Gérard 2ae809c971 Fresh vars, and ident refactoring.
Idents.enter_node should be called when entering a node, it is done automagically by the mapfold unless you call directly Hept_mapfold.node_dec.
14 years ago
Léonard Gérard 82caa5a83d Adding a base clock in the Hept AST. 14 years ago
Léonard Gérard 9a69c30dc5 Clock annotation in Hept AST 14 years ago
Gwenal Delaval ed2642f847 Added controllables in every pass 14 years ago
gwenael delaval 4d5cc091d7 Add "with" syntax
Add with syntax on AST, parsetrees, parsers and printers
14 years ago
Léonard Gérard 7013a01f83 clock fix. 14 years ago
Cédric Pasteur cae8d39f3d Renamed exp_ty label to ty for consistency 14 years ago