haskell-jp / random #104

@ has joined the channel
最近こんな記事 https://blog.miz-ar.info/2023/08/haskell-simd/ を書きましたが、記事中で言及しているLLVMバックエンドによるAArch64向けのSIMDプリミティブの対応がマージされました。不具合でrevertとかされなければ、GHC 9.10に入ります。
リクルーティングメッセージで恐縮です。
Haskellで書いてるプロジェクトで「誰かが体調不良になっただけで遅延が発生しかねないのはどうなんですか」と私の体調不良リスクを指摘されています。
Haskell書ける人がたくさん増えれば解決する問題なので、Haskellで自然言語処理を行うプロジェクトに興味がある方は是非 pluszero に参加して欲しいなと思います。

連絡は、 https://twitter.com/ncaq のリプライかDM(FF外は認証済みユーザしか送れませんが伝えられればフォローします)とか [email protected] で可能です。
@ryoppippi has joined the channel
GHCのエラーメッセージをJSONで出力できるようにするMerge Requestについて、フィードバック募集中だそうです
https://discourse.haskell.org/t/feedback-wanted-json-diagnostics-output-for-ghc/7531
@高橋紀美 has joined the channel
https://twitter.com/fwnnl/status/1702890725950759021
Haskell -> wasm できた
依存ライブラリも問題なくコンパイルできて、少し感動
すばらしい。IOを消すために依存パッケージをforkしてた頃に比べれば隔世の感がありますね
今日のAtCoderのコンテストで,`vector-algorithms` のソートアルゴリズムを変えたらTLE(time limit exceeded)がACになってびっくりしました.Introsort -> Merge sort なので,どっちも最悪O(NlogN) のはずなのに何故…
Introsort, TLE: https://atcoder.jp/contests/abc320/submissions/45644448
Merge sort, AC: https://atcoder.jp/contests/abc320/submissions/45644739
TLEのテストケースは一個だけなので、ひょっとすると何かのバグを踏んだかもしれません.
GitHub Actionsがいくつか入っているhaskell/actionsが解体されてhaskell-actions/に移動するんですね(haskell/actions/setup→haskell-actions/setup)。 https://github.com/haskell-actions/setup
haskell/actions のやつも移るんですね(補完的かとなんとなく思ってた
StackageがFP CompleteからHaskell Foundationに移管されるそうです https://discourse.haskell.org/t/a-new-home-for-stackage/7632
@working neco has joined the channel
初心者フレンドリーさと開発生産性に重点を置いたHaskell方言(ただし開発中)
https://neohaskell.org/
... Replies ...
Hiromi ISHII / mr_konn
これ、Show case 的なものも別に現行の GHC でできそうなことしか書いてないように見え、技術的詳細の掛かれたドキュメントも見当たらず、パッと見ても Git レポジトリ空っぽいんですけど、どこかに何か期待の持てそうなリソースがあったりするんでしょうか……?
サーバーとかで、いろいろなパラメータの統計をとる場合、たくさんの IORef ではなく、IOUArray を用意してそれぞれの要素を atomic に更新したくなります。
array にそういう関数は提供されてないのですが、プリミティブに cas があるようで、"massiv" パッケージを参考に作ってみました。
https://github.com/kazu-yamamoto/dnsext/blob/main/dnsext-utils/DNS/Array.hs
Haskellの弱点が、一挙になくなった感じ。
array はデフォルトでこれを提供してほしい。。。
... Replies ...
@R has joined the channel
GHC2024拡張のproposalが始まったみたいです。
https://github.com/ghc-proposals/ghc-proposals/pull/613
現状のWasmの制約の元でどのようにGHC製WasmをJSと連携させるか
https://joeyh.name/blog/entry/Haskell_webassembly_in_the_browser/
Hiromi ISHII / mr_konn
手前味噌ですが、さいきん Haskell で線型型,を使えるようにする GHC の LinearTypes 言語拡張をがっつり使ってみたので、Haskell の線型型を使おうとすると現在はこんな感じだよ、将来はこうなって Rust のリソース管理により近くなっていくよ、というような記事を書きました。Linear Haskell のライブラリを使う側の話が主ですが、ライブラリを作る時の話についても需要があればそのうち書くかもしれません(書かないかもしれません)。
https://zenn.dev/konn/articles/2023-10-01-linear-haskell-in-2023
... Replies ...
@ has joined the channel
みなさんってHaskellどんな用途で使用されてますか?
... Replies ...
@kei.ad has joined the channel
@sat0ma has joined the channel
GHC 9.8.1がリリースされています :haskell:
https://discourse.haskell.org/t/ghc-9-8-1-is-now-available/7832
GHC 9.8.1 ですが、Data.List と Data.Functor を import すると unzip が衝突しますね。
ひどい。
... Replies ...
@bizyutyu has joined the channel
@mitsuru793 has joined the channel
かりんとう
直接haskellの部分でなくて恐縮ですが、.hsをコンパイルした.wasmファイルをhtmlに組み込む例を知りたいです。
(ghc-wasm-metaからのwasi-jsとか見ましたがNode向けの内容しか見つけられていません)
進み具合として、wasm32-wasi-ghc により.wasmにはできています。
自分なりにwasmの組み込みかたを検索してhtmlはこうなっています。
!DOCTYPE html
<html lang="ja">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<script>
const importObject={wasi_snapshot_preview1:{proc_exit:arg=>arg,fd_close:arg=>arg,fd_write:arg=>arg,fd_seek:arg=>arg,environ_sizes_get:arg=>arg,environ_get:arg=>arg,fd_fdstat_get:arg=>arg,path_open:arg=>arg,path_filestat_get:arg=>arg,path_create_directory:arg=>arg,fd_prestat_get:arg=>arg,fd_prestat_dir_name:arg=>arg,clock_time_get:arg=>arg,fd_fdstat_set_flags:arg=>arg,fd_read:arg=>arg,fd_filestat_set_size:arg=>arg,fd_filestat_get:arg=>arg,poll_oneoff:arg=>arg}};
WebAssembly.instantiateStreaming(fetch('Hello.wasm'),importObject).then(obj=>{
obj.instance.exports.hs_init(0,0);
console.log(obj.instance.exports.test(10));
});
</script>
</body>
</html>
ちなみにここでtestは引数の数値を2倍して返す関数です。で、以下のエラーが出ています。
Hello.wasm:0xb42e Uncaught (in promise) RuntimeError: unreachable
at Hello.wasm._Exit (Hello.wasm:0xb42e)
at Hello.wasm.exit (Hello.wasm:0x176db)
at Hello.wasm.stg_exit (Hello.wasm:0xabf3b)
at Hello.wasm.getProcessTimes (Hello.wasm:0xd513)
at Hello.wasm.stat_startInit (Hello.wasm:0xa904a)
at Hello.wasm.hs_init_ghc (Hello.wasm:0xabcb8)
at Hello.wasm.hs_init (Hello.wasm:0xabc44)
違うアプローチも含めて、解決方法があれば知りたいです。
... Replies ...
ulid-tightパッケージをリリースしました。
https://hackage.haskell.org/package/ulid-tight
@ has joined the channel
https://twitter.com/yuki_20020924/status/1717404851536302332?t=-MHrJdCBXSb7zSNJNwl_KA&s=19

Haskellで書いたプログラムの動作速度は(得意不得意はあれど)おおむねJavaぐらいになるものだと思っているのですが、これは正しいでしょうか
... Replies ...
HaskellではなくErlang/Elixirベースですが、QuickCheck等にも活かせると思うのでラムダノートの新刊紹介です :bow:
https://www.lambdanote.com/collections/proper-erlang-elixir
軽量スレッドのスタックは、最初1kですが、次は32k足されて33kになります。
これはひどいデフォルト値です。
たくさん軽量スレッドを起動すると、使われないスタックで溢れかえります。
この問題は、スタックの増える量を最小値の2kにすると解決するようです。
+RTS -kc2k
AtCoder での最近の Haskell (GHC 9.4.5) update from (8.8.3) によって実行速度が低下している模様 例: 競プロ典型 90 問 9 日目 - Three Point Angle
https://atcoder.jp/contests/typical90/submissions/47126051
... Replies ...
あー,これ公知するの忘れてました. VAI.sortVAI.sortBy compare で置き換えると改善します:

https://atcoder.jp/contests/typical90/submissions/47136959

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 がインライン化されなくて時間がかかっているようなんですよね.
今年の Haskell Advent Calendar の枠を作りましたのでぜひ登録して書いていただけると嬉しいですー! :pray:
https://qiita.com/advent-calendar/2023/haskell
@haru It has joined the channel
HaskellでTUIアプリを作るフレームワーク、vtyがついにWindowsをサポートしたそうです!
https://discourse.haskell.org/t/vty-6-released-now-with-support-for-windows/7975
1000 k_k_y_a_n
@1000 k_k_y_a_n has joined the channel
それはよかったです.あ,一応ですが, VAI.sortVAI.sortBy compare に置き換える以外にも,

{-# RULES "Force inline VAI.sort" VAI.sort = VAI.sortBy compare #-}

を追加することによってもACできることを確認しました:
https://atcoder.jp/contests/typical90/submissions/47295075
import を大量に書いたtemplateを用意して書くタイプではなさそうなコードなので,あんまりお役に立つかはわからないですけど.
@ has joined the channel
Cabal の Windows での QA テスターが足りていないそうです
我こそはという方:point_down:
https://discourse.haskell.org/t/cabal-is-looking-for-qa-testers-on-the-windows-platform/8103
... Replies ...
まあ我な気がするな
@ymorita has joined the channel
@Birudo Un has joined the channel
@lesguillemets has joined the channel
@Sato Naoto has joined the channel
興味本位なのですが haskell for all ってどういう人(or チーム)が書いているかどなたかご存知ですか?
(あるいは特定の著者が不在のキュレーションサイトだったりしますか?)
... Replies ...