沖縄だったのでいってきました。

Day 0

開始日の前日、この日に沖縄に入りました。この日は15:30発の飛行機にしました。 これはこの日の夜のイベントに参加するための時間にしたつもりでした。 つもりとは、今回 RubyKaigi ではプレチェックインが19:00まで行なわれているのをメールでもらい、 急遽 RubyKaigi 会場へ寄ることにしました。 プレチェックインでは、沖縄気分な格好をして行ったのですが、それ以上に沖縄楽しみにしてる格好のひとが居てびっくり。 チェックインを済ませて宿へ行き荷物を置いて船上パーティへ。 この帰りに二次会へ山羊刺しがある居酒屋へ行きました。

Day 1

みたセッションは以下になります

  1. Writing Weird Code
  2. The grand strategy of Ruby Parser
  3. Strings! Interpolation, Optimisation & Bugs
  4. Namespace, What and Why
  5. Ractor Enhancements, 2024

Writing Weird Code

本年は三日間平日だからか Matz のキーノート開始ではなく、ぺんさん ではじまりでした。うんまあ、ひとつひとつの話はわかるんだけど、どうしてそうなるのかわからないことをたくさん話されました。

The grand strategy of Ruby Parser

ことしは(も?)パーサー元年な発表だった。パーサーギャング の親分こと 金子さん の発表で、去年の発表のあとどのように開発をし、これからどのような機能を開発していくのか、今回でどんな形になったのかを話してくれました。

Strings! Interpolation, Optimisation & Bugs

Namespace, What and Why

@tagomorisさんの全 rubyist1 待望の機能である Namespace の思想、実装の話です。 似た機能として Refinments があるのですが 機能として分かれているのも便利そう。 Namespace で区切ることでライブラリがより便利に、より安全に利用できそうでした。

Ractor Enhancements, 2024

Ractor のお話。

オフィシャルパーティー

オフィシャルパーティーは波の上うみそら公園のビーチでBBQ(BBQエリア)とパリピだった。

Day 2

  1. Leveraging Falcon and Rails for Real-Time Interactivity
  2. Does Ruby Parser dream of highly expressive grammar?
  3. Embedding it into Ruby code
  4. Reducing Implicit Allocations During Method Calling
  5. It’s about time to pack Ruby and Ruby scripts in one binary
  6. Running Optcarrot (faster) on my own Ruby.
  7. Lightning Talks

Leveraging Falcon and Rails for Real-Time Interactivity

サミュエルAsync を使うことによって速くするにはの話。

Does Ruby Parser dream of highly expressive grammar?

@ydah_ さんの発表。もともと見る予定ではなかったが、前日の発表を見てしまったので興味が出てきたので聴くことに。

Embedding it into Ruby code

みようと思ってたが、ランチ出るまでに時間が掛かりすぎてすこししか見れていない。

Reducing Implicit Allocations During Method Calling

研鑽 Ruby プログラミング の著者ジェレミーの発表。

It’s about time to pack Ruby and Ruby scripts in one binary

@ahogappa0613 さんの発表で Ruby のプログラムを配るために One Binary にプログラムを梱包していくという発表でした。 One Binary を作る方法として、現在ある Ruby プログラムを静的リンクしてコンパイルして配る方法を採用していました。 この方法は Ruby 自体を書き替えるのが十分少なく行えそうなので期待できそうです。

Running Optcarrot (faster) on my own Ruby.

今年個人的 No.1@isshiki1969 さんの発表で、 RubyRust での実装だと聞いていたので楽しみにしていました。 聞いているとどうも Rust だけで作ってるわけじゃないぞとなっており、一部 Assembler でも作成されているようです。 必要な機能は実装されているようでしたが、まだ Ruby on Rails 動いていないようです。 とても速いので面白そうでした。

Lightning Talks

前の発表が楽しすぎて少し遅れてはいりました。

夕飯とカラオケ

この日の夕飯は会場近くで色々なディナー、パーティーが企画されてたのですが、どうしても行きたいディープな沖縄へ行きたかったのでそちらへ。 栄町市場のべんり屋 玉玲瓏へ行き、餃子を食べてきました。 帰りに RubyKaigiKaraoke が丁度いい時間だったので2曲ほど歌ってました。 だいたい22時ころに翌日発表する人主催のボドゲ会がはじまり、1時ごろ退出しました。

Day 3

聞いたセッションは以下です。前日の RubyKaigiKaraoke ではしゃいで疲れてるので記憶が曖昧です。

  1. Ruby Committers and the World
  2. YJIT Makes Rails 1.7x Faster
  3. Speeding up Instance Variables with Red-Black Trees
  4. From LALR to IELR: A Lrama’s Next Step
  5. Make Your Own Regex Engine!
  6. Matz Keynote

Ruby Committers and the World

いつもどおりの感じが戻ってきた感じのセッションでした。ここで GVL2 が出てとくに盛り上がってましたね。個人的に GVL を外してもはやくならないと思っていますが、無い状態での実行したときどのような挙動をするのか、はやくするにはどうするのか興味があります。この議論で Linux のメンテナーをやってる小崎さんが賛成してくれてたのでとても心強いなと。

YJIT Makes Rails 1.7x Faster

国分 さんの YJITRails を動かすと速くなったという話。 タイトルに偽りがあり、曰く発表当日には1.8倍高速化されたそうです。

Speeding up Instance Variables with Red-Black Trees

アーロン の発表。インスタンス変数 のデータ保持方法を赤黒木で行う話でした。 赤黒木の説明を行い、どう実装していくかを日本語でやってくれました。

From LALR to IELR: A Lrama’s Next Step

コバジュン の発表。 現在、LramaLALR パーサーから Scannerless パーサー を動かすために IELR パーサー に変更している話でした。

Make Your Own Regex Engine!

藤波 さんの発表で、正規表現エンジンRuby で作る話。 意外と小さくできるようでおもしろそうな感じでした。

Matz Keynote

今年は Ruby4 の話が出てきました。 Namespace が実装されて動けば Ruby4 になるそうです。ガンバレモリスさん。 あと明確に AOT コンパイラー が欲しいと言っていました。

owari

今年も楽しいセッションが盛り沢山で休む暇がなく、全部たのしかったのですが、英語力と体力が足りないのを痛感しております。 セッション間の立ち話も興味深いのも多く、休みとはと思いながら過しておりました。


  1. プログラミング言語 Ruby が好きな人たちのこと。 

  2. Giant Virtualmachine Lock の略。これがあるから遅いと主張している人たちがいる。