46071 Commits

Author SHA1 Message Date
normal
cf6ec79b37 thread.c: comments on M:N threading [ci skip]
I may experiment with M:N threading in coming months.  Often I
find myself yearning for the old 1.8 days when spawning threads
was really cheap for network operations.  But I also like to use
native blocking recv_io and accept calls for round-robin load
distribution and accessing files on systems with dozens of slow
rotational disks.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-02 01:14:14 +00:00
nobu
80e1990259 rational.c: improves Rational#round rdoc [ci skip]
* rational.c (nurat_round_n): [DOC] improves Integer#round
  documentation as well as Float#round.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 22:48:01 +00:00
normal
42166c6266 test/ruby/test_optimization.rb: quiet warnings
This quiets an old "assigned but unused variable" warning left
over after r56653 as well as two new "ambiguous first argment"
warnings introduced in r58233.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 22:18:25 +00:00
normal
120976b9f9 compile.c: optimize literal String range in case/when dispatch
This is similar in spirit to opt_case_dispatch as the literal
Range here is guaranteed to be immutable when used for
checkmatch.

Normal range literals with non-frozen strings are actually
mutable, as Range#begin and Range#end exposes the strings to
modification.  So those Range objects cannot be frozen without
breaking compatibility, but Ranges in case/when dispatch can be
frozen at compile time.

* compile.c (iseq_peephole_optimize): persistent Range creation
  when String literals are used as beginning and end of range
  when used for case/when dispatch.
  [ruby-core:80290] [Feature #13355]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 21:38:25 +00:00
stomar
48bc5004c0 doc/contributors.rdoc: [DOC] update
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 20:43:35 +00:00
svn
4675ea91b0 * 2017-04-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 20:20:00 +00:00
stomar
235223353b rational.c: improve docs
* rational.c: [DOC] improve docs for Rational and related methods
  * improve class documentation for Rational
  * fix call-seq's
  * simplify examples for Rational#{floor,ceil,truncate,round}
  * fix wrong examples for #floor, subtraction, and exponentiation
  * improve docs for #<=>, Kernel#Rational, {String,Float}#to_r,
    Integer.{gcd,lcm,gcdlcm}
  * fix typos, grammar, and rdoc formatting
  * other improvements

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 20:19:59 +00:00
eregon
a6456054ae ostruct.rb: improve fix for OpenStruct.allocate + #respond_to?
* lib/ostruct.rb (OpenStruct#respond_to_missing?): this makes
  OpenStruct#respond_to? works on any OpenStruct instance,
  just like Kernel#respond_to? does, without workarounds.
  [ruby-core:80292] [Bug #13358]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 10:30:48 +00:00
svn
8dfd1e71fc * 2017-04-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 07:38:13 +00:00
nobu
f57d515d69 array.c: Array#append and Array#prepend
* array.c (Init_Array): Add alias "append" to Array#push, and
  "prepend" to Array#unshift.  [Feature #12746] [Fix GH-1574]

Author:    pascbjumper2 <stowers.joshua@live.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-01 07:38:12 +00:00
nobu
c527fa1341 exts.mk.tmpl: note footer [ci skip]
* template/exts.mk.tmpl: place note footer message at the end.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-31 07:34:47 +00:00
nobu
cdaf6db096 debug.c: check codepage value [ci skip]
* debug.c (set_debug_option): check garbage and overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-31 07:34:46 +00:00
nobu
5c9cd965be RUBY_DEBUG codepage option [ci skip]
* debug.c (set_debug_option): add "codepage" option to force
  locale charmap on Windows.

* localeinit.c (locale_charmap): use the codepage by debug env if
  given.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-31 00:35:02 +00:00
nobu
4c70f04786 setup.mak: ENABLE_DEBUG_ENV [ci skip]
* win32/setup.mak (-basic-vars-): pass ENABLE_DEBUG_ENV to
  Makefile.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-31 00:35:01 +00:00
svn
2446c759e0 * 2017-03-31
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-30 15:20:52 +00:00
nobu
44fa00eead localeinit.c: locale_charmap return value
* localeinit.c (locale_charmap): fix the return value to call conv
  function instead of encoding index on platforms where locale
  information is not available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-30 15:20:52 +00:00
nobu
f88521bb39 .travis.yml: make tests silent [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-30 07:25:13 +00:00
nobu
d4581159bd .travis.yml: checkout ruby/spec PR
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-30 07:16:20 +00:00
nobu
23e2aac889 git-refresh: rewrite options
* tool/git-refresh: parse options without git-rev-parse, which is
  old on travis.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-30 07:04:14 +00:00
nobu
c73db5c172 tool/git-refresh
* tool/git-refresh: tool to clone or update git working directory.

* Makefile.in: use git-refresh.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-30 06:44:27 +00:00
svn
a84259659e * 2017-03-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 19:12:02 +00:00
stomar
46eed7b80b methods.rdoc: small improvements
* doc/syntax/methods.rdoc: [DOC] small improvements: fix some typos,
  grammar, punctuation, consistently use capitalized "Ruby".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 19:12:01 +00:00
mame
e294fbaf5f Fix two typos
My typo checker :-) found the bugs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 11:49:39 +00:00
sorah
31a755e4f2 string.c: Supress logical-op-parentheses warning
* string.c(rb_str_upcase_bang): Supress logical-op-parentheses warning
  Patch by Fukuo Kadota <fukuo-kadota@cookpad.com>,
  Closes [GH-1570] [Bug #13387].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 11:33:59 +00:00
nobu
7e1c65dccd vsnprintf.c: prefix with precision
* vsnprintf.c (BSD_vfprintf): sign and hex-prefix should not be
  counted in precision.  [ruby-dev:47714] [Bug #8916]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 09:47:42 +00:00
nobu
85f3636e98 test_minitest_unit.rb: assert_triggered
* test/minitest/test_minitest_unit.rb (assert_triggered): rename
  to be hidden in backtraces.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 09:47:40 +00:00
sorah
af4b7c8e86 Add documents on Process::CLOCK_* constants
* process.c: Add documents on Process::CLOCK_* constants.
  Patch by Sunao Komuro <sunao-komuro@cookpad.com>.
  Closes [GH-1567] [Bug #13386]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 09:31:13 +00:00
sorah
225435514c Fix make clean errors
Patch by Kohei Suzuki <eagletmt@gmail.com>.

* common.mk(clean-rubyspec): Supress error messages when rubyspec files
  don't exist. [GH-1563] [Bug #13384]

* Makefile.in: Fix error when files don't exist. [GH-1563] [Bug #13384]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 09:24:10 +00:00
nobu
b6639a8409 parse.y: dot_or_colon
* parse.y (dot_or_colon): use the default action without type
  casts.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 05:54:14 +00:00
sorah
7dab0e07eb Remove unused Init_frozen_strings declaration
Init_frozen_strings definition is removed in r51511.
https://bugs.ruby-lang.org/issues/11423

Patch by Kohei Suzuki <eagletmt@gmail.com>

* internal.h: Remove declaration of unexist function
  [Fix GH-1558]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 04:32:00 +00:00
nobu
205ae26727 test_symbol.rb: switch to assert_not_equal
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-29 03:00:50 +00:00
svn
8234c571a7 * 2017-03-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 17:14:50 +00:00
normal
149d43d4ad test/ruby/test_symbol.rb: new test for nondeterminism
We need to ensure hashes for static symbols remain
non-deterministic to avoid DoS attacks.   This is currently the
case since 2.4+, but was not for the 2.3 series.

* test/ruby/test_symbol.rb (test_hash_nondeterministic): new test
  [ruby-core:80430] [Bug #13376]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 17:14:49 +00:00
kazu
f19fac1dd2 fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 13:47:45 +00:00
kazu
3439cc85ea Update assertion message [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 13:47:43 +00:00
nobu
a20715c8ed ostruct.rb: refine visibility failure message
* lib/ostruct.rb (method_missing): raise an exception with proper
  visibility message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 09:21:58 +00:00
nobu
50d6291d86 numeric.c: improves Integer#round rdoc [ci skip]
* numeric.c (int_round): [DOC] improves Integer#round documentation
  as well as Float#round.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 02:30:14 +00:00
svn
ad5be35980 * 2017-03-28
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 02:15:52 +00:00
nobu
e014c8c4d8 numeric.c: improves Float#round rdoc [ci skip]
* numeric.c (flo_round): [DOC] improves Float#round documentation
  to better highlight the half keyword.  [Fix GH-1541]

Author:    Evan Brodie <brodie.evan@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 02:15:51 +00:00
nobu
4756365503 dir.c: err at glob failure
* dir.c (glob_helper): raise a SystemCallError exception when
  opendir() failed, except for ENOENT, ENOTDIR, and EACCES.  this
  behavior predates 1.0; the comments in glob.c claimed that
  glob() returned -1 on error but actualy the pointer to a global
  variable, then dir_glob() did check only -1 as the comments, and
  ignored actual errors.  [ruby-core:80226] [Bug #13276]

dir.c: ruby_glob_funcs_t

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-27 14:57:08 +00:00
nobu
0d40bf8ffe error.c: warning functions
* error.c: define warning functions in all combinations of
  * no errno, system errno, argument
  * without/with encoding
  * enabled/disabled by default

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-27 13:15:48 +00:00
nobu
cc8f2f857c error.c: refactor warning messages
* error.c (with_warning_string): extract building warning message
  string from variadic arguments.

* error.c (syserr_warning): write warning message with the system
  error message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-27 10:44:32 +00:00
svn
2ff826eee7 * 2017-03-27
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-27 06:12:38 +00:00
normal
669a55dfed fix redefinition optimization for -"literal string" (UMinus)
Unfortunately this enlarges insns.def by yet another
instruction.  However, it is much prettier than opt_str_freeze
in use, and maybe we can avoid having so many instructions in
the future.

[ruby-core:80368]

* insns.def (DEFINE_INSN): new instruction: opt_str_uminus (maybe temporary)
* compile.c (iseq_compile_each0): split instructions
* test/ruby/test_optimization.rb (test_string_uminus): new test
* vm.c (vm_init_redefined_flag): set redefinintion flag for uminus
* vm_core.h (enum ruby_basic_operators): add BOP_UMINUS

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-27 06:12:37 +00:00
normal
833e42d120 NEWS: feature number for String#-@ compile-time optimization
[ruby-core:79971] [Feature #13295]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-26 10:21:45 +00:00
nobu
cb64ef240b parse.y: unterminated content token
* parse.y (parser_parse_string): defer the end token to next
  reading, to yield tSTRING_CONTENT with the unterminated content.
  [Bug #13363]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-26 07:13:43 +00:00
nobu
07e4aa67e1 gmake.mk: multi mspec
* defs/gmake.mk (MSPECOPT): enable multi exec if parallel make.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58136 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-26 01:21:57 +00:00
nobu
0e22e24de5 common.mk: test-rubyspec
* common.mk (yes-test-rubyspec): make jobserver ready.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-26 00:50:59 +00:00
svn
7c2a8668e8 * 2017-03-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-25 20:35:52 +00:00
svn
ab844e7a58 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-25 20:35:52 +00:00