Skip to content
  • Herbert Valerio Riedel's avatar
    Use 0/1 instead of YES/NO as `__GLASGOW_HASKELL_TH__` macro value · eae40e16
    Herbert Valerio Riedel authored
    Using `YES`/`NO` causes all sorts of problems as CPP doesn't work on
    symbolic tokens but rather on scalar values.
    
    A use like
    
       #if __GLASGOW_HASKELL_TH__==YES
       {-# LANGUAGE TemplateHaskell #-}
       #endif
    
    doesn't do what one may naively expect, and neither does
    
       #if __GLASGOW_HASKELL_TH__
       {-# LANGUAGE TemplateHaskell #-}
       #endif
    
    *unless* `YES` happens to evaluate to a non-zero scalar.
    
    `__GLASGOW_HASKELL_TH__ was originally introduced via D396 / #9734.
    
    Fixes #11322
    
    Reviewed By: austin
    
    Differential Revision: https://phabricator.haskell.org/D1723
    eae40e16