- Jun 19, 2020
-
- Aug 29, 2019
-
-
erwan authored
Remove a lot of warnings (considered as errors by dune).
-
- Nov 30, 2017
-
-
erwan authored
Add code to support empty arrays (not yet working)
-
- 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)
-
- Jul 10, 2017
-
-
erwan authored
But actually, it is possible to have node without output, so expression without output clock is perfrectly possible, as in the following example : node h(x : bool) returns (); var h : bool; let h = false fby (not x); tel node f(x : bool) returns (y: bool); var u:bool; let y,u = (false, h(true), true) fby (true, x, h(false)); tel
-
- May 03, 2017
-
-
erwan authored
-
- Mar 09, 2017
-
-
erwan authored
-
- Jan 02, 2017
-
-
Erwan Jahier authored
-
- Nov 30, 2016
-
-
Erwan Jahier authored
nb : i have changed the var name in the generated nodes, which was a bad idea (=painful to get it rigth again).
-
- Sep 09, 2016
-
-
Erwan Jahier authored
-
- Sep 05, 2016
-
-
Erwan Jahier authored
The bug was appearing a node was called on a non base clock that was existing in the called nodes (name clash). Typically, it occurs on recursive node called on some non-trivial clocks. Also, use maps instead of list to hold the substitution between params and args.
-
- Jan 14, 2016
-
-
Erwan Jahier authored
Ditto for Misc and Compile
-
- Jun 25, 2015
-
-
Erwan Jahier authored
-
- Feb 27, 2015
-
-
Erwan Jahier authored
-
- Sep 01, 2014
-
-
Erwan Jahier authored
is the clock of the quicker clock among its inputs, not among its output !
-
- Aug 26, 2014
-
-
Erwan Jahier authored
-
- Aug 14, 2014
-
-
Erwan Jahier authored
-
Erwan Jahier authored
nb : the -exec mode was working because I did not use the generated soc, which was completely wrong. Note that to do that, I have modified the CURRENT variant of Lic.val_exp, to attach it the clock the current holds on. Indeed, the clock is mandatory to generated correct code... In an ideal world, this clock information may have explicitely been set by the user ("current(clk_of_X,X)" instead of "current(X)"), but for historical reason, it is not the case. Hence, this information is added as soon as it is available, namely, during clock checking.
-
- Oct 23, 2013
-
-
Erwan Jahier authored
Timothy Bourke (trigerred where the clock of some args are some other args and when the names of variables are shared between the caller and the callee). The problem is in UnifyClock.f or (in evalClock.ml) ; the current change in evalClock.ml fixes the pb in Tim's program, but I suspect it is still buggy.
-
- May 28, 2013
-
-
Erwan Jahier authored
The test now runs in 150s (versus 417s) [...] for some reasons, i cannot reproduce the 150s !!!
-
- Apr 12, 2013
-
-
Erwan Jahier authored
As far as ldbg is concerned, it only traces the toplevel node, at call event. Note that I needed to rename quite a lot of modules to avoid name clashes between lus2lic.a and ltop. I've also merged the Verbose module with the one of Lutin so that they can be shared (there were sharing 95% already).
-
- 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.
-
- Mar 27, 2013
-
-
Erwan Jahier authored
1) At the Lic level, there's no reason to distinguish betwenn node calls, and predef node calls. Indeed it makes things simpler and more homogeneous afterwards. 2) int strings are only converted when necessary (constant evaluation). 3) const are handled directly under Lic.by_pos_op instead of being under PREDEF_CALL, which make things easier and more logical.
-
- Feb 20, 2013
-
-
Erwan Jahier authored
-
- Feb 13, 2013
-
-
Erwan Jahier authored
BTW, put everything that concerns node environement into the new IdSolver module (from the Lic module).
-
- Feb 07, 2013
-
-
Erwan Jahier authored
-
- Feb 06, 2013
-
-
Erwan Jahier authored
-
Erwan Jahier authored
Pascal prepared « the field » for that change.
-
- Feb 04, 2013
-
-
Erwan Jahier authored
The only culprit was the one in unifyClock.ml::249, but I've lazyfied most of the non-trivial verbose call. The 2 remaining unresolved testq that were timeout-ing now pass in a few ms... The whole non-reg test time has been divided by more than 2!
-
- 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
-
- Jan 18, 2013
-
-
Erwan Jahier authored
Remove all test that now passes from the broken dir.
-
- 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
-
- Jul 14, 2012
-
-
Pascal Raymond authored
et donc ne marchent plus !
-
- Jul 13, 2012
-
-
Pascal Raymond authored
IDENT remplacé par VAR_REF/CONST_REF - plus de node_exp dans les CALL, juste une ref (node_key) - reste a faire pareil pour les NodeStaticArgEff
-
- Jul 12, 2012
-
-
Pascal Raymond authored
-
- Jul 11, 2012
-
-
Pascal Raymond authored
importante du mecanisme de UnifyType : - fait : * definition de Eff.poly_match * TypeVar type_var au lieu de Any/Overload avec type_var = Any | AnyNum (pour l'instant et pour longtemps ?!) - à faire : * revoir UnifyType pour qu'il rende un poly_match * stocker là où c'est nécessaire les poly_match calculés lors du type check (pour les CALL et peut-être les sargs ?)
-