Ruby 3.0

【Ruby 3.0 Advent Calendar 2020】Ruby 3.0 がリリースされました!!!【25日目】

Ruby 3.0 Advent Calendar 2020 25日目の記事になります。 Ruby 3.0.0 リリース 予定通り本日12月25日に無事 Ruby 3.0 がリリースされました。 開発者の皆様お疲れ様でした。 それと同時にこのアドベントカレンダーも本日で終了になります。 参加していただ…

【Ruby 3.0 Advent Calendar 2020】Ractor の共有可能オブジェクトについて【24日目】

Ruby 3.0 Advent Calendar 2020 24日目の記事になります。 今回は Ruby 3.0 で実験的に入る Ractor の共有可能オブジェクトについて簡単に説明してみます。 NOTE: ここに書いてある内容は今後変更されるかもしれないので注意してください!! 共有可能オブジ…

【Ruby 3.0 Advent Calendar 2020】Ruby 3.0 で WEBrick と SDBM が標準ライブラリから削除される【22日目】

Ruby 3.0 Advent Calendar 2020 22日目の記事になります。 この前の銀座Rails で完全に話忘れてたのでここに書いておきます。 Ruby 3.0 で WEBrick と SDBM が標準ライブラリから削除される 表題のとおりですが Ruby 3.0 から標準ライブラリの WEBrick と SD…

【Ruby 3.0 Advent Calendar 2020】銀座Rails#28 で Ruby 3.0 の話をした【19日目】

Ruby 3.0 Advent Calendar 2020 19日目の記事になります。 銀座Rails#28 で Ruby 3.0 の話をした ちょうど preview1 がリリースされた頃の 銀座Rails#26 でも Ruby 3.0 の話をしたんですが、その時からかなり仕様が変わった機能などもあったのでその訂正をす…

【一人 bugs.ruby Advent Calendar 2020】[Feature #15504] Freeze all Range object【16日目】

一人 bugs.ruby Advent Calendar 2020 16日目の記事になります。 [Feature #15504] Freeze all Range object リテラルで Range を生成すると同じ id のオブジェクトが返ってくるケースがあります。 # これは個別の id が返ってくる p (1..3).__id__ # => 60 …

【Ruby 3.0 Advent Calendar 2020】Ruby 3.0 で追加・変更される Hash のメソッド【13日目】

Ruby 3.0 Advent Calendar 2020 13日目の記事になります。 昨日は『銀座Rails#26で Ruby 3.0 の話をした』です。 今日は Ruby 3.0 で新しく Hash クラスに追加・変更される2つのメソッドの紹介です。 任意のキーの要素を取り除く Hash#except メソッド Activ…

【Ruby 3.0 Advent Calendar 2020】銀座Rails#26 で Ruby 3.0 の話をした【12日目】

Ruby 3.0 Advent Calendar 2020 12日目の記事になります。 昨日は『Win32APIが廃止された』です。 そういえば書いてなかったのでこの機会に書いておきます。 銀座Rails#26 で Ruby 3.0 の話をした 開催されたのは今年の10月でちょっと前になるんですが 銀座R…

【Ruby 3.0 Advent Calendar 2020】Ruby 3.0.0-preview2 がリリースされた【9日目】

Ruby 3.0 Advent Calendar 2020 9日目の記事になります。 昨日は『OpenStruct で既存のメソッドを呼び出せるようになった 』です。 Ruby 3.0.0-preview2 がリリースされた リリースされました。めでたい。 preview1 がリリースされてから2ヶ月以上経っており…

【Ruby 3.0 Advent Calendar 2020】OpenStruct で既存のメソッドを呼び出せるようになった【8日目】

Ruby 3.0 Advent Calendar 2020 8日目の記事になります。 昨日は Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 です。 今日は OpenStruct について書きます。 OpenStruct について OpenStru…

【Ruby 3.0 Advent Calendar 2020】今年 Ruby に投げたパッチまとめ【6日目】

Ruby 3.0 Advent Calendar 2020 6日目の記事になります。 昨日は Rubyにはオブジェクトを汚染する仕組みがあった - いまブログです。 今年は RubyVM::AbstractSyntaxTree を触ることが多かったのですが、それに関連してバグっぽい挙動をいくつか見つけたので…

【Ruby 3.0 Advent Calendar 2020】Ruby に右代入がやってくる【1日目】

Ruby 3.0 Advent Calendar 2020 1日目の記事になります。 もう今年も Advent Calendar の時期ですね。 並行して Ruby Advent Calendar 2020 も開催しているので興味があるひとはぜひ参加してみてください! Ruby 3.0 Advent Calendar 2020 もまだ空きはいっ…

Omotesando.rb #56 で LT してきた

約9ヶ月ぶりぐらいに Omotesando.rb が開催されて LT してきました。 今回ははじめてのオンライン開催です! Omotesando.rb #56 - connpass パターンマッチと右代入が便利になる gem をつくった 内容は前に pattern_matchable というパターンマッチで便利に…

2020/10/29 今週の気になった bugs.ruby のチケット

内容は適当です。 今週と言っても今週みかけたチケットなだけでチケット自体は昔からあるやつもあります。 あくまでも『わたしが気になったチケット』で全ての bugs.ruby のチケットを載せているわけではありません。 先週のまとめ [PR #3703] Assoc pattern…

開発版の Ruby 3.0 の右代入で分割代入ができる機能がはいった

入りました。 元々はパターンマッチの 1行 in を利用して分割代入を行えるような機能が Ruby 2.7 で実験的に入っていました。 # Ruby 2.7 で動くコード p RUBY_DESCRIPTION # => "ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]" data = {…

改めて整理する Ruby 3.0 に実験的に入る予定のエンドレスメソッド定義構文と右代入演算子について

以前に以下の記事で右代入演算子とエンドレスメソッド定義構文について簡単に解説しました。 Ruby の開発版に右代入演算子とエンドレスメソッド定義構文が入った - Secret Garden(Instrumental) 上記の記事から少し挙動に変更があったので Ruby 3.0.0 previe…

Ruby 3.0.0 preview1 がリリースと非推奨の警告がデフォルトではでなくなる予定

Ruby 3.0.0 preview1 がリリースされました。めでたい。 Ruby 3.0.0 Preview 1 Released NEWS 気になる機能はあとでまとめるとして NEWS には載ってなかった変更点をちょっと書きます。 ただし、この変更は Ruby 2.7.2 で取り込まれる予定なので Ruby 3.0.0 …

Ruby の Ractor で sleep sort をやってみた

簡単にやってみた。 $stdout.sync = true puts "かいし!!!" data = (1..10).to_a.shuffle pp data ractors = data.map { |i| Ractor.new(i) { |it| # バッファリングを無効化 $stdout.sync = true sleep it / 5.0 puts it } } # 待ち処理 ractors.map(&:t…

Ruby 3.0 で変わる Module#include の挙動

今日の RubyKaigi Takeout 2020 の Ruby Committers vs the World でチラッと話が出たのでちょっとまとめでみました。 該当チケット:Bug #9573: descendants of a module don't gain its future ancestors, but descendants of a class, do - Ruby master -…