Commit graph

660 commits

Author SHA1 Message Date
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
Cédric Pasteur af2ea1f361 Compile fix
Always check that the code compiles before committing.
2010-07-16 15:11:53 +02:00
Cédric Pasteur da9b353e75 Shorter version of is_statefull 2010-07-16 15:10: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 ac4e46eff9 Remove debug info 2010-07-16 14:16:31 +02:00
Cédric Pasteur 9f7c4da446 Added missing operator 2010-07-16 14:15:26 +02:00
Cédric Pasteur b6583f22b6 Complete fix for the identifiers problem 2010-07-16 14:09:37 +02:00
Cédric Pasteur d42e56203b Fix for identifiers in C
Instead of calling cname_of_name before creating 
the C ast, keep original names and convert them
when pretty printing the code.
2010-07-16 13:48:37 +02:00
Cédric Pasteur cdc9b14a44 Fixed problem with multidimensional arrays in args 2010-07-16 12:38:45 +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 778dfdb3f9 Do not loop forever during code generation
- Detect when the computation of the static exp
using simplif failed and abort.
- Added a better way to compute operators in
Static
2010-07-16 12:04:51 +02:00
Cédric Pasteur 3f7564aaa6 Fix for code generation
A node declared with node is statefull (so has a
context struct) even though it is empty. Use
the global_name ref to get the name of the current 
module.
2010-07-16 11:28:01 +02:00
Cédric Pasteur 03f21cc612 Last done with Hept_mapfold 2010-07-16 10:28:26 +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
Léonard Gérard c3a3f954f4 Typing fix, if this line is actually useful.
(and 80 colons fix..)
2010-07-15 14:21:19 +02:00
Cédric Pasteur 94468cae5d Fixed iterators
We need to store the qualified name of the iterated node
2010-07-15 13:41:13 +02:00
Cédric Pasteur 0c1860ccbd Fixed problem with tuple consts in Mls2obc 2010-07-15 13:12:11 +02:00
Cédric Pasteur f8ecf3d76c Fixed Vars read function
When is_left is true, the variables to the right
of the fby should be ignored.
2010-07-15 11:57:47 +02:00
Cédric Pasteur f2559b5e87 Small refactoring 2010-07-15 11:37:30 +02:00
Cédric Pasteur f6ffea710d Comments for callgraph_mapfold 2010-07-15 11:31:48 +02:00
Cédric Pasteur 93fef027f0 Keep the list of static parameters in Obc 2010-07-15 11:31:32 +02:00
Cédric Pasteur aad8545055 Set the correct location for obj_dec 2010-07-15 10:06:16 +02:00
Cédric Pasteur 4f9d6b2d82 Added v_loc in Minils too 2010-07-15 10:02:42 +02:00
Cédric Pasteur 46a09cf369 Make Efield an op (as in Minils)
The fact that this commit mostly removes code proves
that this was a good choice.
2010-07-15 09:56:21 +02:00
Cédric Pasteur 62e216314d Fixed stupid bug 2010-07-15 09:37:20 +02:00
Cédric Pasteur 1c55689b18 Fixed name 2010-07-15 09:27:59 +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
Léonard Gérard be7bdc7f27 Mls printer ported. 2010-07-14 02:44:46 +02:00
Léonard Gérard 469e5b86cd A much better and efficient completion_mapfold. 2010-07-14 02:37:03 +02:00
Léonard Gérard ce4f1916da interface_format_version bump ! 10.... 2010-07-14 02:37:02 +02:00
Léonard Gérard 1c2929078d Small tweaks on the hept_mapfold and comments. 2010-07-14 02:37:02 +02:00
Cédric Pasteur 5440a073d6 Fixed generation of C code 2010-07-13 16:23:26 +02:00
Cédric Pasteur 73bd2d080e Correctly set the name of generated nodes 2010-07-13 16:01:42 +02:00
Cédric Pasteur 0d9a35a8b6 Fixed Callgraph_mapfold 2010-07-13 15:37:29 +02:00
Cédric Pasteur dab569d8ad Add missing case for ifthenelse 2010-07-13 14:42:46 +02:00
Cédric Pasteur ee767064b1 Instantiation of parametrized nodes (v2)
- Many changes to make Hept2mls, mls2obc, etc
compile with the api changes
- Added Callgraph_mapfold: starting from a main
program, generates the list of instances of each
node necessary and creates them.
- Mls2seq deals with giving to the code generators
the correct source (mls or obc, wit or without
static parameters)

It is now possible to use parametrized nodes that 
are defined in other files. For that to work, the 
first file has to be compiled to an object file:
	heptc -c mylib.ept
which creates a mylib.epo file. Compiling the main
file will then generate all the instances of 
parametrized nodes from the lib (only the called 
nodes will be compiled, but all the nodes in the 
main file are compiled).
2010-07-13 14:03:39 +02:00
Cédric Pasteur b8f69492b9 Add mapfold for other types in Signature 2010-07-13 13:55:29 +02:00
Cédric Pasteur 4598b29ad2 Forgot to move this file too 2010-07-13 08:47:02 +02:00
Cédric Pasteur e2af987967 Compile fix 2010-07-13 08:38:51 +02:00
Cédric Pasteur 30a78632d2 Fix the order of args in the signature 2010-07-12 10:45:00 +02:00
Cédric Pasteur eb85bfd282 Fix for tuple consts in Initialization
We also need a skeleton fun for consts as there 
can be a const tuple 

TODO : do the same in Clocking ??
2010-07-12 10:22:57 +02:00
Cédric Pasteur 89249e8252 Fix for Initialization
Make eg 0 -> (pre x + 1) legal. This is a temporary 
fix until safe/unsafe functions are correctly handled.
2010-07-12 10:16:16 +02:00
Cédric Pasteur c5184b5d66 Booleans can be used in a switch 2010-07-12 09:25:36 +02:00
Cédric Pasteur eb625cd5d7 Fix operator args (some args have become static) 2010-07-12 09:07:57 +02:00
Cédric Pasteur af0d28fda0 More refactoring of reset
Use exp option to store resets instead of introducing
a new type.
2010-07-09 16:05:31 +02:00
Cédric Pasteur f752f895ce Reset_mapfold
- Also refactored most of the code (why the hell
would anyone use arrays to iterate over lists 
with an index ?!?)
2010-07-09 15:28:26 +02:00
Cédric Pasteur 9e7c013fe2 Completion_mapfold
- Added it_gather combinator to create simply
a version of an iterating function using a gather
to combine accumulator values

Completion_mapfold and every_mapfold seems to work
2010-07-09 13:27:06 +02:00
Cédric Pasteur e7bd251b35 Added Global_mapfold and Mls_mapfold
- Global_mapfold is used to iterate over types
defined in Types or Signature (the iterators 
from Types were moved here)
- Mls_mapfold to iterate over Minils AST (we
do not iterate over clocks yet: is it useful ?)
2010-07-09 11:33:17 +02:00
Cédric Pasteur 3153a8f241 Add missing cases 2010-07-09 10:28:16 +02:00
Cédric Pasteur 3bf2d82d45 Make sure to run check_type on every
Types declared by the user must be checked (this
will also replaced names with the correct longname).
2010-07-09 10:28:09 +02:00
Cédric Pasteur 03b792a220 Fix for scoping 2010-07-09 09:41:29 +02:00
Cédric Pasteur ad2594ebfa Cgen compiles 2010-07-09 09:31:12 +02:00
Cédric Pasteur 23e232cd1f Rewrite Every using Hept_mapfold 2010-07-08 18:13:32 +02:00
Léonard Gérard 000dc91d69 Heptagon and Types mapfold. 2010-07-08 17:41:00 +02:00
Cédric Pasteur 226ddd5c28 Updates for Obc 2010-07-08 17:22:13 +02:00
Cédric Pasteur b0a5a7f13e Heptcheck compiles !! 2010-07-08 15:25:26 +02:00
Cédric Pasteur 68ecd0e781 Added consts in the signature of a module 2010-07-08 15:23:13 +02:00
Léonard Gérard 5baa30f7c1 Last refactor ? and hept_mapred shows in ! 2010-07-08 15:22:26 +02:00
Cédric Pasteur 0e224bf368 Port Static to recent api changes 2010-07-08 15:21:30 +02:00
Cédric Pasteur 587ed634ea Updated Obc Ast 2010-07-08 15:21:30 +02:00
Cédric Pasteur 72ee834641 Proposition for improved Obc AST 2010-07-08 15:20:55 +02:00
Cédric Pasteur 3690585710 Added static records in static_exp 2010-07-08 15:20:55 +02:00
Cédric Pasteur 0b253d22db typing_static_exp should return the static exp
We need to return the static exp because we have 
to replace constructor with their longname.
2010-07-08 15:20:54 +02:00
Cédric Pasteur cee9eed24a Moved sequential/ to obc/ 2010-07-08 15:20:25 +02:00
Cédric Pasteur 662e81d810 Add location and type to static exps 2010-07-08 15:20:25 +02:00
Cédric Pasteur 2fd0860ba8 Renamed Scoping and Parsetree 2010-07-08 15:19:04 +02:00
Cédric Pasteur 7ed81a8950 Moved Obc_printer to a separate file 2010-07-08 15:19:04 +02:00
Cédric Pasteur 978313de1e Moved sequential to compiler/ dir 2010-07-08 15:19:04 +02:00
Cédric Pasteur 24cea56666 Add support for any type of constants 2010-07-08 15:18:08 +02:00
Léonard Gérard 5cc57cd3b0 Static_exps should be in types. field name of ops is a param. 2010-07-08 15:17:08 +02:00
Cédric Pasteur 037f9be664 Remove unused code 2010-07-08 15:16:27 +02:00
Cédric Pasteur 769cb1d881 Updated ast for Static
- Static are used for consts in Heptagon and Minils.
For now, node static parameters remain int only
(ie they are type parameters). Do we need more ?
- Also updated Parsetree AST to the recent changes
in API
2010-07-08 15:16:27 +02:00
Cédric Pasteur c46896ca55 Same api change in Heptagon as in Minils 2010-07-08 15:12:34 +02:00
Léonard Gérard 3cc1652425 Minils and signature tweaked further. 2010-07-08 15:12:02 +02:00
Léonard Gérard 50bd90183d Good static Constructors names. 2010-07-08 15:10:59 +02:00
Adrien Guatto ed280669ec Efields and Etuple are op 2010-07-08 15:04:57 +02:00
Léonard Gérard d58e83a985 Proposition 1. 2010-07-08 15:04:57 +02:00
Adrien Guatto 3698105ccf C back-end: yet another fix for array literals 2010-07-08 12:49:14 +02:00
Adrien Guatto 7918332353 Temporary fix for array literals. 2010-07-08 12:44:34 +02:00
Cédric Pasteur d594ace895 This case is unused 2010-07-07 17:03:36 +02:00
Adrien Guatto 0712378133 Fixed output structure allocation in C backend 2010-07-07 14:44:43 +02:00
Cédric Pasteur c123000eef Always generate a f_out struct
Generate it even if the node has no output. It 
should be noted that it is impossible to call
a node without an output in an Heptagon program. 
This is only useful to provide a simple interface
eg for the generation of main().
2010-07-07 09:58:23 +02:00
Adrien Guatto 0fbaa0217b Fixed missing include dir in minils/_tags 2010-07-06 13:35:11 +02:00
Léonard Gérard 65c12884bd SConst -> Sconst 2010-07-06 11:12:14 +02:00
Léonard Gérard 075cab202a _tags fix. 2010-07-05 16:10:00 +02:00
Adrien Guatto 3dfdf680ee myocamlbuild.ml fix for bytecode 2010-07-05 15:15:24 +02:00
Adrien Guatto 2d8e02d844 Fix: typo size_constr -> size_constrs 2010-07-05 12:09:35 +02:00
Adrien Guatto 6b4881ccd0 Revamped testing framework 2010-07-02 16:03:04 +02:00
Adrien Guatto 1113fd7ec1 Yet another refactoring fix 2010-07-02 15:45:50 +02:00
Adrien Guatto 5a6a3c74ac Fixed refactoring errors. 2010-07-02 15:38:11 +02:00
Adrien Guatto eaafc5db05 C backend: better array printing 2010-07-02 15:30:46 +02:00
Léonard Gérard 0ae39e8698 Good static Constructors names.
Conflicts:

	compiler/global/static.ml
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/heptagon.ml
	compiler/heptagon/parsing/scoping.ml
	compiler/minils/mls_utils.ml
2010-07-01 20:00:46 +02:00
Léonard Gérard de16b4f178 typo Mls_{P->p}arser 2010-07-01 19:41:07 +02:00
Adrien Guatto a7e34a0a17 C backend: added missing #include 2010-07-01 15:41:07 +02:00
Adrien Guatto 3714cd2a39 C back-end: main() generation updated to the lastest calling convention. 2010-07-01 15:21:11 +02:00
Adrien Guatto 83f02ad86f C backend: moved main() to its own file. 2010-07-01 14:44:08 +02:00
Léonard Gérard b93b176383 Mls parsing error handling adapted to menhir 2010-06-30 18:46:40 +02:00
Cédric Pasteur 9448ed23a1 Formatting fixes 2010-06-30 17:30:48 +02:00
Cédric Pasteur 79fb193206 New calling convention in generated code
Functions take as arg:
	- the inputs
	- a 'f_out' structure: if there is at least one
input (whatever their type are)
	- a 'f_mem' structure: containing memories and
contexts for child nodes. This is created only for
node (not for fun). A node declared statefull 
without any memory will have an empty structure.
2010-06-30 17:30:48 +02:00
Léonard Gérard 7e29ba4057 ?? nothing 2010-06-30 17:25:00 +02:00
Adrien Guatto d0b222b003 Working Menhir parser with --table 2010-06-30 17:00:07 +02:00
Léonard Gérard 562c0ab602 re re Parsing. 2010-06-30 15:45:40 +02:00
Léonard Gérard 6ab18a65ec Parsing..... again. 2010-06-30 15:45:40 +02:00
Léonard Gérard 92afdbfb98 Mls parsing to ammend. 2010-06-30 15:45:40 +02:00
Adrien Guatto 6e9cd7f490 Fixed missing error reporting. 2010-06-30 14:11:13 +02:00
Adrien Guatto 7d6ed5d30f Fixed parse error reporting 2010-06-30 14:04:17 +02:00
Cédric Pasteur 01d0cd02c3 Remove bounds hack in Eselect_dyn
We no longer need to store the bounds as the 
bounds check expression is generated from MiniLS
code where the type is directly available.
2010-06-30 13:46:46 +02:00
Cédric Pasteur b4419a6760 Better deal with memory less nodes
There are now 3 kinds of nodes: Eprim : primitive 
nodes, Enode: nodes with memory, Efun: nodes 
without memory.

Typing now sets correct eq_statefull and b_statefull
for equations and blocks. Resets are only added 
when a node with memory is called.

The calling convention is the generated code needs
to be modified so that we can remove the context 
for nodes without memory.
2010-06-30 13:37:54 +02:00
Léonard Gérard 2af3686af2 Mls printer fix. 2010-06-30 03:25:08 +02:00
Léonard Gérard 0c5a8d8ffe compilers refactoring. and bug fix of heptc vs heptcheck. 2010-06-29 19:21:07 +02:00
Léonard Gérard 2127a1c2d4 Mls printing fix. 2010-06-29 19:21:07 +02:00
Léonard Gérard 88732ef2a9 parsing warning removed. 2010-06-29 19:21:07 +02:00
Léonard Gérard 7c0c2e0415 v_name -> v_ident for idents.... 2010-06-29 19:21:01 +02:00
Léonard Gérard eca36de94b Moved mlsparsing stuff to minils/parsing. 2010-06-29 19:18:50 +02:00
Adrien Guatto f35bf95458 Indentation fixes! 2010-06-29 11:18:50 +02:00
Adrien Guatto ef55c8f9fd Fixed forgotten AST change in MiniLS. 2010-06-29 11:12:04 +02:00
Léonard Gérard 0f2d046d59 Gros blop pour que Mlsc compile.
-* Séparation du fichier minils avec création de mls_utils
-* Lexer et Parser qui fonctionnent (pas complets encore)
-* Use of menhir with --explain pour debug du parser
-* Quelques refactoring (ident/name...)
2010-06-28 18:06:39 +02:00
Cédric Pasteur 3a80061392 Fix compilation 2010-06-28 16:15:44 +02:00
Cédric Pasteur 9105b54c1f Fix for causality
Tuples should behave like ands for nodes that
are not reads or writes of a single variable
2010-06-28 16:12:14 +02:00
Adrien Guatto ff07d77667 Assertion generation for C back-end. 2010-06-27 23:28:38 +02:00
Adrien Guatto 5db45bd497 Generated C programs now accept a max step command-line argument. 2010-06-27 23:28:38 +02:00
Adrien Guatto b4ddefa65c Tabs, trailing ws and long lines shall receive no mercy! 2010-06-26 17:17:28 +02:00
Cédric Pasteur dece22d0b6 Fix iterators with constant arrays 2010-06-25 13:48:57 +02:00
Cédric Pasteur 9b18eb71a4 Operators can appear in the exp normal form 2010-06-25 13:48:46 +02:00
Léonard Gérard 1a829ea4e0 Mls parser tweak, todos and co added 2010-06-24 05:05:58 +02:00
Cédric Pasteur 21891b8746 Fixed bug in causal 2010-06-24 05:01:11 +02:00
Cédric Pasteur b360e56893 Unbreak Graph 2010-06-24 05:01:10 +02:00
Cédric Pasteur 4525f5cfd0 More compile fix 2010-06-24 05:01:10 +02:00
Cédric Pasteur c57ae52862 Do not forget to write the interface file 2010-06-24 05:01:10 +02:00
Cédric Pasteur 744f166e12 Add a missing case in Minils Init
The encoding of a reset for e1 -> e2 (in heptagon) is:
	if true fby false then e1 else e2

which is well initiliazed even in e2 = pre x.
2010-06-24 05:01:10 +02:00
Cédric Pasteur 7984917b0e Make the file more readable
Use let in and meaningfull names 
to show the structure of the functions 
(which shows that it is more simple that it 
appeared before)
2010-06-24 05:01:10 +02:00
Adrien Guatto 30338a3f38 Removed outdated command-line options. 2010-06-24 04:59:35 +02:00
Cédric Pasteur 8515c533d2 Updated Heptagon printer
The indentation is not perfect but this will do.
2010-06-24 04:59:35 +02:00
Cédric Pasteur db6344921a Updated Obc printer 2010-06-24 04:56:53 +02:00
Cédric Pasteur 6f2d5175e5 Do not add reset for op 2010-06-24 04:56:53 +02:00
Adrien Guatto 206605a707 Added missing boolean case in MiniLS' print_type. 2010-06-24 04:56:53 +02:00
Cédric Pasteur 0a65964ee6 Put back error in Clocking 2010-06-24 04:56:53 +02:00