2022-09-01から1ヶ月間の記事一覧
RactorでWoker pool - @ledsun blog で、並列化の効果が芳しくないことがわかりました。 どこに原因があるのか知りたいのでstackprof情報を取得します。 Ractor版だと例外がおきます。 PubAnnotationのアノテーション取り込み処理をRactor化したものをStackp…
Ruby 並行・並列くらべ 2 - @ledsun blog でRactorの並列化とプロセスの並列化が大体同じような性能がでることがわかりました。 Ractorに絞ってもっと性能が出ないか試してみます。 Ractorを作る数を制限していないので、物理コアをこえる数のスレッドを作っ…
ruby.wasm/browser.script.ts at d92d1a82256c12604a1e6e15e1269f6d11a81af3 · ruby/ruby.wasm · GitHub を次のようにすれば良いじゃん簡単じゃん?と思っていました。 if (tag.type === "text/ruby") { if (tag.hasAttribute('src')){ const response = awa…
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/ です。 スマートフォンで見…
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 - 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並行・並列くらべ - @ledsun blog でRubyの並行・並列の効果を測ってみました。 DBへのIO時間があると、効果がわかりにくかったです。 DBへの書き込み処理をコメントアウトしてリトライしました。 結果 シリアル処理 シリアル処理の実行結果 2m 4s。 DB…
Ractorで並列に動いているっぽい? - @ledsun blog の続きです。 Ractorで並列処理が出来そうなので、他の方法と性能を比べてみました。 比べるのは次の4つの方法です。 シリアル処理 スレッド プロセス Ractor シリアル処理は比較用の逐次処理です。 あるAc…
次の感じのRubyのソースコードがあります。 annotations_collection_with_doc.each do |annotations, doc| messages += Annotation.prepare_annotations!(annotations, doc, options) end Annotation.prepare_annotations!(annotations, doc, options)の先の…
www.metalhammer.it 僕がDestrageを知ったのは2010年のアルバム「The King Is Fat ‘n’ Old」のすこし前です。 10年前は、イタリア語の記事が日本語で読めるようになるとは思ってもみませんでした。 DeepLは、言語の壁を壊す方向で、世界を変えている気がしま…
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 この記事を書く…
rubykaigi.org 現在のYJITはx86アーキテクチャのCPUだけをサポートしています。 arm64やRISC-Vをサポートしようと考えています。 Rubyのinstructions と機械語の間にYJIT IRという中間層を設けて、CPUアーキテクチャの差異を吸収する作戦だそうです。 つまり…
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アソシエー…
rubykaigi.org 国分さんは英語でも早口でよく聞き取れませんでした。 僕の理解した範囲では YJITが現れてMJITは役割を終えた。ので、みんながJITコンパイルをハック出来るためのAPI置き場にします。みんなでJITコンパイラをハックしてRuby4を無茶苦茶速くし…
僕と僕の所属する会社はRubyでの受託開発を生業にしています。 ここ数年は引き合いが多くて営業で困ったことがありません。 技術力を評価していただいている面もあると思いますが。 Rubyが魅力あふれるプログラミング言語で、お金を払ってでもRubyでアプリケ…
rubykaigi.org GitHub - ruby/debug: Debugging functionality for Ruby というRuby用のでデバッガの紹介です。 ruby/debugの主なコントリビューター 「ruby/debugの主なコントリビューターが全員登壇する」というのが、僕の中の密かなRubyKaigi 2022 胸熱ポ…
rubykaigi.org とても緊張してしゃべられてました。 丁寧なスライドで、英語全然わからない僕でも、Object Shapesってそういうものか、なるほどね!ってなったので、とても良かったです。 ていうのを、当日、直接本人に言えやって、いまさら思います。 英語…
rubykaigi.org GitHub - fluent/fluentd: Fluentd: Unified Logging Layer (project under CNCF) のメンテナの方が、Ruby 3でどれぐらい速く動くようになったか計測した話です。 fluentdでは1秒間に1万オブジェクトを作ることもあるそうです。 オブジェクト…
rubykaigi.org みんなが大好きな咳さんの発表です。 druby.hatenablog.com ご本人のブログに記事があります。 発表資料もこちらから見れます。 「検索エンジンを作りました。」という発表です。 全文検索をやろうとすると、たいてい次のような課題をクリアし…
rubykaigi.org Rubyコミッターを壇上に並べて眺めるセッションです。 特に海外のコミッターさんは顔と名前が一致しないので、ありがたいセッションです。 github.com parser.yという悪魔城と呼ばれる現状中田さんしか触れないやつを置き換えるパーサーを作る…
rubykaigi.org 発表の前半の内容は 【RubyKaigi発表予告】error_highlight: user-friendly error diagnostics - クックパッド開発者ブログ にあります。 後半はRuby 3.2 でerror_highligthのエスケープ処理で、\が増えなくなった話でした。 ledsun@MSI:~/err…
rubykaigi.org Rubyのパーサーを書き直そうという野心的なプロジェクトを持っている人の発表です。 プロジェクトに対するモチベーションに関してはこちらのツイートのスレッドを見るのがよいと思います。 Since @yukihiro_matz mentioned it on stage at #ru…
rubykaigi.org https://github.com/socketry/rubydns を作っていました。 多数のリクエストに対応するために GitHub - eventmachine/eventmachine: EventMachine: fast, simple event-processing library for Ruby programs の導入を考えました。 DNSは一つ…
rubykaigi.org 圧倒的にわかりませんでした。 前提知識がたりません。 Sepcialization Basic block versioning RTL IR(internal representation) SIR MIR あたりがわかっていません。 IRがinstructionsと機械語の間の中間表現かなと理解しました。 それを…
rubykaigi.org 1行のRubyプログラムを左から順に評価していきます。 これは意図時にデザインしたルールではなく、実装の結果です。 a[0], a[1] = [b, b] のときはそうではありません。 発表者のJeremy Evansさんは、Rubyのバグを大量に直しているコミッター…
rubykaigi.org t.co Rubyのリファレンスマニュアルの歴史の話でした。 RD, RWiki, ruremaと変わってきました。 bticlustって時々聞くなあと思ったら、RDの代わりになるツールみたいです。 Ruby 1.8のころからあるみたいです。 僕が観測したのは、鹿児島Ruby…
rubykaigi.org は、RubyのYJITでどんな挑戦をしてきたかの話でした。 最初はRubyのinstructionを1:1で機械語に置き換えるところか始めました。 Railsでは遅くなりました。 つぎにJIT部分をフロントエンドとバックエンドに分けました。 もう、この辺でわかり…
Roslynを使ってC#のソースコードを編集する - @ledsun blog でRoslynをつかうとC#のソースコードが編集出来るとわかりました。 編集内容を変えて練習します。 クラス名を変えてみます。 using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp;…
自分で自分用のC#のソースコード編集ツールをつくったら捗りそうなことに気がつきました。 ググってみたら GitHub - dotnet/roslyn: The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs. というのでC#のソース…