Commit graph

133 commits

Author SHA1 Message Date
Adrien Guatto 2a72628f20 Stricter mk_longname. 2010-07-19 12:02:29 +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 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
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 0d9a35a8b6 Fixed Callgraph_mapfold 2010-07-13 15:37:29 +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 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
Léonard Gérard 000dc91d69 Heptagon and Types mapfold. 2010-07-08 17:41:00 +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 3690585710 Added static records in static_exp 2010-07-08 15:20:55 +02:00
Cédric Pasteur 662e81d810 Add location and type to static exps 2010-07-08 15:20:25 +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 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
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
Léonard Gérard d58e83a985 Proposition 1. 2010-07-08 15:04:57 +02:00
Léonard Gérard 65c12884bd SConst -> Sconst 2010-07-06 11:12:14 +02:00
Adrien Guatto 5a6a3c74ac Fixed refactoring errors. 2010-07-02 15:38:11 +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
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
Adrien Guatto f35bf95458 Indentation fixes! 2010-06-29 11:18:50 +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
Adrien Guatto b4ddefa65c Tabs, trailing ws and long lines shall receive no mercy! 2010-06-26 17:17:28 +02:00
Léonard Gérard 9fff8e4ad8 Refactoring and organisation.
Separate parser, lexer and printer of hpetagon (Hetp_*) from the minils ones (Mls_*)
ident_of_var -> ident_of_name
get_current_location -> current_loc
2010-06-24 03:30:14 +02:00
Léonard Gérard 60a3ad15f8 move to subfolder compiler. 2010-06-21 11:58:57 +02:00