Fix https://travis-ci.org/ruby/ruby/jobs/36814282
Tested with -Wconversion since my gcc lacks -Wshorten-64-to-32
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This ensures a consistent implementation between 32 and 64-bit
platforms, as vm_trace.c limits events to 32-bits. This can
also open up struct packing opportunities.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
In some common cases, compat_tbl is unused in dump_arg/load_arg,
so avoid malloc/free costs for the unused table.
ruby -e 'h = {a: :b}; 600000.times { Marshal.load(Marshal.dump(h)) }'
before:
real 0m2.458s
user 0m2.450s
sys 0m0.006s
after:
real 0m2.122s
user 0m2.110s
sys 0m0.011s
* marshal.c (w_class): check dump_arg->compat_tbl before lookup
(w_object): lazy init ->compat_tbl before insert
(obj_alloc_by_class): ditto
(clear_dump_arg): free only non-NULL ->compat_tbl
(clear_load_arg): ditto for ->compat_tbl
(marshal_dump): ->compat_tbl defaults to zero
(marshal_load): ditto for ->compat_tbl
(r_entry0): check l->compat_tbl before lookup
(r_fixup_compat): ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (parser_data_type): separate ripper data type for from
parser.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (update-config_files): update only non-existing files,
and get rid of trying to download existing files every time.
gitweb does not send Last-Modified header.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c (str_make_independent_expand): drop NOFREE flag after
reallocation, static buffer is not pointed anymore.
[ruby-core:65317] [Bug #10304]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/date/date_core.c (SimpleDateData, ComplexDateData): constify
VALUE members to find out missing write-barriers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/ruby.h (rb_data_object_alloc_warning): warn
Data_Wrap_Struct and Data_Make_Struct only if
RUBY_UNTYPED_DATA_WARNING is set to 1.
* include/ruby/ruby.h (rb_data_object_get_warning): ditto for
Data_Get_Struct.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/downloader.rb (Downloader.download): get rid of post
arguments for compatibility with old BASERUBY.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/downloader.rb (Downloader): split particular sites from the
main class.
* tool/downloader.rb (Downloader.download): show messages if
verbose mode.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/rbinstall.rb: separate header targets, comm-hdr for
architecture independent headers, arch-hdr for architecture
dependent headers, and hdr for both.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
uri doesn't respond to #to_str. [ruby-core:64453] [Bug #10150]
* test/uri/test_parser.rb: test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/digest/digest.c (rb_digest_base_alloc): use typed data.
* ext/digest/digest.c (rb_digest_base_copy): fail unless original
object has same algorithm.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/stringio/stringio.c (strio_write): ASCII-8BIT StringIO
should be writable any encoding strings, without conversion.
[ruby-core:65240] [Bug #10285]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_module.rb (test_inspect_segfault):
Test case and bug report by Thomas Stratmann.
[ruby-core:65214] [Bug #10282]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This also allows easier tracking of freed memory for systems
without malloc_usable_size, and also makes future changes
to freeing buffer memory easier-to-implement.
* io.c (free_io_buffer): new function for a common pattern
(clear_readconv): use free_io_buffer
(rb_io_fptr_finalize): ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e