Skip to content
Snippets Groups Projects
  1. Jun 17, 2015
  2. Jun 12, 2015
  3. Jun 11, 2015
  4. Mar 03, 2015
  5. Feb 27, 2015
  6. Jan 22, 2015
  7. Jan 21, 2015
    • Erwan Jahier's avatar
      Check node declaration wrt safety and memory. · b29c70ff
      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!).
      b29c70ff
  8. Jan 14, 2015
    • Erwan Jahier's avatar
      Fix a bug when using -esa -en -2c on programs with assert · 79e85ff2
      Erwan Jahier authored
      Report by willie (cf mail of 8/10/2014 to get the file)
      
      file:/tmp/modes3x2.lus
      
      lus2lic -esa -en -2c /tmp/modes3x2.lus -n modes3x2
      
      But it gives an error of:
      Error. in file "/mnt/A/wsept/modes3x2_pre_orig_lus2lic_en_esa/modes3x2.lus",
      line 74, col 8 to 8, token '#': only one operator per equation is allowed
      (v04_0, v04_1).
      
      Which is the line:
      assert #(on_off, toggle);
      
      -----------------------------------------------------------------
      
      Actually, refuse programs that uses "#" or "nor" run with -esa and
      -2c|-exec
      
      That means that willie program is now rejected.
      
      Nevertheless, that change migth fix some other programs (that uses
      arrays, and used with -esa and -exec or -2c).
      79e85ff2
  9. Sep 02, 2014
    • Erwan Jahier's avatar
      -ei (and thus -ec): Fix a bug when translating condact. · 5ee67626
      Erwan Jahier authored
      The translation was faithfull to the comment, but the comment was wrong :
      in order to translate a condact, we need clocks (when) !
      
      node condact_toto(i0:bool; i1:int; i2:int) returns (o0:int) = Lustre::condact<<toto, 0>>;
      
      is now translated into:
      
      condact_toto(i0:bool; i1:int; i2:int) returns (o0:int)
      let
        o0 = if i0 then current(toto(i1 when i0, i2 when i0) ) else (0 fby o0);
      tel
      5ee67626
  10. 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
  11. Jul 04, 2014
  12. May 30, 2014
  13. May 28, 2013
    • Erwan Jahier's avatar
      Change the nonreg test scheme by inverting the role of v4 and v6 in the sut and the oracle. · 06ddb863
      Erwan Jahier authored
      The rationale is to avoid local vars blow-up on some
      examples. Indeed, the generated oracle blows-up (e.g., on left.lus)
      if we execute it via v4, whereas via v6 it works fine.
      
      This change triggers a couple of bugs that ware easy to fix
      (confusion between div and slash) that I've fixed along the way.
      For the others, I'll see later.
      
      Overall it's a progress albeit
        #fail: 80 -> 83
      
      indeed:
        #unresolved: 20 -> 12
        #passes		878 -> 883
        time: 335 -> 228
      06ddb863
  14. May 15, 2013
    • Erwan Jahier's avatar
      Fix test the -ec mode in presence of clocked variable. · d5870c84
      Erwan Jahier authored
      Indeed, I've intentionally removed the when statements in clocked local var like this :
      
       var
          v:int;
      
      because the following was producing a syntax error in ecexe:
      
       var
          v:int when c;
      
      But Actually, the right thing to do was to generate the following:
      
       var
          (v:int) when c;
      
      ...
      
      nb : #FAILS=90->89
      d5870c84
  15. Apr 26, 2013
  16. Apr 25, 2013
  17. Apr 17, 2013
  18. 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
  19. Apr 10, 2013
  20. 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
  21. Apr 03, 2013
  22. 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
  23. Mar 25, 2013
  24. Feb 20, 2013
  25. Feb 13, 2013
  26. Feb 07, 2013
  27. Feb 06, 2013
  28. Feb 04, 2013
    • Erwan Jahier's avatar
      Fix 2 problems in the ec mode: · aaf09392
      Erwan Jahier authored
       - translate merge on bools in terms of current and ite
       - do not print the clock info in node profile in en mode
      
      + various fixes in lustre test files.
      
      nb : now all tests in the should_work dir passes !!!
      aaf09392
  29. Feb 01, 2013
  30. Jan 31, 2013
  31. Jan 29, 2013
  32. Jan 24, 2013
  33. Jan 18, 2013
  34. Jan 11, 2013
  35. 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
Loading