Skip to content
Snippets Groups Projects
  1. Feb 04, 2009
  2. Feb 03, 2009
  3. Jan 30, 2009
  4. Jan 23, 2009
  5. 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
  6. Dec 08, 2008
  7. Dec 05, 2008
  8. Nov 28, 2008
  9. Nov 26, 2008
  10. Nov 25, 2008
    • Erwan Jahier's avatar
      Make sure that created node ident are valid and unique. · 403368c4
      Erwan Jahier authored
      To  do  that, we  centralized  the ident  name  creation  into a  new
      dedicated module Name.
      
      + fix should_work/NONREG/param_node.lus, we contained a combinational loop.
      403368c4
    • 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
  11. Nov 21, 2008
  12. Nov 20, 2008
  13. Nov 04, 2008
  14. Nov 03, 2008
  15. Oct 27, 2008
  16. Oct 24, 2008
  17. Oct 23, 2008
  18. Oct 22, 2008
  19. Sep 17, 2008
  20. Sep 15, 2008
  21. Sep 02, 2008
Loading