windows - Haskell 中 System.Info "os"函数的可能值是多少?

标签 windows haskell ghc

System.Info 中的“os”函数的可能值是多少?标准库中的包?

另外:这些值是否可靠,它们是否可以跨许多编译器移植? Windows 上的 Hugs 会返回与 Windows 上的 ghc 相同的值吗?

是否有更好的嗅探操作系统的方法?

最佳答案

GHC 的变量取自“autotools”工具套件,该工具套件生成众所周知的“configure”脚本,这些脚本几乎总是在编译某些东西时使用(./configure; make; make install )。 configure 使用标准的“编译器标识字符串”,例如用于 C 编译器的 x86_64-unknown-linux-gnu,并另外计算一组更详细的变量来标识主机平台。这些变量在 GHC 生成的 Makefile 中使用,该文件进一步生成您在 Info.hs 文件中看到的 ghcplatform.h 文件.

HUGS 使用几乎完全相同的过程来获取平台变量,除了头文件的命名不同(正如您可以在链接的源代码中看到的那样)。

由于 Windows 上的 GHC 和 HUGS98 也是使用 MinGW 和 autotools 编译的,因此变量在该平台上是一致的。

关于windows - Haskell 中 System.Info "os"函数的可能值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9341611/

相关文章:

haskell - 导致内存消耗爆炸的标准,看不到 CAF

haskell - GHC 库中的 Ord 类在哪里定义?

windows - 发布版本中与 OutputDebugString 相关的开销

java - 如果 jar java 应用程序尚未运行,则使用批处理仅启动它

windows - QT:直接渲染到 DC 的滚动小部件

arrays - 显示 IO 数组

Haskell 让表达式收敛,而使用 fix 的类似表达式不收敛

haskell - 使用 Haskell 将 [Bool] 写入二进制文件

python - Pyinstaller .exe 在 Windows 10 和 Windows 8.1 中不工作

haskell - 无可辩驳的模式不会在递归中泄漏内存,但为什么呢?