GHCへの私の貢献2024

この記事はHaskell Advent Calendar 2024の24日目の記事です。


私はここ数年、Haskellの主要な処理系であるGHCに趣味で貢献しています。この記事では、今年(2024年)行なった貢献を紹介します。バグ報告のみ(修正は他の人)のものも含みますが、その場合はその旨を書いています。

同様の記事を去年(2023年)も書きました:GHCへの私の貢献2023

GHC 9.12に入ったものは「GHC 9.12の新機能」でも触れています。

こういう記事を書く目的は、一つにはOSSへの貢献の対価として名誉が欲しいというものがあります。そのほかに、自分用の備忘録という目的もあります(あのバグはどのバージョンで修正されたんだっけ、ということがたまにあります)。あとは、単純にGHCの開発状況やホットな話題を皆さんに知って欲しいというのもあります(私の趣味全開なので、非常に偏った視点ではありますが)。

GHCへの貢献方法は去年の記事を読んでください。

続きを読む

コンパイル時定数しか受け付けない引数

普通のプログラミング言語の普通の関数は、実行時に決まる値を受け取ることができます。

# 疑似コード
def foo(x: int, y: int) = print(x + y)

x = parseInt(readLine())
# x の値は実行時に決まる
foo(x + 4, 2 * x) # x + 4 や 2 * x の値も実行時に決まる

これに対して、「コンパイル時に決まる値しか受け付けない引数」を表現できると便利な場面があるのではないかと思うことが最近ありました。

続きを読む

LunarMLと文字列フォーマット

LunarMLをLuaの代替として使う際、Luaの機能を自然に使えると良さそうです。例えば、文字列フォーマット関数 string.format を呼び出す際には現状では引数の型キャストが必要ですが、フォーマット文字列にいい感じの型をつければキャストが不要になるのではないでしょうか。

ML系言語の仲間であるOCamlには、フォーマット文字列が期待される文脈で特別な型付けを行う機能があります。LunarMLでも似たようなことをするといいのではないか、というわけで検討します(検討するだけならタダなので)。

続きを読む

Macで試すBinary Hacks Rebootedその2:数値表現とデータ処理

前回から日が開きましたが、引き続きMacでBinary Hacks Rebootedの内容を試していきます。

今回は「7章 数値表現とデータ処理Hack」の内容を試していきます。サンプルコードは https://github.com/oreilly-japan/binary-hacks-rebooted から取得できます。

$ git clone https://github.com/oreilly-japan/binary-hacks-rebooted.git
$ cd binary-hacks-rebooted

私の環境はApple M4 Pro / macOS Sequoia 15.1.1です。以下のアセンブリコードはAArch64向けです。

続きを読む

「ものが等しい」ということ

最近、「ものの等しさ」について思うところが何点かあるので書き殴っておく。

数学での「等しさ」

ものを数学的な議論に載せる上で、「等しさ」というのは基本的な概念だと思われる。扱う対象の「等しさ」について合意ができない人と数学的な議論はできない。

続きを読む

紫金山・アトラス彗星

星空というのは毎晩同じ姿を見せるわけではない。月は毎日動いていくし、日が経つと惑星も動いていく。たまにしか起きない天文現象もある。流星群、月食、(夜空ではないが)日食などだ。

人生の中で見ておきたい天文現象(というか天体)の一つが、彗星だ。百武彗星やヘール・ボップ彗星の現れた90年代は私はまだ物心がついていなかった。生きているうちに「大彗星」と呼ばれるものを見てみたいものだ。

そういうわけで、地球に接近する彗星の話題は(そこまで熱心でもないが)ある程度キャッチし、チャンスがあれば観測にチャレンジしたいと思っている。

ここ数年でもいくつか彗星がやってきた(というか、私が彗星の情報を追いかけるようになったのがこの数年のことかもしれない)。ネオワイズ彗星(2020年)、レナード彗星(2021年)、ZTF彗星(2023年)、ポン・ブルックス彗星(2024年)。いくつかは私も撮影にチャレンジしたが、ぼやっとした感じにしか写らなかった。「彗星」というからには立派な尾が写って欲しいものだ。私の技術や撮影タイミングが悪かったのかもしれないが……。

そして今年(2024年)の秋にやって来たのが紫金山・アトラス彗星だ。太陽に近づいて崩壊したかも?みたいな情報もあったが、無事に我々の前に姿を見せてくれた。

今回の彗星は9月下旬には明け方の空に、10月中旬には夕方の空に見える。深夜に起きて車を運転して東の空が開けた場所に行ったり、彗星を見るために双眼鏡を買ったり、なんやかんやあったが、ようやく彗星を視認できたのは5回目のチャレンジでのことだった。

続きを読む