aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* string.c: empty non-embed casenobu2015-07-291-0/+5
| | | | | | | * string.c (str_buf_cat): consider empty non-embed string case, not to loop infinitely. [ruby-core:70074] [Bug #11383] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: set method_missing_reasonnobu2015-07-291-0/+7
| | | | | | | | | * vm_eval.c (send_internal): set method_missing_reason before invoking overriding method_missing method so that the default method_missing can achieve it properly. [ruby-core:68515] [Bug #10969] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c: fix symbol hashnobu2015-07-291-1/+4
| | | | | | | * hash.c (rb_sym_hash): return same value as rb_any_hash() of Symbol. [Bug #9381] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c: fix float hashnobu2015-07-291-0/+5
| | | | | | | * hash.c (rb_any_hash): fix Float hash. rb_dbl_hash() returns a Fixnum, but not a long. [Bug #9381] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* internal.h: ensure a booleannobu2015-07-291-0/+4
| | | | | | * internal.h (LIKELY, UNLIKELY): make a boolean to enforce 1 or 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: document argument passed to finalizer proc.hsbt2015-07-291-0/+5
| | | | | | [fix GH-976][ci skip] Patch by @alexdowad git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_extract_modeenc): add option parameter `flags'naruse2015-07-291-0/+6
| | | | | | | to append extra oflags to normal mode. [Feature #11253] [ruby-core:69539] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/rubygems/test_gem_remote_fetcher.rb: pre-generate test keynormal2015-07-281-0/+5
| | | | | | | | | | OpenSSL::PKey::DH.new(2048) takes forever, and we pre-generate test keys for other SSL-using tests anyways. * test/rubygems/test_gem_remote_fetcher.rb: pre-generate test key [ruby-core:70151] [Bug #11397] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* internal.h: moved RClassnobu2015-07-281-0/+5
| | | | | | | * internal.h (struct RClass): moved from ruby/ruby.h to hide the internals. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: RUBY_TYPE_ATTRIBUTEnobu2015-07-271-0/+5
| | | | | | | * configure.in (RUBY_TYPE_ATTRIBUTE): attribute declaration for types. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* symbol.h: memoize hashval for RSymbolnormal2015-07-271-0/+9
| | | | | | | | | | | | | | | | | | | | | | This speeds up the hash function for dynamic symbols. [ruby-core:70129] [Bug #11396], nearly up to Ruby 2.1 levels Power-of-two hash sizing [Feature #9425] speeds up cases where we have a good hash, but this means we can no longer hide behind weak hashes. Unfortunately, object IDs do not hash well, but we may use the extra space in the RSymbol struct to memoize the hash value. Further optimizations should be possible. For now, the st.c APIs force us to calculate rb_str_hash redundantly at dsym registration. * symbol.h (struct RSymbol): add hashval field * symbol.c (dsymbol_alloc): setup hashval field once * hash.c (rb_any_hash): return RSymbol->hashval directly * common.mk: hash.o depends on symbol.h Thanks to Bruno Escherl <bruno@escherl.net> for the bug report [ruby-core:70129] [Bug #11396] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): raise a moretenderlove2015-07-271-0/+9
| | | | | | | | | | helpful exception when verifying the peer connection and an anonymous cipher has been selected. [ruby-core:68330] [Bug #10910] Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for the patch. * test/openssl/test_ssl.rb (class OpenSSL): test for change git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2015-07-271-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typos [ci skip]kazu2015-07-271-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * template/id.h.tmpl (ID2ATTRSET): remove an unused macro.ko12015-07-271-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/openssl/tset_ssl.rb: run tests on non-Unix platforms.usa2015-07-271-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ossl_ssl.c: fix conditionnobu2015-07-261-0/+5
| | | | | | | * ext/openssl/ossl_ssl.c (ossl_ssl_alpn_protocol): fix condition to compile, needs ALPN to be available. [Feature #9390] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* signal.c: discard SIGSYSnobu2015-07-261-0/+5
| | | | | | | * signal.c (default_handler, Init_signal): discard SIGSYS, ENOSYS should raise a SystemCallError always instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/ossl_ssl.c (ossl_call_servername_cb): set the ssl contexttenderlove2015-07-261-0/+10
| | | | | | | | | | | object returned by the servername callback on to the socket as an instance variable. If the callback allocated a new context object and didn't keep a reference to it, it could be GC'd out from under the socket object. * test/openssl/test_ssl.rb (class OpenSSL): test for change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/openssl/test_ssl.rb (class OpenSSL): add test coverage aroundtenderlove2015-07-261-0/+5
| | | | | | OpenSSL::SSL::SSLContext#servername_cb git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gems/bundled_gems: update latest version of bundled power-assert.hsbt2015-07-261-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/rubygems/test_gem_remote_fetcher.rb: backport rubygems upstreamhsbt2015-07-251-0/+6
| | | | | | | change for OpenSSL key length. see detail to https://github.com/rubygems/rubygems/pull/1290 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/lib/openssl/pkey.rb: implement DEFAULT_512 andtenderlove2015-07-251-0/+17
| | | | | | | | | | | | | | | | | | DEFAULT_1024 constants in Ruby. * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): Ask PKey for the default DH callback since it aleady must check whether openssl has been compiled with DH support. * ext/openssl/ossl_pkey_dh.c (OSSL_PKEY_BN): Remove C definitions of DEFAULT_512 and DEFAULT_1024 * ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): ditto * test/openssl/test_pkey_dh.rb (class OpenSSL): add test to ensure the Ruby definitions are the same as the C definitions were. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): supporttenderlove2015-07-251-0/+9
| | | | | | | | | | specifically setting the tmp_dh_callback to nil. * ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto * test/openssl/test_pair.rb (module OpenSSL): add a test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move the defaulttenderlove2015-07-251-0/+18
| | | | | | | | | | | | | | | | | | | tmp_dh_callback Ruby code and set it as a default in `initialize`. * ext/openssl/ossl_pkey_dh.c (static unsigned char DEFAULT_DH_512_GEN): move this constant to Ruby. * ext/openssl/ossl_pkey_dh.c (static unsigned char DEFAULT_DH_1024_GEN): ditto * ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): ditto * ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): ditto * ext/openssl/ossl_ssl.c (ossl_sslctx_setup): tmp_dh_callback should always be set, so we can remove this conditional git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/openssl/test_pair.rb: add a test ensuring that the default DHtenderlove2015-07-251-0/+5
| | | | | | callback is used when no DH callback is specified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): add missingtenderlove2015-07-251-0/+5
| | | | | | instance variables to squash warnings with alpn. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2015-07-251-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): movetenderlove2015-07-251-0/+9
| | | | | | | | | | OpenSSL::SSL::SSLContext#initialize implementation to pure Ruby. * ext/openssl/ossl_ssl.c (ossl_sslctx_initialize): ditto * ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* random.c: get rid of blockingnobu2015-07-251-0/+6
| | | | | | | | * random.c (fill_random_bytes_syscall): get rid of blocking when no entropy is available. based on the patch by mame in [ruby-core:70114]. [Bug #11395] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: fill the terminatornobu2015-07-251-0/+5
| | | | | | | * string.c (str_replace_shared_without_enc): fill the terminator of embedded strings in wide char encodings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: size should be unsigned.ko12015-07-241-0/+27
| | | | | | | | | | | | | | | | | | | | | | * rb_call_info_t::index * rb_iseq_constant_body::stack_max * rb_iseq_constant_body::local_size * rb_iseq_constant_body::param::size * rb_iseq_constant_body::local_table_size * rb_iseq_constant_body::is_size * rb_iseq_constant_body::callinfo_size * iseq.h: same for iseq_catch_table::size. * compile.c: catch up these fix. * iseq.c: ditto. * proc.c: ditto. * vm.c: ditto. * vm_args.c: ditto. * vm_eval.c: ditto. * vm_insnhelper.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: constify rb_iseq_constant_body::line_info_table.ko12015-07-241-0/+6
| | | | | | | | * iseq.c: catch up this fix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: constify rb_iseq_constant_body::param::opt_table andko12015-07-241-0/+7
| | | | | | | | | rb_iseq_constant_body::param::keyword. * compile.c: catch up this fix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: constify rb_iseq_constant_body::catch_table.ko12015-07-241-0/+10
| | | | | | | | | | * compile.c (iseq_set_exception_table): catch up this fix. * iseq.c: ditto. * vm.c (vm_exec): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* st.c: fix arguments order to comparenobu2015-07-241-0/+6
| | | | | | | | * st.c (EQUAL, st_delete_safe): fix arguments order to compare function, searching key is the first and stored key is the second always. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: fstring must not be a shared stringnobu2015-07-241-0/+6
| | | | | | | | * string.c (fstr_update_callback): fstring must not be a shared string, or the content without RSTRING_FSTR may be freed. [ruby-dev:49188] [Bug #11386] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/rinda/test_rinda.rb (RingIPv6#prepare_ipv6): prevent to usengoto2015-07-241-0/+15
| | | | | | | | | | | | | | | | | IPv6 loopback interface for Rinda::TestRingFinger#test_make_socket_ipv6_multicast and Rinda::TestRingFinger#test_make_socket_ipv6_multicast_hops. The tests are skipped if there are no IPv6 devices other than the loopback device. [Bug #11394] [ruby-dev:49199] * test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast): ditto for Rinda::TestRingServer#test_make_socket_ipv6_multicast. * test/rinda/test_rinda.rb (test_ring_server_ipv6_multicast): ditto for Rinda::TestRingServer#test_ring_server_ipv6_multicast. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: pool only bare strings in fstringnobu2015-07-241-0/+8
| | | | | | | | | * string.c (fstr_update_callback): pool bare strings only. * string.c (rb_fstring): return the original string with sharing a fstring if it has extra attributes, not the fstring itself. [ruby-dev:49188] [Bug #11386] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add tests for `File.extname`nobu2015-07-241-0/+10
| | | | | | | | | | | * file.c (rb_file_s_extname): [DOC] add an example. * test/ruby/test_path.rb (test_extname): add tests. [Fix GH-978] * path starts with dot ('.a.rb') * path includes dir name ('a/b/d/test.rb') * path includes dir name and dir name starts with dot ('.a/b/d/test.rb') git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2015-07-231-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: constify rb_iseq_constant_body::local_table andko12015-07-231-0/+10
| | | | | | | | | | | rb_iseq_param_keyword::table and rb_iseq_param_keyword::default_values. * compile.c: catch up this fix. * iseq.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: constify rb_iseq_constant_body::iseq_encoded andko12015-07-231-0/+11
| | | | | | | | | | | rb_control_frame_t::pc. * compile.c (rb_iseq_translate_threaded_code): catch up this fix. * iseq.c: ditto. * vm_exec.c (vm_exec_core): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: taint flagsnobu2015-07-231-0/+9
| | | | | | | | | * include/ruby/ruby.h: add raw FL macros, which assume always the argument object is not a special constant. * internal.h (STR_EMBED_P, STR_SHARED_P): valid only for T_STRING. * string.c: deal with taint flags directly across String instances. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: pop cmdargnobu2015-07-231-0/+5
| | | | | | | * parse.y (lambda_body): pop cmdarg stack for lookahead token. [ruby-core:70067] [Bug #11380] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix tests bu not setting the string instance on the frozen objecttenderlove2015-07-221-0/+5
| | | | | | OpenSSL [copies the string returned by the pointe](https://github.com/openssl/openssl/blob/9f040d6decca7930e978784c917f731e5c45e8f0/ssl/t1_lib.c#L1800-1809), so it should be safe to just return a pointer to the string object and not set an instance variable on the already frozen object. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/ossl_ssl.c: add ECDH callback support. [Feature #11356]tenderlove2015-07-221-0/+6
| | | | | | * test/openssl/test_pair.rb: test for ECDH callback support git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/ossl_ssl.c: add ALPN support. [Feature #9390]tenderlove2015-07-221-0/+8
| | | | | | | | * ext/openssl/extconf.rb: detect ALPN support in OpenSSL * test/openssl/test_ssl.rb: test for ALPN git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typos [ci skip]kazu2015-07-221-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: fix coderange of reversenobu2015-07-221-0/+6
| | | | | | | | * string.c (rb_str_reverse): reversed string is not a substring, and should not set coderange of the original string. [ruby-dev:49189] [Bug #11387] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e