kosaki, KOSAKI Motohiro

Hash Date Message
75ce78429ee220349e3e01aa874e918e1eb1745f 2010-04-06 * vm_core.h: Introduce UNINITIALIZED_VAR() macro.
ceb62c31a1351422c208282a755d6eb3e0073a17 2010-04-07 * misc/ruby-mode.el (ruby-mode-map): binded C-c C-c and C-c C-c C-u to comment-region and uncomment-region. Thanks Michael Klishin! [Feature #872] [ruby-core:20552]
51ba9a6b14207bd95b55727962b56b3c74855cb2 2010-05-21 * cont.c (fiber_setcontext): Use swapcontext() instead longjmp().
827a17bdbbadc27ddcb602a761e4af1295ba60e4 2010-05-28 * thread.c (blocking_region_begin): avoid RUBY_VM_CHECK_INTS()
4fd8930898802ea8c34a280f71b7bcfdb7560ac4 2010-09-25 configure.in: Always add -mieee for Renesas SH4
b2f69c4c1fccbd07200974767a46178a8fccda4b 2010-12-14 * test/ripper/test_parser_events.rb (TestRipper#test_block_variables):
b61c256181cf660a4d55acb17d9da8da448e420f 2010-12-14 * ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_config):
cc9b886691bc4d2f9b81edc5583c929fda7ea769 2010-12-16 * io.c (rb_io_advise): New API. IO#advise() allows to tell the ruby runtime how it expects to use a file handle. This feature can be improved a performance some situations. Note: This feature is mainly developed by Run Paint Run Run. Thank you! [ruby-core:33110] [Ruby 1.9-Feature#4038]
39058e1d876cccf7f721925b57cd6bf43ff040d5 2010-12-16 Fix indentation
a3ba982c75719cbe4e3372ad73d3f4cee9caae59 2010-12-19 * io.c (Init_IO): Added O_DIRECT. This feature was propsed by Run Paint Run Run. [Feature #4015] [ruby-core:33018]
237edd7a2f7fc63babff283fae20a5ccd831ff54 2010-12-20
7503f1934669b2a50ffabe5394148fa8ddb7dfa2 2010-12-20 * error.c (exit_success_p): Check status code more carefully. status code may have garbage in upper bit.
97da02b2a6acc8e8cd5440413c85df41783ba9e9 2010-12-20 * thread.c (thread_cleanup_func): Don't touch native threading resource at fork. Sadly this is purely bandaid. We need to implement proper fix later. [Bug #4169] [ruby-core:33767]
1ff6a1953cafbec8ec93fe07112599f59c7cb873 2010-12-20 * thread.c (thread_cleanup_func): Moved interrupted_lock destroying code from native_thread_destroy() to thread_cleanup_func() because it's platform independent logic.
12b8ff1f464e86df401ccc7b532a0e0074f0babb 2010-12-20 * error.c: Fix build error for win32. This regression was introduced by r30271.
402402741dccdda8d52e548cc9dc89b806d852f9 2010-12-25 * ext/pty/pty.c (chfunc): Added rb_thread_atfork_before_exec(). We must reinitialize GVL when new process creation. Otherwise we may meet an insane deadlock. [Bug #4121][ruby-dev:42686]
47a1cd1291f1f52cc8d36cb533e0d653d128930a 2010-12-25 * signal.c: change rb_atomic_t definition from uchar to uint.
e271684d2fc7d0d3b6a86a46e2c34c7593dcb35d 2010-12-25 * thread.c (rb_thread_atfork): Add small comment why we need reset random seed.
c9958d6ab46bb5562dbb67fad116b176a0fba9fc 2010-12-25 * io.c (pipe_open): Added rb_thread_atfork(). We must reinitialize GVL at new process creation.
6bd4afaab89b7542eac3273fce55e02e61edb828 2010-12-25 * ext/socket/extconf.rb: Fix build error which was introduced r30372.
085e40d45b94285415e4a9909a32fc0532a210c3 2010-12-25 * io.c (advice_arg_check): Change argument check. Now, an unsupported advice makes NotImplementedError. [ruby-dev:42887] [Ruby 1.9-Feature#4204]
5d276ea14a84de7fd204dfd635ac7b6d17ea9039 2010-12-26 * process.c (before_exec): add small comment.
43b4bae567b4580fbfcb143b7812ce180144959c 2010-12-26 * win32/Makefile.sub: fix 'nmake clean-enc' breakage since r28322.
205cc6c068ae48f1ec9d7f78c0c228f70855ab97 2010-12-26
0585d81d51fa95cbe6e57b8e03c985890b2ad125 2010-12-27
918a712cf87f0dfec943069b617d1763e7f824a8 2010-12-30 * Makefile.in: Kill ugly line continuation.
78f6130528002fc63dcaa9260f0f7e6727e42a29 2010-12-30 * Makefile.in: Check V=1 argument if run "make clean" or similar.
962b75384e4b6b388806fa3ff8d4381a2329ccb4 2010-12-30 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
caab5dcee77d8278fdf578334b6d4e7f8595052e 2011-01-12
da235830b561960905d62604fa0dc6b56e640900 2011-01-12
b1f8bbf4f7fca70b3a173932f2f3c9cfed07b075 2011-01-12
6d6fe7fe6b430c39bcb05106994eb67a9486d580 2011-01-19 * proc.c (proc_call): Add gc guard to avoid segfault. The fix is created by Tomoyuki Chikanaga. [Bug #4238][ruby-dev:42963]
1a3950e2946026780d973b294d4c49c8d9e346f0 2011-01-20
d41d2f26ceeca3078aa8faff704e571247eb87e8 2011-01-20
c940b3939a66ab3c7d838ad1511f8b31c9791006 2011-01-20
7fd0d4a4d39f99f526cf14f092f330970d71a6a0 2011-01-20
fe505c47c86e6ee6db45096913f81f29bf15c523 2011-01-22
99ef86707ced54a1aa5a0c741cf09205f1a9e5a0 2011-01-23
b9c0b5039c77095b36e35dc3227458b09631dd78 2011-01-23
2ec31553eabe374a1f8c1b8edf0d2bb4c548949f 2011-01-24
cab9751e97e6bfca2f34c8d52a818808ed559ebe 2011-01-24
68823fdea5ea47cf056c95b4e45c48c66f55c157 2011-01-24
21931d6aa2fb5dc0b2d058323cba33bc5772653e 2011-01-27
18c11392aff96003cc6713b447a160c20d66a0a6 2011-01-27
ab720532ef884a69fbf9dc104b8a113b5a6c9a18 2011-01-27
f7fb66bd356454614a4d6a2181f18d8b586418cf 2011-01-27
2529d2c38d985f8c5952f9562b974b3b54de7a72 2011-01-27
8d397b77ead6baeaab1b5da45c83a3a2fb1043e4 2011-01-27
ac0178910ec628875dc81ee41f18b3a1757b18a8 2011-01-27
5a00a61681fa8d400507940600151068e69ca1b9 2011-01-27
6c2b2c285372a8b5e3457058ff85ecf327e4e105 2011-01-27
41bbb319ddf1fad6b79c79107d3a865bc859b971 2011-01-27
1e60af4d6779e739d205ef63f05ebfd3fb2f7223 2011-01-27
58da04b39852dd1ba58db70a1986a5923baf5531 2011-01-27
92c1dfd9d2b3680c156a4657e3f44a956dc834e0 2011-01-28
4afa5fead876c3b732bb7bba3674231704b9df96 2011-01-28
39473b88a9b523511bcada7fe19dabbc96a86e3f 2011-01-28
cb1366b48f788e9a5655961d0ea73b0908f72223 2011-01-28
e5971e8c7e21136c509a3c2b3967352a2e064e51 2011-01-28 We don't only need to change "struct stat.st_size" test, but also need to change "struct stat.st_blocks" test.
aea93cbed83381b9ef63c2b7cbcb2d882ea5168f 2011-01-28
29422e5d31cd632f796966c9d4e9b32ca2368540 2011-01-28
65269855223a070eeb185cc223f54b2eac1b0160 2011-01-28 remove unnecessary local variable.
bacc7e6a42073d60107e4a385a40807b2ba52e91 2011-01-28
a3d861ef2fb6fa47d7244d26b6de1821d6ee4010 2011-01-28
36f71db31eca74cfc3f978b820c96af895211851 2011-01-28
3a0ec6810909b8da01427bc1f38c02f4e370807e 2011-01-28
cb96213fad6e137f79a70babc31b2830d3d0d81a 2011-01-28
77a7137c4b3e30276af6d4271de9aea6531c621f 2011-01-28
1195ba6644dd68123beeaa1efc228f8e7cfad4b1 2011-01-29
eea774d0295e422a5231124c25aae11c39fb2abd 2011-01-29
7fb70b4e0fe9ecfbc66a06c9dbeee766960a5eb1 2011-01-31
6e2a194fa71f136f5911e8b3dc60ef0aae962ad8 2011-02-01
6909ea443fee4daadfad78df81ab4577c30b5ace 2011-02-01 * include/ruby/st.h (st_table): Added comment why we need __extension__.
3722e3a29aedcdd78ad07e3ed643a78b61ef345a 2011-02-02
aa36d4df21113a36c2e368e0abb417480a6eebbd 2011-02-03
e0d1e2453b35f4b8ed4d57fd0205538fec3babb6 2011-02-04
034540dbc1f761221c1977465b13b00b4f558108 2011-02-04
49f8799af4d612ea164f800645222d15cfc6ae02 2011-02-05
e66eec9284c74312de747633cb048b5bd95d8bc5 2011-02-05 * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert): revert r30796. r30797 and r30798 are an alternative fix. [ruby-dev:43174]
a9c7af3b6e3cf06977a5346cbe2ab287a652551a 2011-02-08 * configure.in: revert r30725. Now we have proper runtime fallback. Therefore, no need compile time disabling. (see r30762).
411e4a6cf2570a0d59cb7a4c52fec22563bcae03 2011-02-08 * process.c (rb_run_exec_options_err): use MODET2NUM() instead LONG2NUM().
0559227e870c5d0119a6818c5e050be673602f0e 2011-02-08 * io.c (rb_io_s_sysopen): use NUM2MODET() instead NUM2UINT().
0042bbc1c1757177be0742cf1dce692dbe58a407 2011-02-08 * configure.in (AC_MSG_CHECKING): fixed typo. the patch is created by Benoit Daloze. Thanks a lot. [Bug #4384][ruby-core:35148]
e0258fa04bb96000ae50073cf2fe365fb6ac32b5 2011-02-09 * array.c: documentation clarification in rotate, rotate!, index, and rindex. [ruby-core:35144]
cee21ad215f48c3d15f5d5d939fb4ca1c8950f1b 2011-02-14 * test/ruby/test_system.rb (TestSystem#test_system_at): added test. [ruby-core:35218] (#4393)
8068d73cc11957c37a6869d4e0325191f7a9a040 2011-02-14 * test/ruby/test_system.rb (TestSystem#test_system_at): added test. [ruby-core:35218] (#4393)
c6e6380665c83a54d32c0a7ee2ff80d6705a778b 2011-02-14 * win32/setup.mak (USE_RUBYGEMS): fixed r30835. It didn't work on mswin32 port. If you changed win32/configure.bat, you should change setup.mak too.
61a4ee9b6841a18864060f3b4636711e12a71485 2011-02-15 * configure.in: fix and resubmit r30621. [ruby-dev:43203]
36a0a1a3f3d6ede4c8d42c3beb2e5c24ea649f3c 2011-02-16 * eval_jump.c (rb_exec_end_proc): changed at_exit and END proc evaluation order. [Bug #4400] [ruby-core:35237] * eval_jump.c (rb_mark_end_proc): ditto.
df52785d301a991332d0bff7b37bcee31133a7c0 2011-02-19 * signal.c (sig_trap): avoid pthread_sigmask(xx, &mask, &mask) usage because FreeBSD don't permit it. If it's used, it behave as pthread_sigmask(xx, NULL, &mask).
deeda1ca87cfc80df8d7200f92b1e6287a39f80c 2011-02-20 * test/ruby/test_system.rb (TestSystem#test_system_at): add testcase for bug4396.
f0f7079d48c2b154341e8bd8464b845ef992739d 2011-02-27 * test/ruby/test_system.rb (TestSystem#test_system_redirect_win): add test for system().
4a57c5e7d961e457826ea5dabb758b249d8faeb0 2011-02-28 * win32/win32.c (rb_w32_spawn): use shell if a commandline contain double-quote character. * win32/win32.c (is_internal_cmd): similar, use shell if a commandline contain caret character.
af3e36158fd820634cfed1ad318c87152690d086 2011-03-01 * test/ruby/test_system.rb (TestSystem#test_system_at): remove tests for [bug#4396]. because we decided to reject this ticket.
62374161f1627843294f4f3836af085dd70eaa59 2011-03-04 * configure.in: save warnflags. the patch is created by Eric Wong. [Bug #4465]
ff077097774f94b7b69b8d0ebcdea2638e906ec0 2011-03-04 * io.c (io_cntl): change 'cmd' type to int. ioctl and fcntl need to be passed int. * io.c (rb_io_ctl): ditto.
c0359f81764e30ad041b152aeea1a2c0a95c3ccb 2011-03-04 * io.c (io_cntl, nogvl_io_cntl): IO.fcntl() and IO.ioctl() release GVL during calling kernel interface. Suggested by Eric Wong. [ruby-core:35417][Bug #4463]
a474b0e3f72533159f87a6efd52a4bc3028467fe 2011-03-05 * test/ruby/test_io.rb (TestIO#test_fcntl_lock): small clean up.
b2a8d109b65d4cf16d1c057b7bca8e25ac674630 2011-03-05 * io.c (io_cntl): use rb_thread_io_blocking_region() instead rb_thread_blocking_region().
97f07f096843beec98c13063a2d561e017a4ce6b 2011-03-06 * sample/list.rb (MyElem#initialize): initialize @head explicitely. Otherwise -W2 option makes following warning. "warning: instance variable @head not initialized". This issue was founded by Andrew Grimm. Thanks Andrew! [ruby-core:35435][Bug#4471]
aca674c2e7c0c99c9caf11e7fe46621b16d57bb5 2011-03-06 * process.c (maxgroups, proc_setmaxgroups): increase max groups limitation up to 65536.
beed971728f8789d8e2daac0567d109bff21cb2d 2011-03-06 * process.c (proc_setmaxgroups): added negative value check. This was suggested by Daniel Berger. Thanks Daniel! [ruby-core:35426][Bug#4467]
b1329e3b63193730837e189b927a97cb1d73f3ba 2011-03-06 * configure.in: rlim_t use standard RUBY_REPLACE_TYPE mechanism.
c6bb8beb5294ce1162ea0f088707a9fe167449a7 2011-03-06 * process.c (proc_getgroups): get rid of maxgroups dependency. ngroups can be calculated dynamically.
1a8ee910f3f923f50e2b21cd55b8d3ae50eac85a 2011-03-07 * process.c (proc_getmaxgroups, proc_setmaxgroups): refrect platform maxgroups limitation by default instead hardcoded 65536.
19a127d0cbb9a94b530add65f118252e94551bb9 2011-03-07 * process.c (proc_setgroups): replace getgrnam() with getgrnam_r() because getgrnam() isn't thread safe.
52b40be04b961a38379d559b3a10d8a6252ba43b 2011-03-07 small cleanup.
d558bb59c8d9c752babe1249cc1932126feebf7e 2011-03-08 * process.c (get_sc_ngroups_max): try to use NGROUPS_MAX at first if _SC_NGROUP_MAX is not defined.
776156243cc7dc25a19bac50d6a06efa62016a4e 2011-03-08 * process.c (proc_setgroups): cleanup.
4a8cf2d92d85aa1fad8a388186d8a5025c694d47 2011-03-10 * process.c (get_sc_ngroups_max): return -1 if platform don't support NGROUPS_MAX.
bd90dc80f29a09376e04f5f1b6adbe17806a67fa 2011-03-10 * process.c (proc_getmaxgroups, proc_setmaxgroups): Process#maxgroups and Process#maxgroups= now raise NotImplementedError if the platform don't support supplementary groups concept.
f35a7770cd9ceeb88411f23b3595c4bf6ec78d79 2011-04-03 * io.c (io_reopen): IO#close releases GVL if possible. close() may block for certain file types (NFS, SO_LINGER sockets, inotify), so let other threads run. The patch was created by Eric Wong [ruby-core:35555][Bug #4527]
f4755f214c91c726ba264d3053680da1ac59cbf7 2011-04-03 * configure.in: disable fdatasync again on Mac OS X. [ruby-core:35493][Bug #4500]
3ba502d5f01a39b4adfd456ffc29f0f13c106267 2011-04-04 * io.c (rb_io_syswrite): While local FS writes are usually buffered, the buffers can be full or the file opened with O_SYNC. IO#syswrite can also be used on blocking IOs (pipe/socket) just like IO#write. The patch is written by Eric Wong. [ruby-core:35554]
78ea7afe97241b7a8a8176f680865430779e7d68 2011-04-04 * ext/io/nonblock/nonblock.c (io_nonblock_set): Avoid F_SETFL if we're not changing the O_NONBLOCK bit. F_SETFL is an expensive operation since it needs to affect all processes with the same file object. The patch is written by Eric Wong. [ruby-core:35556]
3b011d1a00dcad0ae960800778070ec565fcef7e 2011-04-11 * file.c (rb_group_member): kill 256K of stack usage. the patch was written by Eric Wong. [ruby-core:35699]
616f70fcf6c81ca70b46951ddf605008a2848a92 2011-04-11 * test/ruby/test_io.rb: Added TestIO#test_cross_thread_close_stdio and TestIO#test_cross_thread_close_fd. The patch was written by Eric Wong. [ruby-core:35669]
0f771e33e2c3be4bc6316d6f4a930ba67ed0a9a3 2011-04-11 * io.c: revert r31230.
8c5961f6f9b0387647e233be8652f23e609d68c2 2011-04-14 * lib/fileutils.rb (FileUtils#touch): fix corrupted output when FileUtils.touch(:nocreate => true, :verbose => true) case. The patch was written by Hiroyuki Iwatsuki. [ruby-dev:43401]
f5c7d1074fd5f4836aeae851eab819565cdfc6f2 2011-04-14 fix ChangeLog description.
8ff8d6196141b72cc1f7197aad7f99e7579d944e 2011-04-24 * string.c (rb_to_id): remove unused variable.
74c5e807f7e5f8cd9a041fe2e12e960d47f9c651 2011-04-29 * thread.c (rb_mutex_lock, lock_func): Avoid busy loop and performance degression. bm_vm3_thread_mutex.rb performance change from 109.064sec to 16.331sec.
6998f013ab594d3f2499155b1076e45eedf70e34 2011-04-29 * thread.c (lock_func): small cleanup.
7ff7a2b376478fe3377a9c2dfdea43e3dde326ff 2011-04-29 ChangeLog change.
e4ba4b79b657f784ab52a339958c1ebb2320e906 2011-04-29 * vm_method.c (rb_clear_cache_by_class): Revert r29673. It made a segmentation fault regression. [Bug #4289][ruby-core:34554].
3c24bc37a00901427add4f96f7f37411a0eb8da5 2011-04-29 * benchmark/bm_vm4_pipe.rb: Add two new benchmark for GVL performance. They was written by Koichi Sasada. * benchmark/bm_vm4_thread_pass.rb: ditto.
eaca3529f2bbb9d40e887c29b3696a0cfbdd2ce5 2011-04-29 set svn:eol-style property
9d4ae4ab0c5b17e48939457bc9d4cf45ac412d26 2011-04-29 fix indentation
b4c5fad4b1b435f081dd552ad29040a9edb1457f 2011-04-29 * thread_win32.c (native_cond_timedwait): New. r31373 caused win32 build failure.
ada9870af9da1443fe7be51ee50c98cdbfb53c45 2011-04-29 * thread_pthread.c (gvl_init): fix hangup if GVL_SIMPLE_LOCK=1. We don't have to call mutex_unlock() before initialize it!
58e414b85e913e96f949d9c1502114e13cd9f453 2011-04-29 * include/ruby/win32.h: remove redundunt declaration of rb_w32_time_subtract().
1bbab743982f1d7bf289f5d388ddba355143e3a8 2011-04-29 spell fix
d4dcad874646a949f704dfa96aa1bbcff610236e 2011-04-29 fix eol-style
b48537cd269a9b150c4ebde2efe80a424ea0165e 2011-04-29 * test/io/wait/test_io_wait.rb: New. for testing ext/io/wait. the patch was written by Eric Wong. [Feature #4531]
568c934373ce149ac10afcc62d41e5f44eff56ac 2011-04-30 * benchmark/bm_io_select.rb, benchmark/bm_io_select2.rb: New. based on a patch from Eric Wong at [Feature #4531]
98c7ca9b65be4bc102463d1c90142094e8d05c42 2011-04-30 * io.c (copy_stream_body, rb_io_s_copy_stream): move rb_fd_init() from copy_stream_body to rb_io_s_copy_stream. fds of passing rb_fd_term() have to be guaranteed initialized.
5201602c276115ae4be8442d73c567c95af22f7b 2011-04-30 * benchmark/bm_io_select3.rb: New.
4c926e9f15c42ef789e0af5ca2f15dc6188d1b3c 2011-04-30 * thread.c (do_select): remove useless ifdef. time calculation is not heavy weight.
2d2544c8e66ce6cc0973611145d442a165a9c663 2011-04-30 * include/ruby/intern.h (rb_thread_select): mark as deprecated.
225fa965bc5807a356b94944916af0573ab692a9 2011-04-30 * thread.c (rb_fd_copy): Change function argument. Now rb_fd_copy() has fully copy semantics. * include/ruby/intern.h: ditto.
3c68095b8a0d665b9ae94ec3c48fa4f30b3fb86a 2011-04-30 * thread.c (do_select): Change arugment type to rb_fdset_t. Now do_select() is free from unexpected hangup if HAVE_RB_FD_INIT=1 [Bug #4636]
04202dc83dde72db03d72227841c6dddbd41a925 2011-04-30 * win32/win32.c (rb_w32_fdcopy): New. This can copy even though fdset size exceed FD_SETSIZE. * include/ruby/intern.h (rb_fd_copy): use rb_w32_fdcopy()
e140be695630daf179cd6ef1180a12409d9fc2e9 2011-04-30 fix commit mistake of r31389.
4d88169267a8614c36e9fbe389dd3fadba25cdc5 2011-04-30 * thread.c (rb_thread_select): release GVL while waiting select().
49b4510cd1ca220e9ec51ad269c6544ca9610ca3 2011-05-01 * ext/socket/init.c (rsock_connect): add to care EINTR. based on a patch from Eric Wong at [ruby-core:35621][Bug #4555]
0a1e7d1568584f22f743347c5e3b64dbf705dd83 2011-05-01 * lib/fileutils.rb (FileUtils#chmod): accept symbolic mode argument. The patch was written by takkanm. [ruby-core:26029][Feature #2190]
50522eb35172c4887b5a35919ebe8c52f00bfe71 2011-05-03 * test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_symbol_mode): Skip sticky bit test if the platform is FreeBSD. It doesn't allow to change sticky bit if a target is regular file.
f081eca1d7ca95a15989c2b59230430ff3dfe708 2011-05-03 * thread.c (rb_fd_copy): fix wrong argument.This issue was pointed out by Eric Wong. [ruby-core:35982]
9be37ca7d51513658f5f84d98fa5e46026cc5a04 2011-05-04 * thread.c (rb_wait_for_single_fd): new. * thread.c (select_single): select(2) based backend for rb_wait_for_single_fd().
249fe0e74252af65c3e2e47a5e9e27eb839ad7c0 2011-05-04 * thread.c (rb_wait_for_single_fd): new. poll(2) based backend for rb_wait_for_single_fd(). Now only Linux uses it.
cd796c609fec41b412a78bd742c723b1d8319c61 2011-05-04 * ext/io/wait/wait.c (io_wait): use rb_wait_for_single_fd(). The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]
82b2e8012048cdc6f6ee7659fdb25ffa53945d02 2011-05-04 * ext/socket/init.c (wait_connectable): use rb_wait_for_single_fd(). The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]
4da4cb0421fbdd5c7a825addcda9c8725e86c844 2011-05-04 * ext/readline/readline.c (readline_event): use rb_wait_for_single_fd(). The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]
9851b0ce2fbc5934ddd00434048be4273f41102d 2011-05-04 * ext/socket/init.c (wait_connectable): fix error handling code. RB_WAITFD_OUT is turned on even though an error occur.
d7fa4d837eff72adae21f0504fa9ccacab7f7019 2011-05-04 * io.c (rb_f_select): remove useless ifdef.
951b0901302d851bac96341f181c8f0a1ece54d1 2011-05-04 * thread.c (rb_wait_for_single_fd): Added POLLNVAL check. based on a patch from Eric Wong at [ruby-core:35991].
2a989121db8f80aceeadb5d403af79d4b30e1bb8 2011-05-04 * ext/-test-/wait_for_single_fd: New. for testing rb_wait_for_single_fd() internal function. The patch was written by Eric Wong. [ruby-core:35991]
c06da4735da0e2285c1e3e52202b7090b3f43b1b 2011-05-04 * thread.c (rb_wait_for_single_fd): Fix wrong return value. * test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb (TestWaitForSingleFD#test_wait_for_closed_pipe): test for it.
be62297f9230c4cf8d73321c5c9e28037b35fc1d 2011-05-04 * io.c (Init_IO): Added File::CLOEXEC constant. [ruby-core:22893] [Feature #1291] * test/ruby/test_io.rb (TestIO#test_o_cloexec): test for File::CLOEXEC.
512624b62839f5ffe0faebfceb49411b10ee38bf 2011-05-04 * benchmark/bm_io_select2.rb: reduce number of using file descriptors. because gdb need some fds.
674a33edf51e5b5a47f78b2794500ad2e61c69c3 2011-05-04 * test/date/test_date_base.rb: don't use no message skip().
f5b0f04d2ae2fdbf94f0a061a40693d84a863e0e 2011-05-04 * benchmark/bm_vm4_pipe.rb: Reduced iterations. Too slow benchmark is bad. * benchmark/bm_vm4_thread_pass.rb: ditto.
b5d612e0df4b77f7918323d25d7b46ccdd2756d9 2011-05-05 * thread_pthread.c (native_mutex_reinitialize_atfork): removed unused macro. * thread_win32.c (native_mutex_reinitialize_atfork): ditto.
25d040780fcff44b3b03062d1d2c4540df7b33ef 2011-05-05 * test/ruby/test_io.rb (TestIO#test_O_CLOEXEC): fix false positive detection.
066eecf53a762521891c46199c2e8c11a35fb8dd 2011-05-06 * configure.in: remove nanosleep check. we no longer use it. r20124 removed last usage.
4a9883e92f856bf7db773e0ddc72f17a8662b75a 2011-05-06 * thread.c (rb_wait_for_single_fd): use ppoll() instead of poll() if possible. based on a patch from Eric Wong. [ruby-core:36003].
a1cfaf4b1f199d078f5168dcbc37a83250666ed4 2011-05-06 * thread_pthread.h (rb_thread_cond_t): add clockid field. it's no longer an alias of pthread_cond_t. * thread_pthread.c: adapt new rb_thread_cond_t type. * thread.c (mutex_alloc): ditto. * thread_win32.c (native_cond_initialize): ditto. * configure.in: add check for pthread_cond_attr_setclock() and clockid_t type.
54b50fbb9c5a62a5dbefc40568985b23eb4d1238 2011-05-06 * thread_pthread.c (get_ts): add monotonic clock capability. * thread_pthread.c (rb_thread_create_timer_thread): use monotonic clock if possible.
b2ea836ae705cc690d1230476e6eb97e92e7ef52 2011-05-06 mutex: deadlock check timeout use monotonic time.
604a1e2e22b1e8a841a6d3f6d0c870eb504306f3 2011-05-06 fix win32 compile error.
7ac6b706b418db4311ce64219c6156ec628453de 2011-05-06 sleep_cond use monotonic time if possible.
471fb33b1a140973a3e3f6168f16b67bee95b4cd 2011-05-07 fix mutex deadlock test hang-up.
94e4d61bdaad74e0f31bb6d69521784303a0cb5e 2011-05-07 fix win32 native_cond_timedwait() makes SIGSEGV.
fa319c5774ff479e0961f0710aff206f52231f86 2011-05-07 fix incorrect native_cond_signal call when deadlock was detected.
562a1a79297d00b9ac92498173ad1fcba9fc5f51 2011-05-07 remove debugging code
ddcd5c2939771129c779bad077bbacc59cd7679a 2011-05-07 r31460 is wrong fix. fix it again.
156ccab7964ae35fa2bcdb0e0a9c5f11192aa848 2011-05-07 * thread.c (rb_fd_init_copy): new internal api. It provide efficient copy constructor semantics. * thread.c (do_select): use rb_fd_init_copy().
9468e945c8877af9d33044e5813627282a7700f4 2011-05-07 * thread.c (rb_fd_init): remove volatile qualifier.
76734388a22c1ffed89e18d916a4215034898b39 2011-05-07 * thread.c (rb_fd_zero): remove redundant zero fill.
70e9201610cf83408f5e408571a48b7eab8cc5fa 2011-05-07 * test/io/wait/test_io_wait.rb: skip tests if the platform is mswin.
16846eb90cda0d82a26d9c724d29672ae309fc6d 2011-05-07 * test/io/wait/test_io_wait.rb: use Socket.pair instaed of pipe. Windows can only treat a socket.
f23fa4b01140758c8327bf2a8f0cf48a1de75cd5 2011-05-07 * test/io/wait/test_io_wait.rb: Linux socketpair(2) only support AF_UNIX, but windows socketpair doesn't support it. we can't avoid platform check. sigh!
a3fd4cf507a137e78366c6d1190ddd584bc48b4a 2011-05-08 * thread_pthread.c: cleanup signal_thread_list related ifdef. 1) we don't have to use #ifdef FOO-PLATFORM directly 2) About half #ifdef didn't care symbian properly.
c878761f3b992366d4da92d6120d28070281081a 2011-05-08 * thread_pthread.c (add_signal_thread_list): use xmalloc instead of malloc. * thread_pthread.c (remove_signal_thread_list): use xfree instead of free.
1816a4a6a994f6437b6b741fa3a84bfb4c827c04 2011-05-08 revert r31474. we cann't call xmalloc under FGLOCK.
19f52b87408263faba97f91404d84d4ef707bab6 2011-05-08 * thread_pthread.c (native_cond_timedwait): add to care EINTR. * thread_pthread.c (thread_timer): remove EINTR check.
836a8cf2149f214d86e31f07884530ed10d86653 2011-05-12 * io.c (select_internal): remove unused variable (interrupt_flag).
3ad44e0aa18ff335cf110d8da11d92af82e2ad51 2011-05-14 introduce missing/setproctitle.c
17807148446025ca1ad49a291edf0ea309a8e9d7 2011-05-14 * missing/setproctitle.c (compat_init_setproctitle): use ruby_strdup() instead of strdup().
4c79752cdfd315b2cb0e933bb4196ca04696b89a 2011-05-14 * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_set_program_name): add for $0 test.
d19cda5fa6a0f5a1395c47603e21d8db219c8280 2011-05-14 * missing/setproctitle.c: add to include "ruby/util.h".
887063f44b21a9e7b2b1e7525de61d517474659f 2011-05-14 fix mswin32 build error.
2b7996e83978097552b4a280ec9f9983401810e5 2011-05-15 * include/ruby/intern.h: remove rb_fd_copy() to rb_fd_dup() and rb_w32_fdcopy() to rb_w32_fd_dup(). * win32/win32.c: ditto. * thread.c: ditto.
d734c9dea245305b31a3097387949bcf56351f71 2011-05-15 * include/ruby/intern.h: resurrect old rb_fd_copy(). * thread.c (rb_fd_copy): ditto.
9e9543acb5e739b4f584e6a681f22bb7b59e27df 2011-05-15 * test/ruby/test_signal.rb (TestSignal#test_signal_process_group): skip if the platform doesn't have :pgroup capability. (i.e. skip if mswin32)
39b1198410c6183c73513eea43cdfbfae65b1c88 2011-05-17 Fix FreeBSD test failure.
44606925ff5bdba121f66b65dc0603079bf3b118 2011-05-17 * LEGAL (configure): add missing/setproctitle.c
b9f3cd5a0c53304cf2611864a5ef750bdb7694d6 2011-05-17 fix r31606
30414014042210a895b5df3c3eaa86981e0b2e2f 2011-05-17 * vm_core.h (rb_thread_struct): add volatile to transition_for_lock because it is not protected by lock.
63d3eec7c4f2aacc8f78b0d10571b0d256e813d7 2011-05-17 * thread.c (rb_mutex_lock): remove remove_signal_thread_list() call. It's meaningless because lock_interrupt doesn't call add_signal_thread_list().
b2d3995f4c8918bfd1ca5e9425242a64b9978291 2011-05-17 * test/ruby/test_io.rb (TestIO#test_O_CLOEXEC): add null check.
da3d9e99dd50f0f99741ca2f90b051d59b4f7f93 2011-05-18 * lib/timeout.rb (Timeout#timeout): don't leak "execution expired" exception. [Bug #4283] [ruby-core:34534].
898374126e2c2632bc9bf0308407898af1f4ff82 2011-05-19 revert O_CLOEXEC patch series completely. because boron chkbuild test result says, An old linux kernel ignore O_CLOEXEC silently instead of return an error. It may lead to bring new security risk. So, we have to be pending it until finish to implement proper fallback logic.
67cf354b465604d820ea51d4afcc14d681640a19 2011-05-21 * io.c (rb_io_extract_modeenc): accept combination hash and File::Constants. (eg. File.open('yo', :mode => File::WRONLY)) [Feature #4742][ruby-core:36338] * test/ruby/test_io.rb (TestIO#test_open_mode): new test.
e48e12ec095836a665ab91969747ead59df9f464 2011-05-21 * thread.c (Init_Thread): add a code comment why the meaningless line is necessary.
20f635d6b23332a5f3f4f6b0ffa1e2cf6d6b4089 2011-05-22 * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_set_program_name): use spawn. it prevent that other tests inherit renamed $0.
2a126b08a055ceacb6f540bd74e6d727f9d07883 2011-05-22 test cleanup
78271e8c72c72f42b4150b9456de2dbb36410b2f 2011-05-27 * io.c (fill_cbuf): Fix test-all crash.
724b1c60dcacd476b8a3d5ecf8170b4cd8bfb1b4 2011-05-27 * string.c (rb_str_bytesize): rb_str_bytesize() should use LONG2NUM(). Patch by Nikolai Weibull. [Bug #4789] [ruby-core:36511]
412e9ba17447fc3460d8d1b2203cf53efa1b2ee7 2011-05-27 email addr fix
e39b50d4b5531b84386862b47c3d3d273e6c32c7 2011-05-28 * signal.c (Init_signal, default_handler): change default SIGPIPE handler from empty function to SIG_IGN. [ruby-dev:43215] * signal.c (sigpipe): removed.
ed02c4122a67f209c7c9c4ebdd09647d0ae88e6d 2011-05-28 * process.c (before_exec, after_exec): change SIGPIPE handler to SIG_DFL before calling execve(). Because r31760 reintroduced an issue that system() may hang up (i.e. [ruby-dev:12261]). * process.c (save_sigpipe, restore_sigpipe): new.
bde7a62f9150d8a147c4e9b721ced4c2beb9600a 2011-05-28 * process.c (before_exec, after_exec): change from macro to function.
e15b3c83b880aa2c2f07378095d1eba0214ca468 2011-05-28 * test/net/http/utils.rb (TestNetHTTPUtils#teardown): add nil check.
dcc1f64cb0372de4a05ecc3989f07a3460d6ba6a 2011-06-01 * thread_pthread.c: remove unused macro.
859da834551657478bec39e55058e987780fcc54 2011-06-01 * thread_pthread.c (native_sleep): fix 1000times calculation error. this is a regression since r31457. [Bug #4808] [ruby-dev:43606]
4010bc1e84e4ddc563926072686c2fcb894f0e0a 2011-06-05 * thread_pthread.c (thread_timer): add to care a spurious wakeup. When native_cond_timedwait() return 0 by spurious wakeup, we don't have to neither 1) call timer_thread_function and 2) exit the timer thread.
ecaf7975cdca4cca1d93c822091747dbd3900101 2011-06-05 * eval.c: remove rb_thread_stop_timer_thread function declaration. Instead, include vm_core.h. * process.c: ditto.
58aa09cb146cffcc258420d63fbf40b349afdb3a 2011-06-07 * doc/irb/irb.rd: fix typo. patch by Nobuhiro IMAI. [Bug #4843] [ruby-dev:43639] * doc/irb/irb.rd.ja: ditto. * doc/ChangeLog-YARV: ditto.
7eed90933c657e7cf5de50ae39ee0672dbb3d58e 2011-06-10 * ext/tk/tcltklib.c (lib_eventloop_core): replace CHECK_INTS with rb_thread_check_ints(). Because current code can't be compiled.
1485f3c168d984d02af6530bbe2202b55d24f212 2011-06-11 * vm.c (thread_memsize): don't ignore size of th->local_storage.
9d4e471cf974d99ab01fc243b5419c6711888540 2011-06-11 * vm_core.h (RUBY_VM_SET_TIMER_INTERRUPT, RUBY_VM_SET_INTERRUPT, RUBY_VM_SET_FINALIZER_INTERRUPT): use atomic ops for preventing interrupt_flag bit lost. * thread.c (rb_threadptr_execute_interrupts_rec): ditto. * vm_core.h (typedef struct rb_thread_struct): change type of interrupt_flag to rb_atomic_t. * atomic.h: move atomic ops definition from signal.c. * signal.c: remove atomic ops definition. * common.mk (gc, signal, thread, cont): add to dependency to atomic.h.
29f7ea1b50209cbdb6be1e3f637ef1c7262c18be 2011-06-11 add to bug number
614fcdf66c816b491527c760acb2fbef5c6b8650 2011-06-12 * thread.c: introduce spurious wakeup safe deadlock check. [Bug #4696][ruby-dev:43554]
f0041fa0fddd9b5297c1840e7504bb0b04991c87 2011-06-12 * thread.c: remove th->transition_for_lock. It's thread unsafe. [Bug #4723][ruby-dev:43563]
e3672626bf0de4d7b65e539caf575a5dfac7a048 2011-06-13 * thread_win32.c (native_cond_signal): remove unnecessary rb_bug(). It's addional fix for r32021. [Bug #4696]
bcfc22b10e30771e692f7716a1fec7577373963e 2011-06-13 * thread_pthread.c: rewrite GVL completely. * thread_win32.c: ditto. * thread_pthread.h: ditto. * vm_core.h: ditto. * thread.c: ditto.
afd1a64cd6ee73e69744a09242cc079b3f1f5170 2011-06-13 * thread.c (rb_thread_schedule_rec): call gvl_yield() unconditionally. * thread_pthread.c: remove HAVE_GVL_YIELD macro. * thread_win32.c (gvl_yield): new. this fallback logic was moved from rb_thread_schedule_rec().
82e6d95edc047cf39ac3e3c5f388c5624a35d77a 2011-06-14 * thread_pthread.c (gvl_yield): fix live lock issue on 1-2 cpus system. It's additional fix for r32021. * thread_pthread.c (gvl_init): add switch_wait_cond. * thread_pthread.h (typedef struct rb_global_vm_lock_struct): ditto.
556cd0de071dcddd85c3d56b35d208250863f5b5 2011-06-14 add changelog explanation.
7f6e8625bbb71d4cf0826b56e152509fda00bab1 2011-06-14 * benchmark/bm_vm4_pass_flood.rb: new benchmark for GVL fairness. * benchmark/bm_vm4_alive_check1.rb: ditto.
c1bbb616d8be3f9f1231611b2576a6cea89033ae 2011-06-14 * benchmark/bm_vm4_thread_pass.rb: rename bm_vm4* to bm_vm_thread_*. suggested by ko1. * benchmark/bm_vm4_pipe.rb: ditto. * benchmark/bm_vm4_alive_check1.rb: ditto. * benchmark/bm_vm4_pass_flood.rb: ditto.
2ebd80d1157fcab65d2d854a8a094aec9a849968 2011-06-15 * thread.c: remove BLOCKING_REGION_CORE() macro. It's no longer used since r32021.
8923ba1ec9f7b8ebe6de729d5a54f2e2ccb202ff 2011-06-15 * gc.c: fix a regression by r31690 on AIX because AIX malloc return NULL if it's passed 0. But some caller don't expect it. patch by Yutaka Kanemoto. (vm_malloc_prepare): return calculated size. (vm_xmalloc): use above result. (vm_xcalloc): ditto.
513e0ee53b684625f82ad1ef9862b089106fa3ea 2011-06-16 * test/ruby/test_io.rb (TestIO#test_copy_stream_socket): fix test hanging up issue. Patch by CHIKANAGA Tomoyuki.
e290d7d98b07b132592227883753ce5a4088a259 2011-06-16 add a mail reference.
e80b506ed9798ed9fc8af520cf9243e7de1cdab9 2011-06-16 fix revision off by one reference.
3c23284734b60dac99339c300dff6c4bd2c226f4 2011-06-16 * thread.c (rb_thread_schedule_rec): fix {UN,}LIKELY macro misuse. * gc.c (rb_newobj): ditto. * vm_insnhelper.c (vm_method_search): ditto.
ef86308a2c892d37a8961e531466c00b475275fe 2011-06-18 * vm.c, vm_core.h (rb_vm_stack_to_heap): remove const. It makes compilations warnings.
e623ceb9f9092616be590b1f5e1a71ddbb18c0b3 2011-06-18 * thread_pthread.c: remove GVL_DEBUG
2552e428f3f89adbec3a548cf7b943b6b1318c24 2011-06-20 * thread_pthread.c (thread_timer): rename timeout_10ms to time_quantum. it's no longer 10ms.
1d110a14a44dce8a34be74821490a0ce303a64dd 2011-06-20 * process.c (before_exec): use sig_do_nothing instead of SIG_DFL for avoiding a race. * process.c (sig_do_nothing): new function.
cb138bbaa6fdec9e9e8f6821e23130d6397677cd 2011-06-21 * test/ruby/test_thread.rb (TestThread#test_priority): enable this test again. Current GVL respect thread priority rather than past.
97beed076f258ebe0835cbe496a7604e196db288 2011-06-21 * internal.h: move rb_thread_io_blocking_region() declaration from intern.h to internal.h. It's still experimental API and need more discussion. * include/ruby/intern.h: ditto.
c9aef84c7a3c075b05a89c8f9737369f7f6c2303 2011-06-21 add ML ref to ChangeLog
b9d9ea62b4c8479c95e29ac478d3a39f9008ea5d 2011-06-21 revert r32183
908baefe7da367539092994fdbc718a43772e956 2011-06-21 * internal.h: move rb_thread_io_blocking_region() declaration from intern.h to internal.h. It's still experimental API and need more discussion. [ruby-dev:43698] * include/ruby/intern.h: ditto.
dc8f58f6e82c933ff3f8c68be29f6bccc8f31ca1 2011-06-22 * ext/socket/depend (SOCK_HEADERS): use $(top_srcdir) instaed of $(topdir). sorry!
230be2a7715c55e1b0ff889bb2c77442ff2f0e8c 2011-06-26 * vm_dump.c (rb_vm_bugreport): change CrashReporter suggestion messages on Mac. It should be placed after "-- C level backtrace" line. Suggested by Endoh-san.
ea3da57e1234b47f6c851d1760637fe627e9579d 2011-06-27 * thread_pthread.c: s/__gvl_acquire/gvl_acquire_common/ and s/__gvl_release/gvl_release_common/.
d647b5358ed5c7f07b3aa500b40297568a882975 2011-06-27 * thread_pthread.h (rb_global_vm_lock_struct): add volatile to gvl->waiting. now thread_timer() access it w/o lock.
f8cc7796801c48be0a31c892ec7e39b79b4f08ed 2011-06-27 * thread_pthread.c (consume_communication_pipe): change return type to void. caller doesn't use it.
3639736d5d4ae60dad6e2221d2b95bb73d6b3576 2011-06-27 * thread_pthread.c (consume_communication_pipe): don't use C99 style variable length array.
0148d41a13f0ce7ec5a83f93984fe7aaf9c0e2d2 2011-06-28 * signal.c: Now, USE_TRAP_SIGMASK depend on HAVE_PTHREAD_SIGMASK. The code have already depended on pthread_sigmask since r27464.
b07b51f7fc03630e073ebd39006e0727e379ff71 2011-06-29 * thread.c (rb_thread_run): change RDoc. The old example is buggy and may cause deadlock. The patch is suggested by Heesob Park <phasis@gmail.com>. Thank you! [Bug #3606][ruby-core:31454]
b3ad7b9ea14bd28606e871a6be9a7dba6201cb3d 2011-06-29 * thread.c (rb_thread_wakeup): change RDoc sample code. The old example is buggy and may not display anything by a race. The patch is suggested by Heesob Parrk <phasis@gmail.com>. Thank you! [Bug #3606][ruby-core:31454]
3a9117011fdbcfd75e84cf5c0006bf357a20f959 2011-06-29 * thread.c (rb_thread_stop): change RDoc sample code. The old example is buggy and may cause deadlock. The patch is suggested by Heesob Park <phasis@gmail.com>. Thank you! [Bug #3606][ruby-core:31454]
ed0876f66d98c3c2a6247a626d1889eba5d7cb2f 2011-06-29 * thread.c (thread_s_pass): change RDoc description and remove a sample code. The actual implementaion never behave as explained by an example. It's a documentation bug.
5e15194561c45b4a123d0945b4de33f0bf2f2fe6 2011-06-29 * thread.c (rb_thread_schedule_rec): move interrupt_flag check to rb_thread_schedule(). And also rename to rb_thead_schedule_limits() and remove sched_depth argument. It's no longer called recursive. * thread.c (rb_thread_schedule): add to check interrupt_flag as above explained.
c90ff68d3271b9b7e981152f11db6ea5f4f6061d 2011-06-29 * thread.c (rb_thread_schedule_limits): minor optimization. eliminate machine context saving when running time is enough small.
6f1ce28d624007f1d7688865a782c3ba4ad376a0 2011-06-29 * thread.c (rb_threadptr_execute_interrupts_common): remove meaningless native_thread_yield(). It never close a race.
c05fd75befe5b6021e7926452d6813c3472f540f 2011-07-01 * thread.c (do_select): fix memory leak. Patch by Eric Wong. Thank you! [Bug #4953] [ruby-core:37702]
f44446c45d8875d5e5d6e556da8d1ff3d4452cab 2011-07-01
5a73c71dcf4b32c9c30f2cb68bac1d274839488f 2011-07-02 * thread_pthread.c (get_stack): add to a care of gurad page on Mac OS X. [Bug #1813] [ruby-core:24540] * signal.c (ruby_signal): SIGBUS use alternative stack too. * signal.c (sigbus): On Mac, thread stack overflow makes SIGBUS instead of SIGSEGV. thus, added stackoverflow check. * signal.c (default_handler): get rid of compilation warning. * signal.c (Init_signal): ditto.
70dd402cd8357097d1090972585fe23bc940ae41 2011-07-02 * thread_pthread.c (get_stack): pthread_attr_getstack() doesn't return stack start addres, but stack base address. Thus, we need to add stack size for getting stack start address. And, we don't have to decrease guard size twice. * thread_pthread.c (thread_start_func_1): don't use inaccurate stack start guess if native_thread_init_stack() can be used. [Bug #1813] [ruby-core:24540]
05117a4917152cb4f0dfa216c19314a902d57922 2011-07-03 add NEWS for O_DIRECT
1e8adda1fc192247a09c29c5806eb647e427028a 2011-07-04 comment fix.
e6d42f34e2cbd2c6a9133d4e972ceda58af43bc0 2011-07-04 * thread_pthread.c (get_stack): For NetBSD/FreeBSD, use pthread_attr_getstack() if possible. and, remove an assumption of stack growing direction.
a737fc8ace0d56354f618c6657d7042a7423e851 2011-07-06 * cont.c (fiber_machine_stack_alloc): remove unnecessary cast.
302fcb568d817bed348f554f1be28951ad924449 2011-07-06 * cont.c (fiber_machine_stack_alloc): use MAP_FAILED instead of -1.
c454ee6c9fdce8fb558fee0198aea307157ccb23 2011-07-06 * cont.c (fiber_machine_stack_alloc): use MAP_STACK if it's provided.
032e56fbd66d3dd1aa144a86f4a90b667dcff649 2011-07-06 * cont.c (fiber_machine_stack_alloc): fix mprotect misuse. A stack guard page should have PROT_NONE. * cont.c (fiber_initialize_machine_stack_context): th->machine_stack_maxsize shouldn't be included guard pages size. [Bug #4983][ruby-dev:44043]
0242fe816ca736a927d551f64e9ba5d2263fed32 2011-07-06 * cont.c (fiber_machine_stack_alloc): cleanup pointer arithmetic. "size/sizeof(VALUE)" is ugly and easy confusing. * cont.c (fiber_initialize_machine_stack_context): ditto.
68a0d412dd36b0caf1551089d8e6c64819854b6f 2011-07-07 add a comment why FreeBSD can't use MAP_STACK.
affa47ae4db231c37b9da85f66e2ed50182b86f5 2011-07-08 * thread_pthread.c (gvl_destroy): fix cond_t leak.
4ad2d02a49b0ec009599c3a2c8683bd45119792b 2011-07-08 * cont.c (FIBER_MACHINE_STACK_ALLOCATION_SIZE): Fiber stack size don't need to keep multiple number of sizeof(VALUE).
874127452910c0e8ef2f92923b00d0d318520f7f 2011-07-08 * thread.c (thread_unlock_all_locking_mutexes): rename to rb_threadptr_unlock_all_locking_mutexes and remove static. * vm_core.h: add rb_threadptr_unlock_all_locking_mutexes declaration. * thread.c (thread_start_func_2): adjust the above rename.
554a33d838a12e92d112d1bba6dac322d4d8160e 2011-07-08 * thread.c (rb_mutex_unlock_all): folded into rb_threadptr_unlock_all_locking_mutexes. * thread.c (rb_threadptr_unlock_all_locking_mutexes) ditto.
8739bb305daac9fdf134e5cf16d46b89619b484e 2011-07-08 add test for [ruby-dev:44049].
57da3d94aa649614958d5ceef989f3fd758c2bb7 2011-07-09 comment clarification. Only Leopard or earlier has ENOTSUPP issue if my kernel code reading is correct.
2acd61551bbc2f0bb00cbe5de74d731edd9f404b 2011-07-10 * signal.c (sigsegv): use abort() instead of exit() when nested SEGV was happen. Because unnested SEGV use abort().
04b182a4f8a2ab719e56b5d311422c46bb3a9ba6 2011-07-10 add a ticket number.
a119b9d146fea877acc1e9ba5df0702163ce917a 2011-07-10 * vm_core.h (typedef struct rb_vm_struct): create a new 'inhibit_thread_createion' field. * thread.c (rb_thread_terminate_all): set inhibit_thread_creation. * thread.c (thread_s_new): don't permit to create new thread if the VM is under destruction. Otherwise evil finalizer code can make SEGV. [Bug #4992][ruby-core:37858]
b9a13f4962333f08338b9839d1bd9151665ac8aa 2011-07-10 * thread_pthread.c (mutex_debug): use exit(EXIT_FAILURE) instad of exit(1). * thread_pthread.c (add_signal_thread_list): ditto. * thread.c (rb_thread_call_with_gvl): ditto. * util.c (Bug): ditto.
74b339e9385181844ee44d155ac59c8544e5016c 2011-07-10 * thread_pthread.c (rb_thread_create_timer_thread): removed rb_disable_interrupt()/rb_enable_interrupt(). * vm_core.h: ditto. * process.c (static void before_exec): ditto. * process.c (static void after_exec): ditto. [Bug #4765] [ruby-dev:43571]
abf99e80bf11fefd3a8dfdce879e0b6ee66cf136 2011-07-11 * process.c: removed signal() macro. It's no longer used.
89e2951bde9b7f4e04a8f068bfde6756aebf74af 2011-07-12 * signal.c (sig_trap): don't permit to change a signal handler which the interpreter reserved. * signal.c (reserved_signal_p): ditto. [Bug #2616] [ruby-core:27625]
c307523565e0a8815bfd0d7deeed8b9ae7796e16 2011-07-12 * signal.c (install_sighandler): fixed a race.
7fd8266516393afb6e9fdedd028e01daccc46c75 2011-07-12 small cleanup
55b3bfbc4cf890cb2ebd6b7853189edd442bdad9 2011-07-12 * signal.c (reserved_signal_p): reverted a part of r32523. chikanaga noticed trap(:CHLD) has some realworld usecase. * test/ruby/test_signal.rb (TestSignal#test_reserved_signal): ditto.
8cf76cae70190cd533d6f9a114281ea01da9cd90 2011-07-12 * NEWS: add a description of Signal.trap change.
6270ce85ed36d2844166facb937c2a9f63fb022f 2011-07-15 * time.c (time_dup): used rb_obj_class() instead of CLASS_OF(). The patch is made by Kazuki Tsujimoto. [Bug #5012] [ruby-dev:44071]
5975e9e008111d82885946b104fbe3f8fb800160 2011-07-22 * vm_insnhelper.c (vm_call_cfunc): added volatile for a workaround of cfp consistency error problem on OS X 10.7 (Lion). It's suspected llvm optimization bug. [Bug #5076] [ruby-dev:44185]
201179fc2ad9c31395addd929989bcce0fd43c07 2011-07-22 fixed bug ref
e39294cac530389e983a57c59b7daa8a2a77d2f6 2011-07-23 * configure.in: changed default optflags to -O0 if the compiler is llvm-gcc. It prevent ruby crash on OS X 10.7 (Lion).
1e52e560374c5cb5f435327f042ecff43697a2ad 2011-07-23 revert r32647. r32649 is better one.
18bc6c31a1a0831ae6dda645a13b2df13d761fe8 2011-07-30 * vm.c (th_init): preallocate alternative stack. NoMemoryError is better than rb_bug, of course. Patch by Eric Wong. [ruby-core:38572][ruby-core:38594].
ac397a9eeeb2b4a0716cea77ff2de1ace1203dd9 2011-07-30 * vm_core.h (ALT_STACK_SIZE): use MINSIGSTKSZ*2 instead of SIGSTKSZ*2.
cef42f3058b1b9e135f995801f4fe3e2aefee09f 2011-07-30 added ML ref
3abbda4f6ef4e2c314bb288b2a2b5cc0762ee652 2011-08-04 * error.c (report_bug): use a small message buffer instead of BUFSIZ. It is needed for avoiding nested SIGSEGV on Linux. Note: BUFSIZ is not proper buffer size. It's unrelated with maximum filename length. :-/ [Bug #5139] [ruby-dev:44315]
b6c6ce116e9bd09e20ac8fb3991439e0a1e45940 2011-08-07 * configure.in: add -Wunused-variable to default CFLAGS. Patch by Eric Wong. [Feature #5157] [ruby-core:38798]
9c760d0aad3fac021dcfa7d7c80609cd4178d9c9 2011-08-07 * ext/openssl/ossl_asn1.c (decode_eoc): remove unused variables. Patch by Eric Wong. [Feature #5157] [ruby-core:38798] * ext/openssl/ossl_asn1.c (ossl_asn1_decode): ditto. * ext/openssl/ossl_pkey.c (ossl_pkey_new_from_data): ditto.
f2f14f572d6fb92394955953352e6edb688cc986 2011-08-07 * time.c (rb_strftime_alloc): raise ERANGE if width is too large. Patch by Nobuyoshi Nakada. [Bug #4457] [ruby-dev:43285]
33c7e324e50ef3053449ddd0719e95e3182098b4 2011-08-12 * configure.in: Desbribe "no" configure option for site_ruby and vendor_ruby. Patch by Vit Ondruch. [Bug #5187][ruby-core:38921]
da6eec340eb13d0c50431a0661528a7fe300ffda 2011-08-12 fix r32943. It did break configure.in completely.
3596d49edfc61126cc2d3cd8634516d10fbcbe42 2011-08-30 * configure.in: fix a build failure on GNU Hurd. Patch by Samuel Thibault <sthibault at debian dot org>. Thank you! [Bug #5250] [ruby-core:39185]
0cebfad20ab9eb694eeb95f083635127cfbf35f9 2011-08-30 * thread.c (rb_thread_select): rewrite by using rb_thread_fd_select(). old one is EINTR unsafe. Patch by Eric Wong. [Bug #5229] [ruby-core:39102]
3ffa44622db2386727a8e11bb3aeb0385621f9fa 2011-08-30 * cont.c (fiber_entry): fix stack allocation failure on Debian GNU/kFreeBSD. Patch by Lucas Nussbaum <lucas at lucas-nussbaum dot net>. [Bug #5241] [ruby-core:39147]
2dd9d721ed6820a584654c82f4ae1d6331f78a9e 2011-08-30 * lib/thread.rb (Queue#pop): fix a race against Thread.wakeup. Patch by Masaki Matsushita <glass.saga at gmail dot com> [Bug #5195] [ruby-dev:44400]
2c9375ba69c5bfba56e8cc1ab4ac7c2ff01d24f3 2011-09-12 * thread.c (rb_thread_select): fix to ignore an argument modification of rb_thread_fd_select(). based on a patch by Eric Wong. [Bug #5306] [ruby-core:39435] * thread.c (rb_fd_rcopy): New. for reverse fd copy.
d24e1dac2b66afc3265065209686970481fb5367 2011-09-14 * thread.c (rb_fd_rcopy): added an argument guard. Patch by NAKAMURA Usaku. [Bug #5306] [ruby-core:39435]
d4db53a0e00f06e44b583156359258aa213fda52 2011-09-19 * test/-ext-/old_thread_select/test_old_thread_select.rb: select() with timeout may return early in old Linux kernels with 250 Hz tickrate and no dynticks, so skip everything older than 2.6.32 (which has long term support). And, Make the timing assertions consistently use assert_operator with timing difference in error message Patch by Eric Wong. [Bug #5335] [ruby-core:39618]
6823334c214d9b83ea71de67ab6c5ce1c4fbdfab 2011-09-26 * configure.in: remove a code for human68k. it's no longer supported since r19677.
20ae79b0c26e2b9ee9441728353f27c571507a4d 2011-09-26 * include/ruby/defines.h: remove NextStep, OpenStep, Rhapsody support. Last activity of their OSs are 7 years ago. * configure.in: ditto. * dir.c: ditto. * ext/tk/extconf.rb: ditto.
36a1e76053e0f80d9c8239c134a0bd3574eb087d 2011-09-26 * configure.in: remove DJGPP support. It's not longer supported since ruby 1.9.0.
2cc5eeaf6c377a7b55e2bbaf6661929c17139aa6 2011-09-27 * thread.c (do_select): remove cygwin specific hack. It's layer violation and too large hack. * thread.c (cmp_tv, subtract_tv): removed.
1bdf1a5c6f53fa834c10704bd9b60f6c0c375328 2011-09-27 * thread_pthread.c: make native_fd_select(). * thread.c (do_select): remove #ifdef _WIN32. Instead, use native_fd_select() always.
123645aab61c07fb3c64e3f2ea771cb74f53ff64 2011-10-13 * atomic.h(ATOMIC_SET): add cast to void to prevent misuse. [ruby-dev:44596] [Bug #5439]
871c6923dc32630e93f3483d9db1e547ac62a478 2011-11-09 * thread_pthread.c (gvl_yield): don't prevent concurrent sched_yield(). [Bug #5130] [ruby-core:38647]
0d746627af624e1fca683b726ee2de86127fa16c 2011-11-11 * io.c (pipe_open): Remove fflush(stdin). it's no effect. Pointed out by Ikegami Daisuke <ikegami.da@gmail.com>. Thank you.
9d16ad639f49513b720e3afa6809eb98c0a6d609 2011-11-12 * io.c (+ioctl_narg_len) new helper function. * io.c (rb_io_ctl): don't use ioctl specific length check if caller is fcntl.
eec252e2e520ed1297df6ca8deb089f29e384e2c 2011-11-12 * io.c (+setup_narg): factor out length calculation logic. * io.c (rb_io_ctl): ditto.
f13d10a0afeec1c6e66b4717fd9f12faeda515ff 2011-11-12 * io.c (setup_narg): fix off by one bug.
fc7bb927a24ffe60c89f70a00bcc9bbab73ecff6 2011-11-12 * io.c (struct io_cntl_arg): remove io_p member. * io.c (nogvl_fcntl, do_fcntl, rb_fcntl): separated from ioctl functions. * io.c (nogvl_io_cntl): remove fcntl depended logic. * io.c (io_cntl): ditto. * io.c (rb_io_ctl): ditto. * io.c (rb_io_ioctl): ditto.
7e2f0491ce16d7f15660b0b01be9f23526aa07b9 2011-11-12 * io.c (ioctl_req_t): Type of req argument of ioctl() depend on platform. Moreover almost all linux ioctl can't be represented by 32bit integer (i.e. MSB is 1). We need wrap ioctl argument type. [Bug #5429] [ruby-dev:44589] * io.c (struct ioctl_arg): ditto. * io.c (rb_ioctl): ditto. * test/ruby/test_io.rb (test_ioctl_linux): add a testcase for ioctl
b3027d5929945a7d08b89af3bb514c9b687b41d0 2011-11-12 * io.c (rb_ioctl): don't expose our sanity check value to ruby script. It may change string value meaning if the value is string. (e.g. MacOS X has F_GETPATH ioctl) * io.c (rb_fcntl): ditto.
791f5449c170467ebe7f43d06047ec3d61d141eb 2011-11-12 * io.c (ioctl_narg_len): Linux doesn't have IOCPARM_LEN macro, but has _IOC_SIZE. support it.
f2708ce30f0bf7c7a0ace010a7f8461de1e41f8b 2011-11-12 * test/ruby/test_io.rb (test_fcntl_lock_freebsd): add a testcase of fcntl lock for freebsd.
632652a2442d364d38b72cc3bf7ebc4cc2fb9b12 2011-11-12 * test/ruby/test_io.rb (test_fcntl_dupfd): add another fcntl test.
33817fbc29943b5b26254626d8721a0ce391b1cf 2011-11-12 * io.c (fcntl_narg_len): introduce narg calculation for fcntl instead of hard coded 256. * io.c (setup_narg): ditto.
5c29d116c2d1dac5c6953bb60a3bda35df51d713 2011-11-12 * bootstraptest/runner.rb: don't suppress SIGINT. [Feature #5612] [ruby-dev:44856]
3aaf92b5a119885aba0b1c41946b498426880399 2011-11-12 * test/ruby/test_io.rb (test_fcntl_dupfd): skip if Fcntl::DUPFD is not defined. Pointed out by CHIKANAGA Tomoyuki. Thanks.
d3fc4ae7cb4ace087eef327bd19fa5fe957c745a 2011-11-12 * test/webrick/test_cgi.rb (class TestWEBrickCGI): respect RbConfig::CONFIG["LIBPATHENV"]. [Bug #5135] [ruby-core:38653] * test/webrick/test_filehandler.rb (class WEBrick): ditto.
74a13c76349b3b463514f60beb9f02c2ba301ad6 2011-11-14 * numeric.c (check_uint): fix off-by-one bug of NUM2UINT. * bignum.c (rb_big2ulong): fix off-by-one bug of NUM2ULONG.
11137bed53cc5a3431e2db80e27d31629cca4f0e 2011-11-14 * test/-ext-/num2int/test_num2int.rb (class TestNum2int): add FIXNUM tests.
d3437b7c1a496143c2bff2698082af143f5e1dc0 2011-11-14 * bignum.c (rb_big2ull): fix off-by-twice bug of NUM2ULL. * test/-ext-/num2int/test_num2int.rb (class TestNum2int): fix a testcase too.
b2a2ba119104b0ff2b6c20611d76de924596ca5b 2011-11-14 * include/ruby/ruby.h: add NUM2SHORT(), NUM2USHORT() macros. * numeric.c: ditto.
9debadd9489f76f7f211bf11027dbea907c19252 2011-11-14 * include/ruby/ruby.h: add #ifdef comment.
302220a8a53cb09713d2cfb05ac2decfc098030b 2011-11-14 * numeric.c (rb_fix2ushort): fix typo. use num rb_num2ushort() instead of num2uint().
ed681d3a82591db3f4dd6e77c568f98b7d1d6216 2011-11-14 * bignum.c (rb_big2ull): fix 32bit platform breakage. we must not assume sizeof(VALUE) == sizeof(LONG_LONG). * test/-ext-/num2int/test_num2int.rb (class TestNum2int): fix false assumption on 32bit platform.
61fe9d5c4132ece0762cc2e6ab05ac49951ae82e 2011-11-14 added a description of NUM2SHORT() to NEWS
d020fb15254c13e458bb9603479edbb7b3fb347f 2011-11-15 * test/ruby/test_io.rb (TestIO#test_fcntl_dupfd): fix OpenBSD test failure. [ruby-dev:44872]
9cdd62bd19f7872bab25912ed0485c098ea141d2 2011-11-15 * include/ruby/ruby.h: get rid of gcc specific rb_long2int(), NUM2LONG(), NUM2INT(), NUM2SHORT(), NUM2LL(), INT2NUM(), UINT2NUM(), LONG2NUM(), ULONG2NUM() and NUM2CHR() implementation. Because 1) They don't make any better code at all. 2) Inline function have a better debugger supoort. 3) If they become to make better code in the future, they might make cross compiler ABI compatibility issue.
fd5a7ee75cb372aaf15c8a3c95517ce228b94f04 2011-11-15 * include/ruby/ruby.h(NUM2LONG, NUM2INT, NUM2SHORT, NUM2LL, INT2NUM, UINT2NUM, LONG2NUM, ULONG2NUM, NUM2CHR): wrap by macros.
d7166624bf70c2fe9f0b067065b9fd490de16d20 2011-11-24 Merge branch 'fsync-nogvl' into trunk
5817762f2bce7b4875075f61861d58e0410e2dad 2011-11-24 * configure.in: add -Wall always.
746aa6f74b55b1783242b4f074200105dd7d90bc 2011-11-24 * configure.in: remove [read count field in FILE] check. ruby 1.9 or later doesn't use stdio at all.
450c2094be9ef5ddf0f5f91f1744e03dac93af31 2011-11-24 * configure.in: remove [read buffer ptr field in FILE structures] check. ruby 1.9 or later doesn't use stdio at all.
b418bc9be47ac63da559cb4bbdf705d83d99cde2 2011-11-24 * lib/mkmf.rb: get rid of warnings of mkmf.rb if -Wmissing-declarations and/or -Wold-style-definition warnings if specified. Patch by Nikolai Weibull. Thank you! [Bug #5459] [ruby-core:40200]
d0e615e25f839d32507bcccb593d5fc3c28db28c 2011-11-24 * configure.in: add -D_FORTIFY_SOURCE=2. It provide some compile time and runtime check for security.
b2eae7891b8a808f7f737833fbaf84b0d467377c 2011-11-24 * configure.in: add -fstack-protector. It help to protect us from stack smashing attack.
98975ba9dc6781083275e26aac4fbe29d689a7f6 2011-11-24 * configure.in: turn on PIE if --enable-shared is not specified.
0996ae361a62db5094eb3d8cc59c7d002170c285 2011-11-25 * Makefile.in (EXTLDFLAGS): export it. * configure.in: add --no-undefined if --enable-shared is specified. Gentoo enabled this option long time. Also, export EXTLDFALGS.
aa23f6b9fdecbf3be3e21b0f6b40e2b22f125090 2011-11-25 * io.c (ioctl_narg_len, linux_iocparm_len): reinstantiate linux specific narg length calculation. * test/ruby/test_io.rb (test_ioctl_linux2): add new test for old and unstructured ioctl.
0e28532a52fd7f60da1ad47453a43edfde1e588f 2011-11-27 * configure.in: workaround to avoid MacOS X build error. Maybe autoconf 2.61 is slightly buggy. [ruby-core:41316]
ed78271c49bb405b202322ee39a4db919e2fdb3d 2011-11-27 * configure.in: revert r33832 and r33833. [ruby-core:41313] [Bug #5674]
a4d38daecef8729cd1b61de6bc02cfbfd68f18fe 2011-11-27 * configure.in: add -fstack-protector into XLDFLAGS as well as XCFLAGS if stack-protector is used.
8cee31214df54281a93c8fe135a5fd36fd7e288a 2011-11-27 * io.c (rb_write_error2): get rid of warning on linux. fwrite of glibc is tagged __attribute__ ((__warn_unused_result__)) if _FORTIFY_SOURCE != 0. * vm_dump.c (rb_vm_bugreport): ditto.
543820885ee691d70e0d5c36246bdfdf8a1eddd3 2011-11-27 * configure.in: added -fno-strict-overflow. it suppress annoying -Wstrict-overflow warning.
0d0bd1642acc24c104e7fbdce193deb165feecf8 2011-11-30 * configure.in: add sys/prctl.h test. * thread_pthread.c (thread_timer): call prctl(PR_SET_NAME) to change thread name. It may help to debug.
b60a01db6a18e8e196f5277b0f9bf8684377471e 2012-01-03 * tool/merger.rb (#version_up): version.h date should be Japanese locale date.
c38dec6d3b1c775b93289c4f3086a87787d4c959 2012-01-03 * tool/merger.rb: allow r0123 style revision number.
e3b07320500d117df3b56250bcf51bd30eeaa3cb 2012-01-07 * gc.c: get rid of implicit narrowing conversion.
899bf4981a17846ac205383e47fa0cf8428dacd0 2012-05-18 * ext/extmk.rb: Show a message when extconf.rb raised an exception. * ext/openssl/extconf.rb: Use exception raising instead of message and/or abort. We want to display error message to console _and_ logging into mkmf.log.
4e9a880916bd99057a2af4ed022fdcb87de4d645 2012-05-18 * ext/openssl/extconf.rb: Clarify a message when hit Apple OpenSSL issue.
933b5ced230b8b02c03133c55d65b23cbce22cb3 2012-05-18 * ext/ripper/extconf.rb: Use an exception instead of bare Logging.message.
522627d5cc3b435b2f510057b24c75ad1dd26d7d 2012-05-18 * ext/readline/extconf.rb: Use an exception instead of bare exit.
6074032ae6afea7dd2cd12b6333ae01bab2c3159 2012-05-18 * ext/fiddle/extconf.rb: Use an exception instaed of bare abort.
2e4645ca166e3c3fab5f85159fd0b06e868a45fa 2012-05-18 * ext/psych/extconf.rb: Use an exception instaed of bare abort.
69305da74d9d6f3c0da668b9a95d872eee27e527 2012-05-18 * ext/zlib/extconf.rb: Use an exception instaed of bare puts.
5c56769118deac7f79030a87bb272bd82aeba2e4 2012-05-18 * cont.c: bump up fiber machine stack size when running on 64bit arch. [Bug #6344] [ruby-dev:45554]
1a2ef6bae3c0db71adbbe9e871ca87a87b4d647c 2012-05-18 * thread_pthread.c (rb_thread_create_timer_thread): Added error check when failing fcntl(). [Bug #6147] [ruby-dev:45364]
469cc485423c8abc268ff7cdd8c52e5cb7675f26 2012-05-18 decrease fiber stack size. 1MB is too large for windows. [Bug #6344] [ruby-dev:45554]
54872dd7b3d33110812fe5ac8187baed5d4a164f 2012-05-18 * ext/openssl/extconf.rb: Use Logging::message instead of message. * ext/zlib/extconf.rb: ditto.
2fe6bd9a36353bd756b49195d543c74e7f05f765 2012-06-19 * array.c (ary_reverse): use ansi style declaration.
7339e678f4a862071373d3bf9e17107b4302a3ad 2012-06-19 * include/ruby/missing.h: include math.h before checking INFINITY and NAN. Otherwise, strange macro redefinition will occur.
9021777282b038d1d83e758dcfca05cebc42d2b9 2012-06-19 * dir.c (dir_initialize): get rid of "unused return: argc = rb_scan_args()" warning.
a57cbd7b27b3d254c71cb3b175e44e95550ef28d 2012-06-19 * random.c (rb_random_int32): get rid of "warning: constant 0x100000000 is so big it is long" warning.
6d69c3b0ce9dfdcf32383015a3514fe1a4624e44 2012-06-19 * ruby.c (rb_f_sub): use ansi style declaration. * ruby.c (rb_f_gsub): ditto. * ruby.c (rb_f_chomp): ditto.
51c44ab1ec742018525391a37386fe8f8bc813bb 2012-06-19 * time.c (init_leap_second_info): fix non-ANSI function declaration.
1ebe152edecb98f9f920dfc8cdc757883b8043ef 2012-06-24 * configure.in (for stack end address): remove human68k specific check. It is no longer supported.
3e1d8aab1731e671b8daf266bbdb99196ff95421 2012-07-09 * dln.c: Simplify and make consistent an ifdef for Mac OS X. * ext/socket/rubysocket.h: ditto. * ext/tk/stubs.c: ditto. * io.c: ditto. * process.c: ditto. * signal.c: ditto. * vm_dump.c: ditto.
428a5a9cd95b92b0a5570cb1154191c23453ebd4 2012-07-09 * include/ruby/ruby.h: Removed RUBY_GLOBAL_SETUP complely. It is no meaning definition since r24894. * main.c: ditto. * nacl/pepper_main.c: ditto.
0501be6f83945e11c975c5e482dd945ef373d3da 2012-07-18 * include/ruby/intern.h (rb_num_zerodiv): Added NORETURN. Patched by Xi Wang. [Bug #6736]
7d4e7fe8341d6343cbd9650c6b41cf33c00e3a50 2012-07-18 * bignum.c: Added #include <strings.h> for ffs(). Patch by Perry Smith. Thank you. [Bug #6748]
f207f7793da422b0a5fec771c5413fb9bd5b2bc0 2012-08-09 * test/openssl/test_config.rb (OpenSSL#test_constants): skip this test if platform is Mac OS X or Windows. [Bug #6830]
10c14095de5dd4114d8cf536c5bd4cea63370a97 2012-09-09 * thread.c (rb_mutex_lock): stop multiple threads use pthread_cond_timedwait() concurrently. [Bug #6278] [ruby-core:44275]
3df2fc2da8ee34ad0b923e42b3fcdc8daf391370 2012-09-09 * io.c (io_bufread): removed unnecessary rb_thread_wait_fd(). Patch by Eric Wong. [Bug #6629] [ruby-core:45789] * io.c (rb_io_sysread): ditto. * io.c (copy_stream_fallback_body): ditto.
4b58f39dedfb3491aba7e39e5c2dba0876437cc4 2012-09-09 * io.c (nogvl_close, maygvl_close, nogvl_fclose, maygvl_fclose): new functions. * io.c (fptr_finalize): release GVL if possible. Patched by Eric Wong. [Feature #4570] [ruby-core:35711]
fde6de9fc7417e5bafc724f85d8d8b0b050430f1 2012-09-09 * test/ruby/test_io.rb (test_advise_pipe): new test to check io.advise() against anonymous io object don't make crash. made by Eric Wong. [Bug #6081] [ruby-core:42880]
149176225ac37574530f52e61e2f1dc1b8905e24 2012-09-09 * lib/sync.rb (Sync_m): Removed RCS_ID.
5dbbee86b616424ee9800488a381b02f9e7c65b3 2012-09-09 * include/ruby/intern.h (rb_thread_blocking_region): Added a comment of recommended alternative way.
2248a8ce643509577dd29988f5ea1e662f4aaa65 2012-09-09 * lib/sync.rb (Sync_m#sync_lock): Fixed wakeup/raise unsafe code. Patched by Masaki Matsushita. [Bug #5355] [ruby-dev:44521]
7198053a49d39a5c80551fc9147b9c0ab21e75a2 2012-09-09 * lib/thread.rb (Queue#pop): Fixed double registration issue when mutex.sleep is interrupted. [Bug #5258] [ruby-dev:44448] * lib/thread.rb (SizedQueue#push): ditto.
4c10b36467ba7cbb59128dabd437ef3931c7d0e4 2012-09-09 * io.c (rb_io_close): notify fd close before releasing gvl. * io.c (fptr_finalize): modify fptr->mode before releasing gvl. remove unnecessary rb_thread_fd_close(). [Feature #4570] [ruby-core:35711]
946f7fc7888f61da879c660b43e2c574aaf713eb 2012-09-09 * io.c (nogvl_close, maygvl_close, nogvl_fclose, maygvl_fclose): suppress integer <-> pointer cast warnings. [Feature #4570] [ruby-core:35711]
84c77c15205d57a3d50d8b29bb6d2af2ff44de77 2012-09-09 * ext/socket/basicsocket.c (rsock_bsock_send): avoid unnecessary select() calls before doing I/O Patch by Eric Wong. [Feature #4538] [ruby-core:35586] * ext/socket/init.c (rsock_s_recvfrom): ditto. * ext/socket/init.c (rsock_s_accept): ditto. * ext/socket/udpsocket.c (udp_send): ditto. * io.c (io_fflush): ditto. * io.c (io_binwrite): ditto. * io.c (rb_io_syswrite): ditto.
187d2bc1d6e6f3f18a443614406598ed6fc0ef0f 2012-09-20 * thread_pthread.c (native_cond_initialize): clean up #ifdef condition.
d9dfe2e514631be9ae243de8f3b6f52e35ac82e0 2012-09-20 * thread_pthread.c (native_cond_initialize): destroy condattr after using it. Patch by Stanislav Sedov. Thank you. [Bug #7041] [ruby-core:47619]
9da62b63d9377299db5240e007ccf4a1644e4233 2012-11-05 * thread_pthread.c (native_thread_init, native_thread_destroy): removed HAVE_PTHREAD_CONDATTR_INIT check because this silly #ifdef makes use-uninitialized-var issue and (2) native_cond_initialize() already have a right platform and caller don't need any additional care. [Bug #6825]
4e73323a6007d0a554b52440f316e3c4c71eae26 2012-11-05 * thread_pthread.c (rb_reserved_fd_p): fix typo in macro check that prevented the ifdef ever being true. [Bug #7281] [ruby-core:48940]
58282ed667d720816366c9e45c3560904196d078 2012-11-19 * signal.c (sig_signame): implements Signal.signame method [Feature #5613] * test/ruby/test_signal.rb (test_signame): adds test for above * NEWS: add an item about above
6c56dae4b23c5c50e351758538141ca26b9aba40 2012-11-19 * prelude.rb: Moved Mutex#synchronize to * thread.c (rb_mutex_synchronize_m): here. [Bug #4266]
75df3aae0f8fdb09ed377102952e78e3dc282516 2012-11-19 * signal.c (rb_disable_interrupt, rb_enable_interrupt): removed USE_TRAP_MASK. * signal.c (trap_arg, trap_ensure): removed. * signal.c (trap, sig_trap): removed pointless signal disabling. We don't need it bacause we no longer run trap hander on signal hander context.
562cb0ae5997006441221710d531ac166546319d 2012-11-19 * signal.c (install_sighandler): added comments why we need rb_disable_interrupt().
6d9f7672dd0560478c0031953a3cc8bd5cd05dd9 2012-11-19 * signal.c (rb_get_next_signal): removed pointless signal disabling. pthread_sigmask() only changes current thread mask.
7643e4604bc5a661d10c7940b948ae6c66694f09 2012-11-19 * thread.c (rb_threadptr_execute_interrupts) removed. * thread.c (rb_threadptr_execute_interrupts_common) renamed to rb_threadptr_execute_interrupts. I.e. unified rb_threadptr_execute_interrupts and rb_threadptr_execute_interrupts_common. * thread.c (rb_thread_schedule, rb_thread_execute_interrupts) s/_common//.
0a2da327f46ec0e129de52f668d00f04f2529b7e 2012-11-19 * thread.c (rb_thread_blocking_region_end): replaced GET_THREAD() with ruby_thread_from_native(). We don't have GVL here.
212150c2e148278b1a300bd823f0a3d4753cd37d 2012-11-19 * thread.c, vm_core.h: big rename th to cur_th when works only th is current thread.
4b25e0ceca487725f4579d21271546e2bd0d3563 2012-11-19 * thread.c (rb_threadptr_async_errinfo_active_p): added a small comment.
57ee8128514f9e904325436099088703ee5938e5 2012-11-19 * thread.c (rb_thread_s_check_interrupt): removed redundant GET_THREAD().
b74e1b21dbb15d67945e36153368bb4aa78dcd68 2012-11-20 revert r37730
c8a3b2ba8bb18752c4d0aee6483f516e827f4bc9 2012-11-20 * io.c (Init_IO): removed all rb_file_const() into file.c. * file.c (Init_File): replace with rb_file_const() with rb_define_const() because RDoc don't care rb_file_const. [Bug #5530]
4d3f768b41b0c7f2e8ef166b9c363e63e92e59ed 2012-11-20 * test/ruby/test_signal.rb (TestSignal#test_signame): fix windows test failure. Process.kill on windows can't send a signal to another process.
134d33b0613093d338870a53328f156bcbf50f06 2012-11-20 fix typo
b317bf06a4d8200b43d46685e251e993241e0765 2012-11-20 * file.c (Init_File): null device definition uses rb_define_const instead of rb_file_const.
82e7d00344a185ea46a72ed1352d25d99056add8 2012-11-22 * vm.c: Don't define vm_collect_usage_operand() and static void vm_collect_usage_insn() when disabling VM_COLLECT_USAGE_DETAILS. (refix r37796)
4d7e8b7305c392646f68a785df8f4019ec1e69c9 2012-11-22 * Makefile.in: run preprocessor when making probe.h * probes.d: define probe insn and insn__operand only when VM_COLLECT_USAGE_DETAILS is 1. [Bug #7370]
86541e02c18e6ccdd0c0c632da06120a04a9ef11 2012-11-22 * tool/gen_dummy_probes.rb: don't change #include, #if and #endif lines. [Bug #7370]
84a57715e1b20e4d06f90139687d8131705ffc18 2012-11-22 * Makefile.in (.dmyh.h): removed $(VPATH). GNU make don't recognize suffix rule with VPATH.
82b33551a4ead2fa13120751242c493e2084cada 2012-11-24 * thread.c (thread_create_core): don't use th->thread_id before initialized.
5611df706e5685fbe03412588d23ee31f13c671d 2012-11-24 * process.c (proc_getsid): adds new method for getting session id. Contributed from fumiyas (Fumiyasu SATOH). Thank you! [Feature #6757] [ruby-dev:45977] * configure.in: adds getsid check. * test/ruby/test_process.rb (TestProcess#test_setsid): new test for the above. * NEWS: news for the above.
769781a0990a9d44f45f235086d8474a80fcc27d 2012-11-26 * test/ruby/test_process.rb (test_setsid): added a few wait for preventing that Process.getsid(io.pid) makes Errno::ESRCH. (refix r37844)
6f3ad9bd3d1c0fd53539d55743b445d67360e911 2012-11-26 * bignum.c (big_div_struct): added volatile to 'stop' member. Otherwise, "if (bds->stop)" check in bigdivrem1 don't read memory and ignore interrupt. * bignum.c (bigdivrem, rb_big_stop): ditto.
cb0a4c0f6231639dab11d50b21614cbea019e5d4 2012-11-26 * bignum.c (bigdivrem): restart calculation when bigdivrem1 was interrupted by signal. Otherwise, ruby script may see a garbage value.
f150ed1532e727c409cc018a98e1362a8c71242c 2012-11-26 * vm_core.h (rb_thread_struct): added 'in_trap' member for marking running trap handler. * signal.c (signal_exec): turn on in_trap when running trap. * thread.c (Init_Thread, thread_create_core): initialize in_trap when creating new threads. * thread.c (thread_join_m): raise ThreadError when running trap handler.Bug [#6416][ruby-core:44956] * test/ruby/test_thread.rb (test_thread_join_in_trap): new test for the above.
6746eecaf132cd2b4f4fed85e9bb66c4f655eb2e 2012-11-26 * string.c (rb_str_enumerate_chars, rb_str_enumerate_codepoints) (rb_str_enumerate_lines): suppress "may be used uninitialized in this function" warning.
7087153156a32373960b8edbe938f3095be55389 2012-11-26 split trap interrupt and async interrupt
458796d4f1dfef954f570c9b8355088b88d8f895 2012-11-26 * signal.c (signal_exec): suppress "warning: variable 'signum' might be clobbered by 'longjmp' or 'vfork'" warning.
521af835583fba7793650c2a9203c43f31800642 2012-11-26 * signal.c (signal_exec): add volatile to make sure setjmp safe.
6190bb4d8ad7a07ddb1da8fc687b20612743a34a 2012-11-26 * ruby_atomic.h (ATOMIC_CAS): new macro for compare-and-exchange.
58543f00b6386b5631ffc6d8f029be149d632457 2012-11-26 * thread.c (thread_join_m): use th->interrupt_mask instead of th->in_trap.
66e2e6ee697a322bb7521d7ecaff6be3fb69f4dd 2012-11-26 * vm_core.h (RUBY_VM_SET_TIMER_INTERRUPT, RUBY_VM_SET_INTERRUPT) (RUBY_VM_SET_FINALIZER_INTERRUPT, RUBY_VM_SET_TRAP_INTERRUPT) (RUBY_VM_INTERRUPTED): use enum symbol instead of immediate value. * thread.c (thread_join_m, rb_threadptr_execute_interrupts): ditto. * signal.c (signal_exec): ditto.
39d38ff82f3a6158d2adc5883b86691a424ed1c0 2012-11-26 * thread.c (rb_thread_terminate_all): use native_sleep() instead of rb_thread_schedule(). Otherwise, it consume 100% cpu meaninglessly. [Bug #5368] [ruby-dev:44546] * thread.c (thread_start_func_2): last sub-thread wakes up main thread.
23d5c282b4df78b5f6b8684c0d9f5aece7dd3f70 2012-11-26 * NEWS: update for Thread#join incompatible change.
5b238e8dc7fd55622c4e0a382b9783648ba412f5 2012-11-26 * thread.c (rb_mutex_trylock, rb_mutex_unlock, mutex_sleep): raises ThreadError if called from trap handler as Thread#join. * NEWS: news fot the above.
253938067a37d7ba9751ec1afbbd6033f886cab4 2012-11-26 * thread.c (rb_thread_terminate_all): add RUBY_VM_CHECK_INTS_BLOCKING(). Otherwise the loop in this function behave as busy loop because native_sleep() return immediately when RUBY_VM_INTERRUPTED() is true.
a916278900dcd0db090db11d50e082e941968b9f 2012-11-26 * thread.c (rb_thread_terminate_all): broadcast eTerminateSignal again when Ctrl-C was pressed. [Feature #1952] [ruby-dev:39107]
8079f8a6f25bd1e6ef9fa0bff569a850c31c6fb3 2012-11-27 * thread.c (thread_join): raises ThreadError if target thread is a current thread. * test/ruby/test_thread.rb (test_thread_join_current): test for the above. * NEWS: news for the above.
b1a18cf49bc475e6c563f55b23fa36594d70f4bc 2012-11-27 * thread.c (thread_join): raises ThreadError if target therad is a main thread. * test/ruby/test_thread.rb (test_thread_join_main_thread): test for the above. * NEWS: news for the above.
863e08732624822bac9fe546dc13ef2b6d23e542 2012-11-27 * thread.c (rb_thread_terminate_all): suppress a warning.
9ace5c122e9ad5203e98590adfc3896464b67ec1 2012-11-27 * eval.c (ruby_cleanup): set thread status to THREAD_KILLED for preventing thr.raise. * test/ruby/test_thread.rb (test_main_thread_status_at_exit): test for the above.
694c77633c80a106a1e526870ad5076bfac30640 2012-11-28 * thread.c (thread_join): A trap handler check was moved from thread_join_m because Thread#value should be raised an exception too. * thread.c (thread_join_m): remove trap handler check. * test/ruby/test_thread.rb (test_thread_join_in_trap): add test for thread#value. * NEWS: documentation fix for the above.
8111b32d685278de68e9eefe273524cf1266cff0 2012-11-28 * thread.c (thread_s_new): uses main_thread->status instead of th->inhibit_thread_creation for preventing thread creation. * vm_core.h (rb_vm_struct): remove inhibit_thread_creation field. * thread.c (rb_thread_terminate_all): ditto.
835d24f637e7616787e369ae4bf7edd0f8302a3d 2012-11-28 * thread.c (rb_mutex_lock): moved trap context check from rb_mutex_trylock because try_lock have no change to make a deadlock. * thread.c (rb_mutex_trylock): ditto. * NEWS: news for the above.
e6ef313a498e5bff7a54944722abff33ef966166 2012-11-28 * io.c (FMODE_SYNCWRITE): removed unused macro.
b8a1e36201d3965b3f7b87fe1fa1cf55e00ce045 2012-11-28 * thread.c (struct rb_mutex_struct): add allow_trap field. * internal.h (rb_mutex_allow_trap): added. * thread.c (rb_mutex_lock, rb_mutex_unlock): check mutex->allow_trap. * thread.c (mutex_sleep): remove trap check because it uses rb_mutex_lock and rb_mutex_unlock internally. * thread.c (rb_mutex_allow_trap): new helper function for the above.
9cbf473287b6e0fca089c30db1cd276b3c2d477c 2012-11-28 * vm_core.h (enum rb_thread_status): remove THREAD_TO_KILL * vm_core.h (struct rb_thread_struct): add to_kill field * thread.c (terminate_i): convert THREAD_TO_KILL to to_kill. * thread.c (rb_threadptr_to_kill): ditto. * thread.c (rb_thread_kill): ditto. * thread.c (rb_thread_wakeup_alive): ditto. * thread.c (thread_list_i): ditto. * thread.c (static const char): ditto. * thread.c (thread_status_name): ditto. * thread.c (rb_thread_status): ditto. * thread.c (rb_thread_inspect): ditto. * vm_backtrace.c (thread_backtrace_to_ary): ditto.
1d207fcff0e50ecdffb35b77bd10d2a3873cc8c3 2012-11-28 * thread.c (thread_start_func_2): remove unused code. security level is checked before rb_eSecurityError raises.
fdda95ed8c17ea179c1778d3ad475fcbaff9030a 2012-11-28 * thread.c (thread_start_func_2): remove unused code. errinfo = th->errinfo; and errinfo = rb_errinfo(); are the same.
5e606aee2ff1b54c174cb716762c3e4f59007699 2012-11-28 * thread.c (thread_start_func_2): remove unused code. this function never be used for main thread.
b76b6b5c98133da0e3d23318ab1dcc86c3f0074f 2012-11-28 * thread.c (thread_start_func_2): small cleanups.
989c529c8999a03faf8c17c5b3068e73e632be6d 2012-11-29 * thread.c (thread_start_func_2): remove unused code. When th->safe_level == 4, th->errinfo never be thrown. So, to create new exception makes no sense.
c058d821f84287dd8812b6cac3edf6cd6f1bc364 2012-11-29 Revert r37956: thread.c (thread_start_func_2): small cleanups.
2e72d1c3236c8ec1c0cb8f35c1dd6b64fde02fce 2012-11-30 revert r35486 (add rb_thread_t#yeiling field). because it doesn't help to close a race.
15b25acd2541ae37f4f874b50128d34d8b079457 2012-11-30 * vm_core.h (rb_vm_struct): add thread_destruct_lock field. * thread.c (Init_Thread): ditto. * thread.c (rb_vm_gvl_destroy): ditto.
6ca32179e6d04cc6b22c4c2bbb55d3cc34127b3b 2012-11-30 * lib/thread.rb (ConditionVariable#broadcast): protect from async interrupt by using Thread.async_interrupt_timing. * lib/thread.rb (ConditionVariable#signal): ditto. * lib/thread.rb (ConditionVariable#wait): ditto.
279cd29b1b544cba09f5839d4abce81ab322d2c6 2012-11-30 * thread.c (rb_threadptr_interrupt_mask): add argument check. * thread.c (async_interrupt_timing_arg_check_i): helper function for the above. * test/ruby/test_thread.rb (test_async_interrupt_timing_invalid_argument): test for the above.
a113ab64b23c430a944e639d0535529707540790 2012-11-30 * thread.c (rb_threadptr_interrupt_mask, async_interrupt_timing_func): merge into them into rb_thread_s_async_interrupt_timing. * thread.c (rb_thread_s_async_interrupt_timing): ditto.
3357d88ada8ad44ecf267f5f2a1fb1df4e5cb8f4 2012-11-30 * lib/thread.rb (SizedQueue#pop): rewrite by using ConditionVariable. * lib/thread.rb (SizedQueue#push): ditto. * lib/thread.rb (SizedQueue#max): ditto. * lib/thread.rb (Queue#pop): ditto. * lib/thread.rb (Queue#push): ditto.
028ca79f986448221361bf2e9c16ec9c3e3b734b 2012-11-30 * lib/thread.rb (ConditionVariable#broadcast): s/RuntimeError/StandardError/ * lib/thread.rb (ConditionVariable#signal): ditto.
c62ec3ae1aa5ac3b3f7f2756763a41c5703c06ca 2012-11-30 * lib/sync.rb (Sync_m#sync_synchronize): add Thread.async_interrupt_timing for protecting from async interrupt. * lib/sync.rb (Sync_m#sync_lock): ditto.
1f1db611b9860291454f38459f2aed33e0877d84 2012-12-01 * lib/thread.rb (ConditionVariable): use hash instead of array for @waiters. * test/thread/test_queue.rb (test_sized_queue_and_wakeup): remove a test because @waiters no longer have a chance to duplicated. Now it's a hash.
afbbcd133ce38bf6749d8a431d08cf1c4bf732c7 2012-12-01 * test/ruby/test_thread.rb (test_cv_wait_deadlock): enable cv deadlock test.
89ff44e22e737b1138954e482602c5f2ef9d08f1 2012-12-01 * test/ruby/test_thread.rb: move ConditionVariable related test into test/thread/test_cv.rb. * test/thread/test_cv.rb: new file. * test/thread/test_cv.rb (test_condvar_empty_signal): new tests. * test/thread/test_cv.rb (test_condvar_empty_broadcast): ditto.
2ba9cdcee6b0b97999c74c6fb19cdae08edd0e25 2012-12-01 * gc.h (SET_MACHINE_STACK_END): add volatile for preventing harmful optimization.
bbfbf662cceb6e7d8dc769ca365c563b9c073592 2012-12-04 * thread.c (rb_mutex_owned_p): new method that return current thread have the target mutex or not. [Feature #7505] [ruby-dev:46697] * test/ruby/test_thread.rb (test_mutex_owned, test_mutex_owned2): test for the above. * NEWS: new for the above.
3765f668c616c1ef2b8d4feb9195fb2c62e96c3d 2012-12-04 supress warning
70d603a41274c873183abcfb83dabfcaa3caf95c 2012-12-04 supress warning
a400c94d7272d29f09b16c059bb9ca3b34bd398f 2012-12-05 * lib/timeout.rb (Timeout#timeout): set async_interrupt_timeing(:on_blocking) by default. [Bug #7503] [ruby-core:50524]
def63c3466939161f2459f6489815b444bbde8a3 2012-12-05 * io.c (io_binwrite): check interrupt before io issue. * test/ruby/test_thread.rb (test_async_interrupt_and_io): test for the above.
fe6b2e20e9f17ed2c2900aa72994e075ffdc7124 2012-12-05 * thread.c (rb_uninterruptible): helper function for providing temporary async_interrupt_timing(Object => :defer)
3bbffbc7dd024179777192950ac07b9ef6ca2968 2012-12-07 Revert r38216 and r38221. Release manager mark this feature as "next minor".
cb92817e7cb41f31abf371dc162996554ab50f6a 2012-12-14 * signal.c (rb_f_kill): remove rb_thread_polling() because this has no good effect and makes meaningless 100ms delay. 1) when sending signal to another process, waiting has just silly. 2) when sending signal to current process, 100ms is often not enough time to wait. It depend on kernel behavior. And, rb_thread_polling() doesn't make sense anyway. When rb_thread_alone() is true, it doesn't wait at all and Process.kill() users don't expect threading changes Process.kill() behavior. [Bug #7560]
a24f2d99155e20833f26d9bbc1d97bb0ae31a9c4 2012-12-14 * file.c (rb_file_flock): use rb_thread_wait_for() instead of rb_thread_polling(). When getting EAGAIN, we need to wait a while even if no multi threading. * thread.c (sleep_for_polling, rb_thread_polling) removed.
2d5fc17f140dfc99221e1eb2ccc5751df12ece5b 2012-12-14 * include/ruby/intern.h: remove rb_thread_polling() declaration.
3074406bbeaefbc7f90fe5dfd705d0d5249befc5 2012-12-14 * test/ruby/test_thread.rb (TestThread::Thread::new.): remove th.abort_on_exception change. Test template shouldn't change global flag. It prevent to test a normal case.
4bcfc171823f85111be7374e95318901b8298f9a 2012-12-14 * test/ruby/test_thread.rb (test_uninitialized, test_backtrace, test_thread_timer_and_interrupt, test_thread_join_in_trap, test_thread_join_current, test_thread_join_main_thread, test_main_thread_status_at_exit, test_thread_status_in_trap, test_thread_status_raise_after_kill, test_mutex_owned, test_mutex_owned2): move these tests from TestThreadGroup class to TestThread becuase they are not thread group tests.
47fa79203d04ac0de21539a5843197bbb299abab 2012-12-15 * thread.c (rb_thread_wait_fd_rw): remove silly rb_thread_alone() check.
70df4dec03fe9e557c55162ed6fc2201c3960c48 2012-12-15 * io.c (rb_io_wait_writable): don't call rb_thread_fd_writable() when EINTR. EINTR mean signal interrupt was happen. We don't need any wait.
96350867e1a003ecc40e987ea4bf55c069e519fd 2012-12-15 * io.c (rb_io_wait_writable): add to call rb_thread_wait_fd() likes rb_io_wait_readable.
2a4d86f385c4d4fd3f4195e8dbb0aa61ae4f8eea 2012-12-15 * io.c (internal_write_func2): new helper function for rb_write_internal2(). * io.c (rb_write_internal2): new function. it uses rb_thread_call_without_gvl2() instaed of rb_thread_io_blocking_region(). * io.c (rb_binwrite_string): uses rb_write_internal2 instead of rb_write_internal. [Bug #7134]
9bd33790b7f992520f003954df743dd6e8502622 2012-12-15 * io.c (io_flush_buffer): uses io_flush_buffer_async2 instead of io_flush_buffer_async. * io.c (io_flush_buffer_async2): new helper function for io_flush_buffer. It uses rb_thread_call_without_gvl2() instead of rb_thread_io_blocking_region. * io.c (io_flush_buffer_sync2): new helper function for io_flush_buffer_async2.
e78d4e69fe15b84358ce8fb30edf5c6610a6bad9 2012-12-15 * thread.c (rb_mutex_owned_p): remove static. * io.c (io_flush_buffer): don't hold mutex if already have. Now recursive lock may occur when following scenario. fptr_finalize -> finish_writeconv_sync -> finish_writeconv -> io_fflush.
7fbaa0bedf29d6c44a3e038ec6dd9d153e4c7479 2012-12-15 * io.c (finish_writeconv): uses rb_write_internal2 if fptr->write_lock have.
771f692792227e77dd9e9df74a2fda7bb6f33622 2012-12-15 fix typo
aff9dff46d79181d143697d7b9e76735788e45cc 2012-12-15 * signal.c (rb_sigaltstack_size): new. calculate stack size for sigsegv handler. enlarge value when x86 or x86_64 on Linux. Linux has very small MINSIGSTKSZ size (2048 bytes) and our sigsegv routine need 5KiB at least. [Bug #7141] * internal.h: add declaration of rb_sigaltstack_size(). * vm_core.h: remove ALT_STACK_SIZE definition.
0e19d2b434776e580ebafeafa553bc335d5e5e38 2012-12-15 * signal.c (default_handler): remove rb_register_sigaltstack() call. sigaltstack was already registered when creating threads.
44b4b9060d7f02b10768c09bf8f59fa96aeda1b9 2012-12-15 * signal.c (rb_sigaltstack_size): cast sysconf() return value explicitly. Fix compile error on Mac OS X.
6d8ad6c489f41dfb5553d0933793eb5c84e0cc29 2012-12-17 * io.c (io_flush_buffer_sync2): avoid to return 0. because rb_thread_call_without_gvl2 uses 0 internally. * io.c (io_flush_buffer_async2): adapt the above.
005db82d368d9e030b3b370ceba8b46e739b2b2b 2012-12-18 * thread.c (rb_thread_wait_fd_rw): fix infinite loop bug. rb_wait_for_single_fd() never return positive number.
06dcf7840fd6a9f7f6ad48ff9ce9d0bbe180c1eb 2012-12-18 * io.c (rb_io_wait_writable): don't use rb_thread_wait_fd() because it is for waiting until io readable.
b8422636967a53f598968fbbc49326dd4ab027c6 2012-12-19 style fix.
585afbbc6a833e91cd2e51b8faeece2248c0cc16 2012-12-21 * vm_dump.c (rb_vm_bugreport): revert r38533. * addr2line.c (fill_lines): add ELF sanity check. [Bug #7597] [ruby-dev:46786]
398581564d155cab50beeb28fbb61fcbb5f4da16 2012-12-22 * io.c (rb_io_wait_writable): use rb_thread_check_ints() instead of rb_thread_fd_writable(). * io.c (rb_io_wait_readable): ditto.
495f72ed3885970c40689186d0031c0f457f7e49 2012-12-26 * configure.in: enable -fPIE when checking -pie for fixing OpenBSD build error. Patch by George Koehler. Thank you! [Bug #7606] [ruby-core:51082]
03f7f9ea40d6da40d847d6a422c66ff229bd2aa9 2013-01-04 * gc.c (vm_xrealloc): add a few comment why we avoid realloc(ptr,0).
753f68cf20e1492cf980106027dd1f0969d546f2 2013-01-04 * io.c (rb_cloexec_fcntl_dupfd): improve #ifdef condition. * io.c (rb_maygvl_fd_fix_cloexec): ditto.
e32ce1868f62070663a13813b132a2bb0cf5f147 2013-01-15 * thread_pthread.c (gvl_init): Reset gvl.wait_yield explicitly when fork()ing. Patch by Apollon Oikonomopoulos. Thanks! [Bug #7693][ruby-core:51424]
0dddb4b32895e46c31bbad363bafc5a5bfcd7c45 2013-01-25 * test/ruby/test_io.rb (test_ioctl_linux): skip if a platform is not x86 because linux ioctl request number depend on cpu arch. At least, alpha, mips, sparc and ppc have a different number. [Bug #7718] [ruby-core:51544]
b10e6b69a5e0a66a8406587fa03321131b5e6612 2013-01-31 * test/ruby/test_signal.rb (test_trap_puts): Fix typo. "sync" should be "STDOUT.sync".
88903e23dd4ec7e58fe3ffb0070ec7fdcd0d6b8f 2013-02-06 * test/ruby/test_process.rb (test_setsid): skip when platform is OpenBSD. Contributed from George Koehler. [Bug #7789] [ruby-core:51889]
6cd1e11d01036df2856aff996984d276a602a7cf 2013-02-06 * test/ruby/test_process.rb (test_setsid): ensure to call Process.wait(). Reported by George Koehler. Thanks.
08c11c23cb809b49d443486ea677f3cb7f1db857 2013-02-10 * gc.h (SET_MACHINE_STACK_END): use __volatile__ instead of volatile.
0531a076603eb9fd031d7c28574238866dfe8082 2013-02-10 * vm_exec.h (DISPATCH_ARCH_DEPEND_WAY): use __asm__ __vilatile__ instead of asm volatile.
dd7a64d1000f39622e63fa11254879a1841decd2 2013-02-10 fix typo.
5d1d6543102de8841b232063d07b1df313c92f00 2013-02-10 fix date time mistake in ChangeLog.
e4b775882d8eb458342a827c9decc68db63c10eb 2013-02-14 * test/ruby/test_process.rb (test_setsid): Added a workaround for MacOS X. Patch by nagachika. [Bug #7826] [ruby-core:52126]
7c465090fd976fe6892a8ec64b036fa0696e3723 2013-02-21 * file.c (rb_group_member): get rid of NGROUPS dependency. [Bug #7886] [ruby-core:52537]
ba37db04533cec102212605488989c5d02bea67f 2013-02-21 * file.c (eaccess): use access() when not using setuid nor setgid. This is minor optimization.
1cda6e3968b7245b302b20898ac02db3a6289309 2013-02-21 * file.c (access_internal): removed. * file.c (rb_file_readable_real): use access() instead of access_internal(). * file.c (rb_file_writable_real): ditto. * file.c (rb_file_executable_real): ditto.
e93a68abfa10a7eba1fd769b6cbc55da7796f8e8 2013-02-21 * file.c (RB_MAX_GROUPS): moved to * internal.h (RB_MAX_GROUPS): here.
8a9dc061f5737543eaca17ceafa6ebe4886cb26e 2013-02-21 * file.c (rb_group_member): added an error check. SUS says, getgroups(small_value) may return EINVAL.
7355c6d9c99d7636c9acbd262149f72d1f900d9f 2013-02-21 * signal.c (sigsegv): avoid to use async signal unsafe functions when nested sigsegv is happen. [Bug #5014] [ruby-dev:44082]
bc5a5989c044768e7a70c251d7a3f91a8f1ca0e8 2013-02-24 * signal.c (sigsegv): suppress unused result warning. Because write(2) is marked __warn_unused_result__ on Linux glibc.
2474a1ac007ab4c7f8b9ad202a4ff61a1cb52005 2013-02-24 remove duplicated entry.
ffbd120efdbcc65937413102086f28b4090e9ce5 2013-02-25 * error.c: clarify a document of SignalException. Process.kill() doesn't have any guarantee when signal will be delivered. [Bug #7951] [ruby-core:52864]
5cebbe8f9b61edac849d8131e32d4d20105d1164 2013-03-10 * thread_pthread.c (set_nonblock): new helper function for set O_NONBLOCK. * thread_pthread.c (rb_thread_create_timer_thread): set O_NONBLOCK to timer_thread_pipe[0] too.
3887a34c9040ae6f29eea592073d4dcc283cea4e 2013-03-10 * thread_pthread.c (USE_SLEEPY_TIMER_THREAD): use more accurate ifdef condtions.
27f25728e69274fd226007bd6765d3819b0449c7 2013-03-10 * thread_pthread.c (timer_thread_sleep): use poll() instead of select(). select doesn't work if timer_thread_pipe[0] is greater than FD_SETSIZE. * thread_pthread.c (USE_SLEEPY_TIMER_THREAD): add a dependency against poll.
368fdf9cc164caef3ea08cdd9226542de943479f 2013-03-10 * thread_pthread.c (consume_communication_pipe): retry when read returned CCP_READ_BUFF_SIZE.
383a2579c3027e579f64e08597bae1097619baf4 2013-03-10 * thread_pthread.c (rb_thread_create_timer_thread): factor out creating communication pipe logic into separate function. * thread_pthread.c (setup_communication_pipe): new helper function. * thread_pthread.c (set_nonblock): moves a definition before setup_communication_pipe.
0eeb116923171e73876d286e9573cb21cae057ae 2013-03-10 * thread_pthread.c (ubf_select): add to small comments why we need to call rb_thread_wakeup_timer_thread().
9c021064a28639fbb9ccb6a9877fc504f377624c 2013-03-10 * thread_pthread.c (rb_thread_wakeup_timer_thread_fd): add fd argument and remove hardcoded dependency of timer_thread_pipe[1]. * thread_pthread.c (consume_communication_pipe): add fd argument. * thread_pthread.c (close_communication_pipe): ditto.
bcf12936810465caa1e6b019652ae42bf9fc22f0 2013-03-10 * thread_pthread.c (ARRAY_SIZE): new. * thread_pthread.c (gvl_acquire_common): use low priority notification for avoiding timer thread interval confusion. If we use timer_thread_pipe[1], every gvl_yield() request one more gvl_yield(). It lead to thread starvation. [Bug #7999] [ruby-core:53095] * thread_pthread.c (rb_reserved_fd_p): adds timer_thread_pipe_low to reserved fds.
235546ba049fe1e13517d075ec3ba9721af8cb54 2013-03-10 * io.c (rb_update_max_fd): use ATOMIC_CAS because this function is used from timer thread too.
19e0d7c18ef614d65a279eaf427dea8786f659ac 2013-03-10 * test/thread/test_queue.rb (TestQueue#test_thr_kill): reduce iterations from 2000 to 250. When running on uniprocessor systems, every th.kill needs TIME_QUANTUM_USEC time (i.e. 100msec on posix systems). Because, "r.read 1" is 3 steps operations that 1) release GVL 2) read 3) acquire gvl and (1) invoke context switch to main thread. and then, main thread's th.kill resume (1), but not (2). Thus read interrupt need TIME_QUANTUM_USEC. Then maximum iteration is 30sec/100msec = 300.
117b51a3fa02de5aa82d5de80d36af8aff559640 2013-03-10 * probes.d: added argument name
c38469f453d8857f56ab18ad7cf2c2507558bcd8 2013-03-10 * probes.d (symbol-create): change argument name `string' to `str'. `string' is a keyword for systemtap.
d71a8880b4d6765294468e94834aeabdf72af6bf 2013-03-10 * tool/gen_ruby_tapset.rb: add tapset generator.
de6d82f90703bde85bfd419aeb343ef0fd94044b 2013-03-10 * process.c (setup_communication_pipe): remove unused function. it was unintentionally added r39683.
cbd15bdb95e6d9825a2ef8f08d2d6ed62d4ec9e1 2013-03-10 * NEWS (Mutex#owned?): no longer experimental.
0b1ff939455a96bb2e715d029c0d412af8de593a 2013-03-10 * tool/change_maker.rb (#diff2index): check Encoding::BINARY. BASERUBY may still be 1.8.x.
1c47bd88c13a19ce0b0a184d6e552f4d26433ac4 2013-03-10 * lib/thread.rb (Queue#push): return self. * lib/thread.rb (Queue#clear): ditto. * lib/thread.rb (SizedQueue#push): ditto. * test/thread/test_queue.rb: add tests for the above.
f407b14167082c16a48a87fcb1272326d7640547 2013-03-10 ChangeLog reformatting and append ticket number.
e1807e59951d4280895dd3f2c2fc4a774ad3fe6a 2013-03-15 * thread_pthread.c (numberof): renamed from ARRAY_SIZE() because other all files use numberof().
2e544471ae719757a0fec2a686bdeb7a97540c90 2013-03-16 * configure.in (_FORTIFY_SOURCE): added a few comments.
798ff850e41752834bd27081c2e85f874b2cc4aa 2013-03-16 * configure.in: check struct timeval exist or not. * include/ruby/missing.h (struct timeval): check HAVE_STRUCT_TIMEVAL properly. and don't include sys/time.h if struct timeval exist.
03a6ce80d04dd386a8514faf4abc86b3ea290a68 2013-03-16 * include/ruby/missing.h (struct timespec): include <sys/time.h>
c824d47ebc829560d022df74d355f69c601ea102 2013-03-16 * include/ruby/missing.h (__syscall): moved to... * io.c: here. because __syscall() is only used from io.c.
92b367e0696785540143707af4093108d6d98c79 2013-03-16 * thread.c: disabled _FORTIFY_SOURCE for avoid to hit glibc bug. [Bug #8080] [ruby-core:53349] * test/ruby/test_io.rb (TestIO#test_io_select_with_many_files): test for the above.
28d3acb045cc1f5dec7fbaf9f71ac1ee1256e7d8 2013-03-16 * include/ruby/missing.h: removed __linux__. it's unnecessary.
326dd6e0ccb98141ef8578d429d113e8f714b4c6 2013-03-16 * ext/date/date_core.c: include sys/time.h for avoiding implicit declaration of gettimeofday().
b945ad289f14c1b1ba65bdd9a4e1106f3cee134c 2013-03-19 * io.c (linux_iocparm_len): enable only exist _IOC_SIZE(). Because musl libc doesn't have it. [Bug #8051] [ruby-core:53229]
4ea96ece8400f1c6caa8a2429f6d93f15434238f 2013-03-19 * internal.h: added a declaration of ruby_kill(). * thread.c (ruby_kill): helper function of kill().
c9073822c2837bc51d47f1b90e2dae0701c08281 2013-03-19 * thread.c (ruby_kill): release GVL while waiting signal delivered.
8c52515eaa82330581e06751631f07e8ebed180e 2013-03-19 * thread.c (ruby_kill): added a few comments.
62565929b35484fd9d4d6adf7cea8f71a12f71b6 2013-03-19 * test/ruby/test_signal.rb (test_hup_me): added a few comments.
b95336b2fe56585ab585ca7c17fbad4c145e9e2b 2013-03-24 * addr2line.c (putce): suppress unused return value warning.
6edde68b5d4c66a33325191311b97081720433cd 2013-04-24 * io.c (rb_fd_fix_cloexec): use rb_update_max_fd().
9b89888ddafcfd8f13f3f7535ce1744e005bac3b 2013-05-03 * include/ruby/defines.h (RUBY_ATTR_ALLOC_SIZE): New for attribute((alloc_size(params))).
2f6cab0f59a07194a6a6d1a9cba68062613b1e6d 2013-05-12 * bignum.c: remove redundant decl for big_lshift() big_rshift().
fa5db01644420b903549f69e99767995a62cbc65 2013-05-12 * configure.in: sorts AC_CHECK_FUNCS()s as alphabetical order.
7776ca930b0b72a95d453481d942c4069d088dc6 2013-05-12 * configure.in: add getenv() declaration check. * dln_find.c: add HAVE_DECL_GETENV test.
a79cccb5c6797437a319a8834a8b68243d63fe86 2013-05-12 * configure.in: move clock_gettime() check into regular place.
f15d3ff927daa77e86abf726eec1baedcffbb48d 2013-05-12 * configure.in: adds comments for setjmp check.
2d0c7e37bf51191f20f06362763f3e8661641217 2013-05-12 * configure.in: remove AC_CHECK_FUNC(close). It is not used from anywhere.
e79f7907987d9dc2445892b7b571a621208d29bf 2013-05-12 * configure.in: removes AC_CHECK_FUNC(fseeko, fseeko64, ftello, ftello64). They are not used from anywhere.
05628d3b6d49bd301f16acdb882442c81d97475d 2013-05-12 * configure.in: removes AC_CHECK_FUNC(ftruncate64). * configure.in: adds RUBY_REPLACE_TYPE(off_t) for creating NUM2OFFT. * file.c (rb_file_truncate): use correct type. chsize() take a long. * include/ruby/ruby.h (NUM2OFFT): use a definition created by a configure script by default.
59a3943a6786a9357ea8221f197ca839247cf42f 2013-05-12 * configure.in: abort if gettimeofday doesn't exist.
c0a30fcbf93178fafe5b7a12fd5f3ad186b3535a 2013-05-12 * signal.c (rb_f_kill): fixes typo. s/HAS_KILLPG/HAVE_KILLPG/.
3f6b5aa2f80515f30f4db46a07da85dbfdcadbed 2013-05-12 * configure.in: removes AC_CHECK_FUNCS(pause) because it's unused.
82330e919b3897a49e11a031f7a080718231a5f1 2013-05-12 * configure.in: removes AC_CHECK_FUNCS(setitimer) because it's unsed.
93d061a8fd774022f654f4d8fd72963647381920 2013-05-12 * process.c: move '#define SPAWNV 1' to win32/Makefile.sub. * win32/Makefile.sub: see above.
96ffcf557bb93f891ab9f75053a0b9edda62d064 2013-05-12 * file.c (rb_file_s_truncate): use correct type. chsize takes a long.
6591e26eb24ddf89e93941f1207511bb85ef54ae 2013-05-12 * configure.in: removes 'ac_cv_func_fseeko=yes' form MinGW specific definitions.
f3c9bb063e37cdedd888f9d755c7303793e56962 2013-05-12 * include/ruby/intern.h (rb_uint2big, rb_int2big, rb_uint2inum) (rb_int2inum, rb_ll2inum, rb_ull2inum): removed because ruby.h has a declaration for these.
2b881310f8b14066f696275ae3811a0bc87dc30b 2013-05-12 * include/ruby/intern.h (rb_iv_set, rb_iv_get): removed. Bcause ruby.h has a declaration for that.
523bd6737ea97bce1f92d2e171a09cc564b50125 2013-06-02 * configure.in: removes AC_CHECK_FUNCS(readdir_r). readdir_r() is only used from dir.c and it doesn't need readdir_r(). * configure.in (SIZEOF_STRUCT_DIRENT_TOO_SMALL): remvoed. It is only used for readdir_r. * dir.c: removes NAME_MAX_FOR_STRUCT_DIRENT. It is not right way to detect maximum length of path len. POSIX require to use fpathconf(). IOW, it might have lead to make a vulnerability using stack smashing. Moreover, readdir() works enough for our usage. * dir.c (READDIR): removes an implementation which uses readdir_r() and parenthesize in a macro body correctly. * dir.c (dir_read): removes IF_HAVE_READDIR_R(DEFINE_STRUCT_DIRENT entry), it is used only for readdir_r(). * dir.c (dir_each): ditto. * dir.c (glob_helper): ditto.
90425153fbd26f9e5bdaa0a2df805b2a37350e9b 2013-09-10 * thread.c (rb_mutex_unlock): Mutex#unlock no longer raise an exception even if uses on trap. [Bug #8891]
1a0eb89cffa4f34ca56e561dbfb51a3c9d5bdcdf 2013-09-28 * test/dl/test_base.rb: {libc, libm} detection now handle GNU/Hurd correctly. Patch by Gabriele Giacone (1o5g4r8o@gmail.com). * test/fiddle/helper.rb: ditto.
f450dede0e71b0db8ec0ba2f31f6907a778e3fbb 2013-09-28 Added ticket number
1fa5d76ae08d000b8ba9b728b78e5a9d3d308129 2013-10-08 * cont.c: disable FIBER_USE_NATIVE on GNU/Hurd because it doesn't support a combination getcontext() and threads. Patch by Gabriele Giacone (1o5g4r8o@gmail.com). [Bug #8990][ruby-core:57685]
30edf111c5f409e161ec4ff9c4f4d659f2deaf54 2013-10-24 * thread.c (rb_thread_terminate_all): add a comment why infinite sleep is safe.
61430a167b3f562ffbaeb3bbbf68d33b907881d0 2013-10-24 * thread.c (rb_thread_terminate_all): add a comment why we need state check and call terminate_i again.
02b501323e3cfd2ce12ac11af8c1169ad3f51523 2013-10-31 * thread.c (rb_mutex_struct): reduce rb_mutex_t size by 8 bytes on 64bit platform. Patch by Eric Wong. [Feature #9068][ruby-core:58114]
476af221b70d4698acadff0e4f379f637579237b 2014-06-23 * nacl/nacl-config.rb: Use File.exist? instead of executable? for irt_core. Recent nacl_sdk has non-executable irt_core. Patch by Shinichiro Hamaji. [Fixes GH-529] https://github.com/ruby/ruby/pull/529
00eb72039495a0ae2cdae55f1d660a2ab0f26cb9 2014-07-11 * lib/net/smtp.rb (Net::SMTP#data): enable buffering while 'data' send for optimizing Net::SMTP#send_message. [ruby-dev:48329] [misc #9981] patch by Masahiro Tomita.
0fa75e813ecf0f5f3dd01f89aa76d0e25ab4fcd4 2014-10-21 * ext/etc/etc.c (etc_nprocessors_affin): optimize memory usege a bit. Typical rubyist never use 8k cpus machine.
dfe56d36624b9da86121a40469d487099d9818e9 2014-10-21 * ext/etc/etc.c (etc_nprocessors_affin): minor spell fix.
2f438d60106789a8628617ab41bc1c750ecae62b 2014-10-21 * ext/etc/etc.c (etc_nprocessors_affin): maximum "n" should be 16384.
8ecd3b7114d6c0b81c0165dd0defa8f3df261d0b 2015-06-14 * thread.c (thread_start_func_2): don't interrupt when last thread exit unless main thread is already exited. Otherwise main thread could be wrongly interrupted when it uses rb_thread_call_without_gvl(). Patch by Takehiro Kubo. [Bug #11237][ruby-dev:49044][GH-898] * test/-ext-/gvl/test_last_thread.rb: new test for the above fix. * ext/-test-/gvl/call_without_gvl/call_without_gvl.c: new ext for the above test. * ext/-test-/gvl/call_without_gvl/extconf.rb: ditto.
bb79c011bf39cab7bcf82656548b04c80db7347f 2015-09-15 * test/ruby/test_thread.rb (TestThread#test_mutex_synchronize): insert waste loop for invoking preemptive thread context switch.
06ca0b67f48839cc682e194512d69324d2965ddc 2015-09-16 * dir.c (glob_helper): check pathtype once again by lstat(2) if dp->d_type is DT_UNKNOWN. XFS may return DT_UNKNOWN.
ae05ae33c1194c6ad40730096b5d110e4de50222 2015-09-17 * test/ruby/test_dir.rb (TestDir#test_fileno): s/?x/"x"/. Don't use tricky code, please.
8c84716b24185c97d918080e5850a3694301e268 2015-10-08 * benchmark/bm_require.rb: new benchmark for require. * benchmark/bm_require_thread.rb: new benchmark for conflicting require vs thread. like [Bug #11559] * prepare_require.rb: new file for preparing above tests. * prepare_require.rb: ditto.
68c35d8bb94d2b714ef7e7f9426c4b22b1cf01a9 2015-10-08 * benchmark/prepare_require.rb: skip file creation if it already exist. Suggested by ko1.
bc8687acd62584bf2ba9a951289f3f25a4de7229 2015-10-17 * ruby.c (open_load_file): reset O_NONBLOCK after open. Even if S_ISREG() is true, the file may be file on FUSE filesystem or something. We can't assume O_NONBLOCK is safe. Moreover, we should wait if the path is point to FIFO. That's FIFO semantics. GVL should be transparent from ruby script. Thus, just reopen without O_NONBLOCK for filling the requirements. [Bug #11060][Bug #11559] * ruby.c (loadopen_func): new for the above. * file.c (ruby_is_fd_loadable): new. for checks loadable file type of not. * file.c (rb_file_load_ok): use ruby_is_fd_loadble() * internal.h: add ruby_is_fd_loadble() * common.mk: now, ruby.o depend on thread.h. * test/ruby/test_require.rb (TestRequire#test_loading_fifo_threading_success): new test. This test successful case that loading from FIFO. * test/ruby/test_require.rb (TestRequire#test_loading_fifo_threading_raise): rename from test_loading_fifo_threading. You souldn't rescue an exception if you test raise or not. Moreover, this case should be caught IOError because load(FIFO) should be blocked until given any input.
50024f9da6280c9fe48a4886364bae62d4eef92e 2015-10-17 * io.c (fptr_finalize): don't release gvl if fptr is not writable. writable fd may block on close(2) when it's on NFS. But readonly fd doesn't. [Bug #11559] result: make benchmark OPTS="-p bm_require_t -e ruby-trunk -e ruby-2.2.2" build-ruby: 0.171 ruby 2.3.0dev(r52151): 0.659 ruby 2.2.0p95 (r50295): 0.834
ff132bc0f46cf505ee70e17e9948b5288e704d28 2015-10-18 Revert r52154
698f6648c5e560c77c2a3c4c3a142ac47eef0a59 2015-10-18 * ruby.c (open_load_file): use rb_thread_wait_fd() instead of reopen.
21704f2269093ff8b80f32e07a1cb6ad4d8f6896 2015-10-18 * file.c (ruby_is_fd_loadable): this should be fail if st_mode is not regular file nor FIFO.
a0a77c5b33858ca8d567e9bceee3d7882db58a19 2015-10-18 re-commit r52152
6803c4e2a8e48e8f2f855015e4933a9947913b92 2015-10-18 * include/ruby/defines.h (DOSISH): add comments.
4ad2057f27e1b03870d2ebcab7f7dbfca4b368ef 2015-10-18 * ChangeLog: Good-bye OS/2. * common.mk: ditto. * configure.in: ditto. * dln_find.c: ditto. * ext/Setup.emx: ditto. * ext/extmk.rb: ditto. * ext/socket/extconf.rb: ditto. * ext/zlib/extconf.rb: ditto. * file.c: ditto. * include/ruby/defines.h: ditto. * io.c: ditto. * lib/mkmf.rb: ditto. * missing/os2.c: ditto. * process.c: ditto. * ruby.c: ditto. * NEWS: announce OS/2 is no longer supported.
a857b11dedf7a94d622d1ae73d3e7fb2a4043ff0 2015-10-18 * file.c (rb_file_identical_p): simplify ifdefs
395dd7867e62fde1aada773adad00cd07397c5de 2015-10-18 fix compile error
a923a6f04c779e85787cfee6207ed8b0ae0e4070 2015-10-18 * ruby.c (open_load_file): add a comment.
e91baf5634c419247a176f60e399a9446ff2ccf7 2015-10-18 * dln.c: simplify #ifdef. _WIN32 and __CYGWIN__ are exclusive. see include/ruby/defines.h * gc.c: ditto. * ext/sdbm/_sdbm.c: ditto.
3a48e126073a0bba09372412f15e7792e6409129 2015-10-18 * numeric.c: Good-by Borland-C. * include/ruby/backward/rubyio.h: ditto. * include/ruby/backward/st.h: ditto. * include/ruby/backward/util.h: ditto. * include/ruby/backward/rubysig.h: ditto. * include/ruby/backward/classext.h: ditto. * dln.c: ditto. * gc.c: ditto. * win32/resource.rb: ditto. * win32/dir.h: ditto. * ext/tk/tcltklib.c: ditto. * NEWS: announce that Borland-C is no longer supported.
3a49d35352dc1adb234ce3a2e409be71bd339836 2015-10-18 * lib/mkmf.rb: Good-by Borland-C (cont).
348d7b096d973a28389f741fc6b1cc711b78e3ac 2015-10-18 * dln.c: remove defined(__WATCOMC__).
75356fc879452863682ba4fe7a370cff32399707 2015-10-18 * common.mk: add comments how to use "make benchmark"
727ae6f813967ecbe381f8b11314cee90bec002b 2015-10-18 * common.mk: add a comment how to use "make test-all"
0bdf13a10424d28f109292329892aef71a30a18c 2015-10-18 * include/ruby/backward/util.h: Good-by Borland-C.
a4c6ad1d1978f1b6007fbe5b0cc5b1abaee67d1a 2015-10-18 * random.c (fill_random_bytes_syscall): use ATOMIC_SET() for updating try_syscall.
47f0a8f9d04cf1434a22dbfce04b05f1f546468f 2015-10-18 * random.c (fill_random_bytes_syscall): don't use GRND_NONBLOCK. It is meaningless. If SYS_getrandom(GRND_NONBLOCK) return EAGAIN, we eventually call fill_random_bytes_urandom() and it block such as SYS_getrandom() without GRND_NONBLOCK.
6c060b2b581288f67417eabdcf20acc6f154001e 2015-10-18 * random.c (fill_random_bytes_urandom): add a comment why using O_NONBLOCK and O_NOCTTY.
0751bc3fad795d49fe844afe9b7c2a67d43b149f 2015-10-18 Revert r52180
dea685c783b2b98ca8e848add4f174f15162c65f 2015-11-30 * missing/explicit_bzero.c: new file. define explicit_bzero. * common.mk: add a rule for explicit.o. * configure.in: detect explicit_bzero and memset_s. * include/ruby/missing.h: add explicit_bzero. * random.c (init_randomseed): use explicit_bzero() instead of memset(). memset could be eliminated by compiler optimization.
f7bd7d6f1f499726cc4aca99714e1a0050dbd92b 2015-11-30 * random.c: random_raw_seed don't use GRND_NONBLOCK. GRND_NONBLOCK mean the result might not have an enough cryptic strength and easy predictable. That's no good for SecureRandom.
86caaefc1ff89e8d0c97572661f70f55052bc0ce 2015-11-30 * include/ruby/util.h: remove a warning suppression C4723 (potential divide by zero) for VisualC++. It's meaningless. Before r26197, there is ruby_div0() in this place and it actually made divide by zero. But now it's just garbage.
07083767e9cf500b31670fe0d5dd55a162f0c520 2015-11-30 * ext/openssl/ossl_rand.c (ossl_rand_bytes): RAND_bytes could be return -1 as an error. Therefore, added error handling. * ext/openssl/ossl_pkey_dsa.c (dsa_generate): ditto.
7104a473ea77fa34ffbf831b64b94d0e58cb68f0 2015-11-30 * lib/securerandom.rb (SecureRandom::gen_random): use /dev/urandom for initialize OpenSSL's rand.
12e059b18cfe86817e5dc16860ab90d7128f1f66 2015-11-30 * random.c (init_randomseed): remove "initial" argument. It never be used from outside of this function.
0c4e7767edf623e0b070256f7bdc75b0f404ba71 2015-11-30 * configure.in: sort AC_CHECK_HEADERS() by alphabetical order.
052535be3e082d9c2d6b7650ff9430479036bab5 2015-11-30 * random.c (init_hashseed, init_siphash): extract initialize functions.
99c05fb38e8dc6d96a59c074de7b9aa39b1df31e 2015-11-30 * random.c (Init_RandomSeed): move all Random::DEFAULT construction bits to Init_RandomSeed2. Random::DEFAULT and Ruby internal hashes are no longer shared their seed. * random.c (Init_RandomSeed2): ditto. And, kill evil rb_obj_reveal() stuff. * random.c (init_hashseed): add MT argument. * random.c: (init_siphash): ditto. * test/ruby/test_rand.rb (TestRand#test_default_seed): new test for Random::DEFAULT::seed.
86af9bba63814b20e2cc7f59791b2d975268da78 2015-11-30 * random.c (InitVM_Random): move Random::DEFAULT initialization bits to Init_Random_default. * random.c (Init_Random_default): renamed from Init_Rndom2. * random.c (Init_RandomSeedCore): renamed from Init_Random.
a014e9e8c68e61517a7459d1dec4ca9df2e6b8de 2015-11-30 * test/ruby/test_rand.rb (TestRand#test_default_seed): add srand case.
487748fac8b43936bca1209c22fcd995a739aa93 2015-11-30 * thread_pthread.c (register_ubf_list): renamed from add_signal_thread_list. * thread_pthread.c (unregister_ubf_list): renamed from remove_signal_thread_list. * thread_pthread.c (ubf_wakeup_all_threads): renamed from ping_signal_thread_list. * thread_pthread.c (ubf_wakeup_thread): renamed from ubf_select_each. * thread_pthread.c (ubf_threads_empty): renamed from check_signal_thread_list(). * thread_pthread.c (ubf_list_lock): renamed from signal_thread_list_lock.
ed0858a8c5b193f91423c7043a0f34083db5724d 2015-12-01 fix r52806
586c174922fc3be5181a59585ec27a75f6b29a1c 2015-12-01 * missing/explicit_bzero.c: add a few comment. * missing/explicit_bzero.c: add disabling optimization on gcc.
48de9684b95e9aad03473fa1a00b640bbf428d12 2015-12-01 * missing/explicit_bzero.c: add ruby_explicit_bzero_hook_unused for preventing optimization. Inspired from OpenBSD.
68bac3cca4d8975d9f8ac2e4772471a30c604b12 2015-12-18 * vm.c (vm_exec): call RUBY_DTRACE_CMETHOD_RETURN_HOOK instead of RUBY_DTRACE_METHOD_RETURN_HOOK.
ca8f454f09a07bffc70ca90a792b203205538215 2017-05-02 nogvl_wait_for_single_fd must wait as its name
c70f12c288cec94d3a7079ee3ffac3ee606d29ff 2017-10-21 kill "variable set but not used" warning
4911d45648d03a519a3c93ca04649705a10fe149 2017-10-21 kill variable set but not used warning
af14720f749ea0274cadd4fa0329b86567ae0057 2017-10-21 kill "value computed is not used" warning
e3b4cd38dfe6df2545bf7a3dee01f9b4a78e94d0 2017-10-21 kill "discards ‘const’ qualifier" warning
1493972e8234cd5d57881d2353d153aa7cd67e72 2017-10-21 kill "discards ‘const’ qualifier" warning
3666ceb729998a6149d335151517f56aef2eba74 2017-10-21 test_cp_preserve_permissions should care about umask
3e5a25210e27ffda6e8c1e4b8c5494b1fcbb8e3e 2017-10-21 test_pathname.rb#test_open should care about umask
4d7a6d04b2c71aabb9d6e619f4405887806a5be8 2019-12-01 Avoid unnecessary tzset() call
7f2cd2ae6fea76ff3a2b95b69e6e2f749e8a249f 2019-12-03 fix typo