2014-10-07 45 views
1

我需要解决存在于(我认为)GHC(7.8.0 - 7.8.2)中的bug。我不认为我可以使用__GLASGOW_HASKELL__,因为我们只获取主要和次要版本号,并且我不想认为我可以使用base库版本(尽管我找不到与ghc版本关联的列表 - >base版本)。基于GHC点释放的条件编译

换句话说,我需要做的:

#if GHC < 7.8.3 
    this code 
#else 
    this code 
#endif 
+1

这可能会显得很哈克做,但你可以使用运行'ghc --version'的cabal preConf钩子并将合适的CPP arg传递到构建阶段。 – user2407038 2014-10-07 22:41:59

+0

感谢您的建议!实际上,它看起来像GHC 7.8.3附带的4.7.0.1版基本版本,所以我想也许希望我可以用它来设置CPP标志。有人可以确认吗? – jberryman 2014-10-07 23:41:26

回答

1

我莫名其妙地错过了这个在docs,但是这很容易用impl()

library foo 
    ... 
    if impl(ghc >= 7.8.3) 
     cpp-options: -DTRYREADMVAR