* proc.c (proc_new): promoted lambda/proc/Proc.new with no block
in a method called with a block to a warning/error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* It declares clocks which are invalid for clock_gettime(), which I consider OS bug.
* I want to keep testing all declared clocks on other platforms.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* This reverts commit a7edd05f7d.
* I prefer to exclude Solaris, I want to keep testing these clocks on Linux/macOS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Waiting on socket I/O using IO.select should work on all platforms.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
`Errno::EINVAL: Invalid argument - clock_gettime` could occur even on Linux.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
this exists for `context "when passed close_others: false" do`, but this
seems to be missing for `context "when passed close_others: true"`.
And this seems to hang forever on Windows since r66622.
https://ci.appveyor.com/project/ruby/ruby/builds/21277729
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Docker container is not always able to lower the nice value even if the
euid is a root. It depends upon the configuration of docker which
cannot check from the container itself.
This change does check it by actually trying to lower the value first.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole_method/event_interface_spec.rb:
use System Monitor Control instead of Microsoft Internet Control
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/fixtures/classes.rb: add
SYSTEM_MONITOR_CONTROL_AVAILABLE.
* spec/ruby/library/win32ole/win32ole_method/event_spec.rb: Internet
Explorer is not available in some environment. Instead, try to use
System Monitor Control.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole_method/helpcontext_spec.rb:
Use FileSystemObject. Microsoft Internet Explorer is not available
in some environment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
These random failures happen because FD number allocation
is not predictable when multiple threads are running (since
MJIT thread is opening/closing files all the time).
Real-world code practically never relies on predictable FD
number allocation (because much real-world code is
multi-threaded); so it's highly unlikely there'll be any
breakage to the user.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
All normal Ruby IO methods (IO#read, IO#gets, IO#write, ...) are
all capable of appearing to be "blocking" when presented with a
file description with the O_NONBLOCK flag set; so there is
little risk of incompatibility within Ruby-using programs.
The biggest compatibility risk is when spawning external
programs. As a result, stdin, stdout, and stderr are now always
made blocking before exec-family calls.
This change will make an event-oriented MJIT usable if it is
waiting on pipes on POSIX_like platforms.
It is ALSO necessary to take advantage of (proposed lightweight
concurrency (aka "auto-Fiber") or any similar proposal for
network concurrency: https://bugs.ruby-lang.org/issues/13618
Named-pipe (FIFO) are NOT yet non-blocking by default since
they are rarely-used and may introduce compatibility problems
and extra syscall overhead for a common path.
Please revert this commit if there are problems and if I am afk
since I am afk a lot, lately.
[ruby-core:89950] [Bug #14968]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Let me silence this until I have time to work on them, and make the CI
usable for testing other features.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
The behaviour of IO#ungetbyte has been depending on the width of
Fixnums. Fixnums should be invisible nowadays. It must be a
bug. Fix [Bug #14359]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* bin/*, lib/bundler/*, lib/bundler.rb, spec/bundler, man/*:
Merge from latest stable branch of bundler/bundler repository and
added workaround patches. I will backport them into upstream.
* common.mk, defs/gmake.mk: Added `test-bundler` task for test suite
of bundler.
* tool/sync_default_gems.rb: Added sync task for bundler.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/fixtures/event.xml use MSXML.DOMDocument
instead of InternetExplorer.Application. InternetExplorer.Application
is not available on some environments. Thanks to MSP-Greg (Greg L).
* spec/ruby/library/win32ole/win32ole_event/on_event_spec.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole_event/new_spec.rb: use
MSXML.DOMDocument. InternetExplorer.Application is not available on
some environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/shared/setproperty.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_put_methods_spec.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some enviroments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb: use Scripting
Dictionary. InternetExplorer.Application is not available on some
environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_obj_help_spec.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_method_spec.rb: recuire in
platform_is block.
* spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb: ditto.
* spec/ruby/library/win32ole/win32ole/shared/ole_method.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environments. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/fixtures/classes.rb: remove rescue block
because this file is required on Windows only.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environment. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/win32ole/invoke_spec.rb: use Scripting.Dictionary
instead of InternetExplorer.Application. InternetExplorer.Application
is not available on some environment. Thanks to MSP-Greg (Greg L).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
_getproperty spec.
* spec/ruby/library/win32ole/_getproperty_spec.rb: use
Scripting.Dictionary. InternetExplorer.Application is not available on
some environment. (Thanks to MSP-Greg (Greg L))
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from terminate_spec.rb, as suggested here:
c7220bd3de (commitcomment-31068714)
to guard other inclusions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Detecting the presence of constants in C headers is insufficient,
as a Linux kernel can be built with CONFIG_IPV6=n
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
like r64991, until we get helpful error logs on worker death or the
unstability is fixed.
Since mspec worker randomly dies on MinGW, maybe it should have an
option to retry worker death.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This spec seems to randomly kill mspec worker.
https://ci.appveyor.com/project/ruby/ruby/builds/19390874/job/wv1bsm8skd4e1pxl
To make CI stable, let me exclude this for MinGW until we get some logs
that help debugging or resolve that.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This sometimes crashes mspec worker like
https://ci.appveyor.com/project/ruby/ruby/build/9806/job/37tx2atojy96227m
and it doesn't generate helpful output and it seems hard to fix it soon.
As AppVeyor is too unstable by too many factors, let me skip this
at least for a short term. until AppVeyor gets stable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Remove .name since SEGV on MinGW is fixed.
[ruby-core:89200]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Otherwise it seems to SEGV on Windows, see
f00bf24272 (commitcomment-30650955)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/mspec/lib/mspec/utils/script.rb (MSpecScript#entries): expand
the given spec path to the realpath, not to require a library by
realpath and symbolic link path from the spec file.
reapply r64749 and r64751 overridden by r64830.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
On Appveyor, WIN32OLE sometimes fails due to a system shutdown, and
`@ie` is not assigned.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/mspec/lib/mspec/utils/script.rb (MSpecScript#entries): expand
the given spec path to the realpath, not to require a library by
realpath and symbolic link path from the spec file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Otherwise, I get NameError when running these IPv6 tests individually
or in parallel.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* This reverts commit 12f624b673fd1bd1782f4c52e3b6c78d033e7b84:
"Try 4 times for WIN32OLE specs"
* It was a machine problem, it needed to be rebooted.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* This reverts commit 9ab04897bd06767f773b35c6958a0551981093aa:
"don't run specs add at r64409 on Windows"
* It doesn't seem to help:
http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/recent.html
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Under pipe page memory pressure on Linux, a pipe may only be
created with a single buffer[1]. And as of Linux v4.18, the
fs/pipe.c::pipe_poll callback does not account for merging
done in fs/pipe::pipe_write; only the number of usable buffers
in the pipe. Thus it is possible for a pipe to be writable
(if only by a small amount) despite IO.select saying it is not.
With the default 16384 /proc/sys/fs/pipe-user-pages-soft value
and the pipe having 16 pages of buffers, this issue is trivially
reproducible by creating 1024 pipes in a background process
before running the spec:
$ ulimit -n 2053 # or something higher
$ ./miniruby -e '1024.times.map { IO.pipe }; sleep' &
$ make test-spec MSPECOPT=spec/ruby/core/io/select_spec.rb
So, we create a new pipe we never write to for testing
writability of IO.select. This may cause the test to fail with
ENFILE on an overloaded system, but at least that's an obvious
failure (unlike having a test get stuck). This should reduce
failures on our overloaded CI machines:
http://ci.rvm.jp/results/trunk-nopara@silicon-docker/1239426
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/pipe.c?h=v4.18#n642
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e