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

35343 Коммитов

Автор SHA1 Сообщение Дата
akr 49771dd308 * pack.c (swaps): Unused macro removed.
(swapi): Ditto.
  (swapl): Ditto.
  (swapll): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-11 12:24:11 +00:00
nobu c1268be411 test_process.rb: duplicate assertions
* test/ruby/test_process.rb (test_status_{kill,quit}): remove
  duplicate assertions

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-11 10:40:18 +00:00
nobu 61cd4e9dda test_process.rb: WIFEXITED and so on are system dependent
* test/ruby/test_process.rb (test_status_kill): WIFEXITED and so
  on are available only if signal is supported by the system.
  [ruby-dev:48203] [Bug #9820]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-11 03:19:29 +00:00
nobu a3656d4222 signal.c: directly deliver non-handlable signals
* signal.c (rb_f_kill): directly deliver signals which cannot be
  handled, i.e., SIGKILL and SIGSTOP.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-11 01:02:47 +00:00
nobu c6e9e4110e configure.in: check typeof
* configure.in (rb_cv_typeof): check typeof extension for ccan
  headers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-11 00:33:45 +00:00
nobu 7c68a3121c vm.c: suppress a warning
* vm.c (rb_vm_living_threads_foreach): suppress "uninitialized"
  warning where "typeof" is unavailable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-11 00:25:36 +00:00
svn 7992b0ff39 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 23:49:06 +00:00
normal f11db2a605 vm*: doubly-linked list from ccan to manage vm->living_threads
A doubly-linked list for tracking living threads guarantees
constant-time insert/delete performance with no corner cases of a
hash table.  I chose this ccan implementation of doubly-linked
lists over the BSD sys/queue.h implementation since:

1) insertion and removal are both branchless
2) locality is improved if a struct may be a member of multiple lists
   (0002 patch in Feature 9632 will introduce a secondary list
   for waiting FDs)

This also increases cache locality during iteration: improving
performance in a new IO#close benchmark with many sleeping threads
while still scanning the same number of threads.

	vm_thread_close 1.762

* vm_core.h (rb_vm_t): list_head and counter for living_threads
  (rb_thread_t): vmlt_node for living_threads linkage
  (rb_vm_living_threads_init): new function wrapper
  (rb_vm_living_threads_insert): ditto
  (rb_vm_living_threads_remove): ditto
* vm.c (rb_vm_living_threads_foreach): new function wrapper
* thread.c (terminate_i, thread_start_func_2, thread_create_core,
  thread_fd_close_i, thread_fd_close): update to use new APIs
* vm.c (vm_mark_each_thread_func, rb_vm_mark, ruby_vm_destruct,
  vm_memsize, vm_init2, Init_VM): ditto
* vm_trace.c (clear_trace_func_i, rb_clear_trace_func): ditto
* benchmark/bm_vm_thread_close.rb: added to show improvement
* ccan/build_assert/build_assert.h: added as a dependency of list.h
* ccan/check_type/check_type.h: ditto
* ccan/container_of/container_of.h: ditto
* ccan/licenses/BSD-MIT: ditto
* ccan/licenses/CC0: ditto
* ccan/str/str.h: ditto (stripped of unused macros)
* ccan/list/list.h: ditto
* common.mk: add CCAN_LIST_INCLUDES
  [ruby-core:61871][Feature 9632 (part 1)]

Apologies for the size of this commit, but I think a good
doubly-linked list will be useful for future features, too.
This may be used to add ordering to a container_of-based hash
table to preserve compatibility if required (e.g. feature 9614).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 23:48:51 +00:00
nobu 3771a370ad thread.c: always deliver signal immediately
* thread.c (ruby_kill): always deliver signal immediately, without
  check for main thread.  no longer called in other context.
  [ruby-dev:48203] [Bug #9820]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 16:10:45 +00:00
nobu 77af38d0a5 signal.c: directly enqueue
* signal.c (rb_f_kill): directly enqueue an ignored signal to self,
  except for SIGSEGV and SIGBUS.  [ruby-dev:48203] [Bug #9820]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 16:10:32 +00:00
svn 23fce75482 * 2014-05-11
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 15:52:56 +00:00
nobu a5b9624fdc thread_pthread.c: variable for errno
* thread_pthread.c (rb_thread_wakeup_timer_thread_fd): use a local
  variable for errno.

* thread_pthread.c (consume_communication_pipe): ditto.  add
  EWOULDBLOCK case.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 15:52:45 +00:00
nobu 3385f6a0d4 thread_pthread.c: timer_thread_pipe struct
* thread_pthread.c (timer_thread_pipe): aggregate timer thread
  pipe stuff into a struct.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 14:48:58 +00:00
nobu 779ce6b00e thread_pthread.c: compare with pthread_equal
* thread_pthread.c (ubf_select): compare thread_id with
  pthread_equal() but not directly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 14:47:04 +00:00
nobu 1f30b7437e dir.c: match in UTF-8
* dir.c (push_glob): match in UTF-8 on Mac OS X.
  [ruby-dev:48213] [Bug #9825]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 13:37:58 +00:00
nobu 6add0613a3 test_io_console.rb: show failure details
* test/io/console/test_io_console.rb (test_noctty): use
  `assert_ruby_status` to show failure details.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 12:15:19 +00:00
nobu 765a0d53a1 envutil.rb: rubybin: keyword
* test/ruby/envutil.rb (invoke_ruby): add rubybin: keyword option
  to specify the command to run scripts.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 12:15:09 +00:00
nobu ac65855df7 envutil.rb: successfully terminated process
* test/ruby/envutil.rb (FailDesc): allow successfully terminated
  process without a signal.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 12:15:06 +00:00
nobu 55d4afc77e process.c: use ruby_stop
* process.c (rb_exit): call ruby_stop() which calls ruby_cleanup(),
  instead of calling ruby_finalize() directly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 04:41:02 +00:00
nobu 9883632d6a thread.c: stop if forked in a sub-thread
* thread.c (thread_start_func_2): stop if forked in a sub-thread,
  the thread has become the main thread.
  [ruby-core:62070] [Bug #9751]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 04:32:22 +00:00
nobu a46e21c86f thread_pthread.c: variable for errno
* thread_pthread.c (timer_thread_sleep): use a local variable for
  errno.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 04:32:10 +00:00
nobu ae29036196 test_signal.rb: test iff SIGQUIT is supported
* test/ruby/test_signal.rb (test_trap_system_default): test only
  if SIGQUIT is supported, which is platform dependent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 01:00:37 +00:00
hsbt 03c39e114b * man/ruby.1: remove deadlink. [ruby-core:62145][Bug #9773]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 00:33:38 +00:00
nobu 2acad06421 test_thread.rb: run with default handler
* test/ruby/test_thread.rb (test_thread_timer_and_interrupt): run
  with default handler.

* test/ruby/test_thread.rb (test_thread_{join,value}_in_trap):
  ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-10 00:32:58 +00:00
akr 08928bb528 * signal.c (trap): Return "SYSTEM_DEFAULT" if SIG_DFL is set.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 23:48:47 +00:00
nobu 5d488225a4 test_signal.rb: missing argv
* test/ruby/test_signal.rb (test_hup_me): add missing argv.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 16:15:30 +00:00
svn 800c2d391d * 2014-05-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 15:13:22 +00:00
nobu a738b98fc6 test_beginendblock.rb, test_signal.rb: run with default handler
* test/ruby/test_beginendblock.rb (test_propagate_signaled): run
  with default handler.

* test/ruby/test_signal.rb (test_hup_me): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 15:13:11 +00:00
nobu ed37579c6a thread_*.c: constify
* thread_{pthread,win32}.c (native_cond_timedwait): constify.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 14:31:34 +00:00
nobu b60fbca806 signal.c: if to switch
* signal.c (ruby_signal): turn multiple `if` statements into a
  `switch`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 14:31:27 +00:00
akr 058b5bce60 [DOC]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 13:57:04 +00:00
nobu 77811031e5 extmk.rb: check if parent is build
* ext/extmk.rb (extmake): don't build nested libraries if parent
  library isn't build.

* ext/{dl/callback,tk/tkutil}/extconf.rb: no longer need to check
  if the parent is build.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 05:52:59 +00:00
nobu ecb8b52f56 extmk.rb: fix extstatic
* ext/extmk.rb: fix variable name for --extstatic option.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 05:52:57 +00:00
nobu 9ee25c70df configure.in: check for setjmp type with CCDLFLAGS
* configure.in (RUBY_SETJMP_TYPE): check for setjmp type after
  CCDLFLAGS is appended to CFLAGS, since __builtin_setjmp can be
  affected.  [ruby-core:62469] [Bug #9818]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 05:27:07 +00:00
usa 48a9d17105 * tool/release.sh: fix for neon.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-09 03:58:09 +00:00
ayumin 2ff10784e4 * lib/delegate.rb: Fix example of using delegator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 19:02:36 +00:00
ayumin 8b6a874a59 * lib/shell.rb: add documentation in lib/shell.rb
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 18:46:16 +00:00
ayumin 529461dff7 * lib/fileutils.rb: show fileutils require at top.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 18:32:24 +00:00
svn 9fdf3e3eef * 2014-05-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 18:22:40 +00:00
ayumin bef8e4557c * lib/prime.rb (Prime#prime?): negative numbers can't be primes
by definition. reported by Ivan Kataitsev. [Bug #7395]
* test/test_prime.rb: add test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 18:22:29 +00:00
nobu 16b8aadc75 object.c: no longer copy tables of classes/modules
* object.c (init_copy): no longer copy tables of classes/modules,
  since r45874 rb_mod_init_copy() does it instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 05:45:00 +00:00
nobu 7c072b35d1 class.c: always clear tables first
* class.c (rb_mod_init_copy): always clear instance variable,
  constant and method tables first, regardless the source tables.
  [ruby-dev:48182] [Bug #9813]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 05:34:31 +00:00
naruse 97cd982a3e * configure.in: OpenBSD needs to include sys/param.h before include
sys/mount.h. [ruby-dev:48167]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 01:57:05 +00:00
nobu 719804b5df webrick/httpserver.rb: Stop handling requests on shutdown
* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): stop
  handling requests on shutdown, even if the socket is readable
  and IO.select() returns true.  [Fixes GH-607]
* lib/webrick/server.rb (WEBrick::GenericServer#start): IO.select()
  raises ENOTSOCK on shutdown on Windows.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-08 01:17:07 +00:00
akr b9f770ae8f refactored to test Socket and TCPSocket/TCPServer more consistently.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 23:21:10 +00:00
svn 87083e761b * 2014-05-08
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 15:43:44 +00:00
nobu d4d045850b gc.c: fix argument types for st_foreach
* gc.c ({free,mark}_{method,const}_entry_i): fix argument types as
  st_data_t for st_foreach().

* gc.c (rgengc_unprotect_logging_exit_func_i): add third argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 15:43:37 +00:00
akr 2dbae9b1f1 * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#accept):
Consider Socket#accept as well as TCPServer#accept.
  Reported by Sam Stelfox.  [ruby-core:62064] [Bug #9750]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 12:48:27 +00:00
akr 1386a2303f refactoring to extract tcp_pair.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 12:22:02 +00:00
nobu a352b0a207 numeric.c: check keyword arguments
* numeric.c (num_step_scan_args): check keyword arguments and fail
  if they conflict with positional arguments.
  [ruby-dev:48177] [Bug #9811]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 08:24:09 +00:00