Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby 3.0.0 コネタ集
Search
Kazuhiro NISHIYAMA
March 24, 2021
Programming
0
280
Ruby 3.0.0 コネタ集
[Fukuoka.rb 200回 LT大会 (#202) - connpass](
https://fukuokarb.connpass.com/event/206956/)での発表資料です
。
Kazuhiro NISHIYAMA
March 24, 2021
Tweet
Share
More Decks by Kazuhiro NISHIYAMA
See All by Kazuhiro NISHIYAMA
docs.ruby-lang.org/ja/ の生成方法を変えた
znz
0
18
Ubuntuのriscv64版をqemuで動かした
znz
0
25
lilo.linux.or.jpをbusterからbullseyeに上げた
znz
0
36
小規模個人アプリをRails 7.xにバージョンアップした話
znz
0
26
Ruby リファレンスマニュアル改善計画 2022 進捗報告
znz
0
86
Rubyist Magazine Reboot
znz
0
97
History of Japanese Ruby reference manual, and future
znz
0
1.5k
qemuのriscv64にDebianを入れてみた
znz
0
89
systemd 再入門
znz
0
310
Other Decks in Programming
See All in Programming
CSC307 Lecture 11
javiergs
PRO
0
240
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
160
12年前の『型システム入門』翻訳の思い出話
mame
11
1.2k
Android開発者のための Kotlin Multiplatform入門
ntaro
0
190
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
6
1.3k
How to use Macrobenchmark
veronikapj
0
160
スクラムマスターって孤独じゃないですか?
yoshitaroyoyo
1
140
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
osyoyu
1
410
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
160
Featured
See All Featured
Building an army of robots
kneath
301
42k
Agile that works and the tools we love
rasmusluckow
325
20k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
90
47k
Git: the NoSQL Database
bkeepers
PRO
423
64k
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
The Invisible Customer
myddelton
117
13k
Bash Introduction
62gerente
607
210k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
224
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.3k
Web development in the modern age
philhawksworth
203
10k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Unsuck your backbone
ammeep
666
57k
Transcript
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