何度も同じところを行ったり来たりしてる気もするけど、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…
https://octahedron.hatenablog.jp/entry/2017/05/21/110420
この記事で具体例を頭に入れるようにした。
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を加える手法です。多くの…
https://t-cool.hateblo.jp/entry/2018/08/14/110746
あとはこのサンプルプロジェクトを読むなり自分で写経してみるなりして手元で動かしてみる。
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
https://github.com/windymelt/cl-package-inferred-system-exercise/tree/master
あとASDFをいじる人はこれにも目を通してると思うけど、この箇所は大事なのでよく読んだ方が良い。
ADSFは基本~/common-lisp
と~/.local/share/common-lisp/source/
を見にいくので、ここにPATHを通してないせいで認識されないっていうのはやりがち。
ASDFがシステムを見つけられるように設定する (ASDF マニュアル)
ASDFがシステムを見つけられるように設定する (ASDF マニュアル)
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
で実況するかも。