- Jun 06, 2008
-
-
Erwan Jahier authored
equations is not done at all yet). Also, print the clock decorations (when clk) in the generated file.
-
- Jun 05, 2008
-
-
Erwan Jahier authored
and PredefEvalClock.
-
- Jun 03, 2008
-
-
Erwan Jahier authored
SolveIdent.recognize_predef_op that replaces node call by Predef constructor when necessary, via a complete traversal of the SyntaxTree (instead of doing it in the parser). The rationales for this change are that: - it is quite tedious to do it in parser as multiple locations are involved - I did missed some locations - It makes the parser more focused on parsing issues - that traversal is a first step do deal with idref solving (hence the name of the new module that contains that function Note that lsrc/test/should_work/fab_test/lecteur.lus was using "plus" as a variable ident, which raised an error, which
-
- May 30, 2008
-
-
Erwan Jahier authored
(well, for the first file, the numbers were ok :-). Also, begin to sort out a little bit the mess in the Global module. Moreover, augment the necessary print level of most internal structure dumping function.
-
- May 28, 2008
-
-
Erwan Jahier authored
of "red<<if, 3>>". Put the unification stuff in a dedicated module, and add some random unit tests to it.
-
- May 20, 2008
-
-
Erwan Jahier authored
-
- May 15, 2008
-
-
Erwan Jahier authored
t, and a node returning such a t, the compiler was actually returning the type definition of t (instead of the abstract type). In order to fix that, it was necessary to add in argument of Lazycompiler.solve_x_idref a flag (named provide_flag) indicating whether the item being compiled appears in the provide, or in the body part of the package. This fix triggered another bug that we also fix: indeed, it is not correct to return a compile error when the provided parameters of a node is not equal to its implementation. Indeed, such parameters can be abstract type that are defined in that package. The test "should_work/packEnvTest/packages.lus" is now ok.
-
- May 02, 2008
-
-
Erwan Jahier authored
not compile them is (well, was) the default...). also, during pretty-printing, remove the type in the constant definition (e.g., "const x = 42;" instead of "const x = 42:int;"), except if it is an abstract constant of course
-
- Apr 02, 2008
-
-
Erwan Jahier authored
For non-regression tests, do not use Lazycompiler.test function anymore and just use LazyCompiler.node_check instead. put in the new file compiledDataDump.ml all the stuff related to string convertions of CompiledData items.
-
- 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 17, 2008
-
-
Erwan Jahier authored
EvalNode.f -> GetEff.node, EvalType.f -> GetEff.typ, EvalEq.f -> GetEff.eq EvalConst.f (val_exp -> const_eff list) should have been put there too, but in fact EvalConst.f ougth to be splitted in two parts: - val_exp -> val_exp_eff (but this function already exist) - val_exp_eff -> const_eff list Therefore, the signature of EvalConst.f will be changed to: val_exp_eff -> const_eff list (and will use GetEff.val_exp) Ditto for eval_array_index. eval_array_index : CompiledData.id_solver -> SyntaxTreeCore.val_exp -> int -> int ougth to be splitted into two functions: - CompiledData.id_solver -> SyntaxTreeCore.val_exp_eff - SyntaxTreeCore.val_exp_eff -> int -> int Ditto for eval_array_size eval_array_size : CompiledData.id_solver -> SyntaxTreeCore.val_exp -> int ougth to be splitted into two functions: - CompiledData.id_solver -> SyntaxTreeCore.val_exp_eff - SyntaxTreeCore.val_exp_eff -> int arg... evalConst.f est utilis par GettEff.typ !!!
-
- Mar 14, 2008
-
-
Erwan Jahier authored
This is done via the new module EvalEq. A lot of new errors appear in the on-reg tests, which is normal as quite a lot of the code is now used...
-
- 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
-
- Feb 20, 2008
-
-
Erwan Jahier authored
currently only evaluates predef nodes.
-
- Feb 12, 2008
-
-
Erwan Jahier authored
git commit.
-
Erwan Jahier authored
Do not test nodes with static params as it is too difficult to do from the top-level automatically. Indeed, it would require to build effective static arg before, which would require to make node_check mutually recursive with type_check and co. Its not worth the trouble, as such node can be tested anyway if used. LazyCompiler.solve_node_idref: compile (with the new function check_static_arg) static params instead of ignoring them. EvalConst.eval_const -> EvalConst.f for simplicity and homogeneity with the naming scheme used in EvalType.
-
- Feb 11, 2008
-
-
Erwan Jahier authored
add a debug rule that hides the mli files and make debugging easier w.r.t. var printing.
-
- Feb 06, 2008
-
-
Erwan Jahier authored
src/syntaxTreeCore.ml (new file) Split syntaxTree.ml into syntaxTree.ml and syntaxTreeCore.ml. The idea is that lic2loc should be able to use syntaxTreeCore.ml verbatim. src/lxm.ml src/lxm.mli remove pack_name from this module, so that it can be shared with lic2loc too (this is mandatory since it is used by SyntaxTreeCore) src/compile.ml src/compiledData.ml src/evalConst.ml src/evalConst.mli src/evalType.ml src/evalType.mli src/expandPack.ml src/lazyCompiler.ml src/main.ml src/parser.mly src/symbolTab.ml src/symbolTab.mli src/syntaxTab.ml src/syntaxTreeDump.ml src/syntaxTreeDump.mli src/test/Makefile src/test/packs.lus src/test/test.res.exp opening SyntaxTreeCore module, and inline the definition of Lxm.pack_name. Also, begin to replace oper by node or predef_node in identifiers, in order to get a more consistant naming scheme.
-
- Jan 30, 2008
-
-
Erwan Jahier authored
src/lxm.ml: src/global: (new file) Add the lustre file name in error messages. src/compiledData.ml: Better Data structure dumping (string_of_type_eff,string_of_const_eff), and more dumping (LazyCompiler.check_const_interface). src/lazyCompiler.ml: Fix a bug that prevented enum constants to be exported. Indeed, in LazyCompiler.const_check_interface_do, only extern constants (Extern_const_eff) were accepted in the provided part, whereas enum contants (Enum_const_eff) should also be accepted. Force constants interface checking in LazyCompiler.test. src/test/Makefile: src/test/onlyroll.lus: src/test/heater_control.lus: src/test/pfs.lus: Some more test files.
-
Erwan Jahier authored
Try to split this 400 lines (!) function. + Factorize some duplicated code.
-
- Jan 28, 2008
-
-
Erwan Jahier authored
-
- Dec 21, 2007
-
-
Erwan Jahier authored
-
- Dec 18, 2007
-
-
Erwan Jahier authored
-
- Dec 17, 2007
-
-
Erwan Jahier authored
-
- Dec 14, 2007
-
-
Erwan Jahier authored
Ident.t is now an abstract data type (instead of a string). fullid is turned into an Ident.long, and is also made abstract.
-
- Dec 05, 2007
-
-
Erwan Jahier authored
-
Erwan Jahier authored
Add basic regression tests. Add "assert false" statements everywhere it was necessary. Add the fby operator in the syntax.
-
- Oct 19, 2007
-
-
Erwan Jahier authored
-