4 時起床.
数学をやる.
入院中に読み返していた 教科書 のノートに記述の誤りやミスタイプが結構あった. これを修正する.
少し頭を使ったせいか眠くなってしまう.
小一時間ほど寝た.
その後, コンピューターの設定作業を行う.
いろいろと難儀したが, 午後までかかって何とか終了.
夕食は近所のラーメン屋に行く.
ラーメンを食べるのは 3 か月振りなので嬉しい.
ラーメンと餃子.
美味しい. 満足した.
薬を飲んで休む.
2024年05月31日
システム管理: Gauche をインストールする
Gauche (Scheme Scripting Engine) をインストールしたい.
以前 Gauche 0.9.12pre-p1 をインストールしたきりで, その後のアップデートを行っていない.
スクリプト言語として, あらためて Gauche を使っていきたいので一からインストールする.
まず最新版の Gauche 0.9.15 をインストールし, それを用いて開発版 Gauche をコンパイル・インストールする.
Gauche のインストールスクリプト get-gauche.sh を取得する.
get-gauche.sh の中で GNU tar を使用しているので, 次のように変更する.
現在インストールしてある旧バージョンの Gauche (手元の環境の場合は 0.9.12pre-p1) をアンインストールする.
スクリプトの実行がうまく行った場合 /usr/local 以下に変更を加えるので, 念のため '--sudo' オプションを指定している.
Gauche を ダウンロード・インストール する.
ここでは, スクリプトによるインストールが途中で失敗した時に後から対応しやすいように '--keep-builddir' オプションを指定している.
実行するとスクリプトから gmake check が実行される際にエラー:
が発生する.
インストールプログラムはエラーで終了した (core が生成される).
残しておいた作業ディレクトリーに移動し, コマンドラインで
を実行し, Gauche をインストールする.
以上の準備の元で, 開発版 Gauche をインストールする.
ここで, configure スクリプト実行時に,
という警告が出るが, 現在の Gauche では configure スクリプトの '--disable-threads' オプションは無くなっているようなので, そのまま gmake を実行する. スレッドは pthread ライブラリが使用されるが, これは後で gmake check によるテスト時にエラーとなる.
これで Gauche のコンパイル・インストールが完了する.
以前 Gauche 0.9.12pre-p1 をインストールしたきりで, その後のアップデートを行っていない.
スクリプト言語として, あらためて Gauche を使っていきたいので一からインストールする.
まず最新版の Gauche 0.9.15 をインストールし, それを用いて開発版 Gauche をコンパイル・インストールする.
Gauche のインストールスクリプト get-gauche.sh を取得する.
$ curl https://raw.githubusercontent.com/shirok/get-gauche/master/get-gauche.sh \
-o get-gauche.sh
get-gauche.sh の中で GNU tar を使用しているので, 次のように変更する.
--- get-gauche.sh.orig Fri May 31 11:11:06 2024
+++ get-gauche.sh Fri May 31 11:11:18 2024
@@ -368,7 +368,7 @@ function do_fetch_and_cd {
echo "Failed URL:" $API/$desired_version.tgz
exit 1
fi
- tar xf Gauche-$desired_version.tgz
+ gtar xf Gauche-$desired_version.tgz
rm Gauche-$desired_version.tgz
# The actual directory name may differ when $version is latest or snapshot
cd Gauche-*
現在インストールしてある旧バージョンの Gauche (手元の環境の場合は 0.9.12pre-p1) をアンインストールする.
$ bash ./get-gauche.sh --uninstall --sudo
スクリプトの実行がうまく行った場合 /usr/local 以下に変更を加えるので, 念のため '--sudo' オプションを指定している.
Gauche を ダウンロード・インストール する.
$ bash ./get-gauche.sh --keep-builddir
ここでは, スクリプトによるインストールが途中で失敗した時に後から対応しやすいように '--keep-builddir' オプションを指定している.
実行するとスクリプトから gmake check が実行される際にエラー:
Signals delivery fails constantly at GC #4
Signals delivery fails constantly
Abort trap (core dumped)
・ ・ ・ ・
Total: 39480 tests, 39473 passed, 7 failed, 2 aborted.
が発生する.
インストールプログラムはエラーで終了した (core が生成される).
残しておいた作業ディレクトリーに移動し, コマンドラインで
$ cd builddir/Gauche-0.9.15/
$ ./configure --prefix=/usr/local --mandir=/usr/local/share/man --infodir=/usr/local/info
$ gmake
$ gmake check
$ doas gmake install
を実行し, Gauche をインストールする.
以上の準備の元で, 開発版 Gauche をインストールする.
$ git clone https://github.com/shirok/Gauche.git
$ cd ./Gauche
$ ./DIST gen
$ AUTOCONF_VERSION="2.71" AUTOMAKE_VERSION="1.16" \
./configure --prefix=/usr/local --mandir=/usr/local/share/man \
--infodir=/usr/local/info
ここで, configure スクリプト実行時に,
checking thread type...
configure: WARNING: Gauche with pthread on OpenBSD has unresolved issues.
We recommend you to build without threads (--disable-threads)
unless you're trying to fix the issues.
See https://github.com/shirok/Gauche/issues/276 and
https://github.com/shirok/Gauche/issues/334 .
という警告が出るが, 現在の Gauche では configure スクリプトの '--disable-threads' オプションは無くなっているようなので, そのまま gmake を実行する. スレッドは pthread ライブラリが使用されるが, これは後で gmake check によるテスト時にエラーとなる.
$ gmake
$ gmake check -k
・ ・ ・ ・
Total: 39549 tests, 39546 passed, 3 failed, 2 aborted.
$ doas gmake install
これで Gauche のコンパイル・インストールが完了する.
$ gosh -V
Gauche scheme shell, version 0.9.15-p1 [utf-8,pthreads], x86_64-unknown-openbsd7.4
(version "0.9.15-p1")
(command "gosh")
(scheme.id gauche)
(languages scheme r5rs r7rs)
(encodings utf-8)
(website "https://practical-scheme.net/gauche")
(build.platform "x86_64-unknown-openbsd7.4")
(build.configure "--prefix=/usr/local" "--mandir=/usr/local/share/man" "--infodir=/usr/local/info")
(scheme.path "/usr/local/share/gauche-0.98/site/lib" "/usr/local/share/gauche-0.98/0.9.15-p1/lib")
(threads pthreads)
(gauche.net.tls)