前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows下编译最新版ChezScheme

Windows下编译最新版ChezScheme

作者头像
用户1177503
发布2020-06-19 10:21:07
1.4K0
发布2020-06-19 10:21:07
举报
文章被收录于专栏:程序员的SOD蜜程序员的SOD蜜

据说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用户。

代码语言:txt
复制
下面来介绍下截止到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已经安装跳过。

代码语言:javascript
复制
pacman -S gcc base-devel
pacman -S git

6,下载Chez Scheme源码,然后进行编译前配置,最后编译。如果源码已经下载跳过。

代码语言:javascript
复制
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 文件,文件内容如下:

代码语言:javascript
复制
@ECHO off
ECHO Chez Scheme for Windows. make by bluedoctor. 2019.11.18
bin\a6nt\scheme.exe

build目录的文件结构如下:

代码语言:javascript
复制
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了:

代码语言:javascript
复制
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编译运行环境:

http://eval.ironscheme.net/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档