Cédric Pasteur
ac8dce35dc
Added an example of how to import external functions
2010-07-27 11:12:33 +02:00
Cédric Pasteur
d3fea3aad3
Added test for alias types
2010-07-27 09:29:20 +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
947435f024
Do not forget to put qualified names for node calls
2010-07-26 16:23:21 +02:00
Cédric Pasteur
e3676d1e3c
Fixed problem in clocking
...
Tuple of consts should have one clock var per
element. Added a new function const_skeleton to
create this kind of clock.
2010-07-26 15:34:46 +02:00
Cédric Pasteur
aa61865b9e
Update names in code
2010-07-26 14:17:24 +02:00
Cédric Pasteur
f24e97fb87
Fixed bug in completion
...
This one was hard to find. The first version of
completion_mapfold used gather in all cases, so
we had to return Env.empty.
The new version does not use gather in the normal
iteration so we have to return the same defnames
as the one given in argument.
2010-07-26 14:16:21 +02:00
Cédric Pasteur
515f9489c4
Rename *_mapfold to regular names
2010-07-26 14:15:00 +02:00
Cédric Pasteur
a81dd0b2b4
Remove old version of files
2010-07-26 14:12:37 +02:00
Cédric Pasteur
db64b6302b
More refactoring in Typing
2010-07-26 12:06:02 +02:00
Cédric Pasteur
e098909086
Refactored build function
...
I am 99 % sure that this doesn't break anything.
2010-07-26 11:36:59 +02:00
Cédric Pasteur
aee247020b
Refactored Typing
...
Created a new pass named Statefull that checks
statefullness related issues.
This change allows to see easily what is done in
this pass, that was scattered all across Typing
2010-07-26 10:59:19 +02:00
Cédric Pasteur
6dda6ba226
Updated .gitignore
2010-07-26 09:40:31 +02:00
Cédric Pasteur
6c8a83f8c4
Added test for foldi
2010-07-26 09:34:29 +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
1719e2eb36
Fix bad clock expectation for static_exps.
2010-07-23 22:05:54 +02:00
Léonard Gérard
f124bb4fd7
Refactoring Ident -> Idents ( uniform with Names etc )
2010-07-23 19:45:19 +02:00
Adrien Guatto
e34ec2a229
Temporary fix.
2010-07-23 13:48:10 +02:00
Adrien Guatto
689a10a328
Cgen: $NODE_mem.h should not include itself.
2010-07-23 12:18:27 +02:00
Cédric Pasteur
b85f9ab456
Use a block in reset (instead of a list of eqs)
...
- Most transformation passes expect that list of
equations are always nested inside a block.
This fixes a problem with a duplication of
equations in Automata_mapfold.
2010-07-23 10:56:25 +02:00
Cédric Pasteur
89ceb8df76
Fixed duplicate declaration of local vars
2010-07-22 17:38:28 +02:00
Adrien Guatto
3160855158
Added missing syntax highlighting for arrays.
2010-07-22 12:21:37 +02:00
Adrien Guatto
7f91ffab53
Output MiniLS code before clocking when in verbose mode.
2010-07-22 11:12:58 +02:00
Adrien Guatto
b1944cf752
Documentation fix for Reset_mapfold
2010-07-22 11:12:58 +02:00
Cédric Pasteur
75774cc685
Refactoring
...
Directly create a obj_dec instead of storing a tuple.
2010-07-22 10:15:11 +02:00
Cédric Pasteur
0be31badae
Added some doc
...
I'm not sure if this is very clear but it's a start...
2010-07-22 10:01:40 +02:00
Cédric Pasteur
c12f1add0c
Keep params in Obc
...
Remember the parameters of the called node in the
parametrized version of Obc.
2010-07-22 09:44:57 +02:00
Cédric Pasteur
1be9f1c789
Fixed code generation for Elambda
...
- Added block notion in Obc
- Correct translation to C
2010-07-22 09:36:22 +02:00
Cédric Pasteur
4d52fe79ef
Compile fix
2010-07-22 09:22:50 +02:00
Cédric Pasteur
bbb8e2e286
Do not forget to normalize iterators
2010-07-21 17:20:19 +02:00
Cédric Pasteur
493f49fe04
Added iterator fusion
...
For now it only deals with maps but it can be
easily extended. See test/good/itfusion.ept for
examples of sequences that can be optimised.
2010-07-21 17:19:51 +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
b6459cdace
Obc_mapfold
...
Because I needed to iterate over Obc and it was
almost as easy to write the generic iterator.
2010-07-21 15:54:41 +02:00
Léonard Gérard
8df666b985
Removed temporarily clocking.
2010-07-21 15:40:55 +02:00
Léonard Gérard
5e737d0094
location change. Heptc works with menhir.
2010-07-21 15:15:57 +02:00
Cédric Pasteur
91aa437264
Check arity of static parameters
2010-07-20 11:35:48 +02:00
Cédric Pasteur
03608451c4
Use invalid_type
2010-07-20 09:34:11 +02:00
Cédric Pasteur
b2c88810c5
Make Heptagon API more uniform
...
Use a block instead of variable list + equation list
for contract and node.
The new program transformations based on the
mapfold iterator are now enabled by default.
2010-07-20 09:31:29 +02:00
Cédric Pasteur
e57c663f43
Do not forget to add created types
2010-07-20 09:17:19 +02:00
Adrien Guatto
4edc03c163
Mapfold_right for even nicer code.
2010-07-19 17:19:02 +02:00
Adrien Guatto
496919ff63
Yet Another Cosmetic Fix for normalization :-/
2010-07-19 16:57:47 +02:00
Adrien Guatto
54ada380a1
Cleaner normalization of iterators' arguments
2010-07-19 15:38:12 +02:00
Adrien Guatto
8d07052a0f
Inlining: warn when trying to inline iterators.
2010-07-19 15:22:57 +02:00
Adrien Guatto
9301ed0b09
Fixes for correct array literal C generation.
2010-07-19 15:16:14 +02:00
Adrien Guatto
3a0b1f9e16
New handy function for pretty-printing: wrap_print.
2010-07-19 15:13:56 +02:00
Adrien Guatto
d75f4f8901
Added an option for global inlining (-flatten).
2010-07-19 13:20:11 +02:00
Adrien Guatto
1d6df4ecb2
Inlining pass added. Use with -inline.
2010-07-19 12:02:29 +02:00
Adrien Guatto
2ccdf677f0
Reworded Heptagon mapfold introductory message.
2010-07-19 12:02:29 +02:00
Adrien Guatto
2a72628f20
Stricter mk_longname.
2010-07-19 12:02:29 +02:00