パッケージマネージャを自作するときに考えること
プログラミング言語を自前で創っていると,パッケージマネージャが欲しくなってくるものだ.既存パッケージマネージャやそのラッパーによる配布で事足りることも多いが,自前言語の要件とうまく合わなかったりして,真に自分で実装せねばならないこともある.そうした場合,パッケージマネージャをどんな設計にすべきだろうか? 言語固有の都合には触れずになるべく一般に考慮すべき事項を洗い出し,簡単な設計例も提示してみたい.
ドキュメントに固執せよ
どうして人間集団はこんなにも知見の共有を円滑にできないのか? 改善にはドキュメントにまつわる各個人の心構え・制度設計・技術的解決の全部が必要だという話をしたい.
ここでテーマにしているのは,著名OSSなど世の中にいくらでも知見が転がっている対象ではなく,特に企業内の十数人のチームでクローズドに開発しているなどして集合知に頼れない状況下でのドキュメントについてである.
ユニットテストのための言語設計
ユニットテストとは,おそらくご存知の通り各コンポーネントが単独で操作的に意図通りの振舞いをしているかを具体例により確認する営みである.
「ユニットテストはどのように書かれるべきか」といった議論が為されるとき,もちろん言語横断的な議論が中心となるものの,しばしば特定の計算機言語やその処理系の性質を所与とした議論が含まれやすい.だが,言語仕様や処理系が天から降ってきたものではない以上,原理的にはむしろ言語こそが目的に応じて適切に設計されるべきものだ.
TeX言語で型なしλ計算を評価するVMを書いた話
半ばネタOSSとして実装した tex_of_ocaml
1 について簡単に紹介します.型なしλ計算を多少程度知っていることを前提とします.
初出:
- 2020年12月9日,TeX言語で型なしλ計算を評価するVMを書いた話 - Qiita
SATySFi v0.1.0に向けたラベルつきオプション引数の型システム
SATySFi v0.1.0に向けてオプション引数に関する言語設計を非互換に改めつつあるので,その紹介をします.
初出:
- 2021年12月30日,SATySFi Wiki
緒言
個人のWebサイトを設けた.1年以上やらねばと思いつつ先送りしてきたのを長期休暇に合わせて整備したのでようやくの感がある.個人のWebサイトが欲しくなったのは主に以下のような理由による: