@ledsun blog

無味の味は佳境に入らざればすなわち知れず

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

Stackprofで時間の掛かる処理を探そうとして上手く行かなかった話

RactorでWoker pool - @ledsun blog で、並列化の効果が芳しくないことがわかりました。 どこに原因があるのか知りたいのでstackprof情報を取得します。 Ractor版だと例外がおきます。 PubAnnotationのアノテーション取り込み処理をRactor化したものをStackp…

RactorでWoker pool

Ruby 並行・並列くらべ 2 - @ledsun blog でRactorの並列化とプロセスの並列化が大体同じような性能がでることがわかりました。 Ractorに絞ってもっと性能が出ないか試してみます。 Ractorを作る数を制限していないので、物理コアをこえる数のスレッドを作っ…

https://cdn.jsdelivr.net/npm/[email protected]/dist/browser.script.iife.js のsrc属性対応

ruby.wasm/browser.script.ts at d92d1a82256c12604a1e6e15e1269f6d11a81af3 · ruby/ruby.wasm · GitHub を次のようにすれば良いじゃん簡単じゃん?と思っていました。 if (tag.type === "text/ruby") { if (tag.hasAttribute('src')){ const response = awa…

Ruby meets WebAssembly

rubykaigi.org ご本人のブログです。 発表資料もあります。 kateinoigakukun.hatenablog.com CRubyをruby.wsmにコンパイルしてブラウザ上で動かせるようにした人の発表です。 https://github.com/ruby/ruby.wasm/blob/main/packages/npm-packages/ruby-wasm-…

静的サイトをホスティングする

RubyスクリプトをWebAssembly化したRubyランタイムで動かす - @ledsun blog でブラウザで動くRubyスクリプトができました。 スマートフォンでみれるように、ホスティングします。 しました。 https://wordle-search.onrender.com/ です。 スマートフォンで見…

RubyスクリプトをWebAssembly化したRubyランタイムで動かす

wordleの候補をgrepするRubyスクリプト - @ledsun blogをブラウザで動くようにしたいと思います。 ruby.wasm/lucky.html at main · ruby/ruby.wasm · GitHub を参考にして実装していきます。 <html> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/browser.script.iife.js"></script> <script type="text/ruby"> require "js" di…</html>

wordleの候補をgrepするRubyスクリプト

Wordle - The New York Times を解くとき、次のようにgrepしています。 ledsun@MSI:~/wordle_rb►grep -e '^\w\w\wt\w$' /usr/share/dict/words | grep -v '[o sclh]' | grep a | grep e | grep r Berta Greta Harte grate irate prate これをRubyスクリプト…

Ruby 並行・並列くらべ 2

Ruby並行・並列くらべ - @ledsun blog でRubyの並行・並列の効果を測ってみました。 DBへのIO時間があると、効果がわかりにくかったです。 DBへの書き込み処理をコメントアウトしてリトライしました。 結果 シリアル処理 シリアル処理の実行結果 2m 4s。 DB…

Ruby並行・並列くらべ

Ractorで並列に動いているっぽい? - @ledsun blog の続きです。 Ractorで並列処理が出来そうなので、他の方法と性能を比べてみました。 比べるのは次の4つの方法です。 シリアル処理 スレッド プロセス Ractor シリアル処理は比較用の逐次処理です。 あるAc…

Ractorで並列に動いているっぽい?

次の感じのRubyのソースコードがあります。 annotations_collection_with_doc.each do |annotations, doc| messages += Annotation.prepare_annotations!(annotations, doc, options) end Annotation.prepare_annotations!(annotations, doc, options)の先の…

イタリアのメタルバンドのイタリア語のインタビュー記事をDeepLで読む

www.metalhammer.it 僕がDestrageを知ったのは2010年のアルバム「The King Is Fat ‘n’ Old」のすこし前です。 10年前は、イタリア語の記事が日本語で読めるようになるとは思ってもみませんでした。 DeepLは、言語の壁を壊す方向で、世界を変えている気がしま…

Making *MaNy* threads on Ruby

rubykaigi.org 発表資料です。 Koichi Sasada: Making *MaNy* threads on Ruby,RubyKaigi 2022, Mie, Japan (2022.09).https://t.co/MEdnXw2DQ5https://t.co/dBeJ2PszW2#rubykaigi— Koichi Sasada (@koichisasada) 2022年9月8日 twitter.com この記事を書く…

Binding a Lightweight IR and Backend for YJIT

rubykaigi.org 現在のYJITはx86アーキテクチャのCPUだけをサポートしています。 arm64やRISC-Vをサポートしようと考えています。 Rubyのinstructions と機械語の間にYJIT IRという中間層を設けて、CPUアーキテクチャの差異を吸収する作戦だそうです。 つまり…

Tools for Providing rich user experience in debugger

rubykaigi.org Google Chromeの開発ツールでRubyをデバッグ出来るようにした人の話です。 debug.gem and Chrome browser integration.Thanks Ono-san! pic.twitter.com/3aUdH2zbEo— _ko1 (@_ko1) October 14, 2021 このOno-sanです。 2021年度Rubyアソシエー…

Towards Ruby 4 JIT

rubykaigi.org 国分さんは英語でも早口でよく聞き取れませんでした。 僕の理解した範囲では YJITが現れてMJITは役割を終えた。ので、みんながJITコンパイルをハック出来るためのAPI置き場にします。みんなでJITコンパイラをハックしてRuby4を無茶苦茶速くし…

Matz Keynote

僕と僕の所属する会社はRubyでの受託開発を生業にしています。 ここ数年は引き合いが多くて営業で困ったことがありません。 技術力を評価していただいている面もあると思いますが。 Rubyが魅力あふれるプログラミング言語で、お金を払ってでもRubyでアプリケ…

ruby/debug - The best investment for your productivity

rubykaigi.org GitHub - ruby/debug: Debugging functionality for Ruby というRuby用のでデバッガの紹介です。 ruby/debugの主なコントリビューター 「ruby/debugの主なコントリビューターが全員登壇する」というのが、僕の中の密かなRubyKaigi 2022 胸熱ポ…

Implementing Object Shapes in CRuby

rubykaigi.org とても緊張してしゃべられてました。 丁寧なスライドで、英語全然わからない僕でも、Object Shapesってそういうものか、なるほどね!ってなったので、とても良かったです。 ていうのを、当日、直接本人に言えやって、いまさら思います。 英語…

How fast really is Ruby 3.x?

rubykaigi.org GitHub - fluent/fluentd: Fluentd: Unified Logging Layer (project under CNCF) のメンテナの方が、Ruby 3でどれぐらい速く動くようになったか計測した話です。 fluentdでは1秒間に1万オブジェクトを作ることもあるそうです。 オブジェクト…

Create my own search engine

rubykaigi.org みんなが大好きな咳さんの発表です。 druby.hatenablog.com ご本人のブログに記事があります。 発表資料もこちらから見れます。 「検索エンジンを作りました。」という発表です。 全文検索をやろうとすると、たいてい次のような課題をクリアし…

Ruby Committers vs The World

rubykaigi.org Rubyコミッターを壇上に並べて眺めるセッションです。 特に海外のコミッターさんは顔と名前が一致しないので、ありがたいセッションです。 github.com parser.yという悪魔城と呼ばれる現状中田さんしか触れないやつを置き換えるパーサーを作る…

error_highlight: user-friendly error diagnostic

rubykaigi.org 発表の前半の内容は 【RubyKaigi発表予告】error_highlight: user-friendly error diagnostics - クックパッド開発者ブログ にあります。 後半はRuby 3.2 でerror_highligthのエスケープ処理で、\が増えなくなった話でした。 ledsun@MSI:~/err…

Syntax Tree

rubykaigi.org Rubyのパーサーを書き直そうという野心的なプロジェクトを持っている人の発表です。 プロジェクトに対するモチベーションに関してはこちらのツイートのスレッドを見るのがよいと思います。 Since @yukihiro_matz mentioned it on stage at #ru…

Real World Applications with the Ruby Fiber Scheduler

rubykaigi.org https://github.com/socketry/rubydns を作っていました。 多数のリクエストに対応するために GitHub - eventmachine/eventmachine: EventMachine: fast, simple event-processing library for Ruby programs の導入を考えました。 DNSは一つ…

A Faster CRuby interpreter with dynamically specialized IR

rubykaigi.org 圧倒的にわかりませんでした。 前提知識がたりません。 Sepcialization Basic block versioning RTL IR(internal representation) SIR MIR あたりがわかっていません。 IRがinstructionsと機械語の間の中間表現かなと理解しました。 それを…

Fixing Assignment Evaluation Order

rubykaigi.org 1行のRubyプログラムを左から順に評価していきます。 これは意図時にデザインしたルールではなく、実装の結果です。 a[0], a[1] = [b, b] のときはそうではありません。 発表者のJeremy Evansさんは、Rubyのバグを大量に直しているコミッター…

History of Japanese Ruby reference manual, and future

rubykaigi.org t.co Rubyのリファレンスマニュアルの歴史の話でした。 RD, RWiki, ruremaと変わってきました。 bticlustって時々聞くなあと思ったら、RDの代わりになるツールみたいです。 Ruby 1.8のころからあるみたいです。 僕が観測したのは、鹿児島Ruby…

Stories from developing YJIT

rubykaigi.org は、RubyのYJITでどんな挑戦をしてきたかの話でした。 最初はRubyのinstructionを1:1で機械語に置き換えるところか始めました。 Railsでは遅くなりました。 つぎにJIT部分をフロントエンドとバックエンドに分けました。 もう、この辺でわかり…

Roslynを使ってC#のクラス名を変更する

Roslynを使ってC#のソースコードを編集する - @ledsun blog でRoslynをつかうとC#のソースコードが編集出来るとわかりました。 編集内容を変えて練習します。 クラス名を変えてみます。 using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp;…

Roslynを使ってC#のソースコードを編集する

自分で自分用のC#のソースコード編集ツールをつくったら捗りそうなことに気がつきました。 ググってみたら GitHub - dotnet/roslyn: The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs. というのでC#のソース…