|  Ok, should it be INLINE[n] or NOINLINE[n], and what is the right value
|  of n?

Well it depends on the rules.  The offending ones are below

    libraries/parallel/Control/Parallel/Strategies.hs:513:2: warning:
        Rule "parList/rseq" may never fire
          because 'rseq' might inline first
        Probable fix: add an INLINE[n] or NOINLINE[n] pragma for 'rseq'
    
    libraries/parallel/Control/Parallel/Strategies.hs:582:1: warning:
        Rule "evalBuffer/rseq" may never fire
          because 'rseq' might inline first
        Probable fix: add an INLINE[n] or NOINLINE[n] pragma for 'rseq'
    
    libraries/parallel/Control/Parallel/Strategies.hs:583:1: warning:
        Rule "parBuffer/rseq" may never fire
          because 'rseq' might inline first
        Probable fix: add an INLINE[n] or NOINLINE[n] pragma for 'rseq'

All three appear to be always-active, and hence will run in the first phase 
(2).  So delaying inlining rseq to phase 1 (phases count downwards) would do.  
So INLINE[1] or NOINLINE[1]

|  (I always have to look up the documentation for these, just a
|  suggestion but maybe it would be better to call them INLINEAFTER[n]
|  and INLINEBEFORE[n], or something?)

Maybe.  But NOINLINE[n] means "do not inline until phase n; and you are free to 
do what you like thereafter"  So it would have to be NOINLINEUNTIL[n].  But 
yes, that'd be quite do-able.

Simon

|  
|  Cheers
|  Simon
_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to