Skip to content
Snippets Groups Projects
  1. Aug 07, 2012
  2. Aug 03, 2012
  3. Jul 14, 2012
  4. Jul 13, 2012
  5. Jul 12, 2012
  6. 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
  7. Jul 10, 2012
  8. Jul 09, 2012
  9. Jul 06, 2012
  10. Jul 04, 2012
  11. Jun 01, 2011
    • Erwan Jahier's avatar
      Fix several bugs in static argument handling, in particular when · 65695130
      Erwan Jahier authored
      parametric nodes (or predef iterators) are nested.
      
      Before, nested iterators were handles as follows : a source-level
      (i.e., not compiled) alias node was created on-the-fly, and then
      compiled. But this way to proceed was buggy for static args coming
      from nested iterators or nested parametric nodes.
      
      Now, I rely on Inline.iterators to get rid of iterators (the iterator
      inlining is now recursive).
      65695130
  12. Jul 06, 2010
  13. May 05, 2010
  14. Apr 13, 2010
  15. Apr 08, 2010
  16. 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
  17. Mar 11, 2009
  18. Mar 09, 2009
  19. Mar 03, 2009
  20. Feb 25, 2009
  21. 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
  22. Feb 10, 2009
  23. Feb 09, 2009
  24. Feb 06, 2009
  25. Feb 04, 2009
  26. Feb 03, 2009
  27. Jan 30, 2009
  28. 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
  29. Nov 28, 2008
  30. Nov 25, 2008
    • Erwan Jahier's avatar
      Replace constants by their values. · 3f2aa6c4
      Erwan Jahier authored
      The rationale for this change is that this is necessary for constants
      appearing static  arg to  be replaced. One  problem is that  they are
      handled in exactly  the same way as top-level  constants, which could
      be left  un-expanded. I could make  something in order  to not expand
      those top-levelconstants, but is it worth the trouble ?
      
      To do that,  I have changed sligthly the  representation of Eff.ARRAY
      (the elements  are now  attached to the  constructor itself,  and the
      operands  is empty)  and  the one  of  array constant  (we attach  to
      Array_const_eff  a  list  instead  of  an  array,  for  the  sake  of
      homogeneity) with what is done in Eff.val_eff.
      3f2aa6c4
  31. Nov 03, 2008
Loading