首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >hackage.haskell.org文档约定含义

hackage.haskell.org文档约定含义
EN

Stack Overflow用户
提问于 2012-07-18 00:19:28
回答 1查看 375关注 0票数 18

我目前正在阅读http://hackage.haskell.org/packages/archive/containers/latest/doc/html/Data-Set.html#t:Set

下面的细节传达了什么(对于一个绝对的haskell初学者)?

可移植性:可移植性(还有哪些是可移植性价值?)

稳定性:临时性(还有哪些是稳定值?)

维护者: libraries@haskell.org

Safe Haskell:安全(有什么不安全的地方吗?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-18 01:07:38

这些字段来自包的.cabal文件,该文件列出了包的一些元数据。许多字段可以具有自由形式的值,因此开发人员可以自己决定在该字段中写入什么,并且对于每个字段不能包含的内容没有固定的“规则”。

可移植性:描述了软件包在Haskell编译器之间的可移植性,有时也描述了操作系统之间的可移植性。我看到的唯一值是“可移植的”和“不可移植的”。不可移植包可能依赖于只存在于GHC编译器中的Haskell语言扩展,并且不适用于任何其他Haskell编译器,例如UHC,或者可能依赖于某些仅存在于UNIX中而不能在Windows中运行的系统库。

稳定性:指定了一个库有多稳定,这包括它的可靠性(例如,它崩溃的频率),但最重要的是它的API改变的频率。我已经看到了“实验性”、“临时”和“稳定”的值,但可能会有更多的列表(在Cabal文档中有时无法找到)。当一个包是实验性的,这意味着它的接口可能会在每个版本之间发生变化,因为开发人员还没有决定如何实现它,或者因为开发人员只是在某个地方实现了一些理论上的功能,并不打算维护这个包;他/他只是想实现这个功能,看看它是否可能,并将这个包作为一个演示发布。当一个包是临时的,这意味着一般的API是稳定的,因此可能会有包的更新,只修复内部错误,不添加或删除任何函数。然而,由于它是临时的,当开发人员决定添加新功能或重构库时,它可能会在未来发生变化。有了一个稳定的库,这基本上永远不会发生;API可能永远不会改变,而且实现是“坚如磐石”的,或者是API的参考实现或其他什么。

包的maintainer是负责包的个人或人员组。电子邮件指定了如何联系到这些维护者。

"Safe Haskell“字段指的是一个GHC扩展,您可以阅读有关here的更多信息。一个不安全的模块使用了像unsafePerformIO这样的函数,它破坏了Haskell的一些基本“规则”,比如引用透明性。不安全的模块也可能使用不安全的语言扩展。安全模块是不使用任何不安全函数等的模块,也不导入任何其他不安全模块。可信模块使用不安全的函数(直接可信,间接可信),但作者已经确保模块的公共API安全地隐藏了这一事实,因此从外部看,模块似乎在所有意图和目的上都是安全的。这些是“安全Haskell”字段的选项。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11526701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档