Ruby 3.0.0 コネタ集

K
Kazuhiro NishiyamaSoftware Developer
Ruby 3.0.0 コネタ集
Kazuhiro NISHIYAMA
Fukuoka.rb 200回 LT大会 (#202)
2021-03-24
株式会社Ruby開発
Powered by Rabbit 2.2.1
自己紹介
西山 和広
Ruby のコミッター
twitter, github など: @znz
株式会社Ruby開発 www.ruby-dev.jp
1/14
はじめに
LT なので内容はコネタ集です
2/14
Ractor
関連
Ractor で SEGV
3.0.0 では SEGV
コア実装の experimental な機能は
SEGV バグがみつけやすいかも?
% ruby -e Ractor.current.dup
-e:1:in `dup': allocator undefined for Ractor (TypeError)
from -e:1:in `<main>'
4/14
Ractor をまたぐ Thread
Ractor 終了時なら Thread がそのまま
別 Ractor に移動可能
他の制限にひっかかって問題が起きる可
能性は未発見
% ruby -W0 -e 'r=Ractor.new{p Thread.new{loop{}}}; p r.take'
#<Thread:0x00007fcf2586bfb8 -e:1 run>
#<Thread:0x00007fcf2586bfb8 -e:1 run>
5/14
Ractor as global Queue
main Ractor を Queue 代わりに使えるかも?
% ruby -e 'Ractor.current.send("foo"); p Ractor.receive'
"foo"
6/14
shareable の影響あり
ただし shareable ではないオブジェクトはコ
ピーされてしまうので Queue 代わりには使いに
くい
% ruby -e 'Ractor.current.send("foo".tap{|x|p x.object_id});
p Ractor.receive.tap{|x|p x.object_id}'
60
80
"foo"
7/14
互換性関連
のコネタ
frozen_string_literal
frozen_string_literal: true magic
comment 対応を 3.0.0 以降のみで確認すると対
応漏れする可能性あり
% ruby --enable=frozen_string_literal -e 'p "#{}".frozen?'
false
string interpolation (文字列補間) があると
frozen にならなくなった
9/14
Warning[:deprecated]
ruby -w や ruby -v で $VERBOSE = true に
すると Warning[:deprecated] も true にな
るが、プログラム中で $VERBOSE = true にし
ても Warning[:deprecated] は false のま
ま
% ruby -e 'p Warning[:deprecated]'
false
% ruby -w -e 'p Warning[:deprecated]'
true
% ruby -e '$VERBOSE=true; p Warning[:deprecated]'
false
10/14
ruby -T
$SAFE 関連が消えて -T オプションが消えた
ruby 3.0:
% ruby -T0 -e 0
ruby: invalid option -T (-h will show valid options) (RuntimeError)
ruby 2.7:
% ruby -T0 -e 0
ruby: warning: ruby -T will be removed in Ruby 3.0
将来何か他の意味に使われるかも?
11/14
$SAFE / $KCODE
普通のグローバル変数になった (これも普通は使
わない)
% ruby -e '$KCODE = "foo"; p $KCODE'
"foo"
12/14
TRUE / FALSE / NIL
ついに消えたので普通の定数として利用可能 (普
通は使わない)
% ruby -e 'NIL = :dummy; p NIL.nil?'
false
13/14
おわり
Ractor はまだバグがありそうなので探
すと面白いかも
気付きにくい非互換もあるので複数
ruby バージョン対応するときには注意
長い間残っていて 3.0 で消えているもの
があります
14/14
Powered by Rabbit 2.2.1
1 of 15

Recommended

本番環境で使える実行コード記録機能 by
本番環境で使える実行コード記録機能本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能mametter
769 views21 slides
20131208 agile samuraibasecamp by
20131208 agile samuraibasecamp20131208 agile samuraibasecamp
20131208 agile samuraibasecampHiroshi SHIBATA
545 views40 slides
マニアックなRuby 2.7新機能紹介 by
マニアックなRuby 2.7新機能紹介マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介mametter
972 views59 slides
Rx入門 by
Rx入門Rx入門
Rx入門Takaaki Suzuki
27.1K views33 slides
Rx Showcase by
Rx ShowcaseRx Showcase
Rx ShowcaseTakaaki Suzuki
754 views14 slides
システム系論文輪講会20140806 by
システム系論文輪講会20140806システム系論文輪講会20140806
システム系論文輪講会20140806紘也 金子
18.9K views36 slides

More Related Content

What's hot

成長を加速する minne の技術基盤戦略 by
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
9.4K views40 slides
Akka HTTP by
Akka HTTPAkka HTTP
Akka HTTPTanUkkii
2.8K views34 slides
Integral - New O/R Mapper for Common Lisp by
Integral - New O/R Mapper for Common LispIntegral - New O/R Mapper for Common Lisp
Integral - New O/R Mapper for Common Lispfukamachi
13.4K views40 slides
はじめての Gatling by
はじめての Gatlingはじめての Gatling
はじめての GatlingNaoya Nakazawa
10.6K views19 slides
Reactive Kafka with Akka Streams by
Reactive Kafka with Akka StreamsReactive Kafka with Akka Streams
Reactive Kafka with Akka Streamsscalaconfjp
681 views49 slides
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか by
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったかm2ym
7.6K views58 slides

What's hot(20)

成長を加速する minne の技術基盤戦略 by Hiroshi SHIBATA
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA9.4K views
Akka HTTP by TanUkkii
Akka HTTPAkka HTTP
Akka HTTP
TanUkkii2.8K views
Integral - New O/R Mapper for Common Lisp by fukamachi
Integral - New O/R Mapper for Common LispIntegral - New O/R Mapper for Common Lisp
Integral - New O/R Mapper for Common Lisp
fukamachi13.4K views
はじめての Gatling by Naoya Nakazawa
はじめての Gatlingはじめての Gatling
はじめての Gatling
Naoya Nakazawa10.6K views
Reactive Kafka with Akka Streams by scalaconfjp
Reactive Kafka with Akka StreamsReactive Kafka with Akka Streams
Reactive Kafka with Akka Streams
scalaconfjp681 views
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか by m2ym
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
括弧への異常な愛情 または私は如何にして心配するのを止めてCommon Lispを愛するようになったか
m2ym7.6K views
Automation tech casual_talks_1_20120717 by Makoto Haruyama
Automation tech casual_talks_1_20120717Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
Makoto Haruyama2.3K views
Web Operations and Perl kansai.pm#14 by Masahiro Nagano
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano2.1K views
minneで学ぶクラウド脳 by Uchio Kondo
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
Uchio Kondo2.4K views
Rails Testing on Fargate by sinsoku listy
Rails Testing on FargateRails Testing on Fargate
Rails Testing on Fargate
sinsoku listy510 views
Crafting Rails4 Applications読み回 1. Creating Our Own Renderer by Masato Mori
Crafting Rails4 Applications読み回 1. Creating Our Own RendererCrafting Rails4 Applications読み回 1. Creating Our Own Renderer
Crafting Rails4 Applications読み回 1. Creating Our Own Renderer
Masato Mori7.5K views
OSSの敵になるのもいいじゃない by lestrrat
OSSの敵になるのもいいじゃないOSSの敵になるのもいいじゃない
OSSの敵になるのもいいじゃない
lestrrat69.4K views
いまさら聞けないselectあれこれ by lestrrat
いまさら聞けないselectあれこれいまさら聞けないselectあれこれ
いまさら聞けないselectあれこれ
lestrrat24.6K views
ネットワークAPI のあれこれ (ENOG37) by Kentaro Ebisawa
ネットワークAPI のあれこれ (ENOG37)ネットワークAPI のあれこれ (ENOG37)
ネットワークAPI のあれこれ (ENOG37)
Kentaro Ebisawa5.5K views
Composer による依存管理 と Packagist によるライブラリの公開 by Shogo Kawahara
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara18.8K views
ネットワークOS野郎 ~ インフラ野郎Night 20160414 by Kentaro Ebisawa
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa13.6K views
Rust-DPDK by Masaru Oki
Rust-DPDKRust-DPDK
Rust-DPDK
Masaru Oki3.9K views

Similar to Ruby 3.0.0 コネタ集

人間たちとsystemd by
人間たちとsystemd人間たちとsystemd
人間たちとsystemdUchio Kondo
1.7K views64 slides
Rubyな日々 by
Rubyな日々Rubyな日々
Rubyな日々Kazuhiro Nishiyama
802 views28 slides
Rubinius Under a Microscope by
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope高広 内山
1.6K views34 slides
Ruby In Wheezy by
Ruby In WheezyRuby In Wheezy
Ruby In WheezyYouhei SASAKI
1.7K views44 slides
Ruby on Rails を用いたWEBアプリケーションの開発 by
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
7.9K views24 slides
JRuby on Rails by
JRuby on RailsJRuby on Rails
JRuby on RailsYoichiro Tanaka
2K views46 slides

Similar to Ruby 3.0.0 コネタ集(20)

人間たちとsystemd by Uchio Kondo
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
Uchio Kondo1.7K views
Rubinius Under a Microscope by 高広 内山
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
高広 内山1.6K views
Ruby on Rails を用いたWEBアプリケーションの開発 by Koichi Shimozono
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono7.9K views
とっとるびー(2回目)発表資料 by ionis111
とっとるびー(2回目)発表資料とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料
ionis1111.1K views
Ruby in Wheezy @ 関西闇Ruby by Youhei SASAKI
Ruby in Wheezy @ 関西闇RubyRuby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇Ruby
Youhei SASAKI595 views
Ruby の制御構造とリテラルについて by Tomoya Kawanishi
Ruby の制御構造とリテラルについてRuby の制御構造とリテラルについて
Ruby の制御構造とリテラルについて
Tomoya Kawanishi1.1K views
laravel websocket(use redis pubsub) [Laravel meetup tokyo] by Yuuki Takezawa
laravel websocket(use redis pubsub) [Laravel meetup tokyo]laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Yuuki Takezawa6K views
JavascriptでRubyの作り方 by Shuyo Nakatani
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方
Shuyo Nakatani4.3K views
capybara で快適なテスト生活を by Ryunosuke SATO
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO14.7K views
nomlab_okayamaruby_slide by nomlab
nomlab_okayamaruby_slidenomlab_okayamaruby_slide
nomlab_okayamaruby_slide
nomlab1K views
Ruby on cygwin (2019/8月号) by fd0
Ruby on cygwin (2019/8月号)Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)
fd0 2.5K views
nadoka さんの m17n 対応のベストプラクティス by Kazuhiro Nishiyama
nadoka さんの m17n 対応のベストプラクティスnadoka さんの m17n 対応のベストプラクティス
nadoka さんの m17n 対応のベストプラクティス
Kazuhiro Nishiyama1.1K views
表参道.rb #1 Ruby Gold 2.1 に合格した話 by Yoshiaki Yoshida
表参道.rb #1 Ruby Gold 2.1 に合格した話表参道.rb #1 Ruby Gold 2.1 に合格した話
表参道.rb #1 Ruby Gold 2.1 に合格した話
Yoshiaki Yoshida6.3K views
Rails解説セミナー: リリースノート解説編 by Yohei Yasukawa
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Yohei Yasukawa3.3K views

More from Kazuhiro Nishiyama

小規模個人アプリをRails 7.xにバージョンアップした話 by
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話Kazuhiro Nishiyama
2 views17 slides
Ruby リファレンスマニュアル改善計画 2022 進捗報告 by
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Kazuhiro Nishiyama
13 views30 slides
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf by
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdffukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdfKazuhiro Nishiyama
11 views21 slides
rubykaigi2022-rurema-history-and-future.pdf by
rubykaigi2022-rurema-history-and-future.pdfrubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdfKazuhiro Nishiyama
13 views25 slides
systemd 再入門 by
systemd 再入門systemd 再入門
systemd 再入門Kazuhiro Nishiyama
508 views25 slides
livedoor天気API終了対応 by
livedoor天気API終了対応livedoor天気API終了対応
livedoor天気API終了対応Kazuhiro Nishiyama
281 views10 slides

More from Kazuhiro Nishiyama(20)

小規模個人アプリをRails 7.xにバージョンアップした話 by Kazuhiro Nishiyama
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
Ruby リファレンスマニュアル改善計画 2022 進捗報告 by Kazuhiro Nishiyama
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf by Kazuhiro Nishiyama
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdffukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
workflow,job,step の使い分けの基準を考える by Kazuhiro Nishiyama
workflow,job,step の使い分けの基準を考えるworkflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考える
Kazuhiro Nishiyama200 views
あまり知られていないRubyの便利機能 by Kazuhiro Nishiyama
あまり知られていないRubyの便利機能あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能
Kazuhiro Nishiyama201 views
Dockerのオフィシャルrubyイメージとは? by Kazuhiro Nishiyama
Dockerのオフィシャルrubyイメージとは?Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?
Kazuhiro Nishiyama946 views
Action Cableで簡易チャットを作ってみた by Kazuhiro Nishiyama
Action Cableで簡易チャットを作ってみたAction Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
Kazuhiro Nishiyama1.3K views
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話 by Kazuhiro Nishiyama
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
Kazuhiro Nishiyama429 views

Recently uploaded

The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
76 views29 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
89 views26 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
151 views42 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
29 views38 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
23 views36 slides

Recently uploaded(12)

The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.76 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga25 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka90 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4380 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda453 views

Ruby 3.0.0 コネタ集