1 時半起床.
本を読む.
イアン・ハッキング『数学はなぜ哲学の問題になるのか』.
応用数学の一例として航空学, その中でも効率的な翼 (airfoil) の開発における数学と工学との関係について語られている.
ハッキングは, 通常は数学者は理想の理論を追い求め, 工学者・エンジニアは現実的な解を追い求めるとした上で, 20 世紀初頭のイギリスの航空学においてはある種の逆転現象が起きていたと言う.
飛行機の効率的な翼の構造に伴う気体の運動を解明するためには, ナヴィエ-ストークス方程式という非線形の偏微分方程式を解く必要がある.
ところが, この方程式は 3 次元以上では極めて難しく, 数学的に特殊解を求めることすら著しい困難が伴う (そもそもそのような特殊解でも過去に得られているのだろうか).
そこで数学者がとったのは, 数多くの風洞実験を行い, 理論をそれに合わせていくという実践的な方法だった.
一方で工学者・エンジニアはこの困難な問題を単純化 ── ある種の理想化 ── して, 解を求めるという方法をとった.
数学者が現実に向き合い, 工学者・エンジニアが理想論に向かったと言うのである.
これはどうなのだろうか.
数学者も絶えず実験を行っている. どれほど抽象的な分野であったとしてもそうだ.
昔ならば具体例の計算を紙に書くことによって, 現在ならばおそらくコンピューターによるシミュレーションを行うことによって, である.
一足飛びに理想化を行うわけではないのではないか.
工学者・エンジニアであっても, おそらくこの姿勢に変わりは無いと思う.
小さなプロトタイプを作り, 徐々にプロダクトに仕上げていく.
現実的な解を追い求めるために, 理論の吟味を要すると思う.
それから数学をやる.
圏論の教科書を読み進める.
小さな補題の証明だが, 自分の考えと理解が広がっていくのが楽しい.
現在はまだ体調が安定しないが, ゆっくり読んでいきたい.
午前中に内科の定期検査を受ける.
外に出るととても寒い.
いつものように検査を受け, 結果について話し合う.
幸い今月も問題は無かった.
医院を出ると, 相変わらずの寒さで冷たい雨が降りそうな空気である.
買い物をして帰宅.
朝の数学の続きをやる.
区切りを付けて夕食を作る.
今夜はおでんである.
傍らでコンピューターの作業をしながらゆっくり煮る.
美味しくできた.
残念ながら大根にはまだ火が十分に通っていないが, 明日にはもっと美味しくなるだろう.
眠剤と頓服を飲んで早めに布団に入る.
2023年12月05日
Emacs: Emacs HEAD のコンパイルとインストール ── 2023 年 12 月
Emacs HEAD のコンパイルとインストールを行う.
環境変数の設定.
コンパイル・インストール。
時間はかかったが問題無く終わった. ほっとする.
環境変数の設定.
AUTOCONF_VERSION="2.71"
AUTOMAKE_VERSION="1.16"
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/gcc/x86_64-unknown-openbsd7.4/11.2.0
コンパイル・インストール。
$ ./autogen.sh
$ ./configure \
'CFLAGS=-I/usr/include -I/usr/X11R6/include -I/usr/local/include' \
'LDFLAGS=-L/usr/lib -L/usr/X11R6/lib -L/usr/local/lib -lgccjit' \
--prefix=/usr/local \
--mandir=/usr/local/share/man \
--infodir=/usr/local/info \
--with-x-toolkit=athena \
--with-imagemagick \
--with-xaw3d \
--with-x \
--without-xim \
--with-xpm=ifavailable \
--with-native-compilation
$ git pull
$ gmake bootstrap
$ gmake check
# gmake install
時間はかかったが問題無く終わった. ほっとする.
M-x emacs-version
This is GNU Emacs 30.0.50 (build 1, x86_64-unknown-openbsd7.4,
X toolkit, cairo version 1.18.0, Xaw3d scroll bars) of 2023-12-05
システム管理: OpenBSD のアップグレード作業 ── 2023 年 12 月 (3)
/usr/src 以下のベースシステムのソースコードのコンパイルがエラー終了する問題に関して少し調べた.
今回のエラーで, そのような名前のメンバー関数が存在しないと通知されたものは以下の通りである.
LLVM/clang の以前のソースコードを見ると, これらのメンバー関数は実際に存在し, 定義されている.
なぜ, 今回の OpenBSD のソースコードで削除されたのか?
古いソースコードから上記のメンバー関数をコピーしてきて再コンパイルすることも考えたが, 全体の整合性がとれるか, そもそもそうしたところでコンパイルが通るかどうかはわからない. 簡単には行かないだろう.
これらのメンバー関数が削除された何らかの理由があるのかも知れないが, わからない.
現在の OpenBSD 用の LLVM/clang のソースコードは改修途上にあるのかも知れない.
どうも自分の手に負える類のものではないようである.
残念だが, ベースシステムのコンパイルは一旦諦める.
X 関連のファイルのコンパイル・インストールを行う.
パッケージのアップデートを行う.
ところが, 途中で
というエラーメッセージが出て先に進めなくなってしまう.
それで, pkg_add を対話的に実行するオプション -i を付けて再度実行する.
なぜか今度は成功した. こちらの判断も求められることは無く終わった.
ひとまず, 今回のアップグレード作業はこれで区切りを付けることにする.
今回のエラーで, そのような名前のメンバー関数が存在しないと通知されたものは以下の通りである.
emitCast, emitRem, emitDiv, emitBitOr, emitShl, emitShr, emitBitXor,
emitSubPtr, emitCall, emitIncPop, emitDecPop, emitPop.
LLVM/clang の以前のソースコードを見ると, これらのメンバー関数は実際に存在し, 定義されている.
なぜ, 今回の OpenBSD のソースコードで削除されたのか?
古いソースコードから上記のメンバー関数をコピーしてきて再コンパイルすることも考えたが, 全体の整合性がとれるか, そもそもそうしたところでコンパイルが通るかどうかはわからない. 簡単には行かないだろう.
これらのメンバー関数が削除された何らかの理由があるのかも知れないが, わからない.
現在の OpenBSD 用の LLVM/clang のソースコードは改修途上にあるのかも知れない.
どうも自分の手に負える類のものではないようである.
残念だが, ベースシステムのコンパイルは一旦諦める.
X 関連のファイルのコンパイル・インストールを行う.
# cd /usr/xenocara
# make bootstrap
# make obj
# make build
パッケージのアップデートを行う.
# pkg_add -uv
ところが, 途中で
pkg_add: Installation of llvm-13.0.0p21 failed, partial installation recorded as partial-llvm-13.0.0p21
というエラーメッセージが出て先に進めなくなってしまう.
それで, pkg_add を対話的に実行するオプション -i を付けて再度実行する.
# pkg_add -uv -i
なぜか今度は成功した. こちらの判断も求められることは無く終わった.
ひとまず, 今回のアップグレード作業はこれで区切りを付けることにする.
$ uname -a
OpenBSD mybsd.local 7.4 GENERIC.MP#24 amd64