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

Kernel#iterator?で警告を出す

結論 ブロックを渡されているかどうかをチェックして真偽値を返すKernel#iterator?をdeprecatedにしようぜという話 Kernel#iterator? Kernel#iterator?はブロックが渡されているかどうかをチェックできるメソッドです。 def check if iterator? puts "Block …

続・るりまの開発環境をDockerで作ってみた

はじめに 昨日書いた記事の続編です。gamelinks007.hatenablog.comDockerを使い、るりまの開発環境(+プレビュー環境)を作ってみました。 環境構築 以下のDockerfileをまず作成します。 FROM ruby:latest WORKDIR /home COPY ./ ./ RUN gem install bundler:1…

るりまのビルド環境をDockerで作ってみた

結論 以下のDockerfileでビルド環境はできる FROM ruby:latest WORKDIR /home COPY ./ ./ RUN gem install bundler:1.17.2 bitclust-core bitclust-dev refe2 rack きっかけ 今日参加したTama.rbでるりまのビルド環境が構築し辛いという話を聞いたのがきっか…

RubyでRubyを実装する時の罠

結論 複数のクラスを実装しているRuby内部のCコードでbuiltinをいくつか組み合わせるとビルドできなくなる。 RubyでRubyを実装する 最近のRubyは「Ruby自体をRubyで実装することで高速化できる」という場面がある。その辺の詳しいことは以前記事にまとめたの…

Ruby 2.7でのSEGVの件

結論 Ruby 2.7で以下のコードがSEGVする。 p **1 以下のコミットでmasterでは修正済み。github.comただ、まだバックポートはされていない模様。ちなみにバグ報告のチケットとしてはこちらbugs.ruby-lang.org Ruby 2.7でのSEGV Ruby 2.7では以下のコードでSEG…

RubyでRubyを高速化できるかもしれない話

結論 RubyでRubyを高速化できるかもしれない話です。 半分は調べた内容のメモ用で書いてます。 どういうこと? 現在開発中のRubyでは一部の実装をRubyで書くことができるようになっています。(ちなみに、Ruby 2.7ではいくつかのメソッドがRuby(とC)で実装さ…

RubyのナンパラでSEGV

結論 Ruby 2.7ではこのコードでSEGVする模様(WSL2 上の Ubuntu 18.04で確認) [1, 2, 3, 4].map{ _1 **3 } やりたかったこと Ruby 2.7から導入された numbered parameter を使って配列内の数値を3乗したものを作ろうとした。 が、SEGVが起きてしまった。 sh@M…

Hamada.rbがそろそろ一周年迎える話

Hamada.rbがそろそろ一周年を迎えるので、やりはじめたきっかけとかまとめとこうと思い、つらつらと書いてみました。 Hamada.rbって? 島根県浜田市にある地域.rbです。多分、島根県西部では唯一の地域.rb。 hamadarb.connpass.com また島根県西部のIT系コミ…