闲聊几句
一直觉得这种how-to类型的文章没太大含金量,不过鉴于在M1芯片的MacBook Pro上配置好整套Scheme开发环境确实折腾了我一晚上,所以还是留个档吧。
如果你也遇到了:
- 在M1芯片下,不管是基于源码(configure/make/install)、github、brew、dmg、可执行文件… chez scheme/mit-scheme都安装不上。
- 不想被这篇文章(MIT Scheme on Apple Silicon (M1 Mac) )中如此复杂的步骤搞坏脑子。
- VS Code下载速度巨慢且时不时就网络异常。
- 传说中的Code Runner的配置入口在哪里?
- …
那么,这篇水文或许可以帮助到你(不想看废话的,可以直接拉到后面的配置部分)。
其实关于M1芯片的问题,我并没有正面解决掉,而是用了这样一段自觉还蛮巧妙的推演给绕过去了:
我们知道chez scheme或者mit-scheme实际上都不过是Scheme解释器的一种实现罢了(这里的表述并不十分准确)。只不过呢,它俩都属于把Scheme源码编译成机器码来运行的,所以才有那么多硬件相关的问题。而这个问题,早在上古时代不就已经被Java解决掉了。那么,只要找到一个满足R7规范的、基于JVM来实现的解释器,不就可以愉快的敲括号了么?
于是,我打开了一个叫 scheme.org 的网站,里面的Implementations一栏中,有一个叫kawa的实现赫然在列。
赶紧按照指引试了下,果然,成了!那一刻,我感觉Java当年的那句“Write Once, Run Everywhere”真是大写的牛逼!
说起来,最近还是有不少灵光一闪的时刻的,希望后续The Little Schemer和SICP的学习过程也能充满灵感吧!
效果图
本文假设读者有基本的命令行知识、已经安装好了JDK/JRE。
安装Scheme解释器
# 假设把kawa安装在Library目录下
cd ~/Library
# 下载最新版本的kawa
wget ftp://ftp.gnu.org/pub/gnu/kawa/kawa-latest.zip
# 解压
unzip kawa-latest.zip
# 删除原始zip包
rm -rfv kawa-latest.zip
# 在/usr/local/bin下面建立一个kawa的软连接并改名为scheme
sudo ln -s ~/Library/kawa-3.1.1/bin/kawa /usr/local/bin/scheme
以上步骤完成后,Scheme的运行时就安装好了,不妨来个Hello World试试看?
VS Code及插件安装
VS Code的安装本身没有什么好说的,最坑的其实是网速问题,解决方案也很简单:
- 在 官网 找到下载地址。
- 复制下载链接,比如:az764295.vo.msecnd.net/stable/d045…
- 把域名部分替换成国内的CDN(vscode.cdn.azure.cn)。
差不多泡杯茶的功夫就好了。
接下来是下载Code Runner插件,并把如下下面这2段配置加入到settings.json中。其中,第3行要求源文件以.scm结尾,如果你喜欢用其他的后缀的话,请自行替换。
{
"code-runner.executorMapByFileExtension": {
".scm": "scheme"
},
"code-runner.executorMap": {
"scheme": "scheme"
}
}
说实话,这个settings.json真的找的我好苦啊!