- Aug 29, 2019
-
-
erwan authored
Remove a lot of warnings (considered as errors by dune).
-
- May 17, 2019
-
- May 03, 2019
-
-
Pascal Raymond authored
-
- Aug 18, 2017
-
-
erwan authored
And it is now done only by Lic2soc (L2lCheckLoops is not used anymore) Also, during this change, I was bitten again by the « "__" versus "::" in ident names » problem again. The core of this problem is due to the fact that I use LicDump both for (1) dealing with internal ident names (2) generating lustre files Because of (2), ident names may depend on the ec or the v4 option. hence, internal names were sometimes translated with "__" instead of "::". To (try to) fix that, I've added a boolean flag to all "to_string" functions that states whether the function is used for internal purposes, or for generating lustre files. It was quite a boring change, that triggered other problems, that I've fixed in this (too long) commit : - -esa should force -en, otherwise bad things happen (-esa is used for -ec anyway) - in -esa mode, #/nor inputs tuples of bool, not arrays - fix the list of predi op that returns a type different that its arg (SocPredef)
-
- Feb 25, 2016
-
-
Erwan Jahier authored
-
- Jul 01, 2015
-
-
Mamadou Ndiaye authored
-
- Feb 27, 2015
-
-
Erwan Jahier authored
-
- Jan 21, 2015
-
-
Erwan Jahier authored
More precisely, a node that has memory ougth to be declared using "node", and using "function" otherwise. Moreover, a node that performs side-effects (i.e., if it calls an extern node that performs side effects) ougth to be declared as "unsafe". Safe/unsafe mismatches raise an error. Memory mismatches raise an error in one way (a "function" that uses memory), and a warning in the other way (a "node" that uses no memory). Also fix some errors done when transmitting the unsafe flag (well, it's the first time I use it!).
-
- Apr 25, 2013
-
-
Erwan Jahier authored
Actually it does not fix any test, but I feel it is a (slight) progress, so I commit it... Well, to be fair, one objective progress is that I can now compile the test suite with the -np option.
-
- Apr 04, 2013
-
-
Erwan Jahier authored
In order to do that, I've generalised the type of merge : now the clock argument can be any expression. Some assert false still prevent its use, but it should be easy to get rid of them (I'll do that latter).
-
- Apr 03, 2013
-
-
Erwan Jahier authored
nb : programs do run, but I did not check that they run correctly... Also fix a regression introduced in the previous change where incorrect ec code was generated for diese.
-
- Feb 07, 2013
-
-
Erwan Jahier authored
-
- Feb 06, 2013
-
-
Erwan Jahier authored
Pascal prepared « the field » for that change.
-
- Feb 01, 2013
-
-
Erwan Jahier authored
-
Erwan Jahier authored
Also, force the merge to operate over an ident rather than on any val_exp.
-
- Jan 31, 2013
-
-
Erwan Jahier authored
nb : do not work for lv4/ec mode
-
- Dec 13, 2012
-
-
Erwan Jahier authored
nb: les tests ne passent toujours bien sur. * Partie lus -> AST predef.ml -> srcPredef.ml syntaxTreeCore.ml -> astCore.ml syntaxTree.ml -> astV6.ml syntaxTreeDump.mli-> astV6Dump.mli * Partie Ast -> Ast solveIdent.mli -> astRecognizePredef.mli syntaxTab.mli -> astTab.mli symbolTab.mli -> astTabSymbol.mli * Partie AST -> lic (static evaluation) eff.ml -> lic.ml getEff.mli -> ast2lic.mli lazyCompiler.mli -> licTab.mli builtIn.ml -> licMetaOp.ml predefEval*.ml -> licEval*.ml name.mli -> licName.mli * Partie Lic -> Lic uniqueOutput.mli -> l2lCheckOutputs.mli structArrayExpand.mli -> l2lExpandArrays.mli nodesExpand.mli -> l2lExpandNodes.mli doNoPoly.ml -> l2lRmPoly.ml doAliasTypes.ml -> l2lAliasType.ml doSplit.ml -> l2lSplit.ml
-
- Aug 10, 2012
-
-
Pascal Raymond authored
- plus de macros prefefinies (e.g. FILL, BOOLRED etc...) (remplacé par la notion de BuiltIn) - split.ml adapté et remanié pour rentrer dans le moule source to source (voir DoSplit)
-
- Jul 14, 2012
-
-
Pascal Raymond authored
et donc ne marchent plus !
-
- Jul 10, 2012
-
-
Pascal Raymond authored
-
- Jul 06, 2012
-
-
Pascal Raymond authored
-
- Oct 23, 2008
-
-
Erwan Jahier authored
by position). Rename ExpandPack into InstanciateModel.
-
- Sep 15, 2008
-
-
Erwan Jahier authored
change the parser and accept only clock expressions after a when. A clock is now made of 2 idents: one for the clock constructor, and one for the clock variable.
-
- Aug 29, 2008
-
-
Erwan Jahier authored
-
- Jul 01, 2008
-
-
Erwan Jahier authored
-
- Jun 06, 2008
-
-
Erwan Jahier authored
equations is not done at all yet). Also, print the clock decorations (when clk) in the generated file.
-
- May 29, 2008
-
-
Erwan Jahier authored
-
- May 27, 2008
-
-
Erwan Jahier authored
work yet though (returns the wrong type). Also add the struct printer, and fix a bug in the static argument printing.
-
- May 21, 2008
-
-
Erwan Jahier authored
Also, node aliased to other nodes were handled poorly: I was replacing in the syntax tree the node by its alias. Now, I really define the alias node using the aliases one. For instance, node toto(x:t) returns (y:t); let ... tel node titi = toto; node tutu(...) returns(...); let ... z = titi(a); tel was compiled into node toto(x:t) returns (y:t); let ... tel node tutu(...) returns(...); let ... z = toto(a); tel Now, I generate node toto(x:t) returns (y:t); let ... tel node titi(i1:t) returns (o1:t); let o1 =toto(i1); tel node tutu(...) returns(...); let ... z = titi(a); tel which is equivalent, but closer to the original program.
-
- May 20, 2008
-
-
Erwan Jahier authored
(support for fill, red, etc. is coming soon). In order to add support for iterators, I have extended the by_pos_op (and the by_pos_op_eff) data type with a list of static arguments. In other words, iterators are handled as a particular case of predefined operators.
-
- May 07, 2008
-
-
Erwan Jahier authored
type 'a hereflagged = Here of 'a | NotHere of Ident.long into type 'a elt = Local of 'a | Imported of Ident.long * static_arg list i.e., i am basically doing two things: - fix poor naming - adding static arg to nodes indeed, when compiling an equation that involves nodes defined in another package, I need to check that the static args and the static params match. Therefore I need to have the static params ! Therefore I add them (I will use them in the next commit). Moreover, in SyntaxTreeCore.node_info, the static_params list was an option type, which is a bit weird (empty lists are enough to represent node with no static params).
-
- Apr 02, 2008
-
-
Erwan Jahier authored
tests. Also, Add the possibility to have several lustre files in the command-line arguments. remove the power operator. Define a lustre.lus that contains a packaged version of Lustre predefined operators. It will be in the standard lustre library, and should be accessible directly (path).
-
- Mar 28, 2008
-
-
Erwan Jahier authored
and anonymous structures. I've even found some type errors in the non-reg files!
-
- Mar 20, 2008
-
-
Erwan Jahier authored
operators. Predef contains the abstract syntax of those operators (taken for SyntaxTreeCore.by_pos_op), and PredefSemantics contains: - const_eval: that says how to statically evaluate constants - type_eval: that provides the type profile of predef operators - clock_eval: that provides the clock profile of predef operators The code in EvalConst that dealt with predef const evaluation is now in Predef.const_eval
-
- Mar 11, 2008
-
-
Erwan Jahier authored
used in order to make it homogoneous with what is done in SyntaxTreeCore.ml This commit is related to the previous one actually. Also remove all this story of node_half_eff that is not used (yet), and that may not be useful (we'll see later). Also continue to fix the representation of SyntaxTrreCore.node_info : -> remove the node alias -> put the corresponding infomation in node_body field -> rename node_body field into node_def -> associate to node_def (instead of a body option) a new union type made of Abstract, Extern, Alias of ..., Body of ... This allows us to - remove an "assert false" to deal with node with body and alias (this new presentation makes it impossible) - Deal with Abstract node properly
-
Erwan Jahier authored
change is - make the parser simpler - make the compilation simpler - make everything simpler actually... - accepts more correct programs. - etc. Indeed, before, we had specific syntax nodes for - extern nodes - aliased nodes - abstract nodes - normal nodes which leads to duplicate code everywhere. Now, we have a more generic representation. The nice thing is that the parser is much simpler, and a lot of duplicated code is avoided (for example, extern and abstract nodes do now share the same code). The bad thing is that we have more "assert false" lying everywere due to this «too rich» representation, in order to deal with cases that can never happen. For exemple, we have to do something with nodes that have both an alias and a body. This cannot happen of course, so we issue an "assert false", which is a little bit painful, as it have been rejected by the parser anyway. Moreover, for some reason, external node params could not be clocked, and cannot have static params. Maybe it is not possible to compile such nodes (I don't know yet), but we should not raise a syntax error IMHO. Somehow, what was done was very similar to ask the parser to perform type checking.
-
- Mar 06, 2008
-
-
Erwan Jahier authored
EvalNode.f rename back predef_node into by_pos_op.
-
Erwan Jahier authored
i.e., a = operator +(1,3); or a = map<<operator +>>(l); This is to simplify the syntax tree. We migth undo this change in the future, or perform the same thing differently.
-
Erwan Jahier authored
-
- Feb 20, 2008
-
-
Erwan Jahier authored
-