[commit: ghc] master: Without -O do not complain about SPECIALISE pragmas for non-INLINABLE things (d8d65a2)
simonpj at microsoft.com
Mon Jun 13 14:41:56 CEST 2011
OK. I've pushed a patch that makes the check test also for HscTarget = HscNothing. This seems to fix it.
(I'm still getting that ghcpkg05 failure though.)
| -----Original Message-----
| From: cvs-ghc-bounces at haskell.org [mailto:cvs-ghc-bounces at haskell.org] On Behalf Of
| Simon Peyton-Jones
| Sent: 13 June 2011 08:50
| To: Ian Lynagh; cvs-ghc at haskell.org
| Subject: RE: [commit: ghc] master: Without -O do not complain about SPECIALISE
| pragmas for non-INLINABLE things (d8d65a2)
| | > + ; dflags <- getDOpts
| | > + ; if not (dopt Opt_Specialise dflags) then
| | > + return  -- Ignore SPECIALISE pragmas for imported things
| | > + -- when -O is not on; otherwise we get bogus
| | > + -- complaints about lack of INLINABLE pragmas
| | > + -- in the imported module (also compiled without -O)
| | > + -- Notably, when Haddocking the base library
| | Don't we actually want to ignore SPECIALISE pragmas if the module the
| | thing was imported from was compiled without -O, rather than if the
| | importing module is being compiled without -O?
| Yes, we want the former, but we don't have a way to answer that question at the
| moment. So this is a crude approximation.
| | The patch from Simon doesn't seem to fix the issue for me either. And it
| | seems it can't --- the haddock is called (at least for me) with
| | "--optghc=-O" so testing for Opt_Specialise will return True. I've run
| | haddock by hand without optimization and as expected haddock doesn't
| | fail. So the questions are: why is haddock called with --optghc=-O and
| | why is it failing with it?
| A second question is this: if haddock is compiling with -O why doesn't the unfolding
| appear in the interface file.
| I don't know how to fix the first problem easily; maybe the second is easier?
| Cvs-ghc mailing list
| Cvs-ghc at haskell.org
More information about the Cvs-ghc