Skip to content
Snippets Groups Projects
  1. Aug 29, 2019
  2. May 17, 2019
  3. May 03, 2019
  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. Feb 25, 2016
  6. Jul 01, 2015
  7. Feb 27, 2015
  8. 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
  9. Apr 25, 2013
  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. Feb 07, 2013
  13. Feb 06, 2013
  14. Feb 01, 2013
  15. Jan 31, 2013
  16. 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
  17. Aug 10, 2012
    • Pascal Raymond's avatar
      gros menage : · fbd5b3bc
      Pascal Raymond authored
      - plus de macros prefefinies (e.g. FILL, BOOLRED etc...)
        (remplacé par la notion de BuiltIn)
      - split.ml adapté et remanié pour rentrer dans le moule
        source to source (voir DoSplit)
      fbd5b3bc
  18. Jul 14, 2012
  19. Jul 10, 2012
  20. Jul 06, 2012
  21. Oct 23, 2008
  22. Sep 15, 2008
  23. Aug 29, 2008
  24. Jul 01, 2008
  25. Jun 06, 2008
  26. May 29, 2008
  27. May 27, 2008
  28. May 21, 2008
    • Erwan Jahier's avatar
      Add support to be able to use iterators in node aliases. · 65b93560
      Erwan Jahier authored
      Also, node aliased to other nodes were handled poorly: I was replacing
      in the syntax tree the node by its alias. Now, I really define
      the alias node using the aliases one.
      
      For instance,
      
          node toto(x:t) returns (y:t);
          let
            ...
           tel
           node titi = toto;
           node tutu(...) returns(...);
           let
              ...
      	z = titi(a);
           tel
      
      was compiled into
      
          node toto(x:t) returns (y:t);
          let
            ...
           tel
      
           node tutu(...) returns(...);
           let
              ...
      	z = toto(a);
           tel
      
      Now, I generate
      
           node toto(x:t) returns (y:t);
           let
             ...
           tel
           node titi(i1:t) returns (o1:t);
           let
             o1 =toto(i1);
           tel
           node tutu(...) returns(...);
           let
              ...
      	z = titi(a);
           tel
      
      which is equivalent, but closer to the original program.
      6.13.0
      65b93560
  29. May 20, 2008
  30. May 07, 2008
    • Erwan Jahier's avatar
      In symbolTab.ml, change · 956514c2
      Erwan Jahier authored
      	type 'a hereflagged =
      	  Here of 'a
      	| NotHere of Ident.long
      into
      	type 'a elt =
      	  Local of 'a
      	| Imported of Ident.long * static_arg list
      
      i.e., i am basically doing two things:
       - fix poor naming
       - adding static arg to nodes
      
      indeed, when compiling an equation that involves nodes defined
      in another package, I need to check that the static args and the
      static params match. Therefore I need to have the static params !
      Therefore I add them (I will use them in the next commit).
      
      Moreover, in SyntaxTreeCore.node_info, the static_params list was
      an option type, which is a bit weird (empty lists are enough to
      represent node with no static params).
      6.9.0
      956514c2
  31. Apr 02, 2008
    • Erwan Jahier's avatar
      Add a --compile-all-items option, and use it in the non-regression · b6db7c6b
      Erwan Jahier authored
      tests.
      
      Also, Add the possibility to have several lustre files in the
      command-line arguments.
      
      remove the power operator.
      
      Define a lustre.lus that contains a packaged version of Lustre
      predefined operators. It will be in the standard lustre library,
      and should be accessible directly (path).
      6.8.0
      b6db7c6b
  32. Mar 28, 2008
  33. Mar 20, 2008
    • Erwan Jahier's avatar
      Add two new modules, Predef and PredefSemantics, that deals with predefined · 4c0a0b1f
      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
      4c0a0b1f
  34. Mar 11, 2008
    • Erwan Jahier's avatar
      Simplify the node_eff representation as well as change the names · 57431a16
      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
      57431a16
    • Erwan Jahier's avatar
      Simplify significantly the node representation. The rational for this · 7f628ceb
      Erwan Jahier authored
      change is
      	- make the parser simpler
      	- make the compilation simpler
      	- make everything simpler actually...
      	- accepts more correct programs.
      	- etc.
      
      Indeed, before, we had specific syntax nodes for
      	- extern nodes
      	- aliased nodes
      	- abstract nodes
      	- normal nodes
      which leads to duplicate code everywhere. Now, we have a more generic
      representation.
      
      The nice thing is that the parser is much simpler, and a lot of
      duplicated code is avoided (for example, extern and abstract nodes do
      now share the same code).
      
      The bad thing is that we have more "assert false" lying everywere due
      to this «too rich» representation, in order to deal with cases
      that can never happen. For exemple, we have to do something with
      nodes that have  both an alias and a body. This cannot happen of
      course, so we issue an "assert false", which is a little bit painful,
      as it have been rejected by the parser anyway.
      
      Moreover, for some reason, external node params could not be clocked,
      and cannot have static params. Maybe it is not possible to compile
      such nodes (I don't know yet), but we should not raise a syntax error IMHO.
      
      Somehow, what was done was very similar to ask the parser to perform type
      checking.
      6.3.0
      7f628ceb
  35. Mar 06, 2008
  36. Feb 20, 2008
Loading