Transmit inline pragmas faithfully
authorsimonpj@microsoft.com <unknown>
Mon, 22 May 2006 11:02:56 +0000 (11:02 +0000)
committersimonpj@microsoft.com <unknown>
Mon, 22 May 2006 11:02:56 +0000 (11:02 +0000)
commit39dd1943735841b6cc62c91134189371ba571f38
treeb83939c79b74e8b467d0f096620c716ca1034eb8
parent5a8a219c131b56c75dbb3110da3ab5ae3715ff66
Transmit inline pragmas faithfully

*** WARNING: you will need to recompile your libraries
***      when you pull this patch (make clean; make)

The inline pragma on wrapper-functions was being lost; this patch
makes it be transmitted faithfully.

The reason is that we don't write the full inlining for a wrapper into
an interface file, because it's generated algorithmically from its strictness
info.  But previously the inline pragma as being written out only when we
wrote out an unfolding, and hence it was lost for a wrapper.

This makes a particular difference when a function has a NOINLINE[k] pragma.
Then it may be w/w'd, and we must retain the pragma.  It's the only consistent
thing to do really.

The change does change the binary format of interface files, slightly.
So you need to recompile all your libraries.
compiler/iface/BinIface.hs
compiler/iface/IfaceSyn.lhs
compiler/iface/TcIface.lhs