No automatic type promotion is expected for variadic arguments.
You have to do it by hand.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c (get_insn_info_succinct_bitvector): If
VM_CHECK_MODE is 0, `body->insns_info.positions` is
freed in `rb_iseq_insns_info_encode_positions`.
Print `position` only when VM_CHECK_MODE is set.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/fileutils.rb (FileUtils::StreamUtils_#fu_windows?): select
the method definition for each platforms, and dropped supports
for deprecated platforms.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
There were major size regressions I failed to notice before in:
bm_array_sample_100k__6k
bm_array_sample_100k___10k
bm_array_sample_100k___50k
This reverts commit r63463 / 14fb10a9ec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
atomic_sub_nounderflow is expensive and objspace_malloc_increase
was showing up near the top of some `perf` profiles. The new
implementation allows the compiler to inline and eliminate
some branches from objspace_malloc_increase.
Furthermore, we do not need atomics for oldmalloc_increase
This consistently improves bm_so_count_words benchmark by
around 10% on my hardware.
name built
so_count_words 1.107
[ruby-core:87096] [Feature #14767]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
We must not leak EINTR to users in case a signal hits a
ppoll/select caller right when (or just before) the timeout
expires. In other words, the timeout should take precedence
over the -1 result from ppoll or select.
We also try one more time in case of EINTR with a zero timeout,
since technically the syscall finished before timing out if
it returns EINTR.
Regression appeared in r62457
("thread.c (update_timespec): use timespec_update_expire",
commit e6bf0128ad)
and is not in any stable release of Ruby.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/redmine-backporter.rb (StringScanner.readline): use `true`
to suppress a "literal in condition" warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (cond0): do not warn literal boolean (true and false) in
condition expressions, as they are often used as infinite loops,
deactivated code block, etc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
for now, which was committed in r63333.
Currently trunk's JIT seems to have some wrong behaviors, and this is
the most suspicious culprit of them for now. In the future, I may have
a strict test environment to detect the cause, but there's no enough
time to test this until preview2. So let me revert this and see how it
goes after this.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
URI::Generic: Respect no_proxy for both parent domain and
subdomains It is now possible to add just the subdomains for proxy bypass. In
a setting where the main domain needs to go through proxy while the
subdomains don't, it is now possible to just add the subdomains to the
no_proxy list.
The assumption that subdomains and the parent domain should
behave the same wrt no_proxy has been removed.
eg: Adding .example.com in no_proxy would allow example.com
to go through the proxy.
From: Harsimran Singh Maan <maan.harry@gmail.com>
fix https://github.com/ruby/ruby/pull/1748
[Bug #14345]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
st_table allows the use of st_shift to act as an order-preserving
queue while allowing fast lookups to prevent duplicate jobs.
In typical Ruby apps, this table will only have one entry
for gc_finalize_deferred_register.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This field has been taking up space for 5 years and never used.
Save 8kb of memory on x86-64 for now. If we ever care about
this flag, we'll simply re-add it.
* vm_trace.c (rb_postponed_job_struct): remove flags
(postponed_job_register): comment out flags assignment
[ruby-core:87052] [Misc #14764]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This allows native_sleep to use less stack (80 -> 64 bytes on
x86-64) for GVL_UNLOCK_BEGIN/END. For future APIs, we will pass
`ec` or `th` around anyways, so the BLOCKING_REGION change
should be beneficial in the future.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This seems to improve the readability of gc.c a small amount
and it doesn't have any measurable performance impact.
[ruby-core:87067] [Misc #14762]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/optparse.rb: [DOC] simplify shell prompt in examples;
other minor improvements.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac (solaris*): Move the checks of _XOPEN_SOURCE to the
location before r63443, to cover non-GCC compilers on Solaris.
This partly reverts r63443.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac (ansi_options): On Solaris, "-std=gnu99" should be
appended to CPPFLAGS instead of warnflags and strict_warnflags,
because the flag affects existance of functions and macros.
* configure.ac (solaris*): Check _XOPEN_SOURCE just after checking
"-std=gnu99" on Solaris. Because _XOPEN_SOURCE also affects existance
of many functions and macros, it is good to define it earlier.
The check is simplified to use AC_TRY_COMPILE with RUBY_WERROR_FLAG.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c, iseq.c: extract body and param.keyword in iseq as
local variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/fileutils.rb (FileUtils#mv): remove code for OS/2 emx, its
support has been dropped yeas ago.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: Change logic to check _XOPEN_SOURCE on Solaris.
With _XOPEN_SOURCE, "-std=gnu99" may also be added to CPPFLAGS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_thread.rb (TestThread#test_join_limit_*): Split
TestThread#test_join_limits for investigating hang-up on Solaris.
Each method tests only a single limit value.
[ruby-core:87045] [Bug #14761]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_atomic_t is 32-bit on 64-bit platforms (including the popular
x86-64 Linux), so save 4 bytes on this structure. This doesn't
result in any final size reduction due to padding, yet, but
future changes are possible to shrink rb_execution_context_t
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac (--with-jemalloc): accept `maybe` (other than `yes`
and `no`), check for jemalloc and use it if possible.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/generic_erb.rb: get rid of FileUtils.touch, not to depend
on fileutils.rb which will depend on rbconfig.rb which does not
exist when creating encdb.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
GCC 8.1+ introduced this warning in -Weverything. It does
shed some lights on something, but rather annoying than
useful ATM. Might be a subject to revert this option in a
future.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
FreeBSD 11.0+ supports ppoll, so we may use it after accounting
for portability differences in how it treats POLLOUT vs POLLHUP
events as mutually exclusive (as documented in the FreeBSD
poll(2) manpage).
For waiting on high-numbered single FDs, this should put
FreeBSD on equal footing with Linux and should allow cheaper
FD readiness checking with sleepy GC in the future.
* thread.c (USE_POLL, POLLERR_SET): define for FreeBSD 11.0+
(rb_wait_for_single_fd): return all requested events on POLLERR_SET
io.c (USE_POLL): define for FreeBSD 11.0+
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e