Ruby 3.0
Ruby 3.0 Advent Calendar 2020 25日目の記事になります。 Ruby 3.0.0 リリース 予定通り本日12月25日に無事 Ruby 3.0 がリリースされました。 開発者の皆様お疲れ様でした。 それと同時にこのアドベントカレンダーも本日で終了になります。 参加していただ…
Ruby 3.0 Advent Calendar 2020 24日目の記事になります。 今回は Ruby 3.0 で実験的に入る Ractor の共有可能オブジェクトについて簡単に説明してみます。 NOTE: ここに書いてある内容は今後変更されるかもしれないので注意してください!! 共有可能オブジ…
Ruby 3.0 Advent Calendar 2020 22日目の記事になります。 この前の銀座Rails で完全に話忘れてたのでここに書いておきます。 Ruby 3.0 で WEBrick と SDBM が標準ライブラリから削除される 表題のとおりですが Ruby 3.0 から標準ライブラリの WEBrick と SD…
Ruby 3.0 Advent Calendar 2020 19日目の記事になります。 銀座Rails#28 で Ruby 3.0 の話をした ちょうど preview1 がリリースされた頃の 銀座Rails#26 でも Ruby 3.0 の話をしたんですが、その時からかなり仕様が変わった機能などもあったのでその訂正をす…
一人 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 13日目の記事になります。 昨日は『銀座Rails#26で Ruby 3.0 の話をした』です。 今日は Ruby 3.0 で新しく Hash クラスに追加・変更される2つのメソッドの紹介です。 任意のキーの要素を取り除く Hash#except メソッド Activ…
Ruby 3.0 Advent Calendar 2020 12日目の記事になります。 昨日は『Win32APIが廃止された』です。 そういえば書いてなかったのでこの機会に書いておきます。 銀座Rails#26 で Ruby 3.0 の話をした 開催されたのは今年の10月でちょっと前になるんですが 銀座R…
Ruby 3.0 Advent Calendar 2020 9日目の記事になります。 昨日は『OpenStruct で既存のメソッドを呼び出せるようになった 』です。 Ruby 3.0.0-preview2 がリリースされた リリースされました。めでたい。 preview1 がリリースされてから2ヶ月以上経っており…
Ruby 3.0 Advent Calendar 2020 8日目の記事になります。 昨日は Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 です。 今日は OpenStruct について書きます。 OpenStruct について OpenStru…
Ruby 3.0 Advent Calendar 2020 6日目の記事になります。 昨日は Rubyにはオブジェクトを汚染する仕組みがあった - いまブログです。 今年は RubyVM::AbstractSyntaxTree を触ることが多かったのですが、それに関連してバグっぽい挙動をいくつか見つけたので…
Ruby 3.0 Advent Calendar 2020 1日目の記事になります。 もう今年も Advent Calendar の時期ですね。 並行して Ruby Advent Calendar 2020 も開催しているので興味があるひとはぜひ参加してみてください! Ruby 3.0 Advent Calendar 2020 もまだ空きはいっ…
約9ヶ月ぶりぐらいに Omotesando.rb が開催されて LT してきました。 今回ははじめてのオンライン開催です! Omotesando.rb #56 - connpass パターンマッチと右代入が便利になる gem をつくった 内容は前に pattern_matchable というパターンマッチで便利に…
内容は適当です。 今週と言っても今週みかけたチケットなだけでチケット自体は昔からあるやつもあります。 あくまでも『わたしが気になったチケット』で全ての bugs.ruby のチケットを載せているわけではありません。 先週のまとめ [PR #3703] Assoc pattern…
入りました。 元々はパターンマッチの 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 の開発版に右代入演算子とエンドレスメソッド定義構文が入った - Secret Garden(Instrumental) 上記の記事から少し挙動に変更があったので Ruby 3.0.0 previe…
Ruby 3.0.0 preview1 がリリースされました。めでたい。 Ruby 3.0.0 Preview 1 Released NEWS 気になる機能はあとでまとめるとして NEWS には載ってなかった変更点をちょっと書きます。 ただし、この変更は Ruby 2.7.2 で取り込まれる予定なので Ruby 3.0.0 …
簡単にやってみた。 $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…
今日の 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 -…