generated at
RubyKaigi 2023

Day 1
Keynote (Matz)
ライセンスを自分で書きはじめた (自前のものにはしなかった)
Rubyの名前が決まった日を誕生日とする
Coral, Tish
Rubyの基本的な概念は30年前から変わっていない
1995/12にRubyをインターネットで公開
Different POV
do ... end
0.95
コミュニティ
同志
気になる
5年のコミュニティ分断につながった互換性破壊とは?
ISO/IEC 30170 Ruby
コミュニティ分断
Ruby 2.0
Rails幻想

The future vision of Ruby Parser
4つの do
複雑怪奇
bisonには優先度がある
universal parser
Ruby自身のparserはRubyの機能に依存している
RubyのparserはRubyのデータ構造を知っている
LALRパーサーの真の力を引き出す

Develop chrome extension with ruby.wasm
ruby.wasm
よりRubyっぽく書けるようにする
requireを上書き
JS::Object#method_missing
感想: おもしろいけどパワフルではないか

"Ractor" reconsidered
(2023/5/11 15:04 途中からみはじめた)
GCを切ると速くなる
分散GC

Power up your REPL life with types
irb
メソッドチェーンのパフォーマンスの問題
katakata_irb
Rubyの補完は難しい
分岐を考慮した型

LT
ChatGPT型推論
vim
mruby VM
大parser時代

day 2
Fix SQL N+1 queries with RuboCop
途中から
RuboCopでN+1クエリを自動修正する
gda
位置情報を保持する仕組みを作って解決
where_condをメモ化
メモ化のためのモジュール
class_evalが速い
文字列リテラルとインデックスの対応を取る
ActiveRecordにヒントがあった
なるべく行数を減らす
expect_correctionしたコードをeval
copからDBに接続する
ほかのcopの紹介
SQLite版もある

Splitting: the Crucial Optimization for Ruby Blocks
TruffleRubyの人
GraalVM
さまざまな最適化
inline cache
Numeric#sum_to
いろいろな呼び出し方がある
分岐しまくるとたいへんなことになる
stepメソッドをコピーしまくってinline展開
分岐を取り除く

Ruby Implementation of QUIC: Progress and Challenges
QUIC
RFCは実装ガイドではない
PythonからRubyに移植
できるだけ構造を保つ
enumの制約
tupleがない

Hacking and profiling Ruby for performance
ISUCON

Optimizing YJIT’s Performance, from Inception to Production
hybrid type analysis

day 3
Ruby Committers and The World

Build Your Own SQLite3
組み込みシステム向けのSQLite3
ベアメタルで動かす
SQLITE_OS_OTHER=1
キーボード自身がタイプされたキーを記録する

Load Gem from Browser