Proposal: EPHEMERAL pragma

Jan-Willem Maessen jmaessen at alum.mit.edu
Thu Oct 25 21:18:44 CEST 2012


On Thu, Oct 25, 2012 at 9:56 AM, José Pedro Magalhães <jpm at cs.uu.nl> wrote:

> Hi all,
>
> Following up on a chat with Simon Peyton Jones at ICFP, I would like to
> discuss the
> possible introduction of a EPHEMERAL pragma. For example:
>
> {-# EPHEMERAL Rep #-}
>> data Rep = ...
>>
>
> This pragma would indicate that the programmer intends the Rep datatype
> not to
> be present in the final generated core code. Its proposed semantics are
> the following:
>
> 1. Make the compiler very keen to inline any functions that produce or
> consume Rep.
>
> 2. If Rep is exported, make all functions that operate on Rep INLINABLE
> (that is, make
> their code available for inlining in other modules).
>
> 3. Emit a warning if the generated core code still contains uses of Rep.
>

Are you restricting Rep to non-recursive uses?  Or has GHC's inliner
finally learned how to behave well in the presence of recursion?

-Jan-Willem Maessen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20121025/26ad15c7/attachment.htm>


More information about the Glasgow-haskell-users mailing list