2025-04-16
日報
RubyKaigi 2025きた
#rubykaigi
Ruby Taught Me About Encoding Under the Hood - RubyKaigi 2025
セマフォって腕木通信なんだ?
ebcdic知らなかった
unicode, 110万文字で足りるのか?
漢字で2万文字だし余裕そう(?)
code pointがあってutf-8や32で異なるなるほど
unicodeのバージョン差分何も知らない
SI/SOの制御文字なるほど
コンピュータみたいに末尾のーを消すと…みたいな話も関係ある?
書記素クラスタ
「午前3時の茨城県」の使用文字を徹底解明! #ネタ - Qiita
https://github.com/orling/grapheme-splitter/blob/master/tests/GraphemeBreakTest.txt
devanāgarī 読めるようにならずに実装できなさそう(?)
クタァ
https://github.com/ruby/ruby/pull/13117
Make Parsers Compatible Using Automata Learning - RubyKaigi 2025
automata theory で prism, parse.y の差異を見つけている
2つのパーサがあるのが自分の中で当たり前の知識になってるの嬉しいなfunwarioisii.icon
automata learningなに
複数のparserがあり、互換性が気になる
物量でカバー?
それよりも理論的に解決したい→ automata theory
オートマトンと正規表現は相互に対応が取れる
という表現をしていたっけ?funwarioisii.icon
直感的には既にあるテストケースを Prism はパスしてるだろうから、どこからテストケースを持ってくるの?
→Automata Learning!
Angluin's L*
ブラックボックスの状態を検査するためのアルゴリズム
Akinatorのようなもの
すごい例えだ
Membership Queryは分かったけどEquivalance Queryよくわからない
正規言語→VPL: Visibly Push-down Language→文脈自由言語
Visibly Push-down Automata
https://github.com/makenowjust/lernen
The Evolution of the CRuby Build System - RubyKaigi 2025
何で CRubyのビルドシステムの話?
ruby.wasm やってる中で色々な課題を感じた
asdfとか色々あるが tarboll を ./configure して make してる
git source からだと ./autogen.sh を挟んでいて色々生成している
互換性を担保しながらこのセットアップを維持するの大変すぎるだろ
configure.ac が commiter 的にはあ〜あれねみたいになってるのすごい
複雑な Makefile の世界が展開され始めた
途中で挟まるminiruby何
ビルドシステム警察がいないと無限に複雑になりそうだ
複雑になってるビルドステップをわかりやすくする話に一旦進むかと思ったけどそうではなさそう
わからんくなった〜! 4. あたりから
やっていきはわかるのだけど…
Goodbye fat gem 2025 - RubyKaigi 2025
slide: https://slide.rabbit-shocker.org/authors/kou/rubykaigi-2025/
fat gem: Native, binary gem
1つのgemがアプデされていなかったら次のRuby versionに移れない
例えば nokogiri はすぐにやっているが………
libxsltの脆弱性については2日遅れ
Debianは3日遅れ
rake-compiler-dock もあるが、環境のセットアップ以上に cross-compiling が大変
44環境をサポート
自動化するには?
RubyInstaller2が先駆者
rubygems-requirements-system
ユーザ側でビルドさせる
install が長くなる問題
@nekketsuuu: February 2025 RubyGems Updates に "A proposal is in progress to introduce “wheels” for RubyGems" と書かれているコレは、fat gem の方向性とはどう違うんだろう……? https://t.co/O9IxTovuZ8
Ruby's Line Breaks - RubyKaigi 2025
automataの話2
文法はautomataで表現できる理解
class A; end ->
LR ParserはPushdown automata
こういうのはSyntax Errorになるのか
code:ruby
irb(main):009* def end(v)
irb(main):010* if v > 0
irb(main):011* end(v-1)
irb(main):012> end
<internal:kernel>:187:in loop': (irb):11: syntax error, unexpected '(', expecting end' or dummy end (SyntaxError)
end(v-1)
^
Embracing Ruby magic: Statically analyzing DSLs - RubyKaigi 2025
Ruby LSPでDSLをいい感じにできてない
Gemの側にRuby LSP対応を入れてもらう話をしている?
https://techracho.bpsinc.jp/hachi8833/2024_10_17/145669
listener みたいなのを作ってコードを書いているときの情報を入れながら、推論に活かすようにしている
LSP実行時(書いている時)のコードを説明するのは丁寧だ
つまり二行目から効いてくる感じなのかな
間違えてたら変に学習?しそう
急にRuby LSPからMCPに話が飛んでよくわからなくなった
なんか構造を捕まえやすくなりますみたいな話か?
静的解析ができると何ができるのかという話なのか、もうできてる話なのか
dRuby on Browser Again! - RubyKaigi 2025
dRubyの話
そもそも自分はdRubyを知らない
分散オブジェクトの技術
Writing web application in Ruby ←気になる VirtualDOMを頑張っていたらしい
dRubyじゃないとできないこととそれ以外の違いがちょっとよくわからない
asyncify
code:ruby.wasm
onclick = Fiber.new { something_async_method.await }.transfer
になるのよくわかるな
Wands, WebRTCをruby.wasmでやる時のテスト周りで参考にできるところとかあるのかもな
セッションに直接関係ない話
自分がRubyKaigiから得られるものはもう少し言語化したいな
発表の方法とか
kateinoigakukunの図
論理展開や展望
Rubyを書いていて型が欲しい・欲しくないの話
型があるというのはコードを概観しやすくしている
概観しやすさが欲しい
知らない外国人と自分の国とその人の国の話をするの楽しいね
Vacationで来ている人に野沢温泉と道後温泉の違いを話したり
自分がわかってない広い範囲に名前がついていそうなので、名前を探して体系的に学んだほうばいいんだろうな
Socket Programmingとか