haskell-jp / random #75

ここだけの話元メンテナの不参加と職権濫用が委員会に問題視されて追い出されたという感じですが、平和的に解決したようで何より
Unboxed で Mutable な Vector を使うとHaskellでも十分?高速な配列アクセスができると実感したけど、関数プログラミングっぽい書き方からは遠くなっていく……
ありがとうございます。
CodeWorldという、ブラウザーベースのHaskell実行環境で動くライブラリーを登録して欲しいとのこと
http://haskell.1045720.n5.nabble.com/Library-maintainers-Include-your-library-in-CodeWorld-web-based-Haskell-environment-td5896969.html
Erlang VM上で動くHaskell風言語
https://www.hamler-lang.org
変態だ
会社で作ってるの、、、やばw
https://github.com/hamler-lang/hamler#authors
The Hamler core team comes from  now.
約1ヶ月半ぶりのHaskell-jp Blogの記事です。 https://haskell.jp/blog/posts/2020/strict-gotchas.html
最初にTopic Requestのissueを作ってから10ヶ月近くもかかってしまいましたがなんとかやりきりました... :sweat_smile:
https://github.com/haskell-jp/blog/issues/167
名前の由来はアメリカのオハイオ州にあるハムラー村だそうです。
Elixir では満足しなかったのか
型検査ないし
あ、Elixir もそうだったか
簡単な静的検査があるぐらいか
あ、もう上で紹介されてたw
その hamler の docker image 作りました。手元で動かしたい人で brew install したくない人はぜひ
https://hub.docker.com/repository/docker/matsubara0507/hamler
(その過程で、修正して欲しいところが出てきたので PR を出した https://github.com/hamler-lang/hamler/pull/157
@yskbsk13 has joined the channel
今年のZuriHac 2020 のOnline公開群です。登壇者はスター揃いで内容もすごい、大豊作です! これらがOnlineで見れるとは、すごい年ですね:ideograph_advantage::haskell:
https://www.youtube.com/channel/UC2zfPMH_srjxUN5EYrfIhCw

Richardさんの、30分のライブコーディングでGHCに機能拡張(default構文)を入れるのも面白いです。
https://www.youtube.com/watch?v=bhhE2DxbrJM

なお、字幕も付けられます。

ZuriHac 2020は、まだこの週末中、続きます。 全体内容はこちら。
https://zfoh.ch/zurihac2020/
おっ、GHC 8.10 Stackage Nightly入り間近か?(まだWIPっぽいし、気が早い
https://github.com/commercialhaskell/stackage/pull/5425
mwc-random の uniformRange の実装を見ていて「TypeFamilies使うとこんなことできるのかー」という気持ちに https://github.com/bos/mwc-random/blob/master/System/Random/MWC.hs#L565
“Quick Look Impredicativity” というのが承認されたらしい(よく分かってない
https://twitter.com/nomeata/status/1272441484789366784
↑ (私は仕様の中身を理解できてませんが)著者本人による解説動画があります。
https://www.youtube.com/watch?v=ZuNMo136QqI
めっちゃレアなバグを引いてしまって、しかもそれが作っているプロダクトにとって結構深刻で回避困難なものだったので嘆かせてください :cry:
https://github.com/fpco/typed-process/issues/32
うわ、これWindows依存なんですかね、、、つらそう
ちなみに、今のところWindowsでしか試せてないので、もしよければ他のOSをお持ちの皆さんも試してみてissueにコメントください :pray:
最初に発覚したのがこのコメントのときで、その時がAppVeyorのみだったので多分Windowsだけなんじゃないかなぁと思っています。
https://github.com/haskell-jp/makeMistakesToLearnHaskell/pull/108#issuecomment-641945858
MacOS入れときました
WSL2(のUbuntu LTS 20.04)でも起きないですね.
やっぱり手元のLinuxでも再現しませんねぇ。(そして、やっぱプロセスの起動速いなLinux... Windowsが遅いというべきなんでしょうけど... :cold_sweat:
benzene.chlorobenzene
@benzene.chlorobenzene has joined the channel
先日のZuriHac 2020での、Alexis Kingさんのプレゼン動画です。 すごい名作です:tada:
タイトルからしてEffectシステム中心の話かと思ったのですが、GHCの最適化コード生成の話です。
GHCでの最適化・コード生成の紹介に興味のある人は、是非、いつか見て下さい。

Effects for Less
https://www.youtube.com/watch?v=0jI-AlWEwYI

単なる機能紹介ではなくて、小さな話から始めて、シンプルなコード例で、機構的・動機的に本質を掘り進めていく展開は圧巻です。ディープな研究者以外に丁寧に説明してくれるスタンスが素晴らしいです。

詳細内容を事前に知りたくない人がいるかもしれませんので、概略内容はスレッド側に書きます。
視聴する人の楽しみのために内容詳細は控えますが、例えば以下の内容があります:
• Inline化などの、Simplifierでの最適化
• List fusion (rewrite rule) (ここは軽めの紹介のみ)
• 型クラスは、どのようなコードに変換されるか
• .hi ファイルに出力される内容
• known call と unknown call の違い
• Specializingの適用可否
• bind(>>=) の課題
• unbox化 (ここも軽めの紹介)
私は未だ全部を理解しきれてません、ゆっくりとenjoyします:slightly_smiling_face:
なお、それぞれの項目については、日本語でも良いWeb記事がたくさんあると思います。
-- 内容詳細 あるといいかもしれないですね。(あまりきにしないでください。)--
私もほぼ全部観ました。これまでGHCの最適化についてもやもやしていたことがまとまってすっきりしました。すごいです。
あと、 :point_up: の内容の他に、開発中のeffパッケージや https://github.com/ghc-proposals/ghc-proposals/pull/313 の背景も最後の方で説明されます。
これ以外の話はすべてこの二つの背景につながるわけです。
Haskell製のAndroid・iOSで動くゲームらしいが技術的な詳細が載ってないっぽい…:confused:
クロスコンパイルでもしたのだろうか。
https://keera.co.uk/2020/06/18/enpuzzled-released-for-android-and-ios/
Linear types言語拡張の巨大なパッチ第一弾がGHCのmasterにlandingしました。 安定すれば、8.12に間に合うかもしれませんね:haskell:
https://gitlab.haskell.org/ghc/ghc/-/commit/40fa237e1daab7a76b9871bb6c50b953a1addf23

QualifiedDo言語拡張のパッチはこちら。 まだmasterには入ってませんが、こちらも8.12に間に合いそう:haskell:
https://gitlab.haskell.org/ghc/ghc/issues/18214

なお、どちらも、ZuriHac 2020での解説動画があります。
A tour of linear types and linear base
https://www.youtube.com/watch?v=I7-JuVNvz78

QualifiedDo: customizable 'do' syntax without fuss
https://www.youtube.com/watch?v=TH3cYp3349A
動画ついでに。
GHC 8.10から入っている、Non-moving GC についての、Benさん本人による解説動画があります:haskell:
2020 ACM SIGPLAN International Symposium on Memory Management (ISMM)
Alligator Collector: A Latency-Optimized Garbage Collector for Functional Programming Languages
https://www.youtube.com/watch?v=skNDP5ZYZJ4
(3:04:00付近から)

今年中に見きれないくらい豊作ですね:slightly_smiling_face:
Linear typesについて、tweagによる記事が上がってました
https://www.tweag.io/blog/2020-06-19-linear-types-merged/
妙に圧にならないように、このくらいにしときます:slightly_smiling_face:

週明け6/22(月)のCHALMERS ONLINEは、Stephanie Weirich氏です。
内容は "Strongly Typed System F in GHC" です。
YouTubeで日本時間だと夜11時から。後からでも見れます。

CHALMERS ONLINE FUNCTIONAL PROGRAMMING SEMINAR SERIES
http://chalmersfp.org/

Stephanie Weirichさんは、"System FC with explicit kind equality"() 等の著者で、GHCのactive開発者のRichard Eisenbergさんの師匠です。

GHC Haskellの内部表現の1つであるCore言語は、System F(C)に基づいています:haskell:
英語の動画リンクをいっぱい貼っちゃったので補足です。既知かもしれませんが念の為。
少なくともPC版のYouTubeだと、コンテンツによっては字幕(誤変換多々ですが)が付きます。ショートカットの"c"キーで字幕on/off。
ショートカットの、"j", "l"キーがそれぞれ、10秒戻しと10秒送りです。 ショートカットの"k"キーか"space"キーが、停止/再生のトグルです。
(10分くらいの内容を見るのに、1時間くらいかかってます:thinking_face:)
字幕、知らなかった!
godotからhaskell を共有ライブラリでよんで、
gccの仕組みでそのライブラリを初期化してますね
なにかにhaskell を組み込む場合の参考になりますね
GCCの仕組み、というのはなんですか? https://gcc.gnu.org/onlinedocs/gccint/Initialization.html のことですかね?
addons/godot-haskell-plugin/cbits/flib.c:static void flib_init() __attribute__((constructor));
です
random なので、random で。random 1.2 が出ましたね! 劇的に速いみたい。
cryptonite 0.27 が出たけど、`support_pclmuldq` フラグが False のまま。ずいぶん待たせてこれかい。