Skip to content
Snippets Groups Projects
  1. May 31, 2013
  2. May 17, 2013
  3. 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
  4. Feb 20, 2013
  5. Feb 01, 2013
  6. Jan 16, 2013
  7. 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
  8. Aug 08, 2012
  9. Jul 12, 2012
  10. 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
  11. Jul 10, 2012
  12. Mar 03, 2009
  13. Feb 25, 2009
  14. Feb 11, 2009
    • Erwan Jahier's avatar
      Various fixes for the lv4 backend: · 672af392
      Erwan Jahier authored
       - expr such as "current x,y" should be written "current (x,y)"
       - abstract   struct  or   array   types  were   handled  as   extern
         types, which  prevent the struct  and array expanser to  work them
         out. In order to fix that, I have added an Abstract_type_eff variant
         to Eff.type_ which contains the concerte type.
      672af392
  15. Dec 12, 2008
    • Erwan Jahier's avatar
      Break the recursivity is the Eff.node_exp representation (which fix nested iter. pbs). · 5c722d86
      Erwan Jahier authored
      In  short, the  rationale for  this change,  is that  it is  having a
      recursive node_exp is
      - useless,
      - too complicated,
      - wrong w.r.t. nesting iterator calls
      
      In long:
      
      - It is useless because, at the  Eff level, a node cannot call itself
        via one  of its  static arg (which  was where the  recursivity came
        from).
      
      - and indeed, it  is much simpler to consider that  a static arg node
        can only be ident.long that identifies a node alias.
      
        This  means of  course, that  nested iterators  have  been unnested
        before,   inventing  alias   node  names   along  the   way...  And
        polymorphism makes thing difficult once again.
      
      - But the  *big* problem  with a recursive  node_exp is that  it make
        things very  complicated to (lic)dump nested  iterator call because
        of polymorphism!   Actually, it  even makes thing  complicated when
        the iterators were themselves not nested in the source code !
      
        Some ugly  things were done in  LicDump to unnest  those calls when
        printing node_exp.   But this uglyness  have a price:  tricky code,
        and bugs! Indeed, nested iterators calls were wong for example when
        using  the --inline-iterator  mode (but  i would  not  be surprised
        that is wrong in other cases...).
      
      Hence,  LicDump  is  simpler,  but  of course  LazyCompiler  is  more
      complicated.  But  this  is  reasonable:  a  pretty-printer  is  not
      supposed to be complicated.
      5c722d86
  16. Sep 15, 2008
  17. Aug 29, 2008
  18. Aug 28, 2008
    • Erwan Jahier's avatar
      Avoid the generation of polymorphic type variables when iterating on · 8d8dcbd0
      Erwan Jahier authored
      polymorphic operators.
      
      For instance, when LicDumping expression such as
      
          map<<map<<+,4>>,5>>
      
      an  alias  node was  created  for  "map<<+,4>>"  (to unnest  iterator
      calls). Fut this node is intrically overloaded (polymorphic). In this
      change, we  look at  the type this  innr call  is used to  generate a
      specialised (mono-morphic) version of the node alias.
      
      Note that we currently still generate type variable when users write
      
           node mymap = map<<+,4>>;
      8d8dcbd0
  19. Jul 22, 2008
  20. 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
  21. Jun 09, 2008
    • Erwan Jahier's avatar
      Use type_eff_ext everywhere I was using type_eff (and rename · 00c67618
      Erwan Jahier authored
      type_eff_ext into type_eff btw). The  rationale is to be able to type
      alias           on           polymorphic          nodes           (cf
      test/should_fail/semantics/bad_call03.lus,  that now  have  a correct
      error msg).  It also makes  to code more compact (no more translation
      from one  to the  other), and more  general (type_eff_ext  being more
      general than type_eff).  User polymorphic nodes should be easy now.
      
      move all the code in parsey.mly into parserUtil.ml (ease the debug).
      00c67618
  22. May 28, 2008
Loading