2020-09-01から1ヶ月間の記事一覧

Ractor超入門

はじめに この記事はRuby3で導入される並列・並行処理のための新機能Ractorに興味のある方向けの記事になります。 簡単なRactorを使ったサンプルコードを解説しつつ、理解を深めることができるように書いてみました(ほとんど未来の僕へ向けた記事になってい…

Rubyで型宣言っぽくコードを書けるようにしてみた

結論 以下のようなコードが動くようになります。 n = int 42 # => 42が代入される f = int 4.2 # => TypeError! やったこと 以下のようにKernelモジュールにモンキーパッチします module Kernel module_function def int(var = 0) if var.is_a?(Integer) var…

Ractorで複数のオブジェクトを渡せるようにしてみた

結論 Ractorで以下のコードを動くようにしてみました。 r = Ractor.new do v1, v2 = Ractor.recv puts v1 puts v2 puts v1.class puts v2.class end r.send(1, 2) r.take # => 1 # => 2 # => Integer # => Integer Ractorって? Ruby3で導入される並行・並列…

CRubyのFloatクラスの結構なメソッドをbuiltinで書き直してみた

はじめに Hamada.rbでCRubyのFloatクラスをbuiltinで書き直してみた記事です。どちらかといえば作業ログな内容です。 builtinとは? 過去にいくつか記事にしているので詳細はそちらを見て頂ければと思いますgamelinks007.hatenablog.com gamelinks007.hatena…

ruby-type-profilerを試してみた

はじめに この記事はHamada.rbでruby-type-profilerを試した時のアレコレをまとめたものです。 使用している環境としては WSL2(Ubuntu 18.04) で使用したRubyはruby 3.0.0dev (2020-09-07T04:29:42Z master 17a27060a7) [x86_64-linux]です。 ruby-type-prof…

Hamada.rb #13 とRuby Hacking Challenge in Hamada.rbを開催した

Hamada.rb #13 とRuby Hacking Challenge in Hamada.rbを開催した振り返りです。 参加状況とか諸々 今日は途中から参加された方も多くて盛況だった。 とくにRubyのコアの話(bundled gem 周り)とか傾聴できたのはかなりうれしかったね! あと、Kaigi on Rails…

Hamada.rb #13 とRuby Hacking Challenge in Hamada.rbを開催した

Hamada.rb #13 とRuby Hacking Challenge in Hamada.rbを開催した振り返りです。 参加状況とか諸々 今日は途中から参加された方も多くて盛況だった。 とくにRubyのコアの話(bundled gem 周り)とか傾聴できたのはかなりうれしかったね! あと、Kaigi on Rails…

Ruby2.7ではRubyで実装されたメソッドは挙動が以前と違う話

Ruby Issue Tracking System で見つけたチケットのバグを調べたときのあれこれをまとめたものです。ちなみに、調べたチケットはこれbugs.ruby-lang.org簡単に言うとruby-profでコードの挙動を追うと意図したものと異なっているみたい 挙動が違う箇所 Ruby 2.…

Rubyのbuiltinを複数のファイルでサポートできるようにした

結論 builtinで複数のRubyコードを使うことができるようになる話。ようはRubyでRubyを高速化するのがよりやりやすくなる話。以前書いたこの記事をもっと深堀りしたものなので、もっとソフトな話を読みたい方はこちらを読んでいただければと思います。gamelin…