[GHC] #7602: Threaded RTS performing badly on recent OS X (10.8?)

GHC ghc-devs at haskell.org
Wed Jun 12 19:01:48 CEST 2013


#7602: Threaded RTS performing badly on recent OS X (10.8?)
-------------------------------+--------------------------------------------
    Reporter:  simonmar        |       Owner:  thoughtpolice
        Type:  bug             |      Status:  new          
    Priority:  normal          |   Milestone:  _|_          
   Component:  Runtime System  |     Version:  7.7          
    Keywords:                  |          Os:  MacOS X      
Architecture:  x86_64 (amd64)  |     Failure:  None/Unknown 
  Difficulty:  Unknown         |    Testcase:               
   Blockedby:  7678            |    Blocking:               
     Related:                  |  
-------------------------------+--------------------------------------------

Comment(by thoughtpolice):

 Well, technically I think that under GCC's -traditional-cpp mode, clang
 SHOULD respect our code. The problem is I just don't think the "be
 insensitive to leading whitespace" rule is implemented. :(

 I don't think turning one or the other off is an option. Base in
 particular has a few modules with both CPP and Rules, but if you disable
 one or the other, things will break. Either the preprocessor directives
 become a syntax error, or you disable the RULES and they are ignored - but
 the preprocessor would error on them anyway because it runs first.

 There is another problem. We can change GHC and all of its dependent
 libraries to remove leading whitespace on lines that would be ambiguous to
 clang. Unfortunately, 3rd party libraries do this kind of formatting to,
 so this could break user programs for a very bizarre reason.

 I think it should be possible to fix this in a transparent way, but it
 won't be pretty. Basically, we'll need to preemptively strip out lines
 that begin with whitespace, where the first non whitespace character is #.
 Something like "s/^\s+\#(.*)/#$1/" or whatever in regex-ese. In the mean
 time I think it should be possible to get clang building by reformatting a
 few of libraries using RULES improperly, which should not be too much work
 I think.

 Finally, the various TLS models makes no difference on the example using
 __thread I posted above. I posit that TLS models are silently ignored on
 OS X, where Apple is free to do what they wish.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7602#comment:22>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list