Commit graph

118 commits

Author SHA1 Message Date
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
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
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
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
03608451c4 Use invalid_type 2010-07-20 09:34:11 +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
336b6eac00 Simplify a little Mls2obc
We don't need to return the memory vars as they
are already computed
2010-07-16 09:58:56 +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
Léonard Gérard
57b1405731 Basic clocking port. 2010-07-15 16:20:46 +02:00