summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-09-12Revert "enumerator.c: Fix ArithmeticSequence for complex step"mrkn
This reverts commit 0a0f8238d02a2dfff4cd2892408e14cb826cec7e. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-12enumerator.c: Fix ArithmeticSequence for complex stepmrkn
Make sure Enumerator::ArithmeticSequence#each to work well for a complex step value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-12resurrect the string to expect modificationsshyouhei
String#freeze can be redefined to be destructive. While such redefinition is definitely weird, it should be possible. Resurrect the string to prepare for that sort of things. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-12make opt_str_freeze leafshyouhei
Simply use DISPATCH_ORIGINAL_INSN instead of rb_funcall. This is, when possible, overall performant because method dispatch results are cached inside of CALL_CACHE. Should also be good for JIT. ---- trunk: ruby 2.6.0dev (2018-09-12 trunk 64689) [x86_64-darwin15] ours: ruby 2.6.0dev (2018-09-12 leaf-insn 64688) [x86_64-darwin15] last_commit=make opt_str_freeze leaf Calculating ------------------------------------- trunk ours vm2_freezestring 5.440M 31.411M i/s - 6.000M times in 1.102968s 0.191017s Comparison: vm2_freezestring ours: 31410864.5 i/s trunk: 5439865.4 i/s - 5.77x slower git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-12make opt_case_dispatch leafshyouhei
This instruction can be written without rb_funcall. It not only boosts performance of case statements, but also makes room of future JIT improvements. Because opt_case_dispatch is about optimization this should not be a bad thing to have. ---- trunk: ruby 2.6.0dev (2018-09-05 trunk 64634) [x86_64-darwin15] ours: ruby 2.6.0dev (2018-09-12 leaf-insn 64688) [x86_64-darwin15] last_commit=make opt_case_dispatch leaf Calculating ------------------------------------- trunk ours vm2_case_lit 1.366 2.012 i/s - 1.000 times in 0.731839s 0.497008s Comparison: vm2_case_lit ours: 2.0 i/s trunk: 1.4 i/s - 1.47x slower git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11* 2018-09-12svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11_mjit_compile_insn.erb: move pc on JIT cancelk0kubun
if and only if it's not moved yet, to avoid potential bugs in the future. _mjit_compile_send.erb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11mjit_worker.c: atomically print main message and \nk0kubun
To attempt to fix CI failure on rubyci freebsd: https://rubyci.org/logs/rubyci.s3.amazonaws.com/freebsd11zfs/ruby-trunk/log/20180911T123001Z.fail.html.gz ``` JIT success (68.7ms): mjit9@(eval):1 -> /usr/home/hsbt/chkbuild/tmp/build/20180911T123001Z/tmp/jit_test_unload_units_20180911-96427-13cagj9/_ruby_mjit_p99188u9.c JIT compaction (25.1ms): Compacted 10 methods -> /usr/home/hsbt/chkbuild/tmp/build/20180911T123001Z/tmp/jit_test_unload_units_20180911-96427-13cagj9/_ruby_mjit_p99188u10.soToo many JIT code -- 1 units unloaded JIT success (68.2ms): mjit10@(eval):1 -> /usr/home/hsbt/chkbuild/tmp/build/20180911T123001Z/tmp/jit_test_unload_units_20180911-96427-13cagj9/_ruby_mjit_p99188u11.c ``` git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11bare_instructions.rb: use Hash#fetch to read attrk0kubun
to raise descriptive KeyError instead of NoMethodError in case these attrs are accidentally removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11_mjit_compile_insn.erb: prefer insn.always_leaf?k0kubun
rather than `trace_enablable_insns` which is hard to maintain. This would make performance bad because new branches for tracepoint will be added. Optcarrot before: fps: 56.885371547337655 fps: 60.02493636060194 fps: 63.051028327122076 fps: 63.78463316242535 fps: 64.20391937940403 fps: 64.55990344731123 fps: 64.56771099162921 fps: 64.95991277629723 fps: 65.15120708973232 fps: 65.90558702393933 fps: 66.29579283026303 Optcarrot after: fps: 52.7647027470875 fps: 53.67404855529564 fps: 58.40514319229468 fps: 60.90736996487708 fps: 62.83487236283472 fps: 63.01386139447994 fps: 63.42395443471596 fps: 63.78328559878602 fps: 64.58432081229746 fps: 64.78720429848532 fps: 65.48720618907552 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11_mjit_compile_pc_and_sp.erb: skip moving pck0kubun
when catch_except_p is false and insn.always_leaf? is true (never makes arbitrary method call in the insn). On Optcarrot, unfortunately this didn't have measureable performance impact. But still this is a good direction since it becomes much faster when marking all insns as always leaf. bare_instructions.rb: add `#always_leaf?` that indicates the insn can always be considered as leaf. Using dynamic leaf for JIT would be hard since it requires to discard outdated code somehow. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11transform_mjit_header.rb: add static to Init_*k0kubun
as well, to make CI succeed with VM_CHECK_MODE > 1. vm_insnhelper.c: drop unnecessary MJIT_HEADER ifdef. This is intended to be ignored by having `static inline`. Removing that by macro would be helpful for minimizing compilation time, but the impact is not so big and having many MJIT_HEADER check would be bad for maintainability. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11test_jit.rb: show extra debug info for #test_unload_unitsk0kubun
failure git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11random.c: prefixed fill_random_bytesnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11vm_insnhelper.c: stop unnecessarily using rb_sprintfk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11vm_insnhelper.c: fix -Wformat-security on rb_bugk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11add new instruction attribute called leafshyouhei
An instruction is leaf if it has no rb_funcall inside. In order to check this property, we introduce stack canary which is a random number collected at runtime. Stack top is always filled with this number and checked for stack smashing operations, when VM_CHECK_MODE. [GH-1947] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11* 2018-09-11svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-11Use https instead of httpkazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-10appveyor.yml: try VS140nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-10signal.c: consider non-sigaltstack platformsnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-10util.c: removed extra #endif [Bug #15091]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-10util.c: fix ruby_qsort with qsort_snobu
* util.c (ruby_qsort): __STDC_VERSION__ may not be defined even if it is available. fixed duplicate definitions when qsort_s is available on non-Windows platforms. [ruby-core:88921] [Bug #15091] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-10there is no such predefined macro. check build before commit!usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09* 2018-09-10svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09.travis.yml: separate ruby/spec on old versionnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09Add latest version gcc-8 case to Travis CInobu
[Fix GH-1937] Co-authored-by: Jun Aruga <jaruga@redhat.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09.travis.yml: branches only for travis-cinobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09thread.c: get rid of false warnings by gcc-8nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09Fix a typokazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09spec/ruby/library/socket/addrinfo: require for SocketSpecsnormal
Otherwise, I get NameError when running these IPv6 tests individually or in parallel. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09* 2018-09-09svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-09util.c: qsort_s in C11nobu
* configure.ac: macro for C11 to use qsort_s. * util.c (ruby_qsort): fix for C11 qsort_s. the comparison function for MSVCRT qsort_s is compatible with BSD qsort_r, but not with C11 qsort_s, in spite of its name. note that mingw defines __STDC_VERSION__ but uses qsort_s in MSVCRT, so the MSVCRT block needs to preced the C11 block. [ruby-core:88899] [Bug #15091] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-08Use `&.` after `&.`kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-08* 2018-09-08svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-08test/ruby/test_thread.rb: join threads in each testnormal
Leaky thread detection doesn't happen frequently, enough git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07ext/objspace/object_tracing.c (freeobj_i): fix missing assignmentnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07tool/node_name.rb: rewrote without flip-flopnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07object_tracing.c: register TracePoint objectsnobu
* ext/objspace/object_tracing.c (trace_object_allocations_start): to prevent TracePoint objects from GC, register them in the VM, since they are unique per VM. http://ci.rvm.jp/results/trunk-test@ruby-sky3/1291901 * ext/objspace/object_tracing.c (trace_object_allocations_stop): reuse TracePoint objects. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07test/ruby/test_ast.rb: assert error messages toonobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07Refactor testnobu
[Fix GH-1946] From: Josh Cheek <josh.cheek@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07ext/objspace/object_tracing.c (freeobj_i): no lookup before deletenobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07* 2018-09-07svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-07ext/objspace/object_tracing.c: get rid of aliasing pointersnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-06Extracted file list for csv.gemspec.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-05[DOC] Remove link to dead projectkazu
[Bug #14885] [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-05fix a typo [ci skip]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-05enumerator.c: [DOC] Enumerator::Lazy#force [ci skip]nobu
added documentation of Enumerator::Lazy#force, just to clarify that it is an alias of an inherited method. [ruby-core:88872] [Bug #15079] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-05Add platform guards for AIXeregon
* Most of these seem OS bugs. * See https://rubyci.org/logs/rubyci.s3.amazonaws.com/aix71_ppc/ruby-trunk/log/20180905T103302Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-05Guard a few specs which ipv6_available?eregon
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e