2014-10-07 3 views
1

Мне нужно обходиться bug, присутствующим в (я думаю) GHC (7.8.0 - 7.8.2). Я не думаю, что могу использовать __GLASGOW_HASKELL__, так как мы получаем только основные и младшие номера версий, а я не думаю Я могу использовать версию библиотеки base (хотя я не могу найти список, ассоциирующий выпуски ghc ->base версий).Условная компиляция на основе точечного релиза GHC

Другими словами, мне нужно сделать:

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

Это, вероятно, кажется, очень Hacky, но вы могли бы используйте крючок preConf, который запускает 'ghc -version' и передает соответствующий CPP arg на этап сборки. – user2407038

+0

Спасибо за предложение! На самом деле, похоже, что база 4.7.0.1 поставляется с GHC 7.8.3, поэтому я думаю, возможно, надеюсь, что смогу использовать это, чтобы установить флаг CPP. Может ли кто-нибудь подтвердить? – jberryman

ответ

1

я как-то пропустил это в docs, но это легко сделать с impl()

library foo 
    ... 
    if impl(ghc >= 7.8.3) 
     cpp-options: -DTRYREADMVAR 
Смежные вопросы