iovxw

Chez Scheme 中的 machine-type

魔法的缩写

在 Chez Scheme 中可以用 (machine-type) 获取当前的运行环境

比如 64 位 Linux 获取到的是 a6le, 而如果启用了线程则是 ta6le

第一次看完全是一头雾水, 这到底是什么玩意?

其实只要注意看一下 Makefile, 就能明白了


格式如下:

是否启用线程 + CPU + 操作系统


如果启用了线程就在前面加上 "t"

i3 a6 分别是 i386 和 amd64 的缩写, 其他同

le 是 Linux; nt 是 Windows; fb 是 FreeBSD; nb 是 NetBSD……


做了个表格, 可以点击标题排序

machine-type 是否启用线程 架构 位元 操作系统
a6fb 否 x86 64 FreeBSD
a6le 否 x86 64 Linux
a6ob 否 x86 64 OpenBSD
a6osx 否 x86 64 Darwin
a6nb 否 x86 64 NetBSD
a6nt 否 x86 64 Windows
a6s2 否 x86 64 SunOS
arm32le 否 ARM 32 Linux
ppc32le 否 PowerPC 32 Linux
i3qnx 否 x86 32 QNX
i3fb 否 x86 32 FreeBSD
i3le 否 x86 32 Linux
i3ob 否 x86 32 OpenBSD
i3osx 否 x86 32 Darwin
i3nb 否 x86 32 NetBSD
i3nt 否 x86 32 Windows
i3s2 否 x86 32 SunOS
ta6fb 是 x86 64 FreeBSD
ta6le 是 x86 64 Linux
ta6ob 是 x86 64 OpenBSD
ta6osx 是 x86 64 Darwin
ta6nb 是 x86 64 NetBSD
ta6nt 是 x86 64 Windows
ta6s2 是 x86 64 SunOS
tarm32le 是 ARM 32 Linux
tppc32le 是 PowerPC 32 Linux
ti3qnx 是 x86 32 QNX
ti3fb 是 x86 32 FreeBSD
ti3le 是 x86 32 Linux
ti3ob 是 x86 32 OpenBSD
ti3osx 是 x86 32 Darwin
ti3nb 是 x86 32 NetBSD
ti3nt 是 x86 32 Windows
ti3s2 是 x86 32 SunOS