Adrien Guatto
6bdca86253
Comparison functions for types, clocks and minils expressions.
2010-09-30 21:39:53 +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
Léonard Gérard
6da5171e6a
Flatten arguments fix in cloking.
2010-09-27 18:16:00 +02:00
Léonard Gérard
8f0f0598de
Small comments.
2010-09-18 22:30:43 +02:00
Cédric Pasteur
db732621a1
Re enabled iterator fusion
...
Added an option to enable it (off by default)
2010-09-15 09:53:20 +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
3d02b85bd6
Fixed some non exhaustive pattern matchings
...
Added assert_n functions to decompose to get a
tuple from a list of known size, and assert_nmin
when the list has at least n elements.
2010-09-13 15:19:40 +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
ffdd378cec
Make sure the error is printed last
2010-09-13 10:10:40 +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
a58c729ae2
clocking tweak.
2010-09-13 01:18:45 +02:00
Léonard Gérard
cb86418cb3
Small callgraph todo.
2010-09-13 01:18:07 +02:00
Léonard Gérard
8a396074fa
Allow compilation without mls_parsing etc.
2010-09-10 17:10:06 +02:00
Cédric Pasteur
cc039ac42d
Make heptc compile
2010-09-10 14:29:13 +02:00
Léonard Gérard
1e5697b29a
Removed Interface since it's job is now done during the scoping.
...
Moved printing stuff to Global_printer.
2010-09-10 14:06:33 +02:00
Léonard Gérard
eda43043d5
bug fix in is_struct
2010-09-10 11:47:11 +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
Léonard Gérard
52f351b0d3
ast pretty finished
2010-09-07 16:28:01 +02:00
Léonard Gérard
f9b88a27b8
Small fixes to the compilation processes.
...
*Locations should be pretty damn good now.
*Mlsc is close to be up-to-date, still need a scoping pass etc (to be posted soon)
2010-09-07 16:28:01 +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
1cf00d305e
verbose printing on std_err...
2010-09-02 17:52:42 +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
30c786c06e
Some more clean up with formatter and so on.
2010-08-29 22:30:51 +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
64c44efad5
Cosmetic mls_printer changes.
2010-08-24 17:13:28 +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
Adrien Guatto
4c909ee39d
Fixed erroneous doc for Eupdate
2010-08-19 12:39:32 +02:00
Léonard Gérard
d5e9358315
Small mls_printer fixes : empty args should print "()".
2010-08-19 11:28:46 +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
74faffa423
Mls printing order fix ( const at top of program )
2010-08-17 23:30:26 +02:00
Léonard Gérard
64251c6298
Mls_mapfold fixes to iterate well on types.
2010-08-17 23:30:26 +02:00
Léonard Gérard
a3ac71174c
Static exp instantiation fix.
2010-08-17 23:30:26 +02:00
Adrien Guatto
9df3f8ec54
Print unfolded programs when in verbose mode.
2010-08-17 17:51:11 +02:00
Adrien Guatto
744565250e
Missing new-line for const pretty-printing in Mls_printer
2010-08-17 15:06:08 +02:00
Léonard Gérard
4b3c3ba8b5
Revert "Fixed problem in clocking" e3676d1e3c
...
Fixing the actual bug :
* static_exp should not be created without type
after or during the typing pass.
2010-08-03 22:38:42 +02:00
Léonard Gérard
418b961293
Small fixes to the compilation processes.
...
*Locations should be pretty damn good now.
*Mlsc is up to date, still need a scoping pass (to be posted soon)
2010-08-02 16:31:57 +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
c99e29ef74
Make sure to unalias type when checking for arrays
2010-07-28 09:53:16 +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
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
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