去年に引き続き、一年の振り返りをしたいと思う。
同人活動
今年は「だめぽラボ」として同人誌を2冊出した。
競プロ
3月ごろから競技プログラミングを始めた。7月にはAtCoderで青色になったが、最近は練習・復習の時間が取れなくてコンテストに出ていない。
今年出した本の一冊は競プロ関連だった。
アウトドア
今年は中央アルプスの木曽駒ヶ岳に登った。この他、ブログには書いていないが赤城山にも登った。
- 木曽駒ヶ岳登山(行ったのは9月)
去年は新しい自転車を買って輪行とかにも行ったが、今年は輪行には行かなかった。来年はまた輪行したい。
OSS活動
ClutTeX(LaTeX処理自動化ツール)
LaTeX処理自動化ツールバージョンClutTeXは、2月にバージョン0.2、4月にバージョン0.3、8月にバージョン0.4をリリースした。
10月のTeXConf 2019ではClutTeXについて発表するつもりだったが、生憎TeXConfは台風の影響で中止となってしまった。
ClutTeXはまだ発展途上のソフトウェアである。修正すべきバグや実装したい機能もいくつかある。2020年もClutTeXの開発をやっていくので、お楽しみに。
purescript-tsd-gen(PureScript関連ツール)
PureScriptからTypeScript向けの型定義を出力するツールpurescript-tsd-genは、6月にバージョン0.3.0.0をリリースした。
最近バグ報告を受けて、その修正のついでにあれこれリファクタリングしたので、近いうちに新バージョンをリリースしたい。
unboxing-vector(Haskellライブラリー)
Haskellで高効率な配列を利用するにはunboxed vectorを使うわけだが、既存のそれはnewtypeとの相性が悪いという問題がある。この問題を解決するためにunboxing-vectorというライブラリーをリリースした。
Stackageにもプルリクを送って取り込んでもらった。現在のLTSには入っているはず。
他のOSSへのバグ報告・修正
reflection (Haskellライブラリー)
GHC 8.2でKnownNatクラスの内部表現がIntegerからNaturalに変更になったが、reflectionパッケージのreifyNatはそれに対応していなかった。
KnownNatの変更にはもっと前から気づいていたが、実際のところIntegerとNaturalの内部表現はほぼ同じで、IntegerをNaturalにunsafeCoerceしてもほとんど問題ないかと思っていた。だが、改めてソースコードを眺めると、値が 2^63 以上 2^64 未満の場合は Natural の不変条件を満たさない値を作り出せることに気づき、バグ報告を投げることにした。
この件は無事修正され、それを反映したreflectionパッケージのバージョン2.1.5が8月にリリースされている。
haskeline(Haskellライブラリー)
GHCのissueを眺めていたらGHCiのサロゲートペア絡みの問題が2件ほど報告されていたので、修正してみることにした。だが問題の所在はGHC本体ではなくhaskelineにあった。
haskelineというのは、Haskell版readlineとも言えるライブラリーだ。このhaskelineが、Windows上でサロゲートペアをうまく扱えていないということだった。
- Support non-BMP characters (or, surrogate pairs) on Windows #125(11月に報告、12月にマージ)
このプルリクエストは数日前に無事マージされた。
wxMaxima(数式処理システムのGUIフロントエンド)
wxMaximaには数年前に日本語翻訳のアップデートのプルリクを投げたこともあった。気が向いて久しぶりにコントリビュートしようと思ったら、ビルドシステムがCMakeになるなどの変化があった。時代の流れというやつか。
さて、ビルドシステムの変更の際に、Mac向けの翻訳ファイルがアプリケーションバンドルにコピーされなくなったようで、それを修正するためのプルリクを投げた。
ところで、wxMaximaのコードでは割と最近C++11を使うようになったらしい。今後プルリクを投げる際には気兼ねなく無名関数などを使えるということである。ネタはいくつかあるので、2020年はその辺のコントリビュートもしたい。
その他
現在WordPressで動かしているこのブログだが、静的サイトジェネレーターとかを使ってWordPressを使わないようにしたい。
2019年は下調べで終わってしまったが、2020年こそは移行を実現したい。
年末年始のAdvent Calendarで、数値計算の誤差や、区間演算が話題になった。私のメイン言語であるHaskellでも(MPFRじゃなくて)組み込みの浮動小数点数でちゃんとした精度保証ができると嬉しいと思い、6月ごろに少し書き始めた。
2020年はこれをHaskellのライブラリーとしてリリースしたい。
他にも色々やっていた気がするが、そろそろ2019年が終わってしまうのでこの辺で筆を置く。
2019年もたくさんの人にお世話になりました。それでは、良いお年を&2020年もよろしくお願いします!