gpt4 book ai didi

Haskell:在源中指定版本的正确做法?

转载 作者:行者123 更新时间:2023-12-02 08:18:29 26 4
gpt4 key购买 nike

在源代码树中指定版本的最佳/正确做法是什么?例如,我想要的是将 VERSION 文件放在源树的顶层并获取“version”函数来读取它。

cabal 文件中有一个版本部分。是否可以通过“帮助”或“版本”功能从我的来源中读取它?在一个地方指定版本并使其全局可用的正确做法是什么?

附注Cabal 库中是否有任何函数允许您从 cabal 文件中提取任何部分并将其呈现在源代码中?然后我可以简单地从 cabal 文件中提取版本部分。

--更新--

感谢 Thomas 提供有关 Pathes_x 模块的精彩知识。只是想补充一点,显然,我不需要将任何内容放入我的 cabal 文件中。没有它一切都会正常进行。我所需要的只是按照您的建议导入 Pathes_X 。另外,我需要导入 Data.Version 以使 showVersion 函数正确格式化/打印 Version 数据类型。所以最后我得到了这样的结果:

import Paths_kvman
import Data.Version

runVersion _ = putStrLn ("Version: " ++ (showVersion version))

现在,我所需要做的就是更改 cabal 文件中的版本号,以将其传播到我的整个源代码中。正是我所需要的。谢谢。

最佳答案

Cabal 会自动为每个名为 Paths_packagename 的包生成一个模块。只需导入此包并查看它导出的 version 值即可。

编辑:例如:

module Data.Blah where

import Paths_t

func :: IO ()
func = print version

运行示例:

> func
Version {versionBranch = [0,1], versionTags = []}

请务必将 Paths_packagename 放入 cabal 文件的 Other-Modules 部分。

关于Haskell:在源中指定版本的正确做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9857710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com