aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Handle machine stack overflow on mingwnobu2014-05-153-0/+29
| | | | | | | | | | * thread_win32.c (rb_w32_stack_overflow_handler): use Structured Exception Handling by Addvectoredexceptionhandler() for machine stack overflow on mingw. This would be equivalent to the handling using __try and __exept on mswin introduced by r43748. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2014-05-15svn2014-05-151-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* openssl/depend: ossl.onobu2014-05-151-0/+1
| | | | | | | * ext/openssl/depend (ossl.o): now depends on thread_native.h under $(hdrdir) instead of $(top_srcdir). [Feature #9612] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/depend: remove dependency from internal headers.ko12014-05-1410-39/+91
| | | | | | | | | | | | | | | | | | | [Feature #9612] * ext/openssl/ossl.c (ossl_fips_mode_set): ditto. * ext/coverage/depend: ditto. * include/ruby/thread_native.h: added. This header file only provides wrapper functions to control native threads. These wrapper functions are used by MRI implementation. * vm_core.h: use include/ruby/thread_native.h. * thread.c: ditto. * thread_pthread.h: ditto. * thread_win32.h: ditto. * thread_native.h: removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: enable RGENGC_AGE2_PROMOTION.ko12014-05-142-1/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (rgengc_rememberset_mark): promote remembered object earlier.ko12014-05-142-7/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * LEGAL: added license infomation of ccan files.hsbt2014-05-141-0/+31
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2014-05-14svn2014-05-131-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* make-snapshot: -digests optionnobu2014-05-131-1/+8
| | | | | | | * tool/make-snapshot (package): add -digests option to select digest algorithms to be shown. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* make-snapshot: -package optionnobu2014-05-131-1/+9
| | | | | | | * tool/make-snapshot (package): add -package option to select packages to be made. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* make-snapshot: unused variablesnobu2014-05-131-2/+0
| | | | | | * tool/make-snapshot (package): remove variables no longer used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* make-snapshot: SHA512nobu2014-05-131-3/+4
| | | | | | * tool/make-snapshot (package): add SHA512. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* make-snapshot: support xznobu2014-05-131-6/+32
| | | | | | | * tool/make-snapshot (package): support xz. no longer runs with 1.8 or earlier. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* set svn:ignore property.akr2014-05-130-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2014-05-13svn2014-05-121-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ChangeLog: fix a typo for r45930.nagachika2014-05-121-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: check atan2nobu2014-05-123-2/+35
| | | | | | | * configure.in (rb_cv_atan2_inf_c99): check whether runtime atan2 handles Inf as C99. ruby-core:62536] [Bug #9831] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: Invoke AC_REPLACE_FUNCS for each function.akr2014-05-122-4/+25
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: count young object correctly and show it in GC.statko12014-05-122-4/+33
| | | | | | | | | | | | | | on RGENGC_AGE2_PROMOTION. * gc.c (RVALUE_PROMOTE_YOUNG): decrement young object count on YOUNG->OLD. * gc.c (obj_free): decrement young object count when young object freed. * gc.c (gc_marks): should not clear young object count. * gc.c (gc_stat_internal): GC.stat :young_object information. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* signal.c: check the next page toonobu2014-05-121-2/+10
| | | | | | | | * signal.c (check_stack_overflow): check the next page too. SP in ucontext is not decremented yet when `push` failed, so the fault page can be the next. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2014-05-12svn2014-05-111-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ifaddr.c (IS_IFADDRS): Unused macro removed.akr2014-05-114-5/+8
| | | | | | | | | | * ext/strscan/strscan.c (BUFSIZE): Ditto. * ext/zlib/zlib.c (OBJ_IS_FREED): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (BUFSIZE): Unused macro removed.akr2014-05-115-18/+15
| | | | | | | | | | | | | | | | * vm.c (BUFSIZE): Ditto. * pack.c (INT64toNUM): Ditto. (UINT64toNUM): Ditto. (BYTEWIDTH): Ditto. * time.c (lshift): Ditto. (UINT64toNUM): Ditto. (id_lshift): Unused variable removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * pack.c (swaps): Unused macro removed.akr2014-05-112-32/+7
| | | | | | | | | | (swapi): Ditto. (swapl): Ditto. (swapll): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_process.rb: duplicate assertionsnobu2014-05-111-6/+3
| | | | | | | * 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
* test_process.rb: WIFEXITED and so on are system dependentnobu2014-05-111-1/+4
| | | | | | | | * 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
* signal.c: directly deliver non-handlable signalsnobu2014-05-112-0/+21
| | | | | | | * 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
* configure.in: check typeofnobu2014-05-111-0/+6
| | | | | | | * 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
* vm.c: suppress a warningnobu2014-05-111-1/+1
| | | | | | | * 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
* * properties.svn2014-05-100-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm*: doubly-linked list from ccan to manage vm->living_threadsnormal2014-05-1014-78/+997
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* thread.c: always deliver signal immediatelynobu2014-05-101-6/+3
| | | | | | | | * 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
* signal.c: directly enqueuenobu2014-05-103-3/+73
| | | | | | | * 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-11svn2014-05-101-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: variable for errnonobu2014-05-101-7/+12
| | | | | | | | | | * 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
* thread_pthread.c: timer_thread_pipe structnobu2014-05-101-18/+23
| | | | | | | * 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
* thread_pthread.c: compare with pthread_equalnobu2014-05-101-1/+1
| | | | | | | * 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
* dir.c: match in UTF-8nobu2014-05-102-0/+11
| | | | | | | * 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
* test_io_console.rb: show failure detailsnobu2014-05-101-3/+2
| | | | | | | * 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
* envutil.rb: rubybin: keywordnobu2014-05-101-1/+2
| | | | | | | * 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
* envutil.rb: successfully terminated processnobu2014-05-101-3/+4
| | | | | | | * 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
* process.c: use ruby_stopnobu2014-05-101-2/+1
| | | | | | | * 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
* thread.c: stop if forked in a sub-threadnobu2014-05-103-0/+30
| | | | | | | | * 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
* thread_pthread.c: variable for errnonobu2014-05-101-7/+8
| | | | | | | * 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
* test_signal.rb: test iff SIGQUIT is supportednobu2014-05-101-1/+1
| | | | | | | * 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
* * man/ruby.1: remove deadlink. [ruby-core:62145][Bug #9773]hsbt2014-05-102-2/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: run with default handlernobu2014-05-101-1/+3
| | | | | | | | | | * 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
* * signal.c (trap): Return "SYSTEM_DEFAULT" if SIG_DFL is set.akr2014-05-093-0/+12
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_signal.rb: missing argvnobu2014-05-091-1/+1
| | | | | | * 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-10svn2014-05-091-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e