-
自分がコンパイルしたとき (2025年8月) の参考用のメモです。
(情報が古くなっている可能性があります)
Windows 11 24H2 (64bit) で作業しました。 -
以下の記述は、MSYS2/MinGW-w64 UCRT64 (64bit) の開発環境でのコンパイル手順となっています。
-
UCRT (ユニバーサル C ランタイム) は、マイクロソフトの新しい C ランタイムライブラリです。
MSYS2/MinGW-w64 UCRT64 (64bit) は、この UCRT を利用するバイナリを作成します。
UCRT は、Windows 10 以後ではデフォルトで入っていますが、
それより古い Windows では、インストールが必要のようです。(詳細未確認)
これまでの MSVCRT との違いは、
https://www.msys2.org/docs/environments/
の「MSVCRT vs UCRT」に記載されています。
-
Gauche のインストール
事前に Gauche がインストールされている必要があります。
以下のページに Windows用バイナリインストーラ があるので、インストールを実施ください。
http://practical-scheme.net/gauche/download-j.html
(すでにインストール済みであれば本手順は不要です)<<<コンパイルに使う Gauche のバージョンについて>>>
開発最新版の Gauche をコンパイルするには、動作する Gauche が必要になります。
このコンパイルに使用する Gauche は、基本的に最新リリース版であることが想定されているとのことです。
このため、最新リリース版 (現時点では v0.9.15) の Gauche のフォルダを丸ごととっておいて、
コンパイル時だけは、環境変数 PATH を書き換えてそちらを指すようにするのが 安全なようです。
-
MSYS2/MinGW-w64 UCRT64 (64bit) のインストール
事前に MSYS2/MinGW-w64 UCRT64 (64bit) がインストールされている必要があります。
以下のページを参考に、開発環境のインストールを実施ください。
https://gist.github.com/Hamayama/7810d2a1a59a872a2fbc271345151f77
(すでにインストール済みであれば本手順は不要です)
-
Gauche のソースのダウンロードと展開
Gauche の GitHub のページ
https://github.com/shirok/Gauche
から、[Code] - [Download Zip] ボタン等で開発最新版のソースをダウンロードします。
そして適当な作業用フォルダ ( c:\work 等 ) に展開します。
(注意) 作業用フォルダのパスには、空白を入れないようにしてください。
-
Gauche のコンパイル
<MSYS2/MinGW-w64 UCRT64 (64bit) 環境>
プログラムメニューから MSYS2 の UCRT64 Shell を起動して、以下のコマンドを実行してください。
( c:\work にソースを展開した場合)cd /c/work/Gauche ./DIST gen src/mingw-dist.sh( mingw-dist.sh には、いろいろなオプションを指定できます。
src/mingw-dist.sh --help で確認できます)
-
テストの実行
<MSYS2/MinGW-w64 UCRT64 (64bit) 環境>
プログラムメニューから MSYS2 の UCRT64 Shell を起動して、以下のコマンドを実行してください。
( c:\work にソースを展開した場合)cd /c/work/Gauche make check結果は、
Total: 36455 tests, 36455 passed, 0 failed, 0 aborted.
のように表示されます。
結果をファイルにも残したい場合は、上記の2行目を、make check 2>&1 | tee test_result.txtのように変更します。
( c:\work\Gauche に test_result.txt というファイルが作られます)
-
生成したファイルのコピー
生成した
c:\work\Gauche-mingw-dist\Gauche-(アーキテクチャ名)
の中身を、すべて、
c:\Program Files\Gauche
に上書きコピーします。
(念のため上書き前のフォルダのバックアップを取ってから作業してください)
-
バージョンの確認
コマンドプロンプトを開いて以下を実行し、バージョンを確認します。gosh -V
(2025-8-17)