Cédric Pasteur
cf34234ed5
Fixed linear typing of iterators
2011-05-25 09:12:13 +02:00
Cédric Pasteur
6c9d9e90d1
Linearity annotations in the AST
2011-05-25 09:12:13 +02:00
Cédric Pasteur
1059329c0e
Interference compiles
2011-05-25 09:12:11 +02:00
Cédric Pasteur
7787428f34
Compile fixes
2011-05-25 09:12:10 +02:00
Cédric Pasteur
3ee0e5e7b4
First version of interference.ml
2011-05-25 09:12:10 +02:00
Léonard Gérard
9fa8e7e6ff
mk_equation in hept computes the stateful field.
2011-04-29 15:04:47 +02:00
Léonard Gérard
d6240e1c67
100 and java scalarized
2011-04-19 18:45:56 +02:00
Leonard Gerard
8da5ce4648
no order in declarations
2011-04-18 19:20:35 +02:00
Leonard Gerard
c0602c6df6
etuple removed
2011-04-18 16:09:07 +02:00
Léonard Gérard
5d2f7dfa85
jeudi soir. still on mls2obc.
2011-04-14 20:14:21 +02:00
Cédric Pasteur
611c94bbbd
Itfusion moved to heptagon
2011-04-13 15:10:15 +02:00
Cédric Pasteur
cbf92beba2
First try at a normalization in Heptagon
...
I can't see if it compiles yet
2011-04-13 14:40:06 +02:00
Cédric Pasteur
2c7b609d2e
Forme normale Minils
2011-04-12 14:07:05 +02:00
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
2011-03-22 22:12:59 +01:00
Cédric Pasteur
99eeacbceb
Added mapi iterator
...
The last argument of the iterated function is the
index of the element in the array.
2011-03-22 09:28:41 +01:00
Léonard Gérard
b8b16a7355
blop
2011-03-21 17:41:00 +01:00
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])
2011-03-21 17:22:03 +01:00
Léonard Gérard
cab8bb706e
backport from async.
2011-03-09 00:06:36 +01:00
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.
2011-02-07 14:24:17 +01:00
Léonard Gérard
315527231c
Async in Heptagon Minils Obc.
2011-01-24 16:09:27 +01:00
Léonard Gérard
d265d7a89b
Minimize created exps with invalid_type.
2011-01-12 13:39:21 +01:00
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.
2010-12-15 11:26:29 +01:00
Léonard Gérard
82caa5a83d
Adding a base clock in the Hept AST.
2010-12-10 00:39:25 +01:00
Léonard Gérard
9a69c30dc5
Clock annotation in Hept AST
2010-12-10 00:39:25 +01:00
Gwenal Delaval
ed2642f847
Added controllables in every pass
2010-12-08 17:32:24 +01:00
gwenael delaval
4d5cc091d7
Add "with" syntax
...
Add with syntax on AST, parsetrees, parsers and printers
2010-12-06 18:24:04 +01:00
Léonard Gérard
7013a01f83
clock fix.
2010-11-04 18:08:40 +01:00
Cédric Pasteur
cae8d39f3d
Renamed exp_ty label to ty for consistency
2010-09-14 17:14:27 +02:00
Léonard Gérard
a54e570d0f
Hept Scoping should be ok and documented,
...
Hept Parsing too,
all the reset to review carefully,
Typing to cut from all the scoping.
2010-09-09 19:48:20 +02:00
Léonard Gérard
15448fdff9
mlsc and mls_parsetree etc.
2010-09-07 16:32:08 +02:00
Cédric Pasteur
ffff23b675
Remove Elambda
...
Replace Elambda with a central repository of
anonymous nodes. It made the AST unnecessarily
complex.
2010-09-06 14:03:47 +02:00
Léonard Gérard
9eaafe9736
replaced mapfold with callgraph_mapfold. And the fixes to compile.
2010-08-26 13:55:29 +02:00
Adrien Guatto
4c909ee39d
Fixed erroneous doc for Eupdate
2010-08-19 12:39:32 +02:00
Cédric Pasteur
221eea1644
Added polymorphic (=) and (<>) operators
...
These two operators really need to be polymorphic,
so they cannot be in Pervasives. a <> b is translated
to not (a = b>) at parsing.
2010-07-27 17:16:49 +02:00
Cédric Pasteur
02dd7fa124
Added alias for types (aka typedef)
...
For instance:
type metres = int
type metres = MyLib.longueur
type matrice = metres^10^100
Code generation in C (with typedef) included. The
code uses the aliases for traceability.
2010-07-27 09:23:16 +02:00
Cédric Pasteur
a081f2dacf
Added foldi iterator
...
Same as fold but the iterated function takes an
integer as the last but one argument.
This is not something that is necessarily
important to have in trunk but the patch is so
small that it doesn't hurt.
2010-07-26 09:33:22 +02:00
Léonard Gérard
dc9bec28bf
Clock refactoring.
2010-07-23 22:13:03 +02:00
Léonard Gérard
f124bb4fd7
Refactoring Ident -> Idents ( uniform with Names etc )
2010-07-23 19:45:19 +02:00
Cédric Pasteur
dd660f4424
Added anonymous functions in Minils
...
- Added Elamba(inp, outp, eq_list) constructor. This
is necessary for iterator fusion.
- Refactored Mls2obc to allow to generate code
for anonymous functions (basically we have to
remember if we are within an iterator, as there is
no nesting of iterators)
There is a known problem with the local vars defined in
the anonymous function that needs to be declared.
2010-07-21 17:15:19 +02:00
Cédric Pasteur
03608451c4
Use invalid_type
2010-07-20 09:34:11 +02:00
Cédric Pasteur
4f9d6b2d82
Added v_loc in Minils too
2010-07-15 10:02:42 +02:00
Cédric Pasteur
ee767064b1
Instantiation of parametrized nodes (v2)
...
- Many changes to make Hept2mls, mls2obc, etc
compile with the api changes
- Added Callgraph_mapfold: starting from a main
program, generates the list of instances of each
node necessary and creates them.
- Mls2seq deals with giving to the code generators
the correct source (mls or obc, wit or without
static parameters)
It is now possible to use parametrized nodes that
are defined in other files. For that to work, the
first file has to be compiled to an object file:
heptc -c mylib.ept
which creates a mylib.epo file. Compiling the main
file will then generate all the instances of
parametrized nodes from the lib (only the called
nodes will be compiled, but all the nodes in the
main file are compiled).
2010-07-13 14:03:39 +02:00
Cédric Pasteur
e7bd251b35
Added Global_mapfold and Mls_mapfold
...
- Global_mapfold is used to iterate over types
defined in Types or Signature (the iterators
from Types were moved here)
- Mls_mapfold to iterate over Minils AST (we
do not iterate over clocks yet: is it useful ?)
2010-07-09 11:33:17 +02:00
Cédric Pasteur
b0a5a7f13e
Heptcheck compiles !!
2010-07-08 15:25:26 +02:00
Léonard Gérard
5baa30f7c1
Last refactor ? and hept_mapred shows in !
2010-07-08 15:22:26 +02:00
Léonard Gérard
5cc57cd3b0
Static_exps should be in types. field name of ops is a param.
2010-07-08 15:17:08 +02:00
Cédric Pasteur
037f9be664
Remove unused code
2010-07-08 15:16:27 +02:00
Léonard Gérard
3cc1652425
Minils and signature tweaked further.
2010-07-08 15:12:02 +02:00
Adrien Guatto
ed280669ec
Efields and Etuple are op
2010-07-08 15:04:57 +02:00
Léonard Gérard
d58e83a985
Proposition 1.
2010-07-08 15:04:57 +02:00