summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-12-11insns.def (opt_case_dispatch): avoid converting Infinitynormal
Infinity cannot be written as an optimizable literal, so it can never match a key in a CDHASH. Avoid converting it to prevent FloatDomainError. * insns.def (opt_case_dispatch): avoid converting Infinity * test/ruby/test_optimization.rb (test_opt_case_dispatch_inf): new [ruby-dev:49423] [Bug #11804] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11* properties.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11hash.c (rb_num_hash_start): avoid pathological behaviornormal
The OR-ing itself is bad for a hash function, and shifting 3 bits left was not enough to undo the damage done by shifting (RUBY_SPECIAL_SHIFT+3) bits right. Experimentally, shifting 16-17 bits seemed to work well in preparing the number for murmur hash. Add a few more benchmarks to based on bm_hash_shift to ensure we don't hurt performance too much with tweaks. I'm pretty confident about this change and commiting it now; especially since we're still using Murmur behind it (but perhaps we can update to a newer hash from Murmur...) [ruby-core:72028] [Feature #11405] target 0: a (ruby 2.3.0dev (2015-12-11 trunk 53027) [x86_64-linux]) at "/home/ew/rrrr/b/ruby" target 1: b (ruby 2.3.0dev (2015-12-11 master 53027) [x86_64-linux]) at "/home/ew/ruby/b/ruby" benchmark results: minimum results in each 5 measurements. Execution time (sec) name a b hash_aref_dsym 0.279 0.276 hash_aref_dsym_long 4.951 4.936 hash_aref_fix 0.281 0.283 hash_aref_flo 0.060 0.060 hash_aref_miss 0.409 0.410 hash_aref_str 0.387 0.385 hash_aref_sym 0.275 0.270 hash_aref_sym_long 0.410 0.411 hash_flatten 0.252 0.237 hash_ident_flo 0.035 0.032 hash_ident_num 0.254 0.251 hash_ident_obj 0.252 0.256 hash_ident_str 0.250 0.252 hash_ident_sym 0.259 0.270 hash_keys 0.267 0.267 hash_shift 0.016 0.015 hash_shift_u16 0.074 0.072 hash_shift_u24 0.071 0.071 hash_shift_u32 0.073 0.072 hash_to_proc 0.008 0.008 hash_values 0.263 0.264 Speedup ratio: compare with the result of `a' (greater is better) name b hash_aref_dsym 1.009 hash_aref_dsym_long 1.003 hash_aref_fix 0.993 hash_aref_flo 1.001 hash_aref_miss 0.996 hash_aref_str 1.006 hash_aref_sym 1.017 hash_aref_sym_long 0.998 hash_flatten 1.061 hash_ident_flo 1.072 hash_ident_num 1.012 hash_ident_obj 0.987 hash_ident_str 0.993 hash_ident_sym 0.959 hash_keys 0.997 hash_shift 1.036 hash_shift_u16 1.039 hash_shift_u24 1.001 hash_shift_u32 1.017 hash_to_proc 1.001 hash_values 0.995 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11NEWS: add note about Fiddle GVL releasenormal
* NEWS: note Fiddle GVL release [Feature #11607] * ext/fiddle/function.c (Init_fiddle_function): document above, too git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11test_ssl.rb: fix ssl option flags testsnobu
* test/openssl/test_ssl.rb (test_setting_twice): ignore fixed flags. some flags like SSL_OP_NO_SSL_MASK cannot change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11test_io.rb: fix IO#advise on aarch64-linuxnobu
* test/ruby/test_io.rb (test_advise, test_advise_pipe): fadvise on aarch64-linux returns ESYS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53034 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11* NEWS: Mentioned rubygems-2.5.1hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11* lib/rubygems: Update to RubyGems 2.5.1hsbt
* test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11compile.c: rehash cdhashnobu
* compile.c (iseq_compile_each, ibf_load_object_hash): rehash case-dispatch hash to reduce collisions. http://d.hatena.ne.jp/ku-ma-me/20151210 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11common.mk: add dependenciesnobu
* common.mk: add dependencies of compile.o for r52949. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11merger.rb: show procedure to push tag into GitHubnaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10* object.c (rb_inspect): dump inspected result with rb_str_escape()naruse
instead of raising Encoding::CompatibilityError. [Feature #11801] * string.c (rb_str_escape): added to dump given string like rb_str_inspect without quotes and always dump in US-ASCII like rb_str_dump. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10* 2015-12-11svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10fix a typo [ci skip]kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10* test/ruby/test_gc.rb (test_expand_heap): relax condition (1->2).ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10* cont.c: fix a double word typo.hsbt
[Bug #11313][ruby-core:69749] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10* ext/tk/lib/multi-tk.rb: fix typos.hsbt
[Bug #11764][ruby-core:71800] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10compile.c (iseq_compile_each): reduce needless rb_str_dupnormal
There is no need to dup the fstring unless we want to set the debug ivar for it. [ruby-core:72018] <5668DB6E.8000101@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10disable frozen-string-literalnobu
* lib/mkmf.rb, lib/shellwords.rb: disable frozen-string-literal. [ruby-core:72011] [Bug #11800] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09fix r53013; the environment defines "example" as local hostnamenaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09marshal.c: remove NULL checks for *_memsizenormal
This follows r52986, NULL checks in rb_data_type_t.function.dsize callbacks are unnecessary. * marshal.c (memsize_dump_arg): remove NULL check (memsize_load_arg): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09mkconfig.rb: must not be frozennobu
* tool/mkconfig.rb: rbconfig must not be fronzen-string-literal to expand CONFIG hash. [ruby-core:72006] [Bug #11798] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09ext/socket/ifaddr.c: remove empty ifaddr_marknormal
We do not need to maintain empty functions for GC, gc_mark_children will not attempt to dereference NULL dmark callbacks. * ext/socket/ifaddr.c (ifaddr_mark): remove empty function (ifaddr_type): pass zero to rb_data_type_t.function.dmark git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09TestIO_Console.rb: disable getpass test by --excludesnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09proc.c: remove bm_free, use defaultnormal
bm_free no longer has special handling of unlinked method entries since r50728 when method entries were made VALUEs for GC safety. * proc.c (bm_free): remove, use default free (method_data_type): use RUBY_TYPED_DEFAULT_FREE git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09add tests for El Capitan failurenaruse
http://rubyci.s3.amazonaws.com/osx1011/ruby-trunk/log/20151209T174501Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09dir.c, io.c: use rb_id_encodingnobu
* dir.c (dir_initialize): rb_id_encoding() returns same ID with caching. * io.c (Init_IO): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09test_rubyoptions.rb: test --debugnobu
* test/ruby/test_rubyoptions.rb (test_frozen_string_literal_debug): test --debug option too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09test_ssl.rb: fix ssl option flags testsnobu
* test/openssl/test_ssl.rb (test_setting_twice): ignore fixed falgs. some flags like SSL_OP_NO_SSL_MASK cannot change. * test/openssl/test_ssl.rb (test_options_setting_nil_means_all): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09* compile.c (iseq_compile_each): do not add debug informationko1
without --debug or --debug=frozen-string-literal option because String#dup slows down with debug information. [Feature #11725] * NEWS: apply about it. * test/ruby/test_rubyoptions.rb: catch up this fix with refactoring. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09follow r53004kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09* 2015-12-10svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09* iseq.c: rename methodsko1
RubyVM::InstructionSequence#to_binary_format -> #to_binary RubyVM::InstructionSequence.from_binary_format -> .load_from_binary RubyVM::InstructionSequence.from_binary_format_extra_data -> .load_from_binary_extra_data * iseq.c: fix document of iseq.to_binary. [Fix GH-1134] * sample/iseq_loader.rb: catch up this change. * test/lib/iseq_loader_checker.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09References to tickets addedkazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09fix a typo [ci skip]kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09test_io_console.rb: skipnobu
* test/io/console/test_io_console.rb (test_getpass): skip for the time being. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09test_io_console.rb: waitnobu
* test/io/console/test_io_console.rb (test_getpass): wait for the child process to read the input, not to read it by the master itself. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09regparse.h: ANSI alias rule fixnobu
* regparse.h (SET_NTYPE): get rid of breaking strict aliasing. patch by Zarko Todorovski in [ruby-core:71953]. [Bug #11790] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09test_io_console.rb: ignore echo backnobu
* test/io/console/test_io_console.rb (test_getpass): ignore echo back of input from the master side. some systems seem echo back but other may not. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09Revert r52995nobu
revert slow atomic operations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09* vm.c (rb_vm_cref_in_context): Module#define_method in non-classko1
expression should be public. [Bug #11754] * test/ruby/test_method.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09use atomic operationsnobu
* regcomp.c (onig_chain_link_add): use atomic operation instead of mutex. * regint.h (ONIG_STATE_{INC,DEC}_THREAD): ditto. * regparse.c (PopFreeNode, node_recycle): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09* gc.c (gc_mark_stacked_objects): fix typo.ko1
reported by XIE Zhibang. [Bug #11763] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09* doc/syntax/refinements.rdoc: remove outdated description.shugo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09update NEWS [ruby-core:71970]ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09stringio.c: unused variablenobu
* ext/stringio/stringio.c (strio_memsize): remove a variable which is no longer used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09add documentation for RubyVM::InstructionSequence#to_binary_format and ↵ko1
RubyVM::InstructionSequence.from_binary_format git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09compile.c (ibf_dump_object_unsupported): fix spelling errornormal
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09* ext/**/*.c (*_memsize): same as r52986 for extensions.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09* .gitignore: ignored ISeq binary format.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e