Граф коммитов

39878 Коммитов

Автор SHA1 Сообщение Дата
kazu 9c4ef4b191 fix a failure without zlib
* test/net/http/test_httpresponse.rb
(HTTPResponseTest#test_read_body_content_encoding_deflate_uppercase):
fix failure without zlib.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 14:52:05 +00:00
nobu 051a749919 vm_method.c: remove unused code
* vm_method.c (rb_method_entry_make): remove unused code to
  prohibit method re-definition, introduced at r34983.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 09:55:57 +00:00
nobu e13f05f9e6 vm_method.c: no NOEX macros
* vm_method.c (rb_method_entry_make): NOEX macros are no longer
  defined.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 08:18:18 +00:00
nobu 8aee7f7e6a method.h: update argument checks
* method.h (METHOD_ENTRY_VISI_SET, METHOD_ENTRY_BASIC_SET),
  (METHOD_ENTRY_SAFE_SET, METHOD_ENTRY_FLAGS_SET): get rid of
  negative arguments, and safe leve is restricted to 1 now.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 08:18:03 +00:00
nobu f35b09c108 vm_method.c: orignial visibilities
* vm_method.c (Init_eval_method): copy the orignial visibilities,
  instead of setting explicitly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 08:17:58 +00:00
nobu c0e2f9278e test_object.rb: use assert_separately
* test/ruby/test_object.rb (test_redef_method_missing): use
  assert_separately to catch segfaults and show the diagnostic
  reports.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 08:17:37 +00:00
nobu 5f745b8313 struct.c: AREF_HASH_UNIT enum
* struct.c (AREF_HASH_UNIT): name a magic number, which is shared
  by struct_member_pos_probe and struct_set_members.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 08:17:02 +00:00
nobu f524211ee8 struct.c: AREF_HASH_THRESHOLD enum
* struct.c (AREF_HASH_THRESHOLD): make an enum not to exceed the
  int range.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 08:16:48 +00:00
hsbt 8430f93b8f * Add test for Enumerable#none? [fix GH-950] Patch by @yui-knk
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 01:55:03 +00:00
nobu a672fd8be3 struct.c: hide internal objects
* struct.c (struct_set_members): hide internal back_members
  object, and members object does not need to be duped as it
  should be frozen and hidden.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 00:30:38 +00:00
nobu e4984cf2d3 struct.c: fix implicit conversions
* struct.c (struct_member_pos): revert r51080 to fix other
  implicit conversions but cast the return value to fix the
  previous implicit conversion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 00:28:49 +00:00
naruse f91a556340 * struct.c (struct_member_pos): avoid implicit conversion loses
integer precision: 'long' to 'int'.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 23:48:21 +00:00
normal b49075cdf1 move RB_GC_GUARD responsibility to rb_add_method_iseq
This simplifies all the callers and makes code easier to use
and review.  I was confused about the need for RB_GC_GUARD
in define_{aset,aref}_method of struct.c without reading
rb_add_method_iseq.

Likewise, do the same for rb_iseq_clone, where the GC guard
only seems neccesary iff RGenGC is disabled.

* vm_method.c (rb_add_method_iseq): add RB_GC_GUARD
* class.c (clone_method): remove RB_GC_GUARD
* struct.c (define_aref_method): ditto
  (define_aset_method): ditto
* vm.c (vm_define_method):
* iseq.c (rb_iseq_clone): add RB_GC_GUARD

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 21:07:18 +00:00
svn c7548028a2 * 2015-07-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 20:46:02 +00:00
normal cef8325e18 struct.c: speedup for big structs
use simple custom open-addressing hash for big structs.

Original-patch-by: Sokolov Yura aka funny_falcon <funny.falcon@gmail.com>
in https://bugs.ruby-lang.org/issues/10585

* struct.c (AREF_HASH_THRESHOLD): new macro
  (id_back_members): new ID
  (struct_member_pos_ideal): new function
  (struct_member_pos_probe): ditto
  (struct_set_members): ditto
  (struct_member_pos): ditto
  (rb_struct_getmember): use struct_member_pos for O(1) access
  (rb_struct_aref_sym): ditto
  (rb_struct_aset_sym): ditto
  (setup_struct): call struct_set_members
  (struct_define_without_accessor): ditto
  (Init_Struct): initialize __members_back__
  [ruby-core:66851] [ruby-core:69705] [ruby-core:69821]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 20:45:44 +00:00
nobu cb85fb9c46 io.c: remove unnecessary shared
* io.c (rb_io_reopen): FilePathValue() ensures the path
  NUL-terminated and frozen, so it is unnecessary to make it shared.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 14:12:16 +00:00
nobu 347da440cf ensure paths NUL-terminated
* dir.c (check_dirname): ensure path name NUL-terminated for
  SHARABLE_MIDDLE_SUBSTRING.
* io.c (rb_sysopen): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 14:11:56 +00:00
nobu 24a72a177d file.c: not xfree
* win32/file.c (rb_freopen): should free rb_w32_mbstr_to_wstr
  result instead of xfree.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 14:04:00 +00:00
usa b4718bf4f0 * win32/file.c (rb_freopen): remove debug code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 09:41:40 +00:00
usa 3e01334fae * win32/file.c (rb_freopen): need to terminate by NUL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 09:38:51 +00:00
nobu 93446fedd3 io.c: reopen OS encoding path
* io.c (rb_io_reopen): freopen(3) with OS encoding path.
  [ruby-core:69780] [Bug #11320]
* win32/file.c (rb_freopen): wrapper of wchar version freopen(3).
  use _wfreopen_s() if available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 08:28:28 +00:00
nobu c810ab8ff5 test_io.rb: skip method definitions
* test/ruby/{test_io,test_io_m17n}.rb: skip method definitions on
  unsupported platforms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-30 07:48:24 +00:00
normal af9e072c7e io.c: reopen stdio streams correctly when given "w+"
* io.c (rb_io_oflags_modestr): handle O_TRUNC correctly
* test/ruby/test_io.rb (test_reopen_stdio): new test

Patch-by: cremno phobia <cremno@mail.ru>

[ruby-core:69779] [Bug #11319]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 23:24:56 +00:00
svn 75571dc912 * 2015-06-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 18:10:20 +00:00
normal c31b0def42 st.c: use ccan linked-list (try 3)
This improves the bm_vm2_bighash benchmark significantly by
removing branches during insert, but slows down anything
requiring iteration with the more complex loop termination
checking.

Speedup ratio of 1.10 - 1.20 is typical for the vm2_bighash
benchmark.

v3 - st_head calculates list_head address in two steps
     to avoid a bug in old gcc 4.4 (Debian 4.4.7-2)
     bug which incorrectly warned with:
     warning: dereferencing pointer ‘({anonymous})’ does break
     strict-aliasing rules

* include/ruby/st.h (struct st_table): hide struct list_head
* st.c (struct st_table_entry): adjust struct
  (head, tail): remove shortcut macros
  (st_head): new wrapper function
  (st_init_table_with_size): adjust to new struct and API
  (st_clear): ditto
  (add_direct): ditto
  (unpack_entries): ditto
  (rehash): ditto
  (st_copy): ditto
  (remove_entry): ditto
  (st_shift): ditto
  (st_foreach_check): ditto
  (st_foreach): ditto
  (get_keys): ditto
  (get_values): ditto
  (st_values_check): ditto
  (st_reverse_foreach_check): ditto (unused)
  (st_reverse_foreach): ditto (unused)
  [ruby-core:69726] [Misc #10278]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 18:10:00 +00:00
naruse 7604ca41ff fix previous commit for nil case
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 10:04:33 +00:00
nobu 1a3e7ca11f insns.def: no quoting
* insns.def (defineclass): do not quote unprintable characters at
  raising an exception.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 08:38:04 +00:00
naruse 84de36c748 * lib/net/http/response.rb (inflater): CONTENT_ENCODING can be upper
case. [ruby-core:69670] [Bug #11285] patched by Andy Chu

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 07:14:31 +00:00
shugo 8803c6016f * eval.c (add_activated_refinement): should not include the original
class.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 05:52:38 +00:00
nobu 6cb284a2cf mkmf.rb: suppress warnings
* lib/mkmf.rb (check_sizeof, what_type): remove static qualifiers
  to suppress unneeded-internal-declaration warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 03:43:21 +00:00
hsbt 96c1e6ac2b * README.md: tweak styles. [fix GH-945][ci skip] Patch by @bryndyment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-29 03:09:14 +00:00
nobu 52436ce1b1 sizes.c.tmpl: extract RUBY_DEFINT
* template/sizes.c.tmpl: extract RUBY_DEFINT to define sizes of
  types checked by configure.in, and fix size of intptr_t in
  universal binary.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 22:24:05 +00:00
nobu 548b97e70c insns.def: preserve encoding
* insns.def (defineclass): preserve encoding of name in error
  messages for super class mismatch.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 17:10:26 +00:00
nobu b90a5f9334 insns.def: preserve encoding
* insns.def (defineclass): preserve encoding of name in error
  messages for non-class super.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 17:10:00 +00:00
nobu 491ace2dbe insns.def: preserve encoding
* insns.def (defineclass): preserve encoding of name in error
  messages when already defined but type mismatch.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 17:06:59 +00:00
svn 3ed6f43b96 * 2015-06-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 16:37:10 +00:00
nobu fe994a4d04 test_redefinition_mismatch
* test/ruby/test_{class,module}.rb (test_redefinition_mismatch):
  add tests of redefinition mismatch.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 16:35:58 +00:00
nobu da70f4d02a class.c: preserve encoding
* class.c (rb_check_inheritable): preserve encoding in an error
  message when the superclass is not a class.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 03:28:50 +00:00
svn c70572d5a8 * 2015-06-28
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 03:07:51 +00:00
nobu a13ab237c7 class.c: TypeError when superclass mismatch
* class.c (rb_define_class_id_under): raise TypeError exception
  same as ruby level class definition when superclass mismatch.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-28 03:07:37 +00:00
eregon 6cdc55f4a3 * lib/net/ftp.rb (makeport): close the TCPServer
when sending the port fails.
* test/net/ftp/test_ftp.rb: test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-27 10:10:54 +00:00
normal b8d544832b Revert "st.c: use ccan linked-list (try 2)"
This reverts commit r51044
Still getting failure notices from ko1's CI machine.
ref: g3qkqn

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 22:52:26 +00:00
normal d3725a86de st.c: use ccan linked-list (try 2)
This improves the bm_vm2_bighash benchmark significantly by
removing branches during insert, but slows down anything
requiring iteration with the more complex loop termination
checking.

Speedup ratio of 1.10 - 1.20 is typical for the vm2_bighash
benchmark.

* include/ruby/st.h (struct st_table): hide struct list_head
* st.c (struct st_table_entry): adjust struct
  (head, tail): remove shortcut macros
  (st_head): new wrapper function
  (st_init_table_with_size): adjust to new struct and API
  (st_clear): ditto
  (add_direct): ditto
  (unpack_entries): ditto
  (rehash): ditto
  (st_copy): ditto
  (remove_entry): ditto
  (st_shift): ditto
  (st_foreach_check): ditto
  (st_foreach): ditto
  (get_keys): ditto
  (get_values): ditto
  (st_values_check): ditto
  (st_reverse_foreach_check): ditto (unused)
  (st_reverse_foreach): ditto (unused)
  [ruby-core:69726] [Misc #10278]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 22:32:06 +00:00
normal 08414a6afa common.mk: add ccan/list headers as deps for st.c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 20:19:15 +00:00
svn c803bf3a91 * 2015-06-27
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 19:01:47 +00:00
normal c94a94805d st.c: include ccan/list/list.h to test build
I suspect the build failures with r51034 ("st.c: use ccan linked-list")
on ko1's CI machine was due to me forgetting to update common.mk :x

Lets see what happens when I only include ccan/list/list.h
Will followup with appropriate reverts or reinstating the
rest of r51034 along with a common.mk update as I watch CI
build.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 18:59:59 +00:00
nobu c47ef3dc13 sprintf.c: rb_inspect returns a string
* sprintf.c (rb_str_format): rb_inspect() always returns a string.
  rb_obj_as_string() has no more effect.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 08:58:00 +00:00
nobu 20cecf1d33 object.c: common prefix of converter methods
* object.c (convert_type): check common prefix of converter
  method names first.  shrink conv_method_names.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 08:57:45 +00:00
normal e3815c4724 ChangeLog: doc accidentally squashed commit in r51036
Oops :x

* hash.c (rb_hash_fetch_m): remove unnecessary volatile since r41597
  (env_reject_bang): trade volatile for GC guard
  (env_select): ditto
  (env_select_bang): ditto
  (env_keep_if): ditto
  (rb_env_clear): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 06:22:22 +00:00
nobu 9a7e4bf9ea transcode.c: fix race condition
* transcode.c (load_transcoder_entry): fix transcoder loading race
  condition, by waiting in require.  [ruby-dev:49106] [Bug #11277]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-26 03:48:41 +00:00