
That's not really true though. The compiler implements beta-reduction; and inlining; and directly implements the "Push" rules in exprIsConApp_maybe.
S
| -----Original Message-----
| From: Richard Eisenberg [mailto:eir@cis.upenn.edu]
| Sent: 29 April 2013 14:30
| To: Simon Peyton-Jones
| Cc: 'Norman Ramsey'; ghc-devs@haskell.org; Simon Marlow
| Subject: Re: GHC internals
|
| It's true that the document in GHC doesn't include operational
| semantics, but that's because GHC doesn't ever really implement a
| concrete operational semantics for Core, at least that I'm aware of.
| There are various places that a certain operational semantics is
| assumed. However, I don't think there's one place that really states the
| semantics in any concrete way. The goal of the document you attached is
| to have an easy-to-read and easy-to-maintain version of Core, with a
| direct connection to the implementation. With the operational semantics
| never stated, including those rules seemed to go against that goal.
|
| That said, it wouldn't be hard for me to imagine an operational
| semantics and add it to the document -- I just don't know how I would
| check my imagined version against the implemented one.
|
| Richard
|
| On Apr 29, 2013, at 8:38 AM, Simon Peyton-Jones