1

Chez Scheme 程序或库如何(从 Scheme 代码中)找出它在哪个操作系统和机器架构上运行?

4

1 回答 1

1

来自Chez Scheme 第 9 版用户指南

第 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)))

要查找所有机器类型,请查找Chez Scheme 源代码库目录中命名Mf-*的所有 makefile 。c

于 2019-08-16T12:48:02.760 回答