52987 Commits

Author SHA1 Message Date
k0kubun
cb153527c4 [doc] Fix grammar typo in Pty_init() docstring [ci skip]
[Fix GH-2014]

From: Olle Jonsson <olle.jonsson@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 04:25:07 +00:00
k0kubun
b90bac322b Test for undef'ed method in class hierachy
This probably should have been `#bar` on the instance of class `Undef2` all along
[Fix GH-2015]

From: Alex Snaps <alex.snaps@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 04:21:57 +00:00
shyouhei
a9723e96f5 numeric.c: avoid division by zero
Forgot to add in r65751.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 04:05:53 +00:00
shyouhei
73549c501f bignum.c: fix bug in big2dbl()
I was wrong at r65753.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 03:34:53 +00:00
shyouhei
1a84c57e23 bignum.c: avoid (size_t)--
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 03:09:00 +00:00
shyouhei
ca14914039 bignum.c: BDIGIT might or might not integer-promote
BDIGIT can be unsigned int or unsigned short, depending on BDIGIT_DBL.
Given that, unsigned int and unsigned short are different in how
integer promotion works.  BOGLO assumes its argument is wider than
BDIGIT, which is not always true.  We have to force that explicitly.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 02:59:30 +00:00
shyouhei
6732423b5e enc/unicode.c: 'a' is bigger than 'A'
In ASCII, 'a' is bigger than 'A'. Which means 'A' - 'a' is a negative
number (-32, to be precise). In C, the type of 'a' and 'A' are signed
int (cf: ISO/IEC 9899:1990 section 6.1.3.4). So 'A' - 'a' is also a
signed int. It is `(signed int)-32`.

The problem is, OnigCodePoint is unsigned int. Adding a negative
number to a variable of OnigCodepoint (`code` here) introduces an
unintentional cast of `(unsigned)(signed)-32`, which is
4,294,967,264. Adding this value to code then overflows, and the
result eventually becomes normal codepoint.

The series of operations are not a serious problem but because
`code >= 'a'` holds, we can `(code - 'a') + 'A'` to reroute this.

See also: https://github.com/k-takata/Onigmo/pull/107


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 02:34:00 +00:00
shyouhei
3a083985a4 avoid division by zero
* cvt(): use signbit() instead of 1/d < 0
* w_float(): ditto
* ruby_float_step_size(): unit==0 check shall be prior to divisions
* arith_seq_float_step_size(): ditto
* rb_big_divide(): same as r65642
* fix_divide(): ditto
* rb_big_fdiv_double(): ditto
* fix_fdiv_double(): ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 01:52:39 +00:00
nobu
a3b92a5d92 rbinstall.rb: do not install rdoc flag files [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 00:37:48 +00:00
nobu
9b38ed530f bignum.c: suppress unused variable warning
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 00:28:43 +00:00
nobu
027cf467a4 pack.c: refine warning
* pack.c (unknown_directive): refine warning message at unknown
  directive in unpack too, and quote unprintable characters.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 00:25:54 +00:00
nobu
6a6d03791b pack.c: adjust indent [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 00:25:53 +00:00
svn
ecb959bd8b * 2018-11-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 22:28:07 +00:00
svn
9c8119e78b * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 22:28:06 +00:00
normal
51aaf74bba include/ruby/ruby.h (RB_ALLOCV*): remove unnecessary GC guard
text	   data	    bss	    dec	    hex	filename
 3535061	  21232	  72944	3629237	 3760b5	ruby.before
 3534141	  21232	  72944	3628317	 375d1d	ruby.after

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 22:28:03 +00:00
shyouhei
06e2873ed1 eval_error.c: log10(0) is ERANGE
By definition, the logarithm of 0 is negative infinity.  This is a
pole error (cf: cf: ISO/IEC 9899:1999 section 7.12.1 paragraph 3) and
of course, cannot fit into an `int` value.  We have to resort to
INT_MIN.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 09:03:03 +00:00
shyouhei
b7f5c573ef .travis.yml: give up mac universal binary [ci skip]
OK, nobody is actively willing to maintain this configuration.  Just
stop annoying people by build failures.  See:
https://travis-ci.org/ruby/ruby/jobs/455377387


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 08:33:38 +00:00
shyouhei
abf728103f .travis.yml: -j3 [ci skip]
Now that ccache is enabled.  Compilations are made IO heavy, not CPU
bound.  This means parallel jobs beyond CPU count could gain more
speed.  From my experiment, I can conclude the good old "number of
cores plus one" tactics works the best.

The experiment: https://travis-ci.org/shyouhei/ruby/builds/454891855



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 07:37:05 +00:00
svn
906c8788b9 * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 07:34:06 +00:00
shyouhei
86d1fc8863 suppress integer overflow warnings
* util.c: annotate as NO_SANITIZE
* bignum.c: avoid (size_t)--
* marshal.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 07:34:01 +00:00
nobu
a42784000e . command in some sh cannot take arguments
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 06:22:17 +00:00
shyouhei
f98004c0f2 hash.c: cast from double to unsigned is undefined
When a negative double is casted into an unsigned type, that operation
is undefined (cf: ISO/IEC 9899:1990 section 6.2.9.3).  Recent versions
of C kindly footnotes that "The remaindering operation performed when
a value of integer type is converted to unsigned type need not be
performed when a value of real floating type is converted to unsigned
type" (cf: ISO/IEC 9899:1999 section 6.3.1.4 footnote 50).

So it is a wrong idea to just cast a double to st_data_t.

The intention of the code is commented as "mix the actual float value
in".  It seems we should do a reinterpret_cast and rule out
static_cast.

Confirmed this changeset does not affect `make benchmark`.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 06:17:53 +00:00
svn
ef5eacc0e0 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 05:22:45 +00:00
nobu
3dac8eda41 tool/mjit_archflag.sh: separated, too many escapes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 05:22:44 +00:00
shyouhei
2212c1dc16 bignum.c: ee should be signed
In C, signed + unsigned of the same size results in unsigned (cf:
ISO/IEC 9899:1990 section 6.2.1.5). However `num` is signed here.
Which means the addition must be done in signed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 05:10:40 +00:00
kazu
42d797d8e9 Revert "Use CC without ccache as MJIT_CC"
because CI failed: https://travis-ci.org/ruby/ruby/builds/455313917

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 03:45:34 +00:00
kazu
ae68030395 Use CC without ccache as MJIT_CC
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 03:01:20 +00:00
shyouhei
7855c23ae8 .travis.yml: enable ccache
Travis has `cache: ccache` feature so let us enable it.  Also, because
`config.cache` is generated during the compilation why not cache that
file for a later use.  [fix GH-2013]

Caveats:

- When something went wrong, cache entries can be deleted from
  https://travis-ci.org/ruby/ruby/caches (requires login).

- See `ccache(1)` manual page for the new environment variables.

- `ccache` thinks two compilations are not identical if they produce
  different diagnostics.  The -fno-diagnostics-color option is to
  prevent such cache missihts only because TTY is present / absent at
  the compilation time.

- In this changeset two "ccache --show-stats" invocations are inserted
  before and after the compilation to measure cache hit rates etc.
  Will revisit their outputs once the cache is warmed up.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 02:25:25 +00:00
svn
ebdf9f0758 * 2018-11-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 21:04:59 +00:00
k0kubun
8945eeda8f Fix syntax on Binding.irb documentation [ci skip]
There was incorrect backticks (`) instead of plus signs to denote method
references, and a typo.

[Fix GH-2016]

From: Olivier Lacan <hi@olivierlacan.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 21:04:57 +00:00
nobu
ed778c2a89 rational.c (nurat_div): use the dedicated function nurat_to_f
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 14:12:30 +00:00
svn
33758ded08 * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 09:53:13 +00:00
shyouhei
a6e887153e numeric.c: avoid division by zero
same as r65642.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 09:53:11 +00:00
k0kubun
ed42b0102d test_ftp.rb: loosen another timeout requirement
for Travis osx.
https://travis-ci.org/ruby/ruby/jobs/454864155

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 08:21:05 +00:00
k0kubun
2a477e0e44 test_ftp.rb: loosen timeout for Travis osx
https://travis-ci.org/ruby/ruby/jobs/454798071

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 07:44:30 +00:00
k0kubun
158562dabb test_gem_stream_ui.rb: loosen timeout for --jit-wait
https://app.wercker.com/ruby/ruby/runs/mjit-test2/5beba9be183106002852f8a6?step=5bebc1a087436a0006f94a22

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 07:38:05 +00:00
shyouhei
c2ef40d26a .travis.yml: specify git -q
We are not interested in git(1) output.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 04:50:59 +00:00
nobu
f34e8ff672 Add RbConfig.fire_update!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 04:42:14 +00:00
svn
7a823be8d0 * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 03:52:31 +00:00
normal
cc07dc7cf2 thread.c (rb_thread_fd_select): favor rb_thread_* when no FDs
select() is a crap API for even sleeping on sigwait_fd, so favor
the native_sleep-based functions when there are no FDs, instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 03:52:28 +00:00
nobu
cb592b3713 defs/known_errors.def: update on macOS Mojave Xcode 10.1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 02:27:17 +00:00
nobu
2c989a6ff4 Makefile.in: update-known-errors
* Makefile.in (update-known-errors): update defs/known_errors.def
  by using errno(1).

* defs/known_errors.def: sort alphabetically for merger.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 02:27:16 +00:00
shyouhei
eea3536e67 .travis.yml: add empty lines for readability [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 00:43:45 +00:00
svn
6716bca67b * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 23:06:51 +00:00
k0kubun
3bd8eb6849 test/excludes/../TestWEBrickUtils.rb: exclude unstable test
for now. This seems to get unstable after r65691.

test/excludes/_travis/osx: renamed from test/excludes/_travis because
it's only for osx builds.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 23:06:49 +00:00
svn
6876140d37 * 2018-11-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 21:36:59 +00:00
k0kubun
1ec3039a16 .travis.yml: stop allowing osx failure
it seems to be more stable than the timing we upgraded travis image.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 21:36:58 +00:00
nobu
27f4058f92 Makefile.in: $ for shell needs to be escaped in Makefile
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 14:56:49 +00:00
kazu
b93023f8ff Remove duplicated assignment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 14:35:19 +00:00
shyouhei
59f1a69aab .travis.tml: reintroduce exclusions for osx
Sorry, seen the failures again.  Was a wrong idea to delete
the --exclude.

See https://travis-ci.org/ruby/ruby/jobs/454329443#L2233


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 07:19:12 +00:00