kakkun61
Haskell -> wasm できたすばらしい。IOを消すために依存パッケージをforkしてた頃に比べれば隔世の感がありますね
依存ライブラリも問題なくコンパイルできて、少し感動
LinearTypes
言語拡張をがっつり使ってみたので、Haskell の線型型を使おうとすると現在はこんな感じだよ、将来はこうなって Rust のリソース管理により近くなっていくよ、というような記事を書きました。Linear Haskell のライブラリを使う側の話が主ですが、ライブラリを作る時の話についても需要があればそのうち書くかもしれません(書かないかもしれません)。VAI.sort
を VAI.sortBy compare
で置き換えると改善します:VAI.sort
は {-# INLINABLE sort #-}
になっています. vector-algorithms
における7年前のコミット https://github.com/erikd/vector-algorithms/commit/298333ee4a26bdd25a08a852d3123c9aab24c364 で,「`INLINABLE` ではなく {-# INLINE sort #-}
としないとパフォーマンスが悪化するということだがそれが再現しない」,ということを理由に INLINABLE
に差し戻された状態です.GHC 8.8.3 ではきちんとインライン化されていたところ,多分 GHC 9.4.5 のバグか仕様かで sort
がインライン化されなくて時間がかかっているようなんですよね.VAI.sort
を VAI.sortBy compare
に置き換える以外にも,{-# RULES "Force inline VAI.sort" VAI.sort = VAI.sortBy compare #-}