Windows下编译最新版ChezScheme
据说ChezScheme是最快的神级编译器,一秒钟几百万行,王垠说的2秒内编译自身绝不是夸张(看这里《揭秘Chez Scheme》,Scheme中文社区)。ChezScheme由美国印第安纳大学的Kent Dybvig博士发明,后来卖给了思科CISCO,作为内部绝密的编译器工具来运行苛刻的计算任务,现在已经开源,仓库地址是https://github.com/cisco/ChezScheme。有关如何开始使用Chez Scheme,请看官方的文档:Chapter 2. Using Chez Scheme,有关Scheme的使用入门,这里推荐一本中文翻译的《Yet Another Scheme Tutorial》,这是一本面向初学者的温和且循序渐进的Scheme教程。目标读者是仅有些许编程经验的PC用户。
下面来介绍下截止到2019.11.19日的最新版如何在Windows下编译一个ChezScheme,其它环境下如何编译请看源码下的文件BUILDING的介绍:Building Chez Scheme Version 9.5.3。请注意这个版本号,之前的版本编译方法可能与本文介绍的不同,本人也为此踩坑了不少时间。
1,首先,安装Visual Studio 2015/2017,注意必须选择按照Visual C++ 桌面开发组件,否则你在最后一步无法编译Scheme。
2,安装msys2,这是一个Windows下的Linux Shell环境,可以让你在Windows上使用Linux命令,并且它还自带包管理功能。安装完后按照官网提示更新下msys2,会给你安装一堆组件,默认都安装。
3,打开Visual Studio命令提示符,选择“vs2015 x64 native tools command prompt”,vs2017类似,中文名称是“适用于VS2017的本机命令工具提示”。
4,在上面的Visual Studio命令提示工具里面,输入 c:\msys64\msys2_shell.cmd,打开msys2的命令提示窗口。
5,在msys2里面安装GCC编译工具和Git工具,如果Git已经安装跳过。
pacman -S gcc base-devel
pacman -S git
6,下载Chez Scheme源码,然后进行编译前配置,最后编译。如果源码已经下载跳过。
git clone https://github.com/cisco/ChezScheme.git
cd ChezScheme
cd wininstall
make workareas
make
7,最后等make完成,我们在ChezScheme目录 a6nt\bin\a6nt 下可以看到scheme.exe,双击它即可运行。
8,将a6nt目类下的 bin目录和boot目录都复制到一个新建的build目录下,然后创建一个 run.bat 文件,文件内容如下:
@ECHO off
ECHO Chez Scheme for Windows. make by bluedoctor. 2019.11.18
bin\a6nt\scheme.exe
build目录的文件结构如下:
E:\ChezScheme\build\ChezScheme>dir /s
驱动器 E 中的卷是 LENOVO
卷的序列号是 E2D7-2E41 E:\ChezScheme\build\ChezScheme 的目录 2019/11/18 23:23 <DIR> .
2019/11/18 23:23 <DIR> ..
2019/11/18 23:23 <DIR> bin
2019/11/18 23:19 <DIR> boot
2019/11/19 10:38 94 run.bat
1 个文件 94 字节 E:\ChezScheme\build\ChezScheme\bin 的目录 2019/11/18 23:23 <DIR> .
2019/11/18 23:23 <DIR> ..
2019/11/18 23:19 <DIR> a6nt
0 个文件 0 字节 E:\ChezScheme\build\ChezScheme\bin\a6nt 的目录 2019/11/18 23:19 <DIR> .
2019/11/18 23:19 <DIR> ..
2019/11/18 20:25 764,928 csv953.dll
2019/11/18 20:25 7,102 csv953.exp
2019/11/18 20:25 1,581,688 csv953.ilk
2019/11/18 20:25 12,368 csv953.lib
2019/11/18 20:25 2,084,864 csv953.pdb
2019/11/18 20:25 112,640 scheme.exe
2019/11/18 20:25 430,080 scheme.pdb
7 个文件 4,993,670 字节 E:\ChezScheme\build\ChezScheme\boot 的目录 2019/11/18 23:19 <DIR> .
2019/11/18 23:19 <DIR> ..
2019/11/18 23:19 <DIR> a6nt
0 个文件 0 字节 E:\ChezScheme\build\ChezScheme\boot\a6nt 的目录 2019/11/18 23:19 <DIR> .
2019/11/18 23:19 <DIR> ..
2019/11/18 20:25 2,751,464 csv953md.lib
2019/11/18 20:25 2,564,910 csv953mt.lib
2019/11/18 17:14 36,556 equates.h
2019/11/18 20:24 27,609 mainmd.obj
2019/11/18 20:25 25,538 mainmt.obj
2019/11/18 17:14 1,624,450 petite.boot
2019/11/18 17:14 982,321 scheme.boot
2019/11/18 17:14 8,675 scheme.h
2019/11/18 20:24 92,444 scheme.res
9 个文件 8,113,967 字节 所列文件总数:
17 个文件 13,107,731 字节
14 个目录 514,061,447,168 可用字节
9,最后运行run.bat文件,就可以看到期待已久的Chez Scheme了:
Chez Scheme for Windows. make by bluedoctor. 2019.11.18
Chez Scheme Version 9.5.3
Copyright 1984-2019 Cisco Systems, Inc. > (+ 1 2 3 4 5 6 7 8 9 10)
55
> (/ 1 3)
1/3
>
10,上面是在Chez Scheme运行的简单Scheme程序,第一行代码运行的是一个累加多个自然数的程序,如果用C#,需要一个List<int>变量来存储列表数据,然后循环处理,代码量要多好几行。第二行Scheme代码,它的结果直接以分数表示了,很高级。
有关Scheme更多的程序介绍,请看本文推荐的学习链接。如果你不想这么麻烦的自己来编译,也可以考虑直接使用给予.NET DLR的IronScheme,具体请看我原来的文章:《.NET DLR 上的IronScheme 语言互操作&&IronScheme控制台输入中文的问题》。
如果你不想编译或者安装任何一个Scheme程序,但又想看看Scheme是什么样子,推荐访问下面的网址,它提供了一个Web版本的Scheme编译运行环境:
Windows下编译最新版ChezScheme的更多相关文章
- osg for android学习之一:windows下编译(亲测通过)【转】
1. 首先需要一个OSG for android的环境 (1)NDK 现在Eclipse 对NDK已经相当友好了,已经不需要另外cygwin的参与,具体可以参考 Android NDK开发篇(一):新 ...
- 在Windows下编译mongo-c-driver 1.3.x
在Windows下编译mongo-c-driver 1.3.x 在Windows下编译mongo-c-driver 1.3.x 1.安装 MSYS2https://sourceforge.net/pr ...
- [分享]windows下编译squid的经验(转)
squid是什么我这里就不说了,这不是本文的重点,总之它是一个集:代理.加速.缓存.负载均衡.防盗链.访问控制等多功能的一个超牛X开源软件,如今已经广泛应用于很多领域.对于缓存和加速这一领域,如今各大 ...
- [转] Windows下编译OpenSSL
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- Windows下编译objective-C
Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode 目录 ...
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
- 如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
- 在Windows下编译OpenSSL(VS2005和VC6)
需要说明的是请一定安装openssl-0.9.8a . openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...
- windows下编译java源文件的编码错误
import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...
随机推荐
- 模块的 __name__
模块的 __name__ 每个模块都有一个名称,而模块中的语句可以找到它们所处的模块的名称.这对于确定模块是独立运行的还是被导入进来运行的这一特定目的来说大为有用.正如先前所提到的,当模块第一次被导入 ...
- vue中 props 多层组件嵌套传值
如:三层嵌套. 父组件=>子组件=>孙子 1. 父组件引用子组件component11 , isShow传值给子组件component11 2. 子组件用 props 接受父组件的值, ...
- [CODEVS3366] 矿石
题目描述 Description 经历了千辛万苦,小J找到了N块矿石.这些矿石都有毒性,但只要将两块矿石放在一起,再分开即可解毒.但任一两块矿石都可以互相吸引.为了降低吸引力,小J将他们放入一个直径仅 ...
- phpfpm的原理是什么?
php-fpm是一种master(主)/worker(子)多进程架构,与nginx设计风格有点类似.master进程主要负责CGI及PHP环境初始化.事件监听.子进程状态等等,worker进程负责处理 ...
- pycharm(社区版2019.1版本)打开README.md文件卡死解决办法
现象:pycharm(社区版2019.1版本)打开README.md文件卡死 解决办法: 将插件Markdown support前的勾选√去掉,保存修改后重启pycharm即可
- Go中http超时问题的排查
背景 排查 推测 连接超时 疑问 http2 解决超时 并发连接数 服务端限制 真相 重试 解决办法 问题1 背景 最新有同事反馈,服务间有调用超时的现象,在业务高峰期发生的概率和次数比较高.从日志中 ...
- 推荐一款简单易用线上引流测试工具:GoReplay
一. 引流测试产生背景 日常大部分的测试工作都是在测试环境下,通过模拟用户的行为来对系统进行验证,包括功能以及性能.在这个过程中,你可能会遇到以下问题: 用户访问行为比较复杂,模拟很难和用户行为一致, ...
- 推荐一款现代化的脚手架项目《hope-boot》
简介: > 一款现代化的脚手架项目.企业开发?接外包?赚外快?还是学习?这都能满足你,居家必备,值得拥有
- any_value()函数
转载自:https://blog.csdn.net/Peacock__/article/details/90608246 MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模 ...
- Spring之Zuul初步使用(十)
一.zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架. ...