Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Gauche の Windows 上でのコンパイル手順 メモ

Gauche の Windows 上でのコンパイル手順 メモ

  • 自分がコンパイルしたとき(2016年1月~2018年7月)の参考用のメモです。
    (情報が古くなっている可能性があります)
    Windows 8.1 (64bit) で作業しました。

  • 以下の記述は、MSYS2/MinGW-w64 (64bit/32bit) の開発環境でのコンパイル手順となっています。

  1. Gauche のインストール
    事前に Gauche がインストールされている必要があります。
    以下のページに Windows用バイナリインストーラ があるので、インストールを実施ください。
    http://practical-scheme.net/gauche/download-j.html
    (すでにインストール済みであれば本手順は不要です)

    <<<コンパイルに使う Gauche のバージョンについて>>>
    開発最新版の Gauche をコンパイルするには、動作する Gauche が必要になります。
    このコンパイルに使用する Gauche は、基本的に最新リリース版であることが想定されているとのことです。
    このため、最新リリース版 (現時点では v0.9.6) の Gauche のフォルダを丸ごととっておいて、
    コンパイル時だけは、環境変数PATHを書き換えてそちらを指すようにするのが 安全なようです。

  2. MSYS2/MinGW-w64 (64bit/32bit) のインストール
    事前に MSYS2/MinGW-w64 (64bit/32bit) がインストールされている必要があります。
    以下のページを参考に、開発環境のインストールを実施ください。
    https://gist.github.com/Hamayama/eb4b4824ada3ac71beee0c9bb5fa546d
    (すでにインストール済みであれば本手順は不要です)

  3. Gauche のソースのダウンロードと展開
    Gauche の GitHub のページ
    https://github.com/shirok/Gauche
    から、Download Zip ボタン等で開発最新版のソースをダウンロードします。
    そして適当な作業用フォルダ( c:\work 等)に展開します。
    (注意) 作業用フォルダのパスには、空白を入れないようにしてください。

  4. Gauche のファイルの修正

    <<<Gaucheの開発最新版では、この修正はもう不要です(2016-8-3)>>>

    • Boehm GC v7.4.4 への更新により、gctest が FAIL するようになりました。
      とりあえずの対策としては、tools/gc-configure.gnu-gauche.in の

      --enable-large-config \
      

      という行の下に、

      --enable-gcj-support=no \
      

      という行を追加すれば、gctest が PASS するようになります(2016-7-13)。

  5. Gauche のコンパイル
    <MSYS2/MinGW-w64 (64bit) 環境の場合>
    プログラムメニューから MSYS2 の MinGW 64bit Shell を起動して、以下のコマンドを実行してください。
    <MSYS2/MinGW-w64 (32bit) 環境の場合>
    プログラムメニューから MSYS2 の MinGW 32bit Shell を起動して、以下のコマンドを実行してください。
    ( c:\work にソースを展開した場合)

    cd /c/work/Gauche
    ./DIST gen
    src/mingw-dist.sh
    

  6. テストの実行
    <MSYS2/MinGW-w64 (64bit) 環境の場合>
    プログラムメニューから MSYS2 の MinGW 64bit Shell を起動して、以下のコマンドを実行してください。
    <MSYS2/MinGW-w64 (32bit) 環境の場合>
    プログラムメニューから MSYS2 の MinGW 32bit Shell を起動して、以下のコマンドを実行してください。
    ( c:\work にソースを展開した場合)

    cd /c/work/Gauche
    make check
    

    結果は、
    Total: 19336 tests, 19336 passed, 0 failed, 0 aborted.
    のように表示されます。
    結果をファイルにも残したい場合は、上記の2行目を、

    make check 2>&1 | tee test_result.txt
    

    のように変更します。
    ( c:\work\Gauche に test_result.txt というファイルが作られます)

    <<<現状、以下の問題点があります>>>

    • ext/tls のテストで固まる。
      どうも openssl.exe の種類によって、OKのものとNGのものがあるようです(詳細原因不明)。

      c:\msys64\mingw64\bin\openssl.exe  ==> NG
      c:\msys64\mingw32\bin\openssl.exe  ==> NG
      c:\msys64\usr\bin\openssl.exe      ==> OK
      

      NGのものを消すかリネームすれば、テストが成功するようになります(2016-1-14)。

    • gdbm のテストが通らない。
      デフォルトでインストールされる gdbm はどれもNGのようです。
      (多分、Windows用のパッチを当てないと、正常に動作しない)
      このため、現状では、mingw-dist.sh の configure オプションを、
      --with-dbm=ndbm,odbm として、gdbm を外しています(2016-1-14)。

    • test/process.scm 内の pipeline のテストに失敗する(3件)。
      Windows のパイプの処理に問題があるのかもしれない(2016-7-13)。


  7. 生成したファイルのコピー
    生成した
    c:\work\Gauche-mingw-dist\Gauche-(アーキテクチャ名)
    の中身を、すべて、
    c:\Program Files\Gauche
    (もしくは c:\Program Files (x86)\Gauche )
    に上書きコピーします。
    (念のため上書き前のフォルダのバックアップを取ってから作業してください)

  8. バージョンの確認
    コマンドプロンプトを開いて以下を実行し、バージョンを確認します。

    gosh -V  
    

(2016-1-14)(2016-4-17)(2016-7-13)(2016-8-3)(2016-8-7)
(2016-10-12)(2018-7-8)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.