在 Chez Scheme 中查找操作系统和机器类型

Find operating system and machine type in Chez Scheme

Chez Scheme 程序或库如何找出它 运行 在哪个操作系统和机器架构上(从 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 存储库中找到了这些。

正在解析机器类型

机器类型字符串构造如下:

  1. 以空字符串开头。
  2. 对于支持线程的构建,附加字母 t
  3. 追加机器架构。
  4. 附加操作系统。

当前架构和操作系统:

(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。