Skip to content
Snippets Groups Projects
  1. Aug 29, 2019
  2. Nov 30, 2017
  3. 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
  4. Jun 22, 2017
  5. Nov 30, 2016
  6. Jan 14, 2016
  7. Feb 27, 2015
  8. Aug 14, 2014
    • 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
  9. 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
  10. 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
  11. Apr 03, 2013
  12. 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
  13. Feb 20, 2013
  14. Feb 13, 2013
  15. Feb 07, 2013
  16. Feb 06, 2013
  17. Feb 01, 2013
  18. Jan 31, 2013
  19. Jan 29, 2013
  20. Jan 18, 2013
  21. 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
  22. Aug 08, 2012
  23. Aug 07, 2012
  24. Aug 06, 2012
  25. Jul 14, 2012
  26. 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
  27. Jul 12, 2012
  28. 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
  29. Jul 10, 2012
  30. Jul 06, 2012
  31. Apr 13, 2010
  32. Apr 08, 2010
  33. May 26, 2009
    • Erwan Jahier's avatar
      Attach the clock of Eff.val_exp to the val_exp itself, instead of · e7ef1b90
      Erwan Jahier authored
      maintaining (ugly and error-prone) hash tables.
      
      That change revealed an untriggered bug in EvalClock.check_args: it was wrong
      to add in subst the substitutions made of the parameters and the arguments (it
      is enough to unify the clocks of the pars and of the args). For instance, consider
      the node (in should_work/clock/clock.lus)
      
         node clock5(x :  bool; y:  bool when x; z: bool when y)
      
      and the call
      
        z2 = clock5(a, b when a, c when e);
      
      I was adding y/b in the subst, which was wrong.
      
      Other minor changes:
       - move const_to_val_eff from Eff to UnifyClock.
       - GetEff.translate_val_exp now returns a substitution, in order to be able
         to unify clock vars and propagate the resulting substitution.
      e7ef1b90
  34. Mar 11, 2009
  35. Feb 25, 2009
  36. Feb 10, 2009
Loading