AdventCalendar
Ruby 3.0 Advent Calendar 2020 24日目の記事になります。 今回は Ruby 3.0 で実験的に入る Ractor の共有可能オブジェクトについて簡単に説明してみます。 NOTE: ここに書いてある内容は今後変更されるかもしれないので注意してください!! 共有可能オブジ…
【一人 bugs.ruby Advent Calendar 2020】[Feature #16986] Anonymous Struct literal【23日目】 一人 bugs.ruby Advent Calendar 2020 23日目の記事になります。 [Feature #16986] Anonymous Struct literal これは Struct.new(:a, :b).new(1, 2) を ${ a: …
一人 bugs.ruby Advent Calendar 2020 22日目の記事になります。 [Feature #17004] Provide a way for methods to omit their return value このチケットは任意のメソッドが戻り値を受け取るか受け取らないかを判定するメソッドの追加を追加するという内容の…
Ruby 3.0 Advent Calendar 2020 22日目の記事になります。 この前の銀座Rails で完全に話忘れてたのでここに書いておきます。 Ruby 3.0 で WEBrick と SDBM が標準ライブラリから削除される 表題のとおりですが Ruby 3.0 から標準ライブラリの WEBrick と SD…
一人 bugs.ruby Advent Calendar 2020 21日目の記事になります。 [Misc #17199] id outputed by inspect and to_s output does not allow to find actual object_id and vice-versa Ruby 2.7 から #inspect ( #to_s ) と #__id__ が返すアドレスの関連性が一…
一人 bugs.ruby Advent Calendar 2020 20日目の記事になります。 誤解しないように最初に書いておくとこのチケットによる Ruby 3.0 への影響はありません。 [Bug #17017] Range#max & Range#minmax incorrectly use Float end as max このチケットは以下のよ…
一人 bugs.ruby Advent Calendar 2020 19日目の記事になります。 [Feature #17292] Hash Shorthand / Punning これは { a:, b:, c: } を { a: a, b: b, c: c } のように展開しようという提案です。 a = 1 b = 2 c = 3 { a:, b:, c: } # => { a: 1, b: 2, c: …
Ruby 3.0 Advent Calendar 2020 19日目の記事になります。 銀座Rails#28 で Ruby 3.0 の話をした ちょうど preview1 がリリースされた頃の 銀座Rails#26 でも Ruby 3.0 の話をしたんですが、その時からかなり仕様が変わった機能などもあったのでその訂正をす…
一人 bugs.ruby Advent Calendar 2020 18日目の記事になります。 [Bug #16852] Refining Enumerable fails with ruby 2.7 Ruby 2.7 系の Refinements のバグ報告チケットになります。 元々は以下のように RSpec での再現コードで報告されていた。 # file: re…
一人 bugs.ruby Advent Calendar 2020 17日目の記事になります。 [Feature #17371] Reintroduce expr in pat これは1行 in を再度入れ直そう、という旨のチケットです。 これ、ちょっとコンテキストが複雑なんですが、元々 Ruby 2.7 で 1行 in という機能が…
一人 bugs.ruby Advent Calendar 2020 16日目の記事になります。 [Feature #15504] Freeze all Range object リテラルで Range を生成すると同じ id のオブジェクトが返ってくるケースがあります。 # これは個別の id が返ってくる p (1..3).__id__ # => 60 …
一人 bugs.ruby Advent Calendar 2020 15日目の記事になります。 [Bug #16919] IRB でマジックコメントの : の後に任意の文字を入力するとエラーが発生する そのまんまの意味なんですが Ruby 2.7 の irb 上で #coding:utf-8 を入力するとクラッシュするとい…
一人 bugs.ruby Advent Calendar 2020 14日目の記事になります。 [Feature #17054] Some NilClass methods are faster if implemented in Ruby これは NilClass#to_i などを C言語じゃなくて Ruby で実装することで高速化するというチケットになります。 何…
Ruby 3.0 Advent Calendar 2020 13日目の記事になります。 昨日は『銀座Rails#26で Ruby 3.0 の話をした』です。 今日は Ruby 3.0 で新しく Hash クラスに追加・変更される2つのメソッドの紹介です。 任意のキーの要素を取り除く Hash#except メソッド Activ…
一人 bugs.ruby Advent Calendar 2020 13日目の記事になります。 [Feature #12901] Anonymous functions without scope lookup overhead Proc などを定義する際に『外部のスコープを参照しないこと』を明示化することでオーバーヘッドをなくしパフォーマンス…
一人 bugs.ruby Advent Calendar 2020 12日目の記事になります。 [Feature #17315] Hash #transform これは Hash の中身を変更して Hash を返す Hash#transform Hash#transform! を追加する提案です。 h = {'name' => 'dominic ', 'email' => 'dominic.mail.…
Ruby 3.0 Advent Calendar 2020 12日目の記事になります。 昨日は『Win32APIが廃止された』です。 そういえば書いてなかったのでこの機会に書いておきます。 銀座Rails#26 で Ruby 3.0 の話をした 開催されたのは今年の10月でちょっと前になるんですが 銀座R…
一人 bugs.ruby Advent Calendar 2020 11日目の記事になります。 [Feature #17330] Object#non 以下のように実装された Object#non メソッドを新しく追加する提案です。 class Object # ブロックの戻り値が偽ならレシーバを返し、そうでないなら nil を返す …
内容は適当です。 今週と言っても今週みかけたチケットなだけでチケット自体は昔からあるやつもあります。 あくまでも『わたしが気になったチケット』で全ての bugs.ruby のチケットを載せているわけではありません。 先週のまとめ [Feature #17361] lambda(…
一人 bugs.ruby Advent Calendar 2020 10日目の記事になります。 [Feature #17316] On memoization Ruby でインスタンス変数を初期化する場合、以下のように ||= 演算子を使うことが多いです。 # @foo の初期値として最初にメソッドが呼び出された時に some_…
一人 bugs.ruby Advent Calendar 2020 9日目の記事になります。 [Feature #13820] Add a nil coalescing operator このチケットは Ruby に ?? 演算子を追加しよう、というチケットになります。 ?? 演算子は || 演算子と似ているのですが『左辺が nil のとき…
Ruby 3.0 Advent Calendar 2020 9日目の記事になります。 昨日は『OpenStruct で既存のメソッドを呼び出せるようになった 』です。 Ruby 3.0.0-preview2 がリリースされた リリースされました。めでたい。 preview1 がリリースされてから2ヶ月以上経っており…
一人 bugs.ruby Advent Calendar 2020 8日目の記事になります。 [Bug #17058] Array#delete_if doesn't change array instantly さて Array#delete_if で条件にあった要素を削除する事ができます。 a = [1, 2, 3, 4, 5, 6] # 偶数を削除する a.delete_if { |…
Ruby 3.0 Advent Calendar 2020 8日目の記事になります。 昨日は Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 です。 今日は OpenStruct について書きます。 OpenStruct について OpenStru…
一人 bugs.ruby Advent Calendar 2020 7日目の記事になります。 [Feature #16986] Anonymous Struct literal このチケットは Struct を定義する新しいリテラルの提案です。 提案自体はそこまで複雑な内容ではなくて Struct.new(:a, :b).new(1, 2) を ${a: 1,…
Ruby 3.0 Advent Calendar 2020 6日目の記事になります。 昨日は Rubyにはオブジェクトを汚染する仕組みがあった - いまブログです。 今年は RubyVM::AbstractSyntaxTree を触ることが多かったのですが、それに関連してバグっぽい挙動をいくつか見つけたので…
一人 bugs.ruby Advent Calendar 2020 6日目の記事になります。 [Bug #15712] DateTime#=== should be defined and compare date and time instead of just the date このチケットは DateTime#=== で比較する際に日付だけ考慮して時刻を考慮せずに比較されて…
一人 bugs.ruby Advent Calendar 2020 5日目の記事になります。 [Feature #17210] More readable and useful Set#inspect このチケットでは Set#inspect や Set#to_s の結果をより Ruby 側に寄せよう、という提案がされています。 # 現状 puts Set[1, 2, 3] …
一人 bugs.ruby Advent Calendar 2020 4日目の記事になります。 [Bug #17030] Enumerable#grep{_v} should be optimized for Regexp ary.select { |e| e.match?(reg) } と比較して ary.grep(reg) の方が遅いので最適化しよう、という内容のチケットになりま…
一人 bugs.ruby Advent Calendar 2020 3日目の記事になります。 [Bug #17101] YAML.load_file: Massive slowdown under Ruby 2.7 vs. Ruby 2.4 この記事では YAML.load_file の実行速度について言及されているチケットになります。 Ruby 2.4 と比べて Ruby 2…