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
9998d7ea39
Added a unit type. Tunit.
2010-12-10 00:39:25 +01:00
Adrien Guatto
5c8e1a47fe
Tomato: stop trying to be smart about tuples
...
Removed Elimtuples module.
2010-11-10 15:46:32 +01:00
Adrien Guatto
6153d1f65f
Tomato: more readable generated identifiers.
...
When generating a new equation name for an equivalence class,
we now only use the names from the original program if possible.
2010-11-10 15:45:41 +01:00
Léonard Gérard
a22f7216f2
Added when and merge to heptagon. Need tests !
...
Clocking is still done in minils since it is way simpler.
2010-11-01 01:05:37 +01:00
Adrien Guatto
6ff8ed993f
Switched back to plain strings for some compiler options.
...
To be consistent or to be convenient, that is the question.
2010-10-04 00:35:12 +02:00
Adrien Guatto
4044d8a0a2
Automata minimization.
2010-09-30 21:52:32 +02:00
Adrien Guatto
1fd2f374ff
New misc functions, renamed make_list_compare to list_compare.
...
New functions fold_right_i and option_compare.
2010-09-30 19:24:41 +02:00
Cédric Pasteur
df12e081ae
Refactored Misc
...
Created two new files:
- utilities/global/compiler_options.ml: contains
the options that can be set using the cli
- utilities/global/errors.ml: contains global
errors definition
Misc now only contains helper functions that have
nothing to do with the ast or the compiler.
2010-09-15 09:38:52 +02: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
02db2ad6b4
Changed compile flags, and cleaned a bit.
...
Warn as error for partial match.
Warn for unused variables : added some TODO to check.
PS : I'll deal with callgraph which is doing things that Modules does.
2010-09-14 09:39:02 +02:00
Cédric Pasteur
d8dffe15d8
Fixed remainings non exhaustive patterns
...
Now the only shown warnings are the X type that
we don't care about
2010-09-13 16:02:33 +02:00
Cédric Pasteur
ecd3f0fbd8
Support tuple args in normalization
2010-09-13 11:37:50 +02:00
Cédric Pasteur
134c7a2498
Fix normalization of ^n operator
2010-09-13 11:23:52 +02:00
Cédric Pasteur
b6561c4a9f
Fixed bug in Callgraph
...
Only add new nodes to the environment.
2010-09-13 09:12:10 +02:00
Léonard Gérard
cb86418cb3
Small callgraph todo.
2010-09-13 01:18:07 +02:00
Cédric Pasteur
cc039ac42d
Make heptc compile
2010-09-10 14:29:13 +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
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
5c09abeb18
Revet last commit a5f89876c2
and gives the right fix.
...
Plus remove all the forbidden '\n', replaced with '@.' or '@\n' depending on context.
2010-09-01 14:40:31 +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
Léonard Gérard
aef39b8036
Callgraph_mapfold polished.
2010-08-24 17:30:19 +02:00
Léonard Gérard
9df4f625a2
Fixed location to use formatter instead of out_channel.
2010-08-24 17:29:00 +02:00
Léonard Gérard
c4a926f489
Correct Mapfold !! Or at least much more than before.
...
Still not sure whether the notion of main_nodes is correct.
A parametrized node not used right in the module gets removed.
Is that the wanted behaviour ?
2010-08-24 11:07:05 +02:00
Léonard Gérard
8570fe9407
Callgraph_mapfold fix.... not totally fixed... and it's still a big mess.
2010-08-17 23:30:27 +02:00
Léonard Gérard
a3ac71174c
Static exp instantiation fix.
2010-08-17 23:30:26 +02:00
Cédric Pasteur
8f4220e08d
Made Eupdate dynamic
...
Modifying an array with
[ a with [i] = v ]
should expected a dynamic (not static) value
for i (nothing happens if i is in the wrong range).
This is the same behaviour as in Scade and it is
useful eg to modify an array in a foldi.
2010-07-28 12:34:07 +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
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
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
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
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
9301ed0b09
Fixes for correct array literal C generation.
2010-07-19 15:16:14 +02:00
Cédric Pasteur
bcc994fb9f
No need to collect calls without params
...
There is no need to collect calls without parameters
as we only need the signature of the function and the code
will be generated when compiling the first file.
2010-07-16 14:35:42 +02:00
Cédric Pasteur
27d5790a20
Do not forget iterators at instantiation time either
2010-07-16 12:33:08 +02:00
Cédric Pasteur
7f4a0954bf
Also instantiate nodes called in iterators
2010-07-16 12:26:53 +02:00
Cédric Pasteur
66078effbd
Added support for tuples in normalize
...
- (v1, v2, ... ) fby (e1, e2, ...) is translated to
(v1 fby e1, v2 fby e2, ...)
This has made the code even more complex. This will
need to be refactored at some point.
2010-07-15 17:58:32 +02:00
Cédric Pasteur
f6d55712bc
Revert "Normalize small tweak."
...
This reverts commit eb39fcffec
.
This change is completely wrong (sorry Leonard ...)
2010-07-15 17:04:18 +02:00
Léonard Gérard
eb39fcffec
Normalize small tweak.
2010-07-15 16:21:07 +02:00
Cédric Pasteur
f6ffea710d
Comments for callgraph_mapfold
2010-07-15 11:31:48 +02:00
Cédric Pasteur
62e216314d
Fixed stupid bug
2010-07-15 09:37:20 +02:00
Cédric Pasteur
a188952ef6
Ported Normalize (not tested yet)
2010-07-15 09:27:51 +02:00
Léonard Gérard
c657ce8ecb
Schedule with the iterator and eqs/var_decs added in mapfold.
2010-07-14 03:45:38 +02:00
Léonard Gérard
57751992c0
Rebase done : Mls re-ported. Mls_mapfold and mls_utils updated.
2010-07-14 02:58:08 +02:00