Skip to content
Snippets Groups Projects
  1. Aug 28, 2008
  2. Aug 25, 2008
    • Erwan Jahier's avatar
      Unnest array iterator calls by modifying the Lic printer. · 65c62005
      Erwan Jahier authored
      The  idea  is  the  following:  each  time  a  nested  iterator  call
      (map<<map<<n,3>>,4>>) is  encountered, we  create a fresh  alias name
      (create_alias_name) ad we  add it in the node_alias_tbl.   At the end
      of the  compilation, LicDump.dump_node_alias is  called, which prints
      the definition of those node aliases.
      
      For example, the expression  "map<<map<<n,3>>,4>>" is printed like this:
      
          map<<_node_alias1, 4>>
      
      and later, the node alias is defined:
      
          node _node_alias1(x:int) returns(y:int); let y = map<<n,3>>(x); tel;
      65c62005
  3. Aug 19, 2008
    • Erwan Jahier's avatar
      Split expressions into atomic expressions. In other words, introduce · d7905aff
      Erwan Jahier authored
      as many  new local  variables as necessary  so that an  expression is
      made at most of one operator.
      
      The rational  for that  is to obtain  a lic  code that is  trivial to
      clock check (nested node calls, for example, make it less simple).
      
      The old behavior can still be obtained using --keep-nested-calls.
      
      During  that  change,   I  realised  that  I  did   not  clock  check
      asserts. Hence, I have also added this check.
      d7905aff
  4. Jul 22, 2008
  5. Jul 04, 2008
  6. Jun 26, 2008
    • Erwan Jahier's avatar
      A new implementation of EvalClock, that is more general. · 5dd64311
      Erwan Jahier authored
      Not yet implemented (assert false): iterators, struct
      
      Add a UnifyClock module, and rename Unify into UnifyType.
      
      nb : a lot of test are now broken, because
         - the clock checking is now plugged ;-)
         - iterators, struct are not yet implemented
      5dd64311
  7. Jun 03, 2008
    • Erwan Jahier's avatar
      Wrap the parser output with a new function, · e64e1031
      Erwan Jahier authored
      SolveIdent.recognize_predef_op  that  replaces  node call  by  Predef
      constructor  when   necessary,  via  a  complete   traversal  of  the
      SyntaxTree (instead  of doing it  in the parser). The  rationales for
      this change are that:
      
      - it is quite tedious to do it in parser as multiple locations are involved
      - I did missed some locations
      - It makes the parser more focused on parsing issues
      - that traversal  is a first step  do deal with  idref solving (hence
       the name of the new module that contains that function
      
      Note that lsrc/test/should_work/fab_test/lecteur.lus was using
      "plus" as a variable ident, which raised an error, which
      e64e1031
  8. May 30, 2008
  9. May 28, 2008
  10. May 20, 2008
  11. May 15, 2008
    • Erwan Jahier's avatar
      Fix a bug where, when defining a package exporting an abstract type · 16344043
      Erwan Jahier authored
      t, and a node returning such a t, the compiler was actually returning
      the type definition of t (instead of the abstract type).
      
      In  order  to fix  that,  it  was necessary  to  add  in argument  of
      Lazycompiler.solve_x_idref  a  flag  (named provide_flag)  indicating
      whether the  item being  compiled appears in  the provide, or  in the
      body part of the package.
      
      This fix  triggered another bug that  we also fix: indeed,  it is not
      correct to return  a compile error when the  provided parameters of a
      node is not equal to  its implementation. Indeed, such parameters can
      be abstract type that are defined in that package.
      
      The test "should_work/packEnvTest/packages.lus" is now ok.
      6.9.1
      16344043
  12. May 02, 2008
  13. 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
    • Erwan Jahier's avatar
      Add stuff to output the lic file. · 2b30a91d
      Erwan Jahier authored
      For non-regression tests, do not use Lazycompiler.test function
      anymore and just use  LazyCompiler.node_check instead.
      
      put in the new file compiledDataDump.ml all the stuff
      related to string convertions of CompiledData items.
      6.7.0
      2b30a91d
  14. Feb 15, 2008
    • Erwan Jahier's avatar
      Resolve the inconsistant use of node and oper identifiers in the code. · de2a5f14
      Erwan Jahier authored
      To do that, we :
      
      (1) totally remove  (in the  ocaml code) the  use of "oper",  and use
      "node" instead.  Indeed, a node  is a memoryfull operator, as opposed
      to function that are memoryless operators.  However, lus2lic does not
      really care about memoryless  and memoryfull information. Therefore I
      prefer  to use  node everywhere,  and to  flag node_info  to indicate
      whether it has memories or not.
      
      (2) change the syntaxTreeCore type to make it more general. Indeed,
          the distinction between functions and nodes was
      
          - redundant:  extern nodes  and (extern)  functions  were handled
          differently (NodeExtern versus ExtNode (was named FUNC before)).
      
          - and  incomplete:   it  was  not  possible   to  provide  static
            parameters to function, nor to define functions with body, etc.
      
      Now a  function is  just a memoryless  node. The check  that function
      indeed use no memory will be done later.
      
      (3) also,  change  the  parser   so  that  functions  with  body  are
          accepted.
      
      (4) in order  to do it step by  step, I add the  "extern" keyword" so
          that extern nodes and functions are more easy to parse. I will
          remove it later.
      de2a5f14
  15. Feb 12, 2008
  16. Feb 06, 2008
    • Erwan Jahier's avatar
      src/syntaxTree.ml · 1a14b111
      Erwan Jahier authored
      src/syntaxTreeCore.ml (new file)
      	Split      syntaxTree.ml      into     syntaxTree.ml      and
      	syntaxTreeCore.ml. The idea is that lic2loc should be able to
      	use syntaxTreeCore.ml verbatim.
      
      src/lxm.ml
      src/lxm.mli
      	remove pack_name from  this module, so that it  can be shared
      	with  lic2loc too  (this is  mandatory  since it  is used  by
      	SyntaxTreeCore)
      
      src/compile.ml
      src/compiledData.ml
      src/evalConst.ml
      src/evalConst.mli
      src/evalType.ml
      src/evalType.mli
      src/expandPack.ml
      src/lazyCompiler.ml
      src/main.ml
      src/parser.mly
      src/symbolTab.ml
      src/symbolTab.mli
      src/syntaxTab.ml
      src/syntaxTreeDump.ml
      src/syntaxTreeDump.mli
      src/test/Makefile
      src/test/packs.lus
      src/test/test.res.exp
      	opening SyntaxTreeCore  module, and inline  the definition of
      	Lxm.pack_name.
      
      	Also,  begin  to  replace  oper  by node  or  predef_node  in
      	identifiers, in order to get a more consistant naming scheme.
      1a14b111
  17. Jan 30, 2008
    • Erwan Jahier's avatar
      src/main.ml: · 36f22c50
      Erwan Jahier authored
      src/lxm.ml:
      src/global: (new file)
         Add the lustre file name in error messages.
      
      src/compiledData.ml:
         Better Data structure dumping (string_of_type_eff,string_of_const_eff),
         and more dumping (LazyCompiler.check_const_interface).
      
      src/lazyCompiler.ml:
         Fix a bug that prevented enum constants to be exported.
         Indeed, in LazyCompiler.const_check_interface_do, only extern
         constants (Extern_const_eff) were accepted in the provided part, whereas
         enum contants (Enum_const_eff) should also be accepted.
      
         Force constants interface checking in LazyCompiler.test.
      
      src/test/Makefile:
      src/test/onlyroll.lus:
      src/test/heater_control.lus:
      src/test/pfs.lus:
         Some more test files.
      6.1.1
      36f22c50
    • Erwan Jahier's avatar
      Lazycompiler.do_type: · b6ee23f1
      Erwan Jahier authored
      	Try to split this 400 lines (!) function.
      	+ Factorize some duplicated code.
      b6ee23f1
  18. Jan 28, 2008
  19. Dec 21, 2007
  20. Dec 18, 2007
  21. Dec 17, 2007
  22. Dec 14, 2007
  23. Dec 05, 2007
  24. Nov 15, 2007
    • Erwan Jahier's avatar
      Un peu de mnage avant de commencer. · 3b6c999f
      Erwan Jahier authored
      	new file:   src/.compile.ml
      	modified:   src/TAGS
      	modified:   src/main.ml
      	modified:   src/syntaxe.ml
      
       Changed but not updated:
         (use "git add/rm <file>..." to update what will be committed)
      
      	deleted:    src/doc/html/EvalConst.html
      	deleted:    src/doc/html/EvalType.html
      	deleted:    src/doc/html/ExpandPack.html
      	deleted:    src/doc/html/LazyCompiler.html
      	deleted:    src/doc/html/Lxm.html
      	deleted:    src/doc/html/SrcTab.html
      	deleted:    src/doc/html/SymbolTab.html
      	deleted:    src/doc/html/Verbose.html
      	deleted:    src/doc/html/index.html
      	deleted:    src/doc/html/index_attributes.html
      	deleted:    src/doc/html/index_class_types.html
      	deleted:    src/doc/html/index_classes.html
      	deleted:    src/doc/html/index_exceptions.html
      	deleted:    src/doc/html/index_methods.html
      	deleted:    src/doc/html/index_module_types.html
      	deleted:    src/doc/html/index_modules.html
      	deleted:    src/doc/html/index_types.html
      	deleted:    src/doc/html/index_values.html
      	deleted:    src/doc/html/style.css
      	deleted:    src/doc/html/type_EvalConst.html
      	deleted:    src/doc/html/type_EvalType.html
      	deleted:    src/doc/html/type_ExpandPack.html
      	deleted:    src/doc/html/type_LazyCompiler.html
      	deleted:    src/doc/html/type_Lxm.html
      	deleted:    src/doc/html/type_SrcTab.html
      	deleted:    src/doc/html/type_SymbolTab.html
      	deleted:    src/doc/html/type_Verbose.html
      	deleted:    src/lpp.prj
      	deleted:    src/md5.ml
      	deleted:    src/ocamldoc.out
      	deleted:    src/parser.output
      	deleted:    src/t.ml
      	deleted:    src/v.ml
      	deleted:    src/xx.ml
      3b6c999f
  25. Oct 19, 2007
Loading