Commit graph

296 commits

Author SHA1 Message Date
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
a5b0a8ab9e A script to use when debugging.
It allows pretty printing of nearly anything inside the debugger.
If raw data printing is needed (and possible)
just comment the line of the printer you want to disable.
2010-08-03 22:41:51 +02:00
Léonard Gérard
0fdea7fbd7 Use -j 0 in heptc wrapper. 2010-08-03 22:39:01 +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
Adrien Guatto
4de7ecac98 Wrote wrapper macros for C interoperability. 2010-07-29 10:43:32 +02:00
Cédric Pasteur
e9da3c0313 Added an example ported from SCADE
All the files compile. The code generation was 
not tested yet.
2010-07-28 14:17:54 +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
58d601fc96 Added float versions of operators 2010-07-27 15:32:51 +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
4e5617588c Updated the example 2010-07-27 11:32:58 +02:00
Cédric Pasteur
ac8dce35dc Added an example of how to import external functions 2010-07-27 11:12:33 +02:00
Cédric Pasteur
d3fea3aad3 Added test for alias types 2010-07-27 09:29:20 +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
6dda6ba226 Updated .gitignore 2010-07-26 09:40:31 +02:00
Cédric Pasteur
6c8a83f8c4 Added test for foldi 2010-07-26 09:34:29 +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