[#65451] [ruby-trunk - Feature #10333] [PATCH 3/1] optimize: "yoda literal" == string — ko1@...
Issue #10333 has been updated by Koichi Sasada.
ko1@atdot.net wrote:
Eric Wong <normalperson@yhbt.net> wrote:
Eric Wong <normalperson@yhbt.net> wrote:
On 2014/10/09 11:04, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
[#65453] [ruby-trunk - Feature #10328] [PATCH] make OPT_SUPPORT_JOKE a proper VM option — ko1@...
Issue #10328 has been updated by Koichi Sasada.
[#65559] is there a name for this? — Xavier Noria <fxn@...>
When describing stuff about constants (working in their guide), you often
On 2014/10/09 20:41, Xavier Noria wrote:
On Thu, Oct 9, 2014 at 1:59 PM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
[#65566] [ruby-trunk - Feature #10351] [Open] [PATCH] prevent CVE-2014-6277 — shyouhei@...
Issue #10351 has been reported by Shyouhei Urabe.
[#65741] Re: [ruby-cvs:55121] normal:r47971 (trunk): test/ruby/test_rubyoptions.rb: fix race — Nobuyoshi Nakada <nobu@...>
On 2014/10/16 10:10, normal@ruby-lang.org wrote:
Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
2014-10-16 12:48 GMT+09:00 Eric Wong <normalperson@yhbt.net>:
[#65753] [ruby-trunk - Feature #10333] [PATCH 3/1] optimize: "yoda literal" == string — ko1@...
Issue #10333 has been updated by Koichi Sasada.
[#65818] [ruby-trunk - Feature #10351] [PATCH] prevent CVE-2014-6277 — shyouhei@...
Issue #10351 has been updated by Shyouhei Urabe.
[ruby-core:65538] Re: [ruby-trunk - Feature #10333] [PATCH 3/1] optimize: "yoda literal" == string
Eric Wong <normalperson@yhbt.net> wrote: > Maybe start moving existing iseq_compile_each optimizations to the > peephole optimizer (work-in-progress): > http://80x24.org/spew/m/ee49aae645e0953fc16fc1557dce6a09b4de4324.txt Part #2, generic putstring_for instruction: http://80x24.org/spew/m/5a77be4e211c81a509573e3e1ca3bc3ca2383e68.txt A new putstring_for instruction may replace all current uses of: * opt_str_freeze * opt_aref_with * opt_aset_with This new instruction should also be usable to implement new optimizations to avoid rb_str_resurrect. Optimizations for literal hash["literal"] (aref/lookup) and "literal".freeze are easily moved to the peephole optimizer. However, it seems easier to optimize `hash["literal"] = val' in iseq_compile_each right now. This reduces performance compared to the old opt_aref_with and opt_aset_with instructions slightly, but is more elegant for in avoiding special cases. We may decide to resurrect opt_aref_with and opt_aset_with if we want to recover the small performance loss and can accept a bigger VM loop. "".freeze performance is probably not interesting to anyone :) benchmark results: minimum results in each 5 measurements. Execution time (sec) name 2.1.3 trunk built loop_whileloop2 0.106 0.106 0.106 vm2_hash_aref_lit* 0.503 0.162 0.192 vm2_hash_aset_lit* 0.587 0.214 0.241 Speedup ratio: compare with the result of `2.1.3' (greater is better) name trunk built loop_whileloop2 1.000 0.998 vm2_hash_aref_lit* 3.099 2.621 vm2_hash_aset_lit* 2.741 2.435