gistfile1.md yjit についてメモ書き MRI に組み込まれた JIT 実装 Shopify で Maxime Chevalier-Boisvert さんが中心となり開発された 日本語だと https://techracho.bpsinc.jp/hachi8833/2021_11_02/112909 が詳しい めちゃ速い $ for opt in '' '--jit' '--yjit'; do echo "opt": $opt; time ./miniruby $opt -e 'def fib(n); return n if n < 2; fib(n - 1) + fib(n-2); end; fib(35)'; done opt: real 0m1.050s user 0m0.971s sys 0m0.036s opt: --jit real 0m0.755s user 0
技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.1.0 がリリースされました(Ruby 3.1.0 リリース )。今年も Ruby 3.1 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は以前の記事を見てください。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ プロと読み解くRuby 3.0 NEWS - クックパッド開発者ブログ 本記事は新機能を解説することもさることながら、変更が入った背景や苦労な
Ruby 開発チームに4週間インターン生として参加いたしました、永山 (GitHub: NagayamaRyoga) です。 私は「Ruby中間表現のバイナリ出力の改善」という課題に取り組み、Railsアプリケーションのコンパイルキャッシュのサイズを70%以上削減することに成功しました。以下ではこの課題の概要とその成果について述べたいと思います。 InstructionSequenceの概要 まず、RubyVM 内で実行される命令の中間表現、InstructionSequence (以下 ISeq と省略) について簡単に説明します。 通常の Ruby プログラムは、以下のような手順で実行されます。 ソースコードを構文解析し、抽象構文木を作る。 抽象構文木をコンパイルして、ISeq を作る。 RubyVM (YARV) で ISeq を解釈し、実行する。 ISeq は、このように Ruby
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Memory Conscious Programming in Ruby 原文公開日: 2017/10/31 著者: Thomas Leitner サイト: https://gettalong.org/index.html -- メモリ使用量を節約する方法と戦略 Rubyのプログラミングでメモリが大量に消費されるのは当たり前で、避けられないと考えている人がたくさんいますが、メモリ使用量を削減するさまざまな方法や戦略が利用できます。本記事ではその中からいくつかをご紹介いたします。 Rubyの内部を常に意識する TrueClass、FalseClass、NilClass、Integer、Float、Symbol、String、Array、Hash、StructといったRubyの主要なビルトインクラスは、実行パフォーマンスやメモリ使用量
こんにちは、hachi8833です。Rubyスタイルガイドを読むシリーズ、クラスとモジュール編の次は例外処理編をお送りします。記事中で推奨されている「contingency method」という手法をこのスタイルガイドで初めて知りましたが、今後の例外処理で積極的に検討したいと思います。 前回: Rubyスタイルガイドを読む: クラスとモジュール(3)クラスメソッド、スコープ、エイリアスなど 次回: Rubyスタイルガイドを読む: コレクション(Array、Hash、Setなど) Rubyスタイルガイド: 例外処理 参照: bbatsov/ruby-style-guide 6-01【統一】例外処理ではraiseを使う方がfailより望ましい Prefer raise over fail for exceptions. # 不可 fail SomeException, 'message' #
セミコロン書きたくないから,Perlで自動でセミコロン書くやつを作った. こういうセミコロンなしのFizzBuzzのPerlのプログラムを書いて, #! /usr/bin/env perl use strict use warnings for my $i (1..20) { my $message = "" $message .= "Fizz" unless $i % 3 $message .= "Buzz" unless $i % 5 $message = $i unless $message print "$message\n" } perl_auto_semicolonというコマンドにファイルを渡すと, % ./perl_auto_semicolon fizzbuzz.pl コンパイル通るまで行末にセミコロンつけたり外したりして,うまく動きそうになると,ファイルに書き出してくれる.
エンジニアの澤田です。 この連載では、マネーフォワード社内のRuby (on Rails)コードで気になった箇所の問題点やそこから発展して関連事項を議論しています。 前回の『マネーフォワード社内PRに見られるRubyの書き方について(2)』ではハッシュの生成を扱いました。 概念的な話で始まり、また長かったので、読んだ方は少し疲れたかも知れません。 今回は内容の特性により、用例を並べて手短に問題点を指摘して、文字列(String)の生成や検証を考察します。 題材とするコードは、マネーフォワード社内のGitHubプルリクエストで実際に見かけたコードから問題点に関係する部分を抽出し、抽象化したもので、見かけたものそのままではありません。 社内のコードに限らず、文字列に関わるRubyコードで問題のあるものの多くは、必要もないのに正規表現を使ってやろうとしていたり、特定のメソッドに固執してそれを乱用
Perlではコマンドラインでリファレンスを引くのにperldocを使います。 Rubyではriがそれに相当するらしいですね。 >ri eval ------------------------------------------------------------ Kernel#eval eval(string [, binding [, filename [,lineno]]]) => obj ------------------------------------------------------------------------ Evaluates the Ruby expression(s) in _string_. If _binding_ is given, the evaluation is performed in its context. The binding ma
Parallel programming in Ruby3 with Guild Koichi Sasada Cookpad Inc. <ko1@cookpad.com> Today’s talk •Ruby 2.6 updates of mine •Introduction of Guild •Design •Discussion •Implementation •Preliminary demonstration Koichi Sasada http://atdot.net/~ko1/ • is a programmer • 2006-2012 Faculty • 2012-2017 Heroku, Inc. • 2017- Cookpad Inc. • Job: MRI development • Core parts • VM, Threads, GC, etc Koichi Sa
アップルやディズニーなどの外資系企業でマーケティングを担当し、グローバルでのビジネス展開に深い知見を持つ阿部川“Go”久広が、グローバルを股に掛けたキャリアを築いてきたIT業界の先輩にお話を伺うインタビューシリーズ。 今回は、プログラム言語「Ruby」のコミュニティーで英語と日本語を駆使しながら活躍し、Twitterで日本独特のネットスラング「www(草生える)」の意味を英語で解説したことでも注目を浴びたGitHub(以下、ギットハブ)のソフトウェアエンジニア、Aaron Patterson(アーロン・パターソン)氏にご登場いただく。 阿部川“Go”久広(以降、阿部川) アーロンさんは、生まれも育ちもソルトレイクシティー(ユタ州)なんですね。 Aaron Patterson(以降、アーロンさん) そうです。1980年生まれです。 阿部川 どんな子どもだったんですか? アーロンさん (じっと
追記(2018/07/19) 処理速度ではなくてプログラムの起動時間というご指摘を受けたのでタイトルを修正しました🙏🙏 純粋な処理時間の測定は別途行おうと思います.後半の感想の部分は読み流して頂けると 🙇 🙇 目的 今回は以前のエントリで書いたようなPerl6の正規表現などを使い同じ処理をするプログラムが,各言語でどういったパフォーマンスの差が出るかの検証を行います. 題材 題材としてはmac os Xの /var/log/system.logのデーモンの回数を数え上げるというプログラムです. 処理の流れとしてはまずコマンドライン引数を確認し,それに応じてファイルを開きます. 開くことが想定されている/var/log/system.logファイルは次のような形式になっています. Jul 18 01:31:55 anatofuzMBP Dropbox[96084]: [0718/01
You may have wondered how Ruby objects are represented in the CRuby code. Not really? I would say writing a C extension is a great way to explore and learn how CRuby handles different object types. This session will re-implement our own Hash class, explain basic types in the CRuby, compare performance between native Hash, pure C++ implementation, and the C extension version, and discuss memory lay
はじめに 遠藤侑介『RubyでつくるRuby』を8章まで呼んだので、感想です。 RubyでつくるRuby ゼロから学びなおすプログラミング言語入門 作者: 遠藤侑介出版社/メーカー: ラムダノート発売日: 2017/03/31メディア: テキストこの商品を含むブログを見る 感想 プログラミングの初心者がターゲットとした、120ページくらいのプログラミングの本となっています。小さいrubyのインタプリタを作ることを目標にして、プログラミングに欠かせない変数や条件分岐、繰り返し、関数、再帰といった要素が説明されていきます。まずは電卓を作ってみて、木が登場して…。電卓を拡大しながら次第にインタプリタが完成します。楽しいプログラミング体験ができましたし、プログラミングをはじめたころに出会えたら良かったなーと思いました。 自分はあまりやる機会がないのですが、ある問題を解くためのミニ言語を用意しておい
桐生あんずです。タイトルがなんか長々しい感じになっててすみません。 1,はじめに 去年のRubyKaigiでの出来事に心打たれて、5/30(木)~6/2(土)に仙台で行われた今年のRubyKaigiにも参加してきました。 rubykaigi.org また、今回は永和システムマネジメントさんの学生支援により交通費・宿泊費・参加費等を全額負担していただき参加することができました。本当にありがとうございました。 また、宿に関してもえもり(@emorima)さん主催の貸切ゲストハウスに泊まらせていただくことができ、女性Rubyistの方々と楽しく5日間を過ごすことができました。関わっていただいた方々本当にお世話になりました。去年も行われていたRailsGirlsJapanさんの支援で来られていた方々にもそこでお会いすることができ大変嬉しかったです。 今回の記事では、去年感じたことと比較しつつ個人的
Graal VM のデザインを説明した論文 “One VM to Rule Them All” を森田が紹介します。感想などはハッシュタグ #misreading か hello@misreading.chat にお寄せください。 One VM to rule them all GraalVM graal/Publications.md at master · oracle/graal LLVM Project Blog: FTL: WebKit’s LLVM based JIT Introducing the WebKit FTL JIT | WebKit Two Minute Papers – YouTube – YouTube Follow-up and Correction わかりにくかった部分の補足を書きました。 冒頭で episode 6 後半といいましたが混乱しそうなので e
技術部の国分 (@k0kubun) です。 先日byebugの高速化を行っていた最中、変更を加えたbyebugを使っていると一定の確率でrubyがSEGVするバグを発見しました。 私はC言語のコードのデバッグの経験はなかったのですが、デバッガの使い方を調べながらSEGVの原因調査を行いパッチを送ったところ無事取り込まれ、最新の高速なbyebugが安全に使えるようになりました。 その際、ruby自体をデバッグするために必要な情報が分散していて大変だったので、まだrubyのデバッグをしたことがないけれどやってみたいという人を対象に、gdbというデバッガを使ったrubyのデバッグの方法を紹介します。 デバッグ用にrubyをビルドする デバッグ時に変数名やソースコードなどの情報を見るためには、最適化オプションをオフにしてデバッグ用にrubyをビルドしておく必要があります。 rubyのデバッグ用ビル
Resources What is Heroku? Help Customers Careers Events Podcasts Compliance Center Heroku is for Developers CTOs Team Collaboration Startups Enterprises Agencies Students See More Languages Node Ruby Java PHP Python Go Scala Clojure See More Latest News from the Heroku Blog Heroku Blog Find out what's new with Heroku on our blog. More news View all blog posts This article introduces incremental ga
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く