summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* win32/Makefile.sub: build precompiled headerk0kubun2018-08-042-0/+34
| | | | | | | | | See the comment in win32/Makefile.sub. Not only .pch, but also .obj needs to be installed and used on runtime. .gitignore: ignore .pch that will be built by this. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_io.rb (test_select_leak): speedup and reduce memory usenormal2018-08-041-5/+20
| | | | | | | | | | | | We can reuse the sub-thread and exception with Thread#raise to reproduce the old memory leak with less overhead. This allows us to to run more iterations and improve reliability of the actual test, particularly on platforms without USE_THREAD_CACHE. For glibc and jemalloc, also limit arena count to avoid inadvertant growth. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_thread.rb (test_thread_interrupt_for_killed_thread): conserve ↵normal2018-08-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | resources Use Thread.pass to let the sub-thread finish. This should avoid running out of memory on resource-constrained systems. (We don't want to use Thread#join to hit the exception) This results in a significant memory usage reduction in this test: make test-all TESTS='../test/ruby/test_thread.rb -v -n test_thread_interrupt_for_killed_thread' Before: 3.46user 2.02system 0:05.29elapsed 103%CPU (0avgtext+0avgdata 88672maxresident)k 0inputs+0outputs (0major+143071minor)pagefaults 0swaps After: 3.40user 1.83system 0:05.20elapsed 100%CPU (0avgtext+0avgdata 9368maxresident)k 0inputs+0outputs (0major+3059minor)pagefaults 0swaps cf. https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-trunk/log/20180803T231706Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c (consume_communication_pipe): do not retry after short readnormal2018-08-041-0/+3
| | | | | | | | | | Saves a syscall and slightly improves vm_thread_condvar1 benchmark slightly (more improvements on the way): r64170 this patch vm_thread_condvar1 0.917 1.065 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_io.rb (test_race_gets_and_close): timeout each threadnormal2018-08-041-4/+5
| | | | | | | | | | Still looking into CI failures on P895 (and seemingly no other boxes): http://ci.rvm.jp/results/trunk@P895/1190369 :< git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2018-08-05svn2018-08-041-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: stop building MJIT min header for mswink0kubun2018-08-042-28/+33
| | | | | | | | | | | | | | | | | | | Since it's impossible to leave macro when preprocessing C source file with cl.exe, I decided to create precompiled header on Ruby's build time instead. We're not doing it for non-mswin environment for 2 reasons: 1) Precompiled header may not be able to be used when CC is upgraded. 2) We need to create as many precompiled headers as the patterns of compile options. (Probably only 2, for with and without --jit-debug) I'll ignore them for mswin for now, and solve it later by including CC version and --jit-debug information in precompiled header filename. After that, non-mswin environment may follow it to simplify build system. Makefile.in: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/socket/socket/getaddrinfo_spec.rb: avoid nonsensical lookupnormal2018-08-031-2/+2
| | | | | | | | | | | "http" is a TCP service, so /etc/services on typical GNU/Linux systems only specify a TCP port for it. Use "discard" since it seems used for other specs and is specified as both TCP and UDP. This caused many CI failures like the following: git clone https://gist.github.com/812a9b747e4c4cb2e844d4be7991cd2d git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@9be7c7eeregon2018-08-03246-544/+9104
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/mspec@072849eeregon2018-08-035-32/+40
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* encoding.c (rb_enc_get_index): return -1 for non-encoding capable objectseregon2018-08-032-8/+15
| | | | | | | * Clarify logic and add spec. * Now passes test-all with the JSON fix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/json/parser/parser.c: do not call rb_str_resize() on Time objecteregon2018-08-032-10/+14
| | | | | | * See https://github.com/flori/json/issues/342 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2018-08-04svn2018-08-031-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix missed update of parser source in r62429eregon2018-08-031-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert "encoding.c (rb_enc_get_index): return -1 for non-encoding capable ↵eregon2018-08-032-15/+8
| | | | | | | | | objects" * This reverts commit fb253d2032e51f333e6577aa4fcf0c03f9c6fc02. * The CI is failing, this seems a bug in the JSON C extension. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* encoding.c (rb_enc_get_index): return -1 for non-encoding capable objectseregon2018-08-032-8/+15
| | | | | | * Clarify logic and add spec. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* encoding.c (enc_set_index): raise instead of rb_bug() for non-encoding ↵eregon2018-08-032-1/+12
| | | | | | | | capable objects * Add spec. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* random.c: fix fallback valuenobu2018-08-031-4/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* random.c: use rb_check_funcallnobu2018-08-031-2/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* random.c: moved domain errornobu2018-08-031-1/+2
| | | | | | | * random.c (rand_range): moved call of domain_error(), not to raise an exception in range_values(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ast.c: allocator of Nodenobu2018-08-032-2/+5
| | | | | | | * ast.c (Init_ast): undefine allocator of Node, as a method call on an uninitialized Node causes segfault. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* random.c: endless range randomnobu2018-08-032-1/+3
| | | | | | | * random.c (range_values): cannot determine the domain of an endless range. [ruby-core:88261] [Bug #14958] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: add a macro guard for PTHREAD_CANCEL_ENABLEmame2018-08-031-0/+2
| | | | | | It seems to be unavailable on some platforms including my Android phone. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (gvl_acquire_common): persist timeout across callsnormal2018-08-021-4/+10
| | | | | | | | | | | | Reuse old expiration time if the previous native_cond_timedwait did not return ETIMEDOUT. This should improve timeslice accuracy for Timeout.timeout rubyspec without causing excessive wakeups on uncontended GVL acquisition. cf. http://ci.rvm.jp/results/trunk-gc-asserts@silicon-docker/1180486 http://ci.rvm.jp/results/trunk-gc-asserts@silicon-docker/1184623 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2018-08-03svn2018-08-021-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_jit.rb: split the test concernk0kubun2018-08-021-14/+17
| | | | | | | Actually unload_units is working on MinGW, but putiseq is behaving badly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mjit.c: skip compaction on MinGWk0kubun2018-08-021-3/+5
| | | | | | | because linking multiple .o files is problematic without having `static` to the same function definitions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mjit.c: don't apply workaround if --enable-load-relativek0kubun2018-08-021-5/+6
| | | | | | | | | | | | is specified. This is needed for MinGW because MJIT_BUILD_DIR doesn't prefix path like "C:\msys64", so it can't be read without msys2's conversion. The workaround is not needed for Windows (LOAD_RELATIVE looks defined by default) anyway. So removed it for such environment. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mjit.c: suppress warnings by -Wunused-valuek0kubun2018-08-021-1/+1
| | | | | | | | | | | | on MinGW with __atomic_exchange_n(). It returns the previous pointer value but obviously it's not needed in MJIT's usage. mjit.c: In function 'compact_all_jit_code': ruby_atomic.h:11:36: warning: value computed is not used [-Wunused-value] # define ATOMIC_EXCHANGE(var, val) __atomic_exchange_n(&(var), (val), __ATOMIC_SEQ_CST) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_win32.c: suppress warnings by -Wsuggest-attributek0kubun2018-08-021-1/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2018-08-02svn2018-08-021-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/socket/test_socket.rb (test_timestampns): retry sendnormal2018-08-021-30/+29
| | | | | | | | | | It looks like we need to retry test_timestampns in addition to test_timestamp; so share some code while we're at it. cf. http://ci.rvm.jp/results/trunk-test@frontier/1153126 [ruby-core:88104] [Bug #14898] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* move atomic logic from mjit.c from ruby_atomic.hshyouhei2018-08-012-9/+5
| | | | | | | This macro shall be shared among other files, not just for mjit.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* (cosmetic) add blank lines for better readabilityshyouhei2018-08-011-0/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] Added CI build status for Japanese docsnobu2018-07-311-0/+3
| | | | | | | | [Fix GH-1923] From: Andrea Gómez <crypto.andrea@protonmail.ch> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add same comment to thwait.gemspec like other gemspec at r64145kazu2018-07-311-0/+1
| | | | | | [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add PRINTF_ARGS to kprintfkazu2018-07-312-1/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2018-08-01svn2018-07-311-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in: remove GNU-make dependencynobu2018-07-311-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Try to load version file of github repository at first.hsbt2018-07-318-8/+48
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* transform_mjit_header.rb: more strict FUNC_HEADER_REGEXPk0kubun2018-07-311-1/+1
| | | | | | to reduce "SKIPPED" logs on MJIT header build. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mjit.c: allow using MJIT header in build directoryk0kubun2018-07-315-9/+18
| | | | | | | | | | | | | | | | when $MJIT_SEARCH_BUILD_DIR is set. If prefix path is owned by root, `make install` needs to be run by root. But in general we don't want to run `make test-all`, and also running `make test-all` currently fails due to permission tests of rdoc and rubygems. Thus, prior to this commit, specifying a prefix like "/usr/local" could mean there was no way to pass test-all. So we should not depend on `make install` for `make test-all`. Thus I reverted r64104 and r64103, and applied this workaround to pass `make test-all` without `make install`. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Follow up r64141 with sync tool.hsbt2018-07-311-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fixed inconsistency gemspec location.hsbt2018-07-311-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fixed unexpected direction deletion with irb sync.hsbt2018-07-311-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Support Sync module same as other default gems.hsbt2018-07-311-6/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* transform_mjit_header.rb: accept having attributek0kubun2018-07-311-1/+5
| | | | | | | | | | | | | | | | between a type of return value and function identifier. Like: ``` rb_control_frame_t * __attribute__ ((__fastcall__)) rb_vm_opt_struct_aref(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp) { ... } ``` [Bug #14949] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Move obsoleted test/thread/test_*.rb with the current implementation.hsbt2018-07-313-2/+2
| | | | | | | | | * test/ruby/test_thread_{cv,queue}.rb: Move under the test/ruby directory. and rename TestThread* from Test*. * test/test_sync.rb: Move toplevel of test diretory because sync is still standard library. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fixed inconsistency file structure for gemspec.hsbt2018-07-311-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64136 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_io.rb (test_race_gets_and_close): use SIGABRT on timeoutnormal2018-07-311-1/+1
| | | | | | | | I can't reproduce the test failure and I'm still not sure what's wrong, but maybe we can get a core dump from P895: http://ci.rvm.jp/results/trunk@P895/1174672 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e