Skip to content
Snippets Groups Projects
  1. Jun 19, 2020
  2. Aug 29, 2019
  3. Nov 30, 2017
  4. Aug 18, 2017
    • erwan's avatar
      Do dep-loop checking before removing alias, otherwise some variables disappear ! · b13c9efb
      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)
      b13c9efb
  5. Jul 10, 2017
    • erwan's avatar
      Remove an assertion in EvalClock that was forbidding expression without output clock. · f59c754f
      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
      f59c754f
  6. May 03, 2017
  7. Mar 09, 2017
  8. Jan 02, 2017
  9. Nov 30, 2016
  10. Sep 09, 2016
  11. Sep 05, 2016
  12. Jan 14, 2016
  13. Jun 25, 2015
  14. Feb 27, 2015
  15. Sep 01, 2014
  16. Aug 26, 2014
  17. Aug 14, 2014
    • Erwan Jahier's avatar
      fd23885a
    • Erwan Jahier's avatar
      lic2soc: fix the translation of the current operator into SOC. · d3061085
      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.
      d3061085
  18. Oct 23, 2013
    • Erwan Jahier's avatar
      A tentative to fix a bug in clock checking appearing in a program of · cc1ab2b7
      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.
      cc1ab2b7
  19. May 28, 2013
  20. Apr 12, 2013
    • Erwan Jahier's avatar
      lus2lic is now working from ldbg and ltop. · fa71e77c
      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).
      fa71e77c
  21. Apr 04, 2013
    • Erwan Jahier's avatar
      The -exec mode now supports the merge statement. · 1ca66bc0
      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).
      1ca66bc0
  22. Apr 03, 2013
  23. Mar 27, 2013
    • Erwan Jahier's avatar
      Rework the type of Lic expressions w.r.t. predef expressions. · 28f47082
      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.
      28f47082
  24. Feb 20, 2013
  25. Feb 13, 2013
  26. Feb 07, 2013
  27. Feb 06, 2013
  28. Feb 04, 2013
  29. Feb 01, 2013
  30. Jan 31, 2013
  31. Jan 18, 2013
  32. Dec 13, 2012
    • Erwan Jahier's avatar
      Documentation et renommage des modules. · 65dfa567
      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
      65dfa567
  33. Jul 14, 2012
  34. Jul 13, 2012
    • Pascal Raymond's avatar
      Menage dans les val_exp : · 0934086d
      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
      0934086d
  35. Jul 12, 2012
  36. Jul 11, 2012
    • Pascal Raymond's avatar
      Debut de DoNoPoly, qui necessite une modif assez · 4e1418a0
      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 ?)
      4e1418a0
Loading