Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何为Cabal Hook导入版本_Haskell_Cabal - Fatal编程技术网

Haskell 如何为Cabal Hook导入版本

Haskell 如何为Cabal Hook导入版本,haskell,cabal,Haskell,Cabal,我正在为Cabal编写一个非常简单的“钩子”,它在上一个版本中运行良好,但当我将Cabal“降级”到旧版本1.22、1.20等时,它停止工作 原因可能是某些模块的路径不断变化,例如:import Distribution.Simple.LocalBuildInfo 有没有办法跨不同版本管理这些更改?我需要一个“CPP”宏(如果是哪一个)还是有更好的方法来管理它?通常是的,依赖于库版本的代码使用Cabal自己定义的宏,通过CPP宏来管理它。有关一些示例,请参见。就你而言: #if MIN_VERS

我正在为Cabal编写一个非常简单的“钩子”,它在上一个版本中运行良好,但当我将Cabal“降级”到旧版本1.22、1.20等时,它停止工作

原因可能是某些模块的路径不断变化,例如:
import Distribution.Simple.LocalBuildInfo


有没有办法跨不同版本管理这些更改?我需要一个“CPP”宏(如果是哪一个)还是有更好的方法来管理它?

通常是的,依赖于库版本的代码使用Cabal自己定义的宏,通过CPP宏来管理它。有关一些示例,请参见。就你而言:

#if MIN_VERSION_Cabal(1,22,0)
    -- something working in Cabal 1.22 or above
#else
    -- something working in Cabal versions prior to 1.22
#endif
这不太理想,我会告诉你的