Age | Commit message (Collapse) | Author |
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
if they exist.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
at the major GC because AGE2Promotion changes all old objects into
young objects at major GC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
heap_pages_increment.
For example, GC by exceeding malloc_limit can remain
heap_pages_increment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* dir.c (glob_make_pattern): check boundary before accessing.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* configure.in: enable SSE2 on mingw. target='i386-pc-mingw32'.
[ruby-core:62095] [Bug #8358]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* lib/test/unit/parallel.rb: fix test-all parallel failure if a test
is skipped after raise.
DL::TestFunc#test_sinf is skipped after raise on mingw ruby.
But it causes Mashal.load failure due to undefined class/module
DL::DLError when doing test-all parallel and test-all doesn't
complete. We create new MiniTest::Skip object to avoid Mashal.load
failure.
[ruby-core:62133] [Bug #9767]
* test/testunit/test_parallel.rb (TestParallel): add a test.
* test/testunit/tests_for_parallel/ptest_forth.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
from gc_sweep().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* gc.c (heap_set_increment): accept addition pages instead of
minimum pages.
* gc.c (gc_after_sweep): use heap_etend_pages().
* gc.c (gc_heap_prepare_minimum_pages): add only 1 page.
* gc.c (heap_ready_to_gc): add only 1 page.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
GC_HEAP_FREE_SLOTS_MIN_RATIO = 0.3: guarantee minimum empty slots
ratio after sweep.
GC_HEAP_FREE_SLOTS_MAX_RATIO = 0.8: allow to free pages 0.2 (= 1-0.8)
of current existing slots.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
[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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* tool/make-snapshot (package): add SHA512.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
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_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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
* 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
|
|
(swapi): Ditto.
(swapl): Ditto.
(swapll): Ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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/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 (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 (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 (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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
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 (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 (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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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): 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
|