
| Does Hoopl handle Bottom internally? By "Bottom" I mean the loop-breaking thing
| that means "this predecessor does not execute". From the debugging output I
I don't think so. You supply a lattice
data DataflowLattice a = DataflowLattice
{ fact_name :: String -- Documentation
, fact_bot :: a -- Lattice bottom element
, fact_join :: JoinFun a -- Lattice join plus change flag
-- (changes iff result > old fact)
}
and the fact_bot value should really be the bottom element.
Simon
| -----Original Message-----
| From: Jan Stolarek [mailto:jan.stolarek@p.lodz.pl]
| Sent: 31 July 2013 17:45
| To: Edward Z. Yang
| Cc: Simon Peyton-Jones; ghc-devs
| Subject: Re: Two Hoopl questions
|
| Does Hoopl handle Bottom internally? By "Bottom" I mean the loop-breaking thing
| that means "this predecessor does not execute". From the debugging output I
| added to my code it looks that it in fact does because it doesn't do a join when
| first analyzing a block with two predecessors. If this is really the case then what is
| the purpose of defining bottom in DataflowLattice?
|
| Janek
|
| ----- Oryginalna wiadomość -----
| Od: "Edward Z. Yang"