ChezScheme 程序或库如何找出它正在运行的操作系统和机器架构(从Scheme代码中)?
最佳答案
来自Chez Scheme Version 9 User's Guide :
第 6.10 节。字节向量
(native-endianness) import (rnrs) or (rnrs bytevectors)
第 12.4 节。编译、评估和加载
(machine-type) import (chezscheme)
第 12.15 节。环境查询与设置
(scheme-version) import (chezscheme)
(scheme-version-number) import (chezscheme)
(petite?) import (chezscheme)
(threaded?) import (chezscheme)
(interactive?) import (chezscheme)
不幸的是,(machine-type)
是 Chez 惯用的神秘字符串(而不是像 x86-64
这样的标准符号),并且可能会因版本而异。其他程序的工作方式显而易见。
我在 r7rs-benchmarks 中找到了这些 repo 协议(protocol)。
解析机器类型
机器类型字符串的构造如下:
- 以空字符串开头。
- 对于支持线程的构建,请附加字母
t
。 - 附加机器架构。
- 附加操作系统。
当前架构和操作系统:
(define arch-pairs
'(("a6" . amd64)
("arm32" . arm32)
("i3" . i386)
("ppc32" . ppc32)))
(define os-pairs
'(("fb" . freebsd)
("le" . linux)
("nb" . netbsd)
("nt" . windows)
("ob" . openbsd)
("osx" . macos)
("qnx" . qnx)
("s2" . solaris)))
要查找所有机器类型,请在 the c
directory of the Chez Scheme source repo 中查找所有名为 Mf-*
的 makefile。 .
关于scheme - 在 Chez Scheme 中查找操作系统和机器类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57147564/