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
* Where localhost is an alias but not the primary name of 127.0.0.1.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Only Solaris 2.10 i386 and Windows seem to return 0 it and other
Solaris seem to fill the value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Happens when VALIDATE_SOCKLEN() actually checks the length such as on
FreeBSD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* I believe this should be default behavior, see [Feature #2250].
* Now make test-spec MSPECOPT='-R100 spec/ruby/library/socket' works fine.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* This reverts commit df9521fd043df1fb862e46f9b1af83223f16eb2d:
"Remove failing spec files"
* Platform guards follow in the next commits.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* This reverts commit 647fc1227a4146ecbfeb0d59358abc8d99cd8ae6:
"thread_sync.c (rb_mutex_synchronize): only unlock if we own the mutex"
* Let's try to preserve the semantics of always being locked inside
Mutex#synchronize, even if an exception interrupts ConditionVariable#wait.
* As discussed on [Bug #14999].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
If an exception is raised inside Mutex#sleep (via ConditionVariable#wait),
we cannot guarantee we can own the mutex in the ensure callback.
However, who owns the mutex at that point does not matter. What
matters is the Mutex is usable after an exception occurs.
* thread_sync.c (rb_mutex_synchronize): only unlock if we own the mutex
* spec/ruby/library/conditionvariable/wait_spec.rb: only test lock
usability after thread kill. Who owns the lock at any
particular moment is an implementation detail which we cannot
easily guarantee.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* This reverts commit 325fd38901.
* Platform guards in the next commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_io_wait_readable and rb_io_wait_writable depend on the TSD
errno value. Due to the recent changes in r64352-r64353 to
restructure GVL, errno could be set to EAGAIN from the signal
self-pipe and cause the rb_io_wait_readable spec to block
unexpectedly. This should fix rubyspec timeouts on Solaris:
http://rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20180814T042506Z.fail.html.gz
* spec/ruby/optional/capi/ext/io_spec.c: add errno= setter method
* spec/ruby/optional/capi/io_spec.rb: set errno to appropriate values for tests
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/library/socket/socket/getifaddrs_spec.rb: VirtualBox host
only adapter seems something different than ordinary interfaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
getgroups(2) may return a GID list that includes duplicated GIDs.
The behavior is totaly depends on what OS is used.
This commit fixes the example of Process.groups so that the example
is independent of this OS-dependent features.
Additonaly, this commit adds the description of such system-dependent
characteristics of Process.groups.
[ruby-dev:50603] [Bug #14969]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
FreeBSD portability notes:
Loopback connections are not instantaneous (unlike Linux), so
non-blocking read-after-write MUST check for readability via
IO.select or IO#wait_readable before attempting non-blocking
recv/read operations.
IPv6 seems favored, so we'll get "::" instead of "0.0.0.0"
Some constants are different or obsolete, so that should be
self-explanatory.
There are still other failures I or somebody else needs to get
to when we have time and feel like dealing with spec DSL:
http://rubyci.s3.amazonaws.com/freebsd11zfs/ruby-trunk/recent.html
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* OOBINLINE should be set for accepted socket
* When OOBINLINE is set, MSG_OOB shouldn't be passed to recv
Merge spec/ruby's commit 5b418374f8006318434ee9a2366382d004f585df
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit introduces new core class Enumerator::ArithmeticSequence.
Enumerator::ArithmeticSequence is a subclass of Enumerator, and
represents a number generator of an arithmetic sequence.
After this commit, Numeric#step and Range#step without blocks
returned an ArithmeticSequence object instead of an Enumerator.
This class introduces the following incompatibilities:
- You can create a zero-step ArithmeticSequence,
and its size is not ArgumentError, but Infinity.
- You can create a negative-step ArithmeticSequence from a range.
[ruby-core:82816] [Feature #13904]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
"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
* 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
* This reverts commit fb253d2032.
* 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
Non-parallel "make test-spec" caused
spec/ruby/core/process/wait2_spec.rb failures because mspec
uses "exec" in single-process mode, so there's no chance
the post-exec state could know about the MJIT child process
from its pre-exec state.
[ruby-core:87846] [Bug #14867]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c (rb_const_search): call #const_missing method on
private constants, as well as uninitialized constants.
[Feature #14328]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Reading win32/win32.c waitpid implementation, maybe waitpid(-1, ...)
on that platform will never conflict with mjit use of waitpid.
In any case, I've added WAITPID_USE_SIGCHLD macro to vm_core.h
so it can be easy for Linux/BSD users to test (hopefully!)
win32-compatible code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
The change is unstable on Windows. Please re-commit it when it correctly
supports Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* spec/ruby/command_line/rubyopt_spec.rb: skip -v in RUBYOPT
examples when CROSS_COMPILING is set by fake.rb. the version
number by -v is printed before loading libraries by -r options,
so setting RUBY_DESCRIPTION in fake.rb has no effect.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* time.c: state that Time#localtime does nothing when nothing
changes. [ruby-core:87675] [Bug #14880]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Current code clears ENV['RUBYLIB'], but on Windows it's needed when
running from build 'src' (or running make test-spec).
* Patch by MSP-Greg, from https://github.com/ruby/spec/pull/607.
* Imported manually to fix CI on Windows, without needing a full sync.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
`rb_encdb`-prefixed functions are only for internal use.
use rb_enc_alias instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
`rb_encdb`-prefixed functions are only for internal use.
use rb_enc_alias instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* encoding.c (rb_enc_capable): make it extern to check enc_capable.
enc_index can be set to limited types such as T_STRING, T_REGEX
and so on. This function check an object is this kind of types.
* include/ruby/encoding.h: ditto.
* encoding.c (enc_set_index): check a given object is enc_capable.
* include/ruby/encoding.h (PUREFUNC):
* marshal.c (encoding_name): check `rb_enc_capable` first.
* marshal.c (r_ivar): ditto. If it is not enc_capable, it should be
malformed data.
* spec/ruby/optional/capi/encoding_spec.rb: remove tests depending
on the wrong feature: all objects can set enc_index.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Only small fixes to specs from CRuby to review the diff more easily.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
It is possible to have both MJIT and normal child processes
alive, so we cannot set ECHILD based on such a guess. We can
still elide waitpid(PID <= 0) calls if we have callers in
vm->waiting_pids, however.
For specs, ensure Process.waitall does not leak MJIT
PIDs to Rubyspace.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
until [Bug #14867] is fixed. I want to start running CI with MJIT
enabled before fixing the problem.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
The klass for Data_Wrap_Struct can be NULL, but it MUST NOT appear
in the Ruby level. It is only for the C level implementation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
It can be used to get the parameters' information of method and block.
There was no way to get block parameters.
It was possible but ineffective to get method parameters via Method
object: `tp.defined_class.method(tp.method_id).parameters`
TracePoint#parameters allows us to get the information easily.
[Feature #14694]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
When RUBY_DESCRIPTION has `+JIT` already, it will be doubled.
Just fake.rb.in always has copied `RUBY_DESCRIPTION`, regardless
MJIT is enabled or not. `BOOTSTRAPRUBY` is not involved.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
`make test-spec` adds `-r./$(arch)-fake` to pass header options.
But the $(arch)-fake.rb unexpectedly modifies RUBY_DESCRIPTION and it
always drops +JIT from it since the fake.rb is built with BOOTSTRAPRUBY,
which can be miniruby. miniruby can't find MJIT header and thus
mjit_init_p is always FALSE.
So, to pass `make test-spec` with JIT enabled, we can't use
RUBY_DESCRIPTION.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e