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編譯運行環境:

http://eval.ironscheme.net/

 

原文出處:https://www.cnblogs.com/bluedoctor/p/11887867.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章