34799 Commits

Author SHA1 Message Date
nobu
4a91fb7a45 range.c: unused function
* range.c (SET_EXCL): remove no longer used function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-14 01:27:46 +00:00
nobu
3008ea2872 bignum.c: adjust condtions
* bignum.c (maxpow{16,32,64,128}_{exp,num}): adjust preprocessor
  condtions to maxpow_in_bdigit_dbl().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-14 01:27:44 +00:00
nobu
fc23374f06 [DOC] add links to Object#hash
add links to `Object#hash` to each #`hash` methods rdocs.
[Fixes GH-567]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-14 01:27:43 +00:00
nobu
f53c291ab2 string.c: [DOC] rb_str_hash_m
* string.c (rb_str_hash_m): [DOC] hash value depends on the
  encoding too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-14 01:27:41 +00:00
nobu
163f9abe4f vm_insnhelper.c: relax arity check
* vm.c (invoke_block_from_c): add splattable argument.
* vm.c (vm_invoke_proc): disallow to splat when directly invoked.
* vm_insnhelper.c (vm_callee_setup_arg_complex, vm_callee_setup_arg):
  relax arity check of yielded lambda.  [ruby-core:61340] [Bug #9605]
* test/ruby/test_yield.rb (TestRubyYieldGen#emu_bind_params): no
  longer raise ArgumentError when splatting to lambda.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-13 16:18:45 +00:00
svn
2deb6e8ee2 * 2014-03-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-13 16:18:33 +00:00
nobu
03787200af test/dl, test/fiddle: relax criteria
* test/dl/test_{cptr,handle}.rb, test/fiddle/test_{handle,pointer}.rb:
  relax memory leak criteria.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-13 16:18:30 +00:00
svn
8851056bc8 * 2014-03-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-13 14:52:23 +00:00
usa
1df0e183dd * ext/-test-/win32/dln/libdlntest.c (dlntest_ordinal): no need to
specify export in the source file because .def file do it.
  get rid of warning on linking.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-13 14:52:19 +00:00
nobu
3be926db2a revert [Bug #9605]
* enum.c: revert r45284, r45286, r45292.  it conflicts with
  existing behaviors.  [Bug #9605]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-12 08:16:47 +00:00
nobu
c28b5723f6 vm_insnhelper.c: disable fastpath if splat
* vm_insnhelper.c (vm_callee_setup_arg): disable fastpath if splat
  argument, since argc may differ for each calls.
  [ruby-core:61422] [Bug #9622]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-12 02:19:13 +00:00
nobu
ab9e4d11a3 vm_insnhelper.c: inline function
* vm_insnhelper.c (vm_callee_setup_arg): turn a macro into an
  inline function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-12 02:18:50 +00:00
svn
b3a613c8be * 2014-03-12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 22:28:39 +00:00
normal
4101a5690e insns.def (opt_regexpmatch2): respect redefined match op
* insns.def (opt_regexpmatch2): respect redefined match op
  Thanks to Sam Rawlins for the fix.
* test/ruby/test_string.rb: test based on Tsuyoshi Sawada's report
  [Bug #9581]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 22:28:33 +00:00
ktsj
c1f1b93171 * ext/.document: add objspace/objspace_dump.c to document file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 13:33:31 +00:00
ktsj
b204fe182f * test/objspace/test_objspace.rb (TestObjSpace#test_dump_uninitialized_file):
remove dependency on json library.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 13:23:43 +00:00
nobu
d4ab41e393 test_hash.rb: refine a test
* test/ruby/test_hash.rb (test_exception_in_rehash): do not run twice
  since this test does not use @cls.  making a hash may increase
  memory usage and should be in preparation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 05:16:06 +00:00
nobu
dc52725655 envutil.rb: do not check RSS by default
* test/ruby/envutil.rb (Test::Test#assert_no_memory_leak): do not
  check RSS by default, enabled by rss optional keyword argument.
  TestHash#test_exception_in_rehash sometimes fails otherwise.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 05:16:04 +00:00
usa
5543a55b52 * test: get rid of warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 04:22:34 +00:00
nobu
af59443ab6 README.EXT{,.ja}: update ruby_options and ruby_run_node
* README.EXT{,.ja} (Appendix B): update contents of `ruby_options`
  and replace `ruby_run` with `ruby_run_node`.  based on the patch
  by Kaneko Yuichiro at [ruby-dev:48030] [Bug #9619].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 01:55:15 +00:00
naruse
89dff2712d r45298 fix trivial bug
$initial_size must be a size, not a status

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 01:25:20 +00:00
naruse
ef0ce95daf fix typo on previous commit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 01:18:45 +00:00
naruse
e30a140d6f fix configure for r45306
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-11 01:02:34 +00:00
charliesome
c8c539a198 ext/objspace: Check fptr before trying to dump FILE object fd
Patch by Scott Francis. Closes GH-562.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-10 21:55:51 +00:00
svn
d8182739c7 * 2014-03-11
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-10 17:11:01 +00:00
naruse
fefbd47bdd * vm_dump.c (rb_vm_bugreport): show vm maps on FreeBSD.
* vm_dump.c (procstat_vm): copied from FreeBSD.
  http://svnweb.freebsd.org/base/head/usr.bin/procstat/procstat_vm.c?revision=261780

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-10 17:10:57 +00:00
naruse
be7cc58370 * configure.in: always check dladdr(1).
* addr2line.c (fill_lines): show the line number in C backtrace if
  ruby is built without --enable-shared (PIE) on Linux.
  patch is originally by Shinichiro Hamaji
  https://twitter.com/shinh/status/441957774264504321
  NOTE: ld doesn't insert __executable_start for PIE.
  dladdr(3)'s argument must be a function pointer.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-10 03:20:53 +00:00
svn
3727e06606 * 2014-03-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-10 01:51:50 +00:00
nobu
21759a08b3 merge GH-558
* test/ruby/test_enumerator.rb (test_iterators): fix test for hash
  iterators.  [Fixes GH-558]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-10 01:51:45 +00:00
normal
b39eabac5d class.c: check for malloc failures
* class.c (rb_class_subclass_add): use xmalloc
* class.c (rb_module_add_to_subclasses_list): ditto
* class.c (rb_class_remove_from_super_subclasses): use xfree
* class.c (rb_class_remove_from_module_subclasses): ditto
  [Bug #9616]

xmalloc does OOM checking and helps GC accounting when used
with xfree.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-09 05:22:01 +00:00
nobu
dfdb8b7372 fiddle/function.c: fix memory leak on exception
* ext/fiddle/function.c (function_call): fix memory leak when an
  exception occurs at argument conversion or the function call.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-09 04:51:38 +00:00
nobu
1692e54793 fiddle/function.c: check argument size
* ext/fiddle/function.c (initialize): check argument number if the
  temporary buffer exceeds size_t max.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-09 04:51:17 +00:00
nobu
cb05f199ee tests for [Bug #9599]
* test/dl/test_{cptr,handle}.rb: tests for [Bug #9599].

* test/fiddle/test_{handle,pointer}.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-09 04:19:10 +00:00
nobu
e20cd8ee49 test/ruby/envutil.rb: compare RSS to check memory leak
* test/ruby/envutil.rb (Test::Test#assert_no_memory_leak): compare
  also RSS if available.

* test/ruby/memory_status.rb (Memory::Status.parse): read string
  form of an instance.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-09 04:17:38 +00:00
hsbt
6864969967 * eval.c: remove needless space.
[ruby-dev:48026] [Bug #9615]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-09 04:09:10 +00:00
svn
e9328e699f * 2014-03-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 21:44:30 +00:00
normal
eb227b25fa variable.c (struct global_variable): shrink by 8 bytes on 64-bit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 21:44:24 +00:00
ktsj
e38d95497f [DOC] Add NEWS about Find#find, Pathname#find.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 11:01:48 +00:00
normal
fa043eb4e8 vm.c: cleanup to use rb_method_entry_at
* vm.c (add_opt_method): cleanup to use rb_method_entry_at
  Easier experiments with a non-st method entry tables.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 08:56:50 +00:00
nobu
e4c06f3c22 enum.c: suppress warnings
* enum.c (each_val_i): svalue is no longer used.
  [ruby-core:61340] [Bug #9605]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 05:49:12 +00:00
nobu
ff84a6a2e7 ext/dl, ext/fiddle: fix memory leak
* ext/dl/cptr.c (dlptr_free), ext/dl/handle.c (dlhandle_free),
  ext/fiddle/handle.c (fiddle_handle_free),
  ext/fiddle/pointer.c (fiddle_ptr_free): fix memory leak.
  based on the patch Heesob Park at [ruby-dev:48021] [Bug #9599].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 04:46:57 +00:00
nobu
119d66232d process.c: expand buffer on ERANGE
* process.c (obj2uid, obj2gid): now getpwnam_r() and getgrnam_r()
  may need larger buffers than sysconf values, so retry with
  expanding the buffer when ERANGE is returned.
  [ruby-core:61325] [Bug #9600]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 04:30:56 +00:00
nobu
3df8fbf248 process.c: need capacity
* process.c (obj2uid, obj2gid): need capacity as buffer size, not
  length.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 04:30:30 +00:00
nobu
9e33b72ad1 process.c: GETPW_R_SIZE_INIT, GETGR_R_SIZE_INIT
* process.c (GETPW_R_SIZE_INIT, GETGR_R_SIZE_INIT): sysconf values
  are not maximum sizes, but initial sizes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 04:08:46 +00:00
nobu
b1fb57da3d process.c: tmp buffer instead of alloca
* process.c (OBJ2UID1, OBJ2GID1): separate from OBJ2UID and
  OBJ2GID respectively, need given buffers.

* process.c (OBJ2UID, OBJ2GID): no longer need PREPARE_GETPWNAM
  and PREPARE_GETGRNAM.

* process.c (obj2uid, obj2gid): use tmp buffer instead of alloca
  to get rid of potential stack overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-08 03:55:01 +00:00
nobu
c052c80cda enum.c: yield multiple values
* enum.c (find_i): yield multiple values instead of a packed
  array, so that lambda block can work.  with tests by Alex
  Rothenberg.  [ruby-core:61340] [Bug #9605]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-07 22:36:32 +00:00
svn
cfe3d98999 * 2014-03-08
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-07 22:35:59 +00:00
nobu
f2001d34c2 enum.c: yield multiple values
* enum.c (find_i): yield multiple values instead of a packed
  array, so that lambda block can work.  with tests by Alex
  Rothenberg.  [ruby-core:61340] [Bug #9605]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-07 22:35:55 +00:00
normal
9c236f1140 vm_eval.c: use RARRAY_CONST_PTR to aid RGenGC performance
Pointed out by ko1.

* vm_eval.c (vm_call0_body): use RARRAY_CONST_PTR
  (check_funcall_exec): ditto
  [ruby-core:61360]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-07 10:30:51 +00:00
normal
bd1104f3dd vm_eval.c: fix misplaced GC guard
* vm_eval.c (vm_call0_body): fix RB_GC_GUARD location
  (check_funcall_exec): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-07 10:21:28 +00:00