2024-09-22の日報

読み終わるまでの目安 約2分

何度も同じところを行ったり来たりしてる気もするけど、package-inferred-systemの理解度に進捗が見られたので良い日。

今日やったこと

package-inferred-system完全に理解した

これsystem間の「依存関係読み込み順」を解決するものだったのか…! と解説記事には始めから書いてあったけど、理解できるかよって気持ちがある。

自分はまずこの記事を読んでpackage-inferred-systemに対する誤解を解いて、

package-inferred-systemに期待したもの - octahedron
これまでのあらすじ package-inferred-systemは、pakageのinferred-systemである。 なんだか体がだるい感じのぼくはこころに学びを沁みわたらせるため、ライブラリのパッケージをすっきりと書くことはできないか考えてみようと思った。Common Lispを書いていてディレクトリ構成とパッケージ構造を同じにしたいとき、以下の2点が面倒だ: パッケージ名をわざわざパッケージ定義に書くこと パッケージ名とディレクトリ名を一致させること パッケージ構造を変えたとき、変更が漏れやすい そこでぼくは、1ファイル1パッケージのスタイルでプログラミングできるらしいpackage…
package-inferred-systemに期待したもの - octahedron favicon https://octahedron.hatenablog.jp/entry/2017/05/21/110420
package-inferred-systemに期待したもの - octahedron

この記事で具体例を頭に入れるようにした。

package-inferred-systemでモダンなCommon Lispライブラリを書く - t-cool
この記事は、David Vázquezさんの記事 [How to write a modern Lisp library with ASDF3 and Package Inferred System] (http://davazp.net/2014/11/26/modern-library-with-asdf-and-package-inferred-system.html)の日本語訳です。Davidさんに許可をいただき、日本語訳を共有させていただけることになりました。 はじめに 最近よく見かけるパッケージの使い方は、package.lispかpackages.lispを加える手法です。多くの…
package-inferred-systemでモダンなCommon Lispライブラリを書く - t-cool favicon https://t-cool.hateblo.jp/entry/2018/08/14/110746
package-inferred-systemでモダンなCommon Lispライブラリを書く - t-cool

あとはこのサンプルプロジェクトを読むなり自分で写経してみるなりして手元で動かしてみる。

GitHub - windymelt/cl-package-inferred-system-exercise: An Example Common Lisp project using package-inferred-system
An Example Common Lisp project using package-inferred-system - windymelt/cl-package-inferred-system-exercise
GitHub - windymelt/cl-package-inferred-system-exercise: An Example Common Lisp project using package-inferred-system favicon https://github.com/windymelt/cl-package-inferred-system-exercise/tree/master
GitHub - windymelt/cl-package-inferred-system-exercise: An Example Common Lisp project using package-inferred-system

あとASDFをいじる人はこれにも目を通してると思うけど、この箇所は大事なのでよく読んだ方が良い。 ADSFは基本~/common-lisp~/.local/share/common-lisp/source/を見にいくので、ここにPATHを通してないせいで認識されないっていうのはやりがち。

ASDFがシステムを見つけられるように設定する (ASDF マニュアル)
ASDFがシステムを見つけられるように設定する (ASDF マニュアル)
ASDFがシステムを見つけられるように設定する (ASDF マニュアル) favicon https://privet-kitty.github.io/misc/asdf-ja/ASDFgasisutemuwoJian-tukerareruyouniShe-Ding-suru.html#ASDF_304c_30b7_30b9_30c6_30e0_3092_898b_3064_3051_3089_308c_308b_3088_3046_306b_8a2d_5b9a_3059_308b

ただこの方法はnix developだと使えないからなんとかして使う方法を編み出す必要がある。 このあたりはcl-nix-liteだとうまくいったし、明日はこのコードをcl-nix-liteへと移していこうかなと。

明日以降やりたいこと

cl-nix-lite

先述したCommon Lispのやつに取り組みたい。 roveを使った単体テストがゴールかな。

Gleamの記事を書く

Gleam 1.5.0の解説にしようと思っているので、リリースノートを読んでいきたい。 #lang-gleamで実況するかも。