MessagePack.FSharpExtensions 2.0.0をリリースしました
全国約…何人かわからない F#erの皆様、お待たせしました(お待たせしすぎたかもしれません)。
MessagePack C# v2が正式リリースされてから6か月…さすがにまずいと思ったので重い腰をあげました。 実際は眠れない怒りをぶつけただけなのですけれども。 おそらくこの記事が予約投稿されたときには眠りについているはず。
これやらないとF#が .NET最先端から脱落しますからね!
— neuecc (@neuecc) 2019年12月17日
こういう話はあるものの、自分は特に更新を急いでないからなぁ…と別件にずっとかまけててごめんなさい。 今回の作業は半日かかっていないので、v2がリリースされたときにやっておくべきでした…。
何が変わったのか
- MessagePack C# v2に対応した
- .NET Frameworkとお別れ
- FSharp.Coreを4.7にあげた
- ついでにリポジトリのCIをAppVeyor & TravisCI から GitHub Actions に乗り換え
作業diff: https://github.com/pocketberserker/MessagePack.FSharpExtensions/pull/4
古い環境を窓から投げ捨てる勢いで書き換えました。
動作やAPIは特に変えてません。
とはいえ、大元のMessagePack C# v2が結構変わっているので、MessagePack.FSharpExtensions v1を使っている人(いるのか!?)は書き換えが必要です。
inref
や&
がでてくるあたり、最近の F# っぽい(?)
他のライブラリと異なり、内部APIを引っ張ってきたりしつつILを直書きしている関係で、メンテナンスに気力が必要なんですよね。
判別共用体用のFormatterを生成するDiscriminatedUnionResolver
はDynamicObjectResolver
とDynamicUnionResolver
を悪魔合体させたような存在なので、元ネタがある分楽…ということもなく、同じResolverでStructも捌けるようにしないといけないので注意していないとTypeInitializationErrorの刑に処されます。つらい。
そのかわり、本家と違ってUnityを気にしなくていいのでその分は楽です(その環境が良いかどうかは別の話)。
追加機能をいれるか悩みましたが、何をやるにしても頑張りが必要そうだったので見送ってます。
〆
.NET シリアライズ最前線に追い付けたので一安心。 置いていかれないように引き続きがんば…がん…ががが…