98 Commits (67abb99502ffcf059de81a47f32b36d23d78499f)

Author SHA1 Message Date
Adrien Guatto 54cbec9190 C backend: generate A_types.{h,c} when compiling A.epi
Before this commit, the C backend would put the translated definitions
of an interface file A.epi into A.{h,c}. This is inconsistent with the
C code generated for source files, which expects to find A_types.{h,c}.
5 years ago
Adrien Guatto 0435a2420d Fix miscompilation of Pervasives.xor to C 6 years ago
Gwenaël Delaval e4f51fea68 Switch to non-deprecated String functions
Use of String.*_ascii non-deprecated versions.

NB: Heptagon becomes available only for Ocaml versions >= 4.03.0.
7 years ago
Gwenaël Delaval 2f18926bf4 Clean up documentation comments 7 years ago
Gwenaël Delaval 69b8cc5a18 Added operator (=>) in Pervasives module
Operator (=>) for implication added in Pervasives module.

"a => b" is translated into "not a or b" at code generation.
8 years ago
Gwenaël Delaval d8d24ffd95 Handle modularity/several controllers by module
* Several controllers by module : added option "-m <Module>" in ctrl2ept

Generate controllers for each node of one module in <module>_controller.ept

* Types of <Module> no longer moved to <Module>_controller

* Added "_types" suffix for type dependencies for C target
8 years ago
Nicolas Berthier cbcf8b9ac0 Using unqualified names for string representation of constructors in C backend.
+ minor modifications in various places.
10 years ago
Nicolas Berthier 5506690de5 Merge branch 'decade' into ctrl-n 10 years ago
Valentin Perrelle 1f2e084e6e Fixed a bug where loops were not generated for copying arrays. 10 years ago
Nicolas Berthier 99ab12aa13 Fixed warnings. 10 years ago
Nicolas Berthier 216550c0d1 Fixed warnings & documentation comments.
- gitignore: ignore files generated by `configure' script.
11 years ago
Nicolas Berthier 899d33afb6 Corrected a bug in generation of C records.
Corrected a somewhat unnoticeable but ugly bug in the generation of C
records, that could mess up the field names when they were not
assigned in the same order as in the declaration of the type.
11 years ago
Gwenal Delaval 41fccc66fb Bugs corrections
- callgraph: add idents used for instantiated nodes
- cgen : added Idents.enter_node
- cmain : removed error when simulated node does not exist (existence
of simulated node was tested for every program, comprising loaded ones)
12 years ago
Gwenaël Delaval ef00823cf7 Added Marc as co-author 12 years ago
Gwenaël Delaval 58086190eb Headers and license file for GPL
Headers for every source file (excluding examples), mentioning
authors, copyright and license (GPL)

COPYING file with GPLv3 content.
12 years ago
Adrien Guatto f43fcb78f6 Only inline integer extvalues when unrolling 12 years ago
Adrien Guatto ec0274cc82 C backend: do not inline consts by default. 12 years ago
Adrien Guatto fa09d86dc1 Unrolling in C backend. 12 years ago
Cédric Pasteur 54cde301f6 C code generation for printf 13 years ago
Adrien Guatto 0f71dbe145 Bitwise or. 13 years ago
Adrien Guatto 8d772e20e2 Bitwise and. 13 years ago
Adrien Guatto 1ec15b9409 Bitwise operators on integers. 13 years ago
Cédric Pasteur c550b09805 Fixed code generated for alias types to arrays 13 years ago
Cédric Pasteur 53043b403c Small fixes in the C backend 13 years ago
Cédric Pasteur eec957cc6a Use underscores for generated variables 13 years ago
Cédric Pasteur 4cd506f3db Added c ast for constant
Also print only short names for struct fields
13 years ago
Cédric Pasteur 8cc879be7a Generate code from interface (.epi) files
It includes the definition of types, constants
and prototypes defined in the interface.
13 years ago
Cédric Pasteur da8956e247 Revert changes
Bring back cvarlist_of_ovarlist with a more 
explicit name to show its specificity
13 years ago
Brice Gelineau 9fb42a5feb Removed unused functions in C generation 13 years ago
Cédric Pasteur a52e80bcad Fixed some TODOs 13 years ago
Cédric Pasteur 7d95b95ed7 Merge branch 'memalloc' into decade
Conflicts:
	compiler/global/signature.ml
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/hept_printer.ml
	compiler/heptagon/hept_utils.ml
	compiler/heptagon/heptagon.ml
	compiler/heptagon/parsing/hept_parser.mly
	compiler/heptagon/parsing/hept_parsetree.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/heptagon/transformations/switch.ml
	compiler/main/hept2mls.ml
	compiler/minils/minils.ml
	compiler/minils/mls_printer.ml
	compiler/obc/c/cgen.ml
	compiler/obc/control.ml
	compiler/utilities/misc.mli
13 years ago
Brice Gelineau 10115684d9 bugfix for reset calls in C 13 years ago
Cédric Pasteur bb6b9868b0 Use the variable type to add or not an indirection 13 years ago
Léonard Gérard 5837f3906f Multidimensional iterators in java. 13 years ago
Léonard Gérard c5fbcbe765 removing white spaces 13 years ago
Brice Gelineau c70d34ec06 Preliminary version of multidimensional iterators. 13 years ago
Léonard Gérard 83b0182874 Merge branch 'clocked_inputs' into decade
Conflicts:
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/heptagon/parsing/hept_static_scoping.ml
	compiler/main/mls2obc.ml
	compiler/obc/c/cmain.ml
13 years ago
Adrien Guatto 4794045208 Reworked Obc AST: from right patterns to extvalues.
I introduced a notion of extended values in Obc expressions,
replacing the Epattern constructor. Patterns may now only
occur at their rightful place, on the left of an assignment.

This change allows to index global constant arrays.
13 years ago
Brice Gelineau 938e8897b2 n-ary Sarray_power Earray_fill 13 years ago
Cédric Pasteur d39e883e08 Filter outputs removed by memalloc 13 years ago
Cédric Pasteur 822e87605b One step closer to code generation with memalloc 13 years ago
Adrien Guatto 36d93a411d Fix generated C code calling between(). 13 years ago
Gwenal Delaval da648254d8 Added type string to pervasives, with string constants in AST 13 years ago
Cédric Pasteur 568dfc59fd Fixed generation of includes in C
The module names must be uncapitalized in includes
13 years ago
Cédric Pasteur c8055cd1ff Fixed bugs with static records in C generation 13 years ago
Adrien Guatto 10418197c8 Initial support for return-less external functions.
The compiler still does not support unsafe functions that well. For example, putting an assert()/exit() in an automaton's state does not work correctly.
13 years ago
Adrien Guatto 00cb203dd9 Revert "C generation: fixed struct field name in step() call."
This reverts commit fc920d88ea.
13 years ago
Adrien Guatto fc920d88ea C generation: fixed struct field name in step() call. 13 years ago
Cédric Pasteur 3c8fc39745 Fix C backend with new obc ast 13 years ago
Cédric Pasteur c6aa63b444 Heptc compiles again
AFor now expects expressions instead of static exps
13 years ago