いけむランド

はてダからやってきました

RubyKaigi2019 に行ってきた

Day0

つる瑠

yokanavi.com

Day1

[Keynote] The Year of Concurrency

Ruby 3 Progress Report

水たき長野

tabelog.com

Performance Improvement of Ruby 2.7 JIT in Real World

  • profile のためには *.c が必要なんだけど、速度的には *.o を残す選択にしているので相反するみたいなことを言ってた気がする。
  • LLVM は JIT として使うには向いてないって去年誰かが言ってた気がした。→ 「流行ってない」だった。

Pragmatic Monadic Programing in Ruby

  • Monar は typo ではない。

A Type-level Ruby Interpreter for Testing and Understanding

Fibers Are the Right Solution

  • 何をやっても Hell 感があった。(Fiber を使おう。)

Compacting GC for MRI v2

  • Two finger algorithm

seesaawiki.jp

  • object_id はやっぱり変換テーブルをはさむらしい。

商店街

  • 体力的に無理だった...。

Day2

[Keynote] All bugfixes are incompatibilities

  • ruby trunk changes はマジ神なのでみんな購読しよう。

ruby-trunk-changes.hatenablog.com

  • backport に優しいレポートを書こうと思った。
  • 「人間には一年に一回年をとるという脆弱性がある」
  • なんでもほいほいバックポートするのは未熟らしい。
  • parser.y is 魔境
  • 「構文エラーはモンキーパッチで回避できない」

How RSpec works

  • Matz Hates Tests

Lunch

  • 例のコーヒーはとても美味しかった。

Zeitwerk: A new code loader

  • nanoc

nanoc.ws

Terminal curses

  • raw モードだと自前で fg/bg 時の実装をしないといけない。

A light weight JIT compiler project for CRuby

  • ryujit は知らなかったのであとで調べる。(まだ見れてない...。)
  • 個人的には外で .so つくる方式の場合 cygwin では rebase 問題があるため vm 内で解決する方が動かしやすいと思う。

What is Domain Specific Language?

Lightning Talks

  • みんな TracePoint 好きだなあ。

Day3

Ruby Committers vs the World

  • (Ruby はもっと攻めてほしいという意見に) 「ああ、自分の脚を撃ってますね〜」
  • 「お客様の中で TZ に詳しい方はいらっしゃいますか?」

Fuzzing native Ruby code with Kisaten

  • Kisaten uses TracePoint API
  • Kisaten の発音が完全に「喫茶店」なんだけど、意味は何なんだろう?

Running Ruby On The Apple II

  • プロッピーディスクに発表資料が入ってた。
  • HEX 入力で発表。
  • 最初の 2 文字しか変数名として見ないっぽい。
  • 8KB しかメモリがないため 3MB ある cruby バイナリをどうやって乗せられない。
  • nRuby written in assembly
  • nRuby の GC は ref count を使う。
  • You can do TDD in assembly!

Performance Optimization Techniques of MessagePack-Ruby

  • SHARABLE_MIDDLE_SUBSTRING というコンパイルフラグがある。

Timezone API

  • Rabbit が SEGV してた。
  • (´・ω・`)
  • 「こりゃまずくないか?」

TruffleRuby: Wrapping up compatibility for C extensions

  • *.c を手動でメンテするのは大変そう。(今は解消してるらしい。)

Optimization Techniques Used by the Benchmark Winners

  • もうこれ TAS じゃん。
  • O(n) が四つん這いになってる人に見えてきた。
  • Integer の方が処理が速いので '/' を 47 と書く。
  • fast is justice 感が強い。
  • これが TRICK2019 だったのでは?

Closing

  • Matsumoto is nice!

  • 体力的に無理だった。

Day4

プチ聖地巡礼

  • 唐津駅
  • 唐津城
  • ドライブイン鳥