Commit graph

443 commits

Author SHA1 Message Date
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