Léonard Gérard
b8ee46d58f
fix normalize_mem
2011-04-27 14:29:21 +02:00
Adrien Guatto
00cb203dd9
Revert "C generation: fixed struct field name in step() call."
...
This reverts commit fc920d88ea
.
2011-04-27 14:02:50 +02:00
Adrien Guatto
fc920d88ea
C generation: fixed struct field name in step() call.
2011-04-27 11:53:44 +02:00
Cédric Pasteur
014bc19ab2
Fixed bug in init analysis
2011-04-26 12:43:03 +02:00
Cédric Pasteur
401aaeeb89
Type declarations should also be typed
...
This is necessary so that the static expressions
appearing in those types are correctly typed.
2011-04-21 16:29:24 +02:00
Léonard Gérard
6b86b86e9d
really fix normalize_mem.
...
in the old fix was missing the renaming, and there was wrong equations
order :
f () returns x
[here rename x by mem_x]
mem_x = fby ...
x = mem_x
so the simplest was :
f () returns out_x
var x;
[ nothing to do]
out_x = x
x = fby ...
pay attention to the order of equations since we are after the
scheduling..
probably it should be done before the scheduling anyway ?
2011-04-20 20:47:06 +02:00
Léonard Gérard
5fb518d8ed
Java bugfix
2011-04-20 17:33:50 +02:00
Léonard Gérard
73abbad1f9
small java module fix
2011-04-20 17:24:09 +02:00
Cédric Pasteur
2757e7c1bf
Fixed normalized_mem
...
It inverted the order of equations
2011-04-20 16:23:44 +02:00
Gwenal Delaval
8c4217ab83
Rebase bzr branch on old decade
2011-04-20 14:50:09 +02:00
Gwenaël Delaval
243fe4b4c7
Keyword "inlined" for nodes
...
Added a keyword "inlined": "inlined f(x)" is intended to
inline only this application. (not effective yet)
2011-04-20 12:47:29 +02:00
Gwenaël Delaval
85bbe21d6c
Sigali pass into compiler + added a_id field to applications
...
- Added "z3z" target language, calling sigali code generation
- a_id is application id, so as to identify node applications; added
to Minils AST. a_id is given on hept2mls pass.
This is needed for the controller execution from controller synthesis.
2011-04-20 12:47:28 +02:00
Gwenaël Delaval
da37fd8e58
Sigali code generation
...
Sigali AST and Sigalimain module for sigali code generation
from normalized and Boolean minils program
2011-04-20 12:28:38 +02:00
Gwenaël
ac9715ad90
Correction of Boolean pass
...
Correction of Boolean pass: correct translation of variable declarations,
including full clock translation (in two passes for variable declarations:
one to build the env, one for clock translation).
2011-04-20 12:28:38 +02:00
Gwenal Delaval
0f6ddb739b
Correction of Boolean pass
...
Corrections to handle modifications on AST
(fresh/gen_fresh on idents, Tunit type,
e_base_ck = Cbase everywhere)
2011-04-20 12:28:37 +02:00
Gwenal Delaval
4e267d82c6
Boolean transformation pass (translate every enumeration type to boolean tuples)
2011-04-20 12:28:37 +02:00
Léonard Gérard
d6240e1c67
100 and java scalarized
2011-04-19 18:45:56 +02:00
Cédric Pasteur
802178fb28
Added a pass to normalize memories
...
This adds a copy for outputs that are also
memories.
2011-04-19 17:19:40 +02:00
Cédric Pasteur
845d084658
Preserve the order of type and classes definitions
2011-04-19 13:08:35 +02:00
Cédric Pasteur
073ccc2603
Better handling of static arrays
2011-04-19 12:58:41 +02:00
Leonard Gerard
220db42076
java readded
2011-04-19 11:39:37 +02:00
Cédric Pasteur
740114764c
Fixed stupid bug in the order of args
2011-04-19 10:38:48 +02:00
Leonard Gerard
3618ccc8ed
parser fix
2011-04-19 10:14:19 +02:00
Cédric Pasteur
a2303ec7e1
Other compile fixes
...
The java backend is disabled temporarily
2011-04-19 09:49:00 +02:00
Cédric Pasteur
3c8fc39745
Fix C backend with new obc ast
2011-04-19 09:23:52 +02:00
Cédric Pasteur
028dfe0468
Fix for nested if and merge with tuples
2011-04-19 09:04:36 +02:00
Leonard Gerard
8da5ce4648
no order in declarations
2011-04-18 19:20:35 +02:00
Cédric Pasteur
03f0d5d89a
Fixed stupid bug #1
2011-04-18 17:14:50 +02:00
Leonard Gerard
c0602c6df6
etuple removed
2011-04-18 16:09:07 +02:00
Leonard Gerard
5c831db40b
removed warning 9
2011-04-18 15:47:25 +02:00
Cédric Pasteur
c6aa63b444
Heptc compiles again
...
AFor now expects expressions instead of static exps
2011-04-18 15:38:42 +02:00
Cédric Pasteur
c6991977a0
Missing case in normalize
...
Distribute also static tuples
2011-04-18 09:52:03 +02:00
Léonard Gérard
5d2f7dfa85
jeudi soir. still on mls2obc.
2011-04-14 20:14:21 +02:00
Cédric Pasteur
f57d7f1589
Correct translation for Eupdate and Eupdate_field
...
As the language is SSA, we should assign each
element only once.
2011-04-14 15:14:41 +02:00
Cédric Pasteur
c23b9256f0
Also forgot to re-enable scalarize
2011-04-14 14:18:24 +02:00
Cédric Pasteur
975418ffff
Missing part from last commit
2011-04-14 13:56:24 +02:00
Cédric Pasteur
57bc9f210b
Added a generic onfiguration for backends
...
Each backend gives a function used to
enable/disable passes, executed before the
beginning of the compilation
2011-04-14 13:53:30 +02:00
Cédric Pasteur
2f346f873c
Control optimization as a pass on Obc
...
There is now a obc_compiler.ml file, as in hept
and minils.
2011-04-14 11:53:39 +02:00
Cédric Pasteur
6f0c9af006
First port of mls2obc
...
Does not compile yet
2011-04-14 11:17:12 +02:00
Cédric Pasteur
e2e8a93656
Hept2mls ported and very simplified
...
Does not compile yet
2011-04-14 10:00:06 +02:00
Cédric Pasteur
d2c4f09aa2
Indentation fixes + remove unnecessary code
2011-04-14 10:00:06 +02:00
Léonard Gérard
12bd4e9c45
Types.
2011-04-14 09:23:38 +02:00
Cédric Pasteur
6adb45c3ad
Normalize in Heptagon compiles
2011-04-13 16:21:28 +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
Léonard Gérard
0fc0c3ba5b
Java main pretty print
2011-03-23 20:31:26 +01:00
Léonard Gérard
9714cf0be9
Java fix, initialization order
2011-03-23 18:24:25 +01:00
Léonard Gérard
46ed02416b
Convolutions and pip working.
2011-03-23 16:53:01 +01:00
Léonard Gérard
0aef6fcb5b
pattern_of_idx in right order.
...
Probably array_elt_of_exp is also wrong.
2011-03-23 16:52:32 +01: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
36061f4518
fixed tests to the new iterator syntax.
...
Changed (( and )) to (< and >) since it's very common to write )) !
2011-03-21 22:24:37 +01:00
Léonard Gérard
b913edcd5e
Decade alpha1
...
On the road to beta is the new Minils AST, for now :
* Heptagon and Obc AST changes,
* Java code generation,
* Recursives Qualnames,
* Various bug fixes,
* 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 22:24:36 +01:00
Léonard Gérard
6b720e6c23
Merge branch 'java'
...
Conflicts:
.gitignore
compiler/global/global_printer.ml
compiler/main/mls2obc.ml
2011-03-21 22:21:00 +01:00
Léonard Gérard
b8b16a7355
blop
2011-03-21 17:41:00 +01:00
Léonard Gérard
c602eca062
cgen todo.
2011-03-21 17:41:00 +01:00
Léonard Gérard
02730b8a0b
refactoring static evaluation.
2011-03-21 17:41:00 +01:00
Léonard Gérard
c96d05b1eb
updated todo and refactoring.
2011-03-21 17:40:59 +01:00
Léonard Gérard
ecc79c3a53
bug fix n-dimension arrays.
2011-03-21 17:40:59 +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
Cédric Pasteur
35775c4131
C backend ported to recent API changes in Obc
2011-03-09 09:46:00 +01:00
Léonard Gérard
cab8bb706e
backport from async.
2011-03-09 00:06:36 +01:00
Léonard Gérard
159bab2a55
async constants.
2011-03-08 13:41:28 +01:00
Léonard Gérard
688e0bce71
Bug fix in Typing.
2011-02-14 16:33:49 +01:00
Léonard Gérard
9631d9b311
Typing bug fix.
2011-02-14 16:28:50 +01:00
Léonard Gérard
86f743318b
Fixes and basic Java main.
2011-02-14 15:21:57 +01:00
Léonard Gérard
c677f76009
Fixes
2011-02-07 16:06:52 +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
Cédric Pasteur
51fea00808
Added TODOs
2011-02-04 12:45:58 +01:00
Léonard Gérard
09419a77a5
again
2011-01-24 16:09:28 +01:00
Léonard Gérard
df469db394
New Java backend closing
2011-01-24 16:09:28 +01:00
Léonard Gérard
fc08753bd9
tentative 1 de async dans C
2011-01-24 16:09:27 +01:00
Léonard Gérard
ed21462706
Add java to the compiling process.
2011-01-24 16:09:27 +01:00
Léonard Gérard
6c763f1eb8
tentative 1 de faire marcher java.
2011-01-24 16:09:27 +01:00
Léonard Gérard
e9e8ca382a
ml files imported from lucy v3
2011-01-24 16:09:27 +01:00
Léonard Gérard
315527231c
Async in Heptagon Minils Obc.
2011-01-24 16:09:27 +01:00
Cédric Pasteur
2b18fcab93
Generate C code for static records
...
This fixes the test t8.ept
2011-01-18 17:52:44 +01:00
Léonard Gérard
36ec30b3ff
Removed unused generic Mmethod in obc.
2011-01-12 13:41:14 +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
0768babab7
Removed brocken and useless mlsc, cleaned heptc.
2011-01-07 17:30:04 +01:00
Léonard Gérard
f3584601f0
Refactoring and todo.txt update.
2011-01-05 15:47:53 +01:00
Léonard Gérard
14f3c57d6a
Parsing a bit corrected...
2010-12-26 21:39:08 +01:00
Léonard Gérard
bb9d96e79d
Parse real blocks in resets.
2010-12-16 18:28:33 +01:00
Léonard Gérard
467f4b3250
Clearer compilation targets handling.
2010-12-16 16:52:23 +01:00
Léonard Gérard
67a541339f
refactoring [every].
2010-12-15 23:48:37 +01:00
Léonard Gérard
f238f39f4d
New reset pass, without switch !
2010-12-15 23:41:46 +01:00
Léonard Gérard
9e431c0cc7
remove TODO.
2010-12-15 18:35:45 +01:00
Léonard Gérard
e174151d37
Unclutter ident printing.
2010-12-15 11:27:19 +01:00
Léonard Gérard
ac6dab15ee
Switch removing.
2010-12-15 11:26:29 +01:00
Léonard Gérard
ac9f805446
Refactoring.
2010-12-15 11:26:29 +01:00
Léonard Gérard
7d3b6a4679
Bug fix Cgen
2010-12-15 11:26:29 +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
83feda2afb
And the awaited block.ml !
2010-12-10 16:46:36 +01:00
Cédric Pasteur
ee566aba50
Hept_parsetree_mapfold should also visit type_dec
...
This fixes a problem with test/good/type_alias.ept
and t8.ept.
2010-12-10 10:18:05 +01:00
Léonard Gérard
b85691be35
Bug fix in reset, loosing equations.
2010-12-10 00:42:49 +01:00
Léonard Gérard
e39a0484ff
Add 'block' to Heptagon.
2010-12-10 00:42:49 +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
5a62ca5335
Fix typing
...
defnames were not rightly handled in [reset] blocks
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
Léonard Gérard
9998d7ea39
Added a unit type. Tunit.
2010-12-10 00:39:25 +01:00
Gwenal Delaval
ed2642f847
Added controllables in every pass
2010-12-08 17:32:24 +01:00
Gwenal Delaval
b7cba3315a
Compiler option -nocaus
...
Added a compiler option de-activating causality analysis
2010-12-08 17:31:16 +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
Cédric Pasteur
0bb84532b9
Added a new static scoping pass
...
This pass transforms exps that should be static
to Econst se. The regular scoping then only has
to check this case.
The conversion is done in a single traversal of
the AST (unlike the old solution).
2010-11-20 17:39:24 +01:00
Cédric Pasteur
b5fb821a4c
Fix hept_parsetree_mpafold
...
It had never been used so it wasn't correct.
Added some missing cases.
2010-11-20 17:31:55 +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
Adrien Guatto
c7b83b7381
Fixed comparison functions which were blatantly wrong.
...
Previous versions weren't antisymmetric.
2010-11-10 15:45:41 +01:00
Léonard Gérard
684f3337f8
Removed unused arguments in mls2obc
2010-11-05 16:27:45 +01:00
Léonard Gérard
3e2fb0b4b1
Rename [lhs] to [pattern] in obc
...
lhs was verrrry bad.
2010-11-05 16:27:44 +01:00
Léonard Gérard
a273170a31
Allow "type t = A" instead of forcing "A | ..."
2010-11-04 18:10:20 +01:00
Léonard Gérard
f2bc010135
Much better error msg when typing merge and when.
2010-11-04 18:09:32 +01:00
Léonard Gérard
7013a01f83
clock fix.
2010-11-04 18:08:40 +01:00
Léonard Gérard
26b30b9bac
Small code comments.
2010-11-04 18:07:17 +01:00
Léonard Gérard
7b4f34a521
Cgen only stdbool.h booleans no more TRUE and FALSE.
2010-11-04 18:06:11 +01:00
Léonard Gérard
b57676eee3
Added 'when', 'merge' to the parsing and scoping.
2010-11-02 11:32:40 +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
Léonard Gérard
9414fdc5a8
Initialization with pretty errors.
2010-10-08 14:40:08 +02:00
Léonard Gérard
ea4ef2583b
Fix print location.
...
It was not respecting boxes by using a \n instead of a @\n.
2010-10-08 14:34:31 +02:00
Léonard Gérard
afcd53cebb
Initialization Small big bug fix.
2010-10-08 10:46:09 +02:00
Léonard Gérard
99cf52a10f
Initialization reworked. Old good tests are now bad ! (they were bad in fact).
2010-10-07 20:19:03 +02:00
Léonard Gérard
c47e371a11
assigned a TODO in obc.
2010-10-07 20:19:02 +02:00
Léonard Gérard
ff2b512600
Tidying typing up.
2010-10-07 20:19:02 +02: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
381e4e84f7
Csubst: added missing recursive call for array indexes.
2010-10-02 13:22:04 +02:00
Adrien Guatto
7b6690d443
Cgen: proper assignment from structs.
2010-10-02 13:19:21 +02:00
Adrien Guatto
0ce7b4efb0
Cgen: proper assignments from constant variables.
2010-10-02 13:17:12 +02:00
Adrien Guatto
412fd1f81b
New operator: modulo (written (%))!
2010-10-02 13:01:35 +02:00
Adrien Guatto
d57196bb24
Added missing error reporting during scoping pass.
2010-10-01 17:04:27 +02:00
Adrien Guatto
faf232ad64
Fixed silent error (missing @.)
2010-10-01 16:49:11 +02:00
Adrien Guatto
4044d8a0a2
Automata minimization.
2010-09-30 21:52:32 +02:00
Adrien Guatto
a4c3d9e856
Relevant command-line options are now stored as qualnames.
2010-09-30 21:40:04 +02:00
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
Adrien Guatto
3d860c3624
Idents: rename compare to ident_compare
2010-09-30 19:13:43 +02:00
Léonard Gérard
6da5171e6a
Flatten arguments fix in cloking.
2010-09-27 18:16:00 +02:00
Léonard Gérard
acdd480e0c
Suit up Hept_parsetree.
...
small changes and comments.
2010-09-20 23:31:49 +02:00
Léonard Gérard
8f0f0598de
Small comments.
2010-09-18 22:30:43 +02:00
Cédric Pasteur
77a9dde027
Fixed problem with stdlib
...
The preprocessor has to parse the compiler_options.ml
file now.
2010-09-15 10:27:53 +02:00
Cédric Pasteur
65f1a076d8
Re enable Initialization
...
That was easy to fix...
2010-09-15 09:58:35 +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
d913e1be89
Move options doc to the correct file
2010-09-15 09:43:28 +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
8dad10f39b
Port heptcheck to recent changes
2010-09-14 17:22:52 +02:00
Cédric Pasteur
6e5e7ec814
Fix numbers in error messages
2010-09-14 17:15:43 +02:00
Cédric Pasteur
cae8d39f3d
Renamed exp_ty label to ty for consistency
2010-09-14 17:14:27 +02:00
Cédric Pasteur
5e73f46f7e
Remove some unused code in Typing
2010-09-14 13:29: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
4a5c9130e7
Updated version of Hept_printer
...
The code is much clearer but it should print
mostly the same thing.
2010-09-13 17:04:13 +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
5aa83246ca
Use qualnames for types and fields in C
...
We need qualnames because we try to find types and
fields in the environment during the generation of
the code.
2010-09-13 15:20:25 +02:00
Cédric Pasteur
50223653a4
Do not forget to flush the output
...
The end of some header files was not printed.
2010-09-13 15:20:17 +02:00
Cédric Pasteur
1857cb7c47
Identifiers only need to be unique inside a node
2010-09-13 15:20:09 +02:00
Cédric Pasteur
0b5d1cd471
Do not print Pervasives
2010-09-13 15:20:01 +02:00
Cédric Pasteur
0b12e6a4ae
Enum in Obc should also be qualnames
2010-09-13 15:19:52 +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
Léonard Gérard
3a0429f93f
Merge branch 'qualified_ast'
...
Conflicts:
compiler/obc/c/cgen.ml
2010-09-13 12:50:10 +02:00
Léonard Gérard
412425301a
Added Sfield to differentiate from Sconstructor.
2010-09-13 12:05:10 +02:00
Léonard Gérard
d00ad67abb
unbound types and vars fixed.
2010-09-13 11:39:23 +02:00
Cédric Pasteur
ecd3f0fbd8
Support tuple args in normalization
2010-09-13 11:37:50 +02:00
Cédric Pasteur
cba5f4893e
Move cases for arrays operators
...
Only functions that modify si or j needs to be
in translate_equation. The others should be in
translate_act.
2010-09-13 11:23:52 +02:00
Cédric Pasteur
134c7a2498
Fix normalization of ^n operator
2010-09-13 11:23:52 +02:00
Cédric Pasteur
0e6eb98bf7
Do not add consts to env again
2010-09-13 11:23:52 +02:00
Léonard Gérard
e0e7bba733
Removed wrong sanity check in modules.
2010-09-13 11:06:42 +02:00
Cédric Pasteur
4cc18831b4
Remove useless code
2010-09-13 11:04:17 +02:00
Cédric Pasteur
cb521c9b68
Fix the (commented) code that prints an exp
2010-09-13 10:20:24 +02:00
Cédric Pasteur
a3e1d8a5f9
Make sure that idents have unique names
...
Make sure that Idents.name returns two different
strings for two different idents. This fixes a
problem with variables in two automaton states
with the same name (as shown by test/good/name_clash.ept).
2010-09-13 10:18: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
653de74a9d
Print qualnames with prefix in C code
...
A qualname is printed as Qual__name
2010-09-13 09:37:58 +02:00
Cédric Pasteur
5da49aa30d
Re enable typing
2010-09-13 09:36:45 +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
Cédric Pasteur
36addab3cc
Use qualnames in Obc too
2010-09-13 09:03:15 +02:00
Léonard Gérard
fd4d0942f4
Support tuples as args in Typing
...
Ported CP : 18e17a6fba37f9207937c9b60f0ad851c6e5b719
2010-09-13 01:21:35 +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
b5f6593e18
Useful debug printing function.
2010-09-13 01:17:31 +02:00
Léonard Gérard
d20a77e181
Removed one nasty bug in modules.ml
2010-09-13 01:14:03 +02:00
Léonard Gérard
937d1f580b
Add Warning when encountering not typed expression when cloking.
2010-09-12 23:58:21 +02:00
Léonard Gérard
a72ab6fa08
Removed debug g_env printing.
2010-09-12 23:55:54 +02:00
Cédric Pasteur
0fa3d1efb1
Fixed problem in Typing
2010-09-10 17:24:02 +02:00
Léonard Gérard
9cc3176771
Modules fixed... Pay $$$ attention to partial application and mutable fields.
2010-09-10 17:11:34 +02:00
Léonard Gérard
9ccb6db03f
Fix, see bugs. ( we probably want a pass to try to convert every exp to static_exp *)
2010-09-10 17:10:53 +02:00
Léonard Gérard
8a396074fa
Allow compilation without mls_parsing etc.
2010-09-10 17:10:06 +02:00
Léonard Gérard
44e7a84c00
Automata fixed.
2010-09-10 17:09:50 +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
Cédric Pasteur
f6fb5861ce
Make Typing compile
2010-09-10 13:59:38 +02:00
Cédric Pasteur
1d1f398e8a
First try at updating Typing
2010-09-10 13:42:45 +02:00
Cédric Pasteur
e4e429d3fc
Add the signature of a node during scoping
...
It was done for signature but not for node def
2010-09-10 13:41:23 +02:00
Léonard Gérard
43b8bc15b0
Some Cgen fixes.
2010-09-10 11:53:55 +02:00
Léonard Gérard
eda43043d5
bug fix in is_struct
2010-09-10 11:47:11 +02:00
Léonard Gérard
9cf0130512
Better scoping messages.
2010-09-10 11:46:50 +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
bbf5e85999
Mapfold for Hept_parsetree
2010-09-06 14:45:39 +02:00
Cédric Pasteur
88691354de
Remove useless code
2010-09-06 14:45:24 +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
Cédric Pasteur
2956e6feb4
Fix printing of arrays in C code
...
It should be
f(int a[5])
instead of
f(int *a)
because the second one does not scale for
multidimensional arrays, eg
g(int b[10][5]) is ok
but
g(int **b) is not.
2010-09-03 15:27:58 +02:00
Adrien Guatto
1d8f2f2a85
Removed useless code for old module handling in cgen.
2010-09-03 11:50:52 +02:00
Léonard Gérard
1cf00d305e
verbose printing on std_err...
2010-09-02 17:52:42 +02:00
Léonard Gérard
aad7b29c30
small print debugging tweaks.
2010-09-01 14:42:44 +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
Adrien Guatto
a5f89876c2
Fixed missing new-line in scoping/typing error reporting.
2010-08-31 18:15:51 +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
Adrien Guatto
288b0049e4
Improved Obc pretty-printer, still far from perfect.
2010-08-19 12:38:22 +02:00
Léonard Gérard
8bda39eae9
Correct error message with assert false for int_of_static_exp. And some indentation.
2010-08-19 11:28:47 +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
d2979fd4dd
Fixed bug in Sarray_power typing.
2010-08-17 15:26:19 +02:00
Adrien Guatto
fe1475a03e
Typing fix: type static exp initializing a last.
2010-08-17 15:06:08 +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
205fa71046
Automata file cleaned a bit, still needs documentation and good comments.
2010-08-15 20:22:18 +02:00
Adrien Guatto
6b87bb5ac0
Fixed confusion in mls2obc: concatenation should be handled at the
...
action level.
2010-08-04 15:36:20 +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
79c4e2a581
Print causality constraints in a human readable shape.
2010-08-02 16:32:40 +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
Adrien Guatto
e3a03806e4
Added missing boolean operator: XOR.
2010-08-02 16:14:35 +02:00
Adrien Guatto
41bad3d8c4
C backend: "bool" type mandates the inclusion of stdbool.h
2010-07-30 12:44:12 +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
3f0005dba1
Open modules during scoping
...
We need to open Modules during scoping so that
we can resolve consts given without a module name.
2010-07-28 10:44:32 +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
c2ebaec784
Correct normalization of Ctuple
...
It was not that hard, just had to stop and really
take the time to understand the problem...
2010-07-28 09:39:47 +02:00
Cédric Pasteur
ebc1f326b4
Fixed initialization of (=) operator
2010-07-28 09:39:47 +02:00
Cédric Pasteur
7945ef9eb8
Fixed a problem with simple_exp
...
This enables the parser to accept both
m.x.y
and (m.x).y
2010-07-28 09:39:47 +02:00
Adrien Guatto
d4f441ae19
Fixed missing control in node apps with resets.
2010-07-27 17:56:15 +02:00
Cédric Pasteur
627979534a
Generate correct call for operators
2010-07-27 17:48:21 +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
6d8556c63e
Added missing cases for causality
2010-07-27 17:16:49 +02:00
Adrien Guatto
f7d08ca221
C backend: put the C code for node_decs into the same file.
2010-07-27 16:28:23 +02:00
Adrien Guatto
c328ecb9bd
Obc_utils can now compute dependencies of an Obc program.
2010-07-27 16:28:23 +02:00
Cédric Pasteur
a3b271c948
Allow to write x.f.g
2010-07-27 15:32:39 +02:00
Cédric Pasteur
5b628d3c16
No need to call message directly
2010-07-27 14:14:24 +02:00
Cédric Pasteur
69270e9eb1
Open modules before typing anything
2010-07-27 14:12:27 +02:00
Cédric Pasteur
eb0db1dafc
Call Modules.find_const
...
The exception is intercepted at the level of the
find_const that was redefined in Typing otherwise
2010-07-27 14:12:11 +02:00
Cédric Pasteur
2e44402b03
Two fixes in heptc
...
- Add the directory of the file as an include
- write interfaces with uncapitalized filenames,
as expected by modules.
2010-07-27 14:00:15 +02:00
Cédric Pasteur
5939673999
Catch errors raised during typing of static exp
2010-07-27 13:28:33 +02:00
Cédric Pasteur
56570f904d
Fixed bug with static exp and array_fill
...
The power is now in the static args
2010-07-27 13:22:46 +02:00
Cédric Pasteur
650bbb1c93
A const can be a const from another module
2010-07-27 12:24:51 +02:00
Cédric Pasteur
0e7d9ead1f
Use mapfold for typing consts and signatures
...
Fixes a problem with typing a signature with
consts that depends on previous consts.
2010-07-27 12:09:19 +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
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
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
Cédric Pasteur
fac69ac2fa
Remove controllables from parser
2010-07-16 16:08:14 +02:00
Cédric Pasteur
aeca344db5
Automata with mapfold
...
It does not change much the code but at least
we can now see what is important.
2010-07-16 16:01:27 +02:00
Cédric Pasteur
2d10ef84df
Present with Hept_mapfold
...
Seems so simple, I feel like I missed something...
2010-07-16 15:30:51 +02:00