Your IP : 3.15.10.117
------------------------------------------------------------------------
r67939 | usa | 2021-04-05 20:46:35 +0900 (Mon, 05 Apr 2021) | 1 line
add tag v2_5_9
------------------------------------------------------------------------
r67938 | usa | 2021-04-05 20:46:23 +0900 (Mon, 05 Apr 2021) | 2 lines
Oops, forgotten to add
------------------------------------------------------------------------
r67937 | usa | 2021-04-05 20:45:31 +0900 (Mon, 05 Apr 2021) | 2 lines
REXML 3.1.7.4
------------------------------------------------------------------------
r67893 | usa | 2021-02-16 22:35:19 +0900 (Tue, 16 Feb 2021) | 4 lines
Backport webrick patch for CVE-2020-25613
[Backport #17201]
------------------------------------------------------------------------
r67889 | usa | 2020-12-09 22:55:29 +0900 (Wed, 09 Dec 2020) | 2 lines
[Backport #17381] repalce the old certs in RubyGems
------------------------------------------------------------------------
r67887 | usa | 2020-10-28 22:12:06 +0900 (Wed, 28 Oct 2020) | 21 lines
merge revision(s): 07786ed
* test/net/http/test_https.rb: Stop the error due to openssl 1.1.1h
On some environments that uses OpenSSL 1.1.1h, the two tests now fail.
http://rubyci.s3.amazonaws.com/android29-x86_64/ruby-master/log/20200924T062352Z.fail.html.gz
https://github.com/ruby/ruby/runs/1159288773?check_suite_focus=true
```
1) Failure:
TestNetHTTPS#test_get [/data/data/com.termux/files/home/cb/tmp/build/202 00924T062352Z/ruby/test/net/http/test_https.rb:47]:
<"0\x82\x03\xED0\x82\x02\xD5\xA0\x03..."> expected but was
<"0\x82\x03\xE30\x82\x02\xCB\xA0\x03...">.
```
Not sure why, but verify_callback now seems to receive only SERVER_CERT
but not CA_CERT.
It would be good to investigate the issue furthermore, but tentatively,
I want to stop the failures.
------------------------------------------------------------------------
r67885 | usa | 2020-06-14 01:03:14 +0900 (Sun, 14 Jun 2020) | 13 lines
merge revision(s) 7e289cdf3fed588b2d5a6973e29f9ff95cb8d76c: [Backport #16949]
[ruby/psych] Fixing compatibility with libyaml 0.2.5
The main issue is that commas aren't allowed in local tags. libyaml
was updated to follow the spec, and our tests were out of date.
See: https://github.com/yaml/libyaml/issues/196
https://github.com/ruby/psych/commit/3f5e520fd3
Note that this is not security fix, but need for release processs.
------------------------------------------------------------------------
r67881 | usa | 2020-03-31 21:13:31 +0900 (Tue, 31 Mar 2020) | 5 lines
merge revision(s) 47a1872cd8b901b8aab6dedce7fa3807c97d290d: [Backport #16681]
Use osuosl instead of GitHub releases
Because the package provided by GitHub releases is different from sourceware.
------------------------------------------------------------------------
r67877 | usa | 2020-03-31 20:40:08 +0900 (Tue, 31 Mar 2020) | 8 lines
merge revision(s) 61b7f86248bd121be2e83768be71ef289e8e5b90
* ext/socket/init.c: do not return uninitialized buffer
Resize string buffer only if some data is received in
BasicSocket#read_nonblock and some methods.
Co-Authored-By: Samuel Williams <samuel.williams@oriontransfer.co.nz>
------------------------------------------------------------------------
r67872 | usa | 2020-03-31 07:47:56 +0900 (Tue, 31 Mar 2020) | 7 lines
merge revision(s) 4adb2d655dcd54b28366b4d17e86b21e2b622cd1: [Backport #16738]
Make RbConfig::CONFIG values mutable [Bug #16738]
As `RbConfig.expand` modifies the argument and involved `CONFIG`
values, its values should be mutable.
------------------------------------------------------------------------
r67871 | usa | 2020-03-31 07:44:13 +0900 (Tue, 31 Mar 2020) | 28 lines
merge revision(s) 62743: [Backport #16687]
Fix FrozenError on `Ripper.slice`
Currently `Ripper.slice` raises a FrozenError
```ruby
require 'ripper'
p Ripper.slice('foo', 'ident')
```
```
/path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:193:in `concat': can't modify frozen String (FrozenError)
from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:193:in `block in compile'
from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:190:in `scan'
from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:190:in `compile'
from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:169:in `initialize'
from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:151:in `new'
from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:151:in `token_match'
from /path/to/g/lib/ruby/2.6.0/ripper/lexer.rb:144:in `slice'
from /tmp/tmp.kb4cnhvum2/test.rb:2:in `<main>'
```
This patch will fix the problem.
[Fix GH-1837]
From: Masataka Pocke Kuwabara <kuwabara@pocke.me>
------------------------------------------------------------------------
r67870 | usa | 2020-03-31 07:33:37 +0900 (Tue, 31 Mar 2020) | 4 lines
merge revision(s) 8a6ba10f9dd456cf54de800203cf04bbe42271fb: [Backport #12392]
Do not make disabled directories at installation [Bug #12392]
------------------------------------------------------------------------
r67869 | usa | 2020-03-31 07:22:10 +0900 (Tue, 31 Mar 2020) | 6 lines
merge revision(s) 36e9ed7fef6eb2d14becf6c52452e4ab16e4bf01: [Backport #16698]
backport 80b5a0ff2a7709367178f29d4ebe1c54122b1c27 partially as a
securify fix for CVE-2020-10663. The patch was provided by Jeremy Evans.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
------------------------------------------------------------------------
r67868 | usa | 2020-03-31 07:11:15 +0900 (Tue, 31 Mar 2020) | 7 lines
merge revision(s) 6e6844320de989cb88a154e2ac75066ccea1bba2: [Backport #16619]
Fixed duplicated warning
As `command_rhs` is always a "value expression", `command_asgn`
does not need the same check.
------------------------------------------------------------------------
r67867 | usa | 2020-03-31 07:05:30 +0900 (Tue, 31 Mar 2020) | 7 lines
merge revision(s) 6a2d779027818eda418c9118f700b36816e833a5: [Backport #16681]
Switch to download libffi source package to github releases from
sourceware.org
[Bug #16681]
(cherry picked from commit 86022167461dc90b70164e2bb23316959bbfd6ba)
------------------------------------------------------------------------
r67866 | usa | 2020-03-31 06:51:46 +0900 (Tue, 31 Mar 2020) | 10 lines
merge revision(s) 77596fb7a91cc119b25ac9e19b3c8682709765b4: [Backport #16138]
Do not turn on keyword_init for Struct subclass if keyword hash is
empty
This was accidentally turned on because there was no checking for
Qundef.
Also, since only a single keyword is currently supported, simplify
the rb_get_kwargs call.
------------------------------------------------------------------------
r67865 | usa | 2020-03-31 06:49:42 +0900 (Tue, 31 Mar 2020) | 8 lines
merge revision(s) 4f19666e8b144600e959e4673f79d63f98bd637d: [Backport #16508]
`Regexp` in `MatchData` can be `nil`
`String#sub` with a string pattern defers creating a `Regexp`
until `MatchData#regexp` creates a `Regexp` from the matched
string. `Regexp#last_match(group_name)` accessed its content
without creating the `Regexp` though. [Bug #16508]
------------------------------------------------------------------------
r67864 | usa | 2020-03-31 06:46:27 +0900 (Tue, 31 Mar 2020) | 28 lines
merge revision(s) d6a2bce64a7fa1099e507e1d36b5f1533f42f60f,c687be4bc01c9ce52ea990945d9304d6fe59fe9b: [Backport #16159]
time.c (find_time_t): fix round-to-zero bug
`find_time_t` did not work correctly for year older than the Epoch
because it used C's integer division (which rounds negative to zero).
For example, `TIme.new(1933)` returned a wrong time whose year is 1922
in Asia/Kuala_Lumpur because there is no 00:00:00 1st Jan. 1933 in the
time zone.
```
$ TZ=Asia/Kuala_Lumpur ruby -e 'p Time.new(1933)'
1932-12-31 00:00:00 +0700
```
This change fixes the issue by using `DIV` macro instead of `/`.
Now `Time.new(1933)` returns a time in 1933.
```
$ TZ=Asia/Kuala_Lumpur ruby -e 'p Time.new(1933)'
1933-01-01 00:20:00 +0720
```
[Bug #16159]
Added a test for [Bug #16159]
------------------------------------------------------------------------
r67863 | usa | 2020-03-31 06:37:50 +0900 (Tue, 31 Mar 2020) | 21 lines
merge revision(s) 203b7fa1ae8cc40d41c38d684f70b3fea7fae813,0131fab749fb76800de09e49a6abf910201c5b58,9c0cd5c569ba22bc68d1a77ad6580a275cd99639,c144d7215b3444fa36d28d540b60170a5b30743d: [Backport #16196]
Guard static variable first
* ext/openssl/ossl_asn1.c (Init_ossl_asn1): register the static
variable to grab an internal object, before creating the object.
otherwise the just-created object could get collected during the
global variable list allocation. [Bug #16196]
Slimed down test runtime by stressing openssl.so only [Bug #16196]
Prefer rb_gc_register_mark_object
* ext/openssl/ossl_asn1.c (Init_ossl_asn1): prefer
`rb_gc_register_mark_object`, which is better for constant
objects, over `rb_gc_register_address` for global/static
variables which can be re-assigned at runtime. [Bug #16196]
Skip very time consuming test [Bug #16196]
------------------------------------------------------------------------
r67862 | usa | 2020-03-31 06:26:06 +0900 (Tue, 31 Mar 2020) | 4 lines
merge revision(s) 463092b84da7933f307cc8747f948f68ef19f5fd: [Backport #16279]
Update rake-12.3.3.
------------------------------------------------------------------------
r67861 | usa | 2020-03-31 06:21:53 +0900 (Tue, 31 Mar 2020) | 14 lines
merge revision(s) c9423b016cfeab852bc5a829e55e0a11f80b3ab7,0b1e26398e018116180bf41cb63887f77d5d1b82,78ee2c245331e353e218b8fac9ca722a2bcd8fea: [Backport #15968]
marshal.c: check instance variable count
* marshal.c (w_obj_each): ensure that no instance variable was
added while dumping other instance variables. [Bug #15968]
Hoisted out w_ivar_each
marshal.c: check instance variable count
* marshal.c (w_ivar_each): ensure that no instance variable was
removed while dumping other instance variables. [Bug #15968]
------------------------------------------------------------------------
r67860 | usa | 2020-03-31 06:11:41 +0900 (Tue, 31 Mar 2020) | 13 lines
merge revision(s) 78ef2d0f331c3e056ee367214710b41722de2fe0: [Backport #15935]
merge revision(s) 8b3774be3dd9f472bddd99e84e3c9fe2ff99d7ac: [Backport
#15935]
Fix memory leak
* string.c (str_make_independent_expand): free independent buffer.
[Bug# 15935]
Co-Authored-By: luke-gru (Luke Gruber) <luke.gru@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
------------------------------------------------------------------------
r67829 | usa | 2019-12-04 15:52:01 +0900 (Wed, 04 Dec 2019) | 7 lines
merge revision(s) 2a477e0e444de6344048101466fb9189b9defddc: [Backport #16353]
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
------------------------------------------------------------------------
r67827 | usa | 2019-11-08 17:29:32 +0900 (Fri, 08 Nov 2019) | 14 lines
merge revision(s) 6333020fc924d3ae63775c032bbe8f57364cd42e:
atime may not updated unless strictatime is set on macOS Catalina
Cited from mount(8):
```
strictatime
Always update the file access time when reading from a
file. Without this option the filesystem may default to a
less strict update mode, where some access time updates
are skipped for performance reasons. This option could be
ignored if it is not supported by the filesystem.
```
------------------------------------------------------------------------
r67826 | usa | 2019-10-03 11:27:34 +0900 (Thu, 03 Oct 2019) | 2 lines
Bump version
------------------------------------------------------------------------
r67815 | usa | 2019-10-01 20:02:16 +0900 (Tue, 01 Oct 2019) | 2 lines
Forgotten to update :)
------------------------------------------------------------------------
r67814 | usa | 2019-10-01 20:01:53 +0900 (Tue, 01 Oct 2019) | 6 lines
lib/shell/command-processor.rb (Shell#[]): prevent unknown command
`FileTest.send(command, ...)` allows to call not only FileTest-related
methods but also any method that belongs to Kernel, Object, etc.
patched by <mame@ruby-lang.org>
------------------------------------------------------------------------
r67813 | usa | 2019-10-01 20:01:05 +0900 (Tue, 01 Oct 2019) | 10 lines
merge revision(s) 3ce238b5f9795581eb84114dcfbdf4aa086bfecc
WEBrick: prevent response splitting and header injection
This is a follow up to d9d4a28.
The commit prevented CRLR, but did not address an isolated CR or an
isolated LF.
Co-Authored-By: NARUSE, Yui <naruse@airemix.jp>
------------------------------------------------------------------------
r67811 | usa | 2019-10-01 19:59:42 +0900 (Tue, 01 Oct 2019) | 7 lines
merge revision(s) 36e057e26ef2104bc2349799d6c52d22bb1c7d03
Loop with String#scan without creating substrings
Create the substrings necessary parts only, instead of cutting the
rest of the buffer. Also removed a useless, probable typo, regexp.
------------------------------------------------------------------------
r67809 | usa | 2019-10-01 19:58:14 +0900 (Tue, 01 Oct 2019) | 7 lines
merge revision(s) a0a2640b398cffd351f87d3f6243103add66575b
Fix for wrong fnmatch patttern
* dir.c (file_s_fnmatch): ensure that pattern does not contain a
NUL character. https://hackerone.com/reports/449617
------------------------------------------------------------------------
r67800 | usa | 2019-09-02 05:10:27 +0900 (Mon, 02 Sep 2019) | 2 lines
Bump version to 2.5.7
------------------------------------------------------------------------
r67793 | usa | 2019-08-28 15:43:56 +0900 (Wed, 28 Aug 2019) | 3 lines
merger revision(s): f308ab2131ee675000926540cbb8c13c91dc3be5
Remove jquery.js
------------------------------------------------------------------------
r67790 | usa | 2019-08-28 13:57:58 +0900 (Wed, 28 Aug 2019) | 4 lines
merge revision(s) 989e8ad322afdfa3aa06e74b89fc42aef42895d0:
Remove debug print [ci skip]
------------------------------------------------------------------------
r67786 | usa | 2019-08-28 00:10:35 +0900 (Wed, 28 Aug 2019) | 2 lines
Bump version to 2.5.7
------------------------------------------------------------------------
r67779 | usa | 2019-08-27 21:53:55 +0900 (Tue, 27 Aug 2019) | 2 lines
Update rdoc version from 6.0.1 to 6.0.1.1.
------------------------------------------------------------------------
r67778 | usa | 2019-08-27 18:04:54 +0900 (Tue, 27 Aug 2019) | 2 lines
Skip test_gc_stress_at_startup because it causes SEGV on some platforms
------------------------------------------------------------------------
r67777 | usa | 2019-08-27 14:28:30 +0900 (Tue, 27 Aug 2019) | 5 lines
merge revision(s) 1613917ae64: [Backport #15784]
Defer setting gc_stress instead of setting dont_gc
[Bug #15784]
------------------------------------------------------------------------
r67776 | usa | 2019-08-27 14:02:29 +0900 (Tue, 27 Aug 2019) | 3 lines
Revert a part of r67767
it was not necessary for ruby_2_5.
------------------------------------------------------------------------
r67775 | usa | 2019-08-27 12:08:53 +0900 (Tue, 27 Aug 2019) | 5 lines
merge revision(s) f1a52d96a59c63d46cb23af60cdcaf38e30e0512 [Backport #15784]
Defer setting gc_stress until inits done
[Bug #15784]
------------------------------------------------------------------------
r67774 | usa | 2019-08-27 02:03:41 +0900 (Tue, 27 Aug 2019) | 11 lines
merge revision(s) f91879a7b548284c93743168acfd11e3d2aeefac,9557069299ac3b96691040a541afa65761a724ad: [Backport #15992]
handle_interrupt to defend monitor state [Bug #15992]
If an exception is raised from another thread for example Timeout
and this thread is just after `mon_exit`'s `@mon_owner = nil`,
the exception breaks the state of MonitorMixin. To prevent that situation,
it need to block interruption in mon_enter and mon_exit.
Avoid creating Hash objects per each mon_synchronize call (#2393)
------------------------------------------------------------------------
r67773 | usa | 2019-08-27 01:49:07 +0900 (Tue, 27 Aug 2019) | 7 lines
merge revision(s) d5c33364e3c0efb15e11df417c925afee2cdb9c9: [Backport #16105]
Fixed heap-use-after-free
* string.c (rb_str_sub_bang): retrieves a pointer to the
replacement string buffer just before using it, for the case of
replacement with the receiver string itself. [Bug #16105]
------------------------------------------------------------------------
r67772 | usa | 2019-08-27 01:44:03 +0900 (Tue, 27 Aug 2019) | 6 lines
merge revision(s) 5b1bf8dd2d08ae7371ecf025967376bb794ed651: [Backport #16099]
UTF LE is fixed at least the first 2 bytes
* io.c (io_strip_bom): if the first 2 bytes are 0xFF0xFE, it
should be a little-endian UTF, 16 or 32. [Bug #16099]
------------------------------------------------------------------------
r67771 | usa | 2019-08-27 01:20:36 +0900 (Tue, 27 Aug 2019) | 13 lines
merge revision(s) ec8e5f5aa64e2a54cf1e303f2b012c98e8d521ba,5a187e26adc8aa32367f294c1496935c7356d386: [Backport #15952]
array.c: always check frozenness in Array#unshift. Fixes [Bug #15952]
Closes: https://github.com/ruby/ruby/pull/2251
array.c add back shared array optimization to
ary_ensure_room_for_unshift
Bug fix in commit ec8e5f5aa64e2a [Bug #15952] disabled an
optimization in this function.
Closes: https://github.com/ruby/ruby/pull/2252
------------------------------------------------------------------------
r67770 | usa | 2019-08-27 01:17:49 +0900 (Tue, 27 Aug 2019) | 6 lines
merge revision(s) 8f51da5d41f0642d5a971e4223d1ba14643c6398: [Backport #15946]
Get rid of undefined behavior
* string.c (rb_str_sub_bang): str and repl can be same.
[Bug #15946]
------------------------------------------------------------------------
r67769 | usa | 2019-08-27 01:16:39 +0900 (Tue, 27 Aug 2019) | 11 lines
merge revision(s) 28678997e40869f5591eae60edd9757334426ffb,8797f48373dcfa3ff8e748667732dea8aea4347e: [Backport #15937]
Preserve the string content at self-copying
* string.c (rb_str_init): preserve the embedded content when
self-copying with a capacity. [Bug #15937]
New buffer for shared string
* string.c (rb_str_init): allocate new buffer if the string is
shared. [Bug #15937]
------------------------------------------------------------------------
r67768 | usa | 2019-08-27 01:12:14 +0900 (Tue, 27 Aug 2019) | 21 lines
merge revision(s) ae2a904ce9bffedee7d110dc60fd51c0a2879a5b,165ddfda20f6db8a3149d14c4f431fc242ddab70,fa7a768fdfe5223a29db4fa71b3e6101fb02ad51: [Backport #16051]
Update the certificate files to make the test pass on Debian 10
The old certificate files (for example, test/rubygems/ca_cert.pem) were
signed by SHA1. This message digest is considered too weak and rejected
by OpenSSL 1.1.1 or later. Because of this, the test suite does not
pass on Debian 10.
https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian/ruby-master/log/20190527T123003Z.fail.html.gz#test%2Frubygems
This change regenerates the files.
A shell script for the regeneration (util/create_certs.sh) is also
added.
* remove trailing spaces.
Removed inconsistency file from upstream repository of rubygems.
followed up ae2a904ce9bffedee7d110dc60fd51c0a2879a5b
------------------------------------------------------------------------
r67767 | usa | 2019-08-27 01:09:14 +0900 (Tue, 27 Aug 2019) | 25 lines
merge revision(s) 9dec4e8fc3a6018261834b5ac9b9877f787b97ca: [Backport #15934]
String#b: Don't depend on dependent string
Registering a string that depend on a dependent string as fstring
can lead to use-after-free. See c06ddfe and 3f95620 for details.
The following script triggers use-after-free on trunk, 2.4.6, 2.5.5
and 2.6.3. Credits to @wanabe for using eval as a cross-version way
of registering a fstring.
```ruby
a = ('j' * 24).b.b
eval('', binding, a)
p a
4.times { GC.start }
p a
```
- string.c (str_replace_shared_without_enc): when given a
dependent string, depend on the root of the dependent
string.
[Bug #15934]
------------------------------------------------------------------------
r67766 | usa | 2019-08-27 00:58:57 +0900 (Tue, 27 Aug 2019) | 80 lines
merge revision(s) 3f9562015e651735bfc2fdd14e8f6963b673e22a,c06ddfee878524168e4af07443217ed2f8d0954b,3b3b4a44e5: [Backport #15792]
Get rid of indirect sharing
* string.c (str_duplicate): share the root shared string if the
original string is already sharing, so that all shared strings
refer the root shared string directly. indirect sharing can
cause a dangling pointer.
[Bug #15792]
str_duplicate: Don't share with a frozen shared string
This is a follow up for 3f9562015e651735bfc2fdd14e8f6963b673e22a.
Before this commit, it was possible to create a shared string which
shares with another shared string by passing a frozen shared string
to `str_duplicate`.
Such string looks like:
```
-------- -----------------
| root | ------ owns -----> | root's buffer |
-------- -----------------
^ ^ ^
----------- | |
| shared1 | ------ references ----- |
----------- |
^ |
----------- |
| shared2 | ------ references ---------
-----------
```
This is bad news because `rb_fstring(shared2)` can make `shared1`
independent, which severs the reference from `shared1` to `root`:
```c
/* from fstr_update_callback() */
str = str_new_frozen(rb_cString, shared2); /* can return shared1 */
if (STR_SHARED_P(str)) { /* shared1 is also a shared string */
str_make_independent(str); /* no frozen check */
}
```
If `shared1` was the only reference to `root`, then `root` can be
reclaimed by the GC, leaving `shared2` in a corrupted state:
```
----------- --------------------
| shared1 | -------- owns --------> | shared1's buffer |
----------- --------------------
^
|
----------- -------------------------
| shared2 | ------ references ----> | root's buffer (freed) |
----------- -------------------------
```
Here is a reproduction script for the situation this commit fixes.
```ruby
a = ('a' * 24).strip.freeze.strip
-a
p a
4.times { GC.start }
p a
```
- string.c (str_duplicate): always share with the root string when
the original is a shared string.
- test_rb_str_dup.rb: specifically test `rb_str_dup` to make
sure it does not try to share with a shared string.
[Bug #15792]
Closes: https://github.com/ruby/ruby/pull/2159
Update dependencies
------------------------------------------------------------------------
r67765 | usa | 2019-08-27 00:40:44 +0900 (Tue, 27 Aug 2019) | 5 lines
merge revision(s) 5e018214e7435030727a97ac49db038d96438e74: [Backport #15720]
Fix SystemStackError when calling a method in an unused refinement
Fixes [Bug #15720]
------------------------------------------------------------------------
r67764 | usa | 2019-08-27 00:39:06 +0900 (Tue, 27 Aug 2019) | 5 lines
merge revision(s) c1d78a7f0ece2004822193a0c1f1fd3dc38c2fdf: [Backport #15360]
do_mutex_lock: release mutex before checking for interrupts (fixes
issue 15360)
------------------------------------------------------------------------
r67763 | usa | 2019-08-27 00:36:38 +0900 (Tue, 27 Aug 2019) | 12 lines
merge revision(s) 6375c68f8851e1e0fee8a95afba91c4555097127,c05eaa93258ddc01e685b6cc3a0da82998a2af48: [Backport #15839]
parse.y: function parser_mixed_error & parser_mixed_escape
Fix mixed encoding in heredoc
Heredocs are parsed line-by-line, so we need to keep track of the
temporary encoding of the string. Previously, a heredoc would
only detect mixed encoding errors if they were on the same line,
this changes things so they will be caught on different lines.
Fixes [Bug #15839]
------------------------------------------------------------------------
r67762 | usa | 2019-08-27 00:13:49 +0900 (Tue, 27 Aug 2019) | 7 lines
merge revision(s) 5bab1304af25a843728dbcd2f3594913740aecb0: [Backport #15847]
fix visibility of SecureRandom.gen_random
Aliasing a method preserves its visibility. These aliases turn
formerly-public methods into private. Should make them public
again. [Bug #15847]
------------------------------------------------------------------------
r67761 | usa | 2019-08-27 00:10:32 +0900 (Tue, 27 Aug 2019) | 9 lines
merge revision(s) ea42423908ed055f9039b1dce6e9a232a3b2dd90: [Backport #15887]
Keep vm->orig_progname alive
`vm->orig_progname` can be different from `vm->progname` when user
code assigns to `$0`. While `vm->progname` is kept alive by the
global table, nothing marked `vm->orig_progname`.
[Bug #15887]
------------------------------------------------------------------------
r67760 | svn | 2019-08-27 00:02:19 +0900 (Tue, 27 Aug 2019) | 1 line
* 2019-08-27
------------------------------------------------------------------------
r67759 | usa | 2019-08-27 00:02:19 +0900 (Tue, 27 Aug 2019) | 6 lines
merge revision(s) ac00bdc8a8ac2c62a94dd36a7784d15bbcb7df19: [Backport #15821]
Do not modify shared array
[Bug #15821]
------------------------------------------------------------------------
r67758 | usa | 2019-08-26 23:54:04 +0900 (Mon, 26 Aug 2019) | 13 lines
merge revision(s) d0ba4abf1a00339ebbb5d405db3240a8bdb7b68b,54eac83b2ad77ddea84fa6d66c09e0bb014cf61e: [Backport #15786]
Add RB_ID_SERIAL_MAX
Hide internal IDs
* parse.y (internal_id): number the ID serial for internal use by
counting down from the neary maximum value, not to accidentally
match permanent IDs.
[Bug #15768]
------------------------------------------------------------------------
r67757 | usa | 2019-08-26 23:45:41 +0900 (Mon, 26 Aug 2019) | 5 lines
merge revision(s) a6a26e42b15c46f117f4fce07a2050e9d727355d: [Backport #15906]
compile.c: Partially revert r63870 which caused wrong optimization
[Bug #15906]
------------------------------------------------------------------------
r67756 | usa | 2019-08-26 23:39:01 +0900 (Mon, 26 Aug 2019) | 5 lines
merge revision(s) b72623012d74abdb06210153ed48c9e2fa075bbd: [Backport #15775]
Update broken URL in Float documentation.
[Misc #15775][ruby-core:92332]
------------------------------------------------------------------------
r67755 | usa | 2019-08-26 23:37:29 +0900 (Mon, 26 Aug 2019) | 18 lines
merge revision(s) a15f7dd1fb1148c3d586238ee6907875f2e40379: [Backport #15803]
Always mark the string returned by File.realpath as tainted
This string can include elements that were not in either string
passed to File.realpath, even if one of the strings is an
absolute path, due to symlinks:
```ruby
Dir.mkdir('b') unless File.directory?('b')
File.write('b/a', '') unless File.file?('b/a')
File.symlink('b', 'c') unless File.symlink?('c')
path = File.realpath('c/a'.untaint, Dir.pwd.untaint)
path # "/home/testr/ruby/b/a"
path.tainted? # should be true, as 'b' comes from file system
```
[Bug #15803]
------------------------------------------------------------------------
r67754 | usa | 2019-08-26 23:18:58 +0900 (Mon, 26 Aug 2019) | 8 lines
merge revision(s) d118c84b0b9110462e479487ffaf175a75e5718e: [Backport #15199]
Fix IO#scanf on pipes on Windows
IO.seek on a pipe on Windows raises Errno::EINVAL instead of
Errno::ESPIPE.
Fixes Ruby Bug #15199
------------------------------------------------------------------------
r67753 | usa | 2019-08-26 23:15:13 +0900 (Mon, 26 Aug 2019) | 3 lines
merge revision(s) 5e23b1138f16af0defb184d7deeffadfd2ce3c04 [backport #15820]
Fix potential memory leak
------------------------------------------------------------------------
r67752 | usa | 2019-08-26 23:06:52 +0900 (Mon, 26 Aug 2019) | 9 lines
merge revision(s) 179045acaf5de8398c321ada86a76f1afb77a796: [Backport #14539]
regparse.c: Suppress duplicated range warning by mere \X
* regparse.c (node_extended_grapheme_cluster): as Unicode 10 has
added Grapheme_Cluster_Break properties to some characters,
remove duplicated ranges for Unicode 9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
------------------------------------------------------------------------
r67751 | usa | 2019-08-26 22:49:50 +0900 (Mon, 26 Aug 2019) | 4 lines
merge revision(s) af1e487e9bb763b939dc6704c9a343c9eafa1637: [Backport #15801]
Updated marked commits for ChangeLog
------------------------------------------------------------------------
r67748 | usa | 2019-08-19 15:35:25 +0900 (Mon, 19 Aug 2019) | 124 lines
merge revision(s) f4fe2a76b0564e8e572936dec3bd724ac22b7a44: [Backport #15793]
merge revision(s) 7b7043e5da8589e01b94575d4ed647e909e5c875: [Backport
#15793]
eliminate use of freed memory
rb_io_fptr_finalize_internal frees the memory region.
=================================================================
==85264==ERROR: AddressSanitizer: heap-use-after-free on address 0x610000000d8c at pc 0x5608e38077f7 bp 0x7ffee12d5440 sp 0x7ffee12d5438
READ of size 4 at 0x610000000d8c thread T0
#0 0x5608e38077f6 in rb_io_memsize io.c:4749:24
#1 0x5608e37a0481 in obj_memsize_of gc.c:3547:14
#2 0x5608e37a4f30 in check_rvalue_consistency gc.c:1107:2
#3 0x5608e37a2624 in RVALUE_OLD_P gc.c:1218:5
#4 0x5608e37a5bae in rb_gc_force_recycle gc.c:6652:18
#5 0x5608e38191f9 in rb_f_backquote io.c:9021:5
#6 0x5608e3d8aa14 in call_cfunc_1 vm_insnhelper.c:2058:12
#7 0x5608e3d6e23d in vm_call_cfunc_with_frame vm_insnhelper.c:2211:11
#8 0x5608e3d54a35 in vm_call_cfunc vm_insnhelper.c:2229:12
#9 0x5608e3d5253b in vm_call_method_each_type vm_insnhelper.c:2564:9
#10 0x5608e3d51f50 in vm_call_method vm_insnhelper.c:2701:13
#11 0x5608e3cf2de4 in vm_call_general vm_insnhelper.c:2734:12
#12 0x5608e3d79918 in vm_sendish vm_insnhelper.c:3627:11
#13 0x5608e3d06cf5 in vm_exec_core insns.def:789:11
#14 0x5608e3d43700 in rb_vm_exec vm.c:1892:22
#15 0x5608e3d47cbf in rb_iseq_eval_main vm.c:2151:11
#16 0x5608e37620ca in ruby_exec_internal eval.c:262:2
#17 0x5608e376198b in ruby_exec_node eval.c:326:12
#18 0x5608e37617d0 in ruby_run_node eval.c:318:25
#19 0x5608e35c9486 in main main.c:42:9
#20 0x7f62e9421b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310
#21 0x5608e3522289 in _start (miniruby+0x15f289)
0x610000000d8c is located 76 bytes inside of 192-byte region [0x610000000d40,0x610000000e00)
freed by thread T0 here:
#0 0x5608e359a2ed in free (miniruby+0x1d72ed)
#1 0x5608e37af421 in objspace_xfree gc.c:9591:5
#2 0x5608e37af3da in ruby_sized_xfree gc.c:9687:2
#3 0x5608e3799ac8 in ruby_xfree gc.c:9694:5
#4 0x5608e380746d in rb_io_fptr_finalize_internal io.c:4728:5
#5 0x5608e38191ed in rb_f_backquote io.c:9020:5
#6 0x5608e3d8aa14 in call_cfunc_1 vm_insnhelper.c:2058:12
#7 0x5608e3d6e23d in vm_call_cfunc_with_frame vm_insnhelper.c:2211:11
#8 0x5608e3d54a35 in vm_call_cfunc vm_insnhelper.c:2229:12
#9 0x5608e3d5253b in vm_call_method_each_type vm_insnhelper.c:2564:9
#10 0x5608e3d51f50 in vm_call_method vm_insnhelper.c:2701:13
#11 0x5608e3cf2de4 in vm_call_general vm_insnhelper.c:2734:12
#12 0x5608e3d79918 in vm_sendish vm_insnhelper.c:3627:11
#13 0x5608e3d06cf5 in vm_exec_core insns.def:789:11
#14 0x5608e3d43700 in rb_vm_exec vm.c:1892:22
#15 0x5608e3d47cbf in rb_iseq_eval_main vm.c:2151:11
#16 0x5608e37620ca in ruby_exec_internal eval.c:262:2
#17 0x5608e376198b in ruby_exec_node eval.c:326:12
#18 0x5608e37617d0 in ruby_run_node eval.c:318:25
#19 0x5608e35c9486 in main main.c:42:9
#20 0x7f62e9421b96 in __libc_start_main
/build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310
previously allocated by thread T0 here:
#0 0x5608e359a56d in malloc (miniruby+0x1d756d)
#1 0x5608e37aed12 in objspace_xmalloc0 gc.c:9416:5
#2 0x5608e37aebe7 in ruby_xmalloc0 gc.c:9600:12
#3 0x5608e37aea8b in ruby_xmalloc_body gc.c:9609:12
#4 0x5608e37a6d64 in ruby_xmalloc gc.c:11469:12
#5 0x5608e380e4b4 in rb_io_fptr_new io.c:8040:19
#6 0x5608e380e446 in rb_io_make_open_file io.c:8077:10
#7 0x5608e3850ea0 in pipe_open io.c:6707:5
#8 0x5608e384edb4 in pipe_open_s io.c:6772:12
#9 0x5608e381910b in rb_f_backquote io.c:9014:12
#10 0x5608e3d8aa14 in call_cfunc_1 vm_insnhelper.c:2058:12
#11 0x5608e3d6e23d in vm_call_cfunc_with_frame vm_insnhelper.c:2211:11
#12 0x5608e3d54a35 in vm_call_cfunc vm_insnhelper.c:2229:12
#13 0x5608e3d5253b in vm_call_method_each_type vm_insnhelper.c:2564:9
#14 0x5608e3d51f50 in vm_call_method vm_insnhelper.c:2701:13
#15 0x5608e3cf2de4 in vm_call_general vm_insnhelper.c:2734:12
#16 0x5608e3d79918 in vm_sendish vm_insnhelper.c:3627:11
#17 0x5608e3d06cf5 in vm_exec_core insns.def:789:11
#18 0x5608e3d43700 in rb_vm_exec vm.c:1892:22
#19 0x5608e3d47cbf in rb_iseq_eval_main vm.c:2151:11
#20 0x5608e37620ca in ruby_exec_internal eval.c:262:2
#21 0x5608e376198b in ruby_exec_node eval.c:326:12
#22 0x5608e37617d0 in ruby_run_node eval.c:318:25
#23 0x5608e35c9486 in main main.c:42:9
#24 0x7f62e9421b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310
SUMMARY: AddressSanitizer: heap-use-after-free io.c:4749:24 in
rb_io_memsize
Shadow bytes around the buggy address:
0x0c207fff8160: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c207fff8170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c207fff8180: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c207fff8190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c207fff81a0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
=>0x0c207fff81b0: fd[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c207fff81c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c207fff81d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c207fff81e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c207fff81f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c207fff8200: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==85264==ABORTING
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
------------------------------------------------------------------------
r67722 | usa | 2019-07-31 23:58:36 +0900 (Wed, 31 Jul 2019) | 5 lines
merge revision(s) 374c8f4ebab1a740990330c732b9de965c5e8d10: [Backport #15823]
Fixed about ARGF.lineno
[Bug #15823]
------------------------------------------------------------------------
r67717 | usa | 2019-07-31 23:02:50 +0900 (Wed, 31 Jul 2019) | 9 lines
merge revision(s) 67563: [Backport #15769]
Support SNI (Reapplying r67488)
This fixes connecting using TLS 1.3 to imap.gmail.com
[Fix GH-2077] [Feature #15594]
From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
------------------------------------------------------------------------
r67709 | usa | 2019-05-30 18:14:41 +0900 (Thu, 30 May 2019) | 3 lines
merge revision(s) dcb6a6ae3e2b8a3e298e7f0d4a3e7f8ff102a30e:[Backport #15845]
Windows simply causes an error to open invalid path
------------------------------------------------------------------------
r67708 | usa | 2019-05-03 06:16:27 +0900 (Fri, 03 May 2019) | 3 lines
merge revision(s) 66324: [Backport #15385]
Modify insn list only when compiling
------------------------------------------------------------------------
r67707 | usa | 2019-04-30 22:20:09 +0900 (Tue, 30 Apr 2019) | 3 lines
merge revision(s) 67270: [Backport #15670]
dsym should be treated as string [ruby-core:91852] [Bug #15670]
------------------------------------------------------------------------
r67706 | usa | 2019-04-30 22:04:57 +0900 (Tue, 30 Apr 2019) | 6 lines
merge revision(s) 67467: [Backport #15756]
range.c: force hash values fixable
* range.c (method_hash): force hash values fixable on LLP64
environment. [ruby-core:92191] [Bug #15756]
------------------------------------------------------------------------
r67705 | usa | 2019-04-30 22:02:42 +0900 (Tue, 30 Apr 2019) | 6 lines
merge revision(s) 67468: [Backport #15757]
range.c: force hash values fixable
* range.c (range_hash): force hash values fixable on LLP64
environment. [ruby-core:92194] [Bug #15757]
------------------------------------------------------------------------
r67704 | usa | 2019-04-30 22:00:04 +0900 (Tue, 30 Apr 2019) | 3 lines
merge revision(s) 67247: [Backport #15666]
Guard out the test when it is run under root permission
------------------------------------------------------------------------
r67703 | usa | 2019-04-30 21:55:24 +0900 (Tue, 30 Apr 2019) | 7 lines
merge revision(s) 64057: [Backport #14952]
Remove obsolete comment from Module#define_method documentation
Since 2.5, Module#define_method is public. (feature #14133)
Co-Authored-By: Miguel Landaeta <miguel@miguel.cc>
------------------------------------------------------------------------
r67702 | usa | 2019-04-30 21:40:20 +0900 (Tue, 30 Apr 2019) | 11 lines
merge revision(s) 66326,66649: [Backport #15385]
Fix infinite loop by ensure
* compile.c (iseq_insert_nop_between_end_and_cont): insert nop so that the end of rescue and continuing points are not same, to get rid of infinite loop. [Bug #15385]
test_optimization.rb: increase timeout for RubyCI
https://rubyci.org/logs/rubyci.s3.amazonaws.com/opensuseleap/ruby-trunk/log/20181230T040002Z.fail.html.gz
------------------------------------------------------------------------
r67268 | nagachika | 2019-03-15 20:32:41 +0900 (Fri, 15 Mar 2019) | 1 line
bump up teeny version to 2.5.6
------------------------------------------------------------------------
r67263 | nagachika | 2019-03-15 07:51:25 +0900 (Fri, 15 Mar 2019) | 4 lines
merge revision(s) 67261:
tool/make-snapshot: Use 6-spaces indent for SIZE and digests
to align with release note markdown.
------------------------------------------------------------------------
r67259 | nagachika | 2019-03-15 07:21:30 +0900 (Fri, 15 Mar 2019) | 8 lines
merge revision(s) 63309:
thread_sync.c (condvar_ptr): reset fork_gen after forking
Otherwise the condition variable waiter list will always
be empty, which is wrong :x
[Bug #14725] [Bug #14634]
------------------------------------------------------------------------
r67258 | nagachika | 2019-03-15 07:16:48 +0900 (Fri, 15 Mar 2019) | 1 line
bump up teeny version to 2.5.5
------------------------------------------------------------------------
r67242 | nagachika | 2019-03-13 09:32:12 +0900 (Wed, 13 Mar 2019) | 7 lines
merge revision(s) 67200: [Backport #15648]
Add ignored_sp event
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer): add ignored_sp
event which will be fired from Ripper::Lexer#on_heredoc_dedent
method. [ruby-core:91727] [Bug #15648]
------------------------------------------------------------------------
r67241 | nagachika | 2019-03-13 09:21:46 +0900 (Wed, 13 Mar 2019) | 9 lines
merge revision(s) 66909: [Backport #15555]
tmpdir.rb: permission of user given directory
* lib/tmpdir.rb (Dir.mktmpdir): check if the permission of the
parent directory only when using the default temporary
directory, and no check against user given directory. the
security is the user's responsibility in that case.
[ruby-core:91216] [Bug #15555]
------------------------------------------------------------------------
r67240 | nagachika | 2019-03-13 09:06:19 +0900 (Wed, 13 Mar 2019) | 7 lines
merge revision(s) 66779: [Backport #15520]
configure: refuse to build with jemalloc when header is missing
[ruby-core:90964] [Bug #15520]
Freom: Misty De Meo <mistydemeo@github.com>
------------------------------------------------------------------------
r67239 | nagachika | 2019-03-13 08:36:51 +0900 (Wed, 13 Mar 2019) | 7 lines
merge revision(s) 66618: [Backport #15660]
test_io.rb: increase timeout for RubyCI
to stabilize AIX powerpc CI
https://rubyci.org/logs/rubyci.s3.amazonaws.com/aix71_ppc/ruby-trunk/log/20181227T113302Z.fail.html.gz
------------------------------------------------------------------------
r67238 | nagachika | 2019-03-13 08:35:29 +0900 (Wed, 13 Mar 2019) | 8 lines
merge revision(s) 66436: [Backport #15427]
should use defined_class.
* vm_insnhelper.c (vm_call_method_each_type): we should use me->defined_class
instead of me->owner because me->owner doesn't has correct ancestors list.
[Bug #15427]
------------------------------------------------------------------------
r67237 | nagachika | 2019-03-13 08:23:17 +0900 (Wed, 13 Mar 2019) | 26 lines
merge revision(s) 64234,64252: [Backport #15219]
net/http, net/ftp: fix session resumption with TLS 1.3
When TLS 1.3 is in use, the session ticket may not have been sent yet
even though a handshake has finished. Also, the ticket could change if
multiple session ticket messages are sent by the server. Use
SSLContext#session_new_cb instead of calling SSLSocket#session
immediately after a handshake. This way also works with earlier protocol
versions.
net/http, net/ftp: skip SSL/TLS session resumption tests
Due to a bug in OpenSSL 1.1.0h[1] (it's only in this specific version;
it was introduced just before the release and is already fixed in their
stable branch), the callback set by SSLContext#session_new_cb= does not
get called for clients, making net/http and net/ftp not attempt session
resumption.
Let's disable the affected test cases for now. Another option would be
to fallback to using SSLSocket#session as we did before r64234. But
since only a single version is affected and hopefully a new stable
version containing the fix will be released in near future, I chose not
to add such workaround code to lib/.
[1] https://github.com/openssl/openssl/pull/5967
------------------------------------------------------------------------
r67236 | nagachika | 2019-03-13 07:01:32 +0900 (Wed, 13 Mar 2019) | 13 lines
merge revision(s) 66832: [Backport #15536]
st.c (rb_hash_bulk_insert_into_st_table): avoid out-of-bounds write
"hash_bulk_insert" first expands the table, but the target size was
wrong: it was calculated by "num_entries + (size to buld insert)", but
it was wrong when "num_entries < entries_bound", i.e., it has a deleted
entry. "hash_bulk_insert" adds the given entries from entries_bound,
which led to out-of-bounds write access. [Bug #15536]
As a simple fix, this commit changes the calculation to "entries_bound +
size". I'm afraid if this might be inefficient, but I think it is safe
anyway.
------------------------------------------------------------------------
r67235 | nagachika | 2019-03-13 06:44:56 +0900 (Wed, 13 Mar 2019) | 1 line
Merge RubyGems 2.7.6.2 patch [Bug #15643]
------------------------------------------------------------------------
r67234 | nagachika | 2019-03-13 06:32:03 +0900 (Wed, 13 Mar 2019) | 1 line
Merge RubyGems 2.7.6.1 patch [Bug #15637]
------------------------------------------------------------------------
r67233 | nagachika | 2019-03-13 06:05:56 +0900 (Wed, 13 Mar 2019) | 6 lines
merge revision(s) 67201: [Backport #15650]
eval.c: clear internal errinfo
* eval.c (ruby_cleanup): clear internal error info when invoking
end procs. [ruby-core:91731] [Bug #15650]
------------------------------------------------------------------------
r67228 | nagachika | 2019-03-12 21:59:25 +0900 (Tue, 12 Mar 2019) | 8 lines
merge revision(s) 64636,64637: [Backport #15659]
AIX doesn't set OptionLength for boolean options
https://rubyci.org/logs/rubyci.s3.amazonaws.com/aix71_ppc/ruby-trunk/log/20180904T103302Z.fail.html.gz
https://www.ibm.com/support/knowledgecenter/ja/ssw_aix_72/com.ibm.aix.commtrf2/getsockopt.htm
fix typo
------------------------------------------------------------------------
r67219 | nagachika | 2019-03-11 21:51:59 +0900 (Mon, 11 Mar 2019) | 7 lines
merge revision(s) 67203: [Backport #15651]
numeric.c: fix infinite loop
* numeric.c (int_pow): fix infinite loop in the case of y equal 1
and power of x does not overflow.
[ruby-core:91734] [Bug #15651]
------------------------------------------------------------------------
r67192 | nagachika | 2019-03-08 00:31:42 +0900 (Fri, 08 Mar 2019) | 7 lines
merge revision(s) 67167: [Backport #15635]
string.c: respect the actual encoding
* string.c (rb_enc_str_coderange): respect the actual encoding of
if a BOM presents, and scan for the actual code range.
[ruby-core:91662] [Bug #15635]
------------------------------------------------------------------------
r67191 | nagachika | 2019-03-08 00:19:34 +0900 (Fri, 08 Mar 2019) | 6 lines
merge revision(s) 67188: [Backport #15642]
io.c: chomp CR at the end of read buffer
* io.c (rb_io_getline_fast): chomp CR followed by LF but separated
by the read buffer boundary. [ruby-core:91707] [Bug #15642]
------------------------------------------------------------------------
r67186 | nagachika | 2019-03-06 20:32:02 +0900 (Wed, 06 Mar 2019) | 5 lines
merge revision(s) 67183: [Backport #15607]
Fix PTY.open on OpenBSD [Bug #15607]
From: Jeremy Evans <code@jeremyevans.net>
------------------------------------------------------------------------
r67050 | nagachika | 2019-02-11 20:04:41 +0900 (Mon, 11 Feb 2019) | 12 lines
merge revision(s) 62872,62873: [Backport #14621]
parse.y: unindent continued line
* parse.y (tokadd_string): stop at continued line in dedented here
documents, to dedent for each lines before removing escaped
newlines. [ruby-core:86236] [Bug #14621]
parse.y: terminator at continued line
* parse.y (here_document): a continuing line is not the
terminator. [ruby-core:86283] [Bug #14621]
------------------------------------------------------------------------
r67013 | nagachika | 2019-02-05 21:15:47 +0900 (Tue, 05 Feb 2019) | 13 lines
merge revision(s) 66867: [Backport #15500]
Revert r58345 and r58371.
These changes break the behavior of default gems. Bug #13428 says
r58345 is reasonable because gemspec file is installed by `to_ruby_for_cache`
method. But I revert `to_ruby_for_cache` in rbinstall.rb at r58403.
There is no reason that we apply r58345 now.
But I'm not sure about gemspec of default gems affects standalone gems.
I'm going to investigate it on rubygems/rubygems.
[Bug #15500][ruby-core:90867]
------------------------------------------------------------------------
r66912 | nagachika | 2019-01-23 23:14:25 +0900 (Wed, 23 Jan 2019) | 70 lines
merge revision(s) 62934,63210,63215,63309: [Backport #14634]
thread_sync.c: avoid reaching across stacks of dead threads
rb_ensure is insufficient cleanup for fork and we must
reinitialize all waitqueues in the child process.
Unfortunately this increases the footprint of ConditionVariable,
Queue and SizedQueue by 8 bytes on 32-bit (16 bytes on 64-bit).
[ruby-core:86316] [Bug #14634]
variable.c: fix thread + fork errors in autoload
This is fairly non-intrusive bugfix to prevent children
from trying to reach into thread stacks of the parent.
I will probably reuse this idea and redo r62934, too
(same bug).
* vm_core.h (typedef struct rb_vm_struct): add fork_gen counter
* thread.c (rb_thread_atfork_internal): increment fork_gen
* variable.c (struct autoload_data_i): store fork_gen
* variable.c (check_autoload_data): remove (replaced with get_...)
* variable.c (get_autoload_data): check fork_gen when retrieving
* variable.c (check_autoload_required): use get_autoload_data
* variable.c (rb_autoloading_value): ditto
* variable.c (rb_autoload_p): ditto
* variable.c (current_autoload_data): ditto
* variable.c (autoload_reset): reset fork_gen, adjust indent
* variable.c (rb_autoload_load): set fork_gen when setting state
* test/ruby/test_autoload.rb (test_autoload_fork): new test
[ruby-core:86410] [Bug #14634]
thread_sync: redo r62934 to use fork_gen
Instead of maintaining linked-lists to store all
rb_queue/rb_szqueue/rb_condvar structs; store only a fork_gen
serial number to simplify management of these items.
This reduces initialization costs and avoids the up-front cost
of resetting all Queue/SizedQueue/ConditionVariable objects at
fork while saving 8 bytes per-structure on 64-bit. There are no
savings on 32-bit.
* thread.c (rb_thread_atfork_internal): remove rb_thread_sync_reset_all call
* thread_sync.c (rb_thread_sync_reset_all): remove
* thread_sync.c (queue_live): remove
* thread_sync.c (queue_free): remove
* thread_sync.c (struct rb_queue): s/live/fork_gen/
* thread_sync.c (queue_data_type): use default free
* thread_sync.c (queue_alloc): remove list_add
* thread_sync.c (queue_fork_check): new function
* thread_sync.c (queue_ptr): call queue_fork_check
* thread_sync.c (szqueue_free): remove
* thread_sync.c (szqueue_data_type): use default free
* thread_sync.c (szqueue_alloc): remove list_add
* thread_sync.c (szqueue_ptr): check fork_gen via queue_fork_check
* thread_sync.c (struct rb_condvar): s/live/fork_gen/
* thread_sync.c (condvar_free): remove
* thread_sync.c (cv_data_type): use default free
* thread_sync.c (condvar_ptr): check fork_gen
* thread_sync.c (condvar_alloc): remove list_add
[ruby-core:86316] [Bug #14634]
thread_sync.c (condvar_ptr): reset fork_gen after forking
Otherwise the condition variable waiter list will always
be empty, which is wrong :x
[Bug #14725] [Bug #14634]
------------------------------------------------------------------------
r66881 | nagachika | 2019-01-20 19:48:26 +0900 (Sun, 20 Jan 2019) | 7 lines
merge revision(s) 64879: [Backport #15162]
transcode.c: add GC guard on raise
* transcode.c (econv_s_search_convpath): add GC guard to fix SEGV
on raise.
[Bug #15162] [ruby-core:89172]
------------------------------------------------------------------------
r66880 | nagachika | 2019-01-20 18:17:59 +0900 (Sun, 20 Jan 2019) | 7 lines
merge revision(s) 63334: [Backport #14729]
object.c: raise on long invalid float string
* object.c (rb_cstr_to_dbl_raise): check long invalid float
string more precisely when truncating insignificant part.
[ruby-core:86800] [Bug #14729]
------------------------------------------------------------------------
r66879 | nagachika | 2019-01-20 14:13:27 +0900 (Sun, 20 Jan 2019) | 7 lines
merge revision(s) 63322: [Backport #14731]
object.c: fix exponent with underscore
* object.c (rb_cstr_to_dbl_raise): do not ignore exponent part
when the input string longer than internal buffer contains
underscore(s). [ruby-core:86836] [Bug #14731]
------------------------------------------------------------------------
r66878 | nagachika | 2019-01-20 13:51:41 +0900 (Sun, 20 Jan 2019) | 9 lines
merge revision(s) 63720: [Backport #14864]
dir.c: define O_CLOEXEC for older systems
SuSE 10 has openat(), but not O_CLOEXEC
Reported-by: wangpeiwen
[ruby-core:87591] [Bug #14864]
------------------------------------------------------------------------
r66877 | nagachika | 2019-01-20 13:49:40 +0900 (Sun, 20 Jan 2019) | 6 lines
merge revision(s) 66401: [Backport #15412]
Move autoload to toplevel
So that classes which uses Net::HTTP with https can use OpenSSL
namespace for example exception classes like OpenSSL::SSL::SSLError.
------------------------------------------------------------------------
r66876 | nagachika | 2019-01-20 13:47:51 +0900 (Sun, 20 Jan 2019) | 7 lines
merge revision(s) 66242: [Backport #15387]
io.c (io_write_nonblock): add RB_GC_GUARD, io_fflush may switch threads
Since io_fflush may block on mutex or rb_io_wait_readable and
switch threads, we need to ensure the `str' VALUE returned by
`rb_obj_as_string` is visible to GC.
------------------------------------------------------------------------
r66839 | nagachika | 2019-01-17 00:32:54 +0900 (Thu, 17 Jan 2019) | 6 lines
merge revision(s) 65974: [Backport #15340]
Normalize month-mday before finding epoch
Especially over the year 2038, 30 Feb and so on may cause odd behavior
on validating found epoch with given year-month-day [Bug #15340]
------------------------------------------------------------------------
r66837 | nagachika | 2019-01-16 21:04:57 +0900 (Wed, 16 Jan 2019) | 15 lines
merge revision(s) 64476: [Backport #15084]
thread_sync.c (rb_mutex_sleep): disable interrupt checking in ensure
This is needed to reliably fix ConditionVariable#wait on Thread#kill
[Bug #14999] because there is still a chance an interrupt could fire
and prevent lock acquisition after an ensure statement.
Arguably, rb_mutex_lock itself should be uninterruptible, but that
already prevents bootstraptest/test_thread.rb from completing and
probably breaks existing use cases.
For reference, POSIX expressly forbids EINTR from pthread_mutex_lock.
[ruby-core:88556] [Bug #14999]
------------------------------------------------------------------------
r66818 | nagachika | 2019-01-14 18:23:45 +0900 (Mon, 14 Jan 2019) | 17 lines
merge revision(s) 64589,64593: [Backport #15041]
cont.c: set th->root_fiber to current fiber at fork
Otherwise, th->root_fiber can point to an invalid Fiber,
because Fibers do not live across fork. So consider
whatever Fiber is running the root fiber.
[ruby-core:88723] [Bug #15041]
cont.c (rb_fiber_atfork): th->root_fiber may not exist
Otherwise, bootstraptest/test_fork.rb fails with -DVM_CHECK_MODE=2
[Bug #15041]
Fixes: r64589 "cont.c: set th->root_fiber to current fiber at fork"
------------------------------------------------------------------------
r66785 | svn | 2019-01-11 00:02:22 +0900 (Fri, 11 Jan 2019) | 1 line
* 2019-01-11
------------------------------------------------------------------------
r66784 | nagachika | 2019-01-11 00:02:21 +0900 (Fri, 11 Jan 2019) | 10 lines
merge revision(s) 66756: [Backport #15479]
Mark array as "going to be modified" in `Array#reject!`
Before this patch, if `reject!` is called on a shared array it can
mutate the shared array rather than a copy. This patch marks the array
as "going to be modified" so that the shared source array isn't
mutated.
[Bug #15479] [ruby-core:90781]
------------------------------------------------------------------------
r66780 | nagachika | 2019-01-10 23:46:41 +0900 (Thu, 10 Jan 2019) | 11 lines
merge revision(s) 63823,63839: [Backport #14890]
time.c: [DOC] Time#localtime
* time.c: state that Time#localtime does nothing when nothing
changes. [ruby-core:87675] [Bug #14880]
skip test_localtime_zone if force_tz_test is false
For example Solaris
https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10x/ruby-trunk/log/20180703T091803Z.fail.html.gz
------------------------------------------------------------------------
r66777 | nagachika | 2019-01-10 23:18:09 +0900 (Thu, 10 Jan 2019) | 6 lines
merge revision(s) 66111: [Backport #14561]
Avoid GCing dead stack after switching away from a fiber
Fixes <https://bugs.ruby-lang.org/issues/14561> and discussed
<https://bugs.ruby-lang.org/issues/15362>.
------------------------------------------------------------------------
r66748 | nagachika | 2019-01-07 21:05:16 +0900 (Mon, 07 Jan 2019) | 18 lines
merge revision(s) 62671: [Backport #14571]
resolv.rb: close socket
* lib/resolv.rb (UnconnectedUDP#lazy_initialize): store new
sockets before binding, so the sockets get closed when the
requester is closing.
* lib/resolv.rb (ConnectedUDP#lazy_initialize): ditto.
* lib/resolv.rb (UnconnectedUDP#close): synchronize to get rid of
race condition.
* lib/resolv.rb (ConnectedUDP#close): ditto.
[ruby-core:85901] [Bug #14571]
From: quixoten (Devin Christensen) <quixoten@gmail.com>
------------------------------------------------------------------------
r66689 | nagachika | 2019-01-02 15:44:14 +0900 (Wed, 02 Jan 2019) | 5 lines
merge revision(s) 66685,66686: [Backport #15495]
Try to update cert
Try to update cert (2nd try)
------------------------------------------------------------------------
r66309 | nagachika | 2018-12-10 21:31:18 +0900 (Mon, 10 Dec 2018) | 7 lines
merge revision(s) 62621: [Backport #15396]
compile.c: do not truncate VALUE to long
* compile.c (ibf_dump_object_regexp): do not truncate VALUE to
long. it makes invalid VALUE on IL32LLP64 platforms where long
is shorter than VALUE.
------------------------------------------------------------------------
r66298 | nagachika | 2018-12-09 15:46:44 +0900 (Sun, 09 Dec 2018) | 5 lines
conceptually partial backport from r63103, r65567.
All ISeq#to_binary should rescue to skip when running with coverage.
current trunk (2.6-) has assert_iseq_to_binary.
------------------------------------------------------------------------
r66297 | nagachika | 2018-12-09 14:38:38 +0900 (Sun, 09 Dec 2018) | 5 lines
merge revision(s) 61535:
iseq.c: fix build error when VM_CHECK_MODE is enabled
Follow up of r61534. Sorry.
------------------------------------------------------------------------
r66285 | nagachika | 2018-12-08 17:00:22 +0900 (Sat, 08 Dec 2018) | 3 lines
merge revision(s) 65667: [Backport #15284]
Fix for bison 3.2 [Bug #15284]
------------------------------------------------------------------------
r66225 | nagachika | 2018-12-05 23:35:07 +0900 (Wed, 05 Dec 2018) | 26 lines
merge revision(s) 64736,65567: [Backport #15270]
iseq.c: prefix rb_ to non-static iseq functions
I assume we always prefix rb_ to non-static functions to avoid conflict.
These functions are not exported and safe to be renamed.
iseq.h: ditto
compile.c: ditto
Fix TracePoint for nested iseq loaded from binary [Bug#14702]
When loading iseq from binary while a TracePoint is on, we need to
recompile instructions to their "trace_" variant. Before this commit
we only recompiled instructions in the top level iseq, which meant
that TracePoint was malfunctioning for code inside module/class/method
definitions.
* compile.c: Move rb_iseq_init_trace to rb_ibf_load_iseq_complete.
It is called on all iseqs during loading.
* test_iseq.rb: Test that tracepoints fire within children iseq when
using load_from_binary.
This patch is from: Alan Wu <XrXr@users.noreply.github.com>
------------------------------------------------------------------------
r66131 | nagachika | 2018-12-02 16:37:49 +0900 (Sun, 02 Dec 2018) | 6 lines
merge revision(s) 62776: [Backport #15365]
test_iseq.rb: skip iseq with coverage
* test/ruby/test_iseq.rb (test_to_binary_with_objects): #to_binary
does not support iseq compiled with coverage, just skip.
------------------------------------------------------------------------
r66130 | nagachika | 2018-12-02 16:13:22 +0900 (Sun, 02 Dec 2018) | 7 lines
merge revision(s) 63040: [Backport #14553]
compile.c: do not dump unused callinfos
* compile.c (compile_if): rewind callinfo indexes used in
unreachable paths, to get rid of dumping unused callinfos.
[ruby-core:86399] [Bug #14553]
------------------------------------------------------------------------
r66112 | nagachika | 2018-12-01 13:19:25 +0900 (Sat, 01 Dec 2018) | 3 lines
merge revision(s) 65365:
Update for tzdata-2018f
------------------------------------------------------------------------
r66105 | nagachika | 2018-11-30 20:59:43 +0900 (Fri, 30 Nov 2018) | 3 lines
merge revision(s) 65956:
fix r65954; Keep tainty
------------------------------------------------------------------------
r66074 | nagachika | 2018-11-28 22:55:17 +0900 (Wed, 28 Nov 2018) | 25 lines
merge revision(s) 64799,64800,64801: [Backport #15105]
fix typo.
* vm_exec.h (DEBUG_END_INSN()): use `ec` instead of `th`.
This macro is used when `VMDEBUG > 0`.
escape all env properly.
* vm_backtrace.c (rb_debug_inspector_open): escape all env using
`rb_vm_stack_to_heap()` before making bindings.
[Bug #15105]
There is a complicated story of this issue:
Without this patch, IFUNC frame does not escaped. A IFUNC frame
points to CFUNC ep as previous ep. However, CFUNC ep can be escaped
because of making bindings of Ruby level frames.
IFUNC's ep can points to invalidated ep and `rb_iter_break()` will
fail. This is why `any?` fails.
* test/-ext-/debug/test_debug.rb: add a test.
* remove trailing spaces.
------------------------------------------------------------------------
r66073 | nagachika | 2018-11-28 22:36:08 +0900 (Wed, 28 Nov 2018) | 17 lines
merge revision(s) 65954,65955,65958: [Backport #15337]
Don't use single byte optimization on grapheme clusters
Unicode Text Segmentation considers CRLF as a character. [Bug #15337]
add tests using Unicode test data for grapheme clusters
Add file test/ruby/enc/test_grapheme_breaks.rb to test String#each_grapheme_cluster
and \X extended grapheme cluster matcher in regular expressions against test data
provided by Unicode (ucd/auxiliary/GraphemeBreakTest.txt).
Some lines in the data file are ignored, as follows:
- Lines with a surrogate, because Ruby doesn't handle these
- The case of "\r\n", because there is a bug (#15337) in the implementation
remove guard against bug #15337, because it is fixed
------------------------------------------------------------------------
r65728 | nagachika | 2018-11-15 00:21:50 +0900 (Thu, 15 Nov 2018) | 8 lines
merge revision(s) 62772: [Backport #14738]
compile.c: fix load_from_binary
* compile.c (ibf_load_iseq_each): realpath may be nil. follow up
r59709. [fix https://github.com/Shopify/bootsnap/issues/132]
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
------------------------------------------------------------------------
r65582 | nagachika | 2018-11-07 00:52:16 +0900 (Wed, 07 Nov 2018) | 3 lines
merge revision(s) 65554: [Backport #15282]
Don't set throw data as cause [Bug #15282]
------------------------------------------------------------------------
r65581 | nagachika | 2018-11-07 00:31:15 +0900 (Wed, 07 Nov 2018) | 7 lines
merge revision(s) 65460: [Backport #15271]
parse.y: last location from bison
* parse.y (command): set the last location from the location
managed by bison, so that other nodes are not needed.
[ruby-core:89648] [Bug #15271]
------------------------------------------------------------------------
r65580 | nagachika | 2018-11-07 00:13:01 +0900 (Wed, 07 Nov 2018) | 7 lines
merge revision(s) 65350: [Backport #15245]
compile.c: fix peephole optimization
* compile.c (iseq_peephole_optimize): should `pop` before jump
instruction which succeeds to `newarray` of a literal object,
not after. [ruby-core:89536] [Bug #15245]
------------------------------------------------------------------------
r65579 | nagachika | 2018-11-06 23:49:59 +0900 (Tue, 06 Nov 2018) | 7 lines
merge revision(s) 64786: [Backport #15087]
parse.y: fix block passing with empty kwargs
* parse.y (arg_blk_pass): preceeding arguments node may be NULL when
an empty keyword argument hash splat is optimized away.
[ruby-core:88890] [Bug #15087]
------------------------------------------------------------------------
r65274 | nagachika | 2018-10-21 20:19:59 +0900 (Sun, 21 Oct 2018) | 7 lines
merge revision(s) 64515:
remove `const` warning.
* compile.c (iseq_ibf_load): remove `const` to pass iseq as no `const`
parameter.
------------------------------------------------------------------------
r65273 | nagachika | 2018-10-21 20:16:49 +0900 (Sun, 21 Oct 2018) | 1 line
bump up teeny version to 2.5.4.
------------------------------------------------------------------------
r65155 | nagachika | 2018-10-18 19:45:08 +0900 (Thu, 18 Oct 2018) | 1 line
bump up teeny version to 2.5.3.
------------------------------------------------------------------------
r65132 | nagachika | 2018-10-18 00:26:54 +0900 (Thu, 18 Oct 2018) | 28 lines
Import Ruby/OpenSSL 2.1.2.
Original patches are written by rhe.
Changes since v2.1.1 can be found at the upstream GitHub repository:
https://github.com/ruby/openssl/compare/v2.1.1..v2.1.2
Kazuki Yamaguchi (9):
pkey: resume key generation after interrupt
tool/ruby-openssl-docker: update to latest versions
test/test_ssl: fix test failure with TLS 1.3
test/test_x509name: change script encoding to ASCII-8BIT
x509name: refactor OpenSSL::X509::Name#to_s
x509name: fix handling of X509_NAME_{oneline,print_ex}() return value
x509name: fix OpenSSL::X509::Name#{cmp,<=>}
Ruby/OpenSSL 2.0.9
Ruby/OpenSSL 2.1.2
nobu (6):
no ID cache in Init functions
search winsock libraries explicitly
openssl: search winsock
openssl_missing.h: constified
reduce LibreSSL warnings
needs openssl/opensslv.h
------------------------------------------------------------------------
r65128 | nagachika | 2018-10-18 00:06:18 +0900 (Thu, 18 Oct 2018) | 8 lines
merge revision(s) 65125:
infect taint flag on Array#pack and String#unpack
with the directives "B", "b", "H" and "h".
* pack.c (pack_pack, pack_unpack_internal): infect taint flag.
* test/ruby/test_pack.rb: add test for above.
------------------------------------------------------------------------
r65100 | nagachika | 2018-10-17 08:23:05 +0900 (Wed, 17 Oct 2018) | 6 lines
merge revision(s) 64913: [Backport #15223]
Support ubasecrt.dll 10.0.17763.1 included in Windows 10 October 2018 Update
------------------------------------------------------------------------
r65002 | nagachika | 2018-10-12 00:12:06 +0900 (Fri, 12 Oct 2018) | 11 lines
merge revision(s) 64745: [Backport #15118]
Use opt_{aref,aset} over opt_{aref,aset}_with
* compile.c (iseq_compile_each0): Use `opt_aref`/`opt_aset` over
`opt_aref_with`/`opt_aset_with` when frozen_string_literal: true,
not to resurrect the index string on non-Hash receiver.
[Fix GH-1957]
From: chopraanmol1 <chopraanmol1@gmail.com>
------------------------------------------------------------------------
r64999 | nagachika | 2018-10-11 23:58:30 +0900 (Thu, 11 Oct 2018) | 20 lines
merge revision(s) 64062: [Backport #14939]
cont.c (ec_switch): prevent delayed/missed trap interrupt race
timer-thread may set trap interrupt with rb_threadptr_check_signal
at any time independent of GVL. This means timer-thread may set
the trap interrupt flag on the previous execution context; causing
the flag to be unnoticed until a future ec switch (or lost
completely if the ec is done).
Note: I avoid relying on th->interrupt_lock here and use
atomics because we won't be able to rely on it for proposed lazy
timer-thread [Misc #14937].
This regression affects Ruby 2.5 as it was introduced by moving
interrupt_flag to `ec' which is an unstable pointer. Ruby <= 2.4
was unaffected because vm->main_thread->interrupt_flag never
changed.
[ruby-core:88119] [Bug #14939]
------------------------------------------------------------------------
r64998 | nagachika | 2018-10-11 23:40:04 +0900 (Thu, 11 Oct 2018) | 22 lines
merge revision(s) 63711,64398: [Backport #14841]
thread_sync.c (rb_mutex_lock): fix deadlock
* thread_sync.c (rb_mutex_lock): fix deadlock
[ruby-core:87467] [Bug #14841]
thread_sync.c (rb_mutex_lock): acquire lock before being killed
We (the thread acquiring the mutex) need to acquire the mutex
before being killed to work with ConditionVariable#wait.
Thus we reinstate the acquire-immediately-after-sleeping logic
from pre-r63711 while still retaining the
acquire-after-checking-for-interrupts logic from r63711.
This regression was introduced in
commit 501069b8a4013f2e3fdde35c50e9527ef0061963 (r63711)
("thread_sync.c (rb_mutex_lock): fix deadlock") for
[Bug #14841]
[ruby-core:88503] [Bug #14999] [Bug #14841]
------------------------------------------------------------------------
r64997 | nagachika | 2018-10-11 23:20:25 +0900 (Thu, 11 Oct 2018) | 11 lines
merge revision(s) 64514: [Backport #14702]
check trace flags at loading [Bug #14702]
* iseq.c (iseq_init_trace): at ISeq loading time, we need to check
`ruby_vm_event_enabled_flags` to turn on trace instructions.
Seprate this checking code from `finish_iseq_build()` and make
new function. `iseq_ibf_load()` calls this funcation after loading.
* test/ruby/test_iseq.rb: add a test for this fix.
------------------------------------------------------------------------
r64996 | nagachika | 2018-10-11 22:51:19 +0900 (Thu, 11 Oct 2018) | 7 lines
merge revision(s) 63030: [Backport #14639]
array.c: yield blockarg in collect
* array.c (rb_ary_collect): yield in block argument semantics
always to splat array elements to lambda, for the backward
compatibility. [ruby-core:86362] [Bug #14639]
------------------------------------------------------------------------
r64982 | nagachika | 2018-10-09 23:43:06 +0900 (Tue, 09 Oct 2018) | 10 lines
merge revision(s) 64860,64861: [Backport #15164]
fallback env encoding to ASCII-8BIT
* hash.c (env_enc_str_new): as no locale/filesystem encoding is
available in miniruby on Windows, fallback the encoding to
ASCII-8BIT so it is valid encoding when the conversion failed.
[ruby-core:89177] [Bug #15164]
* properties.
------------------------------------------------------------------------
r64981 | nagachika | 2018-10-09 23:39:16 +0900 (Tue, 09 Oct 2018) | 14 lines
merge revision(s) 63067,63068: [Backport #14658]
Fix Kernel#singleton_method with Module#Prepend
* proc.c (rb_obj_singleton_method): search the method entry from
the origin class, for fix prepended modules. [Bug #14658]
From: Vasiliy Ermolovich <younash@gmail.com>
proc.c: fix segfault when no singleton class
* proc.c (rb_obj_singleton_method): bail out if the receiver does
not have the singleton class without accessing the origin class
not to segfault. [Bug #14658]
------------------------------------------------------------------------
r64980 | nagachika | 2018-10-09 23:25:37 +0900 (Tue, 09 Oct 2018) | 5 lines
merge revision(s) 64900: [Backport #15190]
Just a shebang is valid code
[ruby-core:89240] [Bug #15190]
------------------------------------------------------------------------
r64979 | nagachika | 2018-10-09 23:09:35 +0900 (Tue, 09 Oct 2018) | 12 lines
merge revision(s) 62007,62024: [Backport #13069]
mkmf.rb: ignore linker warnings
* lib/mkmf.rb (try_ldflags): ignore linker warnings. they cause
unexpected failures on OpenBSD. [ruby-core:78827] [Bug #13069]
mkmf.rb: werror on mswin
* lib/mkmf.rb (MakeMakefile#try_ldflags): enable warning checking
on mswin, link.exe warns -l options but does not fail.
[Bug #13069]
------------------------------------------------------------------------
r64978 | nagachika | 2018-10-09 22:59:53 +0900 (Tue, 09 Oct 2018) | 7 lines
merge revision(s) 64915: [Backport #15205]
check argument type.
* iseq.c (iseqw_s_compile): check argument type (T_STRING) to
avoid SEGV.
------------------------------------------------------------------------
r64893 | nagachika | 2018-10-01 21:02:17 +0900 (Mon, 01 Oct 2018) | 33 lines
merge revision(s) 63868,63870: [Backport #14897]
Fix a bug of peephole optimization
```
if L1
L0:
jump L2
L1:
...
L2:
```
was wrongly optimized to:
```
unless L2
L0:
L1:
...
L2:
```
To make it conservative, this optimization is now disabled when there is
any label between `if` and `jump` instructions.
Fixes [Bug #14897].
compile.c: remove unreachable jump only
* compile.c (iseq_peephole_optimize): remove unreachable jump
instruction only. if it is labeled and referred from other
instructions, it is reachable and must not be removed.
[ruby-core:87830] [Bug #14897]
------------------------------------------------------------------------
r64621 | nagachika | 2018-09-03 20:04:55 +0900 (Mon, 03 Sep 2018) | 1 line
test/test_tmpdir.rb(TRAVERSAL_PATH): re-apply r62990 partially. [Backport #14966]
------------------------------------------------------------------------
r64617 | nagachika | 2018-09-02 20:23:06 +0900 (Sun, 02 Sep 2018) | 7 lines
merge revision(s) 64092: [Backport #14942]
win32.c: limit write size on console
* win32/win32.c (constat_parse): split long buffer and limit write
size on a console, as well as rb_w32_write.
[ruby-dev:50597] [Bug #14942]
------------------------------------------------------------------------
r64616 | nagachika | 2018-09-02 20:20:33 +0900 (Sun, 02 Sep 2018) | 6 lines
merge revision(s) 64071: [Backport #14941]
ruby.c: taint ARGV on Windows
* ruby.c (external_str_new_cstr): strings come from the external
should be tainted. [ruby-dev:50596] [Bug #14941]
------------------------------------------------------------------------
r64613 | nagachika | 2018-09-02 12:43:25 +0900 (Sun, 02 Sep 2018) | 1 line
test/ruby/test_io.rb (test_select_leak): extend timeout for Arch Linux[Backport 14929]
------------------------------------------------------------------------
r64612 | nagachika | 2018-09-01 19:50:39 +0900 (Sat, 01 Sep 2018) | 1 line
bump up patchlevel for r64611
------------------------------------------------------------------------
r64611 | nagachika | 2018-09-01 19:49:09 +0900 (Sat, 01 Sep 2018) | 1 line
test/ruby/test_io.rb (test_select_leak): extend timeout [Bug 14929]
------------------------------------------------------------------------
r64605 | nagachika | 2018-09-01 14:40:02 +0900 (Sat, 01 Sep 2018) | 21 lines
merge revision(s) 64007,64019,64020: [Backport #14929]
thread.c (do_select): fix leak on exception
When do_select is interrupted and raise happens from
RUBY_VM_CHECK_INTS_BLOCKING, the original FD sets we copied
do not get freed, leading to a memory leak. Wrap up all the
FD sets into a Ruby object to ensure the GC can release an
allocations made for rb_fdset_t.
This leak existed since Ruby 2.0.0 (r36430)
[Bug #14929]
increase timeout seconds.
* test/ruby/test_io.rb (test_select_leak): increase timeout seconds
to pass this test on a high-load machine.
60 sec is not enough at all
------------------------------------------------------------------------
r64603 | nagachika | 2018-09-01 11:31:27 +0900 (Sat, 01 Sep 2018) | 8 lines
merge revision(s) 64014: [Backport #14926]
fix sum on infinity
* array.c (rb_ary_sum): consider non-finite floats.
[ruby-core:88024] [Bug #14926]
* enum.c (sum_iter): ditto.
------------------------------------------------------------------------
r64602 | nagachika | 2018-09-01 11:03:24 +0900 (Sat, 01 Sep 2018) | 6 lines
merge revision(s) 63994: [Backport #14920]
reduce tzset
* time.c (rb_localtime_r): call tzset() only after TZ environment
variable is changed.
------------------------------------------------------------------------
r64443 | nagachika | 2018-08-18 17:35:42 +0900 (Sat, 18 Aug 2018) | 9 lines
merge revision(s) 62099: [Backport #14416]
net/pop: make modified strings mutable
Thanks to Michael Zimmerman for the bug report
* lib/net/pop.rb: make modified strings mutable
[ruby-core:85210] [Bug #14416]
* test/net/pop/test_pop.rb: new test
------------------------------------------------------------------------
r64439 | nagachika | 2018-08-18 14:20:55 +0900 (Sat, 18 Aug 2018) | 9 lines
merge revision(s) 63741: [Backport #14868]
process.c (ruby_fork_ruby): fix race in signal handling
We must block signals before stopping timer-thread, otherwise
signal handing may be delayed until (and if) another signal
is received after timer-thread is restarted.
[ruby-core:87622] [Bug #14868] [Bug #13916]
------------------------------------------------------------------------
r64438 | nagachika | 2018-08-18 14:04:31 +0900 (Sat, 18 Aug 2018) | 8 lines
merge revision(s) 63727: [Backport #14865]
vm.c: fix infinite loop
* vm.c: use EXEC_EVENT_HOOK_AND_POP_FRAME. While exception handling, if an exception
is raised in hooks, need to pop current frame and raise this raised exception by hook.
[ruby-dev:50582] [Bug #14865]
------------------------------------------------------------------------
r64437 | nagachika | 2018-08-18 13:40:01 +0900 (Sat, 18 Aug 2018) | 15 lines
merge revision(s) 63698: [Backport #14856]
lib/drb/extservm.rb (service): do not return `false'
invoke_service_command may set entries in @servers to `false',
making it incompatible with the intended use of the
safe navigation operator.
This caused occasional DRb test failures, but they were hidden
with automatic retry.
[ruby-core:87524] [Bug #14856]
Fixes: r53111 ("use safe navigation operator")
commit 059c9c1cf371e049c7481c78b76e9620da52757f [GH-1142]
------------------------------------------------------------------------
r64435 | nagachika | 2018-08-18 13:19:42 +0900 (Sat, 18 Aug 2018) | 9 lines
merge revision(s) 63112: [Backport #14818]
Remove outdated example from Numeric documentation
Since 2.5, Numeric instances can be cloned and duplicated.
[Fix GH-1850]
From: Miguel Landaeta <miguel@miguel.cc>
------------------------------------------------------------------------
r64434 | nagachika | 2018-08-18 13:18:32 +0900 (Sat, 18 Aug 2018) | 24 lines
merge revision(s) 63571,63572: [Backport #14816]
`int isnan(double)` is a POSIXism
- `isnan` is something relatively new. We need to provide one for
those systems without it. However:
- X/Open defines `int isnan(double)`. Note the `int`.
- C99 defines `isnan(x)` to be a macro.
- C++11 nukes them all, undefines all the "masking macro"s, and
defines its own `bool isnan(double)`. Note the `bool`.
- In C++, `int isnan(double)` and `bool isnan(double)` are
incompatible.
- So the mess.
[Bug #14816][ruby-core:87364]
further reading: https://developers.redhat.com/blog/2016/02/29/why-cstdlib-is-more-complicated-than-you-might-think/
include/ruby/missing.h: defined(__cplusplus) before using __cplusplus
* include/ruby/missing.h (isinf, isnan): For non-C++ programs,
defined(__cplusplus) may be needed before using __cplusplus.
[Bug #14816]
------------------------------------------------------------------------
r64432 | nagachika | 2018-08-18 12:37:56 +0900 (Sat, 18 Aug 2018) | 21 lines
merge revision(s) 63549,63551,63554: [Backport #14805]
memo->u3.cnt is long not int [Bug #14805]
enum.c: mitigate overflows
* enum.c (enum_count): convert counters to Integer as unsigned
long, instead of long, to mitigate overflows.
[ruby-core:87348] [Bug #14805]
* enum.c (ary_inject_op): ditto.
* enum.c (each_with_index_i): ditto, instead of int.
* enum.c (find_index_i, find_index_iter_i): ditto, instead of
unsigned int.
enum.c: bignum counter
* enum.c (imemo_count_up, imemo_count_value): promote the counter
value to a bignum on overflow. [Bug #14805]
------------------------------------------------------------------------
r64431 | nagachika | 2018-08-18 12:07:15 +0900 (Sat, 18 Aug 2018) | 12 lines
merge revision(s) 63512,63514: [Backport #14790]
time.rb: fix parsing time zone in iso8601
* lib/time.rb (Time.xmlschema): a colon in time zone designator
can be omitted. [ruby-core:87277] [Bug #14790]
time.rb: fix parsing time zone in iso8601
* lib/time.rb (Time.xmlschema): the minute in time zone designator
can be omitted together with the preceding colon.
[ruby-core:87277] [Bug #14790]
------------------------------------------------------------------------
r64430 | nagachika | 2018-08-18 11:56:32 +0900 (Sat, 18 Aug 2018) | 6 lines
merge revision(s) 63417: [Backport #14756]
error.c: check redefined backtrace result
* error.c (rb_get_backtrace): check the result of `backtrace` even
if the method is redefined. [ruby-core:87013] [Bug #14756]
------------------------------------------------------------------------
r64428 | nagachika | 2018-08-18 11:39:09 +0900 (Sat, 18 Aug 2018) | 17 lines
merge revision(s) 63406: [Backport #14754]
openssl: merge changes in v2.1.1
Commits in upstream repository since v2.1.0 can be found at:
https://github.com/ruby/openssl/compare/v2.1.0...v2.1.1
----------------------------------------------------------------
Kazuki Yamaguchi (7):
test/utils: disable Thread's report_on_exception in start_server
cipher: validate iterations argument for Cipher#pkcs5_keyivgen
extconf.rb: fix build with LibreSSL 2.7.0
test/test_pkey_rsa: fix test failure with OpenSSL 1.1.1
test/test_ssl_session: set client protocol version explicitly
Ruby/OpenSSL 2.0.8
Ruby/OpenSSL 2.1.1
------------------------------------------------------------------------
r64421 | nagachika | 2018-08-18 01:27:13 +0900 (Sat, 18 Aug 2018) | 7 lines
merge revision(s) 62952: [Backport #14638]
win32/file.c: relative path with drive letter
* win32/file.c (IS_ABSOLUTE_PATH_P): home directory should not be
a relative path regardless a drive letter. PathIsRelativeW
returns FALSE on such path. [ruby-core:86356] [Bug #14638]
------------------------------------------------------------------------
r64420 | nagachika | 2018-08-18 01:20:53 +0900 (Sat, 18 Aug 2018) | 6 lines
merge revision(s) 63396: [Backport #14750]
net/imap: Fix ArgumentError in send_string_data
Thanks to ShockwaveNN (Pavel Lobashov) for reporting the bug.
[ruby-core:86990] [Bug #14750]
------------------------------------------------------------------------
r64419 | nagachika | 2018-08-18 00:48:46 +0900 (Sat, 18 Aug 2018) | 7 lines
merge revision(s) 63255: [Backport #14708]
compile.c: fix unconditional branch optimization
* compile.c (iseq_peephole_optimize): add dummy `putnil` after a
`jump` replacing an unconditional branch, to adjust removed
`dup`. [ruby-core:86666] [Bug #14708]
------------------------------------------------------------------------
r64418 | nagachika | 2018-08-18 00:33:57 +0900 (Sat, 18 Aug 2018) | 5 lines
merge revision(s) 61567: [Backport #14693]
fix uninitialized variable
Likewise this can easily be noticed if you read the warnings.
------------------------------------------------------------------------
r64320 | nagachika | 2018-08-12 20:51:02 +0900 (Sun, 12 Aug 2018) | 7 lines
merge revision(s) 63252: [Backport #14707]
string.c: fix scanned substring with `\K`
* string.c (scan_once): fix the matched substring with `\K`, the
beginning of that string may differ from the matched position.
[ruby-core:86663] [Bug #14707]
------------------------------------------------------------------------
r64319 | nagachika | 2018-08-12 19:37:03 +0900 (Sun, 12 Aug 2018) | 8 lines
merge revision(s) 63133: [Backport #14566]
eval_error.c: fix loop on exception in message
* error.c (rb_get_message): accessor to the message.
* eval_error.c (rb_ec_error_print): handle exceptions on fetching
the message. [Bug #14566]
------------------------------------------------------------------------
r64195 | nagachika | 2018-08-05 19:59:57 +0900 (Sun, 05 Aug 2018) | 7 lines
merge revision(s) 61766: [Backport #14350]
vm_insnhelper.c: search in the indexing order
* vm_insnhelper.c (vm_opt_newarray_max, vm_opt_newarray_min):
search in the indexing order, as well as usual methods.
[ruby-core:84821] [Bug #14350]
------------------------------------------------------------------------
r63826 | nagachika | 2018-07-02 18:15:33 +0900 (Mon, 02 Jul 2018) | 9 lines
merge revision(s) 63304: [Backport #14713]
io.c: workaround for EPROTOTYPE
* io.c (internal_write_func, internal_writev_func): retry at
unexpected EPROTOTYPE on macOS, to get rid of a kernel bug.
[ruby-core:86690] [Bug #14713]
* ext/socket/init.c (rsock_{sendto,send,write}_blocking): ditto.
------------------------------------------------------------------------
r63825 | nagachika | 2018-07-02 17:53:52 +0900 (Mon, 02 Jul 2018) | 7 lines
merge revision(s) 63696: [Backport #14853]
variable.c: fix receiver on private constant
* variable.c (rb_const_search): fix NameError :receiver attribute
on private constant, should raise with the included module, not
the ICLASS.
------------------------------------------------------------------------
r63824 | nagachika | 2018-07-02 17:30:36 +0900 (Mon, 02 Jul 2018) | 27 lines
merge revision(s) 62731,62735: [Backport #14495]
Bug Fix Enumerator::Lazy#uniq state for multiple call
* enumerator.c (lazy_uniq_i): create new hash for each calls.
[Fix GH-1820]
Currently
2.5.0-preview1 :001 > arr = (0..100).lazy.uniq{|i| i % 10}
=> #<Enumerator::Lazy: #<Enumerator::Lazy: 0..100>:uniq>
2.5.0-preview1 :002 > arr.to_a
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.5.0-preview1 :003 > arr.to_a
=> []
Expected
arr.to_a to always return same output
From: Anmol Chopra <anmolchopra@rocketbox.in>
test_enumerator.rb: duplicate assertions
* test/ruby/test_enumerator.rb (test_uniq): remove assertions
which ared duplicate of lazy enumerator tests in
test_lazy_enumerator.rb.
------------------------------------------------------------------------
r63819 | nagachika | 2018-07-02 09:31:27 +0900 (Mon, 02 Jul 2018) | 23 lines
merge revision(s) 61525,61527,63062,63650: [Backport #14846]
error.c: negative uplevel
* error.c (rb_warn_m): negative uplevel is not allowed.
[ruby-core:84568] [Bug #14262]
error.c: limit depth
* error.c (rb_warn_m): limit backtrace depth to reduce objects to
be created but not used.
error.c: prepend "warning: " always
* error.c (rb_warn_m): prepend the string "warning: " if uplevel
keyword is given, even if caller file and line information are
not available.
Fix condition in Kernel#warn when using uplevel
* It causes SEGV on `warn("foo", uplevel: 100)`.
* Found in a ruby/spec added by @andrykonchin in
https://github.com/ruby/spec/pull/605
------------------------------------------------------------------------
r63818 | nagachika | 2018-07-02 09:17:38 +0900 (Mon, 02 Jul 2018) | 1 line
bump up teeny version to 2.5.2.
------------------------------------------------------------------------
r63817 | nagachika | 2018-07-02 09:14:53 +0900 (Mon, 02 Jul 2018) | 19 lines
merge revision(s) 63054,63055,63056: [Backport #14655]
test_time_tz.rb: Kiritimati tzdata fix
* test/ruby/test_time_tz.rb (TestTimeTZ#test_pacific_kiritimati):
fix the expected data at the skip of New Year's Eve 1994.
[Bug #14655]
test_time_tz.rb: Kiritimati tzdata fix
* test/ruby/test_time_tz.rb (gen_zdump_test): fix the expected
data at the Kiritimati's skip of New Year's Eve 1994.
[Bug #14655]
test_time_tz.rb: Lisbon tzdata fix
* test/ruby/test_time_tz.rb (gen_variational_zdump_test): Update
Lisbon zdump data, which fixed the 1912-01-01 transition for
Portugual and its colonies. [Bug #14655]
------------------------------------------------------------------------
r63049 | naruse | 2018-03-31 22:50:56 +0900 (Sat, 31 Mar 2018) | 3 lines
merge revision(s) 63048: [Backport #14654]
Resurvey performance of RDoc by frozen_string_literal: true [Bug #14654]
------------------------------------------------------------------------
r63035 | naruse | 2018-03-29 19:05:57 +0900 (Thu, 29 Mar 2018) | 3 lines
merge revision(s) 61470:
Add ruby_2_5 branch to .travis.yml
------------------------------------------------------------------------
r63027 | naruse | 2018-03-29 01:45:58 +0900 (Thu, 29 Mar 2018) | 2 lines
p57
------------------------------------------------------------------------
r63026 | svn | 2018-03-29 01:44:34 +0900 (Thu, 29 Mar 2018) | 1 line
* 2018-03-29
------------------------------------------------------------------------
r63025 | naruse | 2018-03-29 01:44:33 +0900 (Thu, 29 Mar 2018) | 4 lines
revert r62985 (r62966 in trunk)
It breaks test-all
------------------------------------------------------------------------
r63011 | naruse | 2018-03-28 22:46:14 +0900 (Wed, 28 Mar 2018) | 9 lines
merge revision(s) 63008:
get rid of test error/failure on Windows introduced at r62955
* lib/webrick/httpresponse.rb (send_body_io): use seek if NotImplementedError
is raised in IO.copy_stream with offset.
* lib/webrick/httpservlet/filehandler.rb (multipart_body): ditto.
------------------------------------------------------------------------
r63010 | naruse | 2018-03-28 22:45:50 +0900 (Wed, 28 Mar 2018) | 2 lines
Revert wrong commit r62976-r62978
------------------------------------------------------------------------
r63009 | naruse | 2018-03-28 22:43:23 +0900 (Wed, 28 Mar 2018) | 6 lines
merge revision(s) 63000:
unixsocket.c: abstract namespace
* ext/socket/unixsocket.c (unixsock_path_value): fix r62991 for
Linux abstract namespace.
------------------------------------------------------------------------
r63007 | naruse | 2018-03-28 21:54:26 +0900 (Wed, 28 Mar 2018) | 2 lines
fix r62970 as r62990
------------------------------------------------------------------------
r63006 | naruse | 2018-03-28 21:50:56 +0900 (Wed, 28 Mar 2018) | 98 lines
merge revision(s) 62953-62959:
win32/file.c: relative path with drive letter
* win32/file.c (IS_ABSOLUTE_PATH_P): home directory should not be
a relative path regardless a drive letter. PathIsRelativeW
returns FALSE on such path. [ruby-core:86356] [Bug #14638]
------------------------------------------------------------------------
r62953 | normal | 2018-03-28 17:05:46 +0900 (Wed, 28 Mar 2018) | 15 lines
webrick: favor .write over << method
This will make the next change to use IO.copy_stream
easier-to-read. When we can drop Ruby 2.4 support in a few
years, this will allow us to use writev(2) with multiple
arguments for headers and chunked responses.
* lib/webrick/cgi.rb (write): new wrapper method
lib/webrick/httpresponse.rb: (send_header): use socket.write
(send_body_io): ditto
(send_body_string): ditto
(send_body_proc): ditto
(_write_data): ditto
(ChunkedWrapper#write): ditto
(_send_file): ditto
------------------------------------------------------------------------
r62954 | normal | 2018-03-28 17:05:52 +0900 (Wed, 28 Mar 2018) | 14 lines
webrick/httpresponse: IO.copy_stream for regular files
Remove the redundant _send_file method since its functionality
is unnecessary with IO.copy_stream. IO.copy_stream also allows
the use of sendfile under some OSes to speed up copies to
non-TLS sockets.
Testing with "curl >/dev/null" and "ruby -run -e httpd" to
read a 1G file over Linux loopback reveals a reduction from
around ~0.770 to ~0.490 seconds on the client side.
* lib/webrick/httpresponse.rb (send_body_io): use IO.copy_stream
(_send_file): remove
[Feature #14237]
------------------------------------------------------------------------
r62955 | normal | 2018-03-28 17:05:57 +0900 (Wed, 28 Mar 2018) | 10 lines
webrick: use IO.copy_stream for single range response
This is also compatible with range responses generated
by Rack::File (tested with rack 2.0.3).
* lib/webrick/httpresponse.rb (send_body_io): use Content-Range
* lib/webrick/httpservlet/filehandler.rb (make_partial_content):
use File object for the single range case
* test/webrick/test_filehandler.rb (get_res_body): use send_body
to test result
------------------------------------------------------------------------
r62956 | normal | 2018-03-28 17:06:02 +0900 (Wed, 28 Mar 2018) | 7 lines
test/webrick/test_filehandler.rb: stricter multipart range test
We need to ensure we generate compatibile output in
the face of future changes
* test/webrick/test_filehandler.rb (test_make_partial_content):
check response body
------------------------------------------------------------------------
r62957 | normal | 2018-03-28 17:06:08 +0900 (Wed, 28 Mar 2018) | 8 lines
webrick: quiet warning for multi-part ranges
Content-Length is ignored by WEBrick::HTTPResponse even if we
calculate it, so instead we chunk responses to HTTP/1.1 clients
and terminate HTTP/1.0 connections.
* lib/webrick/httpservlet/filehandler.rb (make_partial_content):
quiet warning
------------------------------------------------------------------------
r62958 | normal | 2018-03-28 17:06:13 +0900 (Wed, 28 Mar 2018) | 7 lines
webrick/httpresponse: make ChunkedWrapper copy_stream-compatible
The .write method needs to return the number of bytes written
to avoid confusing IO.copy_stream.
* lib/webrick/httpresponse.rb (ChunkedWrapper#write): return bytes written
(ChunkedWrapper#<<): return self
------------------------------------------------------------------------
r62959 | normal | 2018-03-28 17:06:18 +0900 (Wed, 28 Mar 2018) | 9 lines
webrick: use IO.copy_stream for multipart response
Use the new Proc response body feature to generate a multipart
range response dynamically. We use a flat array to minimize
object overhead as much as possible; as many ranges may fit
into an HTTP request header.
* lib/webrick/httpservlet/filehandler.rb (multipart_body): new method
(make_partial_content): use multipart_body
------------------------------------------------------------------------
r62986 | naruse | 2018-03-28 18:26:17 +0900 (Wed, 28 Mar 2018) | 9 lines
webrick: prevent response splitting and header injection
Original patch by tenderlove (with minor style adjustments).
* lib/webrick/httpresponse.rb (send_header): call check_header
(check_header): raise on embedded CRLF in header value
* test/webrick/test_httpresponse.rb
(test_prevent_response_splitting_headers): new test
* (test_prevent_response_splitting_cookie_headers): ditto
------------------------------------------------------------------------
r62985 | naruse | 2018-03-28 18:26:16 +0900 (Wed, 28 Mar 2018) | 23 lines
webrick/httpproxy: stream request and response bodies
Reading entire request or response bodies into memory can lead
to trivial denial-of-service attacks. Introduce Fibers in both
cases to allow streaming.
WEBrick::HTTPRequest gains a new body_reader method to prepare
itself as a source for IO.copy_stream. This allows the
WEBrick::HTTPRequest object to be used as the
Net::HTTPGenericRequest#body_stream= arg for Net::HTTP.
For HTTP proxy response bodies, we also use a Fiber to
to make the HTTP request and read the response body.
* lib/webrick/httprequest.rb (body_reader): new method
(readpartial): ditto
* lib/webrick/httpproxy.rb (perform_proxy_request): use Fiber
to stream response body
(do_GET, do_HEAD): adjust call
(do_POST): adjust call and supply body_reader
* test/webrick/test_httprequest.rb (test_chunked): test
for IO.copy_stream compatibility
* test/webrick/test_httpproxy.rb (test_big_bodies): new test
------------------------------------------------------------------------
r62984 | naruse | 2018-03-28 18:26:14 +0900 (Wed, 28 Mar 2018) | 18 lines
webrick/httpauth/digestauth: stream req.body
WARNING! WARNING! WARNING! LIKELY BROKEN CHANGE
Pass a proc to WEBrick::HTTPRequest#body to avoid reading a
potentially large request body into memory during
authentication.
WARNING! this will break apps completely which want to do
something with the body besides calculating the MD5 digest
of it.
Also, keep in mind that probably nobody uses "auth-int".
Servers such as Apache, lighttpd, nginx don't seem to
support it; nor does curl when using POST/PUT bodies;
and we didn't have tests for it until now...
* lib/webrick/httpauth/digestauth.rb (_authenticate): stream req.body
------------------------------------------------------------------------
r62983 | naruse | 2018-03-28 18:26:13 +0900 (Wed, 28 Mar 2018) | 9 lines
webrick: add test for Digest auth-int
No changes to the actual code, this is a new test for
a feature for which no tests existed. I don't understand
the Digest authentication code well at all, but this is
necessary for the subsequent change.
* test/webrick/test_httpauth.rb (test_digest_auth_int): new test
(credentials_for_request): support bodies with POST
------------------------------------------------------------------------
r62982 | naruse | 2018-03-28 18:26:12 +0900 (Wed, 28 Mar 2018) | 9 lines
webrick/httprequest: use InputBufferSize for chunked requests
While WEBrick::HTTPRequest#body provides a Proc interface
for streaming large request bodies, clients must not force
the server to use an excessively large chunk size.
* lib/webrick/httprequest.rb (read_chunk_size): limit each
read and block.call to :InputBufferSize in config.
* test/webrick/test_httpserver.rb (test_big_chunks): new test
------------------------------------------------------------------------
r62981 | naruse | 2018-03-28 18:26:12 +0900 (Wed, 28 Mar 2018) | 7 lines
webrick/httprequest: raise correct exception
"BadRequest" alone does not resolve correctly, it is in the
HTTPStatus namespace.
* lib/webrick/httprequest.rb (read_chunked): use correct exception
* test/webrick/test_httpserver.rb (test_eof_in_chunk): new test
------------------------------------------------------------------------
r62980 | naruse | 2018-03-28 18:26:11 +0900 (Wed, 28 Mar 2018) | 9 lines
webrick/httpservlet/cgihandler: reduce memory use
WEBrick::HTTPRequest#body can be passed a block to process the
body in chunks. Use this feature to avoid building a giant
string in memory.
* lib/webrick/httpservlet/cgihandler.rb (do_GET):
avoid reading entire request body into memory
(do_POST is aliased to do_GET, so it handles bodies)
------------------------------------------------------------------------
r62979 | naruse | 2018-03-28 18:26:10 +0900 (Wed, 28 Mar 2018) | 13 lines
webrick/httprequest: limit request headers size
We use the same 112 KB limit started (AFAIK) by Mongrel, Thin,
and Puma to prevent malicious users from using up all the memory
with a single request. This also limits the damage done by
excessive ranges in multipart Range: requests.
Due to the way we rely on IO#gets and the desire to keep
the code simple, the actual maximum header may be 4093 bytes
larger than 112 KB, but we're splitting hairs at that point.
* lib/webrick/httprequest.rb: define MAX_HEADER_LENGTH
(read_header): raise when headers exceed max length
------------------------------------------------------------------------
r62978 | naruse | 2018-03-28 18:26:09 +0900 (Wed, 28 Mar 2018) | 1 line
sdbm: constified
------------------------------------------------------------------------
r62977 | naruse | 2018-03-28 18:26:08 +0900 (Wed, 28 Mar 2018) | 4 lines
sdbm: check offset
* ext/sdbm/_sdbm.c (splpage): check offset range.
https://hackerone.com/reports/271291
------------------------------------------------------------------------
r62976 | naruse | 2018-03-28 18:26:07 +0900 (Wed, 28 Mar 2018) | 6 lines
sdbm: check offset
* ext/sdbm/_sdbm.c (getpair, getnkey): check offset range.
https://hackerone.com/reports/271096
* ext/sdbm/init.c (fsdbm_each_pair): raise if fetch failed.
------------------------------------------------------------------------
r62975 | naruse | 2018-03-28 18:26:06 +0900 (Wed, 28 Mar 2018) | 4 lines
pack.c: fix underflow
* pack.c (pack_unpack_internal): get rid of underflow.
https://hackerone.com/reports/298246
------------------------------------------------------------------------
r62974 | naruse | 2018-03-28 18:26:04 +0900 (Wed, 28 Mar 2018) | 9 lines
dir.c: check NUL bytes
* dir.c (GlobPathValue): should be used in rb_push_glob only.
other methods should use FilePathValue.
https://hackerone.com/reports/302338
* dir.c (rb_push_glob): expand GlobPathValue
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r62973 | naruse | 2018-03-28 18:26:01 +0900 (Wed, 28 Mar 2018) | 4 lines
unixsocket.c: check NUL bytes
* ext/socket/unixsocket.c (rsock_init_unixsock): check NUL bytes.
https://hackerone.com/reports/302997
------------------------------------------------------------------------
r62972 | svn | 2018-03-28 18:26:01 +0900 (Wed, 28 Mar 2018) | 1 line
* 2018-03-28
------------------------------------------------------------------------
r62971 | naruse | 2018-03-28 18:26:00 +0900 (Wed, 28 Mar 2018) | 1 line
Remove directory separators
------------------------------------------------------------------------
r62911 | naruse | 2018-03-25 01:00:27 +0900 (Sun, 25 Mar 2018) | 18 lines
merge revision(s) 61587,61617,61618: [Backport #14273]
compile.c: next label
* compile.c (compile_next): label for jump to the end of block is
removable.
compile.c: remove more unreachable chunk
* compile.c (remove_unreachable_chunk): remove beyond labels to be
removed.
compile.c: fix stack consistency error
* compile.c (iseq_peephole_optimize): fix stack consistency error
from return in loop, by adding extra `pop` when replacing `jump`
with `leave`, which is never reached but needed to adjust sp
calculation. [ruby-core:84589] [Bug #14273]
------------------------------------------------------------------------
r62909 | naruse | 2018-03-24 20:43:50 +0900 (Sat, 24 Mar 2018) | 13 lines
merge revision(s) 62723,62724: [Backport #14584]
parse.y: reduce duplicate code
parse.y: fix interpolated string literal dedent
* parse.y (heredoc_dedent): fix interpolated string literal dedent,
remove indentations from only nodes with the newline flag.
[ruby-core:85983] [Bug #14584]
* parse.y (here_document): set the newline flag on literal string
nodes starting at the beginning of line.
------------------------------------------------------------------------
r62905 | naruse | 2018-03-24 19:57:34 +0900 (Sat, 24 Mar 2018) | 11 lines
merge revision(s) 62548,62894: [Backport #14324]
eval_error.c: rb_error_write flags
* eval_error.c (rb_error_write): add highlight and reverse mode
flags. defaulted to rb_stderr_tty_p() if Qnil.
error.c: full_message options
* error.c (exc_full_message): add highlight: and reverse: keyword
options. [Bug #14324]
------------------------------------------------------------------------
r62896 | naruse | 2018-03-22 20:18:00 +0900 (Thu, 22 Mar 2018) | 7 lines
merge revision(s) 62892,62893: [Backport #14363]
fix each_grapheme_cluster's size [Bug #14363]
From: Hugo Peixoto <hugo.peixoto@gmail.com>
Factor out get_reg_grapheme_cluster
------------------------------------------------------------------------
r62895 | naruse | 2018-03-22 19:02:54 +0900 (Thu, 22 Mar 2018) | 2 lines
teenyup
------------------------------------------------------------------------
r62890 | svn | 2018-03-22 16:00:18 +0900 (Thu, 22 Mar 2018) | 1 line
* 2018-03-22
------------------------------------------------------------------------
r62889 | naruse | 2018-03-22 16:00:17 +0900 (Thu, 22 Mar 2018) | 14 lines
merge revision(s) 62042,62044: [Backport #14380]
hash.c: support key swapping in Hash#transform_keys!
* hash.c (rb_hash_transform_keys_bang): support key swapping in
Hash#transform_keys!
[Bug #14380] [ruby-core:84951]
* test/ruby/test_hash.rb (test_transform_keys_bang):
add assertions for this change
Fix rubyspec against the change in Hash#transform_keys!
[Bug #14380] [ruby-core:84951]
------------------------------------------------------------------------
r62860 | naruse | 2018-03-20 18:52:52 +0900 (Tue, 20 Mar 2018) | 9 lines
merge revision(s) 62725: [Backport #14604]
Fix setting method visibility on method wrapped with prepend
Ignore prepended modules when looking for already defined methods on a
class to set the visibility on.
[Fix GH-1834]
From: Dylan Thacker-Smith <Dylan.Smith@shopify.com>
------------------------------------------------------------------------
r62859 | naruse | 2018-03-20 18:39:52 +0900 (Tue, 20 Mar 2018) | 7 lines
merge revision(s) 62734: [Backport #14613]
Add missing class FrozenError to Exception subclasses list documentation
[Fix GH-1818]
From: Miguel Landaeta <miguel@miguel.cc>
------------------------------------------------------------------------
r62858 | naruse | 2018-03-20 18:37:39 +0900 (Tue, 20 Mar 2018) | 37 lines
merge revision(s) 62396: [Backport #14357]
st.c: retry operations if rebuilt
Calling the .eql? and .hash methods during a Hash operation can
result in a thread switch or a signal handler to run: allowing
one execution context to rebuild the hash table while another is
still reading or writing the table. This results in a
use-after-free bug affecting the thread_safe-0.3.6 test suite
and likely other bugs.
This bug did not affect users of commonly keys (String, Symbol,
Fixnum) as those are optimized to avoid method dispatch
for .eql? and .hash methods.
A separate version of this change needs to be ported to Ruby 2.3.x
which had a different implementation of st.c but was affected
by the same bug.
* st.c: Add comment about table rebuilding during comparison.
(DO_PTR_EQUAL_CHECK): New macro.
(REBUILT_TABLE_ENTRY_IND, REBUILT_TABLE_BIN_IND): New macros.
(find_entry, find_table_entry_ind, find_table_bin_ind): Use new
macros. Return the rebuild flag.
(find_table_bin_ptr_and_reserve): Ditto.
(st_lookup, st_get_key, st_insert, st_insert2): Retry the
operation if the table was rebuilt.
(st_general_delete, st_shift, st_update, st_general_foreach):
Ditto.
(st_rehash_linear, st_rehash_indexed): Use DO_PTR_EQUAL_CHECK.
Return the rebuild flag.
(st_rehash): Retry the operation if the table was rebuilt.
[ruby-core:85510] [Ruby trunk Bug#14357]
Thanks to Vit Ondruch for reporting the bug.
From: Vladimir Makarov <vmakarov@redhat.com>
------------------------------------------------------------------------
r62854 | naruse | 2018-03-20 11:09:21 +0900 (Tue, 20 Mar 2018) | 7 lines
merge revision(s) 62673: [Backport #14577]
thread.c: deadlock in backtrace
* thread.c (unblock_function_set): check interrupts just once
during raising exceptions, as they are deferred since r16651.
[ruby-core:85939] [Bug #14577]
------------------------------------------------------------------------
r62853 | svn | 2018-03-20 11:08:28 +0900 (Tue, 20 Mar 2018) | 1 line
* 2018-03-20
------------------------------------------------------------------------
r62852 | naruse | 2018-03-20 11:08:27 +0900 (Tue, 20 Mar 2018) | 13 lines
merge revision(s) 62668: [Backport #14578]
thread.c: reset waitq of keeping mutexes in child
We must not maintain references to threads in the parent process
in any mutexes held by the child process.
* thread_sync.c (rb_mutex_cleanup_keeping_mutexes): new function
* thread.c (rb_thread_atfork): cleanup keeping mutexes
[ruby-core:85940] [Bug #14578]
Fixes: r58604 (commit 3586c9e0876e784767a1c1adba9ebc2499fa0ec2)
("reduce rb_mutex_t size from 160 to 80 bytes on 64-bit")
------------------------------------------------------------------------
r62837 | naruse | 2018-03-19 17:27:04 +0900 (Mon, 19 Mar 2018) | 34 lines
merge revision(s) 62244,62246,62301,62302,62303,62422,62436,62452: [Backport #14481]
Merge RubyGems-2.7.5 from upstream.
Please see its details: http://blog.rubygems.org/2018/02/06/2.7.5-released.html
test_gem_util.rb: fix broken test
* test/rubygems/test_gem_util.rb: no guarantee that tmpdir is
always underneath the root directory at all.
test_gem_commands_setup_command.rb: BUNDLER_VERS
* test/rubygems/test_gem_commands_setup_command.rb: run bundled
gem command, instead of installed one.
no need to set bundled bundler unless Gem::USE_BUNDLER_FOR_GEMDEPS
revert r62302 and force to define the version constant
Merge RubyGems 2.7.6 from upstream.
It fixed some security vulnerabilities.
http://blog.rubygems.org/2018/02/15/2.7.6-released.html
fix regexp literal warning.
test/rubygems/test_gem_server.rb: eliminate duplicated character class warning.
[Bug #14481]
Remove unnecessary `[]`s
------------------------------------------------------------------------
r62835 | naruse | 2018-03-19 17:15:50 +0900 (Mon, 19 Mar 2018) | 2 lines
Merge r62197 to ease next merge
------------------------------------------------------------------------
r62834 | naruse | 2018-03-19 17:15:16 +0900 (Mon, 19 Mar 2018) | 20 lines
merge revision(s) 61501,61758: [Backport #14481]
fix concurrent test.
* test/rubygems/test_require.rb (test_concurrent_require):
Synchronizations should be in ensure clause. Sometimes
`require` fails (not sure why) and latch is not released.
Such case introduces unlimited awaiting.
This patch soleve this problem.
skip some tests so that no failure occurs in root privilege
Some tests had failed on `sudo make test-all`, mainly because root can
access any files regardless of permission. This change adds `skip`
guards into such tests.
Note that almost all tests in which `skip` guards is added, already have
"windows" guard. This is because there is no support to avoid read
access by owner on Windows.
------------------------------------------------------------------------
r62761 | naruse | 2018-03-15 16:35:54 +0900 (Thu, 15 Mar 2018) | 15 lines
merge revision(s) 62394,62395: [Backport #14469]
vm_insnhelper.c: rb_autoloading_value flag
* vm_insnhelper.c (vm_get_ev_const): add flag argument of
`rb_autoloading_value`.
* constant.h (rb_autoloading_value): moved the declaration from
vm_core.h for `rb_const_flag_t`. [ruby-core:85516] [Bug #14469]
variable.c: flags at autoloading
* variable.c (const_tbl_update): flags by deprecate_constant /
private_constant set during autoloading should be preserved
after required. [ruby-core:85516] [Bug #14469]
------------------------------------------------------------------------
r62632 | naruse | 2018-03-02 17:25:51 +0900 (Fri, 02 Mar 2018) | 13 lines
merge revision(s) 62606,62607: [Backport #14557]
file.c: get rid of useless conversion
* file.c (rb_file_s_stat): File.stat does not accept an IO
object as trying conversion to path name string first. skip
conversion to IO and try stat(2) only.
file.c: realpath on special symlink
* file.c (realpath_rec): fallback to symlink path when it is
accessible but the link target is not actual entry on file
systems. [ruby-dev:50487] [Bug #14557]
------------------------------------------------------------------------
r62610 | naruse | 2018-02-28 18:52:40 +0900 (Wed, 28 Feb 2018) | 8 lines
merge revision(s) 62572: [Backport #14549]
date_core.c: defensive code
* ext/date/date_core.c (f_cmp): check comparison failure.
* ext/date/date_core.c (d_lite_step): deal with the comparison
result more defensively. [ruby-core:85796] [Bug #14549]
------------------------------------------------------------------------
r62609 | naruse | 2018-02-28 18:49:29 +0900 (Wed, 28 Feb 2018) | 12 lines
merge revision(s) 62506,62508: [Backport #14438]
test_time_tz.rb: past Japanese DST tzdata fix
* test/ruby/test_time_tz.rb (TestTimeTZ#test_asia_tokyo): follow
the tzdata 2018 fix of Japanese DST transitions (1948-1951).
[ruby-core:85373] [Bug #14438]
test_time_tz.rb: past Japanese DST tzdata fix
* test/ruby/test_time_tz.rb (TestTimeTZ#test_asia_tokyo): fix
the expected data at the end of DST. [Bug #14438]
------------------------------------------------------------------------
r62587 | svn | 2018-02-26 17:43:45 +0900 (Mon, 26 Feb 2018) | 1 line
* 2018-02-26
------------------------------------------------------------------------
r62586 | naruse | 2018-02-26 17:43:44 +0900 (Mon, 26 Feb 2018) | 5 lines
merge revision(s) 62094,62584: [Backport #14407]
Merge ruby/spec@fd56cd4
------------------------------------------------------------------------
r62569 | svn | 2018-02-25 09:36:44 +0900 (Sun, 25 Feb 2018) | 1 line
* 2018-02-25
------------------------------------------------------------------------
r62568 | naruse | 2018-02-25 09:36:43 +0900 (Sun, 25 Feb 2018) | 9 lines
merge revision(s) 62071: [Backport #14407]
defined? returns nil for toplevel constant lookup
* variable.c (rb_const_defined_0): toplevel constant lookup has
been removed, should return nil too.
[ruby-core:85142] [Bug #14407] [Fix GH-1800]
From: Gonzalo <grzuy0@gmail.com>
------------------------------------------------------------------------
r62562 | naruse | 2018-02-24 16:19:48 +0900 (Sat, 24 Feb 2018) | 8 lines
merge revision(s) 62555: [Backport #14547]
rational.c: segfault on Rational exponent
* rational.c (read_num): fix segfault on Rational() with positive
but less than the length of fractional part exponent. should be
negated to convert to divisor which is a reciprocal.
[ruby-core:85783] [Bug #14547]
------------------------------------------------------------------------
r62561 | naruse | 2018-02-24 16:19:06 +0900 (Sat, 24 Feb 2018) | 10 lines
merge revision(s) 62513: [Backport #12762]
Update url with 404 status on LEGAL file.
* Update redirected and upstream url.
* Added the Wayback Machine url for missing link.
[Bug #12762][ruby-dev:49802]
From: SHIBATA Hiroshi <hsbt@ruby-lang.org>
------------------------------------------------------------------------
r62539 | naruse | 2018-02-23 07:04:35 +0900 (Fri, 23 Feb 2018) | 6 lines
merge revision(s) 61862: [Backport #14368]
parse.y (new_regexp): Fix SEGV of `/#{"\u3042"}#{'?'}/` in non UTF-8
Mixing other encoding string literals in one Regexp caused SEGV.
This bug was found by CoverityScan.
------------------------------------------------------------------------
r62538 | naruse | 2018-02-23 06:41:46 +0900 (Fri, 23 Feb 2018) | 8 lines
merge revision(s) 62107: [Backport #14420]
force fixable
* complex.c (nucomp_hash): force hash values fixable.
[ruby-core:85224] [Bug #14420]
* rational.c (nurat_hash): ditto.
------------------------------------------------------------------------
r62537 | naruse | 2018-02-23 06:29:36 +0900 (Fri, 23 Feb 2018) | 12 lines
merge revision(s) 61605,62359,62361: [Backport #14356]
Try to fix Travis CI configuration.
.travis.yml: send notification to #alerts
instead of #commits.
.travis.yml: resurrect notification to #commits
I heard at least Shibata-san sees the channel for the notification.
But I want #alets to have all CI failure notifications too.
------------------------------------------------------------------------
r62527 | naruse | 2018-02-22 20:01:13 +0900 (Thu, 22 Feb 2018) | 6 lines
merge revision(s) 62333: [Backport #14459]
compile.c: popped hash
* compile.c (compile_array): skip creating new hash if preceeding
elements are popped all. [ruby-core:85486] [Bug #14459]
------------------------------------------------------------------------
r62511 | naruse | 2018-02-21 15:16:32 +0900 (Wed, 21 Feb 2018) | 8 lines
merge revision(s) 61484: [Backport #14232]
vm_method.c: fix super in refined module
* vm_method.c (rb_method_entry_complement_defined_class): clone
the original method entry of refined module instance method with
the active ICLASS, to track super method chain.
[ruby-dev:50390] [Bug #14232]
------------------------------------------------------------------------
r62510 | naruse | 2018-02-21 15:00:51 +0900 (Wed, 21 Feb 2018) | 6 lines
merge revision(s) 61469: [Backport #14427]
irb.rb: fix highlight
* lib/irb.rb (IRB::Irb#eval_input): fix highlight for multiple
lines exception messages.
------------------------------------------------------------------------
r62509 | naruse | 2018-02-21 14:42:42 +0900 (Wed, 21 Feb 2018) | 6 lines
merge revision(s) 61523: [Backport #14261]
parse.y: assignable_error
* parse.y (assignable_gen): should return valid NODE always even
on errors. [ruby-core:84565] [Bug #14261]
------------------------------------------------------------------------
r62507 | naruse | 2018-02-21 13:36:00 +0900 (Wed, 21 Feb 2018) | 8 lines
merge revision(s) 62115: [Backport #14421]
proc: fix super_method segfault after bind
* proc.c: handle undefined iclass
[ruby-core:85231] [Bug #14421]
From: Eric Wong <e@80x24.org>
------------------------------------------------------------------------
r62501 | naruse | 2018-02-21 05:11:47 +0900 (Wed, 21 Feb 2018) | 21 lines
merge revision(s) 62116,62151: [Backport #14425]
ruby.h: relax rb_funcall check on extra args for clang
clang 5.+ (tested clang 7.0.0) seems to be attempting division-by-zero
and giving a very large number for static args to rb_funcall.
* include/ruby/ruby.h (rb_varargs_bad_length): relax check for clang
* ext/-test-/funcall/funcall.c: renamed from passing_block.c
define extra_args_name function
* test/-ext-/funcall/test_funcall.rb: new test
[ruby-core:85266] [Bug #14425]
From: Eric Wong <e@80x24.org>
ruby.h: relax rb_funcall(obj, id, 0, 0) case only
* include/ruby/ruby.h (rb_varargs_argc_valid_p): relax rb_funcall
check on extra args only if argc == 0, for the compatibility
with wrong code which is probably confused with rb_funcallv.
[Bug #14425]
------------------------------------------------------------------------
r62483 | naruse | 2018-02-19 15:51:53 +0900 (Mon, 19 Feb 2018) | 7 lines
merge revision(s) 62040: [Backport #14388]
string.c: clear substring code range
* string.c (str_substr): substring of broken code range string may
be valid or broken. patch by tommy (Masahiro Tomita) at
[ruby-dev:50430] [Bug #14388].
------------------------------------------------------------------------
r62482 | naruse | 2018-02-19 15:36:03 +0900 (Mon, 19 Feb 2018) | 5 lines
merge revision(s) 61645: [Backport #14333]
Added bundler for `test-bundled-gems` dependency.
rake, did_you_mean, test-unit depends on bundler.
------------------------------------------------------------------------
r62481 | naruse | 2018-02-19 15:33:01 +0900 (Mon, 19 Feb 2018) | 14 lines
merge revision(s) 61711:
compile.c (iseq_compile_each0): remove irrelevant tracecoverage
This change removes tracecoverage instructions on a line that has any
NODE but is non-significant, such as, just one literal.
This fixes the following failure that occurs only when coverage is
enabled:
1) Failure:
TestISeq#test_to_a_lines [.../ruby/test/ruby/test_iseq.rb:56]:
<[3, 4, 7, 9]> expected but was
<[3, 4, 5, 6, 7, 8, 9]>.
------------------------------------------------------------------------
r62472 | naruse | 2018-02-18 23:25:43 +0900 (Sun, 18 Feb 2018) | 3 lines
merge revision(s) 61591: [Backport #14312]
iseq.c (rb_iseq_new_with_opt): handle the case where node is imemo_func
------------------------------------------------------------------------
r62471 | svn | 2018-02-18 20:53:15 +0900 (Sun, 18 Feb 2018) | 1 line
* 2018-02-18
------------------------------------------------------------------------
r62470 | naruse | 2018-02-18 20:53:14 +0900 (Sun, 18 Feb 2018) | 4 lines
Revert r62426
it cause test failure
------------------------------------------------------------------------
r62428 | naruse | 2018-02-16 17:34:45 +0900 (Fri, 16 Feb 2018) | 11 lines
merge revision(s) 61616: [Backport #14314]
marshal.c: allow marshalling keyword_init struct
struct.c: define rb_struct_s_keyword_init to shared with marshal.c
internal.h: add the declaration to be used by marshal.c
test/ruby/test_marshal.rb: add test for Bug#14314
[Feature #14314] [ruby-core:84629]
------------------------------------------------------------------------
r62427 | naruse | 2018-02-16 17:31:35 +0900 (Fri, 16 Feb 2018) | 10 lines
merge revision(s) 61754: [Backport #14346]
dir.c: pass flags to openat(2) correctly
Flags are 3rd argument of openat(2) while the 4th argument
(mode_t) is unnecessary for our uses. This bug exists since
Ruby 2.5 from r58860 and was discoverd by strace.
* dir.c (nogvl_opendir_at): use openat correctly
[Feature #13056] [Feature #14346]
------------------------------------------------------------------------
r62426 | naruse | 2018-02-16 17:28:48 +0900 (Fri, 16 Feb 2018) | 13 lines
merge revision(s) 61617,61618: [Backport #14273]
compile.c: remove more unreachable chunk
* compile.c (remove_unreachable_chunk): remove beyond labels to be
removed.
compile.c: fix stack consistency error
* compile.c (iseq_peephole_optimize): fix stack consistency error
from return in loop, by adding extra `pop` when replacing `jump`
with `leave`, which is never reached but needed to adjust sp
calculation. [ruby-core:84589] [Bug #14273]
------------------------------------------------------------------------
r62425 | naruse | 2018-02-16 17:17:36 +0900 (Fri, 16 Feb 2018) | 13 lines
merge revision(s) 61639: [Backport #14323]
net/ftp: fix FrozenError in BufferedSocket
I noticed this bug while working on something else with
RUBYOPT=-d on, existing test cases all passed with it.
Note: I use String.new because it is the local style, here,
I prefer +'' (or ''.b, for a future commit)
* lib/net/ftp.rb (BufferedSocket#read): use String.new
* test/net/ftp/test_buffered_socket.rb (test_read_nil): new test
[ruby-core:84675] [Bug #14323]
------------------------------------------------------------------------
r62421 | naruse | 2018-02-16 16:36:21 +0900 (Fri, 16 Feb 2018) | 6 lines
merge revision(s) 61636: [Backport #14257]
string.c: out-of-bounds access
* string.c (rb_str_enumerate_lines): fix out-of-bounds access when
record separator is longer than the last element. [Bug #14257]
------------------------------------------------------------------------
r62420 | naruse | 2018-02-16 16:32:11 +0900 (Fri, 16 Feb 2018) | 9 lines
merge revision(s) 61603: [Backport #14279]
check array for zsuper. [Bug #14279]
* compile.c (iseq_compile_each0): for zsuper (NODE_ZSUPER), we need to check
given argument is Array or not.
* test/ruby/test_super.rb: add a test for this bug.
------------------------------------------------------------------------
r62096 | svn | 2018-01-30 02:00:37 +0900 (Tue, 30 Jan 2018) | 1 line
* 2018-01-30
------------------------------------------------------------------------
r62095 | naruse | 2018-01-30 02:00:36 +0900 (Tue, 30 Jan 2018) | 108 lines
merge revision(s) 61564,61565,61571: [Backport #14270]
fix SEGV touching uninitialized memory
This function can be called from Init_VM().
No assumption can be made about object internals.
(lldb) run
Process 15734 launched: './miniruby' (x86_64)
Process 15734 stopped
* thread #1: tid = 0x1441d4, 0x00000001000bdfcb miniruby`rb_raw_iseq_info(buff="0x0000000100f61f48 [0 ] T_IMEMO iseq", buff_size=256, iseq=0x0000000100f61f48) + 27 at gc.c:9273, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x50)
frame #0: 0x00000001000bdfcb miniruby`rb_raw_iseq_info(buff="0x0000000100f61f48 [0 ] T_IMEMO iseq", buff_size=256, iseq=0x0000000100f61f48) + 27 at gc.c:9273
9270 static void
9271 rb_raw_iseq_info(char *buff, const int buff_size, const rb_iseq_t *iseq)
9272 {
-> 9273 if (iseq->body->location.label) {
9274 VALUE path = rb_iseq_path(iseq);
9275 snprintf(buff, buff_size, "%s %s@%s:%d", buff,
9276 RSTRING_PTR(iseq->body->location.label),
(lldb) p *iseq
(rb_iseq_t) $0 = {
flags = 28698
reserved1 = 0
body = 0x0000000000000000
aux = {
compile_data = 0x0000000000000000
loader = (obj = 0, index = 0)
trace_events = 0
}
}
(lldb) bt
* thread #1: tid = 0x1441d4, 0x00000001000bdfcb miniruby`rb_raw_iseq_info(buff="0x0000000100f61f48 [0 ] T_IMEMO iseq", buff_size=256, iseq=0x0000000100f61f48) + 27 at gc.c:9273, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x50)
* frame #0: 0x00000001000bdfcb miniruby`rb_raw_iseq_info(buff="0x0000000100f61f48 [0 ] T_IMEMO iseq", buff_size=256, iseq=0x0000000100f61f48) + 27 at gc.c:9273
frame #1: 0x00000001000bde72 miniruby`rb_raw_obj_info(buff="0x0000000100f61f48 [0 ] T_IMEMO iseq", buff_size=256, obj=4311097160) + 2786 at gc.c:9396
frame #2: 0x00000001000b7c5f miniruby`obj_info(obj=4311097160) + 95 at gc.c:9428
frame #3: 0x00000001000c16a8 miniruby`newobj_init(klass=0, flags=28698, v1=0, v2=0, v3=0, wb_protected=1, objspace=0x00000001007ee280, obj=4311097160) + 424 at gc.c:1887
frame #4: 0x00000001000b44c9 miniruby`newobj_of(klass=0, flags=28698, v1=0, v2=0, v3=0, wb_protected=1) + 217 at gc.c:1970
frame #5: 0x00000001000b464b miniruby`rb_imemo_new(type=imemo_iseq, v1=0, v2=0, v3=0, v0=0) + 75 at gc.c:2017
frame #6: 0x00000001000fd914 miniruby`iseq_imemo_alloc + 36 at iseq.h:156
frame #7: 0x00000001000f6e1d miniruby`iseq_alloc + 13 at iseq.c:211
frame #8: 0x00000001000f6bf8 miniruby`rb_iseq_new_with_opt(node=0x0000000000000000, name=4311097200, path=4311097200, realpath=8, first_lineno=1, parent=0x0000000000000000, type=ISEQ_TYPE_TOP, option=0x0000000100335c30) + 56 at iseq.c:519
frame #9: 0x00000001000f6bb6 miniruby`rb_iseq_new(node=0x0000000000000000, name=4311097200, path=4311097200, realpath=8, parent=0x0000000000000000, type=ISEQ_TYPE_TOP) + 86 at iseq.c:480
frame #10: 0x0000000100284bb0 miniruby`Init_VM + 1040 at vm.c:3022
frame #11: 0x00000001000d4f7d miniruby`rb_call_inits + 189 at inits.c:55
frame #12: 0x000000010009fe06 miniruby`ruby_setup + 198 at eval.c:61
frame #13: 0x000000010009fe5d miniruby`ruby_init + 13 at eval.c:78
frame #14: 0x00000001000009ed miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 93 at main.c:41
frame #15: 0x00007fff88eda5ad libdyld.dylib`start + 1
(lldb)
fix SEGV touching uninitialized memory
This function can be called from rb_data_typed_object_zalloc().
No assumption can be made about object internals.
(lldb) run
Process 22135 launched: './miniruby' (x86_64)
Process 22135 stopped
* thread #1: tid = 0x14a3af, 0x000000010008ac8a miniruby`vm_block_type(block=0x0000000000000000) + 12 at vm_core.h:1364, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
frame #0: 0x000000010008ac8a miniruby`vm_block_type(block=0x0000000000000000) + 12 at vm_core.h:1364
1361 break;
1362 }
1363 #endif
-> 1364 return block->type;
1365 }
1366
1367 static inline void
(lldb) bt
* thread #1: tid = 0x14a3af, 0x000000010008ac8a miniruby`vm_block_type(block=0x0000000000000000) + 12 at vm_core.h:1364, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
* frame #0: 0x000000010008ac8a miniruby`vm_block_type(block=0x0000000000000000) + 12 at vm_core.h:1364
frame #1: 0x000000010008acdb miniruby`vm_block_iseq(block=0x0000000000000000) + 24 at vm_core.h:1399
frame #2: 0x000000010008acc1 miniruby`vm_proc_iseq(procval=4310866360) + 32 at vm_core.h:1387
frame #3: 0x000000010009cbed miniruby`rb_raw_obj_info(buff="0x0000000100f299b8 [0 ] proc (Proc)", buff_size=256, obj=4310866360) + 1513 at gc.c:9349
frame #4: 0x000000010009cf01 miniruby`obj_info(obj=4310866360) + 98 at gc.c:9428
frame #5: 0x000000010008ca1b miniruby`newobj_init(klass=4311027960, flags=12, v1=4298186080, v2=1, v3=0, wb_protected=32, objspace=0x00000001007cf280, obj=4310866360) + 338 at gc.c:1887
frame #6: 0x000000010008cce5 miniruby`newobj_of(klass=4311027960, flags=12, v1=4298186080, v2=1, v3=0, wb_protected=32) + 171 at gc.c:1970
frame #7: 0x000000010008d01d miniruby`rb_data_typed_object_wrap(klass=4311027960, datap=0x0000000000000000, type=0x0000000100311d60) + 133 at gc.c:2062
frame #8: 0x000000010008d04e miniruby`rb_data_typed_object_zalloc(klass=4311027960, size=40, type=0x0000000100311d60) + 42 at gc.c:2073
frame #9: 0x000000010011b459 miniruby`rb_proc_alloc(klass=4311027960) + 36 at proc.c:113
frame #10: 0x0000000100204d8e miniruby`vm_proc_create_from_captured(klass=4311027960, captured=0x00000001025003f8, block_type=block_type_iseq, is_from_method='\0', is_lambda='\x01') + 44 at vm.c:814
frame #11: 0x00000001002050d8 miniruby`rb_vm_make_proc_lambda(ec=0x00000001007cf548, captured=0x00000001025003f8, klass=4311027960, is_lambda='\x01') + 134 at vm.c:892
frame #12: 0x000000010011c0d2 miniruby`proc_new(klass=4311027960, is_lambda='\x01') + 445 at proc.c:752
frame #13: 0x000000010011c154 miniruby`rb_block_lambda + 27 at proc.c:808
frame #14: 0x00000001001ee7e3 miniruby`call_cfunc_0(func=(miniruby`rb_block_lambda at proc.c:807), recv=4310991600, argc=0, argv=0x0000000102400480) + 41 at vm_insnhelper.c:1729
frame #15: 0x00000001001ef2c3 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007cf548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 386 at vm_insnhelper.c:1918
frame #16: 0x00000001001ef412 miniruby`vm_call_cfunc(ec=0x00000001007cf548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 149 at vm_insnhelper.c:1934
frame #17: 0x00000001001f0655 miniruby`vm_call_method_each_type(ec=0x00000001007cf548, cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 239 at vm_insnhelper.c:2232
frame #18: 0x00000001001f0ce0 miniruby`vm_call_method(ec=0x00000001007cf548, cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 117 at vm_insnhelper.c:2355
frame #19: 0x00000001001f0eb6 miniruby`vm_call_general(ec=0x00000001007cf548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd4d0, ci=0x0000000102537be0, cc=0x000000010253e0f0) + 59 at vm_insnhelper.c:2398
frame #20: 0x00000001001f6e61 miniruby`vm_exec_core(ec=0x00000001007cf548, initial=0) + 7480 at insns.def:850
frame #21: 0x0000000100207995 miniruby`vm_exec(ec=0x00000001007cf548) + 230 at vm.c:1771
frame #22: 0x0000000100208647 miniruby`rb_iseq_eval_main(iseq=0x0000000100f29fd0) + 52 at vm.c:2019
frame #23: 0x000000010007b750 miniruby`ruby_exec_internal(n=0x0000000100f29fd0) + 297 at eval.c:246
frame #24: 0x000000010007b876 miniruby`ruby_exec_node(n=0x0000000100f29fd0) + 36 at eval.c:310
frame #25: 0x000000010007b849 miniruby`ruby_run_node(n=0x0000000100f29fd0) + 62 at eval.c:302
frame #26: 0x0000000100000c05 miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 113 at main.c:42
frame #27: 0x00007fff88eda5ad libdyld.dylib`start + 1
(lldb)
check an existence of block.
* gc.c (rb_raw_obj_info): check block before using it.
* vm_core.h (vm_block_iseq): r61565 introduced NULL check but this
check is only needed by `rb_raw_obj_info()` and it is called at GC
debug mode. Above fix for `rb_raw_obj_info()` solves this problem and
NULL check should not be needed any more.
------------------------------------------------------------------------
r62023 | naruse | 2018-01-24 17:11:16 +0900 (Wed, 24 Jan 2018) | 292 lines
merge revision(s) 61562,61563,61566,61568,61569: [Backport #14269]
fix SEGV touching uninitialized memory
This function can be called from boot_defclass().
No assumption can be made about object internals.
(lldb) run
Process 2386 launched: './miniruby' (x86_64)
Process 2386 stopped
* thread #1: tid = 0x13f3b6, 0x00000001001e0b26 miniruby`rb_class_path_cached(klass=4311373720) + 20 at variable.c:321, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
frame #0: 0x00000001001e0b26 miniruby`rb_class_path_cached(klass=4311373720) + 20 at variable.c:321
318 VALUE
319 rb_class_path_cached(VALUE klass)
320 {
-> 321 st_table *ivtbl = RCLASS_IV_TBL(klass);
322 st_data_t n;
323
324 if (!ivtbl) return Qnil;
(lldb) bt
* thread #1: tid = 0x13f3b6, 0x00000001001e0b26 miniruby`rb_class_path_cached(klass=4311373720) + 20 at variable.c:321, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
* frame #0: 0x00000001001e0b26 miniruby`rb_class_path_cached(klass=4311373720) + 20 at variable.c:321
frame #1: 0x000000010009cbd0 miniruby`rb_raw_obj_info(buff="0x0000000100fa5798 [2 ] T_CLASS", buff_size=256, obj=4311373720) + 1393 at gc.c:9341
frame #2: 0x000000010009cf16 miniruby`obj_info(obj=4311373720) + 98 at gc.c:9423
frame #3: 0x000000010008ca87 miniruby`newobj_init(klass=0, flags=66, v1=0, v2=0, v3=0, wb_protected=1, objspace=0x00000001007cf280, obj=4311373720) + 338 at gc.c:1887
frame #4: 0x000000010008cd51 miniruby`newobj_of(klass=0, flags=66, v1=0, v2=0, v3=0, wb_protected=1) + 171 at gc.c:1970
frame #5: 0x000000010008ce1b miniruby`rb_wb_protected_newobj_of(klass=0, flags=66) + 54 at gc.c:1990
frame #6: 0x0000000100027563 miniruby`class_alloc(flags=2, klass=0) + 46 at class.c:165
frame #7: 0x000000010002761a miniruby`rb_class_boot(super=0) + 35 at class.c:203
frame #8: 0x0000000100028612 miniruby`boot_defclass(name="BasicObject", super=0) + 28 at class.c:537
frame #9: 0x000000010002868b miniruby`Init_class_hierarchy + 26 at class.c:548
frame #10: 0x00000001000efe69 miniruby`InitVM_Object + 9 at object.c:3892
frame #11: 0x00000001000f138e miniruby`Init_Object + 57 at object.c:4122
frame #12: 0x00000001000a59bd miniruby`rb_call_inits + 29 at inits.c:23
frame #13: 0x000000010007af30 miniruby`ruby_setup + 229 at eval.c:61
frame #14: 0x000000010007af7e miniruby`ruby_init + 13 at eval.c:78
frame #15: 0x0000000100000c58 miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 88 at main.c:41
frame #16: 0x00007fff88eda5ad libdyld.dylib`start + 1
(lldb)
fix SEGV touching uninitialized memory
This function can be called from InitVM_Object().
No assumption can be made about object internals.
(lldb) run
Process 10675 launched: './miniruby' (x86_64)
Process 10675 stopped
* thread #1: tid = 0x14252c, 0x00000001000bdda9 miniruby`rb_raw_obj_info(buff="0x0000000100fc1588 [0 ] T_IMEMO ment", buff_size=256, obj=4311487880) + 2489 at gc.c:9383, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00000001000bdda9 miniruby`rb_raw_obj_info(buff="0x0000000100fc1588 [0 ] T_IMEMO ment", buff_size=256, obj=4311487880) + 2489 at gc.c:9383
9380 const rb_method_entry_t *me = &RANY(obj)->as.imemo.ment;
9381 snprintf(buff, buff_size, "%s (called_id: %s, type: %s, alias: %d, owner: %s, defined_class: %s)", buff,
9382 rb_id2name(me->called_id),
-> 9383 method_type_name(me->def->type),
9384 me->def->alias_count,
9385 obj_info(me->owner),
9386 obj_info(me->defined_class));
(lldb) p *me
(rb_method_entry_t) $0 = {
flags = 24602
defined_class = 4311488400
def = 0x0000000000000000
called_id = 3057
owner = 4311488400
}
(lldb) bt
* thread #1: tid = 0x14252c, 0x00000001000bdda9 miniruby`rb_raw_obj_info(buff="0x0000000100fc1588 [0 ] T_IMEMO ment", buff_size=256, obj=4311487880) + 2489 at gc.c:9383, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
* frame #0: 0x00000001000bdda9 miniruby`rb_raw_obj_info(buff="0x0000000100fc1588 [0 ] T_IMEMO ment", buff_size=256, obj=4311487880) + 2489 at gc.c:9383
frame #1: 0x00000001000b7cbf miniruby`obj_info(obj=4311487880) + 95 at gc.c:9423
frame #2: 0x00000001000c16a8 miniruby`newobj_init(klass=4311488400, flags=24602, v1=0, v2=3057, v3=4311488400, wb_protected=1, objspace=0x00000001007ee280, obj=4311487880) + 424 at gc.c:1887
frame #3: 0x00000001000b4529 miniruby`newobj_of(klass=4311488400, flags=24602, v1=0, v2=3057, v3=4311488400, wb_protected=1) + 217 at gc.c:1970
frame #4: 0x00000001000b46ab miniruby`rb_imemo_new(type=imemo_ment, v1=0, v2=3057, v3=4311488400, v0=4311488400) + 75 at gc.c:2017
frame #5: 0x00000001002773b4 miniruby`rb_method_entry_alloc(called_id=3057, owner=4311488400, defined_class=4311488400, def=0x0000000000000000) + 52 at vm_method.c:368
frame #6: 0x0000000100277307 miniruby`rb_method_entry_create(called_id=3057, klass=4311488400, visi=METHOD_VISI_PRIVATE, def=0x0000000000000000) + 71 at vm_method.c:389
frame #7: 0x00000001002784c7 miniruby`rb_method_entry_make(klass=4311488400, mid=3057, defined_class=4311488400, visi=METHOD_VISI_PRIVATE, type=VM_METHOD_TYPE_CFUNC, def=0x0000000000000000, original_id=3057, opts=0x00007fff5fbfd9e8) + 1207 at vm_method.c:594
frame #8: 0x00000001002770f9 miniruby`rb_add_method(klass=4311488400, mid=3057, type=VM_METHOD_TYPE_CFUNC, opts=0x00007fff5fbfd9e8, visi=METHOD_VISI_PRIVATE) + 73 at vm_method.c:650
frame #9: 0x000000010027708a miniruby`rb_add_method_cfunc(klass=4311488400, mid=3057, func=(miniruby`rb_obj_dummy at object.c:1125), argc=0, visi=METHOD_VISI_PRIVATE) + 138 at vm_method.c:137
frame #10: 0x00000001000391e4 miniruby`rb_define_private_method(klass=4311488400, name="initialize", func=(miniruby`rb_obj_dummy at object.c:1125), argc=0) + 68 at class.c:1529
frame #11: 0x000000010013f5bf miniruby`InitVM_Object + 47 at object.c:3905
frame #12: 0x0000000100142ffd miniruby`Init_Object + 61 at object.c:4122
frame #13: 0x00000001000d4edd miniruby`rb_call_inits + 29 at inits.c:23
frame #14: 0x000000010009fe66 miniruby`ruby_setup + 198 at eval.c:61
frame #15: 0x000000010009febd miniruby`ruby_init + 13 at eval.c:78
frame #16: 0x0000000100000a4d miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 93 at main.c:41
frame #17: 0x00007fff88eda5ad libdyld.dylib`start + 1
(lldb)
fix SEGV touching uninitialized local variable
This imemo_name is used uninitialized because the switch
above does not cover all possible imemo types.
(lldb) run
Process 26068 launched: './miniruby' (x86_64)
Process 26068 stopped
* thread #1: tid = 0x14ba96, 0x00007fff8a402132 libsystem_c.dylib`strlen + 18, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff0)
frame #0: 0x00007fff8a402132 libsystem_c.dylib`strlen + 18
libsystem_c.dylib`strlen:
-> 0x7fff8a402132 <+18>: pcmpeqb (%rdi), %xmm0
0x7fff8a402136 <+22>: pmovmskb %xmm0, %esi
0x7fff8a40213a <+26>: andq $0xf, %rcx
0x7fff8a40213e <+30>: orq $-0x1, %rax
(lldb) bt
* thread #1: tid = 0x14ba96, 0x00007fff8a402132 libsystem_c.dylib`strlen + 18, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff0)
* frame #0: 0x00007fff8a402132 libsystem_c.dylib`strlen + 18
frame #1: 0x00000001001f1531 miniruby`BSD_vfprintf(fp=0x00007fff5fbfc9e0, fmt0="%s %s", ap=0x00007fff5fbfcbf0) + 5873 at vsnprintf.c:1026
frame #2: 0x00000001001ef213 miniruby`ruby_do_vsnprintf(str="0x0000000100f46450 [0 ] T_IMEMO", n=256, fmt="%s %s", ap=0x00007fff5fbfcbf0) + 131 at sprintf.c:1285
frame #3: 0x00000001001ef3ea miniruby`ruby_snprintf(str="0x0000000100f46450 [0 ] T_IMEMO", n=256, fmt="%s %s") + 426 at sprintf.c:1300
frame #4: 0x00000001000bdc61 miniruby`rb_raw_obj_info(buff="0x0000000100f46450 [0 ] T_IMEMO", buff_size=256, obj=4310983760) + 2353 at gc.c:9376
frame #5: 0x00000001000b7bff miniruby`obj_info(obj=4310983760) + 95 at gc.c:9428
frame #6: 0x00000001000c1658 miniruby`newobj_init(klass=0, flags=36890, v1=0, v2=4303040512, v3=4310983800, wb_protected=1, objspace=0x00000001007ee280, obj=4310983760) + 424 at gc.c:1887
frame #7: 0x00000001000b4469 miniruby`newobj_of(klass=0, flags=36890, v1=0, v2=4303040512, v3=4310983800, wb_protected=1) + 217 at gc.c:1970
frame #8: 0x00000001000b45eb miniruby`rb_imemo_new(type=imemo_ast, v1=0, v2=4303040512, v3=4310983800, v0=0) + 75 at gc.c:2017
frame #9: 0x000000010011daed miniruby`rb_ast_new + 61 at node.c:1146
frame #10: 0x0000000100160e15 miniruby`rb_parser_compile_file_path(vparser=4310984400, fname=4310984960, file=4310984080, start=1) + 53 at parse.y:5776
frame #11: 0x00000001001e18ea miniruby`load_file_internal(argp_v=140734799795024) + 1834 at ruby.c:1907
frame #12: 0x00000001000a1bb5 miniruby`rb_ensure(b_proc=(miniruby`load_file_internal at ruby.c:1795), data1=140734799795024, e_proc=(miniruby`restore_load_file at ruby.c:2007), data2=140734799795024) + 245 at eval.c:1037
frame #13: 0x00000001001df4a4 miniruby`load_file(parser=4310984400, fname=4310984960, f=4310984080, script=1, opt=0x00007fff5fbfda28) + 100 at ruby.c:2026
frame #14: 0x00000001001e084e miniruby`process_options(argc=0, argv=0x00007fff5fbfdc00, opt=0x00007fff5fbfda28) + 3454 at ruby.c:1682
frame #15: 0x00000001001dfaae miniruby`ruby_process_options(argc=2, argv=0x00007fff5fbfdbf0) + 238 at ruby.c:2257
frame #16: 0x000000010009ff43 miniruby`ruby_options(argc=2, argv=0x00007fff5fbfdbf0) + 211 at eval.c:105
frame #17: 0x0000000100000989 miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 105 at main.c:42
frame #18: 0x00007fff88eda5ad libdyld.dylib`start + 1
(lldb) up 4
frame #4: 0x00000001000bdc61 miniruby`rb_raw_obj_info(buff="0x0000000100f46450 [0 ] T_IMEMO", buff_size=256, obj=4310983760) + 2353 at gc.c:9376
9373 #undef IMEMO_NAME
9374 default: UNREACHABLE;
9375 }
-> 9376 snprintf(buff, buff_size, "%s %s", buff, imemo_name);
9377
9378 switch (imemo_type(obj)) {
9379 case imemo_ment: {
(lldb) p imemo_name
(const char *) $0 = 0xffffffffffffffff
(lldb) p imemo_type(obj)
(imemo_type) $1 = imemo_ast
(lldb)
fix SEGV inspecting already freed objects
obj_info() assumes the given object is alive. Passing freed
objects to it results in SEGV.
(lldb) run
Process 29718 launched: './miniruby' (x86_64)
Process 29718 stopped
* thread #1: tid = 0x3082c5, 0x00000001000bfaab miniruby`pathobj_path(pathobj=4478683640) + 70 at vm_core.h:269, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00000001000bfaab miniruby`pathobj_path(pathobj=4478683640) + 70 at vm_core.h:269
266 }
267 else {
268 VM_ASSERT(RB_TYPE_P(pathobj, T_ARRAY));
-> 269 return RARRAY_AREF(pathobj, PATHOBJ_PATH);
270 }
271 }
272
(lldb) bt
* thread #1: tid = 0x3082c5, 0x00000001000bfaab miniruby`pathobj_path(pathobj=4478683640) + 70 at vm_core.h:269, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
* frame #0: 0x00000001000bfaab miniruby`pathobj_path(pathobj=4478683640) + 70 at vm_core.h:269
frame #1: 0x00000001000c25ff miniruby`rb_iseq_path(iseq=0x000000010af34a20) + 32 at iseq.c:723
frame #2: 0x000000010009db09 miniruby`rb_raw_iseq_info(buff="0x000000010af34a20 [1 ] T_IMEMO iseq", buff_size=256, iseq=0x000000010af34a20) + 69 at gc.c:9274
frame #3: 0x000000010009e45a miniruby`rb_raw_obj_info(buff="0x000000010af34a20 [1 ] T_IMEMO iseq", buff_size=256, obj=4478683680) + 2191 at gc.c:9397
frame #4: 0x000000010009e4d5 miniruby`obj_info(obj=4478683680) + 98 at gc.c:9429
frame #5: 0x0000000100091ae3 miniruby`gc_page_sweep(objspace=0x00000001007d3280, heap=0x00000001007d32a0, sweep_page=0x000000010ae07bc0) + 622 at gc.c:3529
frame #6: 0x000000010009206a miniruby`gc_sweep_step(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 188 at gc.c:3705
frame #7: 0x0000000100092254 miniruby`gc_sweep_continue(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 133 at gc.c:3772
frame #8: 0x000000010008d7f9 miniruby`heap_prepare(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 48 at gc.c:1746
frame #9: 0x000000010008d8a1 miniruby`heap_get_freeobj_from_next_freepage(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 37 at gc.c:1769
frame #10: 0x000000010008d98d miniruby`heap_get_freeobj(objspace=0x00000001007d3280, heap=0x00000001007d32a0) + 83 at gc.c:1803
frame #11: 0x000000010008dcb0 miniruby`newobj_slowpath(klass=4334386280, flags=5, v1=0, v2=0, v3=0, objspace=0x00000001007d3280, wb_protected=1) + 220 at gc.c:1930
frame #12: 0x000000010008dd6c miniruby`newobj_slowpath_wb_protected(klass=4334386280, flags=5, v1=0, v2=0, v3=0, objspace=0x00000001007d3280) + 76 at gc.c:1942
frame #13: 0x000000010008dea1 miniruby`newobj_of(klass=4334386280, flags=5, v1=0, v2=0, v3=0, wb_protected=1) + 221 at gc.c:1974
frame #14: 0x000000010008df39 miniruby`rb_wb_protected_newobj_of(klass=4334386280, flags=5) + 54 at gc.c:1990
frame #15: 0x0000000100195f7c miniruby`str_alloc(klass=4334386280) + 29 at string.c:692
frame #16: 0x0000000100195fe9 miniruby`str_new0(klass=4334386280, ptr="gitm", len=4, termlen=1) + 73 at string.c:714
frame #17: 0x000000010019633e miniruby`rb_enc_str_new(ptr="gitm", len=4, enc=0x00000001025d50a0) + 81 at string.c:766
frame #18: 0x000000010010a80a miniruby`parser_str_new(p="gitm", n=4, enc=0x00000001025d50a0, func=66, enc0=0x00000001025d50a0) + 50 at parse.y:5817
frame #19: 0x000000010010ce1a miniruby`parser_parse_string(parser=0x00000001042ac5c0, quote=0x000000010460c028) + 795 at parse.y:6675
frame #20: 0x00000001001120bd miniruby`parser_yylex(parser=0x00000001042ac5c0) + 159 at parse.y:8281
frame #21: 0x0000000100115068 miniruby`yylex(lval=0x00007fff5fbf9948, yylloc=0x00007fff5fbf9ab0, parser=0x00000001042ac5c0) + 55 at parse.y:8931
frame #22: 0x00000001000fc79f miniruby`ruby_yyparse(parser=0x00000001042ac5c0) + 1198 at parse.c:5798
frame #23: 0x0000000100109f5a miniruby`yycompile0(arg=4364879296) + 317 at parse.y:5595
frame #24: 0x0000000100214ef0 miniruby`rb_suppress_tracing(func=(miniruby`yycompile0 at parse.y:5565), arg=4364879296) + 349 at vm_trace.c:397
frame #25: 0x000000010010a1df miniruby`yycompile(parser=0x00000001042ac5c0, fname=4443743440, line=1) + 126 at parse.y:5637
frame #26: 0x000000010010a4c1 miniruby`parser_compile_string(vparser=4443743480, fname=4443743440, s=4443743520, line=1) + 191 at parse.y:5706
frame #27: 0x000000010010a5b7 miniruby`rb_parser_compile_string_path(vparser=4443743480, f=4443743440, s=4443743520, line=1) + 58 at parse.y:5730
frame #28: 0x0000000100206025 miniruby`eval_make_iseq(src=4443743520, fname=4443743440, line=1, bind=0x0000000000000000, base_block=0x00007fff5fbfb370) + 266 at vm_eval.c:1274
frame #29: 0x0000000100206153 miniruby`eval_string_with_cref(self=4334412520, src=4443743520, cref=0x0000000000000000, file=52, line=1) + 197 at vm_eval.c:1307
frame #30: 0x0000000100206389 miniruby`rb_f_eval(argc=1, argv=0x0000000102400eb8, self=4334412520) + 219 at vm_eval.c:1382
frame #31: 0x00000001001f247c miniruby`call_cfunc_m1(func=(miniruby`rb_f_eval at vm_eval.c:1364), recv=4334412520, argc=1, argv=0x0000000102400eb8) + 47 at vm_insnhelper.c:1723
frame #32: 0x00000001001f2f87 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007d3548, reg_cfp=0x0000000102500d80, calling=0x00007fff5fbfbf50, ci=0x000000010263f240, cc=0x0000000100749b50) + 386 at vm_insnhelper.c:1918
frame #33: 0x00000001001f30d6 miniruby`vm_call_cfunc(ec=0x00000001007d3548, reg_cfp=0x0000000102500d80, calling=0x00007fff5fbfbf50, ci=0x000000010263f240, cc=0x0000000100749b50) + 149 at vm_insnhelper.c:1934
frame #34: 0x00000001001faf0e miniruby`vm_exec_core(ec=0x00000001007d3548, initial=0) + 8471 at insns.def:915
frame #35: 0x000000010020b75d miniruby`vm_exec(ec=0x00000001007d3548) + 230 at vm.c:1771
frame #36: 0x00000001002093f8 miniruby`invoke_block(ec=0x00000001007d3548, iseq=0x000000010252d7f0, self=4334412520, captured=0x0000000102500df8, cref=0x0000000000000000, type=572653569, opt_pc=0) + 224 at vm.c:988
frame #37: 0x0000000100209766 miniruby`invoke_iseq_block_from_c(ec=0x00000001007d3548, captured=0x0000000102500df8, self=4334412520, argc=0, argv=0x0000000000000000, passed_block_handler=0, cref=0x0000000000000000, is_lambda=0) + 389 at vm.c:1040
frame #38: 0x0000000100209824 miniruby`invoke_block_from_c_bh(ec=0x00000001007d3548, block_handler=4333768185, argc=0, argv=0x0000000000000000, passed_block_handler=0, cref=0x0000000000000000, is_lambda=0, force_blockarg=0) + 138 at vm.c:1058
frame #39: 0x00000001002099d0 miniruby`vm_yield(ec=0x00000001007d3548, argc=0, argv=0x0000000000000000) + 69 at vm.c:1103
frame #40: 0x0000000100205623 miniruby`rb_yield_0(argc=0, argv=0x0000000000000000) + 40 at vm_eval.c:970
frame #41: 0x0000000100205964 miniruby`loop_i + 19 at vm_eval.c:1049
frame #42: 0x000000010007db07 miniruby`rb_rescue2(b_proc=(miniruby`loop_i at vm_eval.c:1047), data1=0, r_proc=(miniruby`loop_stop at vm_eval.c:1056), data2=0) + 369 at eval.c:896
frame #43: 0x0000000100205a2e miniruby`rb_f_loop(self=4334412520) + 121 at vm_eval.c:1100
frame #44: 0x00000001001f24a7 miniruby`call_cfunc_0(func=(miniruby`rb_f_loop at vm_eval.c:1098), recv=4334412520, argc=0, argv=0x0000000102400e80) + 41 at vm_insnhelper.c:1729
frame #45: 0x00000001001f2f87 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007d3548, reg_cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 386 at vm_insnhelper.c:1918
frame #46: 0x00000001001f30d6 miniruby`vm_call_cfunc(ec=0x00000001007d3548, reg_cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 149 at vm_insnhelper.c:1934
frame #47: 0x00000001001f4319 miniruby`vm_call_method_each_type(ec=0x00000001007d3548, cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 239 at vm_insnhelper.c:2232
frame #48: 0x00000001001f4a2c miniruby`vm_call_method(ec=0x00000001007d3548, cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 253 at vm_insnhelper.c:2366
frame #49: 0x00000001001f4b7a miniruby`vm_call_general(ec=0x00000001007d3548, reg_cfp=0x0000000102500de0, calling=0x00007fff5fbfd4d0, ci=0x000000010263bbf0, cc=0x0000000102642118) + 59 at vm_insnhelper.c:2398
frame #50: 0x00000001001fab2f miniruby`vm_exec_core(ec=0x00000001007d3548, initial=0) + 7480 at insns.def:850
frame #51: 0x000000010020b75d miniruby`vm_exec(ec=0x00000001007d3548) + 230 at vm.c:1771
frame #52: 0x000000010020c40f miniruby`rb_iseq_eval_main(iseq=0x000000010252dd90) + 52 at vm.c:2019
frame #53: 0x000000010007c768 miniruby`ruby_exec_internal(n=0x000000010252dd90) + 297 at eval.c:246
frame #54: 0x000000010007c88e miniruby`ruby_exec_node(n=0x000000010252dd90) + 36 at eval.c:310
frame #55: 0x000000010007c861 miniruby`ruby_run_node(n=0x000000010252dd90) + 62 at eval.c:302
frame #56: 0x000000010000138d miniruby`main(argc=2, argv=0x00007fff5fbfdbf0) + 113 at main.c:42
frame #57: 0x00007fff88eda5ad libdyld.dylib`start + 1
(lldb) p ((struct RVALUE*)pathobj)->as.basic
(RBasic) $0 = (flags = 0, klass = 4478683600)
(lldb)
fix SEGV inspecting uninitialized objects
obj_info() assumes the given object is alive. OTOH
gc_writebarrier_incremental is called before or in middle of
object initialization. Can casue SEGV.
(lldb) run
Process 48188 launched: './miniruby' (x86_64)
Process 48188 stopped
* thread #1: tid = 0x30fd53, 0x00000001000bf7a9 miniruby`rb_array_const_ptr(a=5251291222225483145) + 12 at ruby.h:2072, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
frame #0: 0x00000001000bf7a9 miniruby`rb_array_const_ptr(a=5251291222225483145) + 12 at ruby.h:2072
2069 static inline const VALUE *
2070 rb_array_const_ptr(VALUE a)
2071 {
-> 2072 return FIX_CONST_VALUE_PTR((RBASIC(a)->flags & RARRAY_EMBED_FLAG) ?
2073 RARRAY(a)->as.ary : RARRAY(a)->as.heap.ptr);
2074 }
2075
(lldb) bt
* thread #1: tid = 0x30fd53, 0x00000001000bf7a9 miniruby`rb_array_const_ptr(a=5251291222225483145) + 12 at ruby.h:2072, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
* frame #0: 0x00000001000bf7a9 miniruby`rb_array_const_ptr(a=5251291222225483145) + 12 at ruby.h:2072
frame #1: 0x00000001000bfaab miniruby`pathobj_path(pathobj=5251291222225483145) + 70 at vm_core.h:269
frame #2: 0x00000001000c25ff miniruby`rb_iseq_path(iseq=0x00000001025b71a8) + 32 at iseq.c:723
frame #3: 0x000000010009db09 miniruby`rb_raw_iseq_info(buff="0x00000001025b7158 [0 ] proc (Proc)", buff_size=256, iseq=0x00000001025b71a8) + 69 at gc.c:9274
frame #4: 0x000000010009e1d5 miniruby`rb_raw_obj_info(buff="0x00000001025b7158 [0 ] proc (Proc)", buff_size=256, obj=4334514520) + 1546 at gc.c:9351
frame #5: 0x000000010009e4d5 miniruby`obj_info(obj=4334514520) + 98 at gc.c:9429
frame #6: 0x0000000100096658 miniruby`gc_writebarrier_incremental(a=4334514520, b=4334514600, objspace=0x00000001007d3280) + 61 at gc.c:5963
frame #7: 0x00000001000968ca miniruby`rb_gc_writebarrier(a=4334514520, b=4334514600) + 127 at gc.c:6009
frame #8: 0x00000001001eabe0 miniruby`rb_obj_written(a=4334514520, oldv=52, b=4334514600, filename="/Users/urabe.shyouhei/data/src/pedantic/vm.c", line=821) + 72 at ruby.h:1472
frame #9: 0x00000001001eac2c miniruby`rb_obj_write(a=4334514520, slot=0x000000010259ff10, b=4334514600, filename="/Users/urabe.shyouhei/data/src/pedantic/vm.c", line=821) + 70 at ruby.h:1489
frame #10: 0x0000000100208b6f miniruby`vm_proc_create_from_captured(klass=4311027960, captured=0x0000000102500338, block_type=block_type_ifunc, is_from_method='\0', is_lambda='\x01') + 137 at vm.c:821
frame #11: 0x0000000100208e5c miniruby`rb_vm_make_proc_lambda(ec=0x00000001007d3548, captured=0x0000000102500338, klass=4311027960, is_lambda='\x01') + 134 at vm.c:892
frame #12: 0x000000010011f08e miniruby`proc_new(klass=4311027960, is_lambda='\x01') + 445 at proc.c:752
frame #13: 0x000000010011f110 miniruby`rb_block_lambda + 27 at proc.c:808
frame #14: 0x00000001001f24a7 miniruby`call_cfunc_0(func=(miniruby`rb_block_lambda at proc.c:807), recv=4310991600, argc=0, argv=0x0000000000000000) + 41 at vm_insnhelper.c:1729
frame #15: 0x00000001002033de miniruby`vm_call0_cfunc_with_frame(ec=0x00000001007d3548, calling=0x00007fff5fbfb080, ci=0x00007fff5fbfb070, cc=0x00007fff5fbfb0a0, argv=0x0000000000000000) + 370 at vm_eval.c:85
frame #16: 0x00000001002034d9 miniruby`vm_call0_cfunc(ec=0x00000001007d3548, calling=0x00007fff5fbfb080, ci=0x00007fff5fbfb070, cc=0x00007fff5fbfb0a0, argv=0x0000000000000000) + 59 at vm_eval.c:100
frame #17: 0x000000010020368f miniruby`vm_call0_body(ec=0x00000001007d3548, calling=0x00007fff5fbfb080, ci=0x00007fff5fbfb070, cc=0x00007fff5fbfb0a0, argv=0x0000000000000000) + 436 at vm_eval.c:131
frame #18: 0x000000010020326a miniruby`vm_call0(ec=0x00000001007d3548, recv=4310991600, id=2993, argc=0, argv=0x0000000000000000, me=0x0000000100f48110) + 142 at vm_eval.c:58
frame #19: 0x0000000100203c60 miniruby`rb_call0(ec=0x00000001007d3548, recv=4310991600, mid=2993, argc=0, argv=0x0000000000000000, scope=CALL_FCALL, self=4334514640) + 166 at vm_eval.c:296
frame #20: 0x0000000100204827 miniruby`rb_call(recv=4310991600, mid=2993, argc=0, argv=0x0000000000000000, scope=CALL_FCALL) + 84 at vm_eval.c:589
frame #21: 0x000000010020518b miniruby`rb_funcallv(recv=4310991600, mid=2993, argc=0, argv=0x0000000000000000) + 52 at vm_eval.c:815
frame #22: 0x000000010012242e miniruby`mlambda(method=0) + 45 at proc.c:2661
frame #23: 0x0000000100205bac miniruby`rb_iterate0(it_proc=(miniruby`mlambda at proc.c:2660), data1=0, ifunc=0x00000001025b71a8, ec=0x00000001007d3548) + 380 at vm_eval.c:1134
frame #24: 0x0000000100205d16 miniruby`rb_iterate(it_proc=(miniruby`mlambda at proc.c:2660), data1=0, bl_proc=(miniruby`bmcall at proc.c:2666), data2=4334514640) + 88 at vm_eval.c:1166
frame #25: 0x00000001001224c7 miniruby`method_to_proc(method=4334514640) + 43 at proc.c:2701
frame #26: 0x00000001001f24a7 miniruby`call_cfunc_0(func=(miniruby`method_to_proc at proc.c:2688), recv=4334514640, argc=0, argv=0x0000000102400568) + 41 at vm_insnhelper.c:1729
frame #27: 0x00000001001f2f87 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007d3548, reg_cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 386 at vm_insnhelper.c:1918
frame #28: 0x00000001001f30d6 miniruby`vm_call_cfunc(ec=0x00000001007d3548, reg_cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 149 at vm_insnhelper.c:1934
frame #29: 0x00000001001f4319 miniruby`vm_call_method_each_type(ec=0x00000001007d3548, cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 239 at vm_insnhelper.c:2232
frame #30: 0x00000001001f49a4 miniruby`vm_call_method(ec=0x00000001007d3548, cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 117 at vm_insnhelper.c:2355
frame #31: 0x00000001001f4b7a miniruby`vm_call_general(ec=0x00000001007d3548, reg_cfp=0x0000000102500350, calling=0x00007fff5fbfc030, ci=0x0000000100f2ec70, cc=0x0000000102735718) + 59 at vm_insnhelper.c:2398
frame #32: 0x00000001001faf0e miniruby`vm_exec_core(ec=0x00000001007d3548, initial=0) + 8471 at insns.def:915
frame #33: 0x000000010020b75d miniruby`vm_exec(ec=0x00000001007d3548) + 230 at vm.c:1771
frame #34: 0x000000010020c3d1 miniruby`rb_iseq_eval(iseq=0x00000001007f8270) + 52 at vm.c:2008
frame #35: 0x00000001000caa4a miniruby`rb_load_internal0(ec=0x00000001007d3548, fname=4310799960, wrap=0) + 631 at load.c:611
frame #36: 0x00000001000cab36 miniruby`rb_load_internal(fname=4310799960, wrap=0) + 46 at load.c:642
frame #37: 0x00000001000cae1d miniruby`rb_f_load(argc=1, argv=0x00000001024004b8) + 217 at load.c:710
frame #38: 0x00000001001f247c miniruby`call_cfunc_m1(func=(miniruby`rb_f_load at load.c:695), recv=4311327440, argc=1, argv=0x00000001024004b8) + 47 at vm_insnhelper.c:1723
frame #39: 0x00000001001f2f87 miniruby`vm_call_cfunc_with_frame(ec=0x00000001007d3548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 386 at vm_insnhelper.c:1918
frame #40: 0x00000001001f30d6 miniruby`vm_call_cfunc(ec=0x00000001007d3548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 149 at vm_insnhelper.c:1934
frame #41: 0x00000001001f4319 miniruby`vm_call_method_each_type(ec=0x00000001007d3548, cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 239 at vm_insnhelper.c:2232
frame #42: 0x00000001001f4a2c miniruby`vm_call_method(ec=0x00000001007d3548, cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 253 at vm_insnhelper.c:2366
frame #43: 0x00000001001f4b7a miniruby`vm_call_general(ec=0x00000001007d3548, reg_cfp=0x00000001025003e0, calling=0x00007fff5fbfd3e0, ci=0x0000000102541070, cc=0x0000000100f9e918) + 59 at vm_insnhelper.c:2398
frame #44: 0x00000001001faf0e miniruby`vm_exec_core(ec=0x00000001007d3548, initial=0) + 8471 at insns.def:915
frame #45: 0x000000010020b75d miniruby`vm_exec(ec=0x00000001007d3548) + 230 at vm.c:1771
frame #46: 0x000000010020c40f miniruby`rb_iseq_eval_main(iseq=0x0000000100f21240) + 52 at vm.c:2019
frame #47: 0x000000010007c774 miniruby`ruby_exec_internal(n=0x0000000100f21240) + 297 at eval.c:246
frame #48: 0x000000010007c89a miniruby`ruby_exec_node(n=0x0000000100f21240) + 36 at eval.c:310
frame #49: 0x000000010007c86d miniruby`ruby_run_node(n=0x0000000100f21240) + 62 at eval.c:302
frame #50: 0x0000000100001399 miniruby`main(argc=9, argv=0x00007fff5fbfdae0) + 113 at main.c:42
frame #51: 0x00007fff88eda5ad libdyld.dylib`start + 1
(lldb)
------------------------------------------------------------------------
r61661 | naruse | 2018-01-08 07:26:45 +0900 (Mon, 08 Jan 2018) | 7 lines
merge revision(s) 61561: [Backport #14272]
fix memory leak (FOUND BY A COMPILER WARNING)
Confusion of argument order ignores this st_free_table.
Results in garbaged table not GCed.
Easily noticable when you read the compiper warnings.
------------------------------------------------------------------------
r61660 | naruse | 2018-01-08 07:25:29 +0900 (Mon, 08 Jan 2018) | 10 lines
merge revision(s) 61518: [Backport #14260]
bit fields treating negative values should be declared as signed int
* internal.h (struct vm_ifunc_argc): Bit fields are unsigned by default.
For storing nagative values to bit fields, they must be declated as
signed int. Fix multiple test failure observed by 32-bit binaries
compiled with Oracle Developer Studio (Solaris Studio) 12.x on
Solaris 10 on sparc architecture. [Bug #14260]
------------------------------------------------------------------------
r61630 | naruse | 2018-01-06 05:40:54 +0900 (Sat, 06 Jan 2018) | 9 lines
merge revision(s) 61625,61626,61627:
extend timeout to 15 seconds for ARMv8 environment
Show how many seconds it timeouts
By this we can easily extend timeout.
Extend timeout of test_clear_unreachable_keyword_args
------------------------------------------------------------------------
r61629 | naruse | 2018-01-06 05:40:12 +0900 (Sat, 06 Jan 2018) | 8 lines
merge revision(s) 61517: [Backport #14259]
numeric.c: Fix Integer#pow with a large Fixnum modulo
* numeric.c: Fix Integer#pow with a large Fixnum modulo
[Bug #14259] [ruby-core:84562]
* test/ruby/test_numeric.rb: add assertions for reproducing this bug.
------------------------------------------------------------------------
r61628 | naruse | 2018-01-06 05:39:03 +0900 (Sat, 06 Jan 2018) | 8 lines
merge revision(s) 61513: [Backport #14257]
string.c: chomp rs at the end
* string.c (rb_str_enumerate_lines): should chomp record separator
only, but not a newline, at the end of the receiver as well as
middle, if the separator is given.
[ruby-core:84552] [Bug #14257]
------------------------------------------------------------------------
r61583 | naruse | 2018-01-04 03:14:56 +0900 (Thu, 04 Jan 2018) | 5 lines
merge revision(s) 61507: [Backport #14247]
Fix KeyError#{key,receiver} of Thread#fetch
[ruby-core:84508] [Bug #14247]
------------------------------------------------------------------------
r61582 | naruse | 2018-01-04 03:12:16 +0900 (Thu, 04 Jan 2018) | 8 lines
merge revision(s) 61500: [Backport #14248]
fix fd mask detection on os x
This was broken in r59440 (3215b27a9abd8de793cf517f32d8901fd421eb1c)
[Bug #14248]
From: Stefan Kaes <skaes@railsexpress.de>
------------------------------------------------------------------------
r61581 | naruse | 2018-01-04 03:11:47 +0900 (Thu, 04 Jan 2018) | 14 lines
merge revision(s) 61497: [Backport #14243]
erb.rb: preserve the behavior for invalid syntax
comment. Fix regression at r58948.
I even don't want to deprecate it because deprecation needs to lex all
embedded Ruby script using Ripper and it would be slow. So Let me just
keep this behavior of Ruby 2.4. No change is the best compatibility.
This commit stopped using String#-@ because it's harmful for "ambiguous
first argument" warning if we really want to maintain this behavior.
[Bug #14243]
------------------------------------------------------------------------
r61580 | naruse | 2018-01-04 03:03:49 +0900 (Thu, 04 Jan 2018) | 6 lines
merge revision(s) 61479: [Backport #14236]
variable.c: public rb_autoload
* variable.c (rb_autoload): restore the visibility for backward
compatibility. [ruby-core:84454] [Bug #14236]
------------------------------------------------------------------------
r61579 | naruse | 2018-01-04 03:02:17 +0900 (Thu, 04 Jan 2018) | 23 lines
merge revision(s) 61471,61472: [Backport #14231]
Use UINT128_T support flag from configure
Current check for __uint128_t in hash.c is not valid, since it ignores
compilers other than gcc. We hit this on lcc on e2k platform.
Configure script properly checks from 128-bit data types support and
sets HAVE_UINT128_T accordingly. This approach is already used within
ruby at bignum.c, random.c, etc.
Probably hash.c is an overlooked remnant of old days. This patch fixes
this.
[ruby-core:84438] [Bug #14231] [Fix GH-1781]
From: Andrew Savchenko <bircoph@altlinux.org>
hash.c: use uint128_t
* hash.c (mult_and_mix): use uint128_t instead of __uint128_t.
[ruby-core:84438] [Bug #14231]
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61496 | naruse | 2017-12-27 19:25:32 +0900 (Wed, 27 Dec 2017) | 6 lines
merge revision(s) 61478: [Backport #14234]
prelude.c.tmpl: get rid of errors with old gcc
* template/prelude.c.tmpl: moved diagnostic pragmas outside
prelude_eval() for very old gcc. [ruby-core:84449] [Bug #14234]
------------------------------------------------------------------------
r61467 | naruse | 2017-12-25 15:56:44 +0900 (Mon, 25 Dec 2017) | 2 lines
v2.5.0p0
------------------------------------------------------------------------
r61466 | naruse | 2017-12-25 15:51:11 +0900 (Mon, 25 Dec 2017) | 1 line
Release branch of Ruby 2.5
------------------------------------------------------------------------
r61465 | nobu | 2017-12-25 14:54:27 +0900 (Mon, 25 Dec 2017) | 4 lines
fix leaked fds
* lib/rubygems/command.rb (Gem::Command#invoke_with_build_args):
restore UI and close the created SilentUI.
------------------------------------------------------------------------
r61464 | mame | 2017-12-25 14:16:05 +0900 (Mon, 25 Dec 2017) | 4 lines
doc/contributing.rdoc: Update platform maintainers
* mswin32 and Symbian OS are no longer supported
* Mac OS X was renamed
------------------------------------------------------------------------
r61463 | ko1 | 2017-12-25 13:40:42 +0900 (Mon, 25 Dec 2017) | 5 lines
Disasm output contains code range.
* iseq.c (iseq_inspect): show also code range information.
Note that `iseq_inspect` is used only for header of disasm.
------------------------------------------------------------------------
r61462 | nobu | 2017-12-25 12:25:45 +0900 (Mon, 25 Dec 2017) | 4 lines
prelude.rb: block passing
* prelude.rb (Thread.exclusive): pass the block as a block
argument.
------------------------------------------------------------------------
r61461 | kazu | 2017-12-25 12:01:07 +0900 (Mon, 25 Dec 2017) | 1 line
NEWS: Fix typos [ci skip]
------------------------------------------------------------------------
r61460 | nobu | 2017-12-25 11:42:13 +0900 (Mon, 25 Dec 2017) | 4 lines
prelude.c.tmpl: static literals
* template/prelude.c.tmpl (PRELUDE_STR): make string objects with
static literals not to copy them.
------------------------------------------------------------------------
r61459 | nobu | 2017-12-25 11:09:14 +0900 (Mon, 25 Dec 2017) | 5 lines
prelude.c.tmpl: fix optimization options
* template/prelude.c.tmpl (prelude_eval): fix optimization
options. trace_instruction member has been removed. filled
coverage_enabled and debug_level members instead.
------------------------------------------------------------------------
r61458 | hsbt | 2017-12-25 09:33:19 +0900 (Mon, 25 Dec 2017) | 1 line
Added gemification entry to NEWS file.
------------------------------------------------------------------------
r61457 | ko1 | 2017-12-25 09:27:17 +0900 (Mon, 25 Dec 2017) | 10 lines
Set first line numbers for empty iseqs.
* compile.c (iseq_compile_each): for empty method, block and so on,
`last_line` is not set so that line number of `putnil` instruction
will be zero. This patch set `first_lineno` for such `putnil`.
Problem is reported by deivid-rodriguez via Yuichiro Kaneko.
* test/ruby/test_iseq.rb: add a test for this spec.
------------------------------------------------------------------------
r61452 | sorah | 2017-12-25 02:55:01 +0900 (Mon, 25 Dec 2017) | 3 lines
NEWS: use of copy_file_range(2) isn't a new method
[ci skip]
------------------------------------------------------------------------
r61451 | k0kubun | 2017-12-25 02:20:04 +0900 (Mon, 25 Dec 2017) | 7 lines
NEWS: move the section to note ERB performance
I heard that notable performance improvements should be written to
"Implementation Improvements". So I put the sentence here.
Also, the sentence itself is fixed to be the same as Ruby 2.5 release
note draft's one.
------------------------------------------------------------------------
r61450 | ko1 | 2017-12-25 02:07:53 +0900 (Mon, 25 Dec 2017) | 6 lines
Remove "trace_instruction" compile option.
* iseq.h (rb_compile_option_struct): trace instruction is removed so that
remove the trace_instruction compile option.
Don't show warning (just ignore) for Ruby 2.5.
------------------------------------------------------------------------
r61449 | svn | 2017-12-25 01:43:17 +0900 (Mon, 25 Dec 2017) | 1 line
* 2017-12-25
------------------------------------------------------------------------
r61448 | k0kubun | 2017-12-25 01:43:17 +0900 (Mon, 25 Dec 2017) | 8 lines
NEWS: note about ERB's rendering performance
improvement.
There is no specific ticket for it, but improving the ERB's performance
was my largest passion that made me a Ruby committer.
See r58735, r58842, r58904, r58905, r58916.
------------------------------------------------------------------------
r61447 | mame | 2017-12-24 23:52:23 +0900 (Sun, 24 Dec 2017) | 1 line
NEWS: Add a brief explanation for branch and method coverage
------------------------------------------------------------------------
r61446 | nobu | 2017-12-24 19:12:21 +0900 (Sun, 24 Dec 2017) | 1 line
fix grammatical mistake [ci skip]
------------------------------------------------------------------------
r61445 | normal | 2017-12-24 17:45:21 +0900 (Sun, 24 Dec 2017) | 1 line
NEWS: updates for WEBrick [ci skip]
------------------------------------------------------------------------
r61444 | normal | 2017-12-24 17:40:11 +0900 (Sun, 24 Dec 2017) | 1 line
NEWS: fix typo [ci skip]
------------------------------------------------------------------------
r61443 | normal | 2017-12-24 17:38:43 +0900 (Sun, 24 Dec 2017) | 13 lines
webrick 1.4.2
This release removes uses of Kernel#open to avoid unintended
behaviors and make future auditing easier. [Misc #14216]
6 changes since 1.4.1:
webrick: httpauth requires regular files
webrick/httpservlet/cgi_runner.rb: remove unnecessary open
webrick: WEBrick::Log requires path arg when given string
webrick/httpservlet/*handler: use File.open
webrick/httputils: note Kernel#open behavior
webrick/httpservelet/cgi_runner: avoid IO#reopen on pathname
------------------------------------------------------------------------
r61442 | mrkn | 2017-12-24 15:24:57 +0900 (Sun, 24 Dec 2017) | 1 line
NEWS: update for bigdecimal 1.3.4
------------------------------------------------------------------------
r61441 | mrkn | 2017-12-24 15:22:41 +0900 (Sun, 24 Dec 2017) | 5 lines
bigdecimal: version 1.3.4
Import bigdecimal version 1.3.4. The full commit log is here:
https://github.com/ruby/bigdecimal/compare/v1.3.3...v1.3.4
------------------------------------------------------------------------
r61438 | kazu | 2017-12-24 11:41:00 +0900 (Sun, 24 Dec 2017) | 1 line
[DOC] Improve example of IO#pread [ci skip]
------------------------------------------------------------------------
r61437 | nobu | 2017-12-24 11:38:27 +0900 (Sun, 24 Dec 2017) | 4 lines
compile.c: toplevel return arguments
* compile.c (compile_return): evaluate arguments to top-level
return but ignore the results.
------------------------------------------------------------------------
r61435 | nobu | 2017-12-24 11:26:22 +0900 (Sun, 24 Dec 2017) | 1 line
lib/irb.rb: highlight exceptions
------------------------------------------------------------------------
r61434 | nobu | 2017-12-24 10:52:21 +0900 (Sun, 24 Dec 2017) | 1 line
lib/irb.rb: simplified backtrace filtering
------------------------------------------------------------------------
r61433 | kazu | 2017-12-24 10:26:46 +0900 (Sun, 24 Dec 2017) | 1 line
[DOC] Use File.open with block instead of File.new without close [ci skip]
------------------------------------------------------------------------
r61432 | hsbt | 2017-12-24 08:33:09 +0900 (Sun, 24 Dec 2017) | 5 lines
Merge rdoc-6.0.1.
It fixes an installation error of activerecord.
https://github.com/ruby/rdoc/issues/571
------------------------------------------------------------------------
r61431 | sorah | 2017-12-24 03:17:39 +0900 (Sun, 24 Dec 2017) | 3 lines
Print backtrace in reverse order on IRB too
[Feature #8861]
------------------------------------------------------------------------
r61430 | svn | 2017-12-24 01:17:57 +0900 (Sun, 24 Dec 2017) | 1 line
* 2017-12-24
------------------------------------------------------------------------
r61429 | naruse | 2017-12-24 01:17:57 +0900 (Sun, 24 Dec 2017) | 10 lines
undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P on GCC 4.8
GCC 4.8 with optimization causes error if it compiles following code.
[Bug #14221]
```c
__builtin_choose_expr(__builtin_constant_p(b),0,1)
```
https://github.com/ruby/ruby/pull/1778
------------------------------------------------------------------------
r61428 | ko1 | 2017-12-23 23:48:28 +0900 (Sat, 23 Dec 2017) | 1 line
fix last commit
------------------------------------------------------------------------
r61427 | ko1 | 2017-12-23 23:46:59 +0900 (Sat, 23 Dec 2017) | 7 lines
RubyVM::InstructionSequence#trace_points.
* iseq.c (iseqw_trace_points): add `RubyVM::InstructionSequence#trace_points`
method for tools which want to manipulate ISeq (and traces).
* test/ruby/test_iseq.rb: add a test for this method.
------------------------------------------------------------------------
r61426 | nobu | 2017-12-23 23:31:56 +0900 (Sat, 23 Dec 2017) | 6 lines
test_io_console.rb: get rid of sporadic failures
* test/io/console/test_io_console.rb (test_getpass): try to get
rid of timing issues.
* test/io/console/test_io_console.rb (test_ioflush2): ditto.
------------------------------------------------------------------------
r61425 | ko1 | 2017-12-23 21:48:24 +0900 (Sat, 23 Dec 2017) | 7 lines
RubyVM::InstructionSequence#each_child.
* iseq.c (iseqw_each_child): add RubyVM::InstructionSequence#each_child
method for tools which want to manipulate ISeq.
* test/ruby/test_iseq.rb: add a test for this method.
------------------------------------------------------------------------
r61424 | ko1 | 2017-12-23 20:00:48 +0900 (Sat, 23 Dec 2017) | 15 lines
revert line number spec of *return events.
* compile.c (rb_iseq_compile_node): line number spec of :return, :b_return
and :end events of 'TracePoint` is changed for [Feature #14104].
Quoted from [Feature #14104]:
> Line numbers on :return/:b_return events show the last executed lines,
> instead of end lines (without return statement).
Note that :end event also affected.
However, "buybug", a well-known ruby debugger depends on previous behavior
so that I reverted this specification.
* test/ruby/test_settracefunc.rb: catch up this fix.
------------------------------------------------------------------------
r61423 | k0kubun | 2017-12-23 18:10:34 +0900 (Sat, 23 Dec 2017) | 7 lines
iseq.c: show first_lineno on iseq inspect
My motivation was to improve the output of `ruby --dump=insns xxx.rb`.
When one file has many iseqs, it's hard to find the one I want to read.
So I wanted `iseq_disasm` to show first_lineno. I unified the behavior
of `iseqw_disasm` for consistency.
------------------------------------------------------------------------
r61422 | kazu | 2017-12-23 10:53:48 +0900 (Sat, 23 Dec 2017) | 1 line
iseq.c: Remove unused macro in r61395
------------------------------------------------------------------------
r61421 | nobu | 2017-12-23 09:55:29 +0900 (Sat, 23 Dec 2017) | 5 lines
iseq.c: local variable names
* iseq.c (rb_insn_operand_intern): simplified the condition for
local variable names, assume TS_LINDEX and TS_NUM combinations
are only for local variables.
------------------------------------------------------------------------
r61420 | nobu | 2017-12-23 09:51:36 +0900 (Sat, 23 Dec 2017) | 4 lines
insns.def: adjust type
* insns.def (checkkeyword): adjust argument type to
vm_check_keyword as lindex_t.
------------------------------------------------------------------------
r61419 | hsbt | 2017-12-23 09:38:52 +0900 (Sat, 23 Dec 2017) | 1 line
Avoid to warnings about gemspec loadings in rubygems tests.
------------------------------------------------------------------------
r61418 | svn | 2017-12-23 09:30:36 +0900 (Sat, 23 Dec 2017) | 1 line
* 2017-12-23
------------------------------------------------------------------------
r61417 | nobu | 2017-12-23 09:30:33 +0900 (Sat, 23 Dec 2017) | 4 lines
fix unicode data directory
* test/ruby/enc/test_regex_casefold.rb: fix searching unicode data
directory, like as test_case_comprehensive.rb.
------------------------------------------------------------------------
r61416 | hsbt | 2017-12-23 08:08:05 +0900 (Sat, 23 Dec 2017) | 4 lines
Postponing the Bundler merge.
I faced a big issue about Bundler with ruby core.
I have no time to resolve it issue before 2.5 final release.
------------------------------------------------------------------------
r61415 | nobu | 2017-12-22 21:39:32 +0900 (Fri, 22 Dec 2017) | 6 lines
update unicode data files directory
* test/ruby/enc/test_case_comprehensive.rb: search ucd directory
first if exists.
* test/ruby/enc/test_regex_casefold.rb: ditto.
------------------------------------------------------------------------
r61413 | usa | 2017-12-22 17:52:11 +0900 (Fri, 22 Dec 2017) | 7 lines
force hash values fixable
* include/ruby/ruby.h (RB_ST2FIX): force fixable on LLP64 environment.
* hash.c (any_hash): ditto.
[ruby-core:84395] [Bug #14218]
------------------------------------------------------------------------
r61412 | glass | 2017-12-22 17:47:39 +0900 (Fri, 22 Dec 2017) | 6 lines
io.c: ignore EPERM
* io.c (nogvl_copy_file_range): ignore EPERM and fallback to
sendfile(2) or read/write. copy_file_range(2) may not exist
even if __NR_copy_file_range is defined in the build environment.
[Bug #14207]
------------------------------------------------------------------------
r61411 | nobu | 2017-12-22 17:08:31 +0900 (Fri, 22 Dec 2017) | 5 lines
erb.rb: shadow by keys
* lib/erb.rb (ERB#new_toplevel): shadow already defined local
variables by block local variabes, not to overwrite them.
[ruby-core:84390] [Bug #14215]
------------------------------------------------------------------------
r61410 | hsbt | 2017-12-22 17:00:10 +0900 (Fri, 22 Dec 2017) | 3 lines
Bump up fileutils-1.0.2
Added `FileUtils::VERSION` const variable.
------------------------------------------------------------------------
r61409 | normal | 2017-12-22 14:59:11 +0900 (Fri, 22 Dec 2017) | 8 lines
webrick/httpservelet/cgi_runner: avoid IO#reopen on pathname
IO#reopen seems to behave strangely on Win32 based on the logs
posted by Greg for [Bug #14420]. Lets try to fix the issue by
using File.open explicitly (but not Kernel#open).
* lib/webrick/httpservelet/cgi_runner: use File.open explicitly
[Bug #14220]
------------------------------------------------------------------------
r61408 | ko1 | 2017-12-22 14:15:45 +0900 (Fri, 22 Dec 2017) | 6 lines
fix a test for debugging.
* test/rdoc/test_rdoc_markup_pre_process.rb: show
`RDoc::Markup::PreProcess.post_processors` as a failure message
for debugging.
------------------------------------------------------------------------
r61407 | kazu | 2017-12-22 12:35:54 +0900 (Fri, 22 Dec 2017) | 1 line
[DOC] StringIO#write accepts multiple arguments since r60377 [ci skip]
------------------------------------------------------------------------
r61406 | kazu | 2017-12-22 12:35:52 +0900 (Fri, 22 Dec 2017) | 1 line
[DOC] Fix indent [ci skip]
------------------------------------------------------------------------
r61405 | kazu | 2017-12-22 12:35:46 +0900 (Fri, 22 Dec 2017) | 1 line
[DOC] Remove unmatched parenthesis [ci skip]
------------------------------------------------------------------------
r61404 | nobu | 2017-12-22 10:49:00 +0900 (Fri, 22 Dec 2017) | 4 lines
ifaddr.c: get_ifaddrs
* ext/socket/ifaddr.c (get_ifaddrs): extract ifaddrs from
Socket::Ifaddr.
------------------------------------------------------------------------
r61403 | nobu | 2017-12-22 10:12:02 +0900 (Fri, 22 Dec 2017) | 1 line
iseq.c (rb_insn_operand_intern): needs parenthesies
------------------------------------------------------------------------
r61402 | normal | 2017-12-22 10:08:05 +0900 (Fri, 22 Dec 2017) | 11 lines
webrick/httputils: note Kernel#open behavior
I don't know who uses the load_mime_types method; but it is
conceivable that a user would want to read the results of a
command instead of reading a regular file to load MIME types.
None of the WEBrick-related code in Ruby or default/bundled gems
seems to rely on this method; but it is likely 3rd-party code does.
* lib/webrick/httputils.rb (load_mime_types): note Kernel#open behavior
[Misc #14216]
------------------------------------------------------------------------
r61401 | normal | 2017-12-22 10:08:00 +0900 (Fri, 22 Dec 2017) | 10 lines
webrick/httpservlet/*handler: use File.open
This makes future code audits easier. None of these changes
fix realistic remote code execution vulnerabilities because
we stat(2) before attempting Kernel#open.
* lib/webrick/httpservlet/erbhandler.rb (do_GET): use File.open
* lib/webrick/httpservlet/filehandler.rb (do_GET): use File.open
(make_partial_content): ditto
[Misc #14216]
------------------------------------------------------------------------
r61400 | normal | 2017-12-22 10:07:55 +0900 (Fri, 22 Dec 2017) | 7 lines
webrick: WEBrick::Log requires path arg when given string
Allowing a user to specify "| command" via Kernel#open is
nonsensical since we never read from the resultant IO.
* lib/webrick/log.rb (initialize): replace Kernel#open with File.open
[Misc #14216]
------------------------------------------------------------------------
r61399 | normal | 2017-12-22 10:07:50 +0900 (Fri, 22 Dec 2017) | 7 lines
webrick: add test for WEBrick::HTTPServlet::ERBHandler
This previously had no coverage.
* test/webrick/test_filehandler.rb (test_erbhandler): new test
* test/webrick/webrick.rhtml: new file for test
[Misc #14216]
------------------------------------------------------------------------
r61398 | normal | 2017-12-22 10:07:45 +0900 (Fri, 22 Dec 2017) | 11 lines
webrick/httpservlet/cgi_runner.rb: remove unnecessary open
IO#reopen already takes string path names as well as IO objects
(but not "| command" strings)
This makes further auditing for inadvertant code execution
easier. There's no actual bugfix or behavior change here,
as no external data is passed to cgi_runner.rb.
* lib/webrick/httpservlet/cgi_runner.rb: remove Kernel#open call
[Misc #14216]
------------------------------------------------------------------------
r61397 | normal | 2017-12-22 10:07:39 +0900 (Fri, 22 Dec 2017) | 9 lines
webrick: httpauth requires regular files
Be sure we do not try to open a pipe to read from, since we care
about mtime in all cases.
* lib/webrick/httpauth/htdigest.rb: use File.open
* lib/webrick/httpauth/htgroup.rb: ditto
* lib/webrick/httpauth/htpasswd.rb: ditto
[Misc #14216]
------------------------------------------------------------------------
r61396 | nobu | 2017-12-22 10:03:17 +0900 (Fri, 22 Dec 2017) | 4 lines
encoding.c: rb_enc_find_index2
* string.c (str_undump): use rb_enc_find_index2 to find encoding
by unterminated string. check the format before encoding name.
------------------------------------------------------------------------
r61395 | nobu | 2017-12-22 09:29:38 +0900 (Fri, 22 Dec 2017) | 4 lines
iseq.c: defined insn operand
* iseq.c (rb_insn_operand_intern): improve operands of defined
instruction.
------------------------------------------------------------------------
r61394 | svn | 2017-12-22 08:28:16 +0900 (Fri, 22 Dec 2017) | 1 line
* 2017-12-22
------------------------------------------------------------------------
r61393 | shugo | 2017-12-22 08:28:15 +0900 (Fri, 22 Dec 2017) | 3 lines
Extend timeout for CI.
http://ci.rvm.jp/results/trunk-asserts-nopara@ruby-sky1/266962
------------------------------------------------------------------------
r61392 | akr | 2017-12-21 23:15:04 +0900 (Thu, 21 Dec 2017) | 5 lines
open-uri defines URI.open defined as an alias.
open-uri's Kernel.open will be deprecated in future.
------------------------------------------------------------------------
r61391 | nobu | 2017-12-21 20:59:31 +0900 (Thu, 21 Dec 2017) | 1 line
test for [Bug #14214]
------------------------------------------------------------------------
r61390 | hsbt | 2017-12-21 18:29:47 +0900 (Thu, 21 Dec 2017) | 1 line
Added detailed version of Bundler on NEWS.
------------------------------------------------------------------------
r61389 | eregon | 2017-12-21 18:29:18 +0900 (Thu, 21 Dec 2017) | 1 line
Simplify Thread#[]= spec
------------------------------------------------------------------------
r61388 | hsbt | 2017-12-21 18:22:15 +0900 (Thu, 21 Dec 2017) | 1 line
Merge release version of bundler-1.16.1 from upstream.
------------------------------------------------------------------------
r61387 | ko1 | 2017-12-21 17:29:56 +0900 (Thu, 21 Dec 2017) | 4 lines
revert r61371 for [Bug #14214]
Reverted patch doesn't check overwritten value.
------------------------------------------------------------------------
r61386 | nobu | 2017-12-21 16:59:00 +0900 (Thu, 21 Dec 2017) | 1 line
string.c: fix memory leak
------------------------------------------------------------------------
r61385 | nobu | 2017-12-21 16:50:46 +0900 (Thu, 21 Dec 2017) | 1 line
common.mk: revert r58542 [Bug #14213]
------------------------------------------------------------------------
r61384 | yui-knk | 2017-12-21 16:09:03 +0900 (Thu, 21 Dec 2017) | 1 line
iseq.c (rb_iseq_code_range): Remove needless `;`
------------------------------------------------------------------------
r61383 | mame | 2017-12-21 15:52:15 +0900 (Thu, 21 Dec 2017) | 7 lines
parse.y: change NODE_SCOPE's nd_loc to one of the parent NODE
This change (ad-hocly) adjusts the code range of NODE_SCOPE in
class/module definition because the same adjust is already done in
method definition. I intend to just remove inconsistency between
class/module definition and method definition, but this kind of adjust
is dirty, so it should be fixed later (maybe in 2.6).
------------------------------------------------------------------------
r61382 | ko1 | 2017-12-21 15:40:28 +0900 (Thu, 21 Dec 2017) | 4 lines
add experimental API.
* iseq.c (rb_iseq_code_range): added to access iseq's code range.
------------------------------------------------------------------------
r61381 | naruse | 2017-12-21 14:09:17 +0900 (Thu, 21 Dec 2017) | 1 line
Don't allow mixed escape
------------------------------------------------------------------------
r61380 | naruse | 2017-12-21 14:09:16 +0900 (Thu, 21 Dec 2017) | 1 line
move dump format validation into parsing epilogue
------------------------------------------------------------------------
r61379 | naruse | 2017-12-21 14:08:57 +0900 (Thu, 21 Dec 2017) | 1 line
fix escapes in undump
------------------------------------------------------------------------
r61378 | sonots | 2017-12-21 14:07:43 +0900 (Thu, 21 Dec 2017) | 2 lines
* lib/logger.rb (Logger::LogDevice#open_logfile, #create_logfile):
Logger should be able to open only files [Bug #14212]
------------------------------------------------------------------------
r61377 | tenderlove | 2017-12-21 09:40:54 +0900 (Thu, 21 Dec 2017) | 4 lines
Fix `imemo_name` to dump new imemo types
New IMEMO types were introduced, this just fixes the function that
converts the type to support the new types.
------------------------------------------------------------------------
r61376 | normal | 2017-12-21 09:26:24 +0900 (Thu, 21 Dec 2017) | 8 lines
io.c: IO#pwrite uses tmp buffer to avoid parallel modification
Since we release GVL, we must freeze and duplicate the string buffer
to prevent other threads from modifying our buffer while we are
waiting on pwrite(2).
* io.c (rb_io_pwrite): use_rb_str_tmp_frozen_{acquire/release}
[Bug #14195]
------------------------------------------------------------------------
r61375 | ko1 | 2017-12-21 08:49:30 +0900 (Thu, 21 Dec 2017) | 5 lines
fix threading bug.
* spec/ruby/core/thread/element_set_spec.rb: `t` can be uninitialized.
Use `Thread.current` explicitly.
------------------------------------------------------------------------
r61374 | usa | 2017-12-21 01:04:41 +0900 (Thu, 21 Dec 2017) | 10 lines
fix test errors on Windows
* test/resolv/test_addr.rb (test_hosts_by_command): on Windows, `|` is
invalid charactor for path and raises `Errno::EINVAL` if trying to
open.
* test/resolv/test_dns.rb (test_resolv_conf_by_command): ditto.
cf. [Bug #14205]
------------------------------------------------------------------------
r61372 | svn | 2017-12-21 00:45:02 +0900 (Thu, 21 Dec 2017) | 1 line
* 2017-12-21
------------------------------------------------------------------------
r61371 | nobu | 2017-12-21 00:45:01 +0900 (Thu, 21 Dec 2017) | 5 lines
compile.c: branch on block param
* compile.c (compile_branch_condition): replace block param value
in branch conditions with `defined(yield)`, to get rid of
creating proc value.
------------------------------------------------------------------------
r61360 | nobu | 2017-12-20 23:10:06 +0900 (Wed, 20 Dec 2017) | 4 lines
iseq.c: block param name
* iseq.c (rb_insn_operand_intern): show local variable name at
getblockparam/setblockparam too.
------------------------------------------------------------------------
r61359 | naruse | 2017-12-20 21:06:59 +0900 (Wed, 20 Dec 2017) | 3 lines
raise error if value contains CR/LF in iniheader of initialize_http_header
like r59693, initialize_http_header also should raise error. [Bug #14208]
------------------------------------------------------------------------
r61357 | stomar | 2017-12-20 18:51:29 +0900 (Wed, 20 Dec 2017) | 1 line
NEWS: update news for Psych
------------------------------------------------------------------------
r61356 | stomar | 2017-12-20 18:31:58 +0900 (Wed, 20 Dec 2017) | 1 line
NEWS: "absent operator" is now called "absence operator"
------------------------------------------------------------------------
r61355 | stomar | 2017-12-20 18:31:22 +0900 (Wed, 20 Dec 2017) | 1 line
NEWS: grammar fixes
------------------------------------------------------------------------
r61354 | hsbt | 2017-12-20 17:50:26 +0900 (Wed, 20 Dec 2017) | 1 line
Update rdoc-6.0.0 entry on NEWS file
------------------------------------------------------------------------
r61353 | mame | 2017-12-20 16:38:24 +0900 (Wed, 20 Dec 2017) | 6 lines
iseq.c (get_insn_info): use binary search instead of linear search
This change introduces get_insn_info_binary_search, which is (should be)
equivalent to the old get_insn_info.
The old get_insn_info is renamed to get_insn_info_linear_search. When
VM_CHECK_MODE > 0, the equivalence is validated at finish_iseq_build.
------------------------------------------------------------------------
r61352 | mame | 2017-12-20 13:45:05 +0900 (Wed, 20 Dec 2017) | 3 lines
test/coverage/test_coverage.rb: make the expected value the same as 2.4
A follow up of r61350
------------------------------------------------------------------------
r61351 | nobu | 2017-12-20 13:25:01 +0900 (Wed, 20 Dec 2017) | 5 lines
Fixed command Injection
* lib/resolv.rb (Resolv::Config.parse_resolv_conf): fixed
potential command injection by use of Kernel#open.
[ruby-core:84347] [Bug #14205]
------------------------------------------------------------------------
r61350 | mame | 2017-12-20 13:24:14 +0900 (Wed, 20 Dec 2017) | 16 lines
compile.c: add a RUBY_EVENT_COVERAGE_LINE event for line coverage
2.5's line coverage measurement was about two times slower than 2.4
because of two reasons; (1) vm_trace uses rb_iseq_event_flags (which
takes O(n) currently where n is the length of iseq) to get an event
type, and (2) RUBY_EVENT_LINE uses setjmp to call an event hook.
This change adds a special event for line coverage,
RUBY_EVENT_COVERAGE_LINE, and adds `tracecoverage` instructions where
the event occurs in iseq.
`tracecoverage` instruction calls an event hook without vm_trace.
And, RUBY_EVENT_COVERAGE_LINE is an internal event which does not
use setjmp.
This change also cancells lineno change due to the deletion of trace
instructions [Feature #14104]. So fixes [Bug #14191].
------------------------------------------------------------------------
r61349 | nobu | 2017-12-20 13:18:31 +0900 (Wed, 20 Dec 2017) | 7 lines
Fixed command Injection
* resolv.rb (Resolv::Hosts#lazy_initialize): fixed potential
command Injection in Hosts::new() by use of Kernel#open.
[Fix GH-1777] [ruby-core:84347] [Bug #14205]
From: Drigg3r <drigg3r@yandex.com>
------------------------------------------------------------------------
r61348 | mame | 2017-12-20 10:51:50 +0900 (Wed, 20 Dec 2017) | 3 lines
vm_insnhelper.c (vm_trace): fix a typo
Typical code clone bug.
------------------------------------------------------------------------
r61347 | ko1 | 2017-12-20 09:24:19 +0900 (Wed, 20 Dec 2017) | 9 lines
extend timeout limit.
* test/ruby/test_process.rb (test_threading_works_after_exec_fail):
extend timeout limit from 30 to 90 because some test nodes fails
with timeout error.
Also use a Queue instead of a local variable to communicate with
threads.
------------------------------------------------------------------------
r61346 | nobu | 2017-12-20 09:09:51 +0900 (Wed, 20 Dec 2017) | 4 lines
parse.y: end of script at newline
* parse.y (parser_yylex): deal with end of script chars just after
ignored newline as other places. [ruby-core:84349] [Bug #14206]
------------------------------------------------------------------------
r61345 | ngoto | 2017-12-20 02:09:13 +0900 (Wed, 20 Dec 2017) | 7 lines
skip test_aspawn_too_long_path on Solaris 10 or earlier
* test/ruby/test_process.rb (TestProcess#test_aspawn_too_long_path):
skip test_aspawn_too_long_path on Solaris 10 or earlier versions
because they lack Process::RLIMIT_NPROC and the test creates
extraordinary number of processes that makes the system unstable.
------------------------------------------------------------------------
r61344 | ngoto | 2017-12-20 01:55:08 +0900 (Wed, 20 Dec 2017) | 7 lines
Workaround for optimization bug of Oracle Developer Studio 12.4-12.6
* pack.c (pack_unpack, AVOID_CC_BUG): Very ugly workaround for
optimization bug of Oracle Developer Studio (Oracle Solaris Studio)
12.4, 12.5, and 12.6 on Solaris 10 with -xO4 optimization option.
[Bug #11684] [ruby-core:84351]
------------------------------------------------------------------------
r61343 | svn | 2017-12-20 00:40:14 +0900 (Wed, 20 Dec 2017) | 1 line
* 2017-12-20
------------------------------------------------------------------------
r61342 | eregon | 2017-12-20 00:40:13 +0900 (Wed, 20 Dec 2017) | 4 lines
Break out of the loop after shutdown in DRbServer
* Patch by @seki:
https://gist.github.com/seki/ae8bef20238c37c94a91b5461c4bfbdd
------------------------------------------------------------------------
r61341 | watson1978 | 2017-12-19 23:26:30 +0900 (Tue, 19 Dec 2017) | 6 lines
Revert "Improve performance of creating Hash object"
This reverts commit r61309
Because it was unstable on mswin CI.
[ruby-dev:50370][Bug #14203]
------------------------------------------------------------------------
r61340 | hsbt | 2017-12-19 21:28:18 +0900 (Tue, 19 Dec 2017) | 3 lines
Update version number of Psych
From: SHIBATA Hiroshi <hsbt@ruby-lang.org>
------------------------------------------------------------------------
r61339 | hsbt | 2017-12-19 21:23:21 +0900 (Tue, 19 Dec 2017) | 3 lines
Update RubyGems entry on NEWS file.
From: SHIBATA Hiroshi <hsbt@ruby-lang.org>
------------------------------------------------------------------------
r61338 | nobu | 2017-12-19 21:20:21 +0900 (Tue, 19 Dec 2017) | 9 lines
st.c: fix up
* st.c (_st_table_list, _st_table_pool): symbols beginning with an
underscore and a lower letter are preserved by the standard.
* st.c (get_st_table): protoized.
* st.c (st_insert_generic): adjust local variable type to an
argument argc.
------------------------------------------------------------------------
r61337 | nobu | 2017-12-19 19:46:51 +0900 (Tue, 19 Dec 2017) | 6 lines
thread_sync.c: fix rdoc
* thread_sync.c (define_thread_class): hide rb_define_class_under
from rdoc, so that fake code to teach rdoc takes effect.
* thread_sync.c (Init_thread_sync): teach rdoc Mutex.
------------------------------------------------------------------------
r61336 | hsbt | 2017-12-19 18:44:33 +0900 (Tue, 19 Dec 2017) | 8 lines
Merge psych-3.0.2 from ruby/psych.
It version changed fallback option to keywoad argument
on `Yaml.load` method. It break backword compatiblity.
see detailed discuttion: https://github.com/ruby/psych/issues/340
From: SHIBATA Hiroshi <hsbt@ruby-lang.org>
------------------------------------------------------------------------
r61335 | nobu | 2017-12-19 13:57:20 +0900 (Tue, 19 Dec 2017) | 4 lines
error.c: KeyError docs [ci skip]
* error.c (key_err_receiver, key_err_key): [DOC] documents of
KeyError methods.
------------------------------------------------------------------------
r61334 | nobu | 2017-12-19 12:17:37 +0900 (Tue, 19 Dec 2017) | 4 lines
vcs: --add-author-from
* tool/vcs.rb (VCS::GIT#commit): no --add-author-from option if
author equals committer.
------------------------------------------------------------------------
r61333 | hsbt | 2017-12-19 12:12:22 +0900 (Tue, 19 Dec 2017) | 10 lines
Update version of strscan to 1.0.0.
But we couldn't ship strscan (and stringio) gem. Because rubygems.org
still masked them.
https://github.com/rubygems/rubygems.org/pull/1696
I'm going to ship them after it deployed.
From: SHIBATA Hiroshi <hsbt@ruby-lang.org>
------------------------------------------------------------------------
r61332 | hsbt | 2017-12-19 11:43:09 +0900 (Tue, 19 Dec 2017) | 6 lines
Remove digest.gemspec for default gems.
It needs to support header file installation and uninstallation.
But current RubyGems didn't support it feature yet.
From: SHIBATA Hiroshi <hsbt@ruby-lang.org>
------------------------------------------------------------------------
r61331 | nobu | 2017-12-19 11:41:37 +0900 (Tue, 19 Dec 2017) | 7 lines
compile.c: pop splat result
* compile.c (compile_array): pop splat result without creating a
new hash if the whole hash is popped.
[ruby-core:84340] [Bug #14201]
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61330 | nobu | 2017-12-19 10:08:52 +0900 (Tue, 19 Dec 2017) | 6 lines
Improve Array#- efficiency [Fixes GH-1756]
When doing the difference of a small array with a big one it is not
efficient in both time and memory to convert the second one to a hash.
From: Ana Maria Martinez Gomez <ammartinez@suse.de>
------------------------------------------------------------------------
r61329 | nobu | 2017-12-19 09:45:55 +0900 (Tue, 19 Dec 2017) | 7 lines
compile.c: side effect in splat
* compile.c (compile_array): splat which may have side effects
should be compiled even if the result will be popped.
[ruby-core:84340] [Bug #14201]
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61327 | eregon | 2017-12-19 01:41:48 +0900 (Tue, 19 Dec 2017) | 1 line
Use syswrite to avoid potential buffering in IO#select spec
------------------------------------------------------------------------
r61326 | ngoto | 2017-12-19 01:17:17 +0900 (Tue, 19 Dec 2017) | 10 lines
Support C89 if possible
* addr2line.c: Because stdbool.h is a C99 feature, compile error
occurs with some old compilers without specifying C99 options.
Fix compile error with Oracle Solaris Studio 12.4 on Solaris 10.
[Bug #14200] [ruby-dev:50366]
* missing/stdbool.h: Alternative of stdbool.h for C89 compilers.
------------------------------------------------------------------------
r61325 | svn | 2017-12-19 00:46:57 +0900 (Tue, 19 Dec 2017) | 1 line
* 2017-12-19
------------------------------------------------------------------------
r61324 | ngoto | 2017-12-19 00:46:56 +0900 (Tue, 19 Dec 2017) | 6 lines
eval_error.c: Fix compile error on Solaris 10
* eval_error.c (write_warn, write_warn2, write_warn_str): Fix compile
error "operands have incompatible types" with Oracle Solaris Studio
12.4 on Solaris 10.
------------------------------------------------------------------------
r61323 | naruse | 2017-12-18 18:03:59 +0900 (Mon, 18 Dec 2017) | 1 line
suppress warning: 'const' attribute on function returning 'void'
------------------------------------------------------------------------
r61322 | normal | 2017-12-18 17:54:30 +0900 (Mon, 18 Dec 2017) | 5 lines
webrick 1.4.1 release
* lib/webrick/version.rb: bump version
* lib/webrick/webrick.gemspec: support Ruby 2.3+
[Bug #14189]
------------------------------------------------------------------------
r61321 | nobu | 2017-12-18 16:39:05 +0900 (Mon, 18 Dec 2017) | 6 lines
test_io.rb: EINVAL on Windows
* test/ruby/test_io.rb (test_read_command): unusable character
causes Errno::EINVAL on Windows.
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61320 | nobu | 2017-12-18 16:15:07 +0900 (Mon, 18 Dec 2017) | 7 lines
io.c: opening external command
* io.c (rb_io_open_generic): try to open the named file as usual,
if klass is not IO nor File, so that Errno::ENOENT will be
raised probably. calling on File will be same in the future.
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61319 | nobu | 2017-12-18 16:10:15 +0900 (Mon, 18 Dec 2017) | 5 lines
io.c: open generic in binread
* io.c (rb_io_s_binread): fix r61317, unintentional change.
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61318 | ko1 | 2017-12-18 13:42:53 +0900 (Mon, 18 Dec 2017) | 5 lines
check EOPNOTSUPP.
* test/ruby/test_file.rb (test_open_tempfile_path): skip EOPNOTSUPP
(observed on Ubuntu 16 on Docker).
------------------------------------------------------------------------
r61317 | nobu | 2017-12-18 13:32:54 +0900 (Mon, 18 Dec 2017) | 7 lines
io.c: opening external command
* io.c (rb_io_open_generic): when external command will be invoked
as other than IO singleton method, probably unintentionally,
warn if it is File or raise ArgumentError.
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61316 | nobu | 2017-12-18 13:23:16 +0900 (Mon, 18 Dec 2017) | 6 lines
envutil.rb: define flush method
* test/lib/envutil.rb (verbose_warning): flush is called on STDOUT
and STDERR sometimes.
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61315 | nobu | 2017-12-18 13:12:06 +0900 (Mon, 18 Dec 2017) | 3 lines
test/ruby/test_io.rb: test for r61314
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61314 | nobu | 2017-12-18 12:38:20 +0900 (Mon, 18 Dec 2017) | 6 lines
io.c: open_key_args by rb_io_open
* io.c (open_key_args): open by rb_io_open always also when
open_args: option is given.
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61313 | mame | 2017-12-18 11:44:36 +0900 (Mon, 18 Dec 2017) | 7 lines
iseq.c (finish_iseq_build): fix coverage leakage [Bug #14191]
Before this change, coverage.so had failed to measure some multiple-line
code fragments. This is because removing trace instructions (#14104)
changed TracePoint's lineno (new lineno), and coverage counter array was
based on old lineno.
This change initializes coverage counter array based on new lineno.
------------------------------------------------------------------------
r61312 | nobu | 2017-12-18 10:55:55 +0900 (Mon, 18 Dec 2017) | 3 lines
vcs.rb: --add-author-from option
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
------------------------------------------------------------------------
r61311 | nobu | 2017-12-18 10:54:19 +0900 (Mon, 18 Dec 2017) | 1 line
st.c: no C99 comment
------------------------------------------------------------------------
r61310 | nobu | 2017-12-18 10:51:53 +0900 (Mon, 18 Dec 2017) | 5 lines
Requiring pp is not required now [ci skip]
- Followup of https://bugs.ruby-lang.org/issues/14123
From: Prathamesh Sonpatki <csonpatki@gmail.com>
------------------------------------------------------------------------
r61309 | watson1978 | 2017-12-18 10:49:33 +0900 (Mon, 18 Dec 2017) | 50 lines
Improve performance of creating Hash object
When generate Hash object, the heap area of st_table will be always allocated in internally
and seems it take a time.
To improve performance of creating Hash object,
this patch will reduce count of allocating heap areas for st_table by reuse them.
Performance of creating Hash literal -> 1.53 times faster.
[Fix GH-1766] [ruby-core:84008] [Feature #14146]
### Environment
* OS : macOS 10.13.1
* CPU : 1.4 GHz Intel Core i7
* Compiler : Apple LLVM version 9.0.0 (clang-900.0.39)
### Before
$ ./miniruby -v -I. -I../benchmark-ips/lib ~/tmp/bench/literal.rb
ruby 2.5.0dev (2017-11-28 hash 60926) [x86_64-darwin17]
Warming up --------------------------------------
Hash literal 51.544k i/100ms
Calculating -------------------------------------
Hash literal 869.132k ({U+00B1} 1.1%) i/s - 4.381M in 5.041574s
### After
$ ./miniruby -v -I. -I../benchmark-ips/lib ~/tmp/bench/literal.rb
ruby 2.5.0dev (2017-11-28 hash 60926) [x86_64-darwin17]
Warming up --------------------------------------
Hash literal 63.068k i/100ms
Calculating -------------------------------------
Hash literal 1.328M ({U+00B1} 2.3%) i/s - 6.685M in 5.037861s
### Test code
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "Hash literal" do |loop|
count = 0
while count < loop
hash = {foo: 12, bar: 34, baz: 56}
count += 1
end
end
end
------------------------------------------------------------------------
r61308 | usa | 2017-12-18 03:43:49 +0900 (Mon, 18 Dec 2017) | 5 lines
`BASERUBY` may be not available when building from tarball
* common.mk ($(REVISION_H)): revert a part of r61055 because this obstructs
building ruby from tarball in clean (no ruby) environment.
------------------------------------------------------------------------
r61307 | svn | 2017-12-18 03:19:42 +0900 (Mon, 18 Dec 2017) | 1 line
* properties.
------------------------------------------------------------------------
r61306 | svn | 2017-12-18 03:19:42 +0900 (Mon, 18 Dec 2017) | 1 line
* 2017-12-18
------------------------------------------------------------------------
r61305 | marcandre | 2017-12-18 03:19:41 +0900 (Mon, 18 Dec 2017) | 1 line
Integer#{any|all|no}_bits: Fix coercion. Add specs [#12753]
------------------------------------------------------------------------
r61304 | nobu | 2017-12-17 20:13:23 +0900 (Sun, 17 Dec 2017) | 4 lines
common.mk: exts-note [ci skip]
* common.mk (exts-note): show notes of non-configured extension
libraries.
------------------------------------------------------------------------
r61303 | nobu | 2017-12-17 18:40:19 +0900 (Sun, 17 Dec 2017) | 4 lines
thread.c: adjusted [ci skip]
* thread.c (timeval_add): adjusted indent and parenthesized in
braces.
------------------------------------------------------------------------
r61302 | normal | 2017-12-17 17:26:17 +0900 (Sun, 17 Dec 2017) | 7 lines
thread.c: fix overly long Thread#join w/ timeout
* test/ruby/test_thread.rb (test_signal_at_join): test with timeout
* thread.c (sleep_wait_for_interrupt): remove
(thread_join_sleep): use native_sleep directly to avoid extra
missing thread status change
[Bug #14181]
------------------------------------------------------------------------
r61301 | normal | 2017-12-17 17:26:12 +0900 (Sun, 17 Dec 2017) | 8 lines
thread.c: hoist out timeval arithmetic functions
timeval arithmetic may be reused in other places and this
makes sleep_timeval easier-to-read.
* thread.c (timeval_add): hoist out of sleep_timeval
(timeval_update_expire): ditto
(sleep_timeval): use new functions
------------------------------------------------------------------------
r61300 | svn | 2017-12-17 14:35:28 +0900 (Sun, 17 Dec 2017) | 1 line
* 2017-12-17
------------------------------------------------------------------------
r61299 | nobu | 2017-12-17 14:35:28 +0900 (Sun, 17 Dec 2017) | 4 lines
vm_method.c: empty table
* vm_method.c (prepare_callable_method_entry): empty method table
has no entries.
------------------------------------------------------------------------
r61298 | nobu | 2017-12-17 14:35:27 +0900 (Sun, 17 Dec 2017) | 4 lines
vm_method.c: debug message
* vm_method.c (method_definition_addref_complement): fix debug
message, show complemented_count instead of alias_count.
------------------------------------------------------------------------
r61297 | nobu | 2017-12-16 22:25:11 +0900 (Sat, 16 Dec 2017) | 9 lines
ruby.c: script __dir__ encoding
* ruby.c (process_options): fallback to the encoding of the script
name since rb_realpath_internal() cannot convert the encoding
when it is ASCII-8BIT.
* test/ruby/test_rubyoptions.rb (test___dir__encoding): explicitly
pass environment variables for locale as they are overriden by
invoke_ruby.
------------------------------------------------------------------------
r61296 | k0kubun | 2017-12-16 22:02:25 +0900 (Sat, 16 Dec 2017) | 10 lines
vm.c: always export rb_frame_method_id_and_class
Functions declared in include/ruby/backward.h is exported only when
the condition `!defined RUBY_EXPORT && !defined RUBY_NO_OLD_COMPATIBILITY`
is met (i.e. included by include/ruby/ruby.h).
So if it is not the case when ruby is built, this will not be exported.
This was not intentional at r60994.
[Bug #14192]
------------------------------------------------------------------------
r61295 | usa | 2017-12-16 15:05:16 +0900 (Sat, 16 Dec 2017) | 5 lines
should install after test
* common.mk (love): should install after test (but this change does not gurantee
the order).
------------------------------------------------------------------------
r61294 | usa | 2017-12-16 10:56:14 +0900 (Sat, 16 Dec 2017) | 4 lines
aliases
* tool/merger.rb: aliases for removetag command.
------------------------------------------------------------------------
r61292 | mame | 2017-12-16 09:39:34 +0900 (Sat, 16 Dec 2017) | 5 lines
random.c: make sure that Random.urandom returns required-length buffer
getrandom(2) and read(2) (from /dev/urandom) may return a random buffer
whose length is shorter than required. This change makes sure that they
get enough buffer by using a loop.
------------------------------------------------------------------------
r61291 | nobu | 2017-12-16 09:36:31 +0900 (Sat, 16 Dec 2017) | 4 lines
test_vm_dump.rb: skip if gcc
* test/ruby/test_vm_dump.rb (assert_darwin_vm_dump_works): gcc seems
not to chain some frames like Apple's clang.
------------------------------------------------------------------------
r61290 | nobu | 2017-12-16 09:30:52 +0900 (Sat, 16 Dec 2017) | 4 lines
string.c: multiple codepoints
* string.c (undump_after_backslash): fix multiple codepoints in
braces.
------------------------------------------------------------------------
r61289 | nobu | 2017-12-16 09:03:51 +0900 (Sat, 16 Dec 2017) | 4 lines
string.c: suppress warning
* string.c (str_undump): suppress maybe-uninitialized warning by
gcc 7 and later.
------------------------------------------------------------------------
r61288 | normal | 2017-12-16 06:55:50 +0900 (Sat, 16 Dec 2017) | 3 lines
NEWS: update for WEBrick Proc body responses
Better late than never :x [Feature #855]
------------------------------------------------------------------------
r61287 | normal | 2017-12-16 06:49:21 +0900 (Sat, 16 Dec 2017) | 4 lines
NEWS: updates about trivial GVL release changes
No tickets, but all pretty trivial changes which avoids
stalls on slow/non-responsive filesytems.
------------------------------------------------------------------------
r61286 | marcandre | 2017-12-16 05:15:54 +0900 (Sat, 16 Dec 2017) | 1 line
lib/erb: Update doc [ci-skip] [doc]
------------------------------------------------------------------------
r61285 | eregon | 2017-12-16 02:44:37 +0900 (Sat, 16 Dec 2017) | 1 line
Update to ruby/spec@595645f
------------------------------------------------------------------------
r61284 | svn | 2017-12-16 02:44:16 +0900 (Sat, 16 Dec 2017) | 1 line
* 2017-12-16
------------------------------------------------------------------------
r61283 | eregon | 2017-12-16 02:44:15 +0900 (Sat, 16 Dec 2017) | 1 line
Update to ruby/mspec@19d929e
------------------------------------------------------------------------
r61282 | nobu | 2017-12-15 23:42:43 +0900 (Fri, 15 Dec 2017) | 4 lines
gperf.sed: static declarations
* tool/gperf.sed: comment out arguments part only, to keep the
following declarations static. [Feature #13883]
------------------------------------------------------------------------
r61281 | kazu | 2017-12-15 20:52:41 +0900 (Fri, 15 Dec 2017) | 4 lines
[DOC] `IO.new` accepts `external_encoding`
Revert part of r61278 [Bug #13655]
[ci skip]
------------------------------------------------------------------------
r61280 | kazu | 2017-12-15 20:52:40 +0900 (Fri, 15 Dec 2017) | 1 line
Fix typo [ci skip]
------------------------------------------------------------------------
r61279 | naruse | 2017-12-15 18:43:40 +0900 (Fri, 15 Dec 2017) | 1 line
initialize should be outside
------------------------------------------------------------------------
r61278 | naruse | 2017-12-15 17:26:33 +0900 (Fri, 15 Dec 2017) | 1 line
IO.new doesn't recive "-" as external_encoding [Bug #13655]
------------------------------------------------------------------------
r61277 | rhe | 2017-12-15 17:19:32 +0900 (Fri, 15 Dec 2017) | 5 lines
openssl: suppress report_on_exception warning
Import a commit from upstream:
33a67ac96492 test/utils: disable Thread's report_on_exception in start_server
------------------------------------------------------------------------
r61276 | naruse | 2017-12-15 16:58:02 +0900 (Fri, 15 Dec 2017) | 1 line
check icc version inside condition
------------------------------------------------------------------------
r61275 | naruse | 2017-12-15 16:58:00 +0900 (Fri, 15 Dec 2017) | 4 lines
suppress icc warnings
* subscript out of range
* enumerated type mixed with another type
------------------------------------------------------------------------
r61274 | nobu | 2017-12-15 16:27:04 +0900 (Fri, 15 Dec 2017) | 6 lines
thread.c: fix deadlock
* thread.c (thread_join_sleep): the target thread may exit during
`RUBY_VM_CHECK_INTS_BLOCKING`, but `sleep_forever` does not
consider the condition change to wait.
[ruby-core:84248] [Bug #14181]
------------------------------------------------------------------------
r61273 | mame | 2017-12-15 14:55:11 +0900 (Fri, 15 Dec 2017) | 1 line
node.c: show variable type for NODE_*ASGN
------------------------------------------------------------------------
r61272 | mame | 2017-12-15 14:55:10 +0900 (Fri, 15 Dec 2017) | 1 line
node.c (NODE_HASH): remove wrong default case
------------------------------------------------------------------------
r61271 | mame | 2017-12-15 14:55:09 +0900 (Fri, 15 Dec 2017) | 1 line
node.c: add more comment to NODE_CASE2
------------------------------------------------------------------------
r61270 | mame | 2017-12-15 14:55:08 +0900 (Fri, 15 Dec 2017) | 1 line
node.c: fix typos
------------------------------------------------------------------------
r61269 | usa | 2017-12-15 12:22:51 +0900 (Fri, 15 Dec 2017) | 4 lines
add `removetag` command
* tool/merger.rb (remove_tag): add `removetag` command.
------------------------------------------------------------------------
r61268 | nobu | 2017-12-15 12:07:10 +0900 (Fri, 15 Dec 2017) | 6 lines
thread.c: debug messages
* thread.c (terminate_all): fix funtion name in debug messages.
* thread.c (terminate_all, thread_join_sleep, thread_join): show
the status of the target thread in debug messages.
------------------------------------------------------------------------
r61267 | usa | 2017-12-15 12:04:56 +0900 (Fri, 15 Dec 2017) | 5 lines
check the existence of specified tag
* tool/merger.rb (tag): check the existence of specified tag before tagging to
get rid of careless mistakes.
------------------------------------------------------------------------
r61266 | normal | 2017-12-15 05:02:15 +0900 (Fri, 15 Dec 2017) | 6 lines
webrick 1.4.0 release
* lib/webrick/version.rb: change VERSION to 1.4.0
* lib/webrick/webrick.gemspec: require_relative for version,
update date and contact info
[Feature #13173]
------------------------------------------------------------------------
r61265 | eregon | 2017-12-15 04:26:04 +0900 (Fri, 15 Dec 2017) | 1 line
Add [Feature #14143] to NEWS
------------------------------------------------------------------------
r61263 | naruse | 2017-12-15 03:33:33 +0900 (Fri, 15 Dec 2017) | 3 lines
particular_werror_flags=no on ICC
fix r61261
------------------------------------------------------------------------
r61262 | svn | 2017-12-15 01:47:29 +0900 (Fri, 15 Dec 2017) | 1 line
* 2017-12-15
------------------------------------------------------------------------
r61261 | naruse | 2017-12-15 01:47:28 +0900 (Fri, 15 Dec 2017) | 3 lines
ICC doesn't support -Werror= but ignore
It cause warnings when ruby remove error= on compiling ext/*.
------------------------------------------------------------------------
r61242 | nagachika | 2017-12-14 22:41:30 +0900 (Thu, 14 Dec 2017) | 1 line
Fix a command injection vulnerability in Net::FTP.
------------------------------------------------------------------------
r61237 | eregon | 2017-12-14 22:08:02 +0900 (Thu, 14 Dec 2017) | 4 lines
The main Thread should have report_on_exception=true for consistency
* Adapt test and add specs.
* See [Feature #14143] [ruby-core:84227]
------------------------------------------------------------------------
r61236 | rhe | 2017-12-14 20:19:17 +0900 (Thu, 14 Dec 2017) | 1 line
NEWS: add entry for openssl
------------------------------------------------------------------------
r61235 | rhe | 2017-12-14 20:19:16 +0900 (Thu, 14 Dec 2017) | 19 lines
openssl: import v2.1.0
Import Ruby/OpenSSL 2.1.0. Commits since v2.1.0.beta2 can be found at:
https://github.com/ruby/openssl/compare/v2.1.0.beta2...v2.1.0
----------------------------------------------------------------
Kazuki Yamaguchi (8):
test/test_ssl: prevent changing default internal encoding
ssl: remove a misleading comment
pkey/ec: rearrange PKey::EC::Point#initialize
ssl: remove unreachable code
asn1: fix docs
pkey/ec: add support for octet string encoding of EC point
Ruby/OpenSSL 2.0.7
Ruby/OpenSSL 2.1.0
eregon (1):
Fix test-all tests to avoid creating report_on_exception warnings
------------------------------------------------------------------------
r61234 | naruse | 2017-12-14 19:38:36 +0900 (Thu, 14 Dec 2017) | 1 line
NaCl support is dropped at r60374
------------------------------------------------------------------------
r61233 | stomar | 2017-12-14 19:25:57 +0900 (Thu, 14 Dec 2017) | 1 line
numeric.c: [DOC] grammar fixes
------------------------------------------------------------------------
r61232 | stomar | 2017-12-14 19:25:17 +0900 (Thu, 14 Dec 2017) | 1 line
struct.c: [DOC] improve docs for Struct.new
------------------------------------------------------------------------
r61231 | stomar | 2017-12-14 19:24:38 +0900 (Thu, 14 Dec 2017) | 1 line
process.c: [DOC] fix grammar and double negative
------------------------------------------------------------------------
r61230 | stomar | 2017-12-14 19:23:10 +0900 (Thu, 14 Dec 2017) | 1 line
NEWS: grammar fixes
------------------------------------------------------------------------
r61229 | stomar | 2017-12-14 19:21:56 +0900 (Thu, 14 Dec 2017) | 5 lines
enum.c: improve docs for Enumerable#{any?,all?,none?,one?}
* enum.c: [DOC] reword docs for Enumerable#{any?,all?,none?,one?}
to not mention the receiver (`enum') from call-seq, because it
does not appear in the call-seq of the rendered HTML docs.
------------------------------------------------------------------------
r61228 | tadd | 2017-12-14 17:47:13 +0900 (Thu, 14 Dec 2017) | 2 lines
Implement String#undump to unescape String#dump-ed string
[Feature #12275] [close GH-1765]
------------------------------------------------------------------------
r61227 | mame | 2017-12-14 17:22:22 +0900 (Thu, 14 Dec 2017) | 3 lines
node.h: add nd_last_loc and nd_set_last_loc
Just refactoring.
------------------------------------------------------------------------
r61226 | usa | 2017-12-14 15:38:47 +0900 (Thu, 14 Dec 2017) | 5 lines
Thread.current.report_on_exception = false
* test/win32ole/test_win32ole.rb: set report_on_exception = false in threads
which are expected to be throw some exceptions.
------------------------------------------------------------------------
r61225 | naruse | 2017-12-14 15:30:22 +0900 (Thu, 14 Dec 2017) | 1 line
Use string instead of regexp
------------------------------------------------------------------------
r61224 | mame | 2017-12-14 15:02:26 +0900 (Thu, 14 Dec 2017) | 5 lines
node.[ch], parse.y, compile.c: rename nd_column to nd_first_column
nd_set_column -> nd_first_set_column
nd_lineno -> nd_first_lineno
nd_set_lineno -> nd_first_set_lineno
------------------------------------------------------------------------
r61223 | mame | 2017-12-14 14:54:10 +0900 (Thu, 14 Dec 2017) | 1 line
parse.y: suppress "unused variable" warning of ripper.y
------------------------------------------------------------------------
r61222 | nobu | 2017-12-14 14:13:23 +0900 (Thu, 14 Dec 2017) | 1 line
prelude.rb: remove duplicate rdoc
------------------------------------------------------------------------
r61221 | nobu | 2017-12-14 13:40:15 +0900 (Thu, 14 Dec 2017) | 4 lines
bigdecimal: dependency
* ext/bigdecimal/extconf.rb: extconf.h depends on the gemspec
file. [ruby-core:84247] [Bug #14180]
------------------------------------------------------------------------
r61220 | yuki | 2017-12-14 11:29:01 +0900 (Thu, 14 Dec 2017) | 1 line
* gems/bundled_gems: Upgrade the did_you_mean gem to 1.2.0
------------------------------------------------------------------------
r61219 | hsbt | 2017-12-14 11:21:41 +0900 (Thu, 14 Dec 2017) | 1 line
Added `test-bundler` and `test-bundled-gems` to `make help` entries`.
------------------------------------------------------------------------
r61218 | knu | 2017-12-14 10:11:28 +0900 (Thu, 14 Dec 2017) | 8 lines
Allow empty path components in a URI [Bug #8352]
* generic.rb (URI::Generic#merge, URI::Generic#route_to): Fix a bug
where a sequence of slashes in the path part gets collapsed to a
single slash. According to the relevant RFCs and WHATWG URL
Standard, empty path components are simply valid and there is no
special treatment defined for them, so we just keep them as they
are.
------------------------------------------------------------------------
r61217 | k0kubun | 2017-12-14 01:07:52 +0900 (Thu, 14 Dec 2017) | 33 lines
iseq.c: dump type of branchiftype on disasm
This makes easier to debug scripts related to r59950.
* before
$ ./ruby --dump=insns -e '"#{a}"'
== disasm: #<ISeq:<main>@-e>============================================
0000 putobject "" ( 1)[Li]
0002 putself
0003 opt_send_without_block <callinfo!mid:a, argc:0, FCALL|VCALL|ARGS_SIMPLE>, <callcache>
0006 dup
0007 branchiftype 5, 15
0010 dup
0011 opt_send_without_block <callinfo!mid:to_s, argc:0, FCALL|ARGS_SIMPLE>, <callcache>
0014 tostring
0015 concatstrings 2
0017 leave
* after
$ ./ruby --dump=insns -e '"#{a}"'
== disasm: #<ISeq:<main>@-e>============================================
0000 putobject "" ( 1)[Li]
0002 putself
0003 opt_send_without_block <callinfo!mid:a, argc:0, FCALL|VCALL|ARGS_SIMPLE>, <callcache>
0006 dup
0007 branchiftype T_STRING, 15
0010 dup
0011 opt_send_without_block <callinfo!mid:to_s, argc:0, FCALL|ARGS_SIMPLE>, <callcache>
0014 tostring
0015 concatstrings 2
0017 leave
------------------------------------------------------------------------
r61216 | eregon | 2017-12-14 00:59:26 +0900 (Thu, 14 Dec 2017) | 4 lines
Document how to deal with output created by Thread.report_on_exception.
* Improve and clarify the documentation of Thread.report_on_exception
and related methods.
------------------------------------------------------------------------
r61215 | mrkn | 2017-12-14 00:36:25 +0900 (Thu, 14 Dec 2017) | 1 line
NEWS: bigdecimal 1.3.3
------------------------------------------------------------------------
r61214 | svn | 2017-12-14 00:28:31 +0900 (Thu, 14 Dec 2017) | 1 line
* 2017-12-14
------------------------------------------------------------------------
r61213 | mrkn | 2017-12-14 00:28:30 +0900 (Thu, 14 Dec 2017) | 5 lines
bigdecimal: version 1.3.3
Import bigdecimal version 1.3.3. The full commit log is here:
https://github.com/ruby/bigdecimal/compare/v1.3.2...v1.3.3
------------------------------------------------------------------------
r61212 | kazu | 2017-12-13 23:08:20 +0900 (Wed, 13 Dec 2017) | 3 lines
[DOC] Fix exception class [ci skip]
ref https://github.com/rurema/doctree/pull/816
------------------------------------------------------------------------
r61211 | nobu | 2017-12-13 21:06:11 +0900 (Wed, 13 Dec 2017) | 4 lines
vcs.rb: raise NotFoundError when command not found
* tool/vcs.rb (VCS#get_revisions): raise VCS::NotFoundError when
command not found.
------------------------------------------------------------------------
r61210 | eregon | 2017-12-13 20:22:55 +0900 (Wed, 13 Dec 2017) | 1 line
Travis: the workaround needs sudo: required to work
------------------------------------------------------------------------
r61209 | eregon | 2017-12-13 20:13:55 +0900 (Wed, 13 Dec 2017) | 5 lines
Use the older Travis CI image
* The new one produces many warnings like:
warning: Insecure world writable dir /usr/local/clang-5.0.0/bin in PATH, mode 040777
* Workaround from https://blog.travis-ci.com/2017-12-12-new-trusty-images-q4-launch
------------------------------------------------------------------------
r61208 | sorah | 2017-12-13 19:55:41 +0900 (Wed, 13 Dec 2017) | 1 line
NEWS: typo [DOC] [ci skip]
------------------------------------------------------------------------
r61207 | nobu | 2017-12-13 19:43:21 +0900 (Wed, 13 Dec 2017) | 1 line
test/ruby/test_env.rb: suppress a warning
------------------------------------------------------------------------
r61206 | nobu | 2017-12-13 19:40:54 +0900 (Wed, 13 Dec 2017) | 5 lines
test_process.rb: fix error when empty groups
* test/ruby/test_process.rb (test_maxgroups): set one element at
least get rid of ZeroDivisionError when no process groups.
[ruby-core:84224] [Bug #14174]
------------------------------------------------------------------------
r61205 | nobu | 2017-12-13 19:26:09 +0900 (Wed, 13 Dec 2017) | 5 lines
Ripper::Lexer bit predicates
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer): added allbits?,
anybits? and nobits? methods, as well as Integer. a patch by
aycabta. [Feature #14170]
------------------------------------------------------------------------
r61204 | nobu | 2017-12-13 19:16:05 +0900 (Wed, 13 Dec 2017) | 1 line
process.c: adjust indent
------------------------------------------------------------------------
r61203 | eregon | 2017-12-13 18:45:48 +0900 (Wed, 13 Dec 2017) | 1 line
Avoid extra output in test_thread_interrupt_for_killed_thread
------------------------------------------------------------------------
r61202 | naruse | 2017-12-13 17:38:43 +0900 (Wed, 13 Dec 2017) | 1 line
Revert r61054
------------------------------------------------------------------------
r61201 | hsbt | 2017-12-13 14:52:47 +0900 (Wed, 13 Dec 2017) | 1 line
Bump version to etc-1.0.0 as default gems.
------------------------------------------------------------------------
r61200 | hsbt | 2017-12-13 14:24:01 +0900 (Wed, 13 Dec 2017) | 1 line
Bump version to csv-1.0.0 as default gems.
------------------------------------------------------------------------
r61199 | hsbt | 2017-12-13 11:43:38 +0900 (Wed, 13 Dec 2017) | 4 lines
Modify git clone command
The previous git clone command is not work, the protocol in URL should be https
[fix GH-1772]
------------------------------------------------------------------------
r61198 | yui-knk | 2017-12-13 10:10:27 +0900 (Wed, 13 Dec 2017) | 4 lines
parse.y: Revert r61196
* parse.y: Because top_stmts is generated from none (not "/* none */"),
@0 is not set by YYLLOC_DEFAULT. So @0 is a meaningless location.
------------------------------------------------------------------------
r61197 | normal | 2017-12-13 09:38:08 +0900 (Wed, 13 Dec 2017) | 13 lines
webrick: compile RE correctly for beginning and end match
Using ^ and $ in regexps means we can accidentally get fooled
by "%0a" in HTTP request paths being decoded to newline
characters. Use \A and \z to match beginning and end-of-string
respectively, instead.
Thanks to mame and hsbt for reporting.
* lib/webrick/httpserver.rb (MountTable#compile):
use \A and \z instead of ^ and $
* lib/webrick/httpserver.rb (MountTable#normalize): use \z instead of $
* test/webrick/test_httpserver.rb (test_cntrl_in_path): new test
------------------------------------------------------------------------
r61196 | yui-knk | 2017-12-13 08:48:50 +0900 (Wed, 13 Dec 2017) | 20 lines
parse.y: Fix the locations of an empty script
* parse.y: Fix the locations of NODE_BEGIN in
an empty script.
```
ruby --dump=p -e ''
```
* Before
```
NODE_BEGIN (line: 1, code_range: (1,1)-(1,1))
```
* After
```
NODE_BEGIN (line: 1, code_range: (1,0)-(1,0))
```
------------------------------------------------------------------------
r61195 | eregon | 2017-12-13 08:41:50 +0900 (Wed, 13 Dec 2017) | 5 lines
Capture the values of globals in EnvUtil to restore to the original
* Avoids the thread-safety issues mentioned in r61192,
when thread concurrently modify default Encodings or $VERBOSE.
Their state will always be the original one once the test finishes.
------------------------------------------------------------------------
r61194 | eregon | 2017-12-13 08:41:34 +0900 (Wed, 13 Dec 2017) | 3 lines
Revert r61192 and r61193
* More general fix coming.
------------------------------------------------------------------------
r61193 | eregon | 2017-12-13 07:37:40 +0900 (Wed, 13 Dec 2017) | 3 lines
Use EnvUtil.with_default_external in tests needing it
* Reverts part of r54522.
------------------------------------------------------------------------
r61192 | eregon | 2017-12-13 06:51:53 +0900 (Wed, 13 Dec 2017) | 11 lines
Do not change Encoding.default_internal in assert_raise_with_message
* It is not thread-safe: if two threads call it concurrently,
the default_internal Encoding might not be restored, which causes
many problems. The same applies for $VERBOSE, which might also not be
restored to its original value but to the new value instead.
This happens because reading the original value might capture the
value already changed by EnvUtil.with_default_internal in another
Thread. One solution could be to capture the value of these globals
before running the test.
* Reverts part of r54522.
------------------------------------------------------------------------
r61191 | eregon | 2017-12-13 06:32:13 +0900 (Wed, 13 Dec 2017) | 4 lines
Check that global encodings are not changed in test-all
* Check that Encoding.default_internal and Encoding.default_external
are the same before and after every test.
------------------------------------------------------------------------
r61190 | eregon | 2017-12-13 05:09:36 +0900 (Wed, 13 Dec 2017) | 3 lines
Remove useless assertion in TestThread#test_handle_interrupt_blocking
* It was originally th.join(0.2), but th.join never returns nil.
------------------------------------------------------------------------
r61189 | eregon | 2017-12-13 04:48:32 +0900 (Wed, 13 Dec 2017) | 3 lines
Handle exception explicitly in TestBignum#test_interrupt_during_to_s
* Otherwise it produces a warning with Thread.report_on_exception=true.
------------------------------------------------------------------------
r61188 | eregon | 2017-12-13 03:44:49 +0900 (Wed, 13 Dec 2017) | 6 lines
Fix test-all tests to avoid creating report_on_exception warnings
* The warnings are shown by Thread.report_on_exception defaulting to
true. [Feature #14143] [ruby-core:83979]
* Improves tests by narrowing down the scope where an exception
is expected.
------------------------------------------------------------------------
r61187 | eregon | 2017-12-13 03:44:33 +0900 (Wed, 13 Dec 2017) | 3 lines
Remove extra assert_nil in Rinda tests
* They are never executed since thread_join() raises.
------------------------------------------------------------------------
r61186 | eregon | 2017-12-13 03:44:21 +0900 (Wed, 13 Dec 2017) | 3 lines
Fix tests which fail with extra stderr output when a Thread dies
* [Feature #14143] [ruby-core:83979].
------------------------------------------------------------------------
r61185 | eregon | 2017-12-13 03:44:07 +0900 (Wed, 13 Dec 2017) | 5 lines
Rescue expected Interrupt in TupleSpaceTestModule#test_take_bug_8215
* test/rinda/test_rinda.rb (test_take_bug_8215): add rescue for
expected exception, which removes the warning by
Thread.report_on_exception [Feature #14143].
------------------------------------------------------------------------
r61184 | eregon | 2017-12-13 03:43:55 +0900 (Wed, 13 Dec 2017) | 7 lines
Avoid creating a Thread for shutting down a DRbServer
* lib/drb/drb.rb: avoid creating a Thread and call the shutdown logic
directly. Do not try to kill or join the current Thread.
Thread.new { stop_service } caused "can't alloc thread (ThreadError)",
which is shown with Thread.report_on_exception = true.
[Bug #14171]
------------------------------------------------------------------------
r61183 | eregon | 2017-12-13 03:43:42 +0900 (Wed, 13 Dec 2017) | 11 lines
Set Thread.report_on_exception=true by default to report exceptions in Threads
* [Feature #14143] [ruby-core:83979]
* vm.c (vm_init2): Set Thread.report_on_exception to true.
* thread.c (thread_start_func_2): Add indication the message is caused
by report_on_exception = true.
* spec/ruby: Specify the new behavior.
* test/ruby/test_thread.rb: Adapt and improve tests for
Thread.report_on_exception and Thread#report_on_exception.
* test/ruby/test_thread.rb, test/ruby/test_exception.rb: Unset
report_on_exception for tests expecting no extra output.
------------------------------------------------------------------------
r61182 | k0kubun | 2017-12-13 00:12:05 +0900 (Wed, 13 Dec 2017) | 9 lines
struct.c: don't explain implementation details
of keyword_init option. [DOC] [ci skip]
It's implemented to take Hash, but it's just implementation detail and
it's intended to behave in the same way as keyword arguments (for
:keyword_init option too).
Also I unified coding style of r61137 with other places.
------------------------------------------------------------------------
r61181 | k0kubun | 2017-12-13 00:03:45 +0900 (Wed, 13 Dec 2017) | 14 lines
struct.c: show `keyword_init: true` on inspect
for debugging if it's specified for the Struct class.
This follows up r61137.
We don't provide a method to check it because I don't think of any use
case, but showing this to inspect would be helpful for debugging if
someone is debugging whether keyword_init is properly enabled or not.
In this commit, I didn't show `keyword_init: false` because of backward
compatibility. Ideally any application should not depend on the behavior
of inspect, but I don't have strong motivation to break it too.
[close GH-1773]
------------------------------------------------------------------------
r61180 | usa | 2017-12-13 00:02:51 +0900 (Wed, 13 Dec 2017) | 10 lines
set ino at `File.lstat` on Windows
* win32/win32.c (winnt_stat): support symbolic link and others.
* win32/win32.c (w32_stati128, wstati128, name_for_stat, rb_w32_{,ul}stati128,
wutimensat): follow above change.
[Feature #14169]
From: Takehiro Kubo kubo@jiubao.org
------------------------------------------------------------------------
r61179 | kazu | 2017-12-13 00:01:13 +0900 (Wed, 13 Dec 2017) | 1 line
Add more example of `Enumerable#one?` [ci skip]
------------------------------------------------------------------------
r61178 | kazu | 2017-12-13 00:01:11 +0900 (Wed, 13 Dec 2017) | 1 line
pattern and modulo are not keyword argument [ci skip]
------------------------------------------------------------------------
r61177 | kazu | 2017-12-13 00:01:10 +0900 (Wed, 13 Dec 2017) | 1 line
Fix typos [ci skip]
------------------------------------------------------------------------
r61176 | kazu | 2017-12-13 00:01:08 +0900 (Wed, 13 Dec 2017) | 3 lines
atime,mtime,ctime of File::Stat are instance methods
[ci skip]
------------------------------------------------------------------------
r61175 | kazu | 2017-12-13 00:01:07 +0900 (Wed, 13 Dec 2017) | 11 lines
Remove unnecessary `:`
Before:
`.../irb/init.rb:280: warning: :LoadError: cannot load such file -- hoge`
After:
`.../irb/init.rb:280: warning: LoadError: cannot load such file -- hoge`
[ci skip]
------------------------------------------------------------------------
r61174 | kazu | 2017-12-13 00:01:04 +0900 (Wed, 13 Dec 2017) | 3 lines
Use printf instead of puts and sprintf
[ci skip]
------------------------------------------------------------------------
r61173 | svn | 2017-12-13 00:01:03 +0900 (Wed, 13 Dec 2017) | 1 line
* 2017-12-13
------------------------------------------------------------------------
r61172 | kazu | 2017-12-13 00:01:02 +0900 (Wed, 13 Dec 2017) | 3 lines
[DOC] Process.last_status may return nil
[ci skip]
------------------------------------------------------------------------
r61171 | yui-knk | 2017-12-12 23:47:34 +0900 (Tue, 12 Dec 2017) | 25 lines
parse.y: Change the last location of none
* parse.y: Change the last location of none to be
equal to the first location of none.
Sometimes none has length (`parser->tokp` does not
match `lex_p` when none is generated).
This leads to invalid code_ranges.
e.g. The locations of the NODE_CALL (:sort) is fixed:
```
x.sort.join(" ")
```
* Before
```
NODE_CALL (line: 1, code_range: (1,0)-(1,7))
```
* After
```
NODE_CALL (line: 1, code_range: (1,0)-(1,6))
```
------------------------------------------------------------------------
r61170 | yui-knk | 2017-12-12 23:21:20 +0900 (Tue, 12 Dec 2017) | 3 lines
parse.y: Set locations of nd_body in NODE_ITER explicitly
* parse.y: Same as r61168, but for brace_block.
------------------------------------------------------------------------
r61169 | hsbt | 2017-12-12 23:10:43 +0900 (Tue, 12 Dec 2017) | 6 lines
Revert "switch from http to https for Unicode data file downloads"
This reverts commit 90de118a75921a08497b41de2950971073b3c924.
The environment of mswinci couldn't handle https download.
(It's certificates problem, We should upgrade its environment)
------------------------------------------------------------------------
r61168 | yui-knk | 2017-12-12 23:10:23 +0900 (Tue, 12 Dec 2017) | 11 lines
parse.y: Set locations of nd_body in NODE_ITER explicitly
* parse.y: Currently the location of do_body is set
by new_do_body. Sometimes the last part of do_body is
none, because bodystmt ends with opt_ensure.
Token keyword_end has been looked ahead when a tokenizer
generates none, so the last location of opt_ensure matches
the last location of `end`. But this relation will be
broken when we change the last location of none to be equal to
the first location of none. So set locations of nd_body in
NODE_ITER explicitly.
------------------------------------------------------------------------
r61167 | k0kubun | 2017-12-12 22:56:48 +0900 (Tue, 12 Dec 2017) | 9 lines
irb/test_init.rb: add test to ensure $0
is not changed.
At first `ARGV.unshift('something')` was suggested for r61149,
but it wasn't sufficient because it modifies $0.
Not only to preserve ARGV, but also r61149 intends to preserve $0.
This test prevents future breakage of the behavior.
------------------------------------------------------------------------
r61166 | k0kubun | 2017-12-12 22:47:46 +0900 (Tue, 12 Dec 2017) | 6 lines
test_struct.rb: rename constants to clarify
the intention. Follows up r61137.
They were forgotten to be renamed when :keyword_args is renamed to
:keyword_init.
------------------------------------------------------------------------
r61165 | yui-knk | 2017-12-12 22:19:40 +0900 (Tue, 12 Dec 2017) | 5 lines
ext/coverage/coverage.c: Add test cases
* ext/coverage/coverage.c (test_method_coverage_for_define_method):
Add test cases for method coverages which test do-end block
define_method.
------------------------------------------------------------------------
r61164 | svn | 2017-12-12 22:07:08 +0900 (Tue, 12 Dec 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r61163 | sorah | 2017-12-12 22:07:06 +0900 (Tue, 12 Dec 2017) | 1 line
NEWS: polish
------------------------------------------------------------------------
r61162 | ko1 | 2017-12-12 21:40:41 +0900 (Tue, 12 Dec 2017) | 6 lines
ignore lines (to catch up r61155).
* spec/ruby/library/net/ftp/return_code_spec.rb: check message body only.
* spec/ruby/library/net/http/http/set_debug_output_spec.rb: ditto.
------------------------------------------------------------------------
r61161 | sorah | 2017-12-12 21:17:38 +0900 (Tue, 12 Dec 2017) | 4 lines
error.c(rb_error_write): Remove ec_ from its name
It's unrelated to rb_execution_context_t during writing the patch
r61154
------------------------------------------------------------------------
r61160 | a_matsuda | 2017-12-12 21:12:40 +0900 (Tue, 12 Dec 2017) | 1 line
NEWS for Method#===
------------------------------------------------------------------------
r61159 | a_matsuda | 2017-12-12 21:12:39 +0900 (Tue, 12 Dec 2017) | 1 line
Unneeded assertion
------------------------------------------------------------------------
r61158 | a_matsuda | 2017-12-12 21:12:38 +0900 (Tue, 12 Dec 2017) | 3 lines
Add Method#=== that invokes #call
Patch by osyo via [Feature #14142]
------------------------------------------------------------------------
r61157 | sorah | 2017-12-12 21:10:21 +0900 (Tue, 12 Dec 2017) | 1 line
hotfix implicit-function-declaration
------------------------------------------------------------------------
r61156 | shyouhei | 2017-12-12 21:10:20 +0900 (Tue, 12 Dec 2017) | 2 lines
NEWS entry for [Feature #12882]
------------------------------------------------------------------------
r61155 | shyouhei | 2017-12-12 20:56:25 +0900 (Tue, 12 Dec 2017) | 27 lines
Add uplevel keyword to Kernel#warn and use it
If uplevel keyword is given, the warning message is prepended
with caller file and line information and the string "warning: ".
The use of the uplevel keyword makes Kernel#warn format output
similar to how rb_warn formats output.
This patch modifies net/ftp and net/imap to use Kernel#warn
instead of $stderr.puts or $stderr.printf, since they are used
for printing warnings.
This makes lib/cgi/core and tempfile use $stderr.puts instead of
warn for debug logging, since they are used for debug printing
and not for warning.
This does not modify bundler, rubygems, or rdoc, as those are
maintained outside of ruby and probably wish to remain backwards
compatible with older ruby versions.
rb_warn_m code is originally from nobu, but I've changed it
so that it only includes the path and lineno from uplevel
(not the method), and also prepends the string "warning: ",
to make it more similar to rb_warn.
From: Jeremy Evans code@jeremyevans.net
Signed-off-by: Urabe Shyouhei shyouhei@ruby-lang.org
------------------------------------------------------------------------
r61154 | sorah | 2017-12-12 20:47:16 +0900 (Tue, 12 Dec 2017) | 6 lines
error.c(exc_full_message): Exception#full_message
Add a method to retrieve a String expression of an exception,
formatted in the same way that Ruby prints an uncaught exception out.
[Feature #14141]
------------------------------------------------------------------------
r61153 | usa | 2017-12-12 20:43:18 +0900 (Tue, 12 Dec 2017) | 4 lines
remove unused variable
thanks kubo-san. c.f. [ruby-dev:50345]
------------------------------------------------------------------------
r61152 | shyouhei | 2017-12-12 20:33:26 +0900 (Tue, 12 Dec 2017) | 2 lines
NEWS entry for FrozenError [Feature #13224]
------------------------------------------------------------------------
r61151 | k0kubun | 2017-12-12 20:32:37 +0900 (Tue, 12 Dec 2017) | 1 line
irb/init.rb: make sure ARGV refers to toplevel one
------------------------------------------------------------------------
r61150 | svn | 2017-12-12 20:25:17 +0900 (Tue, 12 Dec 2017) | 1 line
* properties.
------------------------------------------------------------------------
r61149 | k0kubun | 2017-12-12 20:25:16 +0900 (Tue, 12 Dec 2017) | 12 lines
irb.rb: preserve ARGV on binding.irb
This is not perfectly good solution (at least we don't want to have ARGV
as default value of `argv` argument), but unfortunately IRB.setup and
IRB.parse_opts are public methods and we can't make breaking change to
those methods.
We may deprecate using them and then make them private in the future,
but the removal should not be in Ruby 2.5. So I kept their interface for
now.
[Bug #14162] [close GH-1770]
------------------------------------------------------------------------
r61148 | hsbt | 2017-12-12 19:57:58 +0900 (Tue, 12 Dec 2017) | 4 lines
Bump version to fileutils-1.0.1.
Update source code url metadata on rubygems.org.
[Feature #13197][ruby-core:79455]
------------------------------------------------------------------------
r61147 | naruse | 2017-12-12 18:12:14 +0900 (Tue, 12 Dec 2017) | 1 line
Integer#allbits?, Integer#anybits?, Integer#nobits? [Feature #12753]
------------------------------------------------------------------------
r61146 | hsbt | 2017-12-12 18:01:34 +0900 (Tue, 12 Dec 2017) | 1 line
Bump version to fileutils-1.0.0 as default gems.
------------------------------------------------------------------------
r61145 | duerst | 2017-12-12 18:00:20 +0900 (Tue, 12 Dec 2017) | 2 lines
switch from http to https for Unicode data file downloads
(patch from MSP-Greg (Greg L), this closes issue #13962)
------------------------------------------------------------------------
r61144 | mrkn | 2017-12-12 18:00:19 +0900 (Tue, 12 Dec 2017) | 1 line
NEWS: mention Process.last_status
------------------------------------------------------------------------
r61143 | mrkn | 2017-12-12 18:00:17 +0900 (Tue, 12 Dec 2017) | 7 lines
process.c: add Process.last_status
* process.c (proc_s_last_status): add Process.last_status
[ruby-core:83514] [Feature #14043]
* test/ruby/test_process.rb (test_last_status): add a test case for
Process.last_status.
------------------------------------------------------------------------
r61142 | yui-knk | 2017-12-12 17:54:34 +0900 (Tue, 12 Dec 2017) | 20 lines
parse.y: Fix the locations of NODE_ITER (cmd_brace_block)
* parse.y: Update the locations of NODE_ITER
when nd_iter is determined.
```
a (1) {|i|}
```
* Before
```
NODE_ITER (line: 1, code_range: (1,6)-(1,10))
```
* After
```
NODE_ITER (line: 1, code_range: (1,0)-(1,11))
```
------------------------------------------------------------------------
r61141 | duerst | 2017-12-12 17:35:08 +0900 (Tue, 12 Dec 2017) | 1 line
mention support of emoji-related Unicode character properties in NEWS
------------------------------------------------------------------------
r61140 | svn | 2017-12-12 17:34:14 +0900 (Tue, 12 Dec 2017) | 1 line
* properties.
------------------------------------------------------------------------
r61139 | hsbt | 2017-12-12 17:34:13 +0900 (Tue, 12 Dec 2017) | 1 line
Ignore gemspec under the lib directory for documentation.
------------------------------------------------------------------------
r61138 | k0kubun | 2017-12-12 17:27:33 +0900 (Tue, 12 Dec 2017) | 1 line
NEWS: add entry for r61137
------------------------------------------------------------------------
r61137 | k0kubun | 2017-12-12 17:12:43 +0900 (Tue, 12 Dec 2017) | 5 lines
struct.c: add keyword_init option to Struct.new
to initialize struct with keyword arguments.
[Feature #11925] [close GH-1771]
------------------------------------------------------------------------
r61136 | svn | 2017-12-12 15:15:45 +0900 (Tue, 12 Dec 2017) | 1 line
* properties.
------------------------------------------------------------------------
r61135 | svn | 2017-12-12 15:15:45 +0900 (Tue, 12 Dec 2017) | 1 line
* remove trailing spaces, append newline at EOF.
------------------------------------------------------------------------
r61134 | hsbt | 2017-12-12 15:15:44 +0900 (Tue, 12 Dec 2017) | 4 lines
Merge 1-16-stable branch of bundler.
It's rc version for bundler-1.16.1. I'm going to update it version
after official release from bundler team.
------------------------------------------------------------------------
r61133 | yui-knk | 2017-12-12 10:13:56 +0900 (Tue, 12 Dec 2017) | 22 lines
parse.y: Fix locations of NODE_ARRAY of mlhs_head
* parse.y: Fix to only include a range of mlhs_item
(exclude ',' form range).
e.g. The locations of the NODE_ARRAY is fixed:
```
(a,) = 1,2
```
* Before
```
NODE_ARRAY (line: 1, code_range: (1,1)-(1,3))
```
* After
```
NODE_ARRAY (line: 1, code_range: (1,1)-(1,2))
```
------------------------------------------------------------------------
r61132 | ko1 | 2017-12-12 09:56:24 +0900 (Tue, 12 Dec 2017) | 4 lines
catch up r61131.
* spec/ruby/core/kernel/autoload_spec.rb: should use FrozenError.
------------------------------------------------------------------------
r61131 | shyouhei | 2017-12-12 09:46:34 +0900 (Tue, 12 Dec 2017) | 11 lines
Add FrozenError as a subclass of RuntimeError
FrozenError will be used instead of RuntimeError for exceptions
raised when there is an attempt to modify a frozen object. The
reason for this change is to differentiate exceptions related
to frozen objects from generic exceptions such as those generated
by Kernel#raise without an exception class.
From: Jeremy Evans <code@jeremyevans.net>
Signed-off-by: Urabe Shyouhei <shyouhei@ruby-lang.org>
------------------------------------------------------------------------
r61130 | yui-knk | 2017-12-12 09:28:29 +0900 (Tue, 12 Dec 2017) | 21 lines
parse.y: Fix locations of NODE_ARRAY in NODE_CALL(:=~)
* parse.y (match_op_gen): Fix to only include a range of node2.
e.g. The locations of the NODE_ARRAY is fixed:
```
re =~ s1
```
* Before
```
NODE_ARRAY (line: 1, code_range: (1,0)-(1,8))
```
* After
```
NODE_ARRAY (line: 1, code_range: (1,6)-(1,8))
```
------------------------------------------------------------------------
r61129 | mame | 2017-12-12 09:20:58 +0900 (Tue, 12 Dec 2017) | 3 lines
ext/coverage/coverage.c: remove COVERAGE_EXPERIMENTAL_MODE
A NEWS entry is also added.
------------------------------------------------------------------------
r61128 | yui-knk | 2017-12-12 09:12:43 +0900 (Tue, 12 Dec 2017) | 22 lines
parse.y: Fix locations of NODE_ARRAY of opt_call_args
* parse.y: Fix to only include a range of assocs
(exclude ',' form range).
e.g. The locations of the NODE_ARRAY is fixed:
```
m1(str: "bar",)
```
* Before
```
NODE_ARRAY (line: 1, code_range: (1,3)-(1,14))
```
* After
```
NODE_ARRAY (line: 1, code_range: (1,3)-(1,13))
```
------------------------------------------------------------------------
r61127 | marcandre | 2017-12-12 08:50:40 +0900 (Tue, 12 Dec 2017) | 1 line
NEWS: add changes for Matrix [ci-skip] [doc]
------------------------------------------------------------------------
r61126 | yui-knk | 2017-12-12 08:38:00 +0900 (Tue, 12 Dec 2017) | 21 lines
parse.y: Fix locations of NODE_ARRAY in NODE_BLOCK_PASS
* parse.y: Fix to only include a range of assocs.
e.g. The locations of the NODE_ARRAY is fixed:
```
m1(str: "bar", &blk)
```
* Before
```
NODE_ARRAY (line: 1, code_range: (1,3)-(1,19))
```
* After
```
NODE_ARRAY (line: 1, code_range: (1,3)-(1,13))
```
------------------------------------------------------------------------
r61125 | yui-knk | 2017-12-12 08:20:42 +0900 (Tue, 12 Dec 2017) | 4 lines
Fix a method name
* test/ruby/test_optimization.rb (test_fixnum_ge):
Fix a method name to suppress method redefinition warnings.
------------------------------------------------------------------------
r61124 | yui-knk | 2017-12-12 08:13:47 +0900 (Tue, 12 Dec 2017) | 24 lines
parse.y: Change locations of NODE_DVAR in NODE_MASGN
* parse.y: Change the last location of NODE_DVAR to
be equal to the first location of NODE_DVAR.
NODE_DVAR of NODE_MASGN (nd_value) is an internal variable,
so it has no length.
e.g. The locations of the NODE_DVAR is changed:
```
a.b {|(c,d)| e}
```
* Before
```
NODE_DVAR (line: 1, code_range: (1,7)-(1,10))
```
* After
```
NODE_DVAR (line: 1, code_range: (1,7)-(1,7))
```
------------------------------------------------------------------------
r61123 | ko1 | 2017-12-12 05:30:37 +0900 (Tue, 12 Dec 2017) | 10 lines
remove vm_opt_binop_dispatch().
* vm_insnhelper.c (vm_opt_binop_dispatch): removed because this function
has several issues for micro-benchmark. Write conditions manually.
The worst point is that we can't control value checking order.
For example, we can assume FIXNUM arithmetic operations are most popular
in Ruby, so that we need to check FIXNUM at first.
* test/ruby/test_optimization.rb: also fix redef bug for LE/GT/GE.
------------------------------------------------------------------------
r61122 | ko1 | 2017-12-12 04:17:25 +0900 (Tue, 12 Dec 2017) | 13 lines
do not disable `trace_` prefix insns.
* vm.c: introduce `ruby_vm_event_enabled_flags` which represents which
event flags are enabled before.
* vm_trace.c: do not turn off `trace_` prefix instructions because turn on
overhead is a matter if a program repeats turn on and turn off frequently.
* iseq.c (finish_iseq_build): respect `ruby_vm_event_enabled_flags`.
* vm_insnhelper.c (vm_trace): check `ruby_vm_event_flags` and disable
lazy trace-off technique (do not disable traces).
------------------------------------------------------------------------
r61121 | usa | 2017-12-12 02:31:43 +0900 (Tue, 12 Dec 2017) | 4 lines
fixed typo
* win32/win32.c (get_ino): forgotten to specify the member. thanks kubo-san.
------------------------------------------------------------------------
r61120 | ko1 | 2017-12-12 01:07:21 +0900 (Tue, 12 Dec 2017) | 11 lines
vm_exec.h: introduce macros for abstarction.
* vm_exec.h: declare two macros
* START_OF_ORIGINAL_INSN()
* DISPATCH_ORIGINAL_INSN()
instead of inserting label and goto lines.
For OPT_CALL_THREADED_CODE, first macro is empty and second macro
is simply call the original insn function.
* tool/instruction.rb: use above macros.
------------------------------------------------------------------------
r61119 | usa | 2017-12-12 01:06:41 +0900 (Tue, 12 Dec 2017) | 4 lines
undef previous definition of `SIZEOF_STRUCT_STAT_ST_INO`
trying to solve build problem of MinGW. see [Bug #14165]
------------------------------------------------------------------------
r61118 | svn | 2017-12-12 00:30:01 +0900 (Tue, 12 Dec 2017) | 1 line
* 2017-12-12
------------------------------------------------------------------------
r61117 | kou | 2017-12-12 00:30:00 +0900 (Tue, 12 Dec 2017) | 2 lines
Update test-unit to 3.2.7
------------------------------------------------------------------------
r61116 | naruse | 2017-12-11 21:09:47 +0900 (Mon, 11 Dec 2017) | 1 line
extern rb_time_utc_offset to get utc offset
------------------------------------------------------------------------
r61115 | hsbt | 2017-12-11 17:37:49 +0900 (Mon, 11 Dec 2017) | 1 line
Bump version to zlib-1.0.0 as default gems.
------------------------------------------------------------------------
r61114 | hsbt | 2017-12-11 17:18:01 +0900 (Mon, 11 Dec 2017) | 1 line
Bump version to scanf-1.0.0 as default gems.
------------------------------------------------------------------------
r61113 | hsbt | 2017-12-11 15:48:09 +0900 (Mon, 11 Dec 2017) | 1 line
Bump version to sdbm-1.0.0 as default gems.
------------------------------------------------------------------------
r61112 | hsbt | 2017-12-11 15:03:53 +0900 (Mon, 11 Dec 2017) | 1 line
Bump version to fcntl-1.0.0 as default gems.
------------------------------------------------------------------------
r61111 | mame | 2017-12-11 13:46:57 +0900 (Mon, 11 Dec 2017) | 3 lines
lib/pp.rb: remove alias for suppressing a redefinition warning.
Because there is now the same guard in prelude.rb (alias pp pp).
------------------------------------------------------------------------
r61110 | hsbt | 2017-12-11 12:56:01 +0900 (Mon, 11 Dec 2017) | 1 line
Bump version to date-1.0.0 as default gems.
------------------------------------------------------------------------
r61109 | hsbt | 2017-12-11 12:27:47 +0900 (Mon, 11 Dec 2017) | 1 line
Bump version to cmath-1.0.0 as default gems.
------------------------------------------------------------------------
r61108 | usa | 2017-12-11 11:30:42 +0900 (Mon, 11 Dec 2017) | 2 lines
bccwin is no longer supported
------------------------------------------------------------------------
r61107 | usa | 2017-12-11 11:30:21 +0900 (Mon, 11 Dec 2017) | 4 lines
depend on win32.h on Windows
* lib/mkmf.rb (depend_rules): all objs should depend on win32.h on Windows.
------------------------------------------------------------------------
r61106 | yui-knk | 2017-12-11 11:19:43 +0900 (Mon, 11 Dec 2017) | 21 lines
parse.y: Fix locations of NODE_DSTR generated by evstr2dstr_gen
* parse.y (evstr2dstr_gen): Fix to only include a range of node.
e.g. The locations of the NODE_DSTR is fixed:
```
%W[a #{b} c]
```
* Before
```
NODE_DSTR (line: 1, code_range: (1,3)-(1,9))
```
* After
```
NODE_DSTR (line: 1, code_range: (1,5)-(1,9))
```
------------------------------------------------------------------------
r61105 | svn | 2017-12-11 10:04:47 +0900 (Mon, 11 Dec 2017) | 1 line
* properties.
------------------------------------------------------------------------
r61104 | hsbt | 2017-12-11 10:04:46 +0900 (Mon, 11 Dec 2017) | 3 lines
Ignore to generate documentation for template files of bundler.
[Bug #14163][ruby-core:84141]
------------------------------------------------------------------------
r61103 | yui-knk | 2017-12-11 09:28:27 +0900 (Mon, 11 Dec 2017) | 3 lines
parse.y: Remove not used argument
* parse.y (list_append_gen): location is not used.
------------------------------------------------------------------------
r61102 | yui-knk | 2017-12-11 09:06:11 +0900 (Mon, 11 Dec 2017) | 24 lines
parse.y: Fix locations of NODE_SCOPE in NODE_MODULE
* parse.y: Fix to only include a range of bodystmt.
e.g. The locations of the NODE_SCOPE is fixed:
```
module M
def m
end
end
```
* Before
```
NODE_SCOPE (line: 4, code_range: (1,0)-(4,3))
```
* After
```
NODE_SCOPE (line: 4, code_range: (1,8)-(4,3))
```
------------------------------------------------------------------------
r61101 | yui-knk | 2017-12-11 08:44:22 +0900 (Mon, 11 Dec 2017) | 21 lines
parse.y: Fix the last location of NODE_COLON2
* parse.y: Fix to only include a range from primary_value to tCONSTANT.
e.g. The locations of the NODE_COLON2 is fixed:
```
A::B ||= 1
```
* Before
```
NODE_COLON2 (line: 1, code_range: (1,0)-(1,10))
```
* After
```
NODE_COLON2 (line: 1, code_range: (1,0)-(1,4))
```
------------------------------------------------------------------------
r61100 | usa | 2017-12-11 08:28:09 +0900 (Mon, 11 Dec 2017) | 2 lines
mention about [Feature #13726] and [Feature #13731]
------------------------------------------------------------------------
r61099 | yui-knk | 2017-12-11 08:27:58 +0900 (Mon, 11 Dec 2017) | 22 lines
parse.y: Change the first location of NODE_ARRAY in NODE_DSTR (nd_next->nd_next)
* parse.y (list_append_gen): Change the first location to
start with the location of item if new list is generated.
e.g. The locations of the NODE_ARRAY is changed:
```
"#{a}.#{b}"
```
* Before
```
NODE_ARRAY (line: 1, code_range: (1,0)-(1,6))
```
* After
```
NODE_ARRAY (line: 1, code_range: (1,5)-(1,6))
```
------------------------------------------------------------------------
r61098 | marcandre | 2017-12-11 07:36:28 +0900 (Mon, 11 Dec 2017) | 3 lines
Add case equality arity to Enumerable#all?, any?, none? and one?,
and specialized Array#any? and Hash#any?
Based on patch by D.E. Akers [#11286]
------------------------------------------------------------------------
r61097 | svn | 2017-12-11 02:26:59 +0900 (Mon, 11 Dec 2017) | 1 line
* 2017-12-11
------------------------------------------------------------------------
r61096 | usa | 2017-12-11 02:26:58 +0900 (Mon, 11 Dec 2017) | 12 lines
support 128bit ino on Windows (if available)
* win32/win32.c, include/ruby/win32.h (stati128, rb_{,u,l,ul}stati128): rename
from stati64ns, change the type of st_ino to 64bit and added st_inohigh.
* dir.c, file.c (stat, lstat): follow above changes.
* file.c (rb_stat_ino): support 128bit ino.
* win32/win32.c (rb_{,u,l,ul}stati128): ditto.
[Feature #13731]
------------------------------------------------------------------------
r61095 | yui-knk | 2017-12-09 22:13:58 +0900 (Sat, 09 Dec 2017) | 22 lines
parse.y: Fix locations of NODE_ARRAY in NODE_ATTRASGN (nd_args)
* parse.y (arg_append_gen): Fix to only include a range of
node2 if new list is generated.
e.g. The locations of the NODE_ARRAY is fixed:
```
x.default = 5
```
* Before
```
NODE_ARRAY (line: 1, code_range: (1,0)-(1,13))
```
* After
```
NODE_ARRAY (line: 1, code_range: (1,12)-(1,13))
```
------------------------------------------------------------------------
r61094 | nobu | 2017-12-09 20:58:25 +0900 (Sat, 09 Dec 2017) | 1 line
test_process.rb (test_maxgroups): add assertions
------------------------------------------------------------------------
r61093 | yui-knk | 2017-12-09 18:44:03 +0900 (Sat, 09 Dec 2017) | 25 lines
parse.y: Change locations of NODE_BLOCK in NODE_RESBODY (nd_body)
* parse.y: Change to only include a range from exc_var to compstmt.
e.g. The locations of the NODE_BLOCK is changed:
```
begin
:a
rescue E => e
:b
end
```
* Before
```
NODE_BLOCK (line: 3, code_range: (3,0)-(5,3))
```
* After
```
NODE_BLOCK (line: 3, code_range: (3,9)-(4,4))
```
------------------------------------------------------------------------
r61092 | yui-knk | 2017-12-09 12:52:59 +0900 (Sat, 09 Dec 2017) | 23 lines
parse.y: Fix locations of NODE_SCOPE in NODE_SCLASS
* parse.y: Fix to only include a range of bodystmt.
e.g. The locations of the NODE_SCOPE is fixed:
```
class << []
def m; end
end
```
* Before
```
NODE_SCOPE (line: 3, code_range: (1,0)-(3,3))
```
* After
```
NODE_SCOPE (line: 3, code_range: (2,2)-(3,3))
```
------------------------------------------------------------------------
r61091 | normal | 2017-12-09 12:46:39 +0900 (Sat, 09 Dec 2017) | 15 lines
Dir#chdir keeps GVL if passed block
On further examination, Dir.chdir with a block from multiple
threads is thread-unsafe given our use of the chdir_blocking and
chdir_thread global variables.
This bug was only introduced in r60583 so not part of any stable
release.
Dir.chdir without a block can still make senses in a MT context
as only one thread could be cwd-sensitive and other threads do
not care which directory they're in.
* dir.c (dir_chdir): keep GVL here
(dir_s_chdir): release GVL if no block given
------------------------------------------------------------------------
r61090 | yui-knk | 2017-12-09 12:18:55 +0900 (Sat, 09 Dec 2017) | 21 lines
parse.y: Fix locations of NODE_ARRAY in NODE_OPCALL(nd_args)
* parse.y: Fix to only include a range of arg1.
e.g. The locations of the NODE_ARRAY is fixed:
```
1 + 2
```
* Before
```
NODE_ARRAY (line: 1, code_range: (1,0)-(1,5))
```
* After
```
NODE_ARRAY (line: 1, code_range: (1,4)-(1,5))
```
------------------------------------------------------------------------
r61089 | yui-knk | 2017-12-09 12:03:34 +0900 (Sat, 09 Dec 2017) | 23 lines
parse.y: Fix locations of NODE_SCOPE in NODE_CLASS
* parse.y: Fix to only include a range of bodystmt.
e.g. The locations of the NODE_SCOPE is fixed:
```
class A
def a; end
end
```
* Before
```
NODE_SCOPE (line: 3, code_range: (1,0)-(3,3))
```
* After
```
NODE_SCOPE (line: 3, code_range: (1,7)-(3,3))
```
------------------------------------------------------------------------
r61088 | stomar | 2017-12-09 07:51:42 +0900 (Sat, 09 Dec 2017) | 1 line
doc/syntax/refinements.rdoc: fix typos
------------------------------------------------------------------------
r61087 | stomar | 2017-12-09 07:43:47 +0900 (Sat, 09 Dec 2017) | 1 line
bignum.c: [DOC] simplify comment
------------------------------------------------------------------------
r61086 | stomar | 2017-12-09 07:43:05 +0900 (Sat, 09 Dec 2017) | 1 line
NEWS: grammar fix
------------------------------------------------------------------------
r61085 | stomar | 2017-12-09 07:42:19 +0900 (Sat, 09 Dec 2017) | 1 line
ext/strscan/strscan.c: [DOC] grammar fixes
------------------------------------------------------------------------
r61084 | svn | 2017-12-09 03:51:57 +0900 (Sat, 09 Dec 2017) | 1 line
* 2017-12-09
------------------------------------------------------------------------
r61083 | normal | 2017-12-09 03:51:56 +0900 (Sat, 09 Dec 2017) | 15 lines
webrick: allow shutdown after StartCallback
We must to ensure the @status ivar is set to :Running before
running StartCallback, otherwise Webrick::Server#stop will not
change the @status to :Shutdown properly.
Note: I have not been able to reproduce the original issue but
understood at least part of the problem and fixed it with this
commit. However, the original reporter (Peak Xu) was still able
to reproduce the problem on 1.9.2 p180 on Windows, so I'm not
sure what else might be going on. Ruby threading and
synchronization primitives have changed a lot since 1.9.2, so
maybe that was fixed elsewhere.
* lib/webrick/server.rb: call StartCallback sooner [Bug #4841]
------------------------------------------------------------------------
r61082 | nobu | 2017-12-08 17:38:57 +0900 (Fri, 08 Dec 2017) | 1 line
lib/pp.rb: no rdoc of alias to suppress a warning
------------------------------------------------------------------------
r61081 | nobu | 2017-12-08 16:35:07 +0900 (Fri, 08 Dec 2017) | 5 lines
test_file_exhaustive.rb: get rid of failures
* test/ruby/test_file_exhaustive.rb (test_utime_symlinkfile):
under some condition, symlink file is also affected by utimes()
on Linux.
------------------------------------------------------------------------
r61080 | nobu | 2017-12-08 16:17:34 +0900 (Fri, 08 Dec 2017) | 4 lines
pp.rb: rdoc
* lib/pp.rb (pp): move pp alias before its rdoc, not to prevent
parsing.
------------------------------------------------------------------------
r61079 | nobu | 2017-12-08 16:13:04 +0900 (Fri, 08 Dec 2017) | 5 lines
test_file_exhaustive.rb: test_utime_symlinkfile
* test_file_exhaustive.rb (test_utime_symlinkfile): investigate
failures on some platforms. wait a second to tell if symlink
atime is changed.
------------------------------------------------------------------------
r61078 | nobu | 2017-12-08 15:24:16 +0900 (Fri, 08 Dec 2017) | 1 line
test_file_exhaustive.rb: fix arguments order
------------------------------------------------------------------------
r61077 | nobu | 2017-12-08 15:20:06 +0900 (Fri, 08 Dec 2017) | 4 lines
win32.c: check error code
* win32/win32.c (w32_io_info): check GetFileInformationByHandleEx
error code to fallback to GetFileInformationByHandle.
------------------------------------------------------------------------
r61076 | nobu | 2017-12-08 14:51:19 +0900 (Fri, 08 Dec 2017) | 7 lines
support gperf 3.1
* tool/gperf.sed: extracted sed commands to a script. ANSI-C code
produced by gperf 3.1 declares length arguments as `size_t`. it
causes conflict with existing declarations, and needs casts for
a local variable and return statements.
[Feature #13883]
------------------------------------------------------------------------
r61075 | yui-knk | 2017-12-08 09:45:23 +0900 (Fri, 08 Dec 2017) | 3 lines
parse.y Fix compile error
ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
------------------------------------------------------------------------
r61074 | yui-knk | 2017-12-08 09:33:38 +0900 (Fri, 08 Dec 2017) | 22 lines
parse.y: Fix locations of modifier_rescue
* parse.y: Fix to only include a range from modifier_rescue
to stmt (or arg).
e.g. The locations of the NODE_RESBODY is fixed:
```
a rescue 1
```
* Before
```
NODE_RESBODY (line: 1, code_range: (1,0)-(1,10))
```
* After
```
NODE_RESBODY (line: 1, code_range: (1,2)-(1,10))
```
------------------------------------------------------------------------
r61073 | svn | 2017-12-08 08:36:00 +0900 (Fri, 08 Dec 2017) | 1 line
* 2017-12-08
------------------------------------------------------------------------
r61072 | yui-knk | 2017-12-08 08:35:59 +0900 (Fri, 08 Dec 2017) | 21 lines
parse.y: Fix locations of string
* parse.y: Fix to include locations of tSTRING_BEG and tSTRING_END.
e.g. The locations of the NODE_STR is fixed:
```
"a"
```
* Before
```
NODE_STR (line: 1, code_range: (1,1)-(1,2))
```
* After
```
NODE_STR (line: 1, code_range: (1,0)-(1,3))
```
------------------------------------------------------------------------
r61071 | hsbt | 2017-12-07 17:08:56 +0900 (Thu, 07 Dec 2017) | 4 lines
Follow up r60970 for bundler's examples.
r60970 break Gemfile.lock format with file protocol after bundle
install/update. I addd hostname to these examples.
------------------------------------------------------------------------
r61070 | yui-knk | 2017-12-07 15:38:49 +0900 (Thu, 07 Dec 2017) | 23 lines
parse.y: Fix locations of array
* parse.y (make_array): Set locations of ary to
include locations of start token (tLBRACK, tWORDS_BEG, ...)
and end token (']', tSTRING_END, ...) of array.
e.g. The locations of the NODE_ARRAY is fixed:
```
[1, 2, 3]
```
* Before
```
NODE_ARRAY (line: 1, code_range: (1,1)-(1,8))
```
* After
```
NODE_ARRAY (line: 1, code_range: (1,0)-(1,9))
```
------------------------------------------------------------------------
r61069 | nobu | 2017-12-07 13:42:16 +0900 (Thu, 07 Dec 2017) | 1 line
win32/win32.c: removed a stale comment
------------------------------------------------------------------------
r61068 | nobu | 2017-12-07 13:12:42 +0900 (Thu, 07 Dec 2017) | 4 lines
parse.y: fix for old compilers
* parse.y (arg_value): initialization of aggregation type with
non-constant values is not allowed in C89.
------------------------------------------------------------------------
r61067 | nobu | 2017-12-07 13:03:44 +0900 (Thu, 07 Dec 2017) | 5 lines
win32.c: fallback to old API
* win32/win32.c (w32_io_info, rb_w32_file_identical_p): fallback
to GetFileInformationByHandle if GetFileInformationByHandleEx
failed. it seems not working on network drives.
------------------------------------------------------------------------
r61066 | yui-knk | 2017-12-07 12:00:36 +0900 (Thu, 07 Dec 2017) | 21 lines
parse.y: Fix locations of dsym
* parse.y: Fix to only include a range from tSTRING_BEG to tLABEL_END.
e.g. The locations of the NODE_LIT is fixed:
```
{ "a": 10 }
```
* Before
```
NODE_LIT (line: 1, code_range: (1,2)-(1,9))
```
* After
```
NODE_LIT (line: 1, code_range: (1,2)-(1,6))
```
------------------------------------------------------------------------
r61065 | yui-knk | 2017-12-07 11:48:38 +0900 (Thu, 07 Dec 2017) | 22 lines
parse.y: Fix locations of dsym
* parse.y (dsym_node_gen): Always set locations
to include locations of tSYMBEG and tSTRING_END.
e.g. The locations of the NODE_LIT is fixed:
```
:"a"
```
* Before
```
NODE_LIT (line: 1, code_range: (1,2)-(1,3))
```
* After
```
NODE_LIT (line: 1, code_range: (1,0)-(1,4))
```
------------------------------------------------------------------------
r61064 | yui-knk | 2017-12-07 11:36:51 +0900 (Thu, 07 Dec 2017) | 22 lines
parse.y: Fix locations of regexp
* parse.y (new_regexp_gen): Always set locations
to include locations of tREGEXP_BEG and tREGEXP_END.
e.g. The locations of the NODE_LIT is fixed:
```
/a/
```
* Before
```
NODE_LIT (line: 1, code_range: (1,1)-(1,2))
```
* After
```
NODE_LIT (line: 1, code_range: (1,0)-(1,3))
```
------------------------------------------------------------------------
r61063 | yui-knk | 2017-12-07 11:25:37 +0900 (Thu, 07 Dec 2017) | 22 lines
parse.y: Fix locations of xstring
* parse.y (new_xstring_gen): Always set locations
to include locations of tXSTRING_BEG and tSTRING_END.
e.g. The locations of the NODE_XSTR is fixed:
```
`a`
```
* Before
```
NODE_XSTR (line: 1, code_range: (1,1)-(1,2))
```
* After
```
NODE_XSTR (line: 1, code_range: (1,0)-(1,3))
```
------------------------------------------------------------------------
r61062 | shugo | 2017-12-07 08:56:04 +0900 (Thu, 07 Dec 2017) | 1 line
remove unnecessary read_timeout.
------------------------------------------------------------------------
r61061 | mame | 2017-12-07 07:43:54 +0900 (Thu, 07 Dec 2017) | 1 line
eval_intern.h: fix a typo
------------------------------------------------------------------------
r61060 | normal | 2017-12-07 06:51:10 +0900 (Thu, 07 Dec 2017) | 3 lines
cont.c: update comment for ec refactoring
* cont.c (fiber_switch): update comment (ec.fiber => ec->fiber_ptr)
------------------------------------------------------------------------
r61059 | svn | 2017-12-07 00:02:32 +0900 (Thu, 07 Dec 2017) | 1 line
* 2017-12-07
------------------------------------------------------------------------
r61058 | kazu | 2017-12-07 00:02:31 +0900 (Thu, 07 Dec 2017) | 4 lines
`Integer#pow(b)` accepts numeric
instead of integer only and returns numeric instead of integer only
same as `Integer#**`
------------------------------------------------------------------------
r61057 | nobu | 2017-12-06 21:36:37 +0900 (Wed, 06 Dec 2017) | 4 lines
numeric.c: rb_int_powm rdoc
* numeric.c (Init_Numeric): let rdoc know that rb_int_powm is
defined in bignum.c. [Feature #12508] [Feature #11003]
------------------------------------------------------------------------
r61056 | nobu | 2017-12-06 20:36:42 +0900 (Wed, 06 Dec 2017) | 5 lines
vcs.rb: fix r61054
* tool/vcs.rb (VCS::SVN.get_revisions): cmd_readd_at expects the
whole arguments for IO.popen as the second argument, that is an
array of command and mode.
------------------------------------------------------------------------
r61055 | nobu | 2017-12-06 20:18:53 +0900 (Wed, 06 Dec 2017) | 4 lines
file2lastrev.rb: suppress_not_found
* tool/file2lastrev.rb: exit successfully when command not found,
and if --suppress_not_found is given.
------------------------------------------------------------------------
r61054 | nobu | 2017-12-06 20:18:52 +0900 (Wed, 06 Dec 2017) | 4 lines
vcs.rb: raise NotFoundError when command not found
* tool/vcs.rb (cmd_pipe_at, cmd_read_at, system): moved from GIT
to VCS, and now raise VCS::NotFoundError when command not found.
------------------------------------------------------------------------
r61053 | hsbt | 2017-12-06 17:35:13 +0900 (Wed, 06 Dec 2017) | 1 line
Bump fiddle-1.0.0 for released version.
------------------------------------------------------------------------
r61052 | hsbt | 2017-12-06 17:34:34 +0900 (Wed, 06 Dec 2017) | 1 line
Bump gdbm-2.0.0 for released versionn.
------------------------------------------------------------------------
r61051 | hsbt | 2017-12-06 17:32:01 +0900 (Wed, 06 Dec 2017) | 1 line
Bump dbm-1.0.0 for released version.
------------------------------------------------------------------------
r61050 | mame | 2017-12-06 16:26:54 +0900 (Wed, 06 Dec 2017) | 4 lines
compile.c (rb_iseq_compile_node): Move the check for imemo_ifunc to top
Applying nd_type to imemo_ifunc object seems harmless fortunately, but
very dirty (to me).
------------------------------------------------------------------------
r61049 | mame | 2017-12-06 16:19:17 +0900 (Wed, 06 Dec 2017) | 4 lines
vm_core.h (RUBY_EVENT_COVERAGE_BRANCH): renamed
This change moves RUBY_EVENT_COVERAGE from include/ruby/ruby.h to
vm_core.h and renames it to RUBY_EVENT_COVERAGE_BRANCH.
------------------------------------------------------------------------
r61048 | mame | 2017-12-06 16:19:16 +0900 (Wed, 06 Dec 2017) | 3 lines
Remove RUBY_EVENT_SPECIFIED_LINE
Follow up of r61044
------------------------------------------------------------------------
r61047 | mame | 2017-12-06 16:04:49 +0900 (Wed, 06 Dec 2017) | 1 line
insns.def (tracebranch): renamed from `trace2`
------------------------------------------------------------------------
r61046 | mame | 2017-12-06 16:04:48 +0900 (Wed, 06 Dec 2017) | 4 lines
thread.c (update_branch_coverage): renamed from `update_coverage`
Now this function only deals with branch events, so this change renames
it and remove complexity that is no longer needed.
------------------------------------------------------------------------
r61045 | ko1 | 2017-12-06 15:54:40 +0900 (Wed, 06 Dec 2017) | 1 line
fix last commit
------------------------------------------------------------------------
r61044 | ko1 | 2017-12-06 15:53:15 +0900 (Wed, 06 Dec 2017) | 7 lines
remove unsupported RUBY_EVENT_SPECIFIED_LINE.
* vm_trace.c (get_event_id): remove experimental in past, and not supported
now feature.
* vm_trace.c (tracepoint_inspect): ditto.
------------------------------------------------------------------------
r61043 | mame | 2017-12-06 15:39:05 +0900 (Wed, 06 Dec 2017) | 5 lines
thread.c (update_line_coverage): Use RUBY_EVENT_LINE
This change makes coverage use the general event type RUBY_EVENT_LINE
instead of a special event type RUBY_EVENT_COVERAGE.
Just a refactoring.
------------------------------------------------------------------------
r61042 | nobu | 2017-12-06 14:22:19 +0900 (Wed, 06 Dec 2017) | 4 lines
prelude.c.tmpl: fix line number
* template/prelude.c.tmpl (Init_prelude): fix line number of
preludes. line of prelude_eval is an int, not a VALUE.
------------------------------------------------------------------------
r61041 | mame | 2017-12-06 12:19:17 +0900 (Wed, 06 Dec 2017) | 1 line
eval_intern.h: prevent core dump with clang and make test-all
------------------------------------------------------------------------
r61040 | ko1 | 2017-12-06 12:16:08 +0900 (Wed, 06 Dec 2017) | 5 lines
remove `PUSH_TAG`/`EXEC_AG`/`POP_TAG`/`JUMO_TAG`.
* eval_intern.h: remove non-`EC_` prefix *_TAG() macros.
Use `EC_` prefix macros explicitly.
------------------------------------------------------------------------
r61039 | yui-knk | 2017-12-06 12:09:55 +0900 (Wed, 06 Dec 2017) | 28 lines
parse.y: Fix the first location of heredoc identifier
* parse.y (parser_heredoc_identifier):
Put length of term at the head of rb_strterm_heredoc_struct.term.
* parse.y (rb_parser_set_location_from_strterm_heredoc):
Use length of term to calculate first_loc.column.
e.g. The locations of the NODE_DSTR is fixed:
```
a <<STR
123
#{:a}
STR
```
* Before
```
NODE_DSTR (line: 3, code_range: (1,3)-(1,7))
```
* After
```
NODE_DSTR (line: 3, code_range: (1,2)-(1,7))
```
------------------------------------------------------------------------
r61038 | mame | 2017-12-06 10:41:05 +0900 (Wed, 06 Dec 2017) | 3 lines
parse.y: remove redefined typedef
Clang told me that this is C11 feature.
------------------------------------------------------------------------
r61037 | yui-knk | 2017-12-06 09:44:18 +0900 (Wed, 06 Dec 2017) | 28 lines
parse.y: Fix locations of HEREDOC
* parse.y (rb_parser_set_location_from_strterm_heredoc):
Set locations based on rb_strterm_heredoc_t.
* parse.y (yylex): Set yylloc based on rb_strterm_heredoc_t
when parsing heredoc.
e.g. The locations of the NODE_DSTR is changed:
```
a <<STR
123
#{:a}
STR
```
* Before
```
NODE_DSTR (line: 3, code_range: (3,0)-(1,7))
```
* After
```
NODE_DSTR (line: 3, code_range: (1,3)-(1,7))
```
------------------------------------------------------------------------
r61036 | svn | 2017-12-06 08:34:15 +0900 (Wed, 06 Dec 2017) | 1 line
* 2017-12-06
------------------------------------------------------------------------
r61035 | yui-knk | 2017-12-06 08:34:14 +0900 (Wed, 06 Dec 2017) | 5 lines
test_syntax.rb: Add a test case for `not()`
* test/ruby/test_syntax.rb (TestSyntax#test_keyword_not_parens):
Currently `not()` is tested by only TestRipper::ParserEvents#test_unary,
so I think it's better to test this syntax directly.
------------------------------------------------------------------------
r61034 | nobu | 2017-12-05 22:49:40 +0900 (Tue, 05 Dec 2017) | 4 lines
parse.y: nd_line of new node
* parse.y (nd_set_loc): set nd_line of the newly created node to
the first location.
------------------------------------------------------------------------
r61033 | nobu | 2017-12-05 22:46:21 +0900 (Tue, 05 Dec 2017) | 4 lines
parse.y: nd_line of call_uni_op
* parse.y (call_uni_op): set nd_line to the unary operator
location, same as non-operator method calls.
------------------------------------------------------------------------
r61032 | nobu | 2017-12-05 22:42:46 +0900 (Tue, 05 Dec 2017) | 4 lines
parse.y: nd_line of logop
* parse.y (logop): set nd_line to the logical operator location,
same as non-operator method calls.
------------------------------------------------------------------------
r61031 | nobu | 2017-12-05 22:38:01 +0900 (Tue, 05 Dec 2017) | 4 lines
parse.y: nd_line of match_op
* parse.y (match_op): set nd_line to the match operator location,
same as non-operator method calls.
------------------------------------------------------------------------
r61030 | nobu | 2017-12-05 22:30:06 +0900 (Tue, 05 Dec 2017) | 4 lines
parse.y: nd_line of call_bin_op
* parse.y (call_bin_op): set nd_line to the binary operator
location, same as non-operator method calls.
------------------------------------------------------------------------
r61029 | hsbt | 2017-12-05 20:08:00 +0900 (Tue, 05 Dec 2017) | 3 lines
Bump version to rdoc-6.0.0.
There is no changes from rdoc-6.0.0.bebta4.
------------------------------------------------------------------------
r61028 | mame | 2017-12-05 18:45:03 +0900 (Tue, 05 Dec 2017) | 1 line
iseq.c (iseq_load, iseq_data_to_ary): Fix a type error (for clang)
------------------------------------------------------------------------
r61027 | mame | 2017-12-05 17:58:57 +0900 (Tue, 05 Dec 2017) | 3 lines
Hide ISeq#load
I disclosed it incorrectly at r61025. Sorry.
------------------------------------------------------------------------
r61026 | mame | 2017-12-05 17:56:51 +0900 (Tue, 05 Dec 2017) | 5 lines
ext/coverage/coverage.c: method coverage has column info. of method def.
This change makes method coverage result have not only first lineno of
method defintion, but also code range (i.e. first lineno, first column,
last lineno, and last column).
------------------------------------------------------------------------
r61025 | mame | 2017-12-05 17:56:50 +0900 (Tue, 05 Dec 2017) | 4 lines
vm_core.h (rb_iseq_locatoin_t): add a field `code_range`
This change makes each ISeq keep NODE's code range. This information is
needed for method coverage.
------------------------------------------------------------------------
r61024 | nobu | 2017-12-05 17:50:14 +0900 (Tue, 05 Dec 2017) | 4 lines
node.c: FIELD_BLOCK
* node.c (COMPOUND_FIELD, FIELD_BLOCK): moved block outside
arguments like as SIMPLE_FIELD.
------------------------------------------------------------------------
r61023 | mame | 2017-12-05 16:16:42 +0900 (Tue, 05 Dec 2017) | 11 lines
Revamp method coverage to support define_method
Traditionally, method coverage measurement was implemented by inserting
`trace2` instruction to the head of method iseq. So, it just measured
methods defined by `def` keyword.
This commit drastically changes the measuring mechanism of method
coverage; at `RUBY_EVENT_CALL`, it keeps a hash from rb_method_entry_t*
to runs (i.e., it counts the runs per method entry), and at
`Coverage.result`, it creates the result hash by enumerating all
`rb_method_entry_t*` objects (by `ObjectSpace.each_object`).
------------------------------------------------------------------------
r61022 | mame | 2017-12-05 13:23:06 +0900 (Tue, 05 Dec 2017) | 3 lines
node.c: a simple notation for code range of NODEs
This affects only `--dump=parsetree` and `--dump=parsetree_with_comment`.
------------------------------------------------------------------------
r61021 | svn | 2017-12-05 10:10:15 +0900 (Tue, 05 Dec 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r61020 | hsbt | 2017-12-05 10:10:13 +0900 (Tue, 05 Dec 2017) | 22 lines
vm_core.h: Increase the Fiber stack size on powerpc64
Currently the Fiber stack size is small for powerpc64 and it causes
test/ruby/test_backtrace.rb test to break, since it is using a 8kb stack
size.
It breaks on powerpc64 due to the fact that a frame in the stack is
usually 50% bigger on powerpc64 compared to Intel, due to some
considerations:
* The powerpc64 minimum frame is 2x bigger than on Intel
* Powerpc has more registers that might be saved in the frame compared
to Intel.
I ran the same ruby test that is failing on both Intel and Powerpc, and
each Fiber frame is ~50% bigger on powerpc64 for every single lambda
function, thus, we need to increase the stack size on powerpc64 to
accomodate the same tests/applications.
This fixes bug#13757.
Signed-off-by: Breno Leitao <leitao@debian.org>
------------------------------------------------------------------------
r61019 | shugo | 2017-12-05 09:59:40 +0900 (Tue, 05 Dec 2017) | 3 lines
Remove unnecessary read_timeout.
http://ci.rvm.jp/results/trunk-asserts-nopara@ruby-sky1/219867
------------------------------------------------------------------------
r61018 | nobu | 2017-12-05 09:09:58 +0900 (Tue, 05 Dec 2017) | 3 lines
bignum.c: unified int_pow_tmp2
* bignum.c (int_pow_tmp2): unified DLONG and none DLONG code.
------------------------------------------------------------------------
r61017 | svn | 2017-12-05 08:59:03 +0900 (Tue, 05 Dec 2017) | 1 line
* 2017-12-05
------------------------------------------------------------------------
r61016 | yui-knk | 2017-12-05 08:59:02 +0900 (Tue, 05 Dec 2017) | 27 lines
parse.y: Fix locations of NODE_*ASGN and NODE_ERRINFO
* parse.y: Fix to only include a range of exc_var.
e.g. The locations of the NODE_DASGN_CURR and NODE_ERRINFO are fixed:
```
begin
1
rescue => e
2
end
```
* Before
```
NODE_DASGN_CURR (line: 3, first_lineno: 3, first_column: 0, last_lineno: 5, last_column: 3)
NODE_ERRINFO (line: 5, first_lineno: 3, first_column: 0, last_lineno: 5, last_column: 3)
```
* After
```
NODE_DASGN_CURR (line: 3, first_lineno: 3, first_column: 7, last_lineno: 3, last_column: 11)
NODE_ERRINFO (line: 5, first_lineno: 3, first_column: 7, last_lineno: 3, last_column: 11)
```
------------------------------------------------------------------------
r61015 | nobu | 2017-12-04 21:49:20 +0900 (Mon, 04 Dec 2017) | 3 lines
win32.c: fix error on mingw
* win32/win32.c (FILE_ID_128): defined on mingw already.
------------------------------------------------------------------------
r61014 | kazu | 2017-12-04 21:31:44 +0900 (Mon, 04 Dec 2017) | 1 line
[DOC] improve rdoc formatting for links [ci skip]
------------------------------------------------------------------------
r61013 | usa | 2017-12-04 19:48:30 +0900 (Mon, 04 Dec 2017) | 10 lines
support nanosec file timestamp on newer Windows
Support nanosec file timestamp on Windows 8 or later.
Original patches are written by kubo (Kubo Takehiro).
Windows 7 and earlier also supports nanosec file timestamp, but it's too
accurate than system time. so, this feature is disabled on such versions.
[Feature #13726]
this change also includes [Misc #13702]
------------------------------------------------------------------------
r61012 | nobu | 2017-12-04 19:41:45 +0900 (Mon, 04 Dec 2017) | 4 lines
bignum.c: explicit casts
* bignum.c (int_pow_tmp2): explicitly cast to get rid of implicit
conversion.
------------------------------------------------------------------------
r61011 | yui-knk | 2017-12-04 17:20:07 +0900 (Mon, 04 Dec 2017) | 22 lines
parse.y: Fix a location of NODE_BLOCK_PASS
* parse.y (arg_append_gen): Update the last location of
NODE_BLOCK_PASS when NODE is appended to nd_head.
e.g. The locations of the NODE_BLOCK_PASS is fixed:
```
o[1, &bl] = :c
```
* Before
```
NODE_BLOCK_PASS (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 8)
```
* After
```
NODE_BLOCK_PASS (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 14)
```
------------------------------------------------------------------------
r61010 | yui-knk | 2017-12-04 16:50:42 +0900 (Mon, 04 Dec 2017) | 22 lines
parse.y: Fix a location of NODE_ARGSCAT
* parse.y (arg_append_gen): Update the last location of
NODE_ARGSCAT when NODE is appended to nd_body.
e.g. The locations of the NODE_ARGSCAT is fixed:
```
m(*a, :b, :c)
```
* Before
```
NODE_ARGSCAT (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 8)
```
* After
```
NODE_ARGSCAT (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 12)
```
------------------------------------------------------------------------
r61009 | nobu | 2017-12-04 16:37:21 +0900 (Mon, 04 Dec 2017) | 7 lines
hide internal data objects
* marshal.c (compat_allocator_table): hide the wrapper object of
compat_allocator_tbl.
* process.c (rb_execarg_new): hide wrapper objects of struct
rb_execarg.
------------------------------------------------------------------------
r61008 | yui-knk | 2017-12-04 16:16:31 +0900 (Mon, 04 Dec 2017) | 22 lines
parse.y: Fix a location of NODE_ARRAY in NODE_ARGSCAT
* parse.y: Fix the first location to be equal to the location
of the first element of NODE_ARRAY.
e.g. The locations of the NODE_ARRAY is fixed:
```
m(*a, :b, :c)
```
* Before
```
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 12)
```
* After
```
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 6, last_lineno: 1, last_column: 12)
```
------------------------------------------------------------------------
r61007 | usa | 2017-12-04 15:41:28 +0900 (Mon, 04 Dec 2017) | 5 lines
try to pass compiling with VC12
* win32/win32.c (FILE_ID_128): it's not defined in SDK with VC10, but seems to
be defined in SDK with VC12.
------------------------------------------------------------------------
r61006 | nobu | 2017-12-04 15:08:30 +0900 (Mon, 04 Dec 2017) | 5 lines
ifaddr.c: fix memsize
* ext/socket/ifaddr.c (ifaddr_memsize): do not count the whole
rb_ifaddr_t array for each elements. the header size is
included in the first element for the time being.
------------------------------------------------------------------------
r61005 | usa | 2017-12-04 12:33:48 +0900 (Mon, 04 Dec 2017) | 7 lines
support `File.identical?` on ReFS
* file.c (rb_file_idenitical_p): move Windows dependent code to win32/win32.c.
* win32/win32.c (rb_w32_file_identical_p): support ReFS.
see [Feature #13731] [ruby-dev:50166]
------------------------------------------------------------------------
r61004 | mrkn | 2017-12-04 11:35:41 +0900 (Mon, 04 Dec 2017) | 1 line
NEWS: add Integer#pow(b, m)
------------------------------------------------------------------------
r61003 | mrkn | 2017-12-04 11:35:40 +0900 (Mon, 04 Dec 2017) | 34 lines
bignum.c, numeric.c: add Integer#pow(b, m)
This commit is based on the pull-request #1320 created by Makoto Kishimoto.
[Feature #12508] [Feature #11003] [close GH-1320]
* bignum.c (rb_int_powm): Added for Integer#pow(b, m).
* internal.h (rb_int_powm): Declared to refer in numeric.c.
* bignum.c (bary_powm_gmp): Added for Integer#pow(b, m) using GMP.
* bignum.c (int_pow_tmp1): Added for implementing Integer#pow(b, m).
* bignum.c (int_pow_tmp2, int_pow_tmp3): ditto.
* internal.h (rb_num_positive_int_p): Moved from numeric.c for sharing
the definition with bignum.c.
* internal.h (rb_num_negative_int_p, rb_num_compare_with_zero): ditto.
* numeric.c(negative_int_p): Moved to internal.h for sharing the
definition with bignum.c.
* numeric.c (positive_int_p, compare_with_zero): ditto.
* numeric.c (rb_int_odd_p): Exported (renamed from int_odd_p).
* internal.h (rb_int_odd_p): ditto.
* internal.h (HALF_LONG_MSB): Added.
* numeric.c (SQRT_LONG_MAX): Redefined by using HALF_LONG_MSB.
* test/ruby/test_numeric.rb (test_pow): Added for Integer#pow(b, m).
------------------------------------------------------------------------
r61002 | usa | 2017-12-04 09:23:31 +0900 (Mon, 04 Dec 2017) | 5 lines
revert r60999
* test/logger/test_logdevice.rb: revert r60999 because it was caused by not
committed changes.
------------------------------------------------------------------------
r61001 | nobu | 2017-12-04 08:54:45 +0900 (Mon, 04 Dec 2017) | 4 lines
ifaddr.c: unused member
* ext/socket/ifaddr.c (struct rb_ifaddr_tag): removed set but
unused member root.
------------------------------------------------------------------------
r61000 | yui-knk | 2017-12-04 08:12:01 +0900 (Mon, 04 Dec 2017) | 21 lines
parse.y: Fix a location of NODE_ZARRAY
* parse.y: Fix to only include a range of opt_call_args.
e.g. The locations of the NODE_ZARRAY is fixed:
```
a[] ||= 1
```
* Before
```
NODE_ZARRAY (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 9)
```
* After
```
NODE_ZARRAY (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 3)
```
------------------------------------------------------------------------
r60999 | svn | 2017-12-04 00:49:06 +0900 (Mon, 04 Dec 2017) | 1 line
* 2017-12-04
------------------------------------------------------------------------
r60998 | usa | 2017-12-04 00:49:05 +0900 (Mon, 04 Dec 2017) | 5 lines
give a change to determine to rotate the log or not
* test/logger/test_logdevice.rb (test_shifting_{age,period_suffix}): give a
chance to determine to rotate the log or not.
------------------------------------------------------------------------
r60997 | yui-knk | 2017-12-03 21:44:47 +0900 (Sun, 03 Dec 2017) | 1 line
parse.y (new_args_gen): Set the location of NODE_ARGS
------------------------------------------------------------------------
r60996 | yui-knk | 2017-12-03 21:27:01 +0900 (Sun, 03 Dec 2017) | 21 lines
parse.y: Fix a location of NODE_DVAR in rb_args_info
* parse.y (new_args_tail_gen): Set only a location of NODE_DVAR.
e.g. The locations of the NODE_DVAR is fixed:
```
def a(k: 1, **kws) end
```
* Before
```
NODE_DVAR (line: 1, first_lineno: 1, first_column: 6, last_lineno: 1, last_column: 18)
```
* After
```
NODE_DVAR (line: 1, first_lineno: 1, first_column: 12, last_lineno: 1, last_column: 17)
```
------------------------------------------------------------------------
r60995 | naruse | 2017-12-03 21:11:19 +0900 (Sun, 03 Dec 2017) | 1 line
Set binmode to handle non ASCII commit message
------------------------------------------------------------------------
r60994 | nobu | 2017-12-03 21:10:19 +0900 (Sun, 03 Dec 2017) | 5 lines
common.mk: ignore error
* common.mk ($(REVISION_H)): ignore error when git not found.
`--suppress_not_found` option suppresses a warning but does not
ignore the error.
------------------------------------------------------------------------
r60993 | naruse | 2017-12-03 21:06:16 +0900 (Sun, 03 Dec 2017) | 1 line
Add test for Bug::String.buf_new
------------------------------------------------------------------------
r60992 | shugo | 2017-12-03 17:35:44 +0900 (Sun, 03 Dec 2017) | 3 lines
Specify refinement inheritance by Module#include.
[ruby-core:79880] [Bug #13271]
------------------------------------------------------------------------
r60991 | shugo | 2017-12-03 17:10:42 +0900 (Sun, 03 Dec 2017) | 4 lines
Fix a documentation error of IO#putc.
IO#putc is multi-byte character safe when a String is given as its argument.
[ruby-core:82019] [Bug #13741]
------------------------------------------------------------------------
r60990 | shugo | 2017-12-03 17:02:56 +0900 (Sun, 03 Dec 2017) | 1 line
Init functions should have prefix to avoid confliction.
------------------------------------------------------------------------
r60989 | yui-knk | 2017-12-03 15:53:18 +0900 (Sun, 03 Dec 2017) | 1 line
parse.y: Set a location of NODE_NIL in `not()`
------------------------------------------------------------------------
r60988 | nobu | 2017-12-03 15:14:58 +0900 (Sun, 03 Dec 2017) | 4 lines
parse.y: location of BEGIN
* parse.y (top_stmt): wrap BEGIN statement to store the whole
location for each block.
------------------------------------------------------------------------
r60987 | nobu | 2017-12-03 14:08:17 +0900 (Sun, 03 Dec 2017) | 1 line
common.mk: suppress an error message when git not found
------------------------------------------------------------------------
r60986 | yui-knk | 2017-12-03 13:53:05 +0900 (Sun, 03 Dec 2017) | 23 lines
parse.y: Fix locations of NODEs generated by cond0
* parse.y: Fix to only include a range of the first argument of cond.
e.g. The locations of the NODE_MATCH2 and NODE_GVAR are fixed:
```
1 while /#{:a}/
```
* Before
```
NODE_MATCH2 (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 15)
NODE_GVAR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 15)
```
* After
```
NODE_MATCH2 (line: 1, first_lineno: 1, first_column: 8, last_lineno: 1, last_column: 15)
NODE_GVAR (line: 1, first_lineno: 1, first_column: 8, last_lineno: 1, last_column: 15)
```
------------------------------------------------------------------------
r60985 | nobu | 2017-12-03 13:41:06 +0900 (Sun, 03 Dec 2017) | 4 lines
setup.mak: make Makefile stable
* win32/setup.mak (-basic-vars-): moved BASERUBY and HAVE_BASERUBY
definition to make Makefile stable when they have been defaulted.
------------------------------------------------------------------------
r60984 | shugo | 2017-12-03 09:39:26 +0900 (Sun, 03 Dec 2017) | 4 lines
The superclass of a refinement should have BasicObject as its ancestor.
Otherwise, VM_ASSERT(callable_method_entry_p(cme)) in
prepare_callable_method_entry() fails if VM_CHECK_MODE is 2.
------------------------------------------------------------------------
r60983 | svn | 2017-12-03 00:41:08 +0900 (Sun, 03 Dec 2017) | 1 line
* 2017-12-03
------------------------------------------------------------------------
r60982 | naruse | 2017-12-03 00:41:08 +0900 (Sun, 03 Dec 2017) | 1 line
static
------------------------------------------------------------------------
r60981 | naruse | 2017-12-03 00:41:07 +0900 (Sun, 03 Dec 2017) | 1 line
Update dependencies
------------------------------------------------------------------------
r60980 | shugo | 2017-12-02 19:54:39 +0900 (Sat, 02 Dec 2017) | 6 lines
Modules should not have subclasses.
When refining a module, the module was set to the superclass of its refinement,
and a segmentation fault occurred.
The superclass of the refinement should be an iclass of the module.
[ruby-core:83617] [Bug #14070]
------------------------------------------------------------------------
r60979 | nobu | 2017-12-02 16:09:16 +0900 (Sat, 02 Dec 2017) | 4 lines
string.c: fix rb_external_str_new_with_enc
* string.c (rb_external_str_new_with_enc): do not search non-ascii
by NULL pointer. [ruby-core:84055] [Bug #14150]
------------------------------------------------------------------------
r60978 | nobu | 2017-12-02 12:16:01 +0900 (Sat, 02 Dec 2017) | 4 lines
common.mk: fix message
* common.mk (update-unicode-property-files): fix emoji version in
the message.
------------------------------------------------------------------------
r60977 | nobu | 2017-12-02 12:12:51 +0900 (Sat, 02 Dec 2017) | 8 lines
fix for emoji-data.txt
* common.mk: download emoji-data.txt. As emoji data files are
located in a separate directory in Unicode.org site, reearranged
Unicode data files directories same as the site.
* tool/enc-unicode.rb (get_file): search emoji data files in the
second argument path.
------------------------------------------------------------------------
r60976 | nobu | 2017-12-02 12:12:50 +0900 (Sat, 02 Dec 2017) | 4 lines
enc-unicode.rb: for gperf 3.1
* tool/enc-unicode.rb: support for gperf 3.1, which defines length
arguments as `size_t` but a local variable as `unsigned int`.
------------------------------------------------------------------------
r60975 | eregon | 2017-12-02 02:51:16 +0900 (Sat, 02 Dec 2017) | 1 line
Update to ruby/spec@e2d0d1e
------------------------------------------------------------------------
r60974 | svn | 2017-12-02 00:41:52 +0900 (Sat, 02 Dec 2017) | 1 line
* append newline at EOF.
------------------------------------------------------------------------
r60973 | eregon | 2017-12-02 00:41:50 +0900 (Sat, 02 Dec 2017) | 1 line
Update to ruby/spec@bacedc5
------------------------------------------------------------------------
r60972 | eregon | 2017-12-02 00:41:23 +0900 (Sat, 02 Dec 2017) | 1 line
Update to ruby/mspec@b501ade
------------------------------------------------------------------------
r60971 | svn | 2017-12-02 00:09:42 +0900 (Sat, 02 Dec 2017) | 1 line
* 2017-12-02
------------------------------------------------------------------------
r60970 | naruse | 2017-12-02 00:09:41 +0900 (Sat, 02 Dec 2017) | 6 lines
Append "//" if empty host for file or postgres URI
https://url.spec.whatwg.org/#url-serializing
> Otherwise, if url's host is null and url's scheme is "file", append "//" to output.
URL spec doesn't says anything about postgres, but assume the same thing.
------------------------------------------------------------------------
r60969 | naruse | 2017-12-01 23:32:12 +0900 (Fri, 01 Dec 2017) | 1 line
re-apply r60755
------------------------------------------------------------------------
r60968 | svn | 2017-12-01 23:08:14 +0900 (Fri, 01 Dec 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60967 | naruse | 2017-12-01 23:08:13 +0900 (Fri, 01 Dec 2017) | 1 line
Add missing file
------------------------------------------------------------------------
r60966 | naruse | 2017-12-01 22:50:13 +0900 (Fri, 01 Dec 2017) | 3 lines
Update to Onigmo 6.1.3-669ac9997619954c298da971fcfacccf36909d05.
[Bug #13892]
------------------------------------------------------------------------
r60965 | yui-knk | 2017-12-01 22:40:03 +0900 (Fri, 01 Dec 2017) | 23 lines
parse.y: Fix locations of NODEs related to for statement
* parse.y: Fix to only include a range of for_var.
e.g. The locations of the NODE_ARGS and NODE_DVAR are fixed:
```
for a in m do n end
```
* Before
```
NODE_ARGS (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 19)
NODE_DVAR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 19)
```
* After
```
NODE_ARGS (line: 1, first_lineno: 1, first_column: 4, last_lineno: 1, last_column: 5)
NODE_DVAR (line: 1, first_lineno: 1, first_column: 4, last_lineno: 1, last_column: 5)
```
------------------------------------------------------------------------
r60964 | k0kubun | 2017-12-01 21:26:40 +0900 (Fri, 01 Dec 2017) | 12 lines
vm.c: partially revert r60558
because it was actually used in
https://github.com/tmm1/rbtrace/blob/v0.4.8/ext/rbtrace.c#L329
and deprecated in r60579 AFTER removal in r60558.
ko1 agreed that we should keep just deprecated in Ruby 2.5 and remove it
later, and I'm commiting this because I want to make rbtrace.gem
installation successful.
backward.h: modify r60579 to make rb_frame_method_id_and_class()
compilable.
------------------------------------------------------------------------
r60963 | nobu | 2017-12-01 21:00:10 +0900 (Fri, 01 Dec 2017) | 1 line
vm_trace.c: suppress -Wclobbered warning
------------------------------------------------------------------------
r60962 | nobu | 2017-12-01 21:00:09 +0900 (Fri, 01 Dec 2017) | 6 lines
vm_trace.c: remove duplicate flag
* vm_trace.c (rb_suppress_tracing): remove duplicate flag
`tracing`, which equals to `ec->trace_arg != NULL`. and that
`ec->trace_arg` points `dummy_trace_arg` means it was NULL at
the beginning.
------------------------------------------------------------------------
r60961 | akr | 2017-12-01 19:48:29 +0900 (Fri, 01 Dec 2017) | 51 lines
Replace Kernel#pp after PP class is defined.
Avoid a race condition which a context switch
occur after replacing Kernel#pp but before
defining PP class.
Following patch, inserting sleep, makes
this problem reproducible.
```
Index: lib/pp.rb
===================================================================
--- lib/pp.rb (revision 60960)
+++ lib/pp.rb (working copy)
@@ -26,6 +26,7 @@ module Kernel
end
undef __pp_backup__ if method_defined?(:__pp_backup__)
module_function :pp
+ sleep 1 # thread context switch
end
##
```
With the above patch, "uninitialized constant Kernel::PP" can
happen as as follows.
```
% ./ruby -w -Ilib -e '
t1 = Thread.new {
Thread.current.report_on_exception = true
pp :foo1
}
t2 = Thread.new {
Thread.current.report_on_exception = true
sleep 0.5
pp :foo2
}
t1.join rescue nil
t2.join rescue nil
'
#<Thread:0x000055dbf926eaa0@-e:6 run> terminated with exception:
Traceback (most recent call last):
3: from -e:9:in `block in <main>'
2: from /home/ruby/tst2/ruby/lib/pp.rb:22:in `pp'
1: from /home/ruby/tst2/ruby/lib/pp.rb:22:in `each'
/home/ruby/tst2/ruby/lib/pp.rb:23:in `block in pp': uninitialized constant Kernel::PP (NameError)
:foo1
```
------------------------------------------------------------------------
r60960 | yui-knk | 2017-12-01 18:48:17 +0900 (Fri, 01 Dec 2017) | 21 lines
parse.y: Fix a location of NODE_HASH
* parse.y: Fix to only include a range of assocs.
e.g. The locations of the NODE_HASH is fixed:
```
a(1, b: 10, &block)
```
* Before
```
NODE_HASH (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 18)
```
* After
```
NODE_HASH (line: 1, first_lineno: 1, first_column: 5, last_lineno: 1, last_column: 10)
```
------------------------------------------------------------------------
r60959 | mrkn | 2017-12-01 17:35:58 +0900 (Fri, 01 Dec 2017) | 3 lines
NEWS: Net::HTTP is a stdlib
[ci skip]
------------------------------------------------------------------------
r60958 | yui-knk | 2017-12-01 15:32:59 +0900 (Fri, 01 Dec 2017) | 21 lines
parse.y: Fix a location of hash keys
* parse.y: Use @1 to only include a range of tLABEL.
e.g. The locations of the NODE_LIT(:b) is fixed:
```
a(1, b: 10)
```
* Before
```
NODE_LIT (line: 1, first_lineno: 1, first_column: 5, last_lineno: 1, last_column: 10)
```
* After
```
NODE_LIT (line: 1, first_lineno: 1, first_column: 5, last_lineno: 1, last_column: 7)
```
------------------------------------------------------------------------
r60957 | usa | 2017-12-01 14:32:29 +0900 (Fri, 01 Dec 2017) | 5 lines
bold/underscore support in traceback before Windows10
* io.c (rb_write_error2): call `rb_w32_write_console()` when the device is tty,
like `rb_write_error_str()`.
------------------------------------------------------------------------
r60956 | hsbt | 2017-12-01 13:39:49 +0900 (Fri, 01 Dec 2017) | 1 line
Added repository url for default gems.
------------------------------------------------------------------------
r60955 | nobu | 2017-12-01 13:27:32 +0900 (Fri, 01 Dec 2017) | 1 line
prelude.c.tmpl: escape comments
------------------------------------------------------------------------
r60954 | hsbt | 2017-12-01 13:25:32 +0900 (Fri, 01 Dec 2017) | 1 line
Added bundler entry to documentation of library and maintainers.
------------------------------------------------------------------------
r60953 | nobu | 2017-12-01 12:54:50 +0900 (Fri, 01 Dec 2017) | 5 lines
prelude.c.tmpl: split prelude code
* template/prelude.c.tmpl: split prelude code into blocks so that
each elements do not exceed the string literal size limit in
C89.
------------------------------------------------------------------------
r60952 | nobu | 2017-12-01 12:54:49 +0900 (Fri, 01 Dec 2017) | 1 line
prelude.rb: suppress redefinition warnings
------------------------------------------------------------------------
r60951 | hsbt | 2017-12-01 10:52:26 +0900 (Fri, 01 Dec 2017) | 3 lines
Merge psych-3.0.0.
See NEWS file for this update details.
------------------------------------------------------------------------
r60950 | usa | 2017-12-01 10:29:50 +0900 (Fri, 01 Dec 2017) | 5 lines
revert r60873
* template/prelude.c.tmpl (translate): revert r60873 because when some errors or
warnings are shown their line numbers are shifted.
------------------------------------------------------------------------
r60949 | svn | 2017-12-01 09:41:18 +0900 (Fri, 01 Dec 2017) | 1 line
* 2017-12-01
------------------------------------------------------------------------
r60948 | mame | 2017-12-01 09:41:17 +0900 (Fri, 01 Dec 2017) | 1 line
lib/pp.rb (Kernel#pp): Fix a race condition
------------------------------------------------------------------------
r60945 | mame | 2017-11-30 11:12:42 +0900 (Thu, 30 Nov 2017) | 1 line
prelude.rb (Kernel#pp): Fix a delegation bug
------------------------------------------------------------------------
r60944 | mame | 2017-11-30 10:31:00 +0900 (Thu, 30 Nov 2017) | 3 lines
prelude.rb: Add Kernel#pp, a trigger for lib/pp.rb
[Feature #14123]
------------------------------------------------------------------------
r60943 | marcandre | 2017-11-30 04:46:46 +0900 (Thu, 30 Nov 2017) | 1 line
Cherrypick 9f8d3d0 from ruby/spec
------------------------------------------------------------------------
r60942 | marcandre | 2017-11-30 02:47:59 +0900 (Thu, 30 Nov 2017) | 1 line
Make Module#{define|alias|undef|remove}_method public [#14133]
------------------------------------------------------------------------
r60941 | svn | 2017-11-30 02:47:48 +0900 (Thu, 30 Nov 2017) | 1 line
* 2017-11-30
------------------------------------------------------------------------
r60940 | marcandre | 2017-11-30 02:47:47 +0900 (Thu, 30 Nov 2017) | 1 line
Make Module#attr{accessor|reader|writer|} public [#14132]
------------------------------------------------------------------------
r60939 | nobu | 2017-11-29 23:48:02 +0900 (Wed, 29 Nov 2017) | 1 line
configure.ac: fixed a typo [Feature #4052]
------------------------------------------------------------------------
r60938 | naruse | 2017-11-29 21:04:24 +0900 (Wed, 29 Nov 2017) | 1 line
Update information about Oniguruma/Onigmo [Bug #13818]
------------------------------------------------------------------------
r60937 | k0kubun | 2017-11-29 20:27:32 +0900 (Wed, 29 Nov 2017) | 9 lines
test_workspace.rb: prefer using skip
rather than ignoring test definition to know untestability when
executing test with `-v`.
Also this simplifies check using `MiniTest::Unit::Guard#windows?`.
This change is suggested by @MSP-Greg here:
https://github.com/ruby/ruby/commit/7128849c8c5fce8df450379db54136fd21fab6ad#commitcomment-25836745
------------------------------------------------------------------------
r60936 | sorah | 2017-11-29 20:16:14 +0900 (Wed, 29 Nov 2017) | 3 lines
Typo... the feature committed at r60935
[Feature #14140] [ruby-core:83963]
------------------------------------------------------------------------
r60935 | sorah | 2017-11-29 20:14:23 +0900 (Wed, 29 Nov 2017) | 6 lines
Log exception with bold and underline for TTYs
Print error message in bold/underlined text if STDERR is unchanged and a tty.
[Feature #14160] [experimental]
Screenshot: https://img.sorah.jp/s/2017-11-29_1711_xj2fu.png
------------------------------------------------------------------------
r60934 | nobu | 2017-11-29 19:38:36 +0900 (Wed, 29 Nov 2017) | 1 line
spec/ruby/optional/capi/constants_spec.rb: Data is deprecated now
------------------------------------------------------------------------
r60933 | nobu | 2017-11-29 18:59:20 +0900 (Wed, 29 Nov 2017) | 3 lines
file.c: File.lutime
* file.c (utime_internal): add File.lutime. [Feature #4052]
------------------------------------------------------------------------
r60932 | svn | 2017-11-29 17:39:48 +0900 (Wed, 29 Nov 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60931 | shugo | 2017-11-29 17:39:47 +0900 (Wed, 29 Nov 2017) | 5 lines
Unused module refinement shouldn't break method search.
Use rb_callable_method_entry_t::defined_class instead of
rb_callable_method_entry_t::owner, because the superclass of iclass
should be searched for modules. [ruby-core:83613] [Bug #14068]
------------------------------------------------------------------------
r60930 | nobu | 2017-11-29 17:23:16 +0900 (Wed, 29 Nov 2017) | 4 lines
object.c: deprecate Data
* object.c (InitVM_Object): Data is deprecated now.
[Feature #3072]
------------------------------------------------------------------------
r60929 | nobu | 2017-11-29 16:57:48 +0900 (Wed, 29 Nov 2017) | 6 lines
strscan.c: add MatchData-like methods
* ext/strscan/strscan.c: added `size`, `captures` and `values_at`
to StringScanner, shorthands of accessing the matched data.
based on the patch by apeiros (Stefan Rusterholz) at
[ruby-core:20412]. [Feature #836]
------------------------------------------------------------------------
r60928 | svn | 2017-11-29 07:30:29 +0900 (Wed, 29 Nov 2017) | 1 line
* 2017-11-29
------------------------------------------------------------------------
r60927 | hsbt | 2017-11-29 07:30:28 +0900 (Wed, 29 Nov 2017) | 3 lines
Merge rubygems-2.7.3.
http://blog.rubygems.org/2017/11/28/2.7.3-released.html
------------------------------------------------------------------------
r60926 | yui-knk | 2017-11-28 15:19:04 +0900 (Tue, 28 Nov 2017) | 1 line
Fix typos
------------------------------------------------------------------------
r60925 | normal | 2017-11-28 12:28:35 +0900 (Tue, 28 Nov 2017) | 23 lines
file: release GVL for access(2) syscalls
Like stat(2), the access(2) syscall may take an indeterminate
amount of time on slow/remote filesystems.
This lets the following methods release the GVL to avoid choking
the entire VM while one thread is stuck on a slow or
non-responsive filesystem:
- File.readable?
- File.readable_real?
- File.writable?
- File.writable_real?
- File.executable?
- File.executable_real?
* file.c (nogvl_eaccess): new function
(nogvl_access): ditto
(rb_access): new wrapper function
(rb_eaccess): release GVL
(rb_file_readable_real_p): use rb_access
(rb_file_writable_real_p): ditto
(rb_file_executable_real_p): ditto
------------------------------------------------------------------------
r60924 | svn | 2017-11-28 11:27:48 +0900 (Tue, 28 Nov 2017) | 1 line
* 2017-11-28
------------------------------------------------------------------------
r60923 | ko1 | 2017-11-28 11:27:47 +0900 (Tue, 28 Nov 2017) | 9 lines
check ruby_vm_event_flags everytime.
* vm_insnhelper.c (vm_trace): use EXEC_EVENT_HOOK() instead of
EXEC_EVENT_HOOK_VM_TRACE(). The latter macro assumes
`ruby_vm_event_flags` is constant in `vm_trace()` function,
but it can be changed in hook functions.
* vm_core.h (EXEC_EVENT_HOOK_VM_TRACE): removed.
------------------------------------------------------------------------
r60922 | hsbt | 2017-11-27 20:02:48 +0900 (Mon, 27 Nov 2017) | 1 line
Ignored obsoleted `bundle_ruby` command from upstream.
------------------------------------------------------------------------
r60921 | svn | 2017-11-27 19:45:27 +0900 (Mon, 27 Nov 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60920 | hsbt | 2017-11-27 19:45:24 +0900 (Mon, 27 Nov 2017) | 3 lines
Merge rdoc-6.0.0.beta4 from upstream.
It version applied `frozen_string_literal: true`
------------------------------------------------------------------------
r60919 | nobu | 2017-11-27 15:59:07 +0900 (Mon, 27 Nov 2017) | 4 lines
psych_parser.c: fix compile error
* ext/psych/psych_parser.c (parse): fix declarations after
statement, which cause compile error on mswin.
------------------------------------------------------------------------
r60918 | hsbt | 2017-11-27 14:38:48 +0900 (Mon, 27 Nov 2017) | 3 lines
Ignored `bundle_ruby` example with Ruby core.
It was ignored with Bundler-1.15.x. It's regression at r60603.
------------------------------------------------------------------------
r60917 | hsbt | 2017-11-27 12:11:18 +0900 (Mon, 27 Nov 2017) | 1 line
Merge psych-3.0.0.beta4 from upstream.
------------------------------------------------------------------------
r60916 | ko1 | 2017-11-27 11:11:36 +0900 (Mon, 27 Nov 2017) | 5 lines
Ignore failures related to threading.
* test/lib/tracepointchecker.rb: ignore "deletion trace" check
when there are threads other than the main thread.
------------------------------------------------------------------------
r60915 | ko1 | 2017-11-27 09:43:23 +0900 (Mon, 27 Nov 2017) | 7 lines
Relax `rb_bug()` condition.
* iseq.c (rb_iseq_trace_set): simply return immediately if
ISeq::compile_data is available. Not sure why this state
is allowed, but exception during compile (or `ISeq::load`)
can make such states.
------------------------------------------------------------------------
r60914 | yui-knk | 2017-11-27 08:52:47 +0900 (Mon, 27 Nov 2017) | 22 lines
parse.y: Fix the last location of NODE_KW_ARG
* parse.y (kwd_append): Update the last location of
NODE_KW_ARG when NODE is appended to the last.
e.g. The locations of the first NODE_KW_ARG is fixed:
```
def a(b: 1, c: 2); end
```
* Before
```
NODE_KW_ARG (line: 1, first_lineno: 1, first_column: 6, last_lineno: 1, last_column: 10)
```
* After
```
NODE_KW_ARG (line: 1, first_lineno: 1, first_column: 6, last_lineno: 1, last_column: 16)
```
------------------------------------------------------------------------
r60913 | svn | 2017-11-27 08:33:24 +0900 (Mon, 27 Nov 2017) | 1 line
* 2017-11-27
------------------------------------------------------------------------
r60912 | yui-knk | 2017-11-27 08:33:23 +0900 (Mon, 27 Nov 2017) | 22 lines
parse.y: Fix the last location of NODE_OPT_ARG
* parse.y (opt_arg_append): Update the last location of
NODE_OPT_ARG when NODE is appended to the last.
e.g. The locations of the first NODE_OPT_ARG is fixed:
```
def a(b = 1, c = 2); end
```
* Before
```
NODE_OPT_ARG (line: 1, first_lineno: 1, first_column: 6, last_lineno: 1, last_column: 11)
```
* After
```
NODE_OPT_ARG (line: 1, first_lineno: 1, first_column: 6, last_lineno: 1, last_column: 18)
```
------------------------------------------------------------------------
r60911 | rhe | 2017-11-26 19:33:32 +0900 (Sun, 26 Nov 2017) | 8 lines
openssl: sync with 2475d94517b4
Merge a commit from upstream:
01445af367ec test/test_ssl: prevent changing default internal encoding
OpenSSL::TestSSL#test_fallback_scsv could change the default internal
encoding accidentally, causing other unrelated test cases to fail.
------------------------------------------------------------------------
r60910 | nobu | 2017-11-26 11:11:24 +0900 (Sun, 26 Nov 2017) | 1 line
leakchecker.rb: no conversion
------------------------------------------------------------------------
r60909 | svn | 2017-11-26 10:36:34 +0900 (Sun, 26 Nov 2017) | 1 line
* 2017-11-26
------------------------------------------------------------------------
r60908 | nobu | 2017-11-26 10:36:33 +0900 (Sun, 26 Nov 2017) | 1 line
util.h: remove my_getcwd
------------------------------------------------------------------------
r60907 | rhe | 2017-11-25 23:12:08 +0900 (Sat, 25 Nov 2017) | 47 lines
openssl: import v2.1.0.beta2
Import Ruby/OpenSSL 2.1.0.beta2. The full commit log since commit
e72d960db262 which was imported by r60013 can be found at:
https://github.com/ruby/openssl/compare/e72d960db262...v2.1.0.beta2
----------------------------------------------------------------
Kazuki Yamaguchi (26):
bn: use ALLOCV() macro instead of xmalloc()
appveyor.yml: remove 'openssl version' line
test/test_ssl_session: skip tests for session_remove_cb
x509ext: implement X509::Extension#==
x509attr: implement X509::Attribute#==
x509cert: implement X509::Certificate#==
x509revoked: add missing X509::Revoked#to_der
x509crl, x509revoked: implement X509::{CRL,Revoked}#==
x509req: implement X509::Request#==
ssl: extract rb_intern("call")
cipher: disallow setting AAD for non-AEAD ciphers
test/test_cipher: fix test_non_aead_cipher_set_auth_data failure
ssl: fix conflict of options in SSLContext#set_params
buffering: let #write accept multiple arguments
pkey: make pkey_check_public_key() non-static
x509cert, x509crl, x509req, ns_spki: check sanity of public key
test/envutil: port assert_warning from Ruby trunk
test/utils: remove a pointless .public_key call in issue_cert
ssl: add SSLContext#add_certificate
test/test_ssl: fix test_security_level
Drop support for LibreSSL 2.4
kdf: add HKDF support
test/test_x509cert: fix flaky test
test/test_x509crl: fix random failure
History.md: fix a typo
Ruby/OpenSSL 2.1.0.beta2
Mark Wright (1):
Fix build failure against OpenSSL 1.1 built with no-deprecated Thanks rhenium for the code review and fixes.
Peter Karman (1):
Add RSA sign_pss() and verify_pss() methods
aeris (1):
TLS Fallback Signaling Cipher Suite Value
kazu (1):
Use caller with length to reduce unused strings
------------------------------------------------------------------------
r60906 | rhe | 2017-11-25 23:12:07 +0900 (Sat, 25 Nov 2017) | 3 lines
openssl: revert changes in SSLContext#{min,max}_version= in r60310
And adapt a net/http test to their old behavior. [ruby-core:83491]
------------------------------------------------------------------------
r60905 | yui-knk | 2017-11-25 20:57:33 +0900 (Sat, 25 Nov 2017) | 4 lines
parse.y: opt_arg_append
* parse.y (opt_arg_append): extract optional arguments
append.
------------------------------------------------------------------------
r60904 | svn | 2017-11-25 10:39:46 +0900 (Sat, 25 Nov 2017) | 1 line
* 2017-11-25
------------------------------------------------------------------------
r60903 | yui-knk | 2017-11-25 10:39:45 +0900 (Sat, 25 Nov 2017) | 26 lines
parse.y: Fix a location of assignable nodes
* parse.y (new_op_assign_gen): Update the location of
lhs when NODE_OP_ASGN_OR/NODE_OP_ASGN_AND are generated.
When NODE_OP_ASGN_OR/NODE_OP_ASGN_AND are generated
a nd_value of lhs is set, so it is needed to update
a location of lhs to include a location of rhs (same as
node_assign_gen).
e.g. The locations of NODE_DASGN_CURR is fixed:
```
a ||= 1
```
* Before
```
NODE_DASGN_CURR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 1)
```
* After
```
NODE_DASGN_CURR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 7)
```
------------------------------------------------------------------------
r60902 | yui-knk | 2017-11-24 22:08:21 +0900 (Fri, 24 Nov 2017) | 4 lines
node.h: Remove not used macros
* node.h (nd_modl, nd_clss_, nd_tval, nd_visi_): Remove
not used macros.
------------------------------------------------------------------------
r60901 | k0kubun | 2017-11-24 21:37:07 +0900 (Fri, 24 Nov 2017) | 11 lines
test_workspace.rb: skip test failing on windows
> Note that all files are always readable
> https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/chmod-wchmod
It seems that we can't make a file unreadable with `File.chmod` on
Windows.
When file can't be read, File::EACCES is raised on Windows too. So
r60900 should work anyway, but I don't know how to let it happen by
Ruby code. I tried to open file before reading it, but I couldn't
reproduce File::EACCES too.
------------------------------------------------------------------------
r60900 | kazu | 2017-11-24 20:00:10 +0900 (Fri, 24 Nov 2017) | 1 line
Fix TOCTTOU and avoid to read existing unreadable file
------------------------------------------------------------------------
r60899 | kazu | 2017-11-24 20:00:08 +0900 (Fri, 24 Nov 2017) | 1 line
Fix typos [ci skip]
------------------------------------------------------------------------
r60898 | nobu | 2017-11-24 14:46:55 +0900 (Fri, 24 Nov 2017) | 1 line
test/irb/test_workspace.rb: fix SCRIPT_LINES__
------------------------------------------------------------------------
r60897 | nobu | 2017-11-24 14:44:58 +0900 (Fri, 24 Nov 2017) | 1 line
workspace.rb: one more space
------------------------------------------------------------------------
r60896 | nobu | 2017-11-24 14:00:56 +0900 (Fri, 24 Nov 2017) | 6 lines
workspace.rb: fix SCRIPT_LINES__
* lib/irb/workspace.rb (code_around_binding): `SCRIPT_LINES__`
values are arrays of lines. get file and line at once. moved
loop-invariant format string. join without extra strings by
`$,`.
------------------------------------------------------------------------
r60895 | normal | 2017-11-24 13:49:05 +0900 (Fri, 24 Nov 2017) | 8 lines
file.c: simplify eaccess(3) callers
This will make future work to release GVL here simpler.
* file.c (rb_eaccess): new function
(rb_file_readable_p): use rb_eaccess
(rb_file_writable_p): ditto
(rb_file_executable_p): ditto
------------------------------------------------------------------------
r60894 | k0kubun | 2017-11-24 13:29:49 +0900 (Fri, 24 Nov 2017) | 3 lines
NEWS: note about r57274
fixed r60888 to have Feature number too.
------------------------------------------------------------------------
r60893 | nobu | 2017-11-24 13:26:29 +0900 (Fri, 24 Nov 2017) | 3 lines
parse.y: make_array
* parse.y (make_array): turn NULL node into zero length array.
------------------------------------------------------------------------
r60892 | nobu | 2017-11-24 13:26:27 +0900 (Fri, 24 Nov 2017) | 8 lines
parse.y: refactor list literals
* parse.y (words, symbols, qwords, qsymbols): unify empty list and
non-empty list.
* parse.y (parser_parse_string): always dispatch a word separator
at the beginning of list literals.
[ruby-core:83871] [Bug #14126]
------------------------------------------------------------------------
r60891 | nobu | 2017-11-24 13:26:23 +0900 (Fri, 24 Nov 2017) | 5 lines
test_parser_events.rb: results of list literals
* test/ripper/test_parser_events.rb (test_qwords_add),
(test_qsymbols_add, test_symbols_add, test_words_add): more
assertions for results of list literals.
------------------------------------------------------------------------
r60890 | svn | 2017-11-24 12:53:30 +0900 (Fri, 24 Nov 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60889 | svn | 2017-11-24 12:53:28 +0900 (Fri, 24 Nov 2017) | 1 line
* 2017-11-24
------------------------------------------------------------------------
r60888 | k0kubun | 2017-11-24 12:53:27 +0900 (Fri, 24 Nov 2017) | 3 lines
irb.rb: show source around binding.irb on start
[Feature #14124] [ruby-dev:50319] [close GH-1764]
------------------------------------------------------------------------
r60887 | yui-knk | 2017-11-23 23:15:27 +0900 (Thu, 23 Nov 2017) | 22 lines
parse.y: Fix a location of serial NODE_AND/NODE_OR
* parse.y (logop_gen): Update the last location of
NODE_AND/NODE_OR when NODE is appended to the last.
e.g. The locations of NODE_AND is fixed:
```
a && b && c
```
* Before
```
NODE_AND (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 6)
```
* After
```
NODE_AND (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 11)
```
------------------------------------------------------------------------
r60886 | k0kubun | 2017-11-23 23:04:24 +0900 (Thu, 23 Nov 2017) | 12 lines
.travis.yml: revert "workaround to resolve ::1"
This commit reverts r60736.
Shibata-san reported the cause of r60736 to Travis and it seems fixed:
https://github.com/travis-ci/travis-ci/issues/8780
In another CI, I found "::1 ip6-localhost ip6-loopback" in build
system information, unlike "::1 localhost ip6-localhost ip6-loopback"
that had failed in Ruby's CI on Travis.
Let's try Container-based environment again.
------------------------------------------------------------------------
r60885 | yui-knk | 2017-11-23 20:52:36 +0900 (Thu, 23 Nov 2017) | 4 lines
thread.c: Update documents
* thread.c (rb_default_coverage): Update documents of internal
data structures for branch coverage.
------------------------------------------------------------------------
r60884 | nobu | 2017-11-23 16:10:56 +0900 (Thu, 23 Nov 2017) | 4 lines
io.c: read BOM only for reading
* io.c (io_strip_bom): just abandon detecting UTF encoding by BOM
unless opened for reading.
------------------------------------------------------------------------
r60883 | nobu | 2017-11-23 13:30:23 +0900 (Thu, 23 Nov 2017) | 8 lines
ripper.y: fix word list events
* parse.y (parser_skip_words_sep): QWORDS_BEG should not include
the first separators in ripper.
* parse.y (parser_parse_string): WORDS_SEP should not include
the closing parentheses of a word list in ripper, should include
spaces at beginning of lines. [ruby-core:83864] [Bug #14126]
------------------------------------------------------------------------
r60882 | nobu | 2017-11-23 12:14:12 +0900 (Thu, 23 Nov 2017) | 1 line
debug.c: include RIMemo in ruby_dummy_gdb_enums
------------------------------------------------------------------------
r60881 | stomar | 2017-11-23 06:13:51 +0900 (Thu, 23 Nov 2017) | 1 line
lib/set.rb: [DOC] remove empty comments
------------------------------------------------------------------------
r60880 | svn | 2017-11-23 05:58:25 +0900 (Thu, 23 Nov 2017) | 1 line
* 2017-11-23
------------------------------------------------------------------------
r60879 | stomar | 2017-11-23 05:58:24 +0900 (Thu, 23 Nov 2017) | 5 lines
set.rb: improve docs for Set
* lib/set.rb: [DOC] add examples for Set#replace,
add examples for creating a set from a hash with duplicates,
simplify and fix style of some other examples, fix typos.
------------------------------------------------------------------------
r60878 | svn | 2017-11-22 21:32:42 +0900 (Wed, 22 Nov 2017) | 1 line
* 2017-11-22
------------------------------------------------------------------------
r60877 | yui-knk | 2017-11-22 21:32:41 +0900 (Wed, 22 Nov 2017) | 22 lines
parse.y: Fix the locations of NODE_BLOCK_PASS
* parse.y (arg_blk_pass): Update the first location of
NODE_BLOCK_PASS if nd_head is assigned.
e.g. The locations of NODE_BLOCK_PASS is fixed:
```
a(1, &:to_s)
```
* Before
```
NODE_BLOCK_PASS (line: 1, first_lineno: 1, first_column: 5, last_lineno: 1, last_column: 11)
```
* After
```
NODE_BLOCK_PASS (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 11)
```
------------------------------------------------------------------------
r60876 | kazu | 2017-11-21 21:29:52 +0900 (Tue, 21 Nov 2017) | 1 line
Fix a typo
------------------------------------------------------------------------
r60875 | kazu | 2017-11-21 21:29:51 +0900 (Tue, 21 Nov 2017) | 4 lines
Use `const void*` instead of `const char*`
Use cast from `char*` to `void*` instead of union in opendir_without_gvl,
because convert from `void*` to `char*` without union in nogvl_opendir.
------------------------------------------------------------------------
r60874 | nobu | 2017-11-21 20:15:51 +0900 (Tue, 21 Nov 2017) | 4 lines
vm_args.c: ec arg of args_setup_kw_parameters
* vm_args.c (args_setup_kw_parameters): use same ec as the caller.
make arguments order consistent with other functions.
------------------------------------------------------------------------
r60873 | usa | 2017-11-21 17:48:07 +0900 (Tue, 21 Nov 2017) | 5 lines
Skip comment lines
* template/prelude.c.tmpl (translate): empty (only LF) lines are not necessary.
so skip them, but for safety only when they are made from comment line.
------------------------------------------------------------------------
r60872 | nobu | 2017-11-21 14:01:28 +0900 (Tue, 21 Nov 2017) | 6 lines
fix test_erb.rb [GH-1763]
* test/erb/test_erb.rb (test_run): require stringio. suppress an
unused variable warning.
From: MSP-Greg <MSP-Greg@users.noreply.github.com>
------------------------------------------------------------------------
r60871 | ko1 | 2017-11-21 11:57:01 +0900 (Tue, 21 Nov 2017) | 5 lines
check invariant.
* iseq.c (rb_iseq_trace_set): at this point ISEQ_USE_COMPILE_DATA
should not be set.
------------------------------------------------------------------------
r60870 | eregon | 2017-11-21 09:56:09 +0900 (Tue, 21 Nov 2017) | 1 line
test/ruby/bug-13526.rb: should wait until all threads are stopped
------------------------------------------------------------------------
r60869 | yui-knk | 2017-11-21 09:47:00 +0900 (Tue, 21 Nov 2017) | 26 lines
parse.y: Fix the locations of NODE in percent strings
* parse.y (parser_yylex): token_flush before
calling parse_string. Without token_flush
the first locations of NODE in percent strings
are set to the location of %.
e.g. The locations of NODE_STR is fixed:
```
%w[a b]
```
* Before
```
NODE_STR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 4) ("a")
NODE_STR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 6) ("b")
```
* After
```
NODE_STR (line: 1, first_lineno: 1, first_column: 3, last_lineno: 1, last_column: 4) ("a")
NODE_STR (line: 1, first_lineno: 1, first_column: 5, last_lineno: 1, last_column: 6) ("b")
```
------------------------------------------------------------------------
r60868 | yui-knk | 2017-11-21 08:58:42 +0900 (Tue, 21 Nov 2017) | 21 lines
parse.y: Fix the last location of NODE_STR in %w
* parse.y: Use @2 to only include a range of tSTRING_CONTENT.
e.g. The locations of NODE_STR is fixed:
```
%w[a]
```
* Before
```
NODE_STR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 5)
```
* After
```
NODE_STR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 4)
```
------------------------------------------------------------------------
r60867 | yui-knk | 2017-11-21 08:37:01 +0900 (Tue, 21 Nov 2017) | 23 lines
parse.y: Set the last location of NODE_ARRAY in %w
* parse.y: list_append uses the locations
of the second argument. So we should set the
locations of $2 before pass it to list_append.
e.g. The locations of NODE_ARRAY is fixed:
```
%w[a b]
```
* Before
```
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 0, last_lineno: 0, last_column: -1)
```
* After
```
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 7)
```
------------------------------------------------------------------------
r60866 | yui-knk | 2017-11-21 08:12:43 +0900 (Tue, 21 Nov 2017) | 21 lines
parse.y: Fix the last location of NODE_LIT in %i
* parse.y: Use @2 to not include a range of ' '.
e.g. The locations of NODE_LIT is fixed:
```
%i[a]
```
* Before
```
NODE_LIT (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 5)
```
* After
```
NODE_LIT (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 4)
```
------------------------------------------------------------------------
r60865 | svn | 2017-11-21 07:48:06 +0900 (Tue, 21 Nov 2017) | 1 line
* 2017-11-21
------------------------------------------------------------------------
r60864 | yui-knk | 2017-11-21 07:48:05 +0900 (Tue, 21 Nov 2017) | 23 lines
parse.y: Set the last location of NODE_ARRAY in %i
* parse.y: list_append uses the locations
of the second argument. So we should set the
locations of $2 before pass it to list_append.
e.g. The locations of NODE_ARRAY is fixed:
```
%i[a b]
```
* Before
```
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 0, last_lineno: 0, last_column: -1)
```
* After
```
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 7)
```
------------------------------------------------------------------------
r60863 | kazu | 2017-11-20 21:57:08 +0900 (Mon, 20 Nov 2017) | 1 line
[DOC] Fix example result [ci skip]
------------------------------------------------------------------------
r60862 | yui-knk | 2017-11-20 15:00:04 +0900 (Mon, 20 Nov 2017) | 22 lines
parse.y: Fix the locations of NODE_FCALL
* parse.y: Update the locations of NODE_FCALL
when nd_args is determined.
e.g. The locations of NODE_FCALL is fixed:
```
a 1
```
* Before
```
NODE_FCALL (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 1)
```
* After
```
NODE_FCALL (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 3)
```
------------------------------------------------------------------------
r60861 | normal | 2017-11-20 11:29:35 +0900 (Mon, 20 Nov 2017) | 8 lines
File.mkfifo releases GVL
mkfifo(3) is subject to the same problems as open(2) on slow
filesystems. Release the GVL and let the rest of the VM run
while we call mkfifo.
* file.c (nogvl_mkfifo): new function
(rb_file_s_mkfifo): release GVL
------------------------------------------------------------------------
r60860 | marcandre | 2017-11-20 11:18:43 +0900 (Mon, 20 Nov 2017) | 3 lines
lib/matrix: Add hadamard_product/entrywise_product.
Based on a patch by Charley Hutchison. [GH-674]
------------------------------------------------------------------------
r60859 | marcandre | 2017-11-20 11:18:34 +0900 (Mon, 20 Nov 2017) | 1 line
lib/matrix: Add Matrix{.|#}combine
------------------------------------------------------------------------
r60858 | marcandre | 2017-11-20 11:18:23 +0900 (Mon, 20 Nov 2017) | 1 line
lib/matrix: accept vectors in {h|v}stack
------------------------------------------------------------------------
r60857 | marcandre | 2017-11-20 11:18:12 +0900 (Mon, 20 Nov 2017) | 1 line
lib/matrix: Add explicit coercion #to_matrix
------------------------------------------------------------------------
r60856 | nobu | 2017-11-20 10:17:43 +0900 (Mon, 20 Nov 2017) | 10 lines
win32.c: vm_exit_handler
* win32/win32.c (vm_exit_handler): separate exit handler for
resources which must be released at exit of Ruby VM.
* win32/win32.c (socklist_insert, constat_handle): install the VM
exit handler.
* gc.c (ENABLE_VM_OBJSPACE): no longer needs process global object
space on Windows too.
------------------------------------------------------------------------
r60855 | yui-knk | 2017-11-20 08:59:32 +0900 (Mon, 20 Nov 2017) | 22 lines
Update the last location of NODE_BLOCK
* parse.y (block_append_gen): Update the last
location of NODE_BLOCK when a tail is appended.
e.g. The locations of NODE_BLOCK is fixed:
```
a; b; c
```
* Before
```
NODE_BLOCK (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 4)
```
* After
```
NODE_BLOCK (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 7)
```
------------------------------------------------------------------------
r60854 | eregon | 2017-11-20 00:15:49 +0900 (Mon, 20 Nov 2017) | 4 lines
test/ruby/bug-13526.rb: Fix to actually refer to an existing file
* Add Thread.report_on_exception=true to catch problems early.
* Increase the number of Thread.pass to let the autoload start.
------------------------------------------------------------------------
r60853 | svn | 2017-11-20 00:15:32 +0900 (Mon, 20 Nov 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60852 | svn | 2017-11-20 00:15:32 +0900 (Mon, 20 Nov 2017) | 1 line
* append newline at EOF.
------------------------------------------------------------------------
r60851 | eregon | 2017-11-20 00:15:31 +0900 (Mon, 20 Nov 2017) | 3 lines
Add specs for concurrent Module#autoload
* When the file does not exist or the constant is not set.
------------------------------------------------------------------------
r60850 | svn | 2017-11-20 00:15:13 +0900 (Mon, 20 Nov 2017) | 1 line
* 2017-11-20
------------------------------------------------------------------------
r60849 | eregon | 2017-11-20 00:15:12 +0900 (Mon, 20 Nov 2017) | 1 line
Reorganize Module#autoload to have similar specs next to each other
------------------------------------------------------------------------
r60848 | nobu | 2017-11-19 16:07:42 +0900 (Sun, 19 Nov 2017) | 1 line
gc.c: moved ENABLE_VM_OBJSPACE from vm_core.h
------------------------------------------------------------------------
r60847 | normal | 2017-11-19 14:23:48 +0900 (Sun, 19 Nov 2017) | 7 lines
file.c (rb_file_s_mkfifo): use mode_t instead of int
mode_t is the correct type for mkfifo(3). This fixes an
oversight from r60592 which made the same change to several
other functions.
* file.c (rb_file_s_mkfifo): use mode_t instead of int
------------------------------------------------------------------------
r60846 | normal | 2017-11-19 14:03:22 +0900 (Sun, 19 Nov 2017) | 4 lines
file.c: fix 64-bit conversion warnings from r60844
* file.c (nogvl_truncate): cast int to VALUE before "void *"
(rb_file_s_truncate): cast "void *" to VALUE before int
------------------------------------------------------------------------
r60845 | normal | 2017-11-19 14:03:17 +0900 (Sun, 19 Nov 2017) | 9 lines
File.readlink and rb_readlink releases GVL
The `readlink' can stall on slow filesystems like `open' and
`read' syscalls. Release the GVL and let the rest of the VM
function while `readlink' runs.
* file.c (nogvl_readlink): new function
(readlink_without_gvl): ditto
(rb_readlink): use readlink_without_gvl
------------------------------------------------------------------------
r60844 | normal | 2017-11-19 07:45:11 +0900 (Sun, 19 Nov 2017) | 10 lines
file: File#truncate and File.truncate release GVL
Like IO#write and IO.open, these file operations have
unpredictable performance on slow file systems. Allow other
threads of the VM to proceed while they are taking place.
* file.c (nogvl_truncate): extract from rb_file_s_truncate
(rb_file_s_truncate): release GVL
(nogvl_ftruncate): extract from rb_file_truncate
(rb_file_truncate): release GVL
------------------------------------------------------------------------
r60843 | normal | 2017-11-19 06:57:38 +0900 (Sun, 19 Nov 2017) | 8 lines
addr2line.c: fix r60841 for glibc before 2.22
SHF_COMPRESSED was not defined until glibc 2.22, and there are
older distros (e.g. Debian 8.x jessie) which do not have this
defined.
Perhaps it is safe to define SHF_COMPRESSED to (1 << 11) ourselves,
too, since ELF should be a standardized format.
------------------------------------------------------------------------
r60842 | svn | 2017-11-19 03:05:40 +0900 (Sun, 19 Nov 2017) | 1 line
* 2017-11-19
------------------------------------------------------------------------
r60841 | naruse | 2017-11-19 03:05:39 +0900 (Sun, 19 Nov 2017) | 5 lines
explictly skip compressed debug line
To identify the line of backtrace with ease, show the offset address of library.
You can just find the source filename and the line with
`addr2line -e libruby.so.2.5.0 0xXXXX`
------------------------------------------------------------------------
r60840 | yui-knk | 2017-11-18 22:11:36 +0900 (Sat, 18 Nov 2017) | 22 lines
parse.y: Fix the locations of NODE_ITER
* parse.y: Update the locations of NODE_ITER
when nd_iter is determined.
e.g. The locations of NODE_ITER is fixed:
```
a {b}
```
* Before
```
NODE_ITER (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 5)
```
* After
```
NODE_ITER (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 5)
```
------------------------------------------------------------------------
r60839 | ko1 | 2017-11-18 22:01:12 +0900 (Sat, 18 Nov 2017) | 5 lines
call only with ISEQ_TRACE_EVENTS.
* vm_insnhelper.c (vm_trace): rb_iseq_trace_set() only accepts
ISEQ_TRACE_EVENTS.
------------------------------------------------------------------------
r60838 | ko1 | 2017-11-18 18:39:41 +0900 (Sat, 18 Nov 2017) | 18 lines
introduce `trace_events' info for iseq.
* vm_core.h (rb_iseq_t::aux): add `trace_events` which represents
which events are enabled on this iseq. With this information,
we can skip useless trace-on changes for ISeqs.
* vm_trace.c (RUBY_EVENTS_TRACE_BY_ISEQ): moved to iseq.h and rename it
with ISEQ_TRACE_EVENTS.
* iseq.h: introduce ISEQ_USE_COMPILE_DATA iseq (imemo) flag to represent
COMPILE_DATA is available. In other words, iseq->aux.trace_events is not
available when this flag is set.
* ISEQ_COMPILE_DATA() is changed from a macro.
* ISEQ_COMPILE_DATA_ALLOC() is added.
* ISEQ_COMPILE_DATA_CLEAR() is added.
* iseq.c: use them.
------------------------------------------------------------------------
r60837 | usa | 2017-11-18 17:25:29 +0900 (Sat, 18 Nov 2017) | 6 lines
Cannot call rb_thread_call_with{out,}_gvl before running VM
* dir.c (opendir_without_gvl, with_gvl_gc_for_fd, opendir_at): check the VM is
already initialized before calling rb_thread_call_with{out,}_gvl().
[Bug #14115]
------------------------------------------------------------------------
r60836 | yui-knk | 2017-11-18 17:21:46 +0900 (Sat, 18 Nov 2017) | 22 lines
parse.y: Fix the locations of NODE_DVAR and NODE_LVAR
* parse.y: Fix the locations of NODE_DVAR and NODE_LVAR
when it's a multiple assignment method parameter.
e.g. The locations of NODE_DVAR is fixed:
```
a {|(b, c)| d}
```
* Before
```
NODE_DVAR (line: 1, first_lineno: 1, first_column: 4, last_lineno: 1, last_column: 10)
```
* After
```
NODE_DVAR (line: 1, first_lineno: 1, first_column: 5, last_lineno: 1, last_column: 9)
```
------------------------------------------------------------------------
r60835 | ktsj | 2017-11-18 15:24:52 +0900 (Sat, 18 Nov 2017) | 3 lines
.gdbinit: fix print_pathobj
$str is not C string but RString.
------------------------------------------------------------------------
r60834 | ktsj | 2017-11-18 14:45:21 +0900 (Sat, 18 Nov 2017) | 4 lines
.gdbinit: follow up changes in r60726
rb_iseq_constant_body::line_info_size and line_info_table have
been renamed to insns_info_size, insns_info.
------------------------------------------------------------------------
r60833 | yui-knk | 2017-11-18 12:32:05 +0900 (Sat, 18 Nov 2017) | 1 line
parse.y: Use node_assign
------------------------------------------------------------------------
r60832 | suke | 2017-11-18 11:53:39 +0900 (Sat, 18 Nov 2017) | 4 lines
* ext/win32ole/win32ole.c: use WIN32OLEQueryInterfaceError when failed
to query com interface.
* ext/win32ole/win32ole_event.c: ditto.
* ext/win32ole/win32ole_method.c: ditto.
------------------------------------------------------------------------
r60831 | normal | 2017-11-18 11:01:49 +0900 (Sat, 18 Nov 2017) | 12 lines
dir.c: openat calls release GVL, too
openat(2) also performs a path lookup, so it is also subject
to pathological slowdowns like opendir(3) and open(2) syscalls.
* dir.c (struct opendir_at_arg): new struct for callback
(with_gvl_gc_for_fd): new callback for rb_thread_call_with_gvl
(gc_for_fd_with_gvl): moved up
(nogvl_opendir_at): extracted from do_opendir
(opendir_at): new wrapper to release GVL for opendir_at
(do_opendir): use new wrappers to release GVL
(nogvl_dir_empty_p): adjust for gc_for_fd_with_gvl
------------------------------------------------------------------------
r60830 | normal | 2017-11-18 11:01:44 +0900 (Sat, 18 Nov 2017) | 10 lines
dir: release GVL on opendir
opendir(3) is subject to the same pathological slowdowns on
slow or unreliable filesystems as open(2), so release the GVL
to avoid stalling the entire VM like we do with IO#open
* dir.c (nogvl_opendir): new function
(opendir_without_gvl): new function
(dir_initialize): s/opendir/&_without_gvl/
(do_opendir): ditto
------------------------------------------------------------------------
r60829 | yui-knk | 2017-11-18 10:40:13 +0900 (Sat, 18 Nov 2017) | 23 lines
Update the last location of NODE_ARRAY
* parse.y (list_append_gen, list_concat): Update
the last location of NODE_ARRAY when an item is
appended or concatenated with another NODE_ARRAY.
e.g. The locations of NODE_ARRAY is fixed:
```
a(1,2,3)
```
* Before
```
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 3)
```
* After
```
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 7)
```
------------------------------------------------------------------------
r60828 | svn | 2017-11-18 00:08:04 +0900 (Sat, 18 Nov 2017) | 1 line
* 2017-11-18
------------------------------------------------------------------------
r60827 | kazu | 2017-11-18 00:08:03 +0900 (Sat, 18 Nov 2017) | 5 lines
Fix typo in `Timeout` doc [ci skip]
Author: yuuji.yaginuma <yuuji.yaginuma@gmail.com>
https://github.com/ruby/ruby/pull/1760
[Fix GH-1760]
------------------------------------------------------------------------
r60826 | nobu | 2017-11-17 21:16:31 +0900 (Fri, 17 Nov 2017) | 1 line
parse.y: RUBY_SET_YYLLOC to rb_parser_set_location
------------------------------------------------------------------------
r60825 | nobu | 2017-11-17 21:16:30 +0900 (Fri, 17 Nov 2017) | 6 lines
parse.y: RUBY_SET_YYLLOC
* parse.y (RUBY_SET_YYLLOC): extract setting locations from the
source line.
* parse.y (yylex): use RUBY_SET_YYLLOC.
------------------------------------------------------------------------
r60824 | knu | 2017-11-17 18:48:47 +0900 (Fri, 17 Nov 2017) | 4 lines
Add examples to Set documentation [ci skip]
GitHub PR: https://github.com/ruby/ruby/pull/1752 [Fix GH-1752]
Submitted by: @Ana06 <anamma06@gmail.com>
------------------------------------------------------------------------
r60823 | yui-knk | 2017-11-17 17:23:06 +0900 (Fri, 17 Nov 2017) | 5 lines
NODE_CALL is not passed to node_assign_gen
* parse.y (node_assign_gen): NODE_CALL is not passed to
node_assign_gen. NODE_CALL is not assignable. Assignable
method call (array set and attr set) is represented by NODE_ATTRASGN.
------------------------------------------------------------------------
r60822 | ko1 | 2017-11-17 16:47:03 +0900 (Fri, 17 Nov 2017) | 4 lines
don't use `goto`.
* vm_trace.c (rb_exec_event_hooks): we don't need to use goto statement.
------------------------------------------------------------------------
r60821 | yui-knk | 2017-11-17 16:39:15 +0900 (Fri, 17 Nov 2017) | 24 lines
Fix location of assignable nodes
* parse.y (node_assign_gen): NODE_ATTRASGN is created
before rhs is created. It is needed to set location
after rhs is created to rhs range be included to the
location of NODE_ATTRASGN.
e.g. The locations of NODE_ATTRASGN is fixed:
```
a[1] = 2
```
* Before
```
NODE_ATTRASGN (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 4)
```
* After
```
NODE_ATTRASGN (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 8)
```
------------------------------------------------------------------------
r60820 | ko1 | 2017-11-17 16:29:07 +0900 (Fri, 17 Nov 2017) | 6 lines
remove a wrong assertion.
* iseq.c (rb_iseq_trace_set): remove a wrong assertion.
This assertion checked `insn` is `trace_` prefix instruction
but threaded code `insn` is original code.
------------------------------------------------------------------------
r60819 | ko1 | 2017-11-17 15:59:22 +0900 (Fri, 17 Nov 2017) | 7 lines
reuse gvar value.
* vm_core.h (EXEC_EVENT_HOOK_VM_TRACE): added to pass vm_event_flags
(== ruby_vm_event_flags) as a macro parameter.
* vm_insnhelper.c (vm_trace): use an added macro.
------------------------------------------------------------------------
r60818 | svn | 2017-11-17 15:24:56 +0900 (Fri, 17 Nov 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60817 | ko1 | 2017-11-17 15:24:55 +0900 (Fri, 17 Nov 2017) | 10 lines
remove `trace_` prefix insns lazily.
* vm_trace.c (update_global_event_hook): set only when tracing is added.
If tracing was off (event flags are decreased), then ignore them.
Next `trace_` prefix instruction will trace off itself (lazy tracing off).
* vm_insnhelper.c (vm_trace): trace-off for when trace is not needed.
* iseq.c (rb_iseq_trace_set): fix trace-off process (it was never off tracing).
------------------------------------------------------------------------
r60816 | yui-knk | 2017-11-17 13:25:48 +0900 (Fri, 17 Nov 2017) | 24 lines
Fix location of assignable nodes
* parse.y (node_assign_gen): In some case assignable nodes
are created before rhs is created. In this case it is
needed to set location after rhs is shifted to
rhs range be included to assignable nodes.
e.g. The locations of NODE_DASGN_CURR is fixed:
```
a = 10
```
* Before
```
NODE_DASGN_CURR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 1)
```
* After
```
NODE_DASGN_CURR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 6)
```
------------------------------------------------------------------------
r60815 | svn | 2017-11-17 08:13:25 +0900 (Fri, 17 Nov 2017) | 1 line
* 2017-11-17
------------------------------------------------------------------------
r60814 | yui-knk | 2017-11-17 08:13:24 +0900 (Fri, 17 Nov 2017) | 27 lines
Fix location of NODEs generated by new_op_assign_gen
* parse.y (new_op_assign_gen): Use a location of lhs
when call gettable, bacause gettable creates a variable
node. Use a location of rhs when call new_list,
because item of new_list is rhs.
The locations of NODE_DVAR(nd_vid: :a) and NODE_ARRAY
are fixed:
```
a -= 1
```
* Before
```
NODE_DVAR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 6)
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 6)
```
* After
```
NODE_DVAR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 1)
NODE_ARRAY (line: 1, first_lineno: 1, first_column: 5, last_lineno: 1, last_column: 6)
```
------------------------------------------------------------------------
r60813 | usa | 2017-11-16 21:26:04 +0900 (Thu, 16 Nov 2017) | 6 lines
Old gem file had not been removed
* common.mk (update-gems): `old.delete("gems/#{gem}")` always returns nil
because when really downloading new gem, the filename is not in `old`.
the real intention of this condition might be checking `old` is empty or not.
------------------------------------------------------------------------
r60812 | mame | 2017-11-16 20:03:37 +0900 (Thu, 16 Nov 2017) | 1 line
Refactoring out the direct accesses of NODE's u1, u2, and u3
------------------------------------------------------------------------
r60811 | k0kubun | 2017-11-16 19:02:03 +0900 (Thu, 16 Nov 2017) | 12 lines
thread_win32.c: stop returning unused value
to unify signature with pthread's one
I'm planning to use functions for rb_nativethread_cond_t and
rb_nativethread_mutex_t in the future JIT introduction.
In that case, I want them to have the same signature. To prevent the case
that its return value is used in somewhere and it becomes harder to unify
signature, I want to drop unused return value.
[close GH-1751]
------------------------------------------------------------------------
r60810 | ko1 | 2017-11-16 18:24:48 +0900 (Thu, 16 Nov 2017) | 5 lines
remove an unused function.
* eval.c (rb_iterator_p): removed because nobody use it
and not exposed by headers.
------------------------------------------------------------------------
r60809 | ko1 | 2017-11-16 18:00:15 +0900 (Thu, 16 Nov 2017) | 5 lines
make a func static.
* vm_backtrace.c (rb_ec_backtrace_location_ary): make it static and
remove `rb_` prefix.
------------------------------------------------------------------------
r60808 | ko1 | 2017-11-16 17:53:49 +0900 (Thu, 16 Nov 2017) | 4 lines
make a func static.
* vm_method.c (rb_resolve_refined_method_callable): make it static.
------------------------------------------------------------------------
r60807 | ko1 | 2017-11-16 17:48:59 +0900 (Thu, 16 Nov 2017) | 7 lines
make funcs static.
* thread.c (rb_threadptr_trap_interrupt): make it static
and remove `rb_` prefix.
* thread.c (rb_threadptr_pending_interrupt_active_p): ditto.
------------------------------------------------------------------------
r60806 | ko1 | 2017-11-16 17:19:46 +0900 (Thu, 16 Nov 2017) | 6 lines
make funcs static.
* node.c: make them static:
* rb_node_buffer_new
* rb_node_buffer_free
------------------------------------------------------------------------
r60805 | ko1 | 2017-11-16 17:01:26 +0900 (Thu, 16 Nov 2017) | 4 lines
make a func static.
* addr2line.c (main_exe_path): make it static.
------------------------------------------------------------------------
r60804 | ko1 | 2017-11-16 16:56:56 +0900 (Thu, 16 Nov 2017) | 4 lines
remove unused func.
* gc.c (rb_garbage_collect): removed.
------------------------------------------------------------------------
r60803 | ko1 | 2017-11-16 16:49:43 +0900 (Thu, 16 Nov 2017) | 4 lines
make a func static.
* vm_eval.c (rb_f_block_given_p): make it static.
------------------------------------------------------------------------
r60802 | ko1 | 2017-11-16 16:47:33 +0900 (Thu, 16 Nov 2017) | 4 lines
make a func static.
* vm_eval.c (rb_f_public_send): make it static.
------------------------------------------------------------------------
r60801 | ko1 | 2017-11-16 16:46:05 +0900 (Thu, 16 Nov 2017) | 4 lines
remove unused function.
* vm_method.c (rb_method_entry_with_refinements): removed.
------------------------------------------------------------------------
r60800 | ko1 | 2017-11-16 16:43:27 +0900 (Thu, 16 Nov 2017) | 5 lines
make a func static.
* vm.c (rb_proc_create_from_captured): make this func static and renmae
with vm_ prefix.
------------------------------------------------------------------------
r60799 | ko1 | 2017-11-16 16:41:33 +0900 (Thu, 16 Nov 2017) | 4 lines
export rb_tracearg_callee_id().
* include/ruby/debug.h (rb_tracearg_callee_id): export.
------------------------------------------------------------------------
r60798 | ko1 | 2017-11-16 16:38:41 +0900 (Thu, 16 Nov 2017) | 5 lines
make a func static.
* vm_eval.c (rb_raise_method_missing): make this func static and renmae with
vm_ prefix.
------------------------------------------------------------------------
r60797 | ko1 | 2017-11-16 16:28:16 +0900 (Thu, 16 Nov 2017) | 4 lines
make it static.
* vm.c (rb_thread_mark): now file local.
------------------------------------------------------------------------
r60796 | ko1 | 2017-11-16 16:25:30 +0900 (Thu, 16 Nov 2017) | 9 lines
provide rb_vm_make_proc/lambda().
* vm.c (rb_vm_make_proc): removed.
* vm_core.h: provide utility inline functions
* rb_vm_make_proc()
* rb_vm_make_lambda()
to call rb_vm_make_proc_lambda().
------------------------------------------------------------------------
r60795 | ko1 | 2017-11-16 16:14:45 +0900 (Thu, 16 Nov 2017) | 4 lines
remove unused function.
* vm_insnhelper.c (rb_vm_env_write): remove unused function.
------------------------------------------------------------------------
r60794 | ko1 | 2017-11-16 15:10:31 +0900 (Thu, 16 Nov 2017) | 4 lines
accepts `ec` as first parameter.
* vm_insnhelper.c (vm_check_match): accepts `ec` as first parameter.
------------------------------------------------------------------------
r60793 | ko1 | 2017-11-16 14:56:21 +0900 (Thu, 16 Nov 2017) | 4 lines
fix r60792.
* error.c (warning_string): `file` is already cstr.
------------------------------------------------------------------------
r60792 | ko1 | 2017-11-16 14:52:19 +0900 (Thu, 16 Nov 2017) | 7 lines
`rb_source_loc` -> `rb_source_location_cstr`
* vm.c (rb_source_loc): rename to rb_source_location_cstr()
to make behavior clear compare with rb_source_location().
* error.c (warning_string): use rb_source_location_cstr() directly.
------------------------------------------------------------------------
r60791 | ko1 | 2017-11-16 14:45:44 +0900 (Thu, 16 Nov 2017) | 4 lines
fix r60789.
* vm.c (rb_source_loc): fix condition.
------------------------------------------------------------------------
r60790 | nobu | 2017-11-16 14:36:42 +0900 (Thu, 16 Nov 2017) | 4 lines
parse.y: no return in class
* parse.y (k_return): prohibit return in class/module body except
for singleton class.
------------------------------------------------------------------------
r60789 | ko1 | 2017-11-16 14:35:58 +0900 (Thu, 16 Nov 2017) | 4 lines
rb_source_location() may return nil.
* vm.c (rb_source_location): return nil if path is not found.
------------------------------------------------------------------------
r60788 | ko1 | 2017-11-16 14:18:29 +0900 (Thu, 16 Nov 2017) | 4 lines
remove an unused function.
* vm.c (rb_sourcefilename): removed because nobody use it.
------------------------------------------------------------------------
r60787 | ko1 | 2017-11-16 14:14:18 +0900 (Thu, 16 Nov 2017) | 6 lines
add `ec` as first parameter.
* vm.c (vm_svar_get): accepts `ec` as first parameter.
* vm.c (vm_svar_set): ditto.
------------------------------------------------------------------------
r60786 | ko1 | 2017-11-16 13:37:02 +0900 (Thu, 16 Nov 2017) | 4 lines
fix up r60782 and r60783.
* cont.c (cont_restore_thread): re-check a condition (pointed by nobu).
------------------------------------------------------------------------
r60785 | yui-knk | 2017-11-16 12:36:20 +0900 (Thu, 16 Nov 2017) | 12 lines
Add a last location to branch coverage
* compile.c (DECL_BRANCH_BASE, ADD_TRACE_BRANCH_COVERAGE): Add
a last location to arguments.
* compile.c (compile_if, compile_case, compile_case2, compile_loop, iseq_compile_each0):
Pass a last location to macros.
* ext/coverage/coverage.c (branch_coverage): Add a last location to
a return value.
* test/coverage/test_coverage.rb: Follow-up these changes.
------------------------------------------------------------------------
r60784 | kazu | 2017-11-16 12:32:23 +0900 (Thu, 16 Nov 2017) | 4 lines
Regexp#===: Use `\A` and `\z` instead of `^` and `$`
[ci skip]
ref https://github.com/rurema/doctree/pull/812
------------------------------------------------------------------------
r60783 | ko1 | 2017-11-16 11:53:17 +0900 (Thu, 16 Nov 2017) | 4 lines
avoid duplicated-cond compile error.
* cont.c (cont_restore_thread): fix duplicated-cond compile error.
------------------------------------------------------------------------
r60782 | ko1 | 2017-11-16 11:47:58 +0900 (Thu, 16 Nov 2017) | 17 lines
cleanup hook cleanup code.
* vm_trace.c: before this patch, deleted hooks are remvoed at
*the beggining* of hooks (exec_hooks_precheck).
This patch cleanup deleted hooks at
(1) just after hook is deleted (TracePoint#disable and so on)
(2) just after executing hooks (exec_hooks_postcheck)
Most of time (1) is enough, but if some threads running hooks,
we need to wait cleaning up deleted hooks until threads finish
running the hooks. This is why (2) is introduced (and this is
why current impl cleanup deleted hooks at the beggining of hooks).
* test/lib/tracepointchecker.rb: check also the number of delete
waiting hooks.
* cont.c (cont_restore_thread): fix VM->trace_running count.
------------------------------------------------------------------------
r60781 | yui-knk | 2017-11-16 10:56:54 +0900 (Thu, 16 Nov 2017) | 24 lines
parse.y: Fix location of asgn node
* parse.y (new_op_assign_gen): Fix location of asgn node.
Assignable node (e.g. NODE_LASGN) is generated before rhs
is generated, so we reset the location when nd_value of
asgn is fixed.
e.g. :
```
a -= 10
```
* Before
```
NODE_DASGN_CURR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 1)
```
* After
```
NODE_DASGN_CURR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 7)
```
------------------------------------------------------------------------
r60780 | yui-knk | 2017-11-16 10:06:10 +0900 (Thu, 16 Nov 2017) | 39 lines
parse.y: Preserve previous line and restore it when read '\n'
* parse.y (parser_params): Add prevline to store previous line.
* parse.y (yycompile0): Initialize prevline with 0.
* parse.y (parser_nextline): Store previous line on prevline.
* parse.y (parser_nextc): Check parser is on EOF or has nextline.
Now parser_yylex does not always set lex_p as lex_pend, we should check
EOF flag and nextline is set.
* parse.y (parser_yylex): Restore previous line, set lex_p and tokp
on '\n'. Before this commit, tokp is on the head of next line of '\n'
and lex_p is on the tail of next line when next token is '\n'.
By this behavior, in some case the last column of NODE_CALL (or NODE_QCALL) is
set to the last column of next line. NODE_CALL can be generated
via `primary_value call_op operation2 {} opt_paren_args` and opt_paren_args
can be none. If none is generated with next token '\n', the last column of
none is set to the last column of next line.
e.g. :
```
a.b
cd.ef
```
The location of NODE_CALL of first line is set to,
* Before
```
NODE_CALL (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 6)
```
* After
```
NODE_CALL (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 3)
```
* parse.y (parser_mark): GC mark prevline.
------------------------------------------------------------------------
r60779 | svn | 2017-11-16 02:07:55 +0900 (Thu, 16 Nov 2017) | 1 line
* 2017-11-16
------------------------------------------------------------------------
r60778 | hsbt | 2017-11-16 02:07:54 +0900 (Thu, 16 Nov 2017) | 1 line
Bump rake-12.3.0 on bundled gems.
------------------------------------------------------------------------
r60777 | kazu | 2017-11-15 22:53:15 +0900 (Wed, 15 Nov 2017) | 1 line
Remove redundant last newline [ci skip]
------------------------------------------------------------------------
r60776 | ko1 | 2017-11-15 22:21:24 +0900 (Wed, 15 Nov 2017) | 12 lines
remove rb_thread_t::event_hooks.
* vm_core.h (rb_thread_t): remove rb_thread_t::event_hooks.
* vm_trace.c: all hooks are connected to vm->event_hooks and
add rb_event_hook_t::filter::th to filter invoke thread.
It will simplify invoking hooks code.
* thread.c (thread_start_func_2): clear thread specific trace_func.
* test/ruby/test_settracefunc.rb: add a test for Thread#add_trace_func.
------------------------------------------------------------------------
r60775 | nobu | 2017-11-15 17:02:09 +0900 (Wed, 15 Nov 2017) | 4 lines
tmpdir.rb: merged make_tmpname to create
* lib/tmpdir.rb (Dir::Tmpname#create): try conversion of prefix
and suffix just once before loop.
------------------------------------------------------------------------
r60774 | normal | 2017-11-15 16:24:26 +0900 (Wed, 15 Nov 2017) | 14 lines
dir.c: revert r60772, r60770, and r60769
Using readdir(3) without any locking causes thread-safety
problems if directory streams get shared between threads. On
ancient platforms, readdir(3) may have thread-safety problems
even on different directory streams.
Using readdir_r(3) is not viable, either, as it's deprecated
due to name overflow problems.
So for now, rely on GVL as in previous Rubies and perhaps
consider per-"struct dir_data" mutexes for modern platforms
which allow concurrent calls to readdir(3) on different
directory streams.
------------------------------------------------------------------------
r60773 | nobu | 2017-11-15 14:50:10 +0900 (Wed, 15 Nov 2017) | 4 lines
thread.c: use ec
* thread.c (call_without_gvl): use execution context for
RUBY_VM_CHECK_INTS_BLOCKING.
------------------------------------------------------------------------
r60772 | usa | 2017-11-15 14:18:37 +0900 (Wed, 15 Nov 2017) | 6 lines
Cannot call rb_thread_call_without_gvl before running VM
* dir.c (readdir_without_gvl): check the VM is already initialized before
calling rb_thread_call_without_gvl().
[Bug #14108]
------------------------------------------------------------------------
r60771 | ko1 | 2017-11-15 13:52:39 +0900 (Wed, 15 Nov 2017) | 7 lines
fix uninitialized memory reference.
* compile.c (iseq_set_sequence): clear kwargs (in ci_entries) memory area.
kwargs ci entries are initialized by compiler. However, sometimes these
initializations are skipped because corresponding calls are eliminated
by some optimizations (for example, `if true` syntax elimnates else code).
------------------------------------------------------------------------
r60770 | usa | 2017-11-15 12:44:58 +0900 (Wed, 15 Nov 2017) | 4 lines
nogvl readdir make SEGV on Windows
* dir.c (readdir_without_gvl): workaround for Windows. [Bug #14108]
------------------------------------------------------------------------
r60769 | normal | 2017-11-15 08:20:31 +0900 (Wed, 15 Nov 2017) | 18 lines
dir.c: release GVL around remaining readdir calls
Release GVL around all remaining readdir calls from the Dir
class to prevent pathological stalls on slow filesystems in
multi-threaded applications.
opendir, rewinddir, closedir calls are not affected yet, but
will be changed in future commits.
In the future, further work may be done consolidate multiple GVL
releasing calls to reduce overhead, similar to how changes to
Dir.empty? were made in r60111
* dir.c (nogvl_readdir): new function
(readdir_without_gvl): ditto
(dir_read): s/READDIR/readdir_without_gvl/
(dir_each_entry): ditto
(glob_helper): ditto
------------------------------------------------------------------------
r60768 | nobu | 2017-11-15 02:07:47 +0900 (Wed, 15 Nov 2017) | 3 lines
compile.c: fixup TRACE
* compile.c (remove_unreachable_chunk): ignore TRACE elements.
------------------------------------------------------------------------
r60767 | svn | 2017-11-15 00:37:49 +0900 (Wed, 15 Nov 2017) | 1 line
* 2017-11-15
------------------------------------------------------------------------
r60766 | nobu | 2017-11-15 00:37:48 +0900 (Wed, 15 Nov 2017) | 6 lines
parse.y: zero codepoints
* parse.y (parser_tokadd_utf8): relax restriction to allow zero or
more codepoints. fixup r59417.
https://github.com/ruby/ruby/commit/7e8b910#commitcomment-25602670
------------------------------------------------------------------------
r60765 | ko1 | 2017-11-14 22:25:11 +0900 (Tue, 14 Nov 2017) | 5 lines
rewrite only if changed.
* vm_trace.c (update_global_event_hook): rewrite ISeqs only when
effective events are changed.
------------------------------------------------------------------------
r60764 | ko1 | 2017-11-14 22:18:44 +0900 (Tue, 14 Nov 2017) | 9 lines
fix prefix.
* compile.c: the following functions accept LINK_ELEMENT so
rename to `ELEM_` prefix names:
* INSERT_ELEM_NEXT -> ELEM_INSERT_NEXT
* INSERT_ELEM_PREV -> ELEM_INSERT_PREV
* REPLACE_ELEM -> ELEM_REPLACE
* REMOVE_ELEM -> ELEM_REMOVE
------------------------------------------------------------------------
r60763 | ko1 | 2017-11-14 21:58:36 +0900 (Tue, 14 Nov 2017) | 22 lines
remove `trace` instruction. [Feature #14104]
* tool/instruction.rb: create `trace_` prefix instructions.
* compile.c (ADD_TRACE): do not add `trace` instructions but add
TRACE link elements. TRACE elements will be unified with a next
instruction as instruction information.
* vm_trace.c (update_global_event_hook): modify all ISeqs when
hooks are enabled.
* iseq.c (rb_iseq_trace_set): added to toggle `trace_` instructions.
* vm_insnhelper.c (vm_trace): added.
This function is a body of `trace_` prefix instructions.
* vm_insnhelper.h (JUMP): save PC to a control frame.
* insns.def (trace): removed.
* vm_exec.h (INSN_ENTRY_SIG): add debug output (disabled).
------------------------------------------------------------------------
r60762 | nobu | 2017-11-14 13:42:38 +0900 (Tue, 14 Nov 2017) | 10 lines
process.c: removed preserving_errno
* process.c (try_with_sh, handle_fork_error): added argument for
errno.
* process.c (proc_exec_cmd, proc_exec_sh, exec_async_signal_safe):
now return errno instead of -1.
* process.c (rb_fork_ruby): merged retry_fork_ruby() and unified
clean-up after fork regardless failure.
------------------------------------------------------------------------
r60761 | nobu | 2017-11-14 12:02:58 +0900 (Tue, 14 Nov 2017) | 1 line
string.c: prefer rb_syserr_fail
------------------------------------------------------------------------
r60760 | nobu | 2017-11-14 12:00:23 +0900 (Tue, 14 Nov 2017) | 1 line
common.mk: add dependencies for iseq.h
------------------------------------------------------------------------
r60759 | nobu | 2017-11-14 11:40:04 +0900 (Tue, 14 Nov 2017) | 1 line
compile.c: comments for concatstrings optimization [ci skip]
------------------------------------------------------------------------
r60758 | ko1 | 2017-11-14 10:37:41 +0900 (Tue, 14 Nov 2017) | 8 lines
use RUBY_API_VERSION as ISEQ versions.
* iseq.h: use RUBY_API_VERSION_MAJOR for ISEQ_MAJOR_VERSION and
RUBY_API_VERSION_MINOR for ISEQ_MINOR_VERSION.
We need to keep compatibility for ISeq during same major/minor versions.
If we need to change compatibility between teeny versions, we should use
(RUBY_API_VERSION_MINOR * 10 + iseq revs) for ISEQ_MINOR_VERSION.
------------------------------------------------------------------------
r60757 | svn | 2017-11-14 08:53:01 +0900 (Tue, 14 Nov 2017) | 1 line
* 2017-11-14
------------------------------------------------------------------------
r60756 | nobu | 2017-11-14 08:53:00 +0900 (Tue, 14 Nov 2017) | 5 lines
compile.c: fixup r60727
* compile.c (iseq_peephole_optimize): skip next `freezestring`
instruction after `concatstrings` instruction when frozen string
literal is enabled.
------------------------------------------------------------------------
r60755 | nobu | 2017-11-13 14:50:54 +0900 (Mon, 13 Nov 2017) | 5 lines
regexec.c: invalidate previously matched position
* regexec.c (match_at): invalidate end position not yet matched
when new start position is pushed, to dispose previously stored
position. [ruby-core:83743] [Bug #14101]
------------------------------------------------------------------------
r60754 | nobu | 2017-11-13 14:46:30 +0900 (Mon, 13 Nov 2017) | 4 lines
test_regexp.rb: test_absent
* test/ruby/test_regexp.rb (test_absent): add simple tests for
absent operator.
------------------------------------------------------------------------
r60753 | nobu | 2017-11-13 10:58:18 +0900 (Mon, 13 Nov 2017) | 4 lines
envutil.rb: preserve RUBYLIB
* test/lib/envutil.rb (invoke_ruby): preserve RUBYLIB which is
set by runruby.rb and necessary to load standard libraries.
------------------------------------------------------------------------
r60752 | yui-knk | 2017-11-13 10:24:16 +0900 (Mon, 13 Nov 2017) | 3 lines
Print last location of a node
* node.c (A_NODE_HEADER): Print last location of a node.
------------------------------------------------------------------------
r60751 | yui-knk | 2017-11-13 10:24:15 +0900 (Mon, 13 Nov 2017) | 5 lines
Initialize last column with -1 and lineno with 0
* parse.y (node_newnode): Initialize last column of nodes
with -1 and lineno with 0 to make it easy to detect nodes
which we forget to set a column number or lineno.
------------------------------------------------------------------------
r60750 | yui-knk | 2017-11-13 09:14:33 +0900 (Mon, 13 Nov 2017) | 16 lines
Store last location of a node on RNode
* node.c (rb_node_init): Initialize last location with 0.
* node.h (struct rb_code_range_struct): Define a structure
which contains first location and last location of a node.
* node.h (struct RNode): Use rb_code_range_t to store last
location of a node.
* node.h (nd_column, nd_set_column, nd_lineno, nd_set_lineno):
Follow-up the change of struct RNode.
* node.h (nd_last_column, nd_set_last_column, nd_last_lineno, nd_set_last_lineno):
Define getter/setter macros for last location of RNode.
* parse.y : Set last location of tokens.
Thanks to Yusuke Endoh (mame) for design of data structures.
------------------------------------------------------------------------
r60749 | rhe | 2017-11-13 02:10:29 +0900 (Mon, 13 Nov 2017) | 6 lines
string.c: fix up r60748
An #ifdef was missing in r60748 and build broke on systems without
crypt_r().
https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20171112T162503Z.fail.html.gz
------------------------------------------------------------------------
r60748 | rhe | 2017-11-13 00:55:04 +0900 (Mon, 13 Nov 2017) | 9 lines
string.c: fix memory leak in String#crypt
Use ALLOCV to allocate struct crypt_data for slightly cleaner and less
error-prone code. It is currently possible it leaks when an invalid
argument is passed to String#crypt or rb_str_new_cstr() fails to
allocate memory.
SIZEOF_CRYPT_DATA macro in missing/crypt.h is removed since it is not
used any longer.
------------------------------------------------------------------------
r60747 | svn | 2017-11-13 00:25:57 +0900 (Mon, 13 Nov 2017) | 1 line
* 2017-11-13
------------------------------------------------------------------------
r60746 | k0kubun | 2017-11-13 00:25:56 +0900 (Mon, 13 Nov 2017) | 3 lines
.gitignore: ignore dlntest.dll
This was generated with in-place build on MinGW and not ignored.
------------------------------------------------------------------------
r60745 | kazu | 2017-11-12 16:05:58 +0900 (Sun, 12 Nov 2017) | 5 lines
Clarify Dir.mktmpdir's change
`FileUtils.remove_entry_secure` checks `world_writable?` (and `sticky?`) only.
[ci skip]
ref https://github.com/rurema/doctree/pull/805
------------------------------------------------------------------------
r60744 | svn | 2017-11-12 13:45:52 +0900 (Sun, 12 Nov 2017) | 1 line
* 2017-11-12
------------------------------------------------------------------------
r60743 | nobu | 2017-11-12 13:45:51 +0900 (Sun, 12 Nov 2017) | 6 lines
load.c: cwd encoding
* load.c (rb_get_expanded_load_path): save cwd cache in OS path
encoding, to get rid of unnecessary conversion and infinite
loading when it needs encoding conversion.
[ruby-dev:50221] [Bug #13863]
------------------------------------------------------------------------
r60742 | nobu | 2017-11-11 13:50:11 +0900 (Sat, 11 Nov 2017) | 1 line
parse.y: constified YYLTYPE
------------------------------------------------------------------------
r60741 | svn | 2017-11-11 12:57:03 +0900 (Sat, 11 Nov 2017) | 1 line
* 2017-11-11
------------------------------------------------------------------------
r60740 | suke | 2017-11-11 12:57:02 +0900 (Sat, 11 Nov 2017) | 2 lines
* ext/win32ole/win32ole.c(ole_const_load): suppress constant redefinition
warnings when WIN32OLE.const_load [Bug #14085]
------------------------------------------------------------------------
r60739 | k0kubun | 2017-11-10 22:59:01 +0900 (Fri, 10 Nov 2017) | 10 lines
bin/erb: change template file encoding to UTF-8
Unlike Ruby source file encoding (script encoding) whose default is
changed to UTF-8 in Ruby 2.0 (Feature #6679), template's file encoding
given to erb(1) has been ASCII-8BIT since ERB supports m17n at r21170.
Like Ruby source file encoding, erb template file encoding should be
UTF-8 in Ruby 2.
[Bug #14095] [ruby-core:83708]
------------------------------------------------------------------------
r60738 | kazu | 2017-11-10 22:50:14 +0900 (Fri, 10 Nov 2017) | 1 line
Fix a typo [ci skip]
------------------------------------------------------------------------
r60737 | mame | 2017-11-10 22:46:38 +0900 (Fri, 10 Nov 2017) | 6 lines
Make `rb_ast_dispose` use `RB_OBJ_WRITE`
This fixes the mistake of r60722.
I used `rb_gc_writebarrier_remember` to notify to GC that the references
is changed. But the function just adds the object to the remember set
blindly. Ko1 told me that `RB_OBJ_WRITE` is suitable in this case.
------------------------------------------------------------------------
r60736 | k0kubun | 2017-11-10 20:50:00 +0900 (Fri, 10 Nov 2017) | 19 lines
.travis.yml: workaround to resolve ::1
Container-based Trusty environment (sudo: false) does not support IPv6.
https://github.com/travis-ci/travis-ci/issues/3302
And the image has "::1 localhost ip6-localhost ip6-loopback" entry in
addition to "127.0.0.1 localhost" in /etc/hosts.
Thus when it can resolve localhost to ::1 and CI fails.
To resolve this, at least we need to modify /etc/hosts for now but we
can't modify /etc/hosts without sudo.
So I enabled sudo. As Sudo-enabled VM didn't have "::1 localhost" entry,
this change fixed the cause without touching /etc/hosts.
Since boot of `sudo: required` is slower than `sudo: false`, please revert
this commit anytime when Container-based Trusty environment is updated and
::1 issue has gone.
https://docs.travis-ci.com/user/reference/overview/
------------------------------------------------------------------------
r60735 | nobu | 2017-11-10 17:26:44 +0900 (Fri, 10 Nov 2017) | 4 lines
iseq.c: disasm only once for each iseq
* iseq.c (rb_iseq_disasm): do not dump repeatedly same iseq which
has been dumped by catch tables.
------------------------------------------------------------------------
r60734 | hsbt | 2017-11-10 15:31:36 +0900 (Fri, 10 Nov 2017) | 4 lines
Do not define test method instead of skip when Calendar class is not defined.
Revisit r34739. Patch by MSP-Greg.
[Bug #14088][ruby-core:83690][fix GH-1743]
------------------------------------------------------------------------
r60733 | ko1 | 2017-11-10 14:26:52 +0900 (Fri, 10 Nov 2017) | 6 lines
refactoring about source line.
* iseq.c (find_line_no): renamed to rb_iseq_line_no().
* vm_backtrace.c (calc_lineno): add a comment why we need to use "pos-1".
------------------------------------------------------------------------
r60732 | nobu | 2017-11-10 08:08:01 +0900 (Fri, 10 Nov 2017) | 4 lines
iseq.c: operand lvar
* iseq.c (rb_insn_operand_intern): show local variable operand
name in unified instructions.
------------------------------------------------------------------------
r60731 | nobu | 2017-11-10 08:02:52 +0900 (Fri, 10 Nov 2017) | 1 line
mk_call_iseq_optimized.rb: add mode string [ci skip]
------------------------------------------------------------------------
r60730 | marcandre | 2017-11-10 07:05:44 +0900 (Fri, 10 Nov 2017) | 1 line
lib/matrix: Remove method catalog [doc] [ci-skip]
------------------------------------------------------------------------
r60729 | svn | 2017-11-10 07:04:48 +0900 (Fri, 10 Nov 2017) | 1 line
* 2017-11-10
------------------------------------------------------------------------
r60728 | marcandre | 2017-11-10 07:04:47 +0900 (Fri, 10 Nov 2017) | 1 line
TracePoint.new: raise ArgumentError when no block given [#14074]
------------------------------------------------------------------------
r60727 | nobu | 2017-11-09 17:27:01 +0900 (Thu, 09 Nov 2017) | 1 line
compile.c: optimize nested string interpolations
------------------------------------------------------------------------
r60726 | ko1 | 2017-11-09 15:57:24 +0900 (Thu, 09 Nov 2017) | 11 lines
insn_info/insns_info
* iseq.h (iseq_line_info_entry): rename to iseq_insn_info_entry.
* vm_core.h (rb_iseq_constant_body): rename field name line_info_table
to insns_info and also from line_info_size to insns_info_size.
* compile.c (INSN): add struct insn_info to contain per insn information.
* compile.c (add_insn_info): added to add new insn_info entry.
------------------------------------------------------------------------
r60725 | ko1 | 2017-11-09 14:22:51 +0900 (Thu, 09 Nov 2017) | 8 lines
fix backtrace on argment error.
* vm_backtrace.c (rb_backtrace_use_iseq_first_lineno_for_last_location):
added. It modifies last location's line as corresponding iseq's first line
number.
* vm_args.c (raise_argument_error): use added function.
------------------------------------------------------------------------
r60724 | ko1 | 2017-11-09 13:27:27 +0900 (Thu, 09 Nov 2017) | 9 lines
fix peephole optimization.
* compile.c (iseq_peephole_optimize): do not need to put `pop`
instruction.
* test/ruby/test_optimization.rb (test_peephole_optimization_without_trace):
This code "def foo; 1.times{|(a), &b| nil && a}; end" fails to compile
by stack underflow because of above bug (fixed by this patch).
------------------------------------------------------------------------
r60723 | mame | 2017-11-09 10:50:58 +0900 (Thu, 09 Nov 2017) | 5 lines
node.c (dump_node): add an explanation of NODE_HASH's nd_alen
The field has a flag to represent if it is a keyword argument (that has
no braces, e.g., `foo(k:1)`) or hash literal (that has braces, e.g.,
`foo({k:1})`).
------------------------------------------------------------------------
r60722 | mame | 2017-11-09 10:32:11 +0900 (Thu, 09 Nov 2017) | 4 lines
use `rb_ast_dispose` instead of `rb_ast_free`
`rb_ast_dispose` calls `rb_gc_writebarrier_remember`. Unless we call
it, the marked objects may not be GC'ed until `rb_ast_t` is GC'ed.
------------------------------------------------------------------------
r60721 | hsbt | 2017-11-09 09:42:19 +0900 (Thu, 09 Nov 2017) | 4 lines
Merge rubygems-2.7.2.
This version fixes some setup commands.
https://github.com/rubygems/rubygems/blob/01e797f6aa045fd09df7813d0b5448e3667172a9/History.txt#L3
------------------------------------------------------------------------
r60720 | nobu | 2017-11-09 08:09:25 +0900 (Thu, 09 Nov 2017) | 6 lines
parse.y: fix r60644
* parse.y (rb_strterm_heredoc_t): should not define sourceline as
union, to fix wrong read on big-endian platforms.
as rb_imemo_new stores all members as VALUEs, should read it as
VALUE too.
------------------------------------------------------------------------
r60719 | svn | 2017-11-09 01:43:24 +0900 (Thu, 09 Nov 2017) | 1 line
* 2017-11-09
------------------------------------------------------------------------
r60718 | a_matsuda | 2017-11-09 01:43:23 +0900 (Thu, 09 Nov 2017) | 8 lines
Fix typo in doc [ci skip]
`enable` and `disable` are instance methods.
Patch by: yuuji.yaginuma <yuuji.yaginuma@gmail.com>
https://github.com/ruby/ruby/pull/1744
[Fix GH-1744]
------------------------------------------------------------------------
r60717 | kazu | 2017-11-08 23:14:54 +0900 (Wed, 08 Nov 2017) | 1 line
fixup r60440 [ci skip]
------------------------------------------------------------------------
r60716 | nobu | 2017-11-08 19:54:09 +0900 (Wed, 08 Nov 2017) | 4 lines
parse.y: remove in_single
* parse.y (parser_params): removed in_single, which is referenced
with in_def always.
------------------------------------------------------------------------
r60715 | knu | 2017-11-08 12:57:54 +0900 (Wed, 08 Nov 2017) | 1 line
Fix typos in rdoc
------------------------------------------------------------------------
r60714 | yui-knk | 2017-11-08 09:03:02 +0900 (Wed, 08 Nov 2017) | 5 lines
Omit first argument of NEW_CASE2
* node.h (NEW_CASE2): Omit first argument of NEW_CASE2,
bacause the first argument of NEW_CASE2 is always 0.
* parse.y: Ditto
------------------------------------------------------------------------
r60713 | stomar | 2017-11-08 05:17:04 +0900 (Wed, 08 Nov 2017) | 6 lines
hash.c: improve docs for Hash#slice
* hash.c: [DOC] clarify description for Hash#slice and remove
a sentence that might suggest that the receiver is modified;
improve example to also include a case where a hash with
several elements is returned.
------------------------------------------------------------------------
r60712 | stomar | 2017-11-08 05:15:59 +0900 (Wed, 08 Nov 2017) | 6 lines
string.c: improve docs for String#{concat,<<}
* string.c: [DOC] remove a misleading call-seq for String#concat,
which suggests that all arguments must be Integers in this case;
also clarify in the example that the receiver is modified;
fix grammar for String#<<; move references to the end.
------------------------------------------------------------------------
r60711 | stomar | 2017-11-08 05:14:46 +0900 (Wed, 08 Nov 2017) | 5 lines
pathname.c: improve docs for Pathname
* ext/pathname/pathname.c: [DOC] improve example for Pathname.glob,
by using a more common glob pattern, and improve the reference
to the `base' keyword argument for Pathname#glob.
------------------------------------------------------------------------
r60710 | stomar | 2017-11-08 05:13:48 +0900 (Wed, 08 Nov 2017) | 3 lines
http.rb: improve docs
* lib/net/http.rb: [DOC] fix typos and grammar
------------------------------------------------------------------------
r60709 | stomar | 2017-11-08 05:13:00 +0900 (Wed, 08 Nov 2017) | 4 lines
socket.c,tcpsocket.c: improve deprecation notices
* ext/socket/socket.c: [DOC] fix grammar in deprecation notices.
* ext/socket/tcpsocket.c: [DOC] ditto.
------------------------------------------------------------------------
r60708 | stomar | 2017-11-08 05:11:44 +0900 (Wed, 08 Nov 2017) | 1 line
vm_dump.c: [DOC] fix grammar
------------------------------------------------------------------------
r60707 | stomar | 2017-11-08 05:11:09 +0900 (Wed, 08 Nov 2017) | 3 lines
string.c: fix typos
* string.c: [DOC] fix typos in doxygen comments.
------------------------------------------------------------------------
r60706 | stomar | 2017-11-08 05:10:29 +0900 (Wed, 08 Nov 2017) | 4 lines
file.c: improve docs for File#path
* file.c: [DOC] fix grammar in docs for File#path
and use a stronger description than "inaccurate".
------------------------------------------------------------------------
r60705 | stomar | 2017-11-08 05:09:19 +0900 (Wed, 08 Nov 2017) | 1 line
ext/socket/ifaddr.c: [DOC] fix typo
------------------------------------------------------------------------
r60704 | stomar | 2017-11-08 05:08:34 +0900 (Wed, 08 Nov 2017) | 3 lines
etc.c: improve docs for sysconfdir
* ext/etc/etc.c: [DOC] small language fixes for etc_sysconfdir docs.
------------------------------------------------------------------------
r60703 | stomar | 2017-11-08 05:07:33 +0900 (Wed, 08 Nov 2017) | 1 line
README.md: fix typos and grammar
------------------------------------------------------------------------
r60702 | stomar | 2017-11-08 05:06:25 +0900 (Wed, 08 Nov 2017) | 1 line
NEWS: clarify "ubygems.rb" entry
------------------------------------------------------------------------
r60701 | svn | 2017-11-08 05:04:59 +0900 (Wed, 08 Nov 2017) | 1 line
* 2017-11-08
------------------------------------------------------------------------
r60700 | stomar | 2017-11-08 05:04:58 +0900 (Wed, 08 Nov 2017) | 4 lines
refinements.rdoc: improve docs
* doc/syntax/refinements.rdoc: [DOC] fix typos and grammar
and remove superfluous "for the first time".
------------------------------------------------------------------------
r60699 | ko1 | 2017-11-07 23:23:58 +0900 (Tue, 07 Nov 2017) | 5 lines
disable GC.
* test/ruby/test_io.rb (test_write_no_garbage): malloc can cause GC
and it will reduce string object counts. So disable GC during this test.
------------------------------------------------------------------------
r60698 | nobu | 2017-11-07 20:21:09 +0900 (Tue, 07 Nov 2017) | 1 line
tool/runruby.rb: fix RUNRUBY_USE_GDB case
------------------------------------------------------------------------
r60697 | ko1 | 2017-11-07 17:23:57 +0900 (Tue, 07 Nov 2017) | 7 lines
`th` is not used.
* vm_args.c: `th` parameter is not used on the following functions:
* args_check_block_arg0
* keyword_hash_p
* args_pop_keyword_hash
------------------------------------------------------------------------
r60696 | ko1 | 2017-11-07 17:19:25 +0900 (Tue, 07 Nov 2017) | 5 lines
th->ec: dtrace
* vm.c (ruby_th_dtrace_setup): rename to rb_dtrace_setup()
and accept `ec`.
------------------------------------------------------------------------
r60695 | ko1 | 2017-11-07 17:01:26 +0900 (Tue, 07 Nov 2017) | 1 line
`rb_execution_context_t *` should not be `th`
------------------------------------------------------------------------
r60694 | mame | 2017-11-07 15:36:07 +0900 (Tue, 07 Nov 2017) | 11 lines
Symptomatic treatment for `rb_thread_terminate_all` freeze
Under uncertain condition, `rb_thread_terminate_all` gets stuck. `make
test-all TESTOPTS="test/ruby/test_gc.rb -n test_interrupt_in_finalizer`
fails very rarely (only once every thousand runs). This IS a bug, but
seems difficult to fix it soon.
This commit makes `rb_thread_terminate_all` wake up every one second,
instead of waiting forever, which mitigates the unuseful freeze.
This is not an essential solution for the bug, though. I'll create a
ticket with how to reproduce the original issue.
------------------------------------------------------------------------
r60693 | ko1 | 2017-11-07 15:14:00 +0900 (Tue, 07 Nov 2017) | 4 lines
th->ec: vm_once_dispatch.
* vm_insnhelper.c (vm_once_dispatch): accepts `ec`.
------------------------------------------------------------------------
r60692 | ko1 | 2017-11-07 15:09:47 +0900 (Tue, 07 Nov 2017) | 4 lines
th->ec: rb_threadptr_setup_exception
* eval.c (rb_threadptr_setup_exception): renamed to rb_ec_setup_exception().
------------------------------------------------------------------------
r60691 | ko1 | 2017-11-07 15:01:16 +0900 (Tue, 07 Nov 2017) | 9 lines
fix prefix `ruby_...()` to `rb_...()`.
* vm_core.h: fix prefix `ruby_` to `rb_` for the following functions.
* ruby_current_execution_context
* ruby_current_thread
* ruby_current_vm
* ruby_vm_check_ints
* ruby_exec_event_hook_orig
------------------------------------------------------------------------
r60690 | ko1 | 2017-11-07 14:54:34 +0900 (Tue, 07 Nov 2017) | 2 lines
* vm_trace.c (rb_exec_event_hooks): accepts pop_p.
------------------------------------------------------------------------
r60689 | ko1 | 2017-11-07 14:45:46 +0900 (Tue, 07 Nov 2017) | 4 lines
th->ec: rb_load_internal0
* load.c (rb_load_internal0): accepts `ec`.
------------------------------------------------------------------------
r60688 | ko1 | 2017-11-07 14:41:43 +0900 (Tue, 07 Nov 2017) | 1 line
fix comment
------------------------------------------------------------------------
r60687 | ko1 | 2017-11-07 14:41:15 +0900 (Tue, 07 Nov 2017) | 2 lines
* eval_intern.h (rb_threadptr_tag_state): rename to rb_ec_tag_state.
------------------------------------------------------------------------
r60686 | ko1 | 2017-11-07 14:39:02 +0900 (Tue, 07 Nov 2017) | 2 lines
* vm_eval.c (rescue_funcall_args): th->ec
------------------------------------------------------------------------
r60685 | knu | 2017-11-07 14:28:14 +0900 (Tue, 07 Nov 2017) | 1 line
Add details on the min/time parameters to the rdoc
------------------------------------------------------------------------
r60684 | ko1 | 2017-11-07 14:22:09 +0900 (Tue, 07 Nov 2017) | 3 lines
* eval_intern.h: rename macros rb_thread_raised_* to
rb_ec_raised_*.
------------------------------------------------------------------------
r60683 | ko1 | 2017-11-07 14:12:39 +0900 (Tue, 07 Nov 2017) | 5 lines
rename to rb_ec_set_raised().
* thread.c (rb_threadptr_set_raised): rename to rb_ec_set_raised
and accepts `ec`
------------------------------------------------------------------------
r60682 | ko1 | 2017-11-07 14:09:27 +0900 (Tue, 07 Nov 2017) | 1 line
use GET_VM()
------------------------------------------------------------------------
r60681 | ko1 | 2017-11-07 14:08:09 +0900 (Tue, 07 Nov 2017) | 1 line
use GET_EC() directly
------------------------------------------------------------------------
r60680 | ko1 | 2017-11-07 14:06:50 +0900 (Tue, 07 Nov 2017) | 2 lines
* vm_backtrace.c (rb_debug_inspector_t): `th` -> `ec`.
------------------------------------------------------------------------
r60679 | ko1 | 2017-11-07 14:01:51 +0900 (Tue, 07 Nov 2017) | 5 lines
move `rb_thread_t::method_missing_reason` to ec.
* vm_core.h (rb_thread_t): move method_missing_reason to
rb_execution_context_t.
------------------------------------------------------------------------
r60678 | ko1 | 2017-11-07 13:53:11 +0900 (Tue, 07 Nov 2017) | 4 lines
remove `rb_postponed_job_t::th`.
* vm_trace.c (rb_postponed_job_t): remove `th` field because it is not used.
------------------------------------------------------------------------
r60677 | ko1 | 2017-11-07 13:04:18 +0900 (Tue, 07 Nov 2017) | 2 lines
rename because it doesn't receive `th`.
------------------------------------------------------------------------
r60676 | ko1 | 2017-11-07 13:01:13 +0900 (Tue, 07 Nov 2017) | 11 lines
th->ec: rb_threadptr_reset_raised()
* thread.c (rb_threadptr_reset_raised): rename to `rb_ec_reset_raised`
and accepts `ec`.
* vm_trace.c: the following functions accept `ec` instead of `th`
* exec_hooks_body
* exec_hooks_precheck
* exec_hooks_unprotected
* exec_hooks_protected
------------------------------------------------------------------------
r60675 | svn | 2017-11-07 12:41:35 +0900 (Tue, 07 Nov 2017) | 1 line
* 2017-11-07
------------------------------------------------------------------------
r60674 | ko1 | 2017-11-07 12:41:34 +0900 (Tue, 07 Nov 2017) | 5 lines
prepare local variables (th and vm).
* vm_trace.c (rb_threadptr_exec_event_hooks_orig): prepare local variables
`th` and `vm` instead of using rb_ec_... functions.
------------------------------------------------------------------------
r60673 | ko1 | 2017-11-06 17:22:27 +0900 (Mon, 06 Nov 2017) | 2 lines
use `GET_EC()` directly.
------------------------------------------------------------------------
r60672 | ko1 | 2017-11-06 16:44:28 +0900 (Mon, 06 Nov 2017) | 12 lines
move rb_thread_t::interrupt_flag and mask
to rb_execution_context_t.
* vm_core.h (rb_thread_t): move
`rb_thread_t::interrupt_flag` and
`rb_thread_t::interrupt_mask` to rb_execution_context_t.
RUBY_VM_CHECK_INTS() accepts `ec` instead of `th`.
* cont.c (rb_fiber_terminate): to propagate interrupt information,
add new parameter `need_interrupt`.
------------------------------------------------------------------------
r60671 | ko1 | 2017-11-06 16:35:37 +0900 (Mon, 06 Nov 2017) | 1 line
show the location at intterrupted
------------------------------------------------------------------------
r60670 | ko1 | 2017-11-06 14:41:48 +0900 (Mon, 06 Nov 2017) | 5 lines
renmae ec::fiber to ec::fiber_ptr.
* vm_core.h (rb_execution_context_t): renmae ec::fiber to
ec::fiber_ptr make consistent with ec::thread_ptr.
------------------------------------------------------------------------
r60669 | hsbt | 2017-11-06 11:02:04 +0900 (Mon, 06 Nov 2017) | 3 lines
Merge RubyGems 2.7.1.
* Fix `gem update --system` with RubyGems 2.7+.
------------------------------------------------------------------------
r60668 | nobu | 2017-11-06 08:32:50 +0900 (Mon, 06 Nov 2017) | 4 lines
enum.c: check argument first
* enum.c (enum_cycle_size): check an argument before the size of
the receiver, if it is given.
------------------------------------------------------------------------
r60667 | nobu | 2017-11-06 08:27:46 +0900 (Mon, 06 Nov 2017) | 1 line
test/ruby/test_lazy_enumerator.rb: test for [Bug #14082]
------------------------------------------------------------------------
r60666 | marcandre | 2017-11-06 07:14:25 +0900 (Mon, 06 Nov 2017) | 3 lines
Fix size on Enumerable#cycle when the size is 0 [Bug #14082].
Patch by Kenichi Kamiya
------------------------------------------------------------------------
r60665 | nobu | 2017-11-06 06:13:18 +0900 (Mon, 06 Nov 2017) | 7 lines
lexer.rb: Ripper::Lexer::State
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer::State): wrapper
of lex_state values.
* parse.y (rb_parser_lex_state_name): return shared strings. lex
state combinations are very restricted.
------------------------------------------------------------------------
r60664 | nobu | 2017-11-06 06:13:17 +0900 (Mon, 06 Nov 2017) | 1 line
runruby.rb: add -C/--chdir option
------------------------------------------------------------------------
r60663 | svn | 2017-11-06 00:10:41 +0900 (Mon, 06 Nov 2017) | 1 line
* 2017-11-06
------------------------------------------------------------------------
r60662 | kazu | 2017-11-06 00:10:41 +0900 (Mon, 06 Nov 2017) | 6 lines
Modify spell miss.
Runing -> Running
Author: TomoyukiNakagawa <nakagawa.tomoyuki@gmail.com>
[Fix GH-1741] [ci skip]
------------------------------------------------------------------------
r60661 | nobu | 2017-11-05 14:11:04 +0900 (Sun, 05 Nov 2017) | 1 line
runruby.rb: support run.gdb by --debugger option
------------------------------------------------------------------------
r60660 | mame | 2017-11-05 12:52:22 +0900 (Sun, 05 Nov 2017) | 7 lines
Revert "Introduce rb_code_range_t and replace YYLTYPE with it"
r60655 changed the usage of bison by defining a customized YYLTYPE,
which seemed to cause a random stall at rb_thread_terminate_all.
Kazuki Tsujimoto investigated the issue and pointed out the commit that
caused it. Thanks!
------------------------------------------------------------------------
r60659 | suke | 2017-11-05 10:02:04 +0900 (Sun, 05 Nov 2017) | 3 lines
ext/win32ole/lib/win32ole.rb (metods): rescue WIN32OLEQueryInterfaceError.
test/win32ole/test_win32ole.rb: add test for WIN32OLE#methods
------------------------------------------------------------------------
r60658 | suke | 2017-11-05 09:36:37 +0900 (Sun, 05 Nov 2017) | 2 lines
test/win32ole/test_win32ole_method.rb: remove redundant assertions.
------------------------------------------------------------------------
r60657 | suke | 2017-11-05 09:30:57 +0900 (Sun, 05 Nov 2017) | 10 lines
* ext/win32ole/win32ole_error.c: add WIN32OLEQueryInterfaceError.
* ext/win32ole/win32ole_error.h: ditto.
* ext/win32ole/win32ole.c(typeinfo_from_ole): raise WIN32OLEQueryInterfaceError in ole_methods.
* ext/win32ole/win32ole_method.c(ole_methods_from_typeinfo): ditto.
M ext/win32ole/win32ole.c
M ext/win32ole/win32ole_error.c
M ext/win32ole/win32ole_error.h
M ext/win32ole/win32ole_method.c
------------------------------------------------------------------------
r60656 | eregon | 2017-11-05 02:48:51 +0900 (Sun, 05 Nov 2017) | 1 line
Workaround Travis CI issue by hardcoding localhost
------------------------------------------------------------------------
r60655 | mame | 2017-11-05 01:34:00 +0900 (Sun, 05 Nov 2017) | 8 lines
Introduce rb_code_range_t and replace YYLTYPE with it
rb_code_range_t has two t_code_location_t, i.e., the first and last
locations.
This is used for YYLTYPE, tracked locations of bison, and will be also
used for representing the "range", the first and the last locations of
each NODE. Currently, each NODE keeps only the first location, though.
------------------------------------------------------------------------
r60654 | nobu | 2017-11-05 00:39:52 +0900 (Sun, 05 Nov 2017) | 4 lines
parse.y: fix duplicate symbol
* parse.y (rb_strterm_mark): do not define in ripper to get rid of
duplicate symbol with static-linked-ext.
------------------------------------------------------------------------
r60653 | svn | 2017-11-05 00:22:19 +0900 (Sun, 05 Nov 2017) | 1 line
* 2017-11-05
------------------------------------------------------------------------
r60652 | mame | 2017-11-05 00:22:18 +0900 (Sun, 05 Nov 2017) | 5 lines
Introduce `rb_code_location_t`
`rb_code_location_t` has two integers, lineno and column, which point to
one location on a code. Now `rb_code_location_t` is used instead of
`VALUE nd_location`.
------------------------------------------------------------------------
r60651 | nobu | 2017-11-04 23:32:48 +0900 (Sat, 04 Nov 2017) | 3 lines
gc.c: UNEXPECTED_NODE
* gc.c (UNEXPECTED_NODE): extract rb_bug for T_NODE.
------------------------------------------------------------------------
r60650 | mame | 2017-11-04 23:24:16 +0900 (Sat, 04 Nov 2017) | 10 lines
Avoid usage of the magic number `(NODE*)-1`
This magic number has two meanings depending upon the context:
* "required keyword argument (no name)" on NODE_LASGN (`def foo(x:)`)
* "rest argument (no name)" on NODE_MASGN and NODE_POSTARG
('a, b, * = ary` or `a, b, *, z = ary`)
To show this intention explicitly, two macros are introduced:
NODE_SPECIAL_REQUIRED_KEYWORD and NODE_SPECIAL_NO_NAME_REST.
------------------------------------------------------------------------
r60649 | yui-knk | 2017-11-04 22:59:34 +0900 (Sat, 04 Nov 2017) | 6 lines
compile.c (setup_args): Fix a typo
* compile.c (setup_args): In this function,
an argument of nd_line is argn except this line.
And argn is a pointer of NODE. So I think this
is a typo.
------------------------------------------------------------------------
r60648 | mame | 2017-11-04 22:31:47 +0900 (Sat, 04 Nov 2017) | 8 lines
gc.c (rb_free_tmp_buffer): stop accessing imemo_alloc as NODE
The fields of imemo_alloc were accessed via RNODE() cast, since the
imemo was NODE_ALLOCA traditionally. This was refactored at r60239,
so now the fields should be accessed as imemo_alloc. This prevented
change of NODE structure.
Yuichiro Kaneko pointed out this inconsistency. Thanks!
------------------------------------------------------------------------
r60647 | mame | 2017-11-04 22:31:46 +0900 (Sat, 04 Nov 2017) | 4 lines
parse.y (new_args_tail_gen): returns a NODE instead of imemo
`new_args_tail_gen` returned imemo, but the value was later accessed as
`NODE*`. This prevented change of NODE structure.
------------------------------------------------------------------------
r60646 | mame | 2017-11-04 22:05:05 +0900 (Sat, 04 Nov 2017) | 5 lines
test/ruby/test_io.rb (test_write_no_garbage): Add detailed message
I saw this test failed once. There is no problem if `before > after`
but we cannot check it. To allow diagnosis in future, the detailed
message is added.
------------------------------------------------------------------------
r60645 | nobu | 2017-11-04 21:07:20 +0900 (Sat, 04 Nov 2017) | 4 lines
parse.y: suppress warning in ripper
* parse.y (rb_discard_node_gen): rb_discard_node() is not used in
ripper right now.
------------------------------------------------------------------------
r60644 | nobu | 2017-11-04 21:01:42 +0900 (Sat, 04 Nov 2017) | 8 lines
parse.y: suppress warnings
* parse.y (parser_set_line): removed no longer used function.
* parse.y (rb_strterm_heredoc_t): adjust type of sourceline to
ruby_sourceline.
* parse.y (rb_strterm_t): get rid of redefinition.
------------------------------------------------------------------------
r60643 | mame | 2017-11-04 20:37:19 +0900 (Sat, 04 Nov 2017) | 5 lines
Remove RNODE cast from NODE utility functions
Now, casting NODE to VALUE is not recommended. This change requires an
explicit cast from VALUE to NODE to use the NODE utility functions such
as `nd_type`.
------------------------------------------------------------------------
r60642 | mame | 2017-11-04 19:56:50 +0900 (Sat, 04 Nov 2017) | 3 lines
Rename imemo_strterm to imemo_parser_strterm
Per ko1's request.
------------------------------------------------------------------------
r60641 | mame | 2017-11-04 19:56:49 +0900 (Sat, 04 Nov 2017) | 1 line
ext/objspace/objspace.c: add imemo_strterm
------------------------------------------------------------------------
r60640 | mame | 2017-11-04 19:02:43 +0900 (Sat, 04 Nov 2017) | 1 line
Remove NODE-related pieces of code from GC
------------------------------------------------------------------------
r60639 | mame | 2017-11-04 18:18:08 +0900 (Sat, 04 Nov 2017) | 11 lines
Make Ripper use NODE buffer
This is a follow-up of r60488. Not only the Ruby parser but also Ripper
now use NODE buffer instead of NODE objects managed by GC.
Now we can change the struct of NODEs so that it can keep detailed
location information, perhaps (not tried yet). Note that, however, the
first word of each NODE must be still compatible with RBasic structure.
This is because Ripper handles NODEs and other objects uniformly;
especially, it still uses `RB_TYPE_P(obj, T_NODE)` for distinguishing
between NODEs and other objects.
------------------------------------------------------------------------
r60638 | mame | 2017-11-04 16:21:37 +0900 (Sat, 04 Nov 2017) | 1 line
Fix the alignment bug of r60634 for LLP64
------------------------------------------------------------------------
r60637 | mame | 2017-11-04 16:21:36 +0900 (Sat, 04 Nov 2017) | 3 lines
Revert "Revert "Replace NODE_STRTERM and NODE_HEREDOC with imemo_strterm""
Retry r60634
------------------------------------------------------------------------
r60636 | rhe | 2017-11-04 15:56:16 +0900 (Sat, 04 Nov 2017) | 7 lines
openssl: pull test case from upstream commit 62af0446569a
The test case added by r60310 ("fix OpenSSL::SSL::SSLContext#min_version
doesn't work", 2017-10-21) does not pass with OpenSSL >= 1.1.0 or
LibreSSL >= 2.6.0. Check that the default 'min_version' value is
properly enforced by actually attempting a handshake rather than by
inspecting the SSL option flags. [ruby-core:83479] [Bug #14039]
------------------------------------------------------------------------
r60635 | mame | 2017-11-04 13:59:19 +0900 (Sat, 04 Nov 2017) | 3 lines
Revert "Replace NODE_STRTERM and NODE_HEREDOC with imemo_strterm"
Due to build failure on mswin and mingw.
------------------------------------------------------------------------
r60634 | mame | 2017-11-04 12:04:54 +0900 (Sat, 04 Nov 2017) | 8 lines
Replace NODE_STRTERM and NODE_HEREDOC with imemo_strterm
Just refactoring.
NODE_STRTERM and NODE_HEREDOC are not an internal node of AST, but a
temporary storage for managing termination of string literals and
heredocs. Instead of NODE abuse, I want to use imemo for the storage
in order to avoid (my) confusion.
------------------------------------------------------------------------
r60633 | svn | 2017-11-04 10:48:46 +0900 (Sat, 04 Nov 2017) | 1 line
* 2017-11-04
------------------------------------------------------------------------
r60632 | nobu | 2017-11-04 10:48:45 +0900 (Sat, 04 Nov 2017) | 6 lines
load from relative path to __FILE__
* spec/ruby/library/pathname/empty_spec.rb: load spec_helper from
relative path to `__FILE__` same as other spec files, instead of
`__dir__` in which symlinks are resolved, to get rid of constant
redefinition warning when `srcdir` contains symlinks.
------------------------------------------------------------------------
r60631 | kazu | 2017-11-03 16:14:51 +0900 (Fri, 03 Nov 2017) | 1 line
Fix a typo [ci skip]
------------------------------------------------------------------------
r60630 | suke | 2017-11-03 15:07:24 +0900 (Fri, 03 Nov 2017) | 3 lines
* ext/win32ole/lib/win32ole.rb :add WIN32OLE#methods. WIN32OLE might work
well with did_you_mean gem.
------------------------------------------------------------------------
r60629 | yui-knk | 2017-11-03 12:49:07 +0900 (Fri, 03 Nov 2017) | 1 line
node.c: Add some comments
------------------------------------------------------------------------
r60628 | yui-knk | 2017-11-03 12:22:23 +0900 (Fri, 03 Nov 2017) | 6 lines
node.c: Fix possible alignment bugs
* node.c (rb_node_buffer_new): Use offsetof for
node_buffer_t size calculation.
* node.c (rb_ast_newnode): Use offsetof for
node_buffer_elem_t size calculation.
------------------------------------------------------------------------
r60627 | yui-knk | 2017-11-03 11:17:07 +0900 (Fri, 03 Nov 2017) | 5 lines
node.h: Remove obsolete comment
* node.h: NODE_FL_CREF_PUSHED_BY_EVAL was defined as
NODE_FL_NEWLINE by r25984, redefined by r40703
and removed by r49897.
------------------------------------------------------------------------
r60625 | nobu | 2017-11-03 09:52:54 +0900 (Fri, 03 Nov 2017) | 4 lines
test/ruby/test_eval.rb: use orphan procs
This failure has been hidden by the bug of assert_raise which is
fixed at r60614.
------------------------------------------------------------------------
r60624 | stomar | 2017-11-03 05:38:04 +0900 (Fri, 03 Nov 2017) | 4 lines
io.c: improve docs for the chomp option
* io.c: [DOC] improve the description for the chomp option and
add examples to IO.readlines and IO#readlines; other small fixes.
------------------------------------------------------------------------
r60623 | stomar | 2017-11-03 05:26:11 +0900 (Fri, 03 Nov 2017) | 1 line
NEWS: add entry for Psych
------------------------------------------------------------------------
r60622 | stomar | 2017-11-03 05:25:37 +0900 (Fri, 03 Nov 2017) | 1 line
NEWS: fix grammar
------------------------------------------------------------------------
r60621 | stomar | 2017-11-03 05:25:04 +0900 (Fri, 03 Nov 2017) | 1 line
doc/NEWS-2.4.0: fix grammar and typo
------------------------------------------------------------------------
r60620 | stomar | 2017-11-03 05:23:47 +0900 (Fri, 03 Nov 2017) | 4 lines
proc.c: fix rdoc for Method class documentation
* proc.c: [DOC] fix rdoc syntax for the class documentation of
the Method class so that it is displayed in the rendered docs.
------------------------------------------------------------------------
r60619 | stomar | 2017-11-03 05:21:15 +0900 (Fri, 03 Nov 2017) | 6 lines
proc.c: further improve docs for {Method,Proc}#arity
* proc.c: [DOC] fix grammar in docs for {Method,Proc}#arity;
for Method#arity, move special case of methods written in C to the
end of the description, fix a typo in a method name, and add an
example for required arguments with an optional keyword argument.
------------------------------------------------------------------------
r60618 | stomar | 2017-11-03 05:20:11 +0900 (Fri, 03 Nov 2017) | 6 lines
proc.c: improve docs for {Method,Proc}#arity
* proc.c: [DOC] improve Method#arity documentation to match with
Proc#arity, mentioning keyword arguments; also make Proc#arity
examples more consistent in the naming of keyword arguments.
Patch by Nikita Misharin (TheSmartnik). [Fix GH-1735]
------------------------------------------------------------------------
r60617 | svn | 2017-11-03 05:06:38 +0900 (Fri, 03 Nov 2017) | 1 line
* 2017-11-03
------------------------------------------------------------------------
r60616 | stomar | 2017-11-03 05:06:38 +0900 (Fri, 03 Nov 2017) | 4 lines
rexml: improve docs
* lib/rexml/entity.rb: [DOC] drop a pointless comment.
Reported by Michael Gee (mikegee). [Fix GH-1736]
------------------------------------------------------------------------
r60615 | nobu | 2017-11-02 21:45:37 +0900 (Thu, 02 Nov 2017) | 4 lines
skip/fix wrong tests
* test/ruby/test_{class,eval}.rb: skip or fix wrong tests hidden
by a bug of assert_raise.
------------------------------------------------------------------------
r60614 | nobu | 2017-11-02 21:29:33 +0900 (Thu, 02 Nov 2017) | 4 lines
assertions.rb: fix return in assert_raise
* test/lib/test/unit/assertions.rb (assert_raise): should fail if
returned gently in the given block without any exceptions.
------------------------------------------------------------------------
r60613 | nobu | 2017-11-02 16:52:49 +0900 (Thu, 02 Nov 2017) | 4 lines
compile.c: kw splat after splat
* compile.c (setup_args): set keyword splat flag after splat
arguments. [ruby-core:83638] [Bug #10856]
------------------------------------------------------------------------
r60612 | nobu | 2017-11-02 16:52:48 +0900 (Thu, 02 Nov 2017) | 3 lines
debug.c: vm call flags
* debug.c (ruby_dummy_gdb_enums): include vm_call_flag_bits.
------------------------------------------------------------------------
r60611 | rhe | 2017-11-02 15:30:18 +0900 (Thu, 02 Nov 2017) | 5 lines
bignum.c: avoid use of uninitialized value in Integer.sqrt
This is a follow-up fix to r57713. estimate_initial_sqrt() didn't
initialize BDIGITs except the topmost two, letting Integer.sqrt return
wrong result in the fast path, such as for (1<<504).
------------------------------------------------------------------------
r60610 | usa | 2017-11-02 13:28:30 +0900 (Thu, 02 Nov 2017) | 7 lines
Support Windows
* spec/bundler/spec_helper.rb: there are no reason to refuse ':' and '-' in the
path of spec files. especially, ':' is always contained on Windows.
* spec/bundler/spec/helper.rb: open3.rb is also supported on Windows.
------------------------------------------------------------------------
r60609 | hsbt | 2017-11-02 13:27:33 +0900 (Thu, 02 Nov 2017) | 1 line
Fixed syntax error with ignore option order.
------------------------------------------------------------------------
r60608 | hsbt | 2017-11-02 13:25:37 +0900 (Thu, 02 Nov 2017) | 1 line
Merge release version of Rubygems 2.7.0.
------------------------------------------------------------------------
r60607 | usa | 2017-11-02 12:12:05 +0900 (Thu, 02 Nov 2017) | 4 lines
Should quote by double quotes, not single quotes for Windows
* common.mk (test-bundler-precheck): single quotes is not quote on Windows.
------------------------------------------------------------------------
r60606 | svn | 2017-11-02 08:30:03 +0900 (Thu, 02 Nov 2017) | 1 line
* 2017-11-02
------------------------------------------------------------------------
r60605 | svn | 2017-11-02 08:30:01 +0900 (Thu, 02 Nov 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60604 | svn | 2017-11-02 08:30:00 +0900 (Thu, 02 Nov 2017) | 1 line
* remove trailing spaces, append newline at EOF.
------------------------------------------------------------------------
r60603 | hsbt | 2017-11-02 08:29:38 +0900 (Thu, 02 Nov 2017) | 4 lines
Update bundled bundler to 1.16.0.
* lib/bundler, spec/bundler: Merge bundler-1.16.0.
* common.mk: rspec examples of bundler-1.16.0 needs require option.
------------------------------------------------------------------------
r60602 | nobu | 2017-11-01 12:26:55 +0900 (Wed, 01 Nov 2017) | 1 line
compile.c: refactored compile_return
------------------------------------------------------------------------
r60601 | nobu | 2017-11-01 12:26:54 +0900 (Wed, 01 Nov 2017) | 4 lines
test_syntax.rb: all assertions
* test/ruby/test_syntax.rb (test_return_toplevel): try all
assertions even if any assertions failed.
------------------------------------------------------------------------
r60600 | nobu | 2017-11-01 12:26:27 +0900 (Wed, 01 Nov 2017) | 1 line
Pathname: get rid of a -Wcomment warning [DOC]
------------------------------------------------------------------------
r60599 | nobu | 2017-11-01 11:22:10 +0900 (Wed, 01 Nov 2017) | 5 lines
file.c: infect from arguments
* file.c (rb_check_realpath_internal): infetct the result with
arguments, no taint if none are tainted and cwd is not used.
[ruby-core:83583] [Bug #14060]
------------------------------------------------------------------------
r60598 | ko1 | 2017-11-01 11:04:02 +0900 (Wed, 01 Nov 2017) | 1 line
revert r60596 because it cause faulure on TestFile#test_realpath_taintedness
------------------------------------------------------------------------
r60597 | nobu | 2017-11-01 10:55:45 +0900 (Wed, 01 Nov 2017) | 1 line
dir.c: cast to suppress a warning
------------------------------------------------------------------------
r60596 | nobu | 2017-11-01 10:51:57 +0900 (Wed, 01 Nov 2017) | 5 lines
file.c: infect from arguments
* file.c (rb_check_realpath_internal): infetct the result with
arguments, no taint if none are tainted and cwd is not used.
[ruby-core:83583] [Bug #14060]
------------------------------------------------------------------------
r60595 | normal | 2017-11-01 09:17:11 +0900 (Wed, 01 Nov 2017) | 11 lines
dir: Dir.mkdir and Dir.rmdir release GVL
This avoids blocking the entire VM when operating on slow or
unreliable filesystems. Instead, only the thread performing
the mkdir or rmdir operation is blocked and other threads
are free to proceed.
* dir.c (nogvl_mkdir): new function
(nogvl_rmdir): ditto
(dir_s_mkdir): release GVL
(dir_s_rmdir): ditto
------------------------------------------------------------------------
r60594 | marcandre | 2017-11-01 07:24:03 +0900 (Wed, 01 Nov 2017) | 1 line
Pathname: Simplify example [DOC] [ci-skip]
------------------------------------------------------------------------
r60593 | svn | 2017-11-01 04:10:20 +0900 (Wed, 01 Nov 2017) | 1 line
* 2017-11-01
------------------------------------------------------------------------
r60592 | normal | 2017-11-01 04:10:19 +0900 (Wed, 01 Nov 2017) | 13 lines
use mode_t where applicable (instead of int)
mode_t is the correct type for these syscalls and it can be
easier-to-understand. It may also help portability to future
platforms and improve type checking.
* dir.c (dir_s_mkdir): use mode_t for mkdir(2)
* file.c (chmod_internal): use mode_t for chmod(2)
(rb_file_s_chmod): s/int/mode_t/
(lchmod_internal): ditto, deref pointer as in chmod_internal
(rb_file_s_lchmod): pass pointer as in rb_file_s_chmod
(rb_file_s_rename): use mode_t for umask(2)
------------------------------------------------------------------------
r60591 | yui-knk | 2017-10-31 22:29:54 +0900 (Tue, 31 Oct 2017) | 4 lines
node.h: Rename nd_reserved to nd_location
* node.h (RNode): Now nd_reserved is used to store location
information, so rename nd_reserved to nd_location.
------------------------------------------------------------------------
r60590 | nobu | 2017-10-31 18:33:22 +0900 (Tue, 31 Oct 2017) | 7 lines
compile.c: ensure after return in library toplevel
* compile.c (compile_return): execute ensure clause after toplevel
return even in library toplevel other than the main script.
[ruby-core:83589] [Bug #14061]
test
------------------------------------------------------------------------
r60589 | nobu | 2017-10-31 18:33:21 +0900 (Tue, 31 Oct 2017) | 3 lines
compile.c: compile_return
* compile.c (compile_return): extract from iseq_compile_each.
------------------------------------------------------------------------
r60588 | hsbt | 2017-10-31 16:24:29 +0900 (Tue, 31 Oct 2017) | 4 lines
null byte at Psych::Emitter.
Check null byte. Patched by tommy (Masahiro Tomita).
[Bug #13993][ruby-dev:50285]
------------------------------------------------------------------------
r60587 | mame | 2017-10-31 14:24:21 +0900 (Tue, 31 Oct 2017) | 1 line
Remove unneeded complexity
------------------------------------------------------------------------
r60586 | normal | 2017-10-31 10:37:37 +0900 (Tue, 31 Oct 2017) | 23 lines
webrick/httpresponse: minor cleanups to reduce memory use
I never knew "format" was a global method alias for "sprintf";
so it was confusing to me. Normally, one would use "sprintf"
since it's also available in many other languages, but
Integer#to_s avoids parsing a format string so it's less
bug-prone.
Furthermore, favor string interpolation over String#<< since it
is easier for the VM to optimize memory allocation (as in r60320).
Interpolation also reduces method calls and memory overhead
for inline method cache.
Finally, ensure we clear all short-lived buffers for body
responses. A similar change was made and measured for Net::*
in r58840 showing a large memory reduction on some workloads.
* webrick/httpresponse.rb (send_body_io): favor String#to_s,
reduce method calls for String#<<,
clear `buf' when done,
avoid extra String#bytesize calls
* (send_body_string): ditto
------------------------------------------------------------------------
r60585 | yui-knk | 2017-10-31 09:46:30 +0900 (Tue, 31 Oct 2017) | 30 lines
Use NODE_CASE2 if case expressions don't exist
When NODE_WHEN is compiled by iseq_compile_each0,
the node passed to compile_when is NODE_WHEN (not NODE_CASE).
So we can not handle the location of NODE_CASE of
case statements which don't have case expressions.
e.g. :
```
case; when 1; foo; when 2; bar; else baz; end
```
This commit adds NODE_CASE2, and compiles it by
iseq_compile_each0.
* compile.c (compile_case): Does not call COMPILE_ when
NODE_CASE does not have case expressions.
* compile.c (compile_case2): Compile NODE_CASE2 by compile_case2.
* compile.c (compile_when): Delete an obsoleted function.
* compile.c (iseq_compile_each0): Compile NODE_CASE2.
* ext/objspace/objspace.c (count_nodes): Add NODE_CASE2 case.
* node.c (dump_node, rb_gc_mark_node): Add NODE_CASE2 case.
* node.h (node_type): Add NODE_CASE2.
* node.h (NEW_CASE2): Add a macro which generates NODE_CASE2.
* parse.y: Generate NODE_CASE2 if case expressions don't exist.
------------------------------------------------------------------------
r60584 | normal | 2017-10-31 08:56:44 +0900 (Tue, 31 Oct 2017) | 9 lines
webrick: support Proc objects as body responses
* lib/webrick/httpresponse.rb (send_body): call send_body_proc
(send_body_proc): new method
(class ChunkedWrapper): new class
* test/webrick/test_httpresponse.rb (test_send_body_proc): new test
(test_send_body_proc_chunked): ditto
[Feature #855]
------------------------------------------------------------------------
r60583 | normal | 2017-10-31 08:47:27 +0900 (Tue, 31 Oct 2017) | 9 lines
dir: Dir.chdir releases GVL
chdir(2) is subject to all the pathological slowdowns and
caveats as open(2) on slow or unreliable filesystems, so ensure
other threads can proceed while this is happening.
* dir.c (nogvl_chdir): new function
* dir.c (dir_chdir): release GVL
------------------------------------------------------------------------
r60582 | svn | 2017-10-31 08:44:43 +0900 (Tue, 31 Oct 2017) | 1 line
* 2017-10-31
------------------------------------------------------------------------
r60581 | yui-knk | 2017-10-31 08:44:42 +0900 (Tue, 31 Oct 2017) | 17 lines
Use nd_lineno instead of nd_line for branch coverages
* compile.c (compile_if, compile_case, compile_loop, iseq_compile_each0):
Use nd_lineno of nodes for branch coverages.
nd_lineno is not adjusted line number of nodes.
Sometimes nd_line is adjusted by fixpos. These
adjustments lead to confusing result.
For example, lineno of NODE_IF is 1, but
line is 2 (line number is one-based).
```
;;;;;;;;;;;;;;;;;;;;if
1 + 1
2
end
```
------------------------------------------------------------------------
r60580 | yui-knk | 2017-10-30 22:36:20 +0900 (Mon, 30 Oct 2017) | 12 lines
Store lineno on RNode
* node.c (A_NODE_HEADER): Print lineno.
* node.h (nd_column, nd_set_column): Store column
number with 16-bit.
* node.h (nd_lineno, nd_set_lineno): Define
getter/setter macros for lineno of RNode.
* parse.y : Set first lineno of tokens.
Thanks to takeshinoda for review.
------------------------------------------------------------------------
r60579 | nobu | 2017-10-30 14:45:21 +0900 (Mon, 30 Oct 2017) | 4 lines
backward.h: rb_frame_method_id_and_class
* include/ruby/backward.h (rb_frame_method_id_and_class): moved
a deprecated declaration from intern.h, for r60558.
------------------------------------------------------------------------
r60578 | nobu | 2017-10-30 14:45:20 +0900 (Mon, 30 Oct 2017) | 5 lines
rbinstall.rb: show categories of default gems
* tool/rbinstall.rb (#install_default_gem): show categories of
default gems, pure ruby libraries and libraries with extensions.
[ruby-core:83600] [Bug #14065]
------------------------------------------------------------------------
r60577 | ko1 | 2017-10-30 12:58:05 +0900 (Mon, 30 Oct 2017) | 1 line
stop refine_spec because it causes double free error
------------------------------------------------------------------------
r60576 | yui-knk | 2017-10-30 07:12:08 +0900 (Mon, 30 Oct 2017) | 4 lines
Remove duplicated column set
* parse.y : Column of resq is set by new_resbody, so
this line is needless.
------------------------------------------------------------------------
r60575 | yui-knk | 2017-10-30 06:52:54 +0900 (Mon, 30 Oct 2017) | 1 line
parse.y (new_regexp_gen): Set column for NODE_SCOPE
------------------------------------------------------------------------
r60574 | stomar | 2017-10-30 06:43:36 +0900 (Mon, 30 Oct 2017) | 3 lines
string.c: improve docs
* string.c: [DOC] fix rdoc for cross reference; fix grammar.
------------------------------------------------------------------------
r60573 | stomar | 2017-10-30 05:59:33 +0900 (Mon, 30 Oct 2017) | 3 lines
lib/set.rb: improve docs for Set#===
* lib/set.rb: [DOC] improve description and examples for Set#===.
------------------------------------------------------------------------
r60572 | stomar | 2017-10-30 05:58:36 +0900 (Mon, 30 Oct 2017) | 3 lines
io.c: improve docs
* io.c: [DOC] fix rdoc for some cross references; fix grammar.
------------------------------------------------------------------------
r60571 | stomar | 2017-10-30 05:57:29 +0900 (Mon, 30 Oct 2017) | 3 lines
io.c: docs for IO#write
* io.c: [DOC] fix example and language in IO#write docs.
------------------------------------------------------------------------
r60570 | stomar | 2017-10-30 05:56:13 +0900 (Mon, 30 Oct 2017) | 1 line
doc/contributors.rdoc: [DOC] update
------------------------------------------------------------------------
r60569 | stomar | 2017-10-30 05:50:55 +0900 (Mon, 30 Oct 2017) | 3 lines
complex.c: doc fix
* complex.c: [DOC] fix grammar and typo.
------------------------------------------------------------------------
r60568 | eregon | 2017-10-30 01:20:04 +0900 (Mon, 30 Oct 2017) | 1 line
Clarify what is written and read in IO#popen spec
------------------------------------------------------------------------
r60567 | eregon | 2017-10-30 01:18:50 +0900 (Mon, 30 Oct 2017) | 1 line
Fix spec which can fail if the pipe is closed before flushing in the subprocess
------------------------------------------------------------------------
r60566 | ko1 | 2017-10-30 01:12:06 +0900 (Mon, 30 Oct 2017) | 4 lines
* vm_dump.c (vm_stack_dump_each): accepts `ec`.
* vm_dump.c (vm_base_ptr): constify.
------------------------------------------------------------------------
r60565 | ko1 | 2017-10-30 00:51:23 +0900 (Mon, 30 Oct 2017) | 2 lines
* node.h (ast_t): renamed to `rb_ast_t`.
------------------------------------------------------------------------
r60564 | ko1 | 2017-10-30 00:41:53 +0900 (Mon, 30 Oct 2017) | 2 lines
* eval_jump.c (rb_exec_end_proc): use `GET_EC()`.
------------------------------------------------------------------------
r60563 | ko1 | 2017-10-30 00:38:55 +0900 (Mon, 30 Oct 2017) | 9 lines
call `rb_vm_stack_to_heap()`
* safe.c (rb_set_safe_level): call `rb_vm_stack_to_heap()`
to set block parameter.
* safe.c (rb_set_safe_level): use `GET_EC()`.
* safe.c (safe_setter): ditto.
------------------------------------------------------------------------
r60562 | ko1 | 2017-10-30 00:34:20 +0900 (Mon, 30 Oct 2017) | 2 lines
* vm_insnhelper.h (GET_SP_COUNT): removed because nobody use it.
------------------------------------------------------------------------
r60561 | ko1 | 2017-10-30 00:31:47 +0900 (Mon, 30 Oct 2017) | 2 lines
* vm_eval.c (current_vm_stack_arg): accepts `ec`.
------------------------------------------------------------------------
r60560 | ko1 | 2017-10-30 00:27:07 +0900 (Mon, 30 Oct 2017) | 1 line
use given `ec`.
------------------------------------------------------------------------
r60559 | ko1 | 2017-10-30 00:25:32 +0900 (Mon, 30 Oct 2017) | 6 lines
constify `rb_vm_bh_to_procval()`
* vm_insnhelper.c (rb_vm_bh_to_procval): constify 1st param (ec).
* vm_args.c (args_setup_block_parameter): accepts (const) `ec`.
------------------------------------------------------------------------
r60558 | ko1 | 2017-10-30 00:17:29 +0900 (Mon, 30 Oct 2017) | 6 lines
remove unused functions.
* vm.c (rb_frame_method_id_and_class): removed because nobody use it.
* vm.c (rb_thread_current_status): ditto.
------------------------------------------------------------------------
r60557 | ko1 | 2017-10-30 00:13:49 +0900 (Mon, 30 Oct 2017) | 10 lines
use `GET_EC()`.
* eval.c (rb_block_given_p): use `GET_EC()` directly.
* eval.c (rb_ensure): ditto.
* eval.c (rb_errinfo): ditto.
* eval.c (previous_frame): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60556 | ko1 | 2017-10-30 00:03:33 +0900 (Mon, 30 Oct 2017) | 2 lines
* vm_eval.c (vm_catch_protect): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60555 | svn | 2017-10-30 00:00:24 +0900 (Mon, 30 Oct 2017) | 1 line
* 2017-10-30
------------------------------------------------------------------------
r60554 | ko1 | 2017-10-30 00:00:23 +0900 (Mon, 30 Oct 2017) | 1 line
use `GET_EC()`.
------------------------------------------------------------------------
r60553 | ko1 | 2017-10-29 23:59:04 +0900 (Sun, 29 Oct 2017) | 1 line
use `GET_EC()`.
------------------------------------------------------------------------
r60552 | ko1 | 2017-10-29 23:55:19 +0900 (Sun, 29 Oct 2017) | 2 lines
`th` -> `ec` for `rb_iterate0`.
------------------------------------------------------------------------
r60551 | ko1 | 2017-10-29 23:52:05 +0900 (Sun, 29 Oct 2017) | 2 lines
`th` -> `ec` for rb_raise_method_missing().
------------------------------------------------------------------------
r60550 | ko1 | 2017-10-29 23:45:16 +0900 (Sun, 29 Oct 2017) | 4 lines
`rb_call0()` accepts `ec`.
* vm_eval.c (rb_call0): accepts `ec`.
------------------------------------------------------------------------
r60549 | ko1 | 2017-10-29 23:39:51 +0900 (Sun, 29 Oct 2017) | 2 lines
* vm_eval.c (rb_current_receiver): use `GET_EC()`.
------------------------------------------------------------------------
r60548 | ko1 | 2017-10-29 23:38:25 +0900 (Sun, 29 Oct 2017) | 4 lines
`th` -> `ec` for vm_call_super().
* vm_eval.c (vm_call_super): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60547 | ko1 | 2017-10-29 23:33:23 +0900 (Sun, 29 Oct 2017) | 2 lines
use `GET_VM()` directly.
------------------------------------------------------------------------
r60546 | ko1 | 2017-10-29 23:31:01 +0900 (Sun, 29 Oct 2017) | 9 lines
`th` -> `ec` for VM dump related functions.
* vm_dump.c: `th` -> `ec` (and constify) for:
* control_frame_dump
* rb_vmdebug_stack_dump_raw
* rb_vmdebug_debug_print_register
* rb_vmdebug_debug_print_pre
* rb_vmdebug_debug_print_post
------------------------------------------------------------------------
r60545 | ko1 | 2017-10-29 23:06:58 +0900 (Sun, 29 Oct 2017) | 5 lines
`rb_ec_error_print()`.
* eval_error.c (rb_threadptr_error_print): renamed to
rb_ec_error_print() and it accepts `ec`.
------------------------------------------------------------------------
r60544 | ko1 | 2017-10-29 22:51:37 +0900 (Sun, 29 Oct 2017) | 4 lines
remove rb_threadptr_during_gc().
* gc.c (rb_threadptr_during_gc): removed because nobody use it.
------------------------------------------------------------------------
r60543 | ko1 | 2017-10-29 22:50:24 +0900 (Sun, 29 Oct 2017) | 2 lines
use `GET_EC()`.
------------------------------------------------------------------------
r60542 | ko1 | 2017-10-29 22:49:45 +0900 (Sun, 29 Oct 2017) | 5 lines
rb_ec_stack_check()
* gc.c (rb_ec_stack_check): renamed from rb_threadptr_stack_check()
and it accepts `ec`.
------------------------------------------------------------------------
r60541 | ko1 | 2017-10-29 22:20:44 +0900 (Sun, 29 Oct 2017) | 2 lines
use `GET_EC()` directly.
------------------------------------------------------------------------
r60540 | ko1 | 2017-10-29 22:19:53 +0900 (Sun, 29 Oct 2017) | 2 lines
use `GET_VM()` directly.
------------------------------------------------------------------------
r60539 | ko1 | 2017-10-29 22:19:14 +0900 (Sun, 29 Oct 2017) | 4 lines
EXEC_EVENT_HOOK(ec, ...)
* vm_core.h (EXEC_EVENT_HOOK): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60538 | ko1 | 2017-10-29 22:17:37 +0900 (Sun, 29 Oct 2017) | 4 lines
`rb_trace_arg_t::ec`
* vm_core.h (rb_trace_arg_t): introduce `ec` field instead of `th`.
------------------------------------------------------------------------
r60537 | ko1 | 2017-10-29 21:57:04 +0900 (Sun, 29 Oct 2017) | 7 lines
`ec` has `thread_ptr`.
* cont.c (rb_context_struct): move rb_context_t::thread_ptr to
rb_execution_context_t::thread_ptr.
* cont.c (rb_fiberptr_thread_ptr): removed.
------------------------------------------------------------------------
r60536 | ktsj | 2017-10-29 15:16:10 +0900 (Sun, 29 Oct 2017) | 3 lines
.gdbinit: follow up changes in r60440
ruby_current_vm has been renamed to ruby_current_vm_ptr.
------------------------------------------------------------------------
r60535 | nobu | 2017-10-29 14:46:23 +0900 (Sun, 29 Oct 2017) | 5 lines
io.c: honor buffered mode
* io.c (io_writev): honor buffered mode to get rid of broken pipe
error when stdout is redirected to a pipeline.
[ruby-core:83578] [Feature #14042]
------------------------------------------------------------------------
r60534 | nobu | 2017-10-29 09:43:34 +0900 (Sun, 29 Oct 2017) | 5 lines
io.c: convert to string at writev
* io.c (io_fwritev): needs conversion to string before accessing
the content, as well as single argument case, not to segfault.
[Feature #9323]
------------------------------------------------------------------------
r60533 | nobu | 2017-10-29 08:54:16 +0900 (Sun, 29 Oct 2017) | 1 line
Localize EC functions
------------------------------------------------------------------------
r60532 | eregon | 2017-10-29 05:04:52 +0900 (Sun, 29 Oct 2017) | 3 lines
Ignore the libruby check if it cannot be found
* ENV['RUBY_EXE'] can be just 'ruby' and is not an absolute path.
------------------------------------------------------------------------
r60531 | eregon | 2017-10-29 02:45:46 +0900 (Sun, 29 Oct 2017) | 1 line
Make sure to compile each extension only once in ruby/spec
------------------------------------------------------------------------
r60530 | kazu | 2017-10-29 01:34:30 +0900 (Sun, 29 Oct 2017) | 4 lines
Add note to close_{read,write} too
when call on closed stream
[ci skip]
------------------------------------------------------------------------
r60529 | eregon | 2017-10-29 01:15:46 +0900 (Sun, 29 Oct 2017) | 3 lines
Use ENV['RUBY_EXE'] as RbConfig.ruby might be incorrect
* On a built-but-not-installed-ruby.
------------------------------------------------------------------------
r60528 | ktsj | 2017-10-29 00:37:00 +0900 (Sun, 29 Oct 2017) | 5 lines
iseq.c: remove obsolete comment
You can see ARGS_SIMPLE flag as follows:
$ ruby --dump=insns -e itself
------------------------------------------------------------------------
r60527 | svn | 2017-10-29 00:15:52 +0900 (Sun, 29 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60526 | svn | 2017-10-29 00:15:52 +0900 (Sun, 29 Oct 2017) | 1 line
* append newline at EOF.
------------------------------------------------------------------------
r60525 | eregon | 2017-10-29 00:15:48 +0900 (Sun, 29 Oct 2017) | 1 line
Update to ruby/spec@a6b8805
------------------------------------------------------------------------
r60524 | svn | 2017-10-29 00:14:56 +0900 (Sun, 29 Oct 2017) | 1 line
* 2017-10-29
------------------------------------------------------------------------
r60523 | eregon | 2017-10-29 00:14:55 +0900 (Sun, 29 Oct 2017) | 1 line
Update to ruby/mspec@90925d6
------------------------------------------------------------------------
r60522 | ko1 | 2017-10-28 22:22:04 +0900 (Sat, 28 Oct 2017) | 10 lines
`th` -> `ec` for backtrace functions.
* vm_backtrace.c: accept `ec` and rename `threadptr` to `ec`.
* rb_threadptr_backtrace_object -> rb_ec_backtrace_object
* rb_threadptr_backtrace_str_ary -> rb_ec_backtrace_str_ar
* rb_threadptr_backtrace_location_ary -> rb_ec_backtrace_location_ary
* threadptr_backtrace_to_ary -> ec_backtrace_to_ary
* vm_eval.c (adjust_backtrace_in_eval): accepts `ec`.
------------------------------------------------------------------------
r60521 | ko1 | 2017-10-28 21:23:51 +0900 (Sat, 28 Oct 2017) | 16 lines
`th` -> `ec` for method management functions.
* vm_eval.c: `th` -> `ec` for the following functions:
* check_funcall_respond_to
* check_funcall_callable
* check_funcall_missing
* rb_method_call_status
* vm_method.c: ditto.
* call_method_entry
* basic_obj_respond_to_missing
* basic_obj_respond_to
* vm_respond_to
* vm_eval.c (stack_check): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60520 | ko1 | 2017-10-28 20:52:56 +0900 (Sat, 28 Oct 2017) | 6 lines
`th` -> `ec` for rb_vm_call()
* vm_eval.c (rb_vm_call): accepts `ec` instead of `th`.
* proc.c: catch up this fix.
------------------------------------------------------------------------
r60519 | ko1 | 2017-10-28 20:46:32 +0900 (Sat, 28 Oct 2017) | 4 lines
* proc.c (rb_block_arity): use `ec` directly.
* proc.c (rb_mod_define_method): ditto.
------------------------------------------------------------------------
r60518 | ko1 | 2017-10-28 20:43:17 +0900 (Sat, 28 Oct 2017) | 2 lines
* proc.c (proc_new): use `ec` directly.
------------------------------------------------------------------------
r60517 | ko1 | 2017-10-28 20:41:08 +0900 (Sat, 28 Oct 2017) | 10 lines
`th` -> `ec` for rb_longjmp() and related functions.
* eval.c: `th` -> `ec` for the following functions:
* rb_longjmp
* exc_setup_message
* setup_exception
* errinfo_place
* eval.c (get_thread_errinfo): rename to get_ec_errinfo() and accepts `ec`.
------------------------------------------------------------------------
r60516 | ko1 | 2017-10-28 20:22:15 +0900 (Sat, 28 Oct 2017) | 2 lines
use `ec` directly.
------------------------------------------------------------------------
r60515 | ko1 | 2017-10-28 20:20:17 +0900 (Sat, 28 Oct 2017) | 6 lines
check `ec` instead of `th`.
* error.c (rb_bug): check `ec` instead of `th`.
* error.c (rb_bug_context): ditto.
------------------------------------------------------------------------
r60514 | ko1 | 2017-10-28 20:15:56 +0900 (Sat, 28 Oct 2017) | 4 lines
`th` -> `ec` for rb_vm_make_binding().
* vm.c (rb_vm_make_binding): accepts (const) `ec` instead of `th`.
------------------------------------------------------------------------
r60513 | ko1 | 2017-10-28 20:11:17 +0900 (Sat, 28 Oct 2017) | 5 lines
rename a function.
* vm.c (rb_thread_method_id_and_class): rename to
rb_ec_frame_method_id_and_class() and accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60512 | ko1 | 2017-10-28 20:04:08 +0900 (Sat, 28 Oct 2017) | 2 lines
* vm.c (vm_define_method): don't use `th` any more.
------------------------------------------------------------------------
r60511 | ko1 | 2017-10-28 20:02:16 +0900 (Sat, 28 Oct 2017) | 2 lines
* vm.c (REWIND_CFP): use `ec` directly.
------------------------------------------------------------------------
r60510 | ko1 | 2017-10-28 19:59:37 +0900 (Sat, 28 Oct 2017) | 4 lines
`th` -> `ec` for vm_iter_break().
* vm.c (vm_iter_break): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60509 | ko1 | 2017-10-28 19:55:35 +0900 (Sat, 28 Oct 2017) | 7 lines
`th` -> `ec` for some functions.
* vm.c: `th` -> `ec` for the following functions:
* vm_normal_frame
* vm_cfp_svar_get
* vm_cfp_svar_set
------------------------------------------------------------------------
r60508 | ko1 | 2017-10-28 19:47:19 +0900 (Sat, 28 Oct 2017) | 6 lines
`th` -> `ec` for some functions.
* vm.c (rb_vm_get_binding_creatable_next_cfp): accepts `ec` instead of `th`.
* vm.c (rb_vm_stack_to_heap): ditto.
------------------------------------------------------------------------
r60507 | ko1 | 2017-10-28 19:43:30 +0900 (Sat, 28 Oct 2017) | 4 lines
`th` -> `ec` for rb_vm_rewind_cfp.
* vm.c (rb_vm_rewind_cfp): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60506 | ko1 | 2017-10-28 19:35:55 +0900 (Sat, 28 Oct 2017) | 4 lines
`th` -> `ec` for vm_exec().
* vm.c (vm_exec): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60505 | eregon | 2017-10-28 19:32:45 +0900 (Sat, 28 Oct 2017) | 1 line
Add specs for [Feature #13983] Rational and Complex should be frozen
------------------------------------------------------------------------
r60504 | ko1 | 2017-10-28 19:23:58 +0900 (Sat, 28 Oct 2017) | 8 lines
`th` -> `ec` for vm_set_*_stack.
* vm.c: `th` -> `ec` for the following functions:
* vm_set_top_stack
* vm_set_eval_stack
* vm_set_main_stack
* vm_cref_new_toplevel
------------------------------------------------------------------------
r60503 | ko1 | 2017-10-28 19:01:54 +0900 (Sat, 28 Oct 2017) | 7 lines
move fields from `th` to `ec`.
* vm_core.h: move rb_thread_t::passed_block_handler to
rb_execution_context_t::passed_block_handler.
Also move rb_thread_t::passed_bmethod_me to
rb_execution_context_t::passed_bmethod_me.
------------------------------------------------------------------------
r60502 | ktsj | 2017-10-28 18:22:45 +0900 (Sat, 28 Oct 2017) | 1 line
iseq.c: fix a typo
------------------------------------------------------------------------
r60501 | ktsj | 2017-10-28 18:22:44 +0900 (Sat, 28 Oct 2017) | 1 line
iseq.c: show all call flags
------------------------------------------------------------------------
r60500 | a_matsuda | 2017-10-28 15:49:50 +0900 (Sat, 28 Oct 2017) | 13 lines
Fix example that trace method is called outside block
[ci skip]
`TracePoint` doesn't have the `line` method.
Therefore, this example will raise `NoMethodError`.
But since it does not seem to be the intended error, use the existing `lineno`
method instead.
Patch by: yuuji.yaginuma <yuuji.yaginuma@gmail.com>
https://github.com/ruby/ruby/pull/1731
[Fix GH-1731]
------------------------------------------------------------------------
r60499 | ko1 | 2017-10-28 14:36:48 +0900 (Sat, 28 Oct 2017) | 7 lines
skip machine stack marking for current ec.
* vm.c (rb_execution_context_mark): At the beggining of GC marking,
mark_current_machine_context() marks running machine stack so that
rb_execution_context_mark() should not mark machine stack if it is
current ec.
------------------------------------------------------------------------
r60498 | a_matsuda | 2017-10-28 10:05:17 +0900 (Sat, 28 Oct 2017) | 7 lines
Invalid TracePoint#disable example (without block)
Patch by: Johan <djo.went@hotmail.com>
https://github.com/ruby/ruby/pull/1727
[Fix GH-1727]
[ci skip]
------------------------------------------------------------------------
r60497 | ko1 | 2017-10-28 09:45:43 +0900 (Sat, 28 Oct 2017) | 4 lines
fix compile error.
* compile.c (iseq_compile_each): fix declaration because VC shows compile error.
------------------------------------------------------------------------
r60496 | normal | 2017-10-28 08:26:48 +0900 (Sat, 28 Oct 2017) | 18 lines
socket: fix BasicSocket#*_nonblock buffering bugs from r58400
IO#read_nonblock and IO#write_nonblock take into account
buffered data, so the Linux-only BasicSocket#read_nonblock
and BasicSocket#write_nonblock methods must, too.
This bug was only introduced in r58400
("socket: avoid fcntl for read/write_nonblock on Linux")
and does not affect any stable release.
* ext/socket/basicsocket.c (rsock_init_basicsocket):
* ext/socket/init.c (rsock_s_recvfrom_nonblock):
* ext/socket/init.c (rsock_init_socket_init):
* ext/socket/lib/socket.rb (def read_nonblock):
* ext/socket/lib/socket.rb (def write_nonblock):
* ext/socket/rubysocket.h (static inline void rsock_maybe_wait_fd):
* test/socket/test_basicsocket.rb (def test_read_write_nonblock):
[Feature #13362]
------------------------------------------------------------------------
r60495 | nobu | 2017-10-28 06:08:37 +0900 (Sat, 28 Oct 2017) | 1 line
node.c: removed duplicate node_buffer_t definition
------------------------------------------------------------------------
r60494 | nobu | 2017-10-28 06:08:35 +0900 (Sat, 28 Oct 2017) | 1 line
compile.c: make node arguments invariant
------------------------------------------------------------------------
r60493 | ko1 | 2017-10-28 04:16:51 +0900 (Sat, 28 Oct 2017) | 4 lines
catch up recent changes for call threaded code VM.
Fix compile errors for OPT_CALL_THREADED_CODE (in vm_opts.h).
------------------------------------------------------------------------
r60492 | ko1 | 2017-10-28 04:08:31 +0900 (Sat, 28 Oct 2017) | 8 lines
`th` -> `ec` for `rb_insn_func_t`.
* vm_core.h (rb_insn_func_t): accepts `ec` instead of `th`.
* vm_insnhelper.c (rb_vm_opt_struct_aref): ditto.
* vm_insnhelper.c (rb_vm_opt_struct_aset): ditto.
------------------------------------------------------------------------
r60491 | ko1 | 2017-10-28 03:55:28 +0900 (Sat, 28 Oct 2017) | 1 line
skip tests temporarily
------------------------------------------------------------------------
r60490 | normal | 2017-10-28 03:37:23 +0900 (Sat, 28 Oct 2017) | 10 lines
io.c: fix IO.copy_stream on O_APPEND destination on Linux
Linux copy_file_range(2) fails with EBADF if the destination FD
has O_APPEND set. Preserve existing (Ruby <= 2.4) behavior by
falling back to alternative copy mechanisms if this is the case
(instead of raising Errno::EBADF).
* io.c (nogvl_copy_file_range): do not raise on O_APPEND dst
* test/ruby/test_io.rb (test_copy_stream_append): new test
[Feature #13867]
------------------------------------------------------------------------
r60489 | mame | 2017-10-28 02:06:06 +0900 (Sat, 28 Oct 2017) | 1 line
parse.y: Need to mark the third element of `NODE_HEREDOC`
------------------------------------------------------------------------
r60488 | mame | 2017-10-28 01:44:57 +0900 (Sat, 28 Oct 2017) | 4 lines
Revert "Revert "Manage AST NODEs out of GC""
This re-introduces r60485.
This reverts commit 5a176b75b1187cbd3861c387bde65ff66396a07c.
------------------------------------------------------------------------
r60487 | mame | 2017-10-28 01:34:57 +0900 (Sat, 28 Oct 2017) | 3 lines
compile.c: stop modifying NODE tree
This fixes some modification remained in r60479
------------------------------------------------------------------------
r60486 | mame | 2017-10-28 01:02:34 +0900 (Sat, 28 Oct 2017) | 3 lines
Revert "Manage AST NODEs out of GC"
This reverts commit 620ba74778bfdbdc34ffbb142d49ce84a0ef58e9.
------------------------------------------------------------------------
r60485 | mame | 2017-10-28 00:59:02 +0900 (Sat, 28 Oct 2017) | 33 lines
Manage AST NODEs out of GC
NODEs in AST are no longer objects managed by GC. This change will
remove the restriction imposed by the GC. For example, a NODE can use
more than five words (this is my primary purpose; we want to store the
position data for each NODE, for coverage library), or even a NODE can
have variable length (some kinds of NODEs have unused fields).
To do this, however, we need more work, since Ripper still uses T_NODE
objects managed by the GC.
The life time of NODEs is more obvious than other kinds of objects; they
are created at parsing, and they become disused immediately after
compilation. This change releases all NODEs by a few `xfree`s after
compilation, so performance will be improved a bit. In extreme example,
`eval("x=1;" * 10000000)` runs much faster (40 sec. -> 7.8 sec. on my
machine).
The most important part of this change is `ast_t` struct, which has
three contents: (1) NODE buffer (malloc'ed memory), (2) a reference to
the root NODE, and (3) an array that contains objects that must be
marked during parsing (such as literal objects). Some functions that
had received `NODE*` arguments, must now receive `ast_t*`.
* node.c, node.h: defines `ast_t` struct and related operations.
* gc.c, internal.h: defines `imemo_ast`.
* parse.y: makes `parser_params` struct have a reference to `ast_t`.
Instead of `rb_node_newnode`, use `rb_ast_newnode` to create a NODE.
* iseq.c, load.c, ruby.c, template/prelude.c.tmpl: modifies some
functions to handle `ast_t*` instead of `NODE*`.
* test/ruby/test_gc.rb: ad-hoc fix for a failed test. The test assumes
GC eden is increased at startup by NODE object creation. However,
this change now create no NODE object, so GC eden is not necessarily
increased.
------------------------------------------------------------------------
r60484 | kazu | 2017-10-28 00:14:02 +0900 (Sat, 28 Oct 2017) | 1 line
Fix parameter name
------------------------------------------------------------------------
r60483 | kazu | 2017-10-28 00:13:59 +0900 (Sat, 28 Oct 2017) | 1 line
Remove duplicated include
------------------------------------------------------------------------
r60482 | svn | 2017-10-28 00:06:39 +0900 (Sat, 28 Oct 2017) | 1 line
* 2017-10-28
------------------------------------------------------------------------
r60481 | mame | 2017-10-28 00:06:38 +0900 (Sat, 28 Oct 2017) | 4 lines
Add explicit markers for literal objects generated in parse.y
This is just a preparation to manage AST NODEs out of GC.
Currently `add_mark_object` does nothing.
------------------------------------------------------------------------
r60480 | watson1978 | 2017-10-27 23:55:03 +0900 (Fri, 27 Oct 2017) | 24 lines
string.c: Improve String#prepend performance if only one argument is given
* string.c (rb_str_prepend_multi): Prepend the string without generating
temporary String object if only one argument is given.
This is very similar with https://github.com/ruby/ruby/pull/1634
String#prepend -> 47.5 % up
[Fix GH-1670] [ruby-core:82195] [Bug #13773]
* Before
String#prepend 1.517M ({U+00B1} 1.8%) i/s - 7.614M in 5.019819s
* After
String#prepend 2.236M ({U+00B1} 3.4%) i/s - 11.234M in 5.029716s
* Test code
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "String#prepend" do |loop|
loop.times { "!".prepend("hello") }
end
end
------------------------------------------------------------------------
r60479 | nobu | 2017-10-27 21:00:38 +0900 (Fri, 27 Oct 2017) | 1 line
compile.c, iseq.c: consitfied NODE pointers
------------------------------------------------------------------------
r60478 | naruse | 2017-10-27 17:40:40 +0900 (Fri, 27 Oct 2017) | 5 lines
Revert "Dir.glob with FNM_EXTGLOB is optimized [Feature #13873]"
This reverts commit r60341,r60342,r60344,r60345.
Breaking compabitility of the order of result breaks many tests.
To avoid such effort to fix tests, the order should be kept.
------------------------------------------------------------------------
r60477 | ko1 | 2017-10-27 15:21:50 +0900 (Fri, 27 Oct 2017) | 6 lines
vm_exec_core() accepts `ec` instead of `th`.
* vm_exec.c (vm_exec_core): accepts `ec` instead of `th`.
* vm_args.c (vm_caller_setup_arg_block): also accepts `ec`.
------------------------------------------------------------------------
r60476 | ko1 | 2017-10-27 15:06:31 +0900 (Fri, 27 Oct 2017) | 27 lines
`th` -> `ec` for block related functions.
* vm.c: the following functions accept `ec` instead of `th`.
* invoke_block
* invoke_bmethod
* invoke_iseq_block_from_c
* invoke_block_from_c_bh
* check_block_handler
* vm_yield_with_cref
* vm_yield
* vm_yield_with_block
* vm_yield_force_blockarg
* invoke_block_from_c_proc
* vm_invoke_proc
* vm_invoke_bmethod
* rb_vm_invoke_proc
* vm_insnhelper.c: ditto.
* vm_yield_with_cfunc
* vm_yield_with_symbol
* vm_callee_setup_block_arg
* vm_yield_setup_args
* vm_invoke_iseq_block
* vm_invoke_symbol_block
* vm_invoke_ifunc_block
* vm_invoke_block
------------------------------------------------------------------------
r60475 | ko1 | 2017-10-27 15:01:21 +0900 (Fri, 27 Oct 2017) | 5 lines
should use `th`.
* signal.c (check_stack_overflow): ruby_stack_overflowed_p()
should accept `th`.
------------------------------------------------------------------------
r60474 | ko1 | 2017-10-27 14:33:33 +0900 (Fri, 27 Oct 2017) | 6 lines
`ec` -> `th`
* vm_exec.h (VM_SP_CNT): accepts `ec` instead of `th`.
* vm_insnhelper.c (vm_stack_consistency_error): ditto.
------------------------------------------------------------------------
r60473 | ko1 | 2017-10-27 14:30:05 +0900 (Fri, 27 Oct 2017) | 4 lines
vm_defined() accepts `ec` instead of `th`.
* vm_insnhelper.c (vm_defined): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60472 | ko1 | 2017-10-27 14:27:25 +0900 (Fri, 27 Oct 2017) | 5 lines
remove duplicated definition.
* vm_insnhelper.c (vm_block_handler_to_proc): removed because it is same
functionality of rb_vm_bh_to_procval(). Use rb_vm_bh_to_procval().
------------------------------------------------------------------------
r60471 | ko1 | 2017-10-27 14:22:24 +0900 (Fri, 27 Oct 2017) | 6 lines
vm_search_super_method() accepts `ec` instead of `th`.
* vm_insnhelper.c (vm_search_super_method): accepts `ec` instead of `th`.
Surprisingly, it doesn't use `th` (now `ec`) so this patch is for
the future extension.
------------------------------------------------------------------------
r60470 | ko1 | 2017-10-27 14:18:58 +0900 (Fri, 27 Oct 2017) | 4 lines
vm_get_ev_const() accepts `ec` instead of `th`.
* vm_insnhelper.c (vm_get_ev_const): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60469 | a_matsuda | 2017-10-27 12:55:09 +0900 (Fri, 27 Oct 2017) | 6 lines
Fix typo
Patch by: 284km <k.furuhashi10@gmail.com>
https://github.com/ruby/ruby/pull/1729
[Fix GH-1729]
------------------------------------------------------------------------
r60468 | ko1 | 2017-10-27 11:49:30 +0900 (Fri, 27 Oct 2017) | 44 lines
`vm_call_handler` and related functions accept `ec` instead of `th`.
* vm_core.h (vm_call_handler): fix to accept `ec` instead of `th`.
* vm_args.c: the following functions accept `ec` instead of `th`.
* raise_argument_error
* argument_arity_error
* argument_kw_error
* setup_parameters_complex
* vm_eval.c: ditto.
* vm_call0
* vm_call0_cfunc_with_frame
* vm_call0_cfunc
* vm_call0_body
* vm_insnhelper.c: ditto
* vm_call_iseq_setup_tailcall_0start
* vm_call_iseq_setup_normal_0start
* vm_callee_setup_arg
* vm_call_iseq_setup
* vm_call_iseq_setup_2
* vm_call_iseq_setup_normal
* vm_call_iseq_setup_tailcall
* vm_cfp_consistent_p
* vm_call_cfunc_with_frame
* vm_call_cfunc
* vm_call_ivar
* vm_call_attrset
* vm_call_bmethod_body
* vm_call_bmethod
* vm_call_opt_send
* vm_call_opt_call
* vm_call_method_missing
* vm_call_zsuper
* current_method_entry
* vm_call_method_each_type
* vm_call_method_nome
* vm_call_method
* vm_call_general
* vm_call_super_method
* tool/mk_call_iseq_optimized.rb: ditto.
------------------------------------------------------------------------
r60467 | ko1 | 2017-10-27 10:35:12 +0900 (Fri, 27 Oct 2017) | 4 lines
vm_throw* accept `ec` instead of `th`.
* vm_insnhelper.c (vm_throw*): accept `ec` instead of `th`.
------------------------------------------------------------------------
r60466 | ko1 | 2017-10-27 10:31:15 +0900 (Fri, 27 Oct 2017) | 12 lines
ec->th for vm_cref_push() and constify.
* vm_insnhelper.c (vm_cref_push): accepts `ec` instead of `th`.
* vm_insnhelper.c: consitfy the first parameter (ec):
* lep_svar
* lep_svar_write
* lep_svar_get
* lep_svar_set
* vm_getspecial
and added vm_cref_push.
------------------------------------------------------------------------
r60465 | ko1 | 2017-10-27 10:22:01 +0900 (Fri, 27 Oct 2017) | 9 lines
Some functions accept `ec` instead of `th`.
* vm_insnhelper.c: The following functions accept `ec` instead of `th`.
* lep_svar
* lep_svar_write
* lep_svar_get
* lep_svar_set
* vm_getspecial
------------------------------------------------------------------------
r60464 | ko1 | 2017-10-27 10:13:35 +0900 (Fri, 27 Oct 2017) | 6 lines
refactoring (rb_|)threadptr_stack_overflow.
* vm_insnhelper.c (ec_stack_overflow): renamed from threadptr_stack_overflow
and also rb_ec_stack_overflow is from rb_threadptr_stack_overflow
because they accept `ec` instead of `th`.
------------------------------------------------------------------------
r60463 | ko1 | 2017-10-27 09:46:11 +0900 (Fri, 27 Oct 2017) | 6 lines
vm_get_ruby_level_caller_cfp() accepts `ec` instead of `th`.
* vm.c (vm_get_ruby_level_caller_cfp): accepts `ec` instead of `th`.
* vm.c (vm_collect_local_variables_in_heap): don't need `th` anymore.
------------------------------------------------------------------------
r60462 | ko1 | 2017-10-27 09:31:59 +0900 (Fri, 27 Oct 2017) | 4 lines
move decl.
* proc.c: move declaration of rb_vm_bh_to_procval() to vm_core.h.
------------------------------------------------------------------------
r60461 | mame | 2017-10-27 09:25:57 +0900 (Fri, 27 Oct 2017) | 3 lines
Restore the prototype declaration of rb_vm_bh_to_procval
Fixes r60460
------------------------------------------------------------------------
r60460 | ko1 | 2017-10-27 08:33:59 +0900 (Fri, 27 Oct 2017) | 4 lines
rb_vm_bh_to_procval() accepts `ec` instead of `th`.
* vm_insnhelper.c (rb_vm_bh_to_procval): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60459 | hsbt | 2017-10-27 08:02:18 +0900 (Fri, 27 Oct 2017) | 3 lines
Removed obsoleted gitignore for test dependency.
Follow up r60458.
------------------------------------------------------------------------
r60458 | usa | 2017-10-27 02:16:30 +0900 (Fri, 27 Oct 2017) | 2 lines
Ignore .bundle
------------------------------------------------------------------------
r60457 | usa | 2017-10-27 02:14:16 +0900 (Fri, 27 Oct 2017) | 5 lines
Quote with double quotes for Windows
* common.mk (test-bundled-gems-prepare): single quote cannot quote shell meta
characters on Windows.
------------------------------------------------------------------------
r60456 | svn | 2017-10-27 00:29:37 +0900 (Fri, 27 Oct 2017) | 1 line
* 2017-10-27
------------------------------------------------------------------------
r60455 | naruse | 2017-10-27 00:29:36 +0900 (Fri, 27 Oct 2017) | 1 line
Host header should add branckets to IPv6 address [Bug #12642]
------------------------------------------------------------------------
r60454 | ko1 | 2017-10-26 23:44:09 +0900 (Thu, 26 Oct 2017) | 2 lines
replace `GET_THREAD()->ec` to `GET_EC()`.
------------------------------------------------------------------------
r60453 | ko1 | 2017-10-26 23:38:22 +0900 (Thu, 26 Oct 2017) | 7 lines
make root fiber at switching.
* cont.c (fiber_switch): make sure the root fiber object is available
before the first switching.
* test/ruby/test_fiber.rb: remove "skip".
------------------------------------------------------------------------
r60452 | ko1 | 2017-10-26 23:28:43 +0900 (Thu, 26 Oct 2017) | 1 line
skip test_fiber_transfer_segv because it cause error with previous commit
------------------------------------------------------------------------
r60451 | ko1 | 2017-10-26 23:21:31 +0900 (Thu, 26 Oct 2017) | 11 lines
fix freeing `th->ec` bugs.
* vm.c (thread_free): simply call rb_threadptr_root_fiber_release().
* cont.c (rb_threadptr_root_fiber_release): release th->ec (ec->fiber)
iff root_fiber is NULL. If root_fiber is available, then ignore it
and root fiber object will free th->ec too.
* cont.c (rb_threadptr_root_fiber_setup): do not set th->root_fiber.
th->root_fiber will be set if a root fiber object is created.
------------------------------------------------------------------------
r60450 | ko1 | 2017-10-26 20:02:13 +0900 (Thu, 26 Oct 2017) | 13 lines
introduce EC_*_TAG() instead of TH_*_TAG()
* eval_intern.h:
introduce EC_*_TAG() macros instead of TH_*_TAG() macros.
* TH_PUSH_TAG() -> EC_PUSH_TAG()
* TH_POP_TAG() -> EC_POP_TAG()
* TH_TMPPOP_TAG() -> EC_TMPPOP_TAG()
* TH_REPUSH_TAG() -> EC_REPUSH_TAG()
* TH_EXEC_TAG() -> EC_EXEC_TAG()
* TH_JUMP_TAG() -> EC_JUMP_TAG()
rb_threadptr_tag_state() , rb_ec_tag_jump() also accept `ec` instead of `th`.
------------------------------------------------------------------------
r60449 | ko1 | 2017-10-26 19:57:16 +0900 (Thu, 26 Oct 2017) | 4 lines
backtrace_each() accepts `ec` instead of `th`.
* vm_backtrace.c (backtrace_each): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60448 | ko1 | 2017-10-26 19:55:24 +0900 (Thu, 26 Oct 2017) | 4 lines
vm_pop_frame() accepts `ec` instead of `th`.
* vm_insnhelper.c (vm_pop_frame): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60447 | ko1 | 2017-10-26 19:53:42 +0900 (Thu, 26 Oct 2017) | 4 lines
vm_push_frame() accepts `ec` instead of `th`.
* vm_insnhelper.c (vm_push_frame): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60446 | ko1 | 2017-10-26 19:52:05 +0900 (Thu, 26 Oct 2017) | 4 lines
use GET_EC()
* vm.c (vm_ep_in_heap_p_): use GET_EC() instead of GET_THREAD().
------------------------------------------------------------------------
r60445 | ko1 | 2017-10-26 19:50:45 +0900 (Thu, 26 Oct 2017) | 4 lines
A function accepts `ec` instead of `th`.
* vm.c (VM_CFP_IN_HEAP_P): accepts `ec` instead of `th`.
------------------------------------------------------------------------
r60444 | ko1 | 2017-10-26 19:49:33 +0900 (Thu, 26 Oct 2017) | 4 lines
A function accepts `ec` instead of `th`.
* vm.c (rb_vm_search_cf_from_ep): accept `ec` instead of `th`.
------------------------------------------------------------------------
r60443 | mame | 2017-10-26 17:45:14 +0900 (Thu, 26 Oct 2017) | 3 lines
Expand the definition of rb_imemo_new in rb_imemo_alloc_new
per ko1's comment
------------------------------------------------------------------------
r60442 | ko1 | 2017-10-26 17:42:44 +0900 (Thu, 26 Oct 2017) | 1 line
fix comments
------------------------------------------------------------------------
r60441 | ko1 | 2017-10-26 17:41:34 +0900 (Thu, 26 Oct 2017) | 18 lines
some functions accept `ec` instead of `th`.
* vm.c (vm_make_env_object): accepts `ec`.
* vm.c (rb_vm_get_ruby_level_next_cfp): ditto.
* vm.c (rb_vm_make_proc): ditto.
* vm.c (rb_vm_make_proc_lambda): ditto.
* vm_core.h: some macros accept ec instead of th
(and make them inline functions):
* RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW
* RUBY_VM_END_CONTROL_FRAME
* RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P
* eval.c (frame_func_id): constify for the first parameter.
------------------------------------------------------------------------
r60440 | ko1 | 2017-10-26 17:32:49 +0900 (Thu, 26 Oct 2017) | 21 lines
Use rb_execution_context_t instead of rb_thread_t
to represent execution context [Feature #14038]
* vm_core.h (rb_thread_t): rb_thread_t::ec is now a pointer.
There are many code using `th` to represent execution context
(such as cfp, VM stack and so on). To access `ec`, they need to
use `th->ec->...` (adding one indirection) so that we need to
replace them by passing `ec` instead of `th`.
* vm_core.h (GET_EC()): introduced to access current ec. Also
remove `ruby_current_thread` global variable.
* cont.c (rb_context_t): introduce rb_context_t::thread_ptr instead of
rb_context_t::thread_value.
* cont.c (ec_set_vm_stack): added to update vm_stack explicitly.
* cont.c (ec_switch): added to switch ec explicitly.
* cont.c (rb_fiber_close): added to terminate fibers explicitly.
------------------------------------------------------------------------
r60439 | nobu | 2017-10-26 16:36:23 +0900 (Thu, 26 Oct 2017) | 4 lines
test_env.rb: fix one-off bug
* test/ruby/test_env.rb (TestEnv#test_win32_blocksize): count the
terminator byte too.
------------------------------------------------------------------------
r60438 | nobu | 2017-10-26 16:23:23 +0900 (Thu, 26 Oct 2017) | 10 lines
common conversion functions
* array.c (rb_to_array_type): make public to share common code
internally.
* hash.c (rb_to_hash_type): make public to share common code
internally.
* symbol.c (rb_to_symbol_type): make public to share common code
internally.
------------------------------------------------------------------------
r60437 | marcandre | 2017-10-26 15:58:09 +0900 (Thu, 26 Oct 2017) | 1 line
TracePoint#enable, #disable: Don't yield any argument. [Bug #14057]
------------------------------------------------------------------------
r60436 | nobu | 2017-10-26 10:36:52 +0900 (Thu, 26 Oct 2017) | 6 lines
common.mk: quote pipes on Windows
* common.mk (update-gems, update-bundled_gems): quote pipes by
double qoutes instead of single quotes, to escape them on
Windows. wildcard characters `*?[{` still need to be quoted by
single quotes to get rid of globbing.
------------------------------------------------------------------------
r60435 | nobu | 2017-10-26 09:59:15 +0900 (Thu, 26 Oct 2017) | 4 lines
common.mk: test-bundled-gem [ci skip]
* common.mk (test-bundled-gems): moved from Makefile.in so it
might work on nmake too.
------------------------------------------------------------------------
r60434 | nobu | 2017-10-26 09:59:13 +0900 (Thu, 26 Oct 2017) | 4 lines
common.mk: test-bundler [ci skip]
* common.mk (test-bundler): moved from Makefile.in so it might
work on nmake too.
------------------------------------------------------------------------
r60433 | kazu | 2017-10-26 08:45:33 +0900 (Thu, 26 Oct 2017) | 1 line
test/ostruct: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r60432 | svn | 2017-10-26 08:35:47 +0900 (Thu, 26 Oct 2017) | 1 line
* 2017-10-26
------------------------------------------------------------------------
r60431 | nobu | 2017-10-26 08:35:46 +0900 (Thu, 26 Oct 2017) | 4 lines
test-bundled-gems-fetch
* tool/fetch-bundled_gems.rb: get rid of tool/git-refresh which
requries Bourne shell.
------------------------------------------------------------------------
r60430 | nobu | 2017-10-25 23:25:39 +0900 (Wed, 25 Oct 2017) | 1 line
common.mk: remove old gems at update-gems
------------------------------------------------------------------------
r60429 | mame | 2017-10-25 22:38:53 +0900 (Wed, 25 Oct 2017) | 1 line
Refactoring by adding `rb_imemo_alloc_new` to create imemo_alloc buffer
------------------------------------------------------------------------
r60428 | usa | 2017-10-25 22:29:27 +0900 (Wed, 25 Oct 2017) | 8 lines
Get rid of a test error on Windows caused by r60417
* test/testunit/test_parallel.rb (teardown): this code seems to allow
`Errno::EPIPE` from @worker_in. in such case, `close` may also raise the same
exception.
I'm not confident in this conclusion and still doubt that we should revert
r60417 instead of this commit or not.
------------------------------------------------------------------------
r60427 | mame | 2017-10-25 22:19:45 +0900 (Wed, 25 Oct 2017) | 6 lines
Make imemo_alloc writebarrier-unprotected
imemo_alloc provides a memory buffer whose contents are marked by GC.
C code can access imemo_alloc buffer freely, so imemo_alloc must be
considered writebarrier-unprotected. But T_IMEMO is writebarrier-
protected by default, which caused a GC bug.
------------------------------------------------------------------------
r60426 | kazu | 2017-10-25 21:57:34 +0900 (Wed, 25 Oct 2017) | 3 lines
Fix `shadowing outer local variable` warning [ci skip]
ref https://github.com/rurema/doctree/pull/697
------------------------------------------------------------------------
r60425 | nobu | 2017-10-25 21:33:42 +0900 (Wed, 25 Oct 2017) | 1 line
io.c: let rb_p use writev
------------------------------------------------------------------------
r60424 | nobu | 2017-10-25 21:31:30 +0900 (Wed, 25 Oct 2017) | 4 lines
test_io.rb: skip writev test
* test/ruby/test_io.rb (TestIO#test_puts_parallel): skip a test
needs writev which is not portable. [Feature #14042]
------------------------------------------------------------------------
r60423 | nobu | 2017-10-25 21:04:53 +0900 (Wed, 25 Oct 2017) | 4 lines
io.c: warn old write
* io.c (rb_io_puts): warn if write method accepts just one
argument. [ruby-core:83529] [Feature #14042]
------------------------------------------------------------------------
r60422 | hsbt | 2017-10-25 18:24:37 +0900 (Wed, 25 Oct 2017) | 3 lines
Regenerate slack token on Travis CI.
The previous token did not work on our slack team.
------------------------------------------------------------------------
r60421 | nobu | 2017-10-25 17:37:17 +0900 (Wed, 25 Oct 2017) | 4 lines
win32.c: unknown reparse tags
* win32/win32.c (rb_w32_read_reparse_point): skip unknown reparse
tags. [ruby-core:83539] [Bug #14047]
------------------------------------------------------------------------
r60420 | nobu | 2017-10-25 16:28:22 +0900 (Wed, 25 Oct 2017) | 4 lines
securerandom.rb: fix an example of choose [ci skip]
* lib/securerandom.rb (Random::Formatter#choose): [DOC] fix an
example, `n` is not optional.
------------------------------------------------------------------------
r60419 | hsbt | 2017-10-25 16:03:11 +0900 (Wed, 25 Oct 2017) | 1 line
Update power_assert-1.1.1. It support `test-bundled-gems`.
------------------------------------------------------------------------
r60418 | hsbt | 2017-10-25 15:58:24 +0900 (Wed, 25 Oct 2017) | 3 lines
Fixed conflicted variables. v is already used another condition.
[Misc #14050][ruby-core:83553]
------------------------------------------------------------------------
r60417 | nobu | 2017-10-25 14:44:38 +0900 (Wed, 25 Oct 2017) | 5 lines
io.c: write a newline together
* io.c (rb_io_puts): write a newline together at once for each
argument. based on the patch by rohitpaulk (Rohit Kuruvilla) at
[ruby-core:83508]. [Feature #14042]
------------------------------------------------------------------------
r60416 | nobu | 2017-10-25 14:23:54 +0900 (Wed, 25 Oct 2017) | 6 lines
range.c: use rb_check_funcall
* range.c (rb_range_values): use rb_check_funcall instead of
calling rb_respond_to then rb_funcall, and allow `begin` and
`end` to be private as well as other internal conversions.
[ruby-core:83541] [Bug #14048]
------------------------------------------------------------------------
r60415 | hsbt | 2017-10-25 14:04:24 +0900 (Wed, 25 Oct 2017) | 1 line
Added development dependency for power_assert.
------------------------------------------------------------------------
r60414 | hsbt | 2017-10-25 12:38:02 +0900 (Wed, 25 Oct 2017) | 3 lines
Update rake-12.2.1 for bundled gems.
rake-12.2.0 broke Capistrano 3 task. 12.2.1 fixed this regression.
------------------------------------------------------------------------
r60413 | nobu | 2017-10-25 11:41:47 +0900 (Wed, 25 Oct 2017) | 5 lines
Fix Mock.verify_call to mock_respond_to?
* spec/mspec/lib/mspec/mocks/mock.rb (Mock.verify_call): should
pass arguments to as given, not packed in an array.
mock_respond_to? expects 2 or 3 arguments.
------------------------------------------------------------------------
r60412 | nobu | 2017-10-25 10:45:28 +0900 (Wed, 25 Oct 2017) | 4 lines
compile.c: refine error messages
* compile.c (rb_iseq_compile_node): raise compile error with exact
iseq type name.
------------------------------------------------------------------------
r60411 | nobu | 2017-10-25 10:40:15 +0900 (Wed, 25 Oct 2017) | 6 lines
range.c: check if exclude_end? is defined
* range.c (rb_range_values): should raise TypeError if necessary
method is not defined, not NoMethodError, when trying to tell if
the object is a Range and extract info.
[ruby-core:83541] [Bug #14048]
------------------------------------------------------------------------
r60410 | hsbt | 2017-10-25 10:13:35 +0900 (Wed, 25 Oct 2017) | 4 lines
Update latest bundled_gems.
* rake-12.2.0
* test-unit-3.2.6
------------------------------------------------------------------------
r60409 | nobu | 2017-10-25 09:33:29 +0900 (Wed, 25 Oct 2017) | 4 lines
debug.c: RSymbol info
* debug.c (ruby_dummy_gdb_enums): force to include struct RSymbol
info.
------------------------------------------------------------------------
r60408 | normal | 2017-10-25 08:35:52 +0900 (Wed, 25 Oct 2017) | 6 lines
file.c: fix possible alignment bugs in r60386
* file.c (struct apply_filename): split out from struct apply_arg
* file.c (apply2files): use offsetof for flex array size calculation
* file.c (apply2files): avoid redundant marking with ALLOCV
[ruby-core:83535]
------------------------------------------------------------------------
r60407 | nobu | 2017-10-25 08:19:57 +0900 (Wed, 25 Oct 2017) | 5 lines
debug.c: imemo_mask
* .gdbinit (rp, rp_imemo, rb_ps_thread): update imemo_mask.
* debug.c (ruby_dummy_gdb_enums): include imemo_types.
------------------------------------------------------------------------
r60406 | marcandre | 2017-10-25 03:08:15 +0900 (Wed, 25 Oct 2017) | 3 lines
lib/ostruct.rb: Use frozen literals.
Patch adapted from Espartaco Palma. [GH-1714] [Bug #14000]
------------------------------------------------------------------------
r60405 | svn | 2017-10-25 03:08:01 +0900 (Wed, 25 Oct 2017) | 1 line
* 2017-10-25
------------------------------------------------------------------------
r60404 | marcandre | 2017-10-25 03:08:00 +0900 (Wed, 25 Oct 2017) | 1 line
lib/weakref: Remove incorrect example [DOC] [Bug #14031]
------------------------------------------------------------------------
r60403 | ko1 | 2017-10-24 22:59:59 +0900 (Tue, 24 Oct 2017) | 1 line
add NEWS entry about [Feature #14045]
------------------------------------------------------------------------
r60402 | nobu | 2017-10-24 22:48:08 +0900 (Tue, 24 Oct 2017) | 10 lines
sysconfdir on Windows
* ext/etc/etc.c (etc_sysconfdir): mentioned special case on
Windows. [ruby-core:43110] [Bug #6121]
* ext/etc/extconf.rb: define SYSCONFDIR only if sysconfdir is set
in RbConfig::CONFIG and not empty.
* win32/Makefile.sub (config.status): sysconfdir is not used on
Windows.
------------------------------------------------------------------------
r60401 | kazu | 2017-10-24 21:10:32 +0900 (Tue, 24 Oct 2017) | 5 lines
Update call-seq of ARGF.read_nonblock
ARGF.read_nonblock supports `exception: false' like IO#read_nonblock
since 2.3.0.
[Feature #11358]
------------------------------------------------------------------------
r60400 | nobu | 2017-10-24 20:24:19 +0900 (Tue, 24 Oct 2017) | 1 line
Test for r60396
------------------------------------------------------------------------
r60399 | naruse | 2017-10-24 20:15:20 +0900 (Tue, 24 Oct 2017) | 5 lines
Revert "sysconfdir on Windows"
This reverts commit r60279.
This breaks mswin build:
https://ci.appveyor.com/project/ruby/ruby/build/1.0.5571
------------------------------------------------------------------------
r60398 | svn | 2017-10-24 20:13:50 +0900 (Tue, 24 Oct 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60397 | ko1 | 2017-10-24 20:13:49 +0900 (Tue, 24 Oct 2017) | 32 lines
Lazy Proc allocation for block parameters
[Feature #14045]
* insns.def (getblockparam, setblockparam): add special access
instructions for block parameters.
getblockparam checks VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM and
if it is not set this instruction creates a Proc object from
a given blcok and set VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM.
setblockparam is similar to setlocal, but set
VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM.
* compile.c: use get/setblockparm instead get/setlocal instructions.
Note that they are used for method local block parameters (def m(&b)),
not for block local method parameters (iter{|&b|).
* proc.c (get_local_variable_ptr): creates Proc object for
Binding#local_variable_get/set.
* safe.c (safe_setter): we need to create Proc objects for postponed
block parameters when $SAFE is changed.
* vm_args.c (args_setup_block_parameter): used only for block local blcok
parameters.
* vm_args.c (vm_caller_setup_arg_block): if called with
VM_CALL_ARGS_BLOCKARG_BLOCKPARAM flag then passed block values should be
a block handler.
* test/ruby/test_optimization.rb: add tests.
* benchmark/bm_vm1_blockparam*: added.
------------------------------------------------------------------------
r60396 | nobu | 2017-10-24 20:09:41 +0900 (Tue, 24 Oct 2017) | 4 lines
ruby.c: fix r60393
* ruby.c (load_file_internal): set loop options after parsing
shebang line.
------------------------------------------------------------------------
r60395 | nobu | 2017-10-24 17:13:13 +0900 (Tue, 24 Oct 2017) | 4 lines
vm_eval.c: all value type cases
* vm_eval.c (rb_type_str): ensure all value types are covered.
missed types would be warned by -Wswitch option of gcc.
------------------------------------------------------------------------
r60394 | nobu | 2017-10-24 17:00:36 +0900 (Tue, 24 Oct 2017) | 6 lines
Removed NODE_OPT_N
* node.h (NODE_OPT_N): removed.
* parse.y (parser_append_options): expand -n option loop to while
gets loop.
------------------------------------------------------------------------
r60393 | nobu | 2017-10-24 16:41:48 +0900 (Tue, 24 Oct 2017) | 7 lines
parse.y: rb_parser_set_options
* parse.y (yycompile0): append top-level addenda before appending
prelude nodes.
* parse.y (rb_parser_set_options): set top-level addendum options
before parsing.
------------------------------------------------------------------------
r60392 | nobu | 2017-10-24 16:17:36 +0900 (Tue, 24 Oct 2017) | 5 lines
vm_eval.c: uncallable_object
* vm_eval.c (uncallable_object): extract error case as a no-return
function. split successive ?-marks not to get confused with a
trigraph.
------------------------------------------------------------------------
r60391 | mame | 2017-10-24 15:27:58 +0900 (Tue, 24 Oct 2017) | 5 lines
Avoid many type casts
The idiom `rb_gc_force_recycle((VALUE)...)` was used heavily.
This change defines `rb_discard_nod(NODE*)` and allows C compiler to
typecheck.
------------------------------------------------------------------------
r60390 | mame | 2017-10-24 15:16:31 +0900 (Tue, 24 Oct 2017) | 5 lines
Remove dynamic NODE allocation out of parser
A temporary NODE object was allocated to create iseq. Instead, this
patch allocates a dummy NODE as auto variable, and discard it soon.
This change is intended as a preparation to manage AST NODEs out of GC.
------------------------------------------------------------------------
r60389 | mame | 2017-10-24 14:54:30 +0900 (Tue, 24 Oct 2017) | 5 lines
Remove special handling for (NODE*)1
The magic number was used to mark NODE_ATTRASGN when its receiver is
self. But the hack was refactored at r46366. So the remaining code
fragments are no longer needed.
------------------------------------------------------------------------
r60388 | normal | 2017-10-24 10:22:08 +0900 (Tue, 24 Oct 2017) | 16 lines
net/http: use require_relative to reduce syscalls
require_relative speeds up loading of files by reducing path
lookups. On a clean install with RubyGems-enabled,
"ruby -rnet/http -e exit" shows a reduction in failed open(2)
syscalls from 410 to 350 (x86-64 GNU/Linux).
I could not measure a time difference on my Linux-based
machines, however this should be noticeable to users of other
kernels with worse syscall and VFS performance than Linux.
Further use of require_relative will reduce lookups in other
places.
* lib/net/http.rb: use require_relative
[ruby-core:78285] [Feature #12973]
------------------------------------------------------------------------
r60387 | svn | 2017-10-24 10:20:05 +0900 (Tue, 24 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60386 | normal | 2017-10-24 10:20:04 +0900 (Tue, 24 Oct 2017) | 35 lines
file.c: apply2files releases GVL
This means File.chmod, File.lchmod, File.chown, File.lchown,
File.unlink, and File.utime operations on slow filesystems
no longer hold up other threads.
The platform-specific utime_failed changes is compile-tested
using a new UTIME_EINVAL macro
This hurts performance on fast filesystem, but these methods
are unlikely to be performance bottlenecks and (IMHO) avoiding
pathological slowdowns and stalls are more important.
benchmark results:
minimum results in each 3 measurements.
Execution time (sec)
name trunk built
file_chmod 0.591 0.801
Speedup ratio: compare with the result of `trunk' (greater is better)
name built
file_chmod 0.737
* file.c (UTIME_EINVAL): new macro to ease compile-testing
* file.c (struct apply_arg): new struct
* file.c (no_gvl_apply2files): new function
* file.c (apply2files): release GVL
* file.c (chmod_internal): adjust for apply2files changes
* file.c (lchmod_internal): ditto
* file.c (chown_internal): ditto
* file.c (lchown_internal): ditto
* file.c (utime_failed): ditto
* file.c (utime_internal): ditto
* file.c (unlink_internal): ditto
[ruby-core:83200] [Feature #13996]
------------------------------------------------------------------------
r60385 | svn | 2017-10-24 06:50:10 +0900 (Tue, 24 Oct 2017) | 1 line
* 2017-10-24
------------------------------------------------------------------------
r60384 | normal | 2017-10-24 06:50:08 +0900 (Tue, 24 Oct 2017) | 10 lines
thread_pthread: do not corrupt stack
This fixes stuck test/ruby/test_io.rb with FIBER_USE_NATIVE=0 on
GNU/Linux because linked-list pointers used by glibc get
corrupted when fiber stacks are copied.
Thanks to wanabe for finding the bug and original patch.
* thread_pthread (native_thread_init_stack): fix stack corruption
[ruby-core:82737] [Bug #13387]
------------------------------------------------------------------------
r60383 | nobu | 2017-10-23 23:05:07 +0900 (Mon, 23 Oct 2017) | 4 lines
multiple arguments to write
Make write methods of IO-like objects accept multiple arguments,
as well as IO#write.
------------------------------------------------------------------------
r60382 | yui-knk | 2017-10-23 22:25:59 +0900 (Mon, 23 Oct 2017) | 4 lines
Add test cases for branch coverage
* test/coverage/test_coverage.rb (test_branch_coverage_for_while_statement):
Add test cases for modifier while/until.
------------------------------------------------------------------------
r60381 | kazu | 2017-10-23 21:59:05 +0900 (Mon, 23 Oct 2017) | 1 line
Fix a typo [ci skip]
------------------------------------------------------------------------
r60380 | naruse | 2017-10-23 17:28:05 +0900 (Mon, 23 Oct 2017) | 4 lines
OpenSSL may show the different error message
https://github.com/ruby/ruby/commit/d02211c9da608742b09aec768db79442007eabc0#commitcomment-25119729
From: MSP-Greg <MSP-Greg@users.noreply.github.com>
------------------------------------------------------------------------
r60379 | nobu | 2017-10-23 16:06:12 +0900 (Mon, 23 Oct 2017) | 3 lines
zlib.c: multiple arguments to write
* ext/zlib/zlib.c (rb_gzwriter_write): accepts multiple arguments.
------------------------------------------------------------------------
r60378 | nobu | 2017-10-23 15:42:37 +0900 (Mon, 23 Oct 2017) | 4 lines
error.c: warning to write multiple arguments
* error.c (warning_write): accepts multiple arguments to merge
multiple warning messages.
------------------------------------------------------------------------
r60377 | nobu | 2017-10-23 15:25:39 +0900 (Mon, 23 Oct 2017) | 4 lines
stringio.c: write multiple arguments
* ext/stringio/stringio.c (strio_write_m): make StringIO#write
accept multiple arguments, as well as IO#write.
------------------------------------------------------------------------
r60376 | nobu | 2017-10-23 15:05:46 +0900 (Mon, 23 Oct 2017) | 1 line
NEWS: add [Feature #9323] [ci skip]
------------------------------------------------------------------------
r60375 | hsbt | 2017-10-23 14:58:59 +0900 (Mon, 23 Oct 2017) | 1 line
Removed empty dir.
------------------------------------------------------------------------
r60374 | hsbt | 2017-10-23 14:56:25 +0900 (Mon, 23 Oct 2017) | 8 lines
Drop to support NaCl platform.
Because NaCl and PNaCl are already sunset status.
see https://bugs.chromium.org/p/chromium/issues/detail?id=239656#c160
configure.ac: Patch for this file was provided by @nobu.
[Feature #14041][ruby-core:83497][fix GH-1726]
------------------------------------------------------------------------
r60373 | nobu | 2017-10-23 14:28:12 +0900 (Mon, 23 Oct 2017) | 4 lines
io.c: fix infinite retry
* io.c (io_binwritev): fix infinite retry when flushing buffered
data. [Feature #9323]
------------------------------------------------------------------------
r60372 | nobu | 2017-10-23 14:09:35 +0900 (Mon, 23 Oct 2017) | 4 lines
io.c: fix buffered output
* io.c (io_binwritev): append to buffered data, not overwriting.
[Feature #9323]
------------------------------------------------------------------------
r60371 | nobu | 2017-10-23 14:09:34 +0900 (Mon, 23 Oct 2017) | 3 lines
io.c: fix total
* io.c (io_writev): total may be a bignum. [Feature #9323]
------------------------------------------------------------------------
r60370 | nobu | 2017-10-23 11:25:58 +0900 (Mon, 23 Oct 2017) | 4 lines
io.c: no restriction
* io.c (io_write_m): remove argc restriction upto IOV_MAX-1.
[Feature #9323]
------------------------------------------------------------------------
r60369 | sonots | 2017-10-23 01:57:16 +0900 (Mon, 23 Oct 2017) | 1 line
common.mk: add install-capi to make help
------------------------------------------------------------------------
r60368 | svn | 2017-10-23 01:03:58 +0900 (Mon, 23 Oct 2017) | 1 line
* 2017-10-23
------------------------------------------------------------------------
r60367 | kou | 2017-10-23 01:03:57 +0900 (Mon, 23 Oct 2017) | 27 lines
rss itunes: fix a bug that <itunes:explicit> value isn't fully supported
Fix GH-1725
<itunes:explicit> accepts "explicit", "yes", "true", "clean", "no" and
"false" as valid values.
Here is the <itunes:explicit>'s description in
https://help.apple.com/itc/podcasts_connect/#/itcb54353390:
> The <itunes:explicit> tag indicates whether your podcast contains
> explicit material. You can specify the following values:
>
> * Yes | Explicit | True. If you specify yes, explicit, or true,
> indicating the presence of explicit content, the iTunes Store
> displays an Explicit parental advisory graphic for your podcast.
>
> * Clean | No | False. If you specify clean, no, or false, indicating
> that none of your podcast episodes contain explicit language or
> adult content, the iTunes Store displays a Clean parental
> advisory graphic for your podcast.
I don't know whether <itunes:explicit> value is case sensitive or
insensitive. But the current implementation is case insensitive.
Reported by Valerie Woolard Srinivasan. Thanks!!!
------------------------------------------------------------------------
r60366 | yui-knk | 2017-10-22 23:13:50 +0900 (Sun, 22 Oct 2017) | 4 lines
Add test cases for branch coverage
* test/coverage/test_coverage.rb (test_branch_coverage_for_if_statement):
Add a test case for ternary operator.
------------------------------------------------------------------------
r60365 | yui-knk | 2017-10-22 22:58:55 +0900 (Sun, 22 Oct 2017) | 4 lines
Add test cases for branch coverage
* test/coverage/test_coverage.rb (test_branch_coverage_for_if_statement):
Add test cases for modifier if/unless.
------------------------------------------------------------------------
r60364 | yui-knk | 2017-10-22 22:49:41 +0900 (Sun, 22 Oct 2017) | 4 lines
Add test cases for branch coverage
* test/coverage/test_coverage.rb (test_branch_coverage_for_if_statement):
Add test cases for if/unless without else clauses.
------------------------------------------------------------------------
r60363 | yui-knk | 2017-10-22 22:34:24 +0900 (Sun, 22 Oct 2017) | 1 line
test/coverage/test_coverage.rb: Use `<<~` to ease to calculate column of target codes
------------------------------------------------------------------------
r60362 | yui-knk | 2017-10-22 22:18:40 +0900 (Sun, 22 Oct 2017) | 12 lines
Add column numbers to branch coverage
* compile.c (DECL_BRANCH_BASE, ADD_TRACE_BRANCH_COVERAGE): Add
column to arguments.
* compile.c (compile_if, compile_case, compile_when, compile_loop, iseq_compile_each0):
Pass column numbers to macros.
* ext/coverage/coverage.c (branch_coverage): Add column numbers to
a return value.
* test/coverage/test_coverage.rb: Follow-up these changes.
------------------------------------------------------------------------
r60361 | knu | 2017-10-22 21:26:21 +0900 (Sun, 22 Oct 2017) | 1 line
Mention `Set#reset`
------------------------------------------------------------------------
r60360 | knu | 2017-10-22 21:25:34 +0900 (Sun, 22 Oct 2017) | 4 lines
Add `Set#reset`
This method resets the internal state of a set after modification to
existing elements, reindexing and deduplicating them. [Feature #6589]
------------------------------------------------------------------------
r60359 | hsbt | 2017-10-22 20:27:06 +0900 (Sun, 22 Oct 2017) | 3 lines
Fixed misspelling words.
These are detected by https://github.com/client9/misspell
------------------------------------------------------------------------
r60358 | kazu | 2017-10-22 18:16:54 +0900 (Sun, 22 Oct 2017) | 1 line
Use `\A` and `\z` instead of `^` and `$`
------------------------------------------------------------------------
r60357 | kazu | 2017-10-22 18:16:51 +0900 (Sun, 22 Oct 2017) | 1 line
Fix a typo [ci skip]
------------------------------------------------------------------------
r60356 | rhe | 2017-10-22 16:18:55 +0900 (Sun, 22 Oct 2017) | 3 lines
gdbm, dbm, sdbm: remove unnecessary conditions
The dfree and dsize callback functions are never called with NULL.
------------------------------------------------------------------------
r60355 | rhe | 2017-10-22 16:18:54 +0900 (Sun, 22 Oct 2017) | 5 lines
gdbm, dbm, sdbm: prevent memory leak in #initialize
Have the allocator function allocate struct dbmdata too. #initialize
should not call ALLOC() after opening a file since it can fail with
NoMemoryError, leaking the opened file.
------------------------------------------------------------------------
r60354 | yui-knk | 2017-10-22 16:04:00 +0900 (Sun, 22 Oct 2017) | 6 lines
Fix a target method of a test
* test/ruby/test_string.rb (test_delete): I guess
this line should be a test case which asserts
coderange is handled correctly when a result of
String#delete has non-ASCII characters.
------------------------------------------------------------------------
r60353 | kazu | 2017-10-22 16:01:57 +0900 (Sun, 22 Oct 2017) | 5 lines
Update doc of Hash#slice [ci skip]
- Add arguments to call-seq
- Add sample of multiple keys
- Add sample: hash does not contain key
------------------------------------------------------------------------
r60352 | kazu | 2017-10-22 15:30:47 +0900 (Sun, 22 Oct 2017) | 1 line
Fix indent and comment [ci skip]
------------------------------------------------------------------------
r60351 | nobu | 2017-10-22 15:22:50 +0900 (Sun, 22 Oct 2017) | 4 lines
io.c: fix local variables
* io.c (io_writev): fix local variable declarations, when
writev(2) is not available. [Feature #9323]
------------------------------------------------------------------------
r60350 | yui-knk | 2017-10-22 15:11:01 +0900 (Sun, 22 Oct 2017) | 1 line
parse.y (new_scope_gen): adjust indent
------------------------------------------------------------------------
r60349 | nobu | 2017-10-22 15:01:07 +0900 (Sun, 22 Oct 2017) | 4 lines
Add missing `buf` parameter to `recv_nonblock` doc [ci skip]
[Fix GH-1725]
From: yuuji.yaginuma <yuuji.yaginuma@gmail.com>
------------------------------------------------------------------------
r60348 | nobu | 2017-10-22 14:36:49 +0900 (Sun, 22 Oct 2017) | 4 lines
objspace.c: missing types
* ext/objspace/objspace.c (count_nodes): added recently added node
types that were missing.
------------------------------------------------------------------------
r60347 | nobu | 2017-10-22 14:13:57 +0900 (Sun, 22 Oct 2017) | 4 lines
remove NODE_DREGX_ONCE
* node.h (enum node_type): remove NODE_DREGX_ONCE which is not
used anymore.
------------------------------------------------------------------------
r60346 | rhe | 2017-10-22 13:19:03 +0900 (Sun, 22 Oct 2017) | 3 lines
doc/syntax/methods.rdoc: fix a misleading example
As a bonus, wrap a long line added by r60295.
------------------------------------------------------------------------
r60345 | nobu | 2017-10-22 13:06:23 +0900 (Sun, 22 Oct 2017) | 1 line
dir.c: adjust indent [ci skip]
------------------------------------------------------------------------
r60344 | naruse | 2017-10-22 11:19:52 +0900 (Sun, 22 Oct 2017) | 1 line
sort test result
------------------------------------------------------------------------
r60343 | glass | 2017-10-22 11:11:07 +0900 (Sun, 22 Oct 2017) | 4 lines
Make IO#write accept multiple arguments
io.c: make IO#write accept multiple arguments.
it uses writev(2) if possible.
------------------------------------------------------------------------
r60342 | naruse | 2017-10-22 11:08:46 +0900 (Sun, 22 Oct 2017) | 1 line
sort the test result
------------------------------------------------------------------------
r60341 | naruse | 2017-10-22 11:03:49 +0900 (Sun, 22 Oct 2017) | 3 lines
Dir.glob with FNM_EXTGLOB is optimized [Feature #13873]
The order of resulted array is changed in some cases.
------------------------------------------------------------------------
r60340 | nobu | 2017-10-22 10:46:43 +0900 (Sun, 22 Oct 2017) | 5 lines
compile.c: optimize local variable assignments
* compile.c (iseq_peephole_optimize): eliminate simple self
assignments of a local variable when the result is used.
follow-up of r60322.
------------------------------------------------------------------------
r60339 | nobu | 2017-10-22 10:37:36 +0900 (Sun, 22 Oct 2017) | 4 lines
parse.y: workaround for warnings
* parse.y (mark_lvar_used): enable workaround to suppress unused
local variables. [ruby-core:82656] [Bug #13872]
------------------------------------------------------------------------
r60338 | nobu | 2017-10-22 10:13:57 +0900 (Sun, 22 Oct 2017) | 3 lines
fix up r60224
* parse.y (match_op_gen): fix optimization at DREGX_ONCE.
------------------------------------------------------------------------
r60337 | glass | 2017-10-22 09:57:46 +0900 (Sun, 22 Oct 2017) | 4 lines
hash.c: optimize Hash#compare_by_identity
hash.c (rb_hash_compare_by_id): avoid unnecessary allocation of st_table.
formerly, st_table created in rb_hash_modify() was not used and replaced immediately.
------------------------------------------------------------------------
r60336 | yui-knk | 2017-10-22 09:45:05 +0900 (Sun, 22 Oct 2017) | 6 lines
Remove not used node_type NODE_BMETHOD
* ext/objspace/objspace.c (count_nodes): This node_type has
not been used since r24128.
* node.c (dump_node): ditto
* node.h (node_type, NEW_BMETHOD): ditto
------------------------------------------------------------------------
r60335 | glass | 2017-10-22 09:38:05 +0900 (Sun, 22 Oct 2017) | 3 lines
Add arity check into Hash#flatten
* hash.c (rb_hash_flatten): add arity check
------------------------------------------------------------------------
r60334 | yui-knk | 2017-10-22 09:29:40 +0900 (Sun, 22 Oct 2017) | 6 lines
Remove not used node_type NODE_BLOCK_ARG
* ext/objspace/objspace.c (count_nodes): This node_type has
not been used since r11840.
* node.c (dump_node, rb_gc_mark_node): ditto
* node.h (node_type, NEW_BLOCK_ARG): ditto
------------------------------------------------------------------------
r60333 | nobu | 2017-10-22 09:19:12 +0900 (Sun, 22 Oct 2017) | 4 lines
vm_insnhelper.c: array aref optimization
* vm_insnhelper.c (vm_opt_aref): optimize on other than fixnum
argument too.
------------------------------------------------------------------------
r60332 | yui-knk | 2017-10-22 09:17:39 +0900 (Sun, 22 Oct 2017) | 6 lines
Remove not used node_type NODE_TO_ARY
* ext/objspace/objspace.c (count_nodes): This node_type has
not been used since r13236.
* node.c (dump_node, rb_gc_mark_node): ditto
* node.h (node_type, NEW_TO_ARY): ditto
------------------------------------------------------------------------
r60331 | nobu | 2017-10-22 09:00:41 +0900 (Sun, 22 Oct 2017) | 1 line
string.c: comment layout [ci skip]
------------------------------------------------------------------------
r60330 | suke | 2017-10-22 08:57:10 +0900 (Sun, 22 Oct 2017) | 3 lines
ext/win32ole/win32ole.c (fole_missing): set receiver in NoMethodError.
test/win32ole/test_win32ole.rb: ditto.
------------------------------------------------------------------------
r60329 | svn | 2017-10-22 08:49:36 +0900 (Sun, 22 Oct 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60328 | sonots | 2017-10-22 08:49:35 +0900 (Sun, 22 Oct 2017) | 6 lines
* string.c: [DOC] Split rdoc of String#<< and String#concat [ci skip]
Split String#<< and String#concat docs to reflect single and multiple
arguments
patched by MSP-Greg [fix GH-1614]
------------------------------------------------------------------------
r60327 | sonots | 2017-10-22 08:44:15 +0900 (Sun, 22 Oct 2017) | 11 lines
* object.c: Improve documentation of Kernel#Array
Array(arg) does more than just call to_ary or to_a on the argument.
It also falls back to returning [arg] if neither method is available.
This patch extends the description and adds a few examples of how it
handles common types of arguments, including an integer
(which does not implement to_ary or to_a).
Extend Kernel#Array doc to mention TypeError
patched by ragesoss (Sage Ross) [fix GH-1663]
------------------------------------------------------------------------
r60326 | sonots | 2017-10-22 08:38:17 +0900 (Sun, 22 Oct 2017) | 8 lines
* doc/regexp.rdoc: In regexp doc, two backslashes match one literally
In the "Metacharacters and Escapes" section of regexp.rdoc, it said that
to match a backslash literally, it must be backslash-escaped, but the
rendered HTML showed three backslashes (\\\). There should only be two
backslashes (\\).
patched by jlmuir (J. Lewis Muir) [fix GH-1677]
------------------------------------------------------------------------
r60325 | sonots | 2017-10-22 08:36:53 +0900 (Sun, 22 Oct 2017) | 2 lines
* doc/regexp.rdoc: Fix regexp doc syntax highlighting
patched by jlmuir (J. Lewis Muir) [fix GH-1678]
------------------------------------------------------------------------
r60324 | sonots | 2017-10-22 08:35:40 +0900 (Sun, 22 Oct 2017) | 2 lines
* string.c: Remove errant "the" in gsub documentation
patched by jlmuir (J. Lewis Muir) [fix GH-1679]
------------------------------------------------------------------------
r60323 | sonots | 2017-10-22 08:32:57 +0900 (Sun, 22 Oct 2017) | 4 lines
Fix typo in comment
* test/ruby/test_transcode.rb: fix typo in comment
patched by larskanis (Lars Kanis) [GH-1681]
------------------------------------------------------------------------
r60322 | nobu | 2017-10-22 08:30:39 +0900 (Sun, 22 Oct 2017) | 4 lines
compile.c: optimize local variable assignments
* compile.c (iseq_peephole_optimize): eliminate repeated
assignments and copy from/to a same local variable.
------------------------------------------------------------------------
r60321 | akr | 2017-10-22 08:23:05 +0900 (Sun, 22 Oct 2017) | 3 lines
reference Socket.getaddrinfo to Addrinfo.getaddrinfo.
------------------------------------------------------------------------
r60320 | nobu | 2017-10-22 08:21:05 +0900 (Sun, 22 Oct 2017) | 58 lines
Improve performance of string interpolation
This patch will add pre-allocation in string interpolation.
By this, unecessary capacity resizing is avoided.
For small strings, optimized `rb_str_resurrect` operation is
faster, so pre-allocation is done only when concatenated strings
are large. `MIN_PRE_ALLOC_SIZE` was decided by experimenting with
local machine (x86_64-apple-darwin 16.5.0, Apple LLVM version
8.1.0 (clang - 802.0.42)).
String interpolation will be faster around 72% when large string is created.
* Before
```
Calculating -------------------------------------
Large string interpolation
1.276M ({U+00B1} 5.9%) i/s - 6.358M in 5.002022s
Small string interpolation
5.156M ({U+00B1} 5.5%) i/s - 25.728M in 5.005731s
```
* After
```
Calculating -------------------------------------
Large string interpolation
2.201M ({U+00B1} 5.8%) i/s - 11.063M in 5.043724s
Small string interpolation
5.192M ({U+00B1} 5.7%) i/s - 25.971M in 5.020516s
```
* Test code
```ruby
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "Large string interpolation" do |t|
a = "Hellooooooooooooooooooooooooooooooooooooooooooooooooooo"
b = "Wooooooooooooooooooooooooooooooooooooooooooooooooooorld"
t.times do
"#{a}, #{b}!"
end
end
x.report "Small string interpolation" do |t|
a = "Hello"
b = "World"
t.times do
"#{a}, #{b}!"
end
end
end
```
[Fix GH-1626]
From: Nao Minami <south37777@gmail.com>
------------------------------------------------------------------------
r60319 | akr | 2017-10-22 08:19:47 +0900 (Sun, 22 Oct 2017) | 23 lines
deprecate TCPSocket.gethostbyname.
TCPSocket.gethostbyname has problems similar to
Socket.gethostbyname.
An example of the problem which only the address family of
the first address is returned:
```
pp TCPSocket.gethostbyname("www.wide.ad.jp")
#=> ["www.wide.ad.jp",
[],
10,
"2001:200:dff:fff1:216:3eff:fe4b:651c",
"203.178.137.58"]
```
The address family of the first address, AF_INET6 (10), is
returned but
the address family of the second address, AF_INET, is not
returned.
------------------------------------------------------------------------
r60318 | rhe | 2017-10-22 05:26:26 +0900 (Sun, 22 Oct 2017) | 7 lines
openssl: merge test fix from upstream
Merge a commit from upstream:
d1cbf6d75280 test/test_ssl_session: skip tests for session_remove_cb
Tests using SSL::SSLContext#session_remove_cb= are now skipped.
------------------------------------------------------------------------
r60317 | knu | 2017-10-22 02:03:40 +0900 (Sun, 22 Oct 2017) | 6 lines
Avoid use of `self.class.new(self)` in Set#collect!
That prevents infinite recursion when a subclass of Set uses
`collect!` in its constructor.
This should fix [Bug #12437].
------------------------------------------------------------------------
r60316 | naruse | 2017-10-22 01:44:56 +0900 (Sun, 22 Oct 2017) | 1 line
ignore server side error
------------------------------------------------------------------------
r60315 | naruse | 2017-10-22 01:44:56 +0900 (Sun, 22 Oct 2017) | 3 lines
Revert "ignore server side error"
This reverts commit r60314.
------------------------------------------------------------------------
r60314 | naruse | 2017-10-22 01:43:54 +0900 (Sun, 22 Oct 2017) | 1 line
ignore server side error
------------------------------------------------------------------------
r60313 | naruse | 2017-10-22 01:34:34 +0900 (Sun, 22 Oct 2017) | 1 line
fic expected error message
------------------------------------------------------------------------
r60312 | knu | 2017-10-22 01:28:52 +0900 (Sun, 22 Oct 2017) | 4 lines
Fix comparison methods of Set to check if `@hash` is actually comparable
This should fix comparison of rbtree backed SortedSet instances.
[Bug #12072]
------------------------------------------------------------------------
r60311 | naruse | 2017-10-22 01:25:22 +0900 (Sun, 22 Oct 2017) | 3 lines
Introduce Net::HTTP#min_version/max_version [Feature #9450]
Set SSL minimum/maximum version.
------------------------------------------------------------------------
r60310 | naruse | 2017-10-22 01:25:19 +0900 (Sun, 22 Oct 2017) | 1 line
fix OpenSSL::SSL::SSLContext#min_version doesn't work
------------------------------------------------------------------------
r60309 | akr | 2017-10-22 01:12:46 +0900 (Sun, 22 Oct 2017) | 2 lines
less random generations in Random::Formatter#choose.
------------------------------------------------------------------------
r60308 | hsbt | 2017-10-22 01:11:58 +0900 (Sun, 22 Oct 2017) | 5 lines
Add documentation for `chomp` option.
https://github.com/ruby/ruby/pull/1717
Patch by @ksss [fix GH-1717]
------------------------------------------------------------------------
r60307 | yui-knk | 2017-10-22 01:09:51 +0900 (Sun, 22 Oct 2017) | 7 lines
Remove not used node_type NODE_CVDECL
* compile.c (defined_expr0): This node_type has
not been used since r11614.
* ext/objspace/objspace.c (count_nodes): ditto
* node.c (dump_node): ditto
* node.h (node_type, NEW_CVDECL): ditto
------------------------------------------------------------------------
r60306 | hsbt | 2017-10-22 01:05:01 +0900 (Sun, 22 Oct 2017) | 1 line
Handle Errno::EADDRNOTAVAIL with Raspberry Pi environment.
------------------------------------------------------------------------
r60305 | k0kubun | 2017-10-22 01:01:48 +0900 (Sun, 22 Oct 2017) | 1 line
erb.1: add missing option in detailed description
------------------------------------------------------------------------
r60304 | knu | 2017-10-22 00:57:32 +0900 (Sun, 22 Oct 2017) | 3 lines
Use a mutex to make SortedSet.setup thread-safe
This should fix [Bug #13735].
------------------------------------------------------------------------
r60303 | knu | 2017-10-22 00:57:26 +0900 (Sun, 22 Oct 2017) | 1 line
Remove redundant use of module_eval
------------------------------------------------------------------------
r60302 | yui-knk | 2017-10-22 00:56:03 +0900 (Sun, 22 Oct 2017) | 8 lines
Remove not used node_type NODE_IASGN2
* compile.c (compile_massign_opt, iseq_compile_each0): This
node_type has not been used since r11813.
* ext/objspace/objspace.c (count_nodes): ditto
* node.c (dump_node, rb_gc_mark_node): ditto
* node.h (node_type, NEW_IASGN2): ditto
* parse.y (node_assign_gen): ditto
------------------------------------------------------------------------
r60301 | k0kubun | 2017-10-22 00:45:32 +0900 (Sun, 22 Oct 2017) | 1 line
driver.rb: allow executing driver.rb directly
------------------------------------------------------------------------
r60300 | usa | 2017-10-22 00:43:05 +0900 (Sun, 22 Oct 2017) | 9 lines
The encoding of __FILE__ and __dir__ should be same
* ruby.c (process_options): convert the real path of the script to locale
encoding if its encoding is not locale (maybe UTF-8) on Windows/OS X.
this change makes the encoding of __dir__ to the same encoding of __FILE__
when the script name is passed from commandline.
* test/ruby/test_options.rb (test___dir__encoding): test for this change.
------------------------------------------------------------------------
r60299 | k0kubun | 2017-10-22 00:39:35 +0900 (Sun, 22 Oct 2017) | 3 lines
driver.rb: add option to specify target with rbenv
[close GH-1724]
------------------------------------------------------------------------
r60298 | knu | 2017-10-22 00:38:38 +0900 (Sun, 22 Oct 2017) | 1 line
Allow a SortedSet to be frozen and still functional [Bug #12091]
------------------------------------------------------------------------
r60297 | akr | 2017-10-22 00:21:26 +0900 (Sun, 22 Oct 2017) | 13 lines
SecureRandom.alphanumeric implemented.
[ruby-core:68098] [Feature #10849] proposed by Andrew Butterfield.
SecureRandom.choose and SecureRandom.graph is not included.
(The implementation has SecureRandom.choose but it is private.)
I feel the method name, SecureRandom.choose, doesn't represent
the behavior well.
The actual use cases of SecureRandom.graph is not obvious.
------------------------------------------------------------------------
r60296 | svn | 2017-10-22 00:19:46 +0900 (Sun, 22 Oct 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60295 | hsbt | 2017-10-22 00:19:45 +0900 (Sun, 22 Oct 2017) | 5 lines
Clarify return value for assignment methods.
https://github.com/ruby/ruby/pull/1682
Patch by @sos4nt [fix GH-1682]
------------------------------------------------------------------------
r60294 | hsbt | 2017-10-22 00:16:54 +0900 (Sun, 22 Oct 2017) | 6 lines
Clarify the behavior of IO.write without offset in write mode.
https://github.com/ruby/ruby/pull/1571
Patch by @takanabe [fix GH-1571]
[Bug #11638][ruby-core:71277]
------------------------------------------------------------------------
r60293 | k0kubun | 2017-10-22 00:02:46 +0900 (Sun, 22 Oct 2017) | 15 lines
erb.rb: specify frozen_string_literal: true
for compilation performance.
$ ruby ./benchmark/driver.rb -e "trunk::/Users/k0kubun/.rbenv/versions/trunk/bin/ruby;modified::/Users/k0kubun/.rbenv/versions/modified/bin/ruby" -d ./benchmark -p app_erb
-----------------------------------------------------------
benchmark results:
Execution time (sec)
name trunk modified
app_erb 1.911 1.885
Speedup ratio: compare with the result of `trunk' (greater is better)
name modified
app_erb 1.014
------------------------------------------------------------------------
r60292 | svn | 2017-10-22 00:02:26 +0900 (Sun, 22 Oct 2017) | 1 line
* 2017-10-22
------------------------------------------------------------------------
r60291 | hsbt | 2017-10-22 00:02:25 +0900 (Sun, 22 Oct 2017) | 9 lines
Update some words on README.md.
* Remove space on double spaces.
* Capitalization of "Ruby".
* Use macOS instead of OS X.
https://github.com/ruby/ruby/pull/1610
Patch by @bunkrich [fix GH-1610]
------------------------------------------------------------------------
r60290 | hsbt | 2017-10-21 23:55:22 +0900 (Sat, 21 Oct 2017) | 5 lines
Added explicitly require to example code.
https://github.com/ruby/ruby/pull/1666
Patch by @guilherme [fix GH-1666]
------------------------------------------------------------------------
r60289 | yui-knk | 2017-10-21 23:51:07 +0900 (Sat, 21 Oct 2017) | 4 lines
Do not pass a not used argument
* parse.y (new_op_assign_gen): new_op_assign_gen for
ripper does not need column information.
------------------------------------------------------------------------
r60288 | kazu | 2017-10-21 23:40:03 +0900 (Sat, 21 Oct 2017) | 1 line
Use caller with length to reduce unused strings
------------------------------------------------------------------------
r60287 | ko1 | 2017-10-21 23:35:19 +0900 (Sat, 21 Oct 2017) | 1 line
fix r60281
------------------------------------------------------------------------
r60286 | yui-knk | 2017-10-21 23:32:32 +0900 (Sat, 21 Oct 2017) | 4 lines
Define the macro separately for ruby parser and for ripper
* parse.y (new_op_assign): Define the macro separately
for ruby parser and for ripper.
------------------------------------------------------------------------
r60285 | sonots | 2017-10-21 23:31:21 +0900 (Sat, 21 Oct 2017) | 5 lines
Add doxygen comments
* include/ruby/ruby.h (enum ruby_value_type): add doxygen comments
* internal.h (enum imemo_type, struct vm_svar): add doxygen comments
* method.h (rb_method_type_t, rb_method_iseq_t): add doxygen comments
------------------------------------------------------------------------
r60284 | glass | 2017-10-21 23:25:46 +0900 (Sat, 21 Oct 2017) | 4 lines
io.c: introduce copy offload to IO.copy_stream
io.c (rb_io_s_copy_stream): add copy offload feature (by using
copy_file_range(2) if available) to IO.copy_stream
------------------------------------------------------------------------
r60283 | kosaki | 2017-10-21 23:22:12 +0900 (Sat, 21 Oct 2017) | 1 line
test_pathname.rb#test_open should care about umask
------------------------------------------------------------------------
r60282 | kazu | 2017-10-21 23:22:04 +0900 (Sat, 21 Oct 2017) | 1 line
Fix r60271
------------------------------------------------------------------------
r60281 | kosaki | 2017-10-21 23:21:56 +0900 (Sat, 21 Oct 2017) | 1 line
test_cp_preserve_permissions should care about umask
------------------------------------------------------------------------
r60280 | akr | 2017-10-21 23:21:52 +0900 (Sat, 21 Oct 2017) | 9 lines
Describe recommended-methods.
Addrinfo.getaddrinfo is recommended instead of
Socket.gethostbyname.
Addrinfo#getnameinfo is recommended instead of
Socket.gethostbyaddr.
------------------------------------------------------------------------
r60279 | nobu | 2017-10-21 23:19:23 +0900 (Sat, 21 Oct 2017) | 7 lines
sysconfdir on Windows
* ext/etc/etc.c (etc_sysconfdir): mentioned special case on
Windows. [ruby-core:43110] [Bug #6121]
* win32/Makefile.sub (config.status): sysconfdir is not used on
Windows.
------------------------------------------------------------------------
r60278 | hsbt | 2017-10-21 23:11:08 +0900 (Sat, 21 Oct 2017) | 5 lines
Removed obsoleted safe level checks on irb.
https://github.com/ruby/ruby/pull/1713
Patch by @y-yagi [fix GH-1713]
------------------------------------------------------------------------
r60277 | nobu | 2017-10-21 23:06:22 +0900 (Sat, 21 Oct 2017) | 4 lines
fix up r60243
* tool/vcs.rb (VCS::GIT.get_revisions): use last revision also as
changed revision when the head does not have svn ID.
------------------------------------------------------------------------
r60276 | svn | 2017-10-21 22:58:32 +0900 (Sat, 21 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60275 | hsbt | 2017-10-21 22:58:31 +0900 (Sat, 21 Oct 2017) | 5 lines
Fixed unexpected behavior of `Resolv::MDNS#each_address` when given ".local" address.
https://github.com/ruby/ruby/pull/1425
Patch by @elct9620 [fix GH-1484]
------------------------------------------------------------------------
r60274 | hsbt | 2017-10-21 22:49:39 +0900 (Sat, 21 Oct 2017) | 5 lines
Improve docs for `File.delete` exceptions.
https://github.com/ruby/ruby/pull/1505
Patch by @mrtazz [fix GH-1505]
------------------------------------------------------------------------
r60273 | hsbt | 2017-10-21 22:40:12 +0900 (Sat, 21 Oct 2017) | 5 lines
Added sample code of merge! method in hash.c.
https://github.com/ruby/ruby/pull/1652
Patch by @selmertsx [fix GH-1652]
------------------------------------------------------------------------
r60272 | knu | 2017-10-21 22:38:03 +0900 (Sat, 21 Oct 2017) | 1 line
Fix the issue reference to [Bug #13769], handled in r60270
------------------------------------------------------------------------
r60271 | knu | 2017-10-21 22:34:22 +0900 (Sat, 21 Oct 2017) | 1 line
Add a new test case for ipaddr 1.2.0 + drb/acl
------------------------------------------------------------------------
r60270 | knu | 2017-10-21 22:34:19 +0900 (Sat, 21 Oct 2017) | 8 lines
Import ipaddr 1.2.0
- Add IPAddr#prefix
- Add IPAddr#loopback?
- Add IPAddr#private? [Feature #11666]
- Add IPAddr#link_local? [Feature #10912]
- Reject invalid address mask [Bug #13399]
- Warn that IPAddr#ipv4_compat and #ipv4_compat? are deprecated [#Bug 13769]
------------------------------------------------------------------------
r60269 | hsbt | 2017-10-21 22:17:54 +0900 (Sat, 21 Oct 2017) | 3 lines
Rename spec/rspec to .bundle.
It used without rspec installation for test-* task.
------------------------------------------------------------------------
r60268 | kosaki | 2017-10-21 22:15:23 +0900 (Sat, 21 Oct 2017) | 8 lines
kill "discards 'const' qualifier" warning
Kill following warning.
../../../ext/psych/yaml/emitter.c: In function 'yaml_emitter_write_block_scalar_hints':
../../../ext/psych/yaml/emitter.c:2196:20: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
chomp_hint = "-";
^
------------------------------------------------------------------------
r60267 | kosaki | 2017-10-21 22:15:11 +0900 (Sat, 21 Oct 2017) | 8 lines
kill "discards 'const' qualifier" warning
Kill following warning.
../../../ext/psych/yaml/emitter.c: In function 'yaml_emitter_write_folded_scalar':
../../../ext/psych/yaml/emitter.c:2283:5: warning: passing argument 2 of 'yaml_emitter_write_indicator' discards 'const' qualifier from pointer target type [enabled by default]
if (!yaml_emitter_write_indicator(emitter, ">", 1, 0, 0))
^
------------------------------------------------------------------------
r60266 | akr | 2017-10-21 22:13:02 +0900 (Sat, 21 Oct 2017) | 46 lines
Deprecation document for gethostbyname,gethostbyaddr.
[Feature #13097]
I confirmed current ruby (Ruby 2.4 and trunk) uses
gethostbyname() and gethostbyaddr().
Socket.gethostbyname uses getaddrinfo() and gethostbyname().
Socket.gethostbyaddr uses gethostbyaddr().
Socket.gethostbyname uses gethostbyname() to obtain alias hostnames.
RFC 3493 defines getaddrinfo()/getnameinfo() and
describes the problems of gethostbyname()/gethostbyaddr().
The problems are difficult protocol handling and thread-unsafety.
Since Ruby has GVL, the thread-unsafety doesn't cause wrong result.
But it may block other threads until finishing DNS query.
Socket.gethostbyname has the protocol handling problem.
It returns only one address family:
```
% ruby -rpp -rsocket -e 'pp Socket.gethostbyname("www.wide.ad.jp")'
["www.wide.ad.jp",
[],
10,
" \x01\x02\x00\r\xFF\xFF\xF1\x02\x16>\xFF\xFEKe\x1C",
"\xCB\xB2\x89:"]
```
www.wide.ad.jp has one IPv6 address and one IPv4 address.
But Socket.gethostbyname returns only one address family, 10 (AF_INET6),
which is the address family of the first address.
Also, Socket.gethostbyname and Socket.gethostbyaddr uses
4-bytes binary IPv4 address and 16-bytes binary IPv6 address.
This is not usual in other socket API in Ruby.
(Most socket API uses binary sockaddr string or Addrinfo object)
I think Socket.gethostbyname and Socket.gethostbyaddr are too far
from recommendable API.
So, I added deprecation description for documents for them.
------------------------------------------------------------------------
r60265 | yui-knk | 2017-10-21 22:06:36 +0900 (Sat, 21 Oct 2017) | 4 lines
node.h: Remove a not used function prototype
* node.h (rb_node_newnode_longlife): The definition
of this function was deleted r24490.
------------------------------------------------------------------------
r60264 | kosaki | 2017-10-21 22:02:04 +0900 (Sat, 21 Oct 2017) | 8 lines
kill "value computed is not used" warning
Currently, gcc claims your coding style is not good. Shut it up.
../../../ext/psych/yaml/emitter.c: In function 'yaml_emitter_write_plain_scalar':
../../../ext/psych/yaml/emitter.c:28:6: warning: value computed is not used [-Wunused-value]
&& ((emitter->line_break == YAML_CR_BREAK ? \
^
------------------------------------------------------------------------
r60263 | kosaki | 2017-10-21 22:01:51 +0900 (Sat, 21 Oct 2017) | 8 lines
kill variable set but not used warning
Currently, dummy_mark variable makes following warnings. Let's fix it.
../../../ext/psych/yaml/parser.c: In function 'yaml_parser_parse_block_sequence_entry':
../../../ext/psych/yaml/parser.c:762:21: warning: variable 'dummy_mark' set but not used [-Wunused-but-set-variable]
yaml_mark_t dummy_mark; /* Used to eliminate a compiler warning. */
^
------------------------------------------------------------------------
r60262 | kosaki | 2017-10-21 21:57:14 +0900 (Sat, 21 Oct 2017) | 7 lines
kill "variable set but not used" warning
Currently, scanner.c makes following warning. Fix it.
../../../ext/psych/yaml/scanner.c: In function 'yaml_parser_decrease_flow_level':
../../../ext/psych/yaml/scanner.c:1189:23: warning: variable 'dummy_key' set but not used [-Wunused-but-set-variable]
yaml_simple_key_t dummy_key; /* Used to eliminate a compiler warning. */
------------------------------------------------------------------------
r60261 | nobu | 2017-10-21 21:34:13 +0900 (Sat, 21 Oct 2017) | 7 lines
Fix bug about String#scanf("%a")
* lib/scanf.rb (extract_float, initialize): allow to omit a sign
on the binary exponent. [ruby-core:82435] [Bug #13833]
[Fix GH-1689]
From: tarotaro0 <tarousann11922960@yahoo.co.jp>
------------------------------------------------------------------------
r60260 | akr | 2017-10-21 21:22:46 +0900 (Sat, 21 Oct 2017) | 2 lines
add example for Socket.gethostbyaddr.
------------------------------------------------------------------------
r60259 | nobu | 2017-10-21 21:18:38 +0900 (Sat, 21 Oct 2017) | 1 line
gc.c (rb_raw_obj_info): suppress a warning
------------------------------------------------------------------------
r60258 | nobu | 2017-10-21 21:18:35 +0900 (Sat, 21 Oct 2017) | 1 line
gc.c (rb_raw_obj_info): adjust indent
------------------------------------------------------------------------
r60257 | usa | 2017-10-21 21:12:52 +0900 (Sat, 21 Oct 2017) | 6 lines
Treat REG_NONE just like REG_BINARY
* ext/win32/lib/win32/registry.rb (read, write): treat REG_NONE just like
REG_BINARY when reading and writing.
cf. [Bug #7526]
------------------------------------------------------------------------
r60256 | kazu | 2017-10-21 20:59:08 +0900 (Sat, 21 Oct 2017) | 2 lines
Sync svn:ignore [ci skip]
------------------------------------------------------------------------
r60255 | naruse | 2017-10-21 19:44:13 +0900 (Sat, 21 Oct 2017) | 3 lines
Revert "Dir.glob with FNM_EXTGLOB is optimized [Feature #13873]"
This reverts commit r60253 because it causes on error on Linux.
------------------------------------------------------------------------
r60254 | sonots | 2017-10-21 19:33:25 +0900 (Sat, 21 Oct 2017) | 2 lines
* string.c (deleted_prefix_length, deleted_suffix_length):
Add doxygen comment.
------------------------------------------------------------------------
r60253 | naruse | 2017-10-21 19:28:34 +0900 (Sat, 21 Oct 2017) | 3 lines
Dir.glob with FNM_EXTGLOB is optimized [Feature #13873]
The order of resulted array is changed in some cases.
------------------------------------------------------------------------
r60252 | tarui | 2017-10-21 19:26:31 +0900 (Sat, 21 Oct 2017) | 3 lines
fix comment abount IMEMO_FL_USHIFT
------------------------------------------------------------------------
r60251 | ko1 | 2017-10-21 19:23:59 +0900 (Sat, 21 Oct 2017) | 1 line
do not need to clear by NULL because of last commit
------------------------------------------------------------------------
r60250 | ko1 | 2017-10-21 19:21:31 +0900 (Sat, 21 Oct 2017) | 5 lines
imemo_mask (enum) -> IMEMO_MASK (immediate value).
* internal.h: imemo_mask is not a valid imemo type but
switch statements show warnings.
------------------------------------------------------------------------
r60249 | knu | 2017-10-21 18:53:52 +0900 (Sat, 21 Oct 2017) | 4 lines
Make ACL::ACLEntry not suppress IPAddr::InvalidPrefixError
This is because it would be a user error because a pattern containing
a slash shouldn't be a host name pattern but an IP address pattern.
------------------------------------------------------------------------
r60248 | svn | 2017-10-21 18:50:37 +0900 (Sat, 21 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60247 | hsbt | 2017-10-21 18:50:36 +0900 (Sat, 21 Oct 2017) | 4 lines
[EXPERIMENTAL] Added test-bundled-gems task.
`test-bundled-gems` invoke test suite of bundled gems with
build environment.
------------------------------------------------------------------------
r60246 | nobu | 2017-10-21 18:25:05 +0900 (Sat, 21 Oct 2017) | 4 lines
common.mk: preserve rest fields of bundled_gems
* common.mk (update-bundled_gems): preserve rest fields other than
names and versions, for more extensions.
------------------------------------------------------------------------
r60245 | ko1 | 2017-10-21 18:24:59 +0900 (Sat, 21 Oct 2017) | 9 lines
add RUNRUBY_USE_GDB envvar for runruby.rb.
* tool/runruby.rb: add RUNRUBY_USE_GDB environment variable.
If RUNRUBY_USE_GDB=true then use 'gdb --args'.
If there is 'run.gdb' file (made by 'make run.gdb') on current directory,
run gdb with this file ('gdb -x run.gdb --args').
This envval is useful when you want to run test-all (and so on) with gdb.
------------------------------------------------------------------------
r60244 | nobu | 2017-10-21 18:10:42 +0900 (Sat, 21 Oct 2017) | 6 lines
fix up imemo_alloc
* internal.h (rb_imemo_alloc_struct), gc.c (gc_mark_imemo): turned
next into the pointer to chain.
* parse.y (NEWHEAP): needs a cast.
------------------------------------------------------------------------
r60243 | nobu | 2017-10-21 17:56:58 +0900 (Sat, 21 Oct 2017) | 1 line
vcs.rb: try to extract revision number from tags
------------------------------------------------------------------------
r60242 | akr | 2017-10-21 17:44:56 +0900 (Sat, 21 Oct 2017) | 2 lines
RbConfig::LIMITS is provided by rbconfig/sizeof.
------------------------------------------------------------------------
r60241 | akr | 2017-10-21 17:41:59 +0900 (Sat, 21 Oct 2017) | 5 lines
declare variables once for each line in pathname.c.
This ease adding/deleting variables.
------------------------------------------------------------------------
r60240 | usa | 2017-10-21 17:41:22 +0900 (Sat, 21 Oct 2017) | 8 lines
Use GetSystemTimePreciseAsFileTime on recent Windows
* win32/win32.c (gettiemeofday, wutime): use GetSystemTimePreciseAsFileTime
instead of GetSystemTimeAsFileTime if it is available.
This patch is based on Takehiro Kubo <kubo@jiubao.org> 's one (change only
the name of wrapper function). Thanks! and sorry to late
[ruby-dev:50167] [Feature #13732]
------------------------------------------------------------------------
r60239 | mame | 2017-10-21 17:40:28 +0900 (Sat, 21 Oct 2017) | 1 line
Replace NODE_ALLOCA with T_IMEMO (imemo_alloc)
------------------------------------------------------------------------
r60238 | akr | 2017-10-21 17:34:49 +0900 (Sat, 21 Oct 2017) | 4 lines
Pathname#glob method implemented.
[ruby-core:49373] [Feature #7360] proposed by Alexander E. Fischer.
------------------------------------------------------------------------
r60237 | usa | 2017-10-21 16:44:11 +0900 (Sat, 21 Oct 2017) | 5 lines
File.symlink is not potable
* test/fileutils/test_fileutils.rb: skip tests using File.symlink if it's not
available. this problem is reported by ko1.
------------------------------------------------------------------------
r60236 | akr | 2017-10-21 16:00:58 +0900 (Sat, 21 Oct 2017) | 7 lines
lib/open3.rb: accept IO-like object for :stdin_data argument.
Open3.capture3, Open3.capture2, Open3.capture2e accepts
IO-like object for :stdin_data argument.
[ruby-core:80936] [Feature #13527] proposed by janko.
------------------------------------------------------------------------
r60235 | k0kubun | 2017-10-21 15:57:04 +0900 (Sat, 21 Oct 2017) | 6 lines
vm.c, vm_insnhelper.h: export symbols of VM serials
This change is for future JIT compiler introduction.
See r60231 for the purpose.
[close GH-1721]
------------------------------------------------------------------------
r60234 | naruse | 2017-10-21 15:51:01 +0900 (Sat, 21 Oct 2017) | 1 line
[Feature #13712] String#start_with? supports regexp
------------------------------------------------------------------------
r60233 | akr | 2017-10-21 15:45:41 +0900 (Sat, 21 Oct 2017) | 2 lines
[DOC] describe methods used for src and dst argument.
------------------------------------------------------------------------
r60232 | akr | 2017-10-21 15:22:53 +0900 (Sat, 21 Oct 2017) | 2 lines
lib/open-uri.rb: accept :encoding option as well as encoding in mode string.
------------------------------------------------------------------------
r60231 | k0kubun | 2017-10-21 15:22:43 +0900 (Sat, 21 Oct 2017) | 10 lines
vm_core.h: export symbols of shared variables
vm_insnhelper.h: ditto.
All changes are for reducing changes required to introduce JIT compiler.
Unlike functions that can be inlined by header, those variables should
be shared with JIT-ed code. This will help reducing cost of rebase
against upstream.
[close GH-1720]
------------------------------------------------------------------------
r60230 | glass | 2017-10-21 15:11:01 +0900 (Sat, 21 Oct 2017) | 1 line
Update NEWS for Hash#slice
------------------------------------------------------------------------
r60229 | glass | 2017-10-21 15:08:33 +0900 (Sat, 21 Oct 2017) | 3 lines
hash.c: Add Hash#slice
* hash.c (rb_hash_slice): add Hash#slice [Feature #8499]
------------------------------------------------------------------------
r60228 | knu | 2017-10-21 14:18:40 +0900 (Sat, 21 Oct 2017) | 1 line
Replace `to_a[1..-1]` on a MatchData with `captures`
------------------------------------------------------------------------
r60227 | knu | 2017-10-21 14:18:38 +0900 (Sat, 21 Oct 2017) | 1 line
Remove redundant calls of String#chr
------------------------------------------------------------------------
r60226 | nobu | 2017-10-21 12:18:46 +0900 (Sat, 21 Oct 2017) | 1 line
assertion for r60225
------------------------------------------------------------------------
r60225 | yui-knk | 2017-10-21 11:50:38 +0900 (Sat, 21 Oct 2017) | 17 lines
Do not literal_flush if float is read correctly
* parse.y (parse_numeric): Do not literal_flush if
float is read correctly. This will fix the first
column of float.
before:
```
1.2i1.1
^
```
after:
```
1.2i1.1
^~~
```
------------------------------------------------------------------------
r60224 | nobu | 2017-10-21 10:06:25 +0900 (Sat, 21 Oct 2017) | 1 line
moved node generation for dregex_once to parse.y
------------------------------------------------------------------------
r60223 | yui-knk | 2017-10-21 09:14:32 +0900 (Sat, 21 Oct 2017) | 4 lines
Fix build on Windows
* parse.y (new_cdecl_gen): Rename local variable name
from cdecl to nd_cdecl. We can not use cdecl on Windows.
------------------------------------------------------------------------
r60222 | svn | 2017-10-21 01:22:24 +0900 (Sat, 21 Oct 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60221 | svn | 2017-10-21 01:22:24 +0900 (Sat, 21 Oct 2017) | 1 line
* 2017-10-21
------------------------------------------------------------------------
r60220 | yui-knk | 2017-10-21 01:22:22 +0900 (Sat, 21 Oct 2017) | 14 lines
Store token first column number on RNode
* node.c (A_NODE_HEADER): Print column number.
* node.h (nd_column, nd_set_column): Define getter/setter
macros for column number of RNode.
* parse.y: Set first column number of tokens.
Notes:
* Use `@n` to get the location of token in parse.y.
* When we use `@n`, arguments of yyerror and yylex are
changed.
* Initialize column of nodes with -1 to make it easy
to detect nodes which we forget to set a column number.
------------------------------------------------------------------------
r60219 | hsbt | 2017-10-20 18:03:37 +0900 (Fri, 20 Oct 2017) | 3 lines
Merge rubygems master(ddbf3203f3857649abe95c73edefc7de7e6ecff4).
It fixed: https://github.com/rubygems/rubygems/issues/2041
------------------------------------------------------------------------
r60218 | hsbt | 2017-10-20 16:03:11 +0900 (Fri, 20 Oct 2017) | 4 lines
Overwrite destination symlink file if `remove_destination` is set.
[Bug #13914][ruby-core:82846] Patch by @mzp
https://github.com/ruby/fileutils/pull/9
------------------------------------------------------------------------
r60217 | svn | 2017-10-20 10:03:19 +0900 (Fri, 20 Oct 2017) | 1 line
* 2017-10-20
------------------------------------------------------------------------
r60216 | nobu | 2017-10-20 10:03:18 +0900 (Fri, 20 Oct 2017) | 9 lines
Make Time.parse respect timezone offset seconds
DateTime.parse handles them correctly, and DateTime.parse.to_time
results in the correct time. Time.parse doesn't handle them
correctly because Time.zone_offset uses a different regexp that
only considers hours and minutes, not seconds.
[ruby-core:83400] [Bug #14034]
From: Jeremy Evans <code@jeremyevans.net>
------------------------------------------------------------------------
r60215 | nobu | 2017-10-19 20:24:03 +0900 (Thu, 19 Oct 2017) | 5 lines
ruby.c: reject NUL in $0
* ruby.c (ruby_setproctitle): raise if the argument contains NUL
char. process title is a NUL-terminated string.
[ruby-core:82425] [Bug #13829]
------------------------------------------------------------------------
r60214 | nobu | 2017-10-19 19:58:08 +0900 (Thu, 19 Oct 2017) | 7 lines
freeze Complex and Rational
* complex.c (nucomp_s_new_internal, nucomp_loader): Complex
instances are always frozen now. [Feature #13983]
* rational.c (nurat_s_new_internal, nurat_loader): Rational
instances are always frozen now. [Feature #13983]
------------------------------------------------------------------------
r60213 | nobu | 2017-10-19 14:10:38 +0900 (Thu, 19 Oct 2017) | 4 lines
parse.y: indent at '#'
* parse.y (parser_here_document): update indent at '#', which is
not a space. [ruby-core:83368] [Bug #14032]
------------------------------------------------------------------------
r60212 | nobu | 2017-10-19 13:25:30 +0900 (Thu, 19 Oct 2017) | 5 lines
lexer.rb: no dedent strings in middle
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): dedent only
strings at the beginning, not strings in middle.
[ruby-core:83343] [Bug #14027]
------------------------------------------------------------------------
r60211 | normal | 2017-10-19 08:34:02 +0900 (Thu, 19 Oct 2017) | 6 lines
webrick: fix up r60172 and r60210
Thanks to MSP-Greg (Greg L) for helping with this.
* lib/webrick/server.rb (start_thread): properly fix non-local return
introduced in r60208 and r60210
------------------------------------------------------------------------
r60210 | normal | 2017-10-19 08:23:33 +0900 (Thu, 19 Oct 2017) | 6 lines
webrick: fix up r60172 and r60208
Thanks to MSP-Greg (Greg L) for helping with this.
* lib/webrick/server.rb (start_thread): fix non-local return
introduced in r60208
------------------------------------------------------------------------
r60209 | svn | 2017-10-19 06:45:35 +0900 (Thu, 19 Oct 2017) | 1 line
* 2017-10-19
------------------------------------------------------------------------
r60208 | normal | 2017-10-19 06:45:34 +0900 (Thu, 19 Oct 2017) | 9 lines
webrick: fix up r60172 and revert r60189
Thanks to MSP-Greg (Greg L) for helping with this.
* lib/webrick/server.rb (start_thread): ignore ECONNRESET, ECONNABORTED,
EPROTO, and EINVAL on TLS negotiation errors the same way they
were ignored before r60172 in the accept_client method of the
main acceptor thread.
[Bug #14013] [Bug #14005]
------------------------------------------------------------------------
r60207 | nobu | 2017-10-18 22:08:53 +0900 (Wed, 18 Oct 2017) | 4 lines
parse.y: serial comparisons
* parse.y (rel_expr): warn sequence of comparisons, which would be
probably unintentional. [EXPERIMENTAL]
------------------------------------------------------------------------
r60206 | nobu | 2017-10-18 22:08:53 +0900 (Wed, 18 Oct 2017) | 3 lines
parse.y: relop
* parse.y (relop): extract to simplify comparisons.
------------------------------------------------------------------------
r60205 | svn | 2017-10-18 13:35:27 +0900 (Wed, 18 Oct 2017) | 1 line
* 2017-10-18
------------------------------------------------------------------------
r60204 | nobu | 2017-10-18 13:35:25 +0900 (Wed, 18 Oct 2017) | 1 line
Get rid of shadowing local variables
------------------------------------------------------------------------
r60203 | nobu | 2017-10-17 21:40:00 +0900 (Tue, 17 Oct 2017) | 4 lines
tempfile.rb: [DOC] all arguments [ci skip]
* lib/tempfile.rb (Tempfile.create): mention the other arguments
too. [ruby-core:83321] [Misc #14019]
------------------------------------------------------------------------
r60202 | nobu | 2017-10-17 21:30:12 +0900 (Tue, 17 Oct 2017) | 4 lines
node.c: all node types
* node.c (dump_node): moved rb_bug for unknown node outside to let
unhandled node types be warned.
------------------------------------------------------------------------
r60201 | nobu | 2017-10-17 21:30:11 +0900 (Tue, 17 Oct 2017) | 1 line
node.c: adjust indent
------------------------------------------------------------------------
r60200 | nobu | 2017-10-17 21:05:32 +0900 (Tue, 17 Oct 2017) | 3 lines
compile.c: compile_for
* compile.c (compile_for): extract from iseq_compile_each.
------------------------------------------------------------------------
r60199 | nobu | 2017-10-17 21:05:30 +0900 (Tue, 17 Oct 2017) | 3 lines
compile.c: compile_iter
* compile.c (compile_iter): extract from iseq_compile_each.
------------------------------------------------------------------------
r60198 | kazu | 2017-10-17 20:58:51 +0900 (Tue, 17 Oct 2017) | 3 lines
Fix warning: assigned but unused variable
[Bug #14020][ruby-core:83313]
------------------------------------------------------------------------
r60197 | mame | 2017-10-17 20:38:16 +0900 (Tue, 17 Oct 2017) | 1 line
Improve some annotation names of output of parsetree-with-comment
------------------------------------------------------------------------
r60196 | yui-knk | 2017-10-17 20:13:53 +0900 (Tue, 17 Oct 2017) | 3 lines
node.c: Add NODE_OP_CDECL to dump node list.
* node.c (dump_node): Add NODE_OP_CDECL to dump node list.
------------------------------------------------------------------------
r60195 | mame | 2017-10-17 16:41:04 +0900 (Tue, 17 Oct 2017) | 1 line
Fix the leak in `TestRDocGeneratorDarkfish#test_generated_method_with_html_tag_yield`
------------------------------------------------------------------------
r60194 | mame | 2017-10-17 16:41:03 +0900 (Tue, 17 Oct 2017) | 12 lines
Suppress leak of file descriptors
`Bundler.ui=` in `Gem::TestCase#setup` creates `Bundler::UI::RGProxy`
which inherites `::Gem::SilentUI` whose `initialize` opens `/dev/null`,
and assigns it to `Gem::DefaultUserInteraction.ui`.
After that, `Gem::TestCase#setup` forces to overwrite
`Gem::DefaultUserInteraction.ui` with a mock.
Thus, the instance of `::Gem::SilentUI` is not closed, which leads to
the leak.
This commit keeps `Gem::DefaultUserInteraction.ui` and manually close it
in `teardown`.
------------------------------------------------------------------------
r60193 | nobu | 2017-10-17 08:11:40 +0900 (Tue, 17 Oct 2017) | 7 lines
Layout fixes in rdoc of lib/tempfile.rb [ci skip]
RDoc doesn't understand an asterisk inside the plus markers. Moving them
out of the markers looks better.
[Fix GH-1716]
From: Herwin Weststrate <herwinw@herwinw.nl>
------------------------------------------------------------------------
r60192 | svn | 2017-10-17 04:42:34 +0900 (Tue, 17 Oct 2017) | 1 line
* 2017-10-17
------------------------------------------------------------------------
r60191 | normal | 2017-10-17 04:42:33 +0900 (Tue, 17 Oct 2017) | 3 lines
spec/ruby/optional/capi/io_spec.rb: speling fics
* spec/ruby/optional/capi/io_spec.rb: speling: s/writeable/writable/
------------------------------------------------------------------------
r60190 | nobu | 2017-10-16 14:00:21 +0900 (Mon, 16 Oct 2017) | 4 lines
configure.ac: fix SOEXT on Windows
* configure.ac (SOEXT): shoud be "dll" on Windows.
[ruby-core:83208] [Bug #14002]
------------------------------------------------------------------------
r60189 | normal | 2017-10-16 13:33:53 +0900 (Mon, 16 Oct 2017) | 14 lines
webrick: fix up r60172
By making the socket non-blocking in r60172, TLS/SSL negotiation
via the SSL_accept function must handle non-blocking sockets
properly and retry on SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE.
OpenSSL::SSL::SSLSocket#accept cannot do that properly with a
non-blocking socket, so it must use non-blocking logic of
OpenSSL::SSL::SSLSocket#accept_nonblock.
Thanks to MSP-Greg (Greg L) for finding this.
* lib/webrick/server.rb (start_thread): use SSL_accept properly
with non-blocking socket.
[Bug #14013] [Bug #14005]
------------------------------------------------------------------------
r60188 | nobu | 2017-10-16 13:19:48 +0900 (Mon, 16 Oct 2017) | 5 lines
test_complex.rb: NaN Complex
* test/ruby/test_complex.rb (test_finite_p): assertions for NaN
Complex. NaN is not an infinite nor a finite number.
[ruby-core:83272] [Bug #14014]
------------------------------------------------------------------------
r60187 | nobu | 2017-10-16 13:15:19 +0900 (Mon, 16 Oct 2017) | 7 lines
fix missing variables in ruby.pc
* configure.ac (LIBRUBY_SO): get rid of referrence to
LIBRUBY_SONAME which is not present in ruby.pc.
* template/ruby.pc.in (RUBY_API_VERSION, SOEXT): add new
variables. [ruby-core:83208] [Bug #14002]
------------------------------------------------------------------------
r60186 | svn | 2017-10-16 01:05:07 +0900 (Mon, 16 Oct 2017) | 1 line
* 2017-10-16
------------------------------------------------------------------------
r60185 | nobu | 2017-10-16 01:05:06 +0900 (Mon, 16 Oct 2017) | 4 lines
error.c: [DOC] fix typo [ci skip]
* error.c (RuntimeError): example code uses Kernel#raise instance
method, not Kernel.raise singleton method.
------------------------------------------------------------------------
r60184 | nobu | 2017-10-15 11:31:29 +0900 (Sun, 15 Oct 2017) | 5 lines
configure.ac: fix SONAME
* configure.ac (RUBY_SO_NAME): revert $(RUBY_API_VERSION:.=) to
$(MAJOR)$(MINOR), as a string in middle is not replaced.
[ruby-core:83208] [Bug #14002]
------------------------------------------------------------------------
r60183 | nobu | 2017-10-15 11:20:20 +0900 (Sun, 15 Oct 2017) | 4 lines
envutil.rb: precommand in invoke_ruby [ci skip]
* test/lib/envutil.rb (invoke_ruby): add precommand option to
invoke ruby via some other commands, e.g., sudo.
------------------------------------------------------------------------
r60182 | nobu | 2017-10-15 00:55:14 +0900 (Sun, 15 Oct 2017) | 5 lines
configure.ac: link Foundation framework
* configure.ac (XLDFLAGS): link against Foundation framework and
let __NSPlaceholderDictionary initialize, to get rid of crash
after fork on macOS High Sierra. [ruby-core:83239] [Bug #14009]
------------------------------------------------------------------------
r60181 | svn | 2017-10-15 00:35:06 +0900 (Sun, 15 Oct 2017) | 1 line
* 2017-10-15
------------------------------------------------------------------------
r60180 | nobu | 2017-10-15 00:35:05 +0900 (Sun, 15 Oct 2017) | 5 lines
configure.ac: LIBRUBY_SONAME
* configure.ac (LIBRUBY_SONAME): add new variable for the name of
the library name with compatibility version.
[ruby-core:83208] [Bug #14002]
------------------------------------------------------------------------
r60179 | nobu | 2017-10-14 11:17:07 +0900 (Sat, 14 Oct 2017) | 6 lines
distinguish pass and fail by highlight [ci skip]
* tool/colorize.rb: remove highlight attribute from "pass" to make
distinguishable from "fail" by other than red-green colors.
* tool/ifchange: ditto.
------------------------------------------------------------------------
r60178 | svn | 2017-10-14 10:59:48 +0900 (Sat, 14 Oct 2017) | 1 line
* 2017-10-14
------------------------------------------------------------------------
r60177 | nobu | 2017-10-14 10:59:47 +0900 (Sat, 14 Oct 2017) | 5 lines
configure.ac: no _objc_msgSend trick
* configure.ac (XLDFLAGS): _objc_msgSend is no longer needed to
link CoreFoundation, that framework is always used for CFString
functions.
------------------------------------------------------------------------
r60176 | nobu | 2017-10-13 17:29:52 +0900 (Fri, 13 Oct 2017) | 3 lines
defines.h: warn EXTERN
* include/ruby/defines.h (EXTERN): warn as deprecated.
------------------------------------------------------------------------
r60175 | nobu | 2017-10-13 10:34:52 +0900 (Fri, 13 Oct 2017) | 6 lines
error.c: infinite recursion at Warning#warn
* error.c (rb_warn_m): write the message to rb_stderr directly, to
get rid of infinite recursion when called on Warning module
itself, by super in redefined Warning#warn.
[ruby-dev:50293] [Bug #14006]
------------------------------------------------------------------------
r60174 | nobu | 2017-10-13 10:26:51 +0900 (Fri, 13 Oct 2017) | 4 lines
rbinstall.rb: fix for --cmd-type=cmd
* tool/rbinstall.rb (PROLOG_SCRIPT): fix wrapper code for cmd
script. [Bug#13997]
------------------------------------------------------------------------
r60173 | svn | 2017-10-13 03:50:08 +0900 (Fri, 13 Oct 2017) | 1 line
* 2017-10-13
------------------------------------------------------------------------
r60172 | normal | 2017-10-13 03:50:07 +0900 (Fri, 13 Oct 2017) | 20 lines
webrick: do not hang acceptor on slow TLS connections
OpenSSL::SSL::SSLSocket#accept may block indefinitely on clients
which negotiate the TCP connection, but fail (or are slow) to
negotiate the subsequent TLS handshake. This prevents the
multi-threaded WEBrick server from accepting other connections.
Since the TLS handshake (via OpenSSL::SSL::SSLSocket#accept)
consists of normal read/write traffic over TCP, handle it in the
per-client thread, instead.
Furthermore, using non-blocking accept() is useful for non-TLS
sockets anyways because spurious wakeups are possible from
select(2).
* lib/webrick/server.rb (accept_client): use TCPServer#accept_nonblock
and remove OpenSSL::SSL::SSLSocket#accept call
* lib/webrick/server.rb (start_thread): call OpenSSL::SSL::SSLSocket#accept
* test/webrick/test_ssl_server.rb (test_slow_connect): new test
[ruby-core:83221] [Bug #14005]
------------------------------------------------------------------------
r60171 | nobu | 2017-10-12 16:27:16 +0900 (Thu, 12 Oct 2017) | 4 lines
rbinstall.rb: shell code as comments
* tool/rbinstall.rb (PROLOG_SCRIPT): wrap shell code by
=begin/=end as comments. [ruby-core:83202] [Bug#13997]
------------------------------------------------------------------------
r60170 | svn | 2017-10-12 10:38:07 +0900 (Thu, 12 Oct 2017) | 1 line
* 2017-10-12
------------------------------------------------------------------------
r60169 | hsbt | 2017-10-12 10:38:07 +0900 (Thu, 12 Oct 2017) | 3 lines
Removed unnecessary gem locking for avoiding test warnings.
It causes test failure: http://ci.rvm.jp/results/trunk@P895/111404
------------------------------------------------------------------------
r60167 | kazu | 2017-10-11 21:07:39 +0900 (Wed, 11 Oct 2017) | 2 lines
Sync .gitignore and svn:ignore [ci skip]
------------------------------------------------------------------------
r60166 | sonots | 2017-10-11 20:39:15 +0900 (Wed, 11 Oct 2017) | 4 lines
* .gitignore: ignore exe/ruby and exe/.time instead of bin/ruby
because bin/ruby was renamed as exe/ruby at r59937.
follow-up: [Bug #13911]
------------------------------------------------------------------------
r60165 | nobu | 2017-10-11 17:14:50 +0900 (Wed, 11 Oct 2017) | 1 line
NEWS: refine the entry about RDoc [ci skip]
------------------------------------------------------------------------
r60164 | ko1 | 2017-10-11 17:11:16 +0900 (Wed, 11 Oct 2017) | 6 lines
revert a part of r60163.
* test/ruby/test_settracefunc.rb (test_trace_point_binding_in_ifunc):
do not need other threads because this script is invoked by another
ruby process (and also remove typo).
------------------------------------------------------------------------
r60163 | ko1 | 2017-10-11 16:49:03 +0900 (Wed, 11 Oct 2017) | 5 lines
check a thread on TracePoint.
* test/ruby/test_settracefunc.rb: skip if TracePoint probes are invoked by
non-main thread.
------------------------------------------------------------------------
r60162 | nobu | 2017-10-11 15:16:04 +0900 (Wed, 11 Oct 2017) | 5 lines
socket.c: null byte at Socket.getnameinfo
* ext/socket/socket.c (sock_s_getnameinfo): check null byte.
patched by tommy (Masahiro Tomita) in [ruby-dev:50286].
[Bug #13994]
------------------------------------------------------------------------
r60161 | nobu | 2017-10-11 15:16:03 +0900 (Wed, 11 Oct 2017) | 4 lines
process.c: null byte at initgroups
* process.c (proc_initgroups): check null byte. patched by
tommy (Masahiro Tomita) in [ruby-dev:50287]. [Bug #13995]
------------------------------------------------------------------------
r60160 | nobu | 2017-10-11 14:34:24 +0900 (Wed, 11 Oct 2017) | 4 lines
parse.y: token info with BOM
* parse.y (parser_prepare): set token_info_enabled flag first,
before returning at BOM. [ruby-dev:50288] [Bug #13998]
------------------------------------------------------------------------
r60159 | nobu | 2017-10-11 13:45:08 +0900 (Wed, 11 Oct 2017) | 4 lines
file.c: ALT_SEPARATOR on cygwin
* file.c (file_alt_separator): define only on DOSISH platforms.
File::ALT_SEPARATOR is nil on cygwin.
------------------------------------------------------------------------
r60158 | svn | 2017-10-11 12:44:36 +0900 (Wed, 11 Oct 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60157 | svn | 2017-10-11 12:44:36 +0900 (Wed, 11 Oct 2017) | 1 line
* 2017-10-11
------------------------------------------------------------------------
r60156 | hsbt | 2017-10-11 12:44:35 +0900 (Wed, 11 Oct 2017) | 1 line
Added news entries of RDoc and Rubygems.
------------------------------------------------------------------------
r60155 | nobu | 2017-10-10 21:30:42 +0900 (Tue, 10 Oct 2017) | 4 lines
io.c: encoding of ARGF.inplace_mode
* io.c (argf_next_argv): encode inplace mode suffix to the path
encoding.
------------------------------------------------------------------------
r60154 | nobu | 2017-10-10 19:42:52 +0900 (Tue, 10 Oct 2017) | 4 lines
io.c: path name conversion at ARGF
* io.c (argf_next_argv): the standard conversion to path name
should take place.
------------------------------------------------------------------------
r60150 | svn | 2017-10-10 17:58:23 +0900 (Tue, 10 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60149 | hsbt | 2017-10-10 17:58:22 +0900 (Tue, 10 Oct 2017) | 3 lines
Merge rubygems-2.6.14 changes.
It fixed http://blog.rubygems.org/2017/10/09/unsafe-object-deserialization-vulnerability.html
------------------------------------------------------------------------
r60148 | hsbt | 2017-10-10 13:54:49 +0900 (Tue, 10 Oct 2017) | 3 lines
Removed obsoleted test for RubyToken.
[Bug #13991][ruby-core:83188] Patch by MSP-Greg.
------------------------------------------------------------------------
r60147 | svn | 2017-10-10 11:01:01 +0900 (Tue, 10 Oct 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r60146 | hsbt | 2017-10-10 11:01:00 +0900 (Tue, 10 Oct 2017) | 6 lines
Merge rdoc-6.0.0.beta3.
* It version introduced did you mean? feature for ri command:
https://github.com/ruby/rdoc/pull/533
* Removed obbsoleted ruby_token.rbb.
[Bug #13990][ruby-core:83180]
------------------------------------------------------------------------
r60145 | svn | 2017-10-10 04:00:23 +0900 (Tue, 10 Oct 2017) | 1 line
* 2017-10-10
------------------------------------------------------------------------
r60144 | normal | 2017-10-10 04:00:22 +0900 (Tue, 10 Oct 2017) | 5 lines
webrick: avoid needless wakeup from IO.select
Since r51231 ("webrick/server.rb: stop immediately"),
there is no need to poll on the @status change every
two seconds.
------------------------------------------------------------------------
r60143 | kazu | 2017-10-09 20:20:00 +0900 (Mon, 09 Oct 2017) | 3 lines
Remove unused test files related `$SAFE>=2`
unused since r14024
------------------------------------------------------------------------
r60142 | svn | 2017-10-09 12:08:03 +0900 (Mon, 09 Oct 2017) | 1 line
* 2017-10-09
------------------------------------------------------------------------
r60141 | nobu | 2017-10-09 12:08:02 +0900 (Mon, 09 Oct 2017) | 5 lines
verconf.h.tmpl: site and vendor directories
* template/verconf.h.tmpl: disable site and vendor directories
when removed. based on the path by arnoldwald (arnold w) at
[ruby-core:81563]. [Bug #13631]
------------------------------------------------------------------------
r60140 | hsbt | 2017-10-08 18:13:03 +0900 (Sun, 08 Oct 2017) | 3 lines
Removed unnecessary json loading.
It causes test fail on http://ci.rvm.jp/results/trunk-test@frontier/101990
------------------------------------------------------------------------
r60139 | kazu | 2017-10-08 16:00:01 +0900 (Sun, 08 Oct 2017) | 1 line
Remove unnecessary `require 'thread'`
------------------------------------------------------------------------
r60138 | nobu | 2017-10-08 15:00:57 +0900 (Sun, 08 Oct 2017) | 4 lines
parse.y: fix a typo
* parse.y (f_kw): fix typo. needs the argument value, not the
label twice. [ruby-core:83174] [Bug #13987]
------------------------------------------------------------------------
r60137 | nobu | 2017-10-08 14:14:18 +0900 (Sun, 08 Oct 2017) | 5 lines
.gdbinit: newline at rp_id [ci skip]
* .gdbinit (rp_id): add a newline.
* .gdbinit (print_id): should not print a newline here.
------------------------------------------------------------------------
r60136 | svn | 2017-10-08 10:32:22 +0900 (Sun, 08 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60135 | svn | 2017-10-08 10:32:22 +0900 (Sun, 08 Oct 2017) | 1 line
* remove trailing spaces, append newline at EOF.
------------------------------------------------------------------------
r60134 | svn | 2017-10-08 10:32:20 +0900 (Sun, 08 Oct 2017) | 1 line
* 2017-10-08
------------------------------------------------------------------------
r60133 | hsbt | 2017-10-08 10:32:18 +0900 (Sun, 08 Oct 2017) | 4 lines
Merge rubygems master.
This is RC version of Rubygems 2.7.0.
https://github.com/rubygems/rubygems/commit/688fb7e83c13c3fe7c2bb03c49a2db4c82852aee
------------------------------------------------------------------------
r60132 | svn | 2017-10-07 11:23:28 +0900 (Sat, 07 Oct 2017) | 1 line
* 2017-10-07
------------------------------------------------------------------------
r60131 | nobu | 2017-10-07 11:23:27 +0900 (Sat, 07 Oct 2017) | 5 lines
zlib.c: ensure to free
* ext/zlib/zlib.c (zlib_gunzip): gz0 is a structure variable on
the stack, no longer valid after exit by an exception. ensure
to free instead. [Bug #13982]
------------------------------------------------------------------------
r60130 | nobu | 2017-10-06 22:41:37 +0900 (Fri, 06 Oct 2017) | 4 lines
zlib.c: memory leak in gunzip
* ext/zlib/zlib.c (zlib_gunzip): clear zstream to fix memory leak.
[ruby-core:83162] [Bug #13982]
------------------------------------------------------------------------
r60129 | naruse | 2017-10-06 20:17:38 +0900 (Fri, 06 Oct 2017) | 6 lines
configure.ac: detect mandoc and set MANTYPE=doc
OpenBSD uses mandoc [Feature #13981] [ruby-core:83146]
Note: AC_PATH_PROGS_FEATURE_CHECK is autoconf 2.62 feature,
but current CRuby declares AC_PREREQ(2.67); it's safe to use.
Patched by kernigh (George Koehler)
------------------------------------------------------------------------
r60128 | nobu | 2017-10-06 15:11:25 +0900 (Fri, 06 Oct 2017) | 6 lines
.gdbinit: print_id in rp_id [ci skip]
* .gdbinit (rp_id): use print_id instead of calling
lookup_id_str() in a debugger context.
* symbol.c (ID_ENTRY_UNIT): made visible to debuggers.
------------------------------------------------------------------------
r60127 | nobu | 2017-10-06 14:55:11 +0900 (Fri, 06 Oct 2017) | 7 lines
proc.c: super_method of included method
* proc.c (method_super_method): search the next super method along
the included ancestor chain. [ruby-core:83114] [Bug #13973]
* vm_method.c (rb_callable_method_entry_without_refinements):
return the defined class.
------------------------------------------------------------------------
r60126 | nobu | 2017-10-06 14:55:10 +0900 (Fri, 06 Oct 2017) | 1 line
proc.c: prefer name method result to inspect
------------------------------------------------------------------------
r60125 | nobu | 2017-10-06 09:15:08 +0900 (Fri, 06 Oct 2017) | 4 lines
No more ubygems in trunk
[Fix GH-1711]
Author: MSP-Greg <MSP-Greg@users.noreply.github.com>
------------------------------------------------------------------------
r60124 | svn | 2017-10-06 06:53:54 +0900 (Fri, 06 Oct 2017) | 1 line
* 2017-10-06
------------------------------------------------------------------------
r60123 | normal | 2017-10-06 06:53:54 +0900 (Fri, 06 Oct 2017) | 7 lines
webrick: avoid unnecessary IO#sync= call
Sockets and pipes are always created with FMODE_SYNC flag
already set (otherwise many things would be broken).
* lib/webrick/server.rb (accept_client): remove unnecessary
IO#sync= call
------------------------------------------------------------------------
r60122 | hsbt | 2017-10-05 17:32:01 +0900 (Thu, 05 Oct 2017) | 8 lines
Fixed broken `bundle gem` command.
This patch is provided by @gyugyu (Yusuke Yagyu)
* Remove README* entry from no_install that there is no README* files except README.md.tt
* Rename .travis.yml.tt to travis.yml.tt like gitignore.tt
[Bug #13975][ruby-dev:50278][fix GH-1710]
------------------------------------------------------------------------
r60121 | nobu | 2017-10-05 11:35:58 +0900 (Thu, 05 Oct 2017) | 5 lines
io.c: [DOC] about buffering [ci skip]
* io.c (rb_file_initialize): [DOC] stated that non-tty file is
buffered by the default, and added links to related methods.
[ruby-core:83081] [Bug #13965]
------------------------------------------------------------------------
r60120 | nobu | 2017-10-05 10:53:22 +0900 (Thu, 05 Oct 2017) | 4 lines
parse.y: fix KWD2EID
* parse.y (KWD2EID): should respect the previous callback result
for keywords. [ruby-core:83106] [Bug #13971]
------------------------------------------------------------------------
r60119 | hsbt | 2017-10-05 10:43:47 +0900 (Thu, 05 Oct 2017) | 1 line
Fixed invalid gemspec.
------------------------------------------------------------------------
r60118 | svn | 2017-10-05 10:30:09 +0900 (Thu, 05 Oct 2017) | 1 line
* 2017-10-05
------------------------------------------------------------------------
r60117 | hsbt | 2017-10-05 10:30:08 +0900 (Thu, 05 Oct 2017) | 3 lines
Followed up [ruby-core:83093]. Update gemspec attributes.
Added metadata for rubygems.org.
------------------------------------------------------------------------
r60116 | nobu | 2017-10-04 15:47:29 +0900 (Wed, 04 Oct 2017) | 13 lines
parse.y: fix var_field
* parse.y (mlhs_node): dispatch var_field as well as lhs.
* parse.y (lhs, var_hs): dispatch var_field before assignable
check so it is inside assign_error at a wrong assignment, as
well as backref_assign_error.
* parse.y (var_field_gen): wrap var_field value with the variable
ID.
* parse.y (assignable_gen, const_decl_gen): return the callback
result on a syntax error.
------------------------------------------------------------------------
r60115 | nobu | 2017-10-04 14:48:33 +0900 (Wed, 04 Oct 2017) | 4 lines
parse.y: reserved words as <id>
* parse.y (reswords): declare reserved words as <id> to remove
extra cast.
------------------------------------------------------------------------
r60114 | nobu | 2017-10-04 14:30:44 +0900 (Wed, 04 Oct 2017) | 4 lines
test_sexp.rb: test for fname
* test/ripper/test_sexp.rb (test_def_fname): test for fname in def
statement. [ruby-core:83089] [Bug #13967]
------------------------------------------------------------------------
r60113 | nobu | 2017-10-04 13:43:00 +0900 (Wed, 04 Oct 2017) | 4 lines
parse.y: Revert r60102
* parse.y (op): do not set event ID here to dispatch on_op.
[ruby-core:83089] [Bug #13967]
------------------------------------------------------------------------
r60112 | svn | 2017-10-04 09:04:52 +0900 (Wed, 04 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60111 | normal | 2017-10-04 09:04:51 +0900 (Wed, 04 Oct 2017) | 23 lines
Dir.empty? releases GVL
This converts all slow syscalls in the Dir.empty? implementation
to release GVL. We avoid unnecessarily GVL release and
reacquire for each slow call (opendir, readdir, closedir) and
instead only release and acquire the GVL once in the common
case.
Benchmark results show a small degradation in single-threaded
performance:
Execution time (sec)
name trunk built
dir_empty_p 0.689 0.758
Speedup ratio: compare with the result of `trunk' (greater is better)
name built
dir_empty_p 0.909
* dir.c (rb_gc_for_fd_with_gvl): new function
(nogvl_dir_empty_p): ditto
(dir_s_empty_p): use new functions to release GVL
* benchmark/bm_dir_empty_p.rb: new benchmark
[ruby-core:83071] [Feature #13958]
------------------------------------------------------------------------
r60110 | normal | 2017-10-04 08:47:53 +0900 (Wed, 04 Oct 2017) | 17 lines
file.c: release GVL around lstat(2)
Like stat(2), lstat(2) can be expensive on slow filesystems and
should not block other threads. There should be a minor, but
not significant slowdowns in single-threaded performance similar
to benchmarks around the more-portable stat(2):
[ruby-core:83012] [Bug #13941]
* file.c (no_gvl_lstat): new function for rb_thread_call_without_gvl
(lstat_without_gvl): new wrapper to replace lstat(2) calls
(rb_file_s_lstat): s/lstat/&_without_gvl/
(rb_file_lstat): ditto
(rb_file_symlink_p): ditto
(rb_file_s_ftype): ditto
(rb_file_expand_path_internal): ditto
(realpath_rec): ditto
[ruby-core:83075] [Feature #13963]
------------------------------------------------------------------------
r60109 | svn | 2017-10-04 08:47:30 +0900 (Wed, 04 Oct 2017) | 1 line
* 2017-10-04
------------------------------------------------------------------------
r60108 | normal | 2017-10-04 08:47:29 +0900 (Wed, 04 Oct 2017) | 3 lines
file.c: release GVL in File.{setuid?,setgid?,sticky?}
* file.c (check3rdbyte): use rb_stat to release GVL
------------------------------------------------------------------------
r60107 | kazu | 2017-10-03 21:06:14 +0900 (Tue, 03 Oct 2017) | 1 line
Fix leaked file descriptor
------------------------------------------------------------------------
r60106 | nobu | 2017-10-03 16:51:37 +0900 (Tue, 03 Oct 2017) | 1 line
test_parser_events.rb: backref_assign_error
------------------------------------------------------------------------
r60105 | nobu | 2017-10-03 13:56:23 +0900 (Tue, 03 Oct 2017) | 5 lines
parse.y: extract callback results
* parse.y: stripping wrapping NODEs from ripper callback results,
when storing in Array objects. NODEs must not appear in Ruby
level.
------------------------------------------------------------------------
r60104 | nobu | 2017-10-03 13:47:13 +0900 (Tue, 03 Oct 2017) | 1 line
parse.y: set ripper event IDs to keyword variables
------------------------------------------------------------------------
r60103 | svn | 2017-10-03 10:38:54 +0900 (Tue, 03 Oct 2017) | 1 line
* 2017-10-03
------------------------------------------------------------------------
r60102 | nobu | 2017-10-03 10:38:52 +0900 (Tue, 03 Oct 2017) | 1 line
parse.y: set ripper event ID symbols to operators
------------------------------------------------------------------------
r60101 | nobu | 2017-10-02 21:23:17 +0900 (Mon, 02 Oct 2017) | 1 line
use rb_hash_new_with_size()
------------------------------------------------------------------------
r60100 | nobu | 2017-10-02 20:43:36 +0900 (Mon, 02 Oct 2017) | 5 lines
test_call.rb: refine test_safe_call
* test/ruby/test_call.rb (test_safe_call): rhs should not be
evaluated when the receiver is nil. simplified the assertion
for [Bug #13964].
------------------------------------------------------------------------
r60099 | nobu | 2017-10-02 17:33:30 +0900 (Mon, 02 Oct 2017) | 5 lines
compile.c: fix stack consitency error
* compile.c (iseq_compile_each0): fix stack consitency error on
attr-assign with safe navigation operator when the receiver is
nil, should pop it too. [ruby-core:83078] [Bug #13964]
------------------------------------------------------------------------
r60098 | glass | 2017-10-02 16:51:27 +0900 (Mon, 02 Oct 2017) | 3 lines
Revert "vm_eval.c: add rb_yield_assoc_or_values()"
This reverts commit r60095 to prevent performance degradation.
------------------------------------------------------------------------
r60097 | nobu | 2017-10-02 15:46:42 +0900 (Mon, 02 Oct 2017) | 5 lines
io.c: check null char
* io.c (ruby_set_inplace_mode): check if null is contained. based
on the patch by tommy (Masahiro Tomita) in [ruby-dev:50272].
[Bug #13960]
------------------------------------------------------------------------
r60096 | nobu | 2017-10-02 15:46:41 +0900 (Mon, 02 Oct 2017) | 7 lines
test_argf.rb: indent here docs
* test/ruby/test_argf.rb (assert_src_expected): default line
number to caller's location.
* test/ruby/test_argf.rb (test_lineno, test_lineno2): get rid of a
bug of wrong indentation after $. in Emacs 25.3 ruby-mode.el
------------------------------------------------------------------------
r60095 | glass | 2017-10-02 14:29:11 +0900 (Mon, 02 Oct 2017) | 11 lines
vm_eval.c: add rb_yield_assoc_or_values()
The new function rb_yield_assoc_or_values() will reduce branching.
* vm_eval.c: add rb_yield_assoc_or_values()
* internal.h: ditto
* hash.c: use rb_yield_assoc_or_values()
* struct.c: ditto
------------------------------------------------------------------------
r60094 | nobu | 2017-10-02 13:06:55 +0900 (Mon, 02 Oct 2017) | 1 line
ruby-additional.el: shorten here-doc markers
------------------------------------------------------------------------
r60093 | ko1 | 2017-10-02 10:57:27 +0900 (Mon, 02 Oct 2017) | 5 lines
use `ra` instead of new variables.
* file.c (rb_file_s_rename): `struct rename_args ra` already has members
which contain C ptrs. Pointed by MSP-Greg. Thanks!
------------------------------------------------------------------------
r60092 | ko1 | 2017-10-02 10:22:11 +0900 (Mon, 02 Oct 2017) | 4 lines
catch up r60088 for DOSISH.
* file.c (rb_file_s_rename): src and dst are used only on DOSISH env.
------------------------------------------------------------------------
r60091 | normal | 2017-10-02 06:29:27 +0900 (Mon, 02 Oct 2017) | 5 lines
NEWS: entries for GVL release in File and Dir
(more to come)
* NEWS: updates for [Bug #13941] and [Feature #13951]
------------------------------------------------------------------------
r60090 | svn | 2017-10-02 06:19:25 +0900 (Mon, 02 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60089 | svn | 2017-10-02 06:19:25 +0900 (Mon, 02 Oct 2017) | 1 line
* 2017-10-02
------------------------------------------------------------------------
r60088 | normal | 2017-10-02 06:19:24 +0900 (Mon, 02 Oct 2017) | 23 lines
File#rename releases GVL
rename(2) requires two pathname resolution operations which can
take considerable time on slow filesystems, release the GVL so
operations on other threads may proceed.
On fast, local filesystems, this change results in some slowdown
as shown by the new benchmark. I consider the performance trade
off acceptable as cases are avoided.
benchmark results:
minimum results in each 3 measurements.
Execution time (sec)
name trunk built
file_rename 2.648 2.804
Speedup ratio: compare with the result of `trunk' (greater is better)
name built
file_rename 0.944
* file.c (no_gvl_rename): new function
(rb_file_s_rename): release GVL for renames
* benchmark/bm_file_rename.rb: new benchmark
------------------------------------------------------------------------
r60087 | svn | 2017-10-01 22:44:50 +0900 (Sun, 01 Oct 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60086 | glass | 2017-10-01 22:44:49 +0900 (Sun, 01 Oct 2017) | 7 lines
string.c: avoid unnecessary call of str_strlen()
* string.c (rb_strseq_index): refactor and avoid
call of str_strlen() when offset == 0.
it will improve performance of String#index and #include?
* benchmark/bm_string_index.rb: benchmark for this change
------------------------------------------------------------------------
r60085 | glass | 2017-10-01 13:26:25 +0900 (Sun, 01 Oct 2017) | 9 lines
use rb_hash_new_with_size()
* hash.c: use rb_hash_new_with_size().
* marshal.c: ditto
* struct.c: ditto
* vm_args.c: ditto
------------------------------------------------------------------------
r60084 | nobu | 2017-10-01 12:46:59 +0900 (Sun, 01 Oct 2017) | 1 line
common.mk (UNICODE_DOWNLOAD): set cache directory
------------------------------------------------------------------------
r60083 | nobu | 2017-10-01 11:39:22 +0900 (Sun, 01 Oct 2017) | 3 lines
generic_erb.rb: -i option
* tool/generic_erb.rb: -i option to merge multiple template files.
------------------------------------------------------------------------
r60082 | nobu | 2017-10-01 11:24:11 +0900 (Sun, 01 Oct 2017) | 5 lines
test_refinement.rb: test for r59946
* test/ruby/test_refinement.rb (test_dsym_literal): test for
r59946, interning dynamic symbol should not be affected by
refinements too.
------------------------------------------------------------------------
r60081 | normal | 2017-10-01 10:44:47 +0900 (Sun, 01 Oct 2017) | 12 lines
file.c: remove unnecessary volatile use
For apply2files, all callers use the `path' VALUE for
generating exceptions, so there is no need to guard it.
In realpath_rec, RB_GC_GUARD is already used on link_orig.
In rb_check_realpath_internal, RB_GC_GUARD is necessary and
preferable (see Appendix E. of doc/extension.rdoc)
* file.c (apply2files): remove unnecessary volatile
(realpath_rec): ditto
(rb_check_realpath_internal): ditto, and add RB_GC_GUARD
------------------------------------------------------------------------
r60080 | svn | 2017-10-01 06:50:42 +0900 (Sun, 01 Oct 2017) | 1 line
* 2017-10-01
------------------------------------------------------------------------
r60079 | normal | 2017-10-01 06:50:42 +0900 (Sun, 01 Oct 2017) | 6 lines
thread_pthread.c: do not wakeup inside child processes
* thread_pthread.c (rb_thread_wakeup_timer_thread): check
ownership before incrementing
(rb_thread_wakeup_timer_thread_low): ditto
[Bug #13794] [ruby-core:83064]
------------------------------------------------------------------------
r60078 | glass | 2017-09-30 22:14:09 +0900 (Sat, 30 Sep 2017) | 1 line
hash.c: use rb_hash_new_with_size()
------------------------------------------------------------------------
r60077 | nobu | 2017-09-30 21:26:23 +0900 (Sat, 30 Sep 2017) | 4 lines
eval.c: check type
* eval.c (ignored_block): check argument type, which must be
Module. [ruby-dev:50270] [Bug #13956]
------------------------------------------------------------------------
r60076 | glass | 2017-09-30 20:58:33 +0900 (Sat, 30 Sep 2017) | 9 lines
hash.c: remove special treatments on deletion
st.c was improved in r56650 that it permits deletion during iteration.
In this commit, special treatments for previous implementation are
removed.
* hash.c: don't use *_check and *_safe functions in st.c
* internal.h: remove HASH_DELETED flag
------------------------------------------------------------------------
r60075 | nobu | 2017-09-30 20:50:14 +0900 (Sat, 30 Sep 2017) | 1 line
dbm.c: suppress unused-but-set-variable warning
------------------------------------------------------------------------
r60074 | nobu | 2017-09-30 20:06:05 +0900 (Sat, 30 Sep 2017) | 1 line
gdbm.c: use the default external encoding
------------------------------------------------------------------------
r60073 | glass | 2017-09-30 18:27:30 +0900 (Sat, 30 Sep 2017) | 4 lines
configure.ac: remove --enable-pthread option.
* configure.ac: remove --enable-pthread option.
it was obsoleted in 2009.
------------------------------------------------------------------------
r60072 | nobu | 2017-09-30 18:07:13 +0900 (Sat, 30 Sep 2017) | 1 line
dbm.c: removed useless assignments
------------------------------------------------------------------------
r60071 | nobu | 2017-09-30 17:35:23 +0900 (Sat, 30 Sep 2017) | 3 lines
ext: check if null byte is contained
[ruby-dev:50267] [Bug #13953]
------------------------------------------------------------------------
r60070 | glass | 2017-09-30 15:45:24 +0900 (Sat, 30 Sep 2017) | 1 line
configure.ac: remove unused macro
------------------------------------------------------------------------
r60069 | nobu | 2017-09-30 15:42:24 +0900 (Sat, 30 Sep 2017) | 1 line
ripper/lexer.rb: remove double quotes
------------------------------------------------------------------------
r60068 | glass | 2017-09-30 15:30:44 +0900 (Sat, 30 Sep 2017) | 4 lines
configure.ac: use m4_version_prereq
* configure.ac: use m4_version_prereq to check
running autoconf version.
------------------------------------------------------------------------
r60067 | ktsj | 2017-09-30 12:31:32 +0900 (Sat, 30 Sep 2017) | 4 lines
test_find.rb: improve branch coverage
* test/test_find.rb (test_to_path): add a test
for to_path conversion.
------------------------------------------------------------------------
r60066 | nobu | 2017-09-30 09:01:23 +0900 (Sat, 30 Sep 2017) | 5 lines
string.c: fix ASCII-only on succ
* string.c (str_succ): clear coderange cache when no alpha-numeric
character case, carried part may become ASCII-only.
[ruby-core:83062] [Bug #13952]
------------------------------------------------------------------------
r60065 | nobu | 2017-09-30 08:41:19 +0900 (Sat, 30 Sep 2017) | 4 lines
sizes.c.tmpl: prototype
* template/sizes.c.tmpl (Init_limits): turned a K&R style
declaration into a prototype declaration.
------------------------------------------------------------------------
r60064 | svn | 2017-09-30 02:19:38 +0900 (Sat, 30 Sep 2017) | 1 line
* 2017-09-30
------------------------------------------------------------------------
r60063 | sonots | 2017-09-30 02:19:37 +0900 (Sat, 30 Sep 2017) | 5 lines
test_etc.rb: fix test_getgrnam for duplicated group names
* test/etc/test_etc.rb: Etc.getgrnam would not return the first entry in the order of Etc.group for duplicated group names.
follow-up: [Bug #6935]
------------------------------------------------------------------------
r60062 | nobu | 2017-09-29 22:21:17 +0900 (Fri, 29 Sep 2017) | 8 lines
configure.ac
* configure.ac: renamed configure.in. [Feature #13946]
* Makefile.in, common.mk, ext/rbconfig/sizeof/depend: use
configure.ac.
* README.ja.md, README.md: update document for configure.ac.
------------------------------------------------------------------------
r60061 | kazu | 2017-09-29 20:00:00 +0900 (Fri, 29 Sep 2017) | 3 lines
Use unpack1 instead of unpack and `[0]`
[Feature #13943][ruby-core:83027]
------------------------------------------------------------------------
r60060 | nobu | 2017-09-29 17:15:50 +0900 (Fri, 29 Sep 2017) | 4 lines
string.c: ASCII-incompatible is not ASCII only
* string.c (tr_trans): ASCII-incompatible encoding strings cannot
be ASCII-only even if valid. [ruby-core:83056] [Bug #13950]
------------------------------------------------------------------------
r60059 | nobu | 2017-09-29 17:00:47 +0900 (Fri, 29 Sep 2017) | 4 lines
pack.c: unpack "M" may be ASCII only
* pack.c (pack_unpack_internal): set ASCII only properly on "M",
may be ASCII only. [ruby-core:83055] [Bug #13949]
------------------------------------------------------------------------
r60058 | svn | 2017-09-29 16:43:23 +0900 (Fri, 29 Sep 2017) | 1 line
* 2017-09-29
------------------------------------------------------------------------
r60057 | nobu | 2017-09-29 16:43:22 +0900 (Fri, 29 Sep 2017) | 47 lines
array.c: improve operations on small arrays
[Feature #13884]
Reduce number of memory allocations for "and", "or" and "diff"
operations on small arrays
Very often, arrays are used to filter parameters and to select
interesting items from 2 collections and very often these
collections are small enough, for example:
```ruby
SAFE_COLUMNS = [:id, :title, :created_at]
def columns
@all_columns & SAFE_COLUMNS
end
```
In this patch, I got rid of unnecessary memory allocations for
small arrays when "and", "or" and "diff" operations are performed.
name | HEAD | PATCH
-----------------+------:+------:
array_small_and | 0.615 | 0.263
array_small_diff | 0.676 | 0.282
array_small_or | 0.953 | 0.463
name | PATCH
-----------------+------:
array_small_and | 2.343
array_small_diff | 2.392
array_small_or | 2.056
name | HEAD | PATCH
-----------------+------:+------:
array_small_and | 1.429 | 1.005
array_small_diff | 1.493 | 0.878
array_small_or | 1.672 | 1.152
name | PATCH
-----------------+------:
array_small_and | 1.422
array_small_diff | 1.700
array_small_or | 1.452
Author: Dmitry Bochkarev <dimabochkarev@gmail.com>
------------------------------------------------------------------------
r60056 | shirosaki | 2017-09-28 22:55:48 +0900 (Thu, 28 Sep 2017) | 6 lines
test_dln.rb: fix path separator on MinGW
* test/-ext-/win32/test_dln.rb (TestDln#test_check_imported):
RbConfig::CONFIG["PATH_SEPARATOR"] is : which is a separator on
msys2 shell building ruby. Use File::PATH_SEPARATOR ; on test.
[Bug #13642] [ruby-core:81623]
------------------------------------------------------------------------
r60055 | shirosaki | 2017-09-28 22:43:21 +0900 (Thu, 28 Sep 2017) | 9 lines
io.c: fix segfault with closing socket on Windows
* io.c (fptr_finalize_flush): add an argument to keep GVL.
* io.c (fptr_finalize): adjust for above change.
* io.c (io_close_fptr): closing without GVL causes another
exception while raising exception in another thread. This causes
segfault on Windows. Keep GVL while closing when another thread
raises.
[Bug #13856] [ruby-core:82602]
------------------------------------------------------------------------
r60054 | naruse | 2017-09-28 19:51:37 +0900 (Thu, 28 Sep 2017) | 1 line
Net::HTTP.new: Support no_proxy parameter [Feature #11195]
------------------------------------------------------------------------
r60053 | naruse | 2017-09-28 19:51:31 +0900 (Thu, 28 Sep 2017) | 3 lines
URI::Generic: Separate no_proxy handling
To share with Net::HTTP. see #11195
------------------------------------------------------------------------
r60052 | svn | 2017-09-28 18:20:00 +0900 (Thu, 28 Sep 2017) | 1 line
* properties.
------------------------------------------------------------------------
r60051 | eregon | 2017-09-28 18:19:59 +0900 (Thu, 28 Sep 2017) | 1 line
Update to ruby/spec@691755d
------------------------------------------------------------------------
r60050 | eregon | 2017-09-28 18:19:19 +0900 (Thu, 28 Sep 2017) | 1 line
Update to ruby/mspec@c135328
------------------------------------------------------------------------
r60049 | nobu | 2017-09-28 11:51:41 +0900 (Thu, 28 Sep 2017) | 4 lines
test_io_console.rb: flush
* test/io/console/test_io_console.rb: flush to ensure the second
data is sent.
------------------------------------------------------------------------
r60048 | svn | 2017-09-28 06:55:33 +0900 (Thu, 28 Sep 2017) | 1 line
* 2017-09-28
------------------------------------------------------------------------
r60047 | naruse | 2017-09-28 06:55:32 +0900 (Thu, 28 Sep 2017) | 4 lines
Remove DevKit path, change zlib link
by MSP-Greg <MSP-Greg@users.noreply.github.com>
fix https://github.com/ruby/ruby/pull/1708
------------------------------------------------------------------------
r60046 | kazu | 2017-09-27 21:32:57 +0900 (Wed, 27 Sep 2017) | 1 line
Fix exception class [ci skip]
------------------------------------------------------------------------
r60045 | duerst | 2017-09-27 16:47:13 +0900 (Wed, 27 Sep 2017) | 1 line
improve grammar in documentation of Array#bsearch [ci skip]
------------------------------------------------------------------------
r60044 | nobu | 2017-09-27 14:27:07 +0900 (Wed, 27 Sep 2017) | 1 line
pty.c: shrink repeated device names
------------------------------------------------------------------------
r60043 | nobu | 2017-09-27 14:27:06 +0900 (Wed, 27 Sep 2017) | 1 line
objspace_dump.c: remove unnecessary break
------------------------------------------------------------------------
r60042 | nobu | 2017-09-27 14:08:53 +0900 (Wed, 27 Sep 2017) | 1 line
ext: adjust indent [ci skip]
------------------------------------------------------------------------
r60041 | nobu | 2017-09-27 11:55:03 +0900 (Wed, 27 Sep 2017) | 4 lines
complex.c: no overflow
* complex.c (rb_complex_infinite_p): get rid of overflow and
unnecessary multiplication.
------------------------------------------------------------------------
r60040 | nobu | 2017-09-27 11:38:51 +0900 (Wed, 27 Sep 2017) | 4 lines
complex.c: no overflow
* complex.c (rb_complex_finite_p): get rid of overflow and
unnecessary multiplication.
------------------------------------------------------------------------
r60039 | svn | 2017-09-27 10:01:27 +0900 (Wed, 27 Sep 2017) | 1 line
* 2017-09-27
------------------------------------------------------------------------
r60038 | nobu | 2017-09-27 10:01:26 +0900 (Wed, 27 Sep 2017) | 1 line
* complex.c: fix Complex#infinite? return value. Because nucomp_abs never returns negative value.
------------------------------------------------------------------------
r60037 | nobu | 2017-09-27 08:28:07 +0900 (Wed, 27 Sep 2017) | 4 lines
Show rb_data_type_t definition [ci skip]
[Fix GH-1707]
Author: hkdnet <hkdnet@users.noreply.github.com>
------------------------------------------------------------------------
r60036 | nobu | 2017-09-27 08:28:06 +0900 (Wed, 27 Sep 2017) | 4 lines
Fix a reference [ci skip]
[Fix GH-1706]
Author: hkdnet <hkdnet@users.noreply.github.com>
------------------------------------------------------------------------
r60035 | naruse | 2017-09-26 23:00:25 +0900 (Tue, 26 Sep 2017) | 4 lines
Make retries for Net::HTTP configurable [Feature #10674]
by stereobooster
fix https://github.com/ruby/ruby/pull/1654
------------------------------------------------------------------------
r60034 | nobu | 2017-09-26 22:40:14 +0900 (Tue, 26 Sep 2017) | 1 line
parse.y: moved duplicate conditions
------------------------------------------------------------------------
r60033 | nobu | 2017-09-26 21:21:51 +0900 (Tue, 26 Sep 2017) | 1 line
Suppress warnings by other than self-assignments
------------------------------------------------------------------------
r60032 | k0kubun | 2017-09-26 20:50:07 +0900 (Tue, 26 Sep 2017) | 13 lines
erb.rb: drop unreachable method
This seems to be unreachable from first introduction at r21286.
In ERB implementation, `#empty?` is only called for each member of
return value of `String#scan`, and `ERB::Compiler::PercentLine` is never
returned from `String#scan`.
Also, in `ERB::Compiler#compile`, as it's yielded only when stag is nil,
methods called to `ERB::Compiler::PercentLine` object yielded from
`ERB::Compiler::TrimScanner#scan` are only: `#nil?`, `#==`, `to_s`.
Thus `ERB::Compiler::PercentLine#empty?` is never used.
------------------------------------------------------------------------
r60031 | k0kubun | 2017-09-26 20:30:45 +0900 (Tue, 26 Sep 2017) | 1 line
test_erb.rb: add test cases for uncovered methods
------------------------------------------------------------------------
r60030 | k0kubun | 2017-09-26 19:45:14 +0900 (Tue, 26 Sep 2017) | 3 lines
test_features.rb: fix unused variable warning
test/csv/test_features.rb:357: warning: assigned but unused variable - csv
------------------------------------------------------------------------
r60029 | mame | 2017-09-26 13:59:39 +0900 (Tue, 26 Sep 2017) | 1 line
run-lcov.rb: support overwritten tmpdir path
------------------------------------------------------------------------
r60028 | mame | 2017-09-26 13:51:09 +0900 (Tue, 26 Sep 2017) | 1 line
tool/run-lcov.rb: Filter tmp files out
------------------------------------------------------------------------
r60027 | nobu | 2017-09-26 13:13:37 +0900 (Tue, 26 Sep 2017) | 28 lines
Release gvl while doing (f)stat
At the moment rb_stat function is blocking. This patch changes the
behaviour to release the gvl while waiting for OS to return from
f(stat).
There is behaviour impact, but not significant (times are for 100000
iterations):
$ ~/releaseruby_patch/bin/ruby bench.rb
Rehearsal ------------------------------------------------
File.exist?: 0.036412 0.056616 0.093028 ( 0.093075)
--------------------------------------- total: 0.093028sec
user system total real
File.exist?: 0.042953 0.049783 0.092736 ( 0.092804)
$ ~/releaseruby_no_patch/bin/ruby bench.rb
Rehearsal ------------------------------------------------
File.exist?: 0.056094 0.026293 0.082387 ( 0.082389)
--------------------------------------- total: 0.082387sec
user system total real
File.exist?: 0.037250 0.046702 0.083952 ( 0.083956)
Based on the patch by Wolf <wolf@wolfsden.cz> at [ruby-core:83012],
with using `rb_thread_io_blocking_region` for `fstat`.
[Bug #13941]
------------------------------------------------------------------------
r60026 | nobu | 2017-09-26 09:07:41 +0900 (Tue, 26 Sep 2017) | 5 lines
test_drb.rb: removed extra spaces
* test/drb/test_drb.rb (TestDRbLarge#test_02_large_ary): removed
unnecessary extra spaces which make the following parentheses an
expression.
------------------------------------------------------------------------
r60025 | nobu | 2017-09-26 06:52:00 +0900 (Tue, 26 Sep 2017) | 4 lines
vm.c: unused function
* vm.c (rb_vm_jump_tag_but_local_jump): no longer used since
r51292.
------------------------------------------------------------------------
r60024 | nobu | 2017-09-26 06:51:56 +0900 (Tue, 26 Sep 2017) | 5 lines
vm.c: fetch retval iff necessary
* vm.c (rb_vm_make_jump_tag_but_local_jump): get rid of fetching
retval when it is not used. it is necessary for local jump
state only.
------------------------------------------------------------------------
r60023 | svn | 2017-09-26 02:38:43 +0900 (Tue, 26 Sep 2017) | 1 line
* 2017-09-26
------------------------------------------------------------------------
r60022 | naruse | 2017-09-26 02:38:42 +0900 (Tue, 26 Sep 2017) | 4 lines
Switch Build to use 2.4 with certs files
patched by MSP-Greg <MSP-Greg@users.noreply.github.com>
fix https://github.com/ruby/ruby/pull/1702
------------------------------------------------------------------------
r60021 | naruse | 2017-09-25 23:28:53 +0900 (Mon, 25 Sep 2017) | 1 line
HTTPHeader#add_field should allow binary [Bug #13926]
------------------------------------------------------------------------
r60020 | mame | 2017-09-25 23:04:59 +0900 (Mon, 25 Sep 2017) | 3 lines
tool/run-lcov.rb: Filter test files out
And refactoring.
------------------------------------------------------------------------
r60019 | naruse | 2017-09-25 17:19:10 +0900 (Mon, 25 Sep 2017) | 7 lines
Fix overflow detection for LLP64 arch [Bug #13748]
FIXNUMs are expected to fit into a long type, but the test is about a
VALUE type. Since long is < than VALUE on LLP64, the overflow is not
detected. As a result "2**31" evaluates to "-2147483648" on Windows with
gcc-7.1.0.
patched by Lars Kanis <lars@greiz-reinsdorf.de>
------------------------------------------------------------------------
r60018 | nobu | 2017-09-25 15:31:38 +0900 (Mon, 25 Sep 2017) | 6 lines
configure.in: install_name without teeny
* configure.in (RUBY_API_VERSION): remove teeny from install_name
to allow link extension libraries for the same minor version.
patched by kimuraw (Wataru Kimura) at [ruby-dev:50262].
[Bug #13931]
------------------------------------------------------------------------
r60017 | naruse | 2017-09-25 15:20:10 +0900 (Mon, 25 Sep 2017) | 1 line
Time#at receives 3rd argument which specifies the unit of 2nd argument [Feature #13919]
------------------------------------------------------------------------
r60016 | sonots | 2017-09-25 15:05:52 +0900 (Mon, 25 Sep 2017) | 3 lines
thread.c: Use 'Class.new' instead of 'Class::new' in doc codes.
patched by Herwin [Fix GH-1700]
------------------------------------------------------------------------
r60015 | yui-knk | 2017-09-25 09:09:44 +0900 (Mon, 25 Sep 2017) | 8 lines
test/ruby/test_iseq.rb: Skip test_safe_call_chain if Coverage is running.
Follow up to r59990.
When Coverage is running, trace2 instructions are inserted
to take branch coverages for safe method invocations.
This insertion makes safe call chains unable to be optimized
and breaks this test case.
So we test it only when Coverage is not running.
------------------------------------------------------------------------
r60014 | svn | 2017-09-25 01:26:23 +0900 (Mon, 25 Sep 2017) | 1 line
* 2017-09-25
------------------------------------------------------------------------
r60013 | rhe | 2017-09-25 01:26:22 +0900 (Mon, 25 Sep 2017) | 32 lines
openssl: import e72d960db262
Sync with master branch of ruby/openssl.git to import changes in
v2.1.0.beta1..v2.0.6. The commit log since v2.1.0.beta1 which was
imported by r59734 can be found at:
https://github.com/ruby/openssl/compare/v2.1.0.beta1...e72d960db262
----------------------------------------------------------------
Kazuki Yamaguchi (16):
test/test_pair: fix test_write_nonblock{,_no_exceptions}
x509name: fix a typo in docs
test/test_fips: skip if setting FIPS mode fails
test/test_asn1: fix possible failure in test_utctime
test/test_ssl: suppress warning in test_alpn_protocol_selection_cancel
test/test_pair: disable compression
test/test_ssl: skip tmp_ecdh_callback test for LibreSSL >= 2.6.1
test/test_ssl: do not run NPN tests for LibreSSL >= 2.6.1
tool/ruby-openssl-docker: update
test/test_pair: replace sleep with IO.select
ssl: prevent SSLSocket#sysread* from leaking uninitialized data
ossl.c: use struct CRYPTO_dynlock_value for non-dynamic locks
ossl.c: make legacy locking callbacks reentrant
test/test_engine: suppress stderr
test/test_engine: check if RC4 is supported
Ruby/OpenSSL 2.0.6
SHIBATA Hiroshi (1):
To use upstream url of github
nobu (1):
ruby.h: unnormalized Fixnum value
------------------------------------------------------------------------
r60012 | nobu | 2017-09-24 19:07:21 +0900 (Sun, 24 Sep 2017) | 3 lines
common.mk: force link exe/ruby
* common.mk (exe/ruby): force link exe/ruby with miniruby.
------------------------------------------------------------------------
r60011 | nobu | 2017-09-24 18:44:26 +0900 (Sun, 24 Sep 2017) | 4 lines
test_gc.rb: relax criterion
* test/ruby/test_gc.rb (TestGc#test_expand_heap): relax the
criterion and compare by epsilon.
------------------------------------------------------------------------
r60010 | nobu | 2017-09-24 18:35:09 +0900 (Sun, 24 Sep 2017) | 4 lines
gem.rb: load rubygems.rb
* test/rubygems/test_gem.rb: load rubygems.rb explicitly, for the
case configured as --disable-rubygems.
------------------------------------------------------------------------
r60009 | hsbt | 2017-09-24 17:10:08 +0900 (Sun, 24 Sep 2017) | 1 line
Added NEWS entry for r60008
------------------------------------------------------------------------
r60008 | hsbt | 2017-09-24 16:52:25 +0900 (Sun, 24 Sep 2017) | 5 lines
Removed ubygems.rb. rubygems.rb is always loaded now.
* tool/sync_default_gems.rb: removed ubygems.rb from sync target.
* test/rubygems/test_gem.rb: only enable "-rubygems" option when
running under the Ruby 1.9.
------------------------------------------------------------------------
r60007 | nobu | 2017-09-24 14:22:23 +0900 (Sun, 24 Sep 2017) | 4 lines
load.c: fix rb_load_protect condition
* load.c (rb_load_protect): fix the condition to load the found
file. fixup of r59155.
------------------------------------------------------------------------
r60006 | nobu | 2017-09-24 10:48:25 +0900 (Sun, 24 Sep 2017) | 6 lines
ruby-runner.c: RUBYLIB
* ruby-runner.c (insert_env_path): extracted the function which
insert path list to an environment variable.
* ruby-runner.c (main): append library paths to RUBYLIB.
------------------------------------------------------------------------
r60005 | nobu | 2017-09-24 09:15:02 +0900 (Sun, 24 Sep 2017) | 4 lines
common.mk: link exe/ruby
* common.mk (exe/ruby): make fixed name symbolic link exe/ruby to
exe/$(PROGRAM), to run hardcoded bundler tests.
------------------------------------------------------------------------
r60004 | svn | 2017-09-24 08:58:25 +0900 (Sun, 24 Sep 2017) | 1 line
* 2017-09-24
------------------------------------------------------------------------
r60003 | mame | 2017-09-24 08:58:24 +0900 (Sun, 24 Sep 2017) | 4 lines
test/coverage/test_coverage.rb: Refactor coverage tests.
Add `assert_coverage` to invoke Ruby script under coverage measurement
and to compare the result with an expected value.
------------------------------------------------------------------------
r60002 | nobu | 2017-09-23 16:09:07 +0900 (Sat, 23 Sep 2017) | 6 lines
dup String#split return value
* string.c (rb_str_split): return duplicated receiver, when no
splits. patched by tompng (tomoya ishida) in [ruby-core:82911],
and the test case by Seiei Miyagi <hanachin@gmail.com>.
[Bug#13925] [Fix GH-1705]
------------------------------------------------------------------------
r60001 | nobu | 2017-09-23 16:09:06 +0900 (Sat, 23 Sep 2017) | 6 lines
dup String#rpartition return value
* string.c (rb_str_rpartition): return duplicated receiver, when
no splits. [ruby-core:82911] [Bug#13925]
Author: Seiei Miyagi <hanachin@gmail.com>
------------------------------------------------------------------------
r60000 | nobu | 2017-09-23 16:09:05 +0900 (Sat, 23 Sep 2017) | 6 lines
dup String#partition return value
* string.c (rb_str_partition): return duplicated receiver, when no
splits. [ruby-core:82911] [Bug#13925]
Author: Seiei Miyagi <hanachin@gmail.com>
------------------------------------------------------------------------
r59999 | nobu | 2017-09-23 15:49:35 +0900 (Sat, 23 Sep 2017) | 5 lines
parse.y: token type by identifer ID type
* parse.y (parse_ident): leave identifier type decision (local or
const) to rb_enc_symname_type, and set the token type by ID
type.
------------------------------------------------------------------------
r59998 | nobu | 2017-09-23 15:49:34 +0900 (Sat, 23 Sep 2017) | 3 lines
parse.y: missing semicolon
* parse.y (stmt_or_begin): fix missing semicolon.
------------------------------------------------------------------------
r59997 | hsbt | 2017-09-23 13:37:58 +0900 (Sat, 23 Sep 2017) | 3 lines
removed bin/bundle_ruby, It was ignored upstream gemspec.
* spec/bundler/other/*: Marked exclude tags for ruby repository.
------------------------------------------------------------------------
r59996 | hsbt | 2017-09-23 11:57:12 +0900 (Sat, 23 Sep 2017) | 1 line
update section styles for psych, rubygems, bundler.
------------------------------------------------------------------------
r59995 | hsbt | 2017-09-23 11:55:07 +0900 (Sat, 23 Sep 2017) | 4 lines
Added sections of pysch library to LEGAL.
* ext/psych/yaml/LICENSE: Integrate libyaml license to LEGAL and
removed this file from repository.
------------------------------------------------------------------------
r59994 | hsbt | 2017-09-23 11:37:55 +0900 (Sat, 23 Sep 2017) | 1 line
Added bundler's license to LEGAL.
------------------------------------------------------------------------
r59993 | hsbt | 2017-09-23 11:26:10 +0900 (Sat, 23 Sep 2017) | 1 line
Added missing "ubygems.rb" file of rubygems to LEGAL.
------------------------------------------------------------------------
r59992 | hsbt | 2017-09-23 11:24:27 +0900 (Sat, 23 Sep 2017) | 1 line
Integrate LICENSE file of rubygems to LEGAL.
------------------------------------------------------------------------
r59991 | svn | 2017-09-23 09:17:36 +0900 (Sat, 23 Sep 2017) | 1 line
* 2017-09-23
------------------------------------------------------------------------
r59990 | yui-knk | 2017-09-23 09:17:35 +0900 (Sat, 23 Sep 2017) | 1 line
Enable to take branch coverages for safe method invocations
------------------------------------------------------------------------
r59989 | nobu | 2017-09-22 20:21:34 +0900 (Fri, 22 Sep 2017) | 8 lines
Update trick2013/yhara for Ruby 2.4
I need to raise LocalJumpError here (for the first "J" of the
output "JUST ANOTHER RUBY HACKER"), but this `return` does
not raise error in Ruby 2.4.
[Fix GH-1703]
Author: Yutaka HARA <yutaka.hara+github@gmail.com>
------------------------------------------------------------------------
r59988 | nobu | 2017-09-22 13:56:24 +0900 (Fri, 22 Sep 2017) | 4 lines
numeric.c: reduced repeated calls
* numeric.c (rb_num2ll, rb_num2ull, fix_pow): turn repeated
RFLOAT_VALUE calls into local variables.
------------------------------------------------------------------------
r59987 | svn | 2017-09-22 12:05:03 +0900 (Fri, 22 Sep 2017) | 1 line
* 2017-09-22
------------------------------------------------------------------------
r59986 | nobu | 2017-09-22 12:05:02 +0900 (Fri, 22 Sep 2017) | 5 lines
numeric.c: use NUM2DBL
* numeric.c (fix_fdiv_double), bignum.c (rb_big_fdiv_double): use
NUM2DBL on unknown object. RFLOAT_VALUE is only appliicable to
T_FLOAT object. [ruby-core:82924] [Bug #13928]
------------------------------------------------------------------------
r59985 | nobu | 2017-09-21 21:26:16 +0900 (Thu, 21 Sep 2017) | 4 lines
gmake.mk: order test-bundler
* defs/gmake.mk (ORDERED_TEST_TARGETS): order test-bundler too to
get rid of mixing outputs.
------------------------------------------------------------------------
r59984 | nobu | 2017-09-21 16:29:20 +0900 (Thu, 21 Sep 2017) | 5 lines
load.c: real path to load
* load.c (rb_construct_expanded_load_path): expand load paths to
real paths to get rid of duplicate loading from symbolic-linked
directories. [Feature #10222]
------------------------------------------------------------------------
r59983 | nobu | 2017-09-21 16:29:16 +0900 (Thu, 21 Sep 2017) | 5 lines
file.c: rb_check_realpath
* file.c (rb_check_realpath): returns real path which has no
symbolic links. similar to rb_realpath except for returning
Qnil if any parts did not exist.
------------------------------------------------------------------------
r59982 | eregon | 2017-09-21 07:02:10 +0900 (Thu, 21 Sep 2017) | 4 lines
check_funcall_missing() should call respond_to_missing?(name, priv=true)
* Improve spec rather than constrain implementation.
* Coercion ignores visibility in Ruby.
------------------------------------------------------------------------
r59981 | eregon | 2017-09-21 06:50:14 +0900 (Thu, 21 Sep 2017) | 5 lines
Prefer adapting specs to complicating library code
* lib/net/ftp.rb (Net::FTP#initialize): simplify as per
the original intent.
* spec/ruby/library/net/ftp/initialize_spec.rb: adapt specs.
------------------------------------------------------------------------
r59980 | eregon | 2017-09-21 05:19:54 +0900 (Thu, 21 Sep 2017) | 4 lines
Adapt tools to follow spec/rubyspec => spec/ruby rename
* [Misc #13792] [ruby-core:82287]
* Prefer test-spec over test-rubyspec in spec/README.
------------------------------------------------------------------------
r59979 | eregon | 2017-09-21 05:18:52 +0900 (Thu, 21 Sep 2017) | 4 lines
Move spec/rubyspec to spec/ruby for consistency
* Other ruby implementations use the spec/ruby directory.
[Misc #13792] [ruby-core:82287]
------------------------------------------------------------------------
r59978 | svn | 2017-09-21 04:45:20 +0900 (Thu, 21 Sep 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59977 | eregon | 2017-09-21 04:45:19 +0900 (Thu, 21 Sep 2017) | 1 line
Update to ruby/spec@e3b6811
------------------------------------------------------------------------
r59976 | svn | 2017-09-21 03:47:15 +0900 (Thu, 21 Sep 2017) | 1 line
* 2017-09-21
------------------------------------------------------------------------
r59975 | normal | 2017-09-21 03:47:14 +0900 (Thu, 21 Sep 2017) | 11 lines
process: block/unblock signals around fork
As with forking for execve(2) in `spawn', we must block signals
to ensure they are handled correctly in a freshly `fork'-ed child.
* process.c (retry_fork_ruby): block/unblock signals around fork
(rb_fork_ruby): re-enable signals in forked child
* test/ruby/test_process.rb (test_forked_child_signal): new test
[ruby-core:82883] [Bug #13916]
Thanks to Russell Davis for the bug report and test case.
------------------------------------------------------------------------
r59974 | nobu | 2017-09-20 17:38:52 +0900 (Wed, 20 Sep 2017) | 4 lines
parse.y: literal term lex_state
* parse.y (parser_string_term, parser_parse_string): move setting
lex_state operations from parser_yylex per each token types.
------------------------------------------------------------------------
r59973 | sonots | 2017-09-20 14:01:09 +0900 (Wed, 20 Sep 2017) | 1 line
ruby.c: show help messages of --dump
------------------------------------------------------------------------
r59972 | nobu | 2017-09-20 11:32:55 +0900 (Wed, 20 Sep 2017) | 4 lines
fix up r59949
* ext/ripper/lib/ripper/lexer.rb (List#inspect): splat self data
to local variables same as members of Elem.
------------------------------------------------------------------------
r59971 | shugo | 2017-09-20 10:40:53 +0900 (Wed, 20 Sep 2017) | 3 lines
Add MonitorMinx#mon_locked? and #mon_owned? to check states of objects
Patched by Satoshi "Moris" Tagomori <tagomoris@gmail.com>. [Fix GH-1699]
------------------------------------------------------------------------
r59970 | nobu | 2017-09-20 09:53:47 +0900 (Wed, 20 Sep 2017) | 5 lines
ruby.c: paragraph mode by -00
* ruby.c (proc_options): set to paragraph mode, if -00 is given,
as well as perl and -R0 option in 0.49.
[ruby-core:81987] [Bug #13736]
------------------------------------------------------------------------
r59969 | svn | 2017-09-20 08:09:11 +0900 (Wed, 20 Sep 2017) | 1 line
* 2017-09-20
------------------------------------------------------------------------
r59968 | nobu | 2017-09-20 08:09:10 +0900 (Wed, 20 Sep 2017) | 1 line
adjust indent
------------------------------------------------------------------------
r59967 | nagachika | 2017-09-19 23:56:03 +0900 (Tue, 19 Sep 2017) | 3 lines
fix a typo in NEWS at r59966.
* NEWS: fix a typo.
------------------------------------------------------------------------
r59966 | knu | 2017-09-19 17:45:12 +0900 (Tue, 19 Sep 2017) | 5 lines
Alias Set#=== to #include?
* set.rb (Set#===): Added via [Feature #13801] by davidarnold.
Closes #1673.
------------------------------------------------------------------------
r59965 | normal | 2017-09-19 17:39:22 +0900 (Tue, 19 Sep 2017) | 5 lines
webrick: handle EAGAIN/EWOULDBLOCK on proxy connections
* lib/webrick/httpproxy.rb (do_CONNECT): high-level IO methods
[ruby-core:82861] [Bug #12130]
Patch by: Keisuke NISHI
------------------------------------------------------------------------
r59964 | hsbt | 2017-09-19 14:01:02 +0900 (Tue, 19 Sep 2017) | 5 lines
Fixup r59961. Use http for libffi downloading.
A few environments couldn't handle https download.
* https://rubyci.org/logs/mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/log/20170919T032511Z.fail.html.gz
* https://rubyci.org/logs/www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20170919T040500Z.fail.html.gz
------------------------------------------------------------------------
r59963 | nobu | 2017-09-19 11:42:08 +0900 (Tue, 19 Sep 2017) | 4 lines
thread.c: report then abort
* thread.c (thread_start_func_2): report then abort on exception,
if both are set. [ruby-core:79280] [Bug #13163]
------------------------------------------------------------------------
r59962 | hsbt | 2017-09-19 11:39:40 +0900 (Tue, 19 Sep 2017) | 4 lines
Added documentation
Added documentaiton for installation of bundled gems.
[Bug #13724][ruby-core:81938]
------------------------------------------------------------------------
r59961 | hsbt | 2017-09-19 11:25:16 +0900 (Tue, 19 Sep 2017) | 1 line
Use https instead of ftp for libffi downloading.
------------------------------------------------------------------------
r59960 | hsbt | 2017-09-19 10:54:28 +0900 (Tue, 19 Sep 2017) | 3 lines
Define the MIME type for JSON in WEBrick::HTTPUtils::DefaultMimeTypes.
[Feature #10798][ruby-core:67879]
------------------------------------------------------------------------
r59959 | hsbt | 2017-09-19 09:37:38 +0900 (Tue, 19 Sep 2017) | 4 lines
Enabled temporary disabled examples of bundler rspec.
These are fails when merging at r59779. But these are
working now.
------------------------------------------------------------------------
r59958 | svn | 2017-09-19 09:22:57 +0900 (Tue, 19 Sep 2017) | 1 line
* 2017-09-19
------------------------------------------------------------------------
r59957 | nobu | 2017-09-19 09:22:56 +0900 (Tue, 19 Sep 2017) | 4 lines
parse.y: lex by lvar
* parse.y (parse_ident): disable tLPAREN_ARG state by local
variable. [ruby-list:50578]
------------------------------------------------------------------------
r59956 | ktsj | 2017-09-18 17:21:08 +0900 (Mon, 18 Sep 2017) | 5 lines
vm.c: fix `cfp consistency error' which occurs
when raising exception in bmethod call event
* vm.c (invoke_bmethod): set FINISH flag just before calling vm_exec.
[ruby-dev:50162] [Bug #13705]
------------------------------------------------------------------------
r59955 | nobu | 2017-09-18 17:05:53 +0900 (Mon, 18 Sep 2017) | 10 lines
error.c: KeyError#receiver and KeyError#key
* error.c: new method KeyError#receiver and KeyError#key.
[Feature #12063]
* hash.c: make KeyError object with receiver and key.
* sprintf.c: ditto.
Author: ksss <co000ri@gmail.com>
------------------------------------------------------------------------
r59954 | nobu | 2017-09-18 16:52:58 +0900 (Mon, 18 Sep 2017) | 1 line
configure.in: use newer libtool only
------------------------------------------------------------------------
r59953 | rhe | 2017-09-18 14:37:29 +0900 (Mon, 18 Sep 2017) | 3 lines
re.c: remove unused rb_memcmp() function
It is no longer used or exported as of r13641.
------------------------------------------------------------------------
r59952 | yui-knk | 2017-09-18 14:17:21 +0900 (Mon, 18 Sep 2017) | 5 lines
thread.c: Clear an array for method coverage
* thread.c (reset_coverage_i): Clear an
array for method coverage just like
line coverage and branch coverage.
------------------------------------------------------------------------
r59951 | nobu | 2017-09-18 14:16:37 +0900 (Mon, 18 Sep 2017) | 4 lines
intern instruction
* insns.def (intern): new instruction to turn string into symbol.
opt_call_c_function can not dump.
------------------------------------------------------------------------
r59950 | nobu | 2017-09-18 11:27:13 +0900 (Mon, 18 Sep 2017) | 11 lines
refinements in string interpolation
* compile.c (iseq_compile_each0): insert to_s method call, so that
refinements activated at the caller should take place.
[Feature #13812]
* insns.def (tostring): fix up converted object to a string,
infect and fallback.
* insns.def (branchiftype): new instruction for conversion.
branches if TOS is an instance of the given type.
------------------------------------------------------------------------
r59949 | nobu | 2017-09-18 09:08:19 +0900 (Mon, 18 Sep 2017) | 7 lines
parse.y: ripper_lex_state_name
* parse.y (ripper_lex_state_name): represent lex_state as OR-ed
form.
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer::Elem#to_a):
lex_state for inspection.
------------------------------------------------------------------------
r59948 | svn | 2017-09-18 08:56:38 +0900 (Mon, 18 Sep 2017) | 1 line
* 2017-09-18
------------------------------------------------------------------------
r59947 | mame | 2017-09-18 08:56:37 +0900 (Mon, 18 Sep 2017) | 3 lines
ext/objspace/objspace.c: remove unneeded code clones.
`setup_hash` have already performed nil check and empty check.
------------------------------------------------------------------------
r59946 | nobu | 2017-09-17 18:28:58 +0900 (Sun, 17 Sep 2017) | 7 lines
literal symbol by intern
* compile.c (iseq_compile_each0): literal symbol should not be
affected by redefinition of String#intern method.
* vm_insnhelper.c (rb_vm_str_intern): intern a string into a
symbol directly.
------------------------------------------------------------------------
r59945 | nobu | 2017-09-17 18:21:47 +0900 (Sun, 17 Sep 2017) | 6 lines
compile.c: optimize unnecessary concatstrings
* compile.c (iseq_peephole_optimize): optimize away unnecessary
concatenation of single string, following tostring which always
puts a String instance.
https://github.com/ruby/ruby/pull/1626#discussion_r139285653
------------------------------------------------------------------------
r59944 | mame | 2017-09-17 17:04:34 +0900 (Sun, 17 Sep 2017) | 3 lines
ext/io/console/lib/console/size.rb: Fix the context of method definition
`console_size` is not a instance method but a class method.
------------------------------------------------------------------------
r59943 | yui-knk | 2017-09-17 16:19:20 +0900 (Sun, 17 Sep 2017) | 5 lines
node.h: Remove a not used macro
* node.h (nd_refinements_): nd_refinements_ was
introduced on r49894. But this macro has not been
used since r49897.
------------------------------------------------------------------------
r59942 | nobu | 2017-09-17 15:50:31 +0900 (Sun, 17 Sep 2017) | 4 lines
make-snapshot: after-update
* tool/make-snapshot (package): fix missing after-update for
libffi and so on. [ruby-dev:50244] [Bug #13897]
------------------------------------------------------------------------
r59941 | nobu | 2017-09-17 14:51:15 +0900 (Sun, 17 Sep 2017) | 3 lines
suppress warnings
* compile.c: suppress maybe-uninitialized warnings by gcc7.
------------------------------------------------------------------------
r59940 | mame | 2017-09-17 13:30:30 +0900 (Sun, 17 Sep 2017) | 4 lines
run-lcov.rb: wrongly used unique ID as lineno
The second value of key of branch/method coverage is unique ID, not
lineno.
------------------------------------------------------------------------
r59939 | rhe | 2017-09-17 13:26:51 +0900 (Sun, 17 Sep 2017) | 5 lines
ext/date/extconf.rb: check for timezone and altzone
Instead of in configure.in. As of r28592 the HAVE_VAR_TIMEZONE and
HAVE_VAR_ALTZONE macros are only used by ext/date. ext/date doesn't care
whether they are int or long, so just check for the existence.
------------------------------------------------------------------------
r59938 | rhe | 2017-09-17 13:26:48 +0900 (Sun, 17 Sep 2017) | 4 lines
configure.in: don't check for existence of timezone()
HAVE_TIMEZONE and TIMEZONE_VOID macros are not used anymore as of r28592
("strftime.c: unused declarations removed.", 2010-07-09).
------------------------------------------------------------------------
r59937 | nobu | 2017-09-17 13:14:51 +0900 (Sun, 17 Sep 2017) | 5 lines
Rename bin/ruby as exe/ruby
* common.mk, configure.in: rename the bin directory to run build
executable as exe, to get rid of overwriting true files at the
installation. [ruby-dev:50250] [Bug #13911]
------------------------------------------------------------------------
r59936 | svn | 2017-09-17 07:40:10 +0900 (Sun, 17 Sep 2017) | 1 line
* 2017-09-17
------------------------------------------------------------------------
r59935 | nobu | 2017-09-17 07:40:09 +0900 (Sun, 17 Sep 2017) | 1 line
test_fileutils.rb: rmdir should fail on nonexistent directory
------------------------------------------------------------------------
r59934 | nobu | 2017-09-16 20:59:47 +0900 (Sat, 16 Sep 2017) | 4 lines
fileutils.rb: error at rmdir
* lib/fileutils.rb (rmdir): should not ignore errors first, except
for parent directories. [ruby-dev:50236] [Bug #13889]
------------------------------------------------------------------------
r59933 | nobu | 2017-09-16 20:50:56 +0900 (Sat, 16 Sep 2017) | 5 lines
file.c: [DOC] separators at dirname and basename
* file.c (rb_file_s_basename, rb_file_s_dirname): [DOC] state
that trailing separators will be stripped first, like as
basename(1) and dirname(1). [ruby-core:82828] [Bug #13908]
------------------------------------------------------------------------
r59932 | nobu | 2017-09-16 20:50:55 +0900 (Sat, 16 Sep 2017) | 1 line
common.mk: make bin directory
------------------------------------------------------------------------
r59931 | hsbt | 2017-09-16 08:46:46 +0900 (Sat, 16 Sep 2017) | 3 lines
To use github url for gemspec.
[Bug #13906][ruby-core:82817]
------------------------------------------------------------------------
r59930 | nobu | 2017-09-16 04:25:46 +0900 (Sat, 16 Sep 2017) | 1 line
ruby-runner.c: reduce duplicate code
------------------------------------------------------------------------
r59929 | nobu | 2017-09-16 04:25:45 +0900 (Sat, 16 Sep 2017) | 1 line
Makefile.in: make wrappers for each name
------------------------------------------------------------------------
r59928 | nobu | 2017-09-16 02:47:50 +0900 (Sat, 16 Sep 2017) | 1 line
fixup r59927
------------------------------------------------------------------------
r59927 | nobu | 2017-09-16 02:42:00 +0900 (Sat, 16 Sep 2017) | 5 lines
rename ruby-runner as bin/ruby
* Makefile.in, configure.in, tool/runruby.rb: rename ruby-runner
executable file as $(RUBY_INSTALL_NAME) under bin, to mimic
dirty `#!/usr/bin/env` hack.
------------------------------------------------------------------------
r59926 | naruse | 2017-09-16 02:00:49 +0900 (Sat, 16 Sep 2017) | 13 lines
Find.find -> Use Dir.children instead of Dir.entries
Dir.children is available since Feature #11302.
Find.find can use of the new list (having no '.' neither '..' entries),
making now superflous an if statement.
This change can improve the performance of Find.find when the path
has lots of entries (thousands?).
https://bugs.ruby-lang.org/issues/11302
patched by Espartaco Palma <esparta@gmail.com>
https://github.com/ruby/ruby/pull/1697 fix GH-1697
[Feature #13896]
------------------------------------------------------------------------
r59925 | naruse | 2017-09-16 01:56:16 +0900 (Sat, 16 Sep 2017) | 4 lines
Fix test code of kconv
patched by tbpgr <tbpgr@tbpgr.jp>
https://github.com/ruby/ruby/pull/1696 fix GH-1696
------------------------------------------------------------------------
r59924 | svn | 2017-09-16 01:53:56 +0900 (Sat, 16 Sep 2017) | 1 line
* 2017-09-16
------------------------------------------------------------------------
r59923 | naruse | 2017-09-16 01:53:55 +0900 (Sat, 16 Sep 2017) | 4 lines
include query parameters in Net::HTTP.post
patched by Samuel Giddins <segiddins@segiddins.me>
https://github.com/ruby/ruby/pull/1686 fix GH-1686
------------------------------------------------------------------------
r59922 | kazu | 2017-09-15 21:03:42 +0900 (Fri, 15 Sep 2017) | 1 line
Fix typos [ci skip]
------------------------------------------------------------------------
r59921 | kazu | 2017-09-15 21:03:41 +0900 (Fri, 15 Sep 2017) | 1 line
Remove needless splat array
------------------------------------------------------------------------
r59920 | nobu | 2017-09-15 17:47:46 +0900 (Fri, 15 Sep 2017) | 4 lines
parse.y: use SET_LEX_STATE
* parse.y (f_arglist, parser_yylex): set lex_state via
SET_LEX_STATE macro for yydebug messages.
------------------------------------------------------------------------
r59919 | nobu | 2017-09-15 11:01:59 +0900 (Fri, 15 Sep 2017) | 6 lines
object.c: fix conversion failure message
* object.c (convert_type_with_id): fix failure message for
explicit conversion. rb_convert_type_with_id and
rb_check_convert_type_with_id are not only for implicit
conversions.
------------------------------------------------------------------------
r59918 | nobu | 2017-09-15 09:59:35 +0900 (Fri, 15 Sep 2017) | 4 lines
rubyspec: jobserver fd may not be available
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension):
rescue possible EBADF as jobserver fd may not be available.
------------------------------------------------------------------------
r59917 | nobu | 2017-09-15 09:59:34 +0900 (Fri, 15 Sep 2017) | 4 lines
rubyspec: use mock directory
* spec/rubyspec/core/dir/mkdir_spec.rb: the source directory may
be on a read-only filesystem.
------------------------------------------------------------------------
r59916 | nobu | 2017-09-15 09:59:32 +0900 (Fri, 15 Sep 2017) | 9 lines
rubyspec: fix types
* spec/rubyspec/optional/capi/ext/fixnum_spec.c: FIX2INT and
FXI2UINT return long, in spite of their names.
* spec/rubyspec/optional/capi/ext/range_spec.c: err is int.
* spec/rubyspec/optional/capi/ext/st_spec.c: st_index_t is larger
than int.
------------------------------------------------------------------------
r59915 | yui-knk | 2017-09-15 09:40:38 +0900 (Fri, 15 Sep 2017) | 5 lines
ext/coverage/coverage.c (rb_coverage_start): Ensure `opt` is a hash
Ensure `opt` is a hash before using `rb_hash_lookup` to `opt`.
This will prevent SEGV when an inappropriate object (i.e. an array)
is passed to `opt`.
------------------------------------------------------------------------
r59911 | eregon | 2017-09-15 00:56:33 +0900 (Fri, 15 Sep 2017) | 1 line
Update to ruby/spec@a4bc1d8
------------------------------------------------------------------------
r59910 | svn | 2017-09-15 00:56:10 +0900 (Fri, 15 Sep 2017) | 1 line
* 2017-09-15
------------------------------------------------------------------------
r59909 | eregon | 2017-09-15 00:56:09 +0900 (Fri, 15 Sep 2017) | 1 line
Update to ruby/mspec@5bd9409
------------------------------------------------------------------------
r59908 | eregon | 2017-09-14 23:54:29 +0900 (Thu, 14 Sep 2017) | 1 line
time.c (Time#-): Fix documentation.
------------------------------------------------------------------------
r59897 | mame | 2017-09-14 20:16:23 +0900 (Thu, 14 Sep 2017) | 4 lines
lib/webrick/log.rb: sanitize any type of logs
It had failed to sanitize some type of exception messages. Reported and
patched by Yusuke Endoh (mame) at https://hackerone.com/reports/223363
------------------------------------------------------------------------
r59896 | nobu | 2017-09-14 19:53:47 +0900 (Thu, 14 Sep 2017) | 8 lines
ripper: add states of scanner
* parse.y (ripper_state): add states of scanner to tokens from
Ripper.lex and Ripper::Filter#on_*. based on the patch by
aycabta (Code Ahss) at [ruby-core:81789]. [Feature #13686]
* ext/ripper/tools/preproc.rb (prelude, usercode): generate EXPR_*
constants from enums.
------------------------------------------------------------------------
r59895 | nobu | 2017-09-14 19:49:29 +0900 (Thu, 14 Sep 2017) | 1 line
parse.y: [DOC] fix call-seq [ci skip]
------------------------------------------------------------------------
r59894 | mame | 2017-09-14 19:45:04 +0900 (Thu, 14 Sep 2017) | 5 lines
ext/coverage/coverage.c: use long instead of int for coverage site id
Coverage generates unique ID numbers for each branch and each method.
Use long instead of int for the IDs. I don't want to see 2^32 branches
and methods in one file, but just in case...
------------------------------------------------------------------------
r59893 | naruse | 2017-09-14 18:21:48 +0900 (Thu, 14 Sep 2017) | 1 line
fix the case High Sierra's mincore(2) may return -128 [Bug #13895]
------------------------------------------------------------------------
r59892 | nobu | 2017-09-14 17:04:30 +0900 (Thu, 14 Sep 2017) | 4 lines
compile.c: iseq_pop_newarray
* compile.c (iseq_pop_newarray): optimize array literal in
condition.
------------------------------------------------------------------------
r59891 | mame | 2017-09-14 16:45:17 +0900 (Thu, 14 Sep 2017) | 1 line
ext/coverage/coverage.c (method_coverage): `id` was used uninitialized
------------------------------------------------------------------------
r59890 | mame | 2017-09-14 15:07:05 +0900 (Thu, 14 Sep 2017) | 10 lines
Measure branch and method coverage for `make test-all`
To measure coverage of C code:
`./configure --enable-gcov && make && make exam && make lcov`
To measure coverage of Ruby code:
`./configure && make && make exam COVERAGE=true && make lcov`
To measure coverage of both languages at a time:
`./configure --enable-gcov && make && make exam COVERAGE=true && make lcov`
------------------------------------------------------------------------
r59889 | mame | 2017-09-14 14:27:02 +0900 (Thu, 14 Sep 2017) | 4 lines
Introduce NODE_UNLESS for branch coverage
`unless` statement was a syntactic sugar for `if` statement,
which made the result of branch coverage hard to understand.
------------------------------------------------------------------------
r59888 | mame | 2017-09-14 14:12:34 +0900 (Thu, 14 Sep 2017) | 1 line
Add method coverage
------------------------------------------------------------------------
r59887 | hsbt | 2017-09-14 14:04:38 +0900 (Thu, 14 Sep 2017) | 8 lines
added workaround for APFS file format.
* TestFileExhaustive#test_atime: It fails with nano-sec precise.
I changed to use unixtime for this assertion for APFS.
* TestFileExhaustive#test_expand_path: skip assertion when given
invalid charactor on APFS.
[Bug #13816][ruby-core:82383]
------------------------------------------------------------------------
r59886 | mame | 2017-09-14 13:42:23 +0900 (Thu, 14 Sep 2017) | 1 line
Fix the lineno of case statement that has no expression
------------------------------------------------------------------------
r59885 | mame | 2017-09-14 13:32:58 +0900 (Thu, 14 Sep 2017) | 1 line
Add branch coverage for case-when statement
------------------------------------------------------------------------
r59878 | hsbt | 2017-09-14 12:57:22 +0900 (Thu, 14 Sep 2017) | 1 line
Removed needless operator.
------------------------------------------------------------------------
r59877 | mame | 2017-09-14 12:36:05 +0900 (Thu, 14 Sep 2017) | 1 line
Add branch coverage for while and until statements
------------------------------------------------------------------------
r59876 | mame | 2017-09-14 12:25:36 +0900 (Thu, 14 Sep 2017) | 1 line
Add branch coverage for if statement
------------------------------------------------------------------------
r59875 | mame | 2017-09-14 11:53:54 +0900 (Thu, 14 Sep 2017) | 1 line
ext/coverage/coverage.c: Fix the condition for non-experimental mode
------------------------------------------------------------------------
r59874 | mame | 2017-09-14 11:36:26 +0900 (Thu, 14 Sep 2017) | 24 lines
[EXPERIMENTAL] Extend the API of `Coverage.start` and `result`
The old API:
Coverage.start
load "foo.rb"
p Coverage.result #=> {"foo.rb" => [1, 2, nil]}
The new API:
ENV["COVERAGE_EXPERIMENTAL_MODE"] = "true"
Coverage.start(lines: true)
load "foo.rb"
p Coverage.result #=> {"foo.rb" => {:lines => [1, 2, nil]}}
This new API allows us to add other measuring target types.
Notes:
* To keep compatibility, the old interface is still remained; passing no
optional argument makes `Coverage.result` return the old format.
* This feature is still experimental. So, to enable the new API, the
environment variable `COVERAGE_EXPERIMENTAL_MODE` must be set. I plan
to activate this feature by Ruby 2.5.
------------------------------------------------------------------------
r59873 | hsbt | 2017-09-14 11:01:36 +0900 (Thu, 14 Sep 2017) | 4 lines
Update gemspec for gem released versions.
* These are dbm, fcntl, io-console, sdbm, stringio, strscan, zlib,
cmath, scanf.
------------------------------------------------------------------------
r59872 | ko1 | 2017-09-14 10:55:59 +0900 (Thu, 14 Sep 2017) | 3 lines
remove an unused variable (sometimes it fails test).
------------------------------------------------------------------------
r59871 | mame | 2017-09-14 10:55:30 +0900 (Thu, 14 Sep 2017) | 4 lines
Add a new instruction `trace2` for hooking with custom data
This is needed for passing to the hook function the measuring target
type (line/branch/method) and the site of coverage event fired.
------------------------------------------------------------------------
r59870 | nobu | 2017-09-14 02:07:19 +0900 (Thu, 14 Sep 2017) | 6 lines
test_rubyoptions.rb: keep paths if necessary
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_search):
PATH must keep library loading paths on a platform where it is
used for that purpose, for extra libraries.
[ruby-core:81178] [Bug #13569] [Fix GH-1616]
------------------------------------------------------------------------
r59869 | svn | 2017-09-14 00:28:17 +0900 (Thu, 14 Sep 2017) | 1 line
* 2017-09-14
------------------------------------------------------------------------
r59868 | nobu | 2017-09-14 00:28:16 +0900 (Thu, 14 Sep 2017) | 4 lines
LIBPATHENV on Windows
* configure.in, win32/Makefile.sub: set LIBPATHENV to PATH on
Windows, for extra DLLs.
------------------------------------------------------------------------
r59867 | suke | 2017-09-13 22:24:59 +0900 (Wed, 13 Sep 2017) | 3 lines
test/win32ole/test_word.rb: word quit without confirmation dialog to save
files. [Bug #13894] Thanks to h.shirosaki.
------------------------------------------------------------------------
r59866 | kazu | 2017-09-13 21:46:13 +0900 (Wed, 13 Sep 2017) | 3 lines
Random.urandom raises RuntimeError instead of returning nil
[ci skip]
------------------------------------------------------------------------
r59865 | hsbt | 2017-09-13 18:06:34 +0900 (Wed, 13 Sep 2017) | 1 line
Removed needless magic-comment for encodings.
------------------------------------------------------------------------
r59864 | hsbt | 2017-09-13 18:06:05 +0900 (Wed, 13 Sep 2017) | 1 line
Fixup r59856. Added workaround for JRuby.
------------------------------------------------------------------------
r59863 | hsbt | 2017-09-13 11:36:46 +0900 (Wed, 13 Sep 2017) | 3 lines
Added executable to bundler template.
It's same as upstream permission.
------------------------------------------------------------------------
r59862 | hsbt | 2017-09-13 11:21:02 +0900 (Wed, 13 Sep 2017) | 1 line
Fix a typo.
------------------------------------------------------------------------
r59861 | ko1 | 2017-09-13 08:15:34 +0900 (Wed, 13 Sep 2017) | 13 lines
Use mutable strings for mutation tests.
* test/fiddle/test_func.rb (test_string): this test break String buffer
by `strcpy` ("000" -> "123"). However, the string literal "000" with
`frozen_string_literal: true` returns a string object from frozen
string pool. So that after this test "000" from fstring pool becomes
"123" (modified string). 'test/date/' uses "000" (as fstring) and tests
are fails (we could check with `make test-all TESTS='fiddle date'`).
* test/fiddle/test_function.rb: ditto.
* test/fiddle/test_import.rb: ditto.
------------------------------------------------------------------------
r59860 | svn | 2017-09-13 03:41:06 +0900 (Wed, 13 Sep 2017) | 1 line
* 2017-09-13
------------------------------------------------------------------------
r59859 | normal | 2017-09-13 03:41:05 +0900 (Wed, 13 Sep 2017) | 3 lines
cont.c: update comment to match r59776 [ci skip]
* cont.c (fiber_switch): th->fiber => th->ec.fiber in comment
------------------------------------------------------------------------
r59858 | mame | 2017-09-12 22:57:36 +0900 (Tue, 12 Sep 2017) | 3 lines
Random.urandom raises an exception instead of returning nil when failed
Early failure looks better in this case. Refs [Bugs #13885].
------------------------------------------------------------------------
r59857 | rhe | 2017-09-12 22:52:51 +0900 (Tue, 12 Sep 2017) | 10 lines
openssl: merge test fixes from upstream, part 2
This is a combined patch of the following two commits in maint:
a09d8c78dd30 test/test_ssl: suppress warning in test_alpn_protocol_selection_cancel
de965374ee85 test/test_pair: disable compression
This hopefully fixes the RubyCI gentoo failure:
http://rubyci.s3.amazonaws.com/gentoo/ruby-trunk/log/20170912T033004Z.fail.html.gz
------------------------------------------------------------------------
r59856 | hsbt | 2017-09-12 21:51:43 +0900 (Tue, 12 Sep 2017) | 5 lines
Partly reverted r59845.
All of environments on Ruby CI are fails rdoc generation.
It may be caused by
https://github.com/ruby/rdoc/commit/8cfa11d6f1cc7e74e45e42fd8d1d76c5a0646a6e
------------------------------------------------------------------------
r59855 | naruse | 2017-09-12 21:49:38 +0900 (Tue, 12 Sep 2017) | 1 line
output some strings without quotes
------------------------------------------------------------------------
r59854 | hsbt | 2017-09-12 20:52:23 +0900 (Tue, 12 Sep 2017) | 6 lines
Merge fiddle-1.0.0.beta2 from upstream.
* ext/fiddle/closure.c: use directly declaration for standalone gem
without internal.h.
* Specify frozen string literal is true.
* Update gemspec configuration for release version.
------------------------------------------------------------------------
r59853 | kazu | 2017-09-12 20:15:27 +0900 (Tue, 12 Sep 2017) | 1 line
Add *.gemspec to .editorconfig [ci skip]
------------------------------------------------------------------------
r59852 | kazu | 2017-09-12 20:15:26 +0900 (Tue, 12 Sep 2017) | 1 line
Sort properties in .editorconfig [ci skip]
------------------------------------------------------------------------
r59851 | kazu | 2017-09-12 20:15:25 +0900 (Tue, 12 Sep 2017) | 1 line
Fix problem when open in emacs [ci skip]
------------------------------------------------------------------------
r59850 | hsbt | 2017-09-12 19:40:58 +0900 (Tue, 12 Sep 2017) | 1 line
Fixed copy option for bundler sync
------------------------------------------------------------------------
r59849 | hsbt | 2017-09-12 17:38:06 +0900 (Tue, 12 Sep 2017) | 4 lines
Merge csv-0.1.0 from upstream.
* csv.gemspec: Update release version.
* lib/csv.rb: Remove superfluous private clause.
------------------------------------------------------------------------
r59848 | hsbt | 2017-09-12 14:19:20 +0900 (Tue, 12 Sep 2017) | 3 lines
Fixed install error with rdoc.gemspec
"lib/rdoc" is only workds on rdoc repository structure.
------------------------------------------------------------------------
r59847 | svn | 2017-09-12 12:42:56 +0900 (Tue, 12 Sep 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59846 | svn | 2017-09-12 12:42:55 +0900 (Tue, 12 Sep 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r59845 | hsbt | 2017-09-12 12:42:54 +0900 (Tue, 12 Sep 2017) | 4 lines
Merge rdoc-6.0.0.beta2 from upstream.
* This version changed lexer used Ripper from lexer based IRB.
see details: https://github.com/ruby/rdoc/pull/512
------------------------------------------------------------------------
r59844 | nobu | 2017-09-12 05:10:34 +0900 (Tue, 12 Sep 2017) | 4 lines
console.c: set winsize on Windows
* ext/io/console/console.c (console_set_winsize): retry shrinking
window and screen buffer. [ruby-core:82741] [Bug #13888]
------------------------------------------------------------------------
r59843 | svn | 2017-09-12 05:10:34 +0900 (Tue, 12 Sep 2017) | 1 line
* 2017-09-12
------------------------------------------------------------------------
r59842 | nobu | 2017-09-12 05:10:33 +0900 (Tue, 12 Sep 2017) | 5 lines
test_io_console.rb: test_set_winsize_console
* test/io/console/test_io_console.rb (test_set_winsize_console):
split from test_get_winsize_console and enable the case when
attached to a console already
------------------------------------------------------------------------
r59840 | mame | 2017-09-11 21:44:51 +0900 (Mon, 11 Sep 2017) | 9 lines
lib/securerandom.rb: test one byte to determine urandom or openssl
`SecureRandom#gen_random` determines whether urandom is available or not
by trying `Random.urandom(n)`. But, when n = 0, `Random.urandom(0)`
always succeeds even if urandom is not available, which leads to a wrong
decision.
When failed, `Random.urandom` returns nil instead of returning a shorter
string than required. So the check for `ret.length != n` is not needed.
------------------------------------------------------------------------
r59839 | hsbt | 2017-09-11 18:44:29 +0900 (Mon, 11 Sep 2017) | 6 lines
Backport test_realworld_default_gem test from Rubygems-2.6.13.
But this test is always fail on ruby core repository. Because
default gems is only availabled after installation of Ruby.
I ignored this test at https://github.com/rubygems/rubygems/pull/1986
------------------------------------------------------------------------
r59838 | naruse | 2017-09-11 17:50:08 +0900 (Mon, 11 Sep 2017) | 1 line
Follow latest VM changes
------------------------------------------------------------------------
r59837 | naruse | 2017-09-11 17:50:07 +0900 (Mon, 11 Sep 2017) | 1 line
suppress unused argument warning
------------------------------------------------------------------------
r59836 | hsbt | 2017-09-11 15:12:40 +0900 (Mon, 11 Sep 2017) | 3 lines
Remove commented out code of URI::HTTP.new.
[Misc #13871][ruby-core:82655] Patch by @aycabta
------------------------------------------------------------------------
r59835 | hsbt | 2017-09-11 15:11:37 +0900 (Mon, 11 Sep 2017) | 3 lines
Remove commented out code of SecureRandom.random_number.
[Misc #13870][ruby-core:82654] Patch by @aycabta.
------------------------------------------------------------------------
r59834 | hsbt | 2017-09-11 12:05:07 +0900 (Mon, 11 Sep 2017) | 1 line
Fixed unterminated backquote for bundler sync task.
------------------------------------------------------------------------
r59833 | hsbt | 2017-09-11 11:29:11 +0900 (Mon, 11 Sep 2017) | 3 lines
Update bundled gems.
* rake-12.1.0 from 12.0.0
------------------------------------------------------------------------
r59832 | hsbt | 2017-09-11 10:33:46 +0900 (Mon, 11 Sep 2017) | 1 line
Added [Feature #12733] to NEWS entry.
------------------------------------------------------------------------
r59831 | ko1 | 2017-09-11 04:00:08 +0900 (Mon, 11 Sep 2017) | 13 lines
store ec instead of thread in rb_context_t.
* cont.c (rb_context_t): introduce saved_ec instaad of saved_thread.
We only need to transfer ec data (not all of thread data).
Introduce `thread_value` field to point creation thread.
To acccess this field, `cont_thread_value()` is introduced.
* vm.c (rb_execution_context_mark): remove `static` and use it
from cont.c (use this function instead of `rb_thread_mark`).
* vm_insnhelper.c (rb_vm_push_frame): accept ec instead of th.
------------------------------------------------------------------------
r59830 | ko1 | 2017-09-11 03:37:55 +0900 (Mon, 11 Sep 2017) | 7 lines
avoid false positive on fiber_verify().
* cont.c (fiber_store): move `cont_save_machine_stack()` timing to
avoid `fiber_verify()` false positive on `FIBER_USE_NATIVE == 0`
and `GC.stress = true`.
This patch is very dirty and it should be removed soon.
------------------------------------------------------------------------
r59829 | ko1 | 2017-09-11 02:30:16 +0900 (Mon, 11 Sep 2017) | 7 lines
clear `stack_end`.
* cont.c (cont_save_thread): clear only `stack_end`. Clearing tells
GC mark function to ignore this macine stack (not allocated yet).
`stack_start` will be used by machine stack store/restore phase
(on FIBER_USE_NATIVE == 0), so that only `stack_end` is cleared.
------------------------------------------------------------------------
r59828 | nobu | 2017-09-11 01:19:40 +0900 (Mon, 11 Sep 2017) | 4 lines
compile.c: pop coverage trace
* compile.c (iseq_compile_each0): pop trace for coverage only and
clear its corresponding line. [ruby-core:82726] [Bug #13886]
------------------------------------------------------------------------
r59827 | nobu | 2017-09-11 01:19:39 +0900 (Mon, 11 Sep 2017) | 1 line
cont.c: fix typo [ci skip]
------------------------------------------------------------------------
r59826 | svn | 2017-09-11 00:49:46 +0900 (Mon, 11 Sep 2017) | 1 line
* 2017-09-11
------------------------------------------------------------------------
r59825 | ko1 | 2017-09-11 00:49:45 +0900 (Mon, 11 Sep 2017) | 18 lines
move th->machine to ec->machine.
* vm_core.h: move rb_thread_t::machine to rb_execution_context_t::machine.
* vm_core.h, gc.c (rb_gc_mark_machine_stack): accept ec instead of th.
it enables to call this func from rb_execution_context_mark() in vm.c.
* cont.c (fiber_setcontext): catch up this fix.
fiber_restore_thread() restores machine stack information too.
* gc.c: catch up structure layout changes.
* thread.c: ditto.
* thread_pthread.c: ditto.
* thread_win32.c: ditto.
------------------------------------------------------------------------
r59824 | nobu | 2017-09-10 21:35:06 +0900 (Sun, 10 Sep 2017) | 3 lines
merger.rb: separate logs
* tool/merger.rb: separate each commit logs by an empty line.
------------------------------------------------------------------------
r59821 | nobu | 2017-09-10 20:52:56 +0900 (Sun, 10 Sep 2017) | 6 lines
cli_spec.rb: prefer BUNDLE_RUBY
* spec/bundler/bundler/cli_spec.rb: prefer BUNDLE_RUBY over env
hack. on macOS 10.11 or later, some system commands, e.g.
/bin/sh and /usr/bin/env, clear DYLD_LIBRARY_PATH environment
variable which is necessary to run not-yet installed command.
------------------------------------------------------------------------
r59810 | hsbt | 2017-09-10 12:21:58 +0900 (Sun, 10 Sep 2017) | 5 lines
BUNDLER_SPECS rquires a relative path with srcdir.
default targets are all of bundler specs. if you run only
commands/add_spec.rb spec:
make test-bundler BUNDLER_SPECS=commands/add_spec.rb
------------------------------------------------------------------------
r59804 | nobu | 2017-09-10 07:08:01 +0900 (Sun, 10 Sep 2017) | 3 lines
runruby.rb: set envvars for bundler
* tool/runruby.rb: set gem and bundler environment variables.
------------------------------------------------------------------------
r59803 | mame | 2017-09-10 00:19:19 +0900 (Sun, 10 Sep 2017) | 3 lines
Add a note to Random.urandom
The method may return nil for some reasons.
------------------------------------------------------------------------
r59802 | svn | 2017-09-10 00:12:11 +0900 (Sun, 10 Sep 2017) | 1 line
* 2017-09-10
------------------------------------------------------------------------
r59801 | mame | 2017-09-10 00:12:10 +0900 (Sun, 10 Sep 2017) | 5 lines
Update a test of SecureRandom according to r57384
SecureRandom uses urandom by default. So the test for a case where
openssl is unavailable makes no sense. Instead, a simple test for a
case where urandom is unavailable is added.
------------------------------------------------------------------------
r59794 | mame | 2017-09-09 22:09:21 +0900 (Sat, 09 Sep 2017) | 8 lines
Support LCOV visualization for both C and Ruby code
`./configure --enable-gcov && make exam && make lcov` will create
`lcov-c-out/index.html` for coverage of C code of the interpreter.
`make exam COVERAGE=true && make lcov` will create
`lcov-rb-out/index.html` for coverage of Ruby stdlib code.
Using both `--enable-gcov` and `COVERAGE=true` will create
`lcov-out/index.html` for total coverage.
------------------------------------------------------------------------
r59792 | nobu | 2017-09-09 20:30:32 +0900 (Sat, 09 Sep 2017) | 10 lines
spec/bundler/support: paths for ruby core
* spec/bundler/support/path.rb (Spec::Path#for_ruby_core?): helper
method to tell whether running in Ruby Core or not.
* spec/bundler/support/helpers.rb (Spec::Helpers#bundle): use
Path.bindir for ruby core case.
* spec/bundler/support/rubygems_ext.rb (Spec::Rubygems.setup):
ditto.
------------------------------------------------------------------------
r59791 | nobu | 2017-09-09 20:30:31 +0900 (Sat, 09 Sep 2017) | 4 lines
Makefile.in: test-bundler-prepare
* Makefile.in (test-bundler-prepare): install with --install-dir
option instead of GEM_HOME and GEM_PATH environment variables.
------------------------------------------------------------------------
r59790 | nobu | 2017-09-09 19:20:38 +0900 (Sat, 09 Sep 2017) | 4 lines
rubygems_ext.rb: use BUNDLE_GEM
* spec/bundler/support/rubygems_ext.rb (install_gems): use
BUNDLE_GEM set in Makefile.in instead of the installed command.
------------------------------------------------------------------------
r59789 | nobu | 2017-09-09 18:16:59 +0900 (Sat, 09 Sep 2017) | 4 lines
sprintf.c: NULL as str
* sprintf.c (ruby_vsnprintf, ruby_snprintf): allow NULL as str,
just count the expected buffer size.
------------------------------------------------------------------------
r59788 | nobu | 2017-09-09 18:16:56 +0900 (Sat, 09 Sep 2017) | 4 lines
compile.c: replaced switch by TYPE
* compile.c (int_param): prefer FIXNUM_P and NIL_P to switch by
TYPE.
------------------------------------------------------------------------
r59787 | kazu | 2017-09-09 11:34:30 +0900 (Sat, 09 Sep 2017) | 2 lines
Sync .gitignore and svn:ignore and cleanup [ci skip]
------------------------------------------------------------------------
r59786 | svn | 2017-09-09 08:51:15 +0900 (Sat, 09 Sep 2017) | 1 line
* 2017-09-09
------------------------------------------------------------------------
r59785 | normal | 2017-09-09 08:51:14 +0900 (Sat, 09 Sep 2017) | 9 lines
fiber: fix machine stack marking when FIBER_USE_NATIVE is 0
* cont.c (cont_mark): mark Fiber machine stack correctly when
FIBER_USE_NATIVE is 0
* test/ruby/test_fiber.rb (test_mark_fiber): new test
[Bug #13875] [ruby-core:82681]
This bug appears to be introduced with r59557.
("refactoring Fiber status")
------------------------------------------------------------------------
r59781 | hsbt | 2017-09-08 17:50:57 +0900 (Fri, 08 Sep 2017) | 3 lines
Rollback to v1.15.4 version.
In r59779, it contains current master version of bundler repository.
------------------------------------------------------------------------
r59780 | svn | 2017-09-08 17:45:47 +0900 (Fri, 08 Sep 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59779 | hsbt | 2017-09-08 17:45:41 +0900 (Fri, 08 Sep 2017) | 15 lines
Merge bundler to standard libraries.
rubygems 2.7.x depends bundler-1.15.x. This is preparation for
rubygems and bundler migration.
* lib/bundler.rb, lib/bundler/*: files of bundler-1.15.4
* spec/bundler/*: rspec examples of bundler-1.15.4. I applied patches.
* https://github.com/bundler/bundler/pull/6007
* Exclude not working examples on ruby repository.
* Fake ruby interpriter instead of installed ruby.
* Makefile.in: Added test task named `test-bundler`. This task is only
working macOS/linux yet. I'm going to support Windows environment later.
* tool/sync_default_gems.rb: Added sync task for bundler.
[Feature #12733][ruby-core:77172]
------------------------------------------------------------------------
r59778 | nobu | 2017-09-08 17:03:18 +0900 (Fri, 08 Sep 2017) | 7 lines
configure.in: moved flags
* configure.in (-DRUBY_DEVEL): moved from debugflags to XCFLAGS.
this flags should be applied to the ruby core only.
* configure.in (-fno-fast-math): moved from optflags to CFLAGS.
this flag is not for optimization.
------------------------------------------------------------------------
r59777 | nobu | 2017-09-08 16:22:47 +0900 (Fri, 08 Sep 2017) | 1 line
fix up r59776
------------------------------------------------------------------------
r59776 | ko1 | 2017-09-08 15:21:30 +0900 (Fri, 08 Sep 2017) | 5 lines
move th->fiber to ec->fiber.
* vm_core.h (rb_thread_t::fiber): move fiber field to
rb_execution_context_t::fiber.
------------------------------------------------------------------------
r59775 | hsbt | 2017-09-08 14:33:12 +0900 (Fri, 08 Sep 2017) | 4 lines
Update latest bundled-gems.
* minitest 5.10.3
* test-unit 3.2.5
------------------------------------------------------------------------
r59774 | hsbt | 2017-09-08 14:18:18 +0900 (Fri, 08 Sep 2017) | 3 lines
fix a label for bundled gems.
"bundle gems" is a wrong name.
------------------------------------------------------------------------
r59773 | usa | 2017-09-08 02:45:34 +0900 (Fri, 08 Sep 2017) | 5 lines
the working directory may not be srcdir
* test/runner.rb (COVERAGE): should use require_relative instead of require,
because the working directory may not be srcdir.
------------------------------------------------------------------------
r59772 | svn | 2017-09-08 00:40:30 +0900 (Fri, 08 Sep 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59771 | svn | 2017-09-08 00:40:30 +0900 (Fri, 08 Sep 2017) | 1 line
* 2017-09-08
------------------------------------------------------------------------
r59770 | mame | 2017-09-08 00:40:29 +0900 (Fri, 08 Sep 2017) | 20 lines
Measure the test coverage without SimpleCov
Now `make test-all COVERAGE=true` measures the test coverage by using
`coverage.so` directly, and visualize the result by simplecov-html.
There has been some problems in coverage measurement with SimpleCov.
(They are not SimpleCov's fault, though.)
(1) It is difficult to extract the measured data as a machine-readable
format, such as Marshal. I want to visualize the coverage data with
other coverage tools, such as LCOV and Cobertura.
(I know we can use SimpleCov's formatter mechanism, but I don't want
to depend upon SimpleCov so much.)
(2) SimpleCov seems to miss some coverage data. For example,
`lib/cgi.rb` and `lib/ostruct.rb` are dropped. I don't know why.
(3) I have a plan to enhance `coverage.so` with branch coverage.
It would be difficult to continue to only use SimpleCov as is.
This is the most important reason.
------------------------------------------------------------------------
r59769 | mame | 2017-09-07 21:36:01 +0900 (Thu, 07 Sep 2017) | 11 lines
Remove unneeded trace instruction for coverage
When no instruction is emitted in `iseq_compile_each0`
(i.e., when the line has no significant code), trace
instruction for `RUBY_EVENT_LINE` has been optimized out.
But trace for `RUBY_EVENT_COVERAGE` has not been removed.
Now, it is also removed.
`TestISeq#test_to_a_lines` has failed a long time under
coverage measurement (`make test-all COVERAGE=true`).
This change makes it pass.
------------------------------------------------------------------------
r59768 | kazu | 2017-09-07 21:31:50 +0900 (Thu, 07 Sep 2017) | 1 line
Use `%i`-literal instead of array of symbols
------------------------------------------------------------------------
r59767 | nobu | 2017-09-07 17:25:13 +0900 (Thu, 07 Sep 2017) | 4 lines
common.mk: fix golf
* common.mk (golf): MAINOBJ must be single object file name, so
moved golf_prelude to EXTOBJS. [ruby-dev:50214] [Bug #13854]
------------------------------------------------------------------------
r59766 | svn | 2017-09-07 12:24:09 +0900 (Thu, 07 Sep 2017) | 1 line
* 2017-09-07
------------------------------------------------------------------------
r59765 | nobu | 2017-09-07 12:24:08 +0900 (Thu, 07 Sep 2017) | 4 lines
ruby.h: unnormalized Fixnum value
* include/ruby/ruby.h (ST2FIX): fix unnormalized Fixnum value bug
on mingw/mswin. [ruby-core:82687] [Bug #13877]
------------------------------------------------------------------------
r59764 | kazu | 2017-09-06 22:46:31 +0900 (Wed, 06 Sep 2017) | 1 line
Fix a typo [ci skip]
------------------------------------------------------------------------
r59763 | nobu | 2017-09-06 22:11:44 +0900 (Wed, 06 Sep 2017) | 5 lines
string.c: fix false coderange
* string.c (rb_enc_str_scrub): enc can differ from the actual
encoding of the string, the cached coderange is useless then.
[ruby-core:82674] [Bug #13874]
------------------------------------------------------------------------
r59762 | nobu | 2017-09-06 21:50:10 +0900 (Wed, 06 Sep 2017) | 4 lines
string.c: optimize enumerate_grapheme_clusters
* string.c (rb_str_enumerate_grapheme_clusters): optimize when
single byte only.
------------------------------------------------------------------------
r59761 | duerst | 2017-09-06 17:19:12 +0900 (Wed, 06 Sep 2017) | 3 lines
add mention of upgrade to Unicode 10.0.0 to NEWS file
(this completes [Feature #13685]; [ci skip])
------------------------------------------------------------------------
r59760 | duerst | 2017-09-06 17:12:02 +0900 (Wed, 06 Sep 2017) | 3 lines
remove Unicode 9.0.0-related files
We don't need these files anymore because we upgraded to Unicode 10.0.0.
------------------------------------------------------------------------
r59759 | duerst | 2017-09-06 16:56:41 +0900 (Wed, 06 Sep 2017) | 6 lines
update Ruby to Unicode 10.0.0
- In common.mk, set UNICODE_VERSION to 10.0.0
- Generate and add enc/unicode/10.0.0/casefold.h and
enc/unicode/10.0.0/name2ctype.h
- Update lib/unicode_normalize/tables.rb
------------------------------------------------------------------------
r59758 | mame | 2017-09-06 16:46:31 +0900 (Wed, 06 Sep 2017) | 4 lines
Update SimpleCov version (v0.10.0 -> v0.15.0)
To suppress warnings of Fixnum.
Also simplecov-html updated (v0.10.0 -> v0.10.2).
------------------------------------------------------------------------
r59757 | hsbt | 2017-09-06 12:53:25 +0900 (Wed, 06 Sep 2017) | 3 lines
Fixed compilationn error with VMDEBUG=3.
[fix GH-1690] Patch from @musaprg(Kotaro Inoue)
------------------------------------------------------------------------
r59756 | ko1 | 2017-09-06 12:39:26 +0900 (Wed, 06 Sep 2017) | 9 lines
accept ec instead of th.
* vm.c: VM_EP_IN_HEAP_P() and vm_ep_in_heap_p_() only requires ec
pointed from th.
* vm.c (rb_execution_context_mark): GET_THREAD() returns current
running thread and we need to use marking thread here. Pass marking
thread's ec instead of current thread.
------------------------------------------------------------------------
r59755 | ko1 | 2017-09-06 12:18:19 +0900 (Wed, 06 Sep 2017) | 1 line
th is not defined
------------------------------------------------------------------------
r59754 | ko1 | 2017-09-06 11:51:34 +0900 (Wed, 06 Sep 2017) | 1 line
thread_context -> execution_context
------------------------------------------------------------------------
r59753 | svn | 2017-09-06 11:47:00 +0900 (Wed, 06 Sep 2017) | 1 line
* 2017-09-06
------------------------------------------------------------------------
r59752 | ko1 | 2017-09-06 11:46:59 +0900 (Wed, 06 Sep 2017) | 4 lines
rb_execution_context_mark.
* vm.c (rb_execution_context_mark): separate from thread_mark().
------------------------------------------------------------------------
r59751 | rhe | 2017-09-05 18:47:59 +0900 (Tue, 05 Sep 2017) | 8 lines
openssl: merge test fixes from upstream
Fix platform-dependent or fragile test cases added by r59734. This is a
combined patch of the three commits below:
4fc17977350a test/test_fips: skip if setting FIPS mode fails
b25179fbeebf test/test_asn1: fix possible failure in test_utctime
8ed81ff4b0a8 test/test_pair: fix test_write_nonblock{,_no_exceptions}
------------------------------------------------------------------------
r59750 | hsbt | 2017-09-05 17:25:26 +0900 (Tue, 05 Sep 2017) | 1 line
Update credentials for Travis/Slack integration.
------------------------------------------------------------------------
r59749 | mame | 2017-09-05 17:15:54 +0900 (Tue, 05 Sep 2017) | 3 lines
Hide NotImplementedError for windows
https://github.com/ruby/ruby/commit/440dc6b7e0b3b74db221eed81871516e301d4b3e#commitcomment-24074203
------------------------------------------------------------------------
r59748 | nobu | 2017-09-05 16:52:08 +0900 (Tue, 05 Sep 2017) | 4 lines
st.c: fix num_entries
* st.c (st_insert2): should manage num_entries when the key is
undefined, as well as st_insert().
------------------------------------------------------------------------
r59747 | nobu | 2017-09-05 16:50:13 +0900 (Tue, 05 Sep 2017) | 6 lines
st.c: fix false assertions
* st.c: split assertion conditions.
* st.c (rb_hash_bulk_insert): the number of arguments should be
even.
------------------------------------------------------------------------
r59746 | shyouhei | 2017-09-05 13:49:01 +0900 (Tue, 05 Sep 2017) | 7 lines
optimize rb_hash_bulk_insert to generally outperform 2.4.
Specialized routine for small linear-probling hash instances to
boost creation of such things [Bug #13861]
Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org>
------------------------------------------------------------------------
r59745 | svn | 2017-09-05 13:48:19 +0900 (Tue, 05 Sep 2017) | 1 line
* 2017-09-05
------------------------------------------------------------------------
r59744 | shyouhei | 2017-09-05 13:48:19 +0900 (Tue, 05 Sep 2017) | 9 lines
add rb_hash_new_with_size()
Sometimes, size of a hash can be calcluated a priori. By providing
such info to the constructor we can avoid unnecessary internal re-
allocations. This can boost for instance creation of hash literals.
[Bug #13861]
Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org>
------------------------------------------------------------------------
r59743 | nobu | 2017-09-04 23:04:54 +0900 (Mon, 04 Sep 2017) | 4 lines
string.c: grapheme clusters on frozen string
* string.c (rb_str_enumerate_grapheme_clusters): enumerate on
shared frozen string.
------------------------------------------------------------------------
r59742 | nobu | 2017-09-04 23:04:50 +0900 (Mon, 04 Sep 2017) | 4 lines
string.c: enumerator_element
* string.c (enumerator_element): push or yield elements, and
return 1 if needs checks.
------------------------------------------------------------------------
r59741 | mame | 2017-09-04 22:25:01 +0900 (Mon, 04 Sep 2017) | 3 lines
Improve line covearge of ext/io/nonblock/nonblock.c from 54.5% to 95.5%
Not so good test, but it would be better than nothing, I guess...
------------------------------------------------------------------------
r59740 | svn | 2017-09-04 21:15:07 +0900 (Mon, 04 Sep 2017) | 1 line
* 2017-09-04
------------------------------------------------------------------------
r59739 | kazu | 2017-09-04 21:15:06 +0900 (Mon, 04 Sep 2017) | 4 lines
gc.c: fix typo: nubmer -> number
Signed-off-by: Antonio Terceiro <terceiro@softwarelivre.org>
[Bug #13862]
------------------------------------------------------------------------
r59738 | mame | 2017-09-03 23:26:06 +0900 (Sun, 03 Sep 2017) | 8 lines
Refactor the internal data format for coverage measurement
To prepare new measuring targets: branch and method coverages.
So far, iseq->coverage was an array of counts executed for line coverage.
Now, it is a three-element array for each measuring target,
whose first element is an array for line coverage.
The second element is planned for branch coverage, and the third will be
for method coverage.
------------------------------------------------------------------------
r59737 | rhe | 2017-09-03 22:31:34 +0900 (Sun, 03 Sep 2017) | 3 lines
ext/.document: follow-up r59734
ext/openssl/ossl_pkcs5.c has been renamed to ossl_kdf.c.
------------------------------------------------------------------------
r59736 | nobu | 2017-09-03 22:21:07 +0900 (Sun, 03 Sep 2017) | 4 lines
string.c: make array in WANTARRAY
* string.c (WANTARRAY): make array for the result in method
functions and pass it to enumerator functions.
------------------------------------------------------------------------
r59735 | svn | 2017-09-03 21:35:29 +0900 (Sun, 03 Sep 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59734 | rhe | 2017-09-03 21:35:27 +0900 (Sun, 03 Sep 2017) | 112 lines
openssl: import v2.1.0.beta1
Import Ruby/OpenSSL 2.1.0.beta1. The full commit log since v2.0.5
(imported by r59567) can be found at:
https://github.com/ruby/openssl/compare/v2.0.5...v2.1.0.beta1
----------------------------------------------------------------
Antonio Terceiro (1):
test/test_ssl: explicitly accept TLS 1.1 in corresponding test
Colby Swandale (1):
document using secure protocol to fetch git master in Bundler
Colton Jenkins (1):
Add fips_mode_get to return fips_mode
Kazuki Yamaguchi (85):
Start preparing for 2.1.0
Remove support for OpenSSL 0.9.8 and 1.0.0
bn: refine tests
bn: implement unary {plus,minus} operators for OpenSSL::BN
bn: implement OpenSSL::BN#negative?
Don't define main() when built with --enable-debug
test: let OpenSSL::TestCase include OpenSSL::TestUtils
test: prepare test PKey instances on demand
Add OpenSSL.print_mem_leaks
Enable OSSL_MDEBUG on CI builds
ssl: move default DH parameters from OpenSSL::PKey::DH
Make exceptions with the same format regardless of OpenSSL.debug
ssl: show reason of 'certificate verify error' in exception message
ssl: remove OpenSSL::ExtConfig::TLS_DH_anon_WITH_AES_256_GCM_SHA384
ssl: do not confuse different ex_data index registries
ssl: assume SSL/SSL_CTX always have a valid reference to the Ruby object
Fix RDoc markup
ssl: suppress compiler warning
ext/openssl/deprecation.rb: remove broken-apple-openssl
extconf.rb: print informative message if OpenSSL can't be found
Rakefile: compile the extension before test
kdf: introduce OpenSSL::KDF module
ossl.h: add NUM2UINT64T() macro
kdf: add scrypt
Expand rb_define_copy_func() macro
Expand FPTR_TO_FD() macro
Remove SafeGet*() macros
cipher: rename GetCipherPtr() to ossl_evp_get_cipherbyname()
digest: rename GetDigestPtr() to ossl_evp_get_digestbyname()
Add ossl_str_new(), an exception-safe rb_str_new()
bio: simplify ossl_membio2str() using ossl_str_new()
Remove unused functions and macros
Drop support for LibreSSL 2.3
ocsp: add OpenSSL::OCSP::Request#signed?
asn1: infinite length -> indefinite length
asn1: rearrange tests
ssl: remove a needless NULL check in SSL::SSLContext#ciphers
ssl: return nil in SSL::SSLSocket#cipher if session is not started
asn1: remove an unnecessary function prototype
asn1: require tag information when instantiating generic type
asn1: initialize 'unused_bits' attribute of BitString with 0
asn1: check for illegal 'unused_bits' value of BitString
asn1: disallow NULL to be passed to asn1time_to_time()
asn1: avoid truncating OID in OpenSSL::ASN1::ObjectId#oid
asn1: allow constructed encoding with definite length form
asn1: prohibit indefinite length form for primitive encoding
asn1: allow tag number to be >= 32 for universal tag class
asn1: use ossl_asn1_tag()
asn1: clean up OpenSSL::ASN1::Constructive#to_der
asn1: harmonize OpenSSL::ASN1::*#to_der
asn1: prevent EOC octets from being in the middle of the content
asn1: do not treat EOC octets as part of content octets
x509name: add 'loc' and 'set' kwargs to OpenSSL::X509::Name#add_entry
ssl: do not call session_remove_cb during GC
Backport "Merge branch 'topic/test-memory-leak'" to maint
cipher: update the documentation for Cipher#auth_tag=
Rakefile: let sync:to_ruby know about test/openssl/fixtures
test: fix formatting
test/utils: remove OpenSSL::TestUtils.silent
test/utils: add SSLTestCase#tls12_supported?
test/utils: have start_server yield only the port number
test/utils: do not set ecdh_curves in start_server
test/utils: let server_loop close socket
test/utils: improve error handling in start_server
test/utils: add OpenSSL::TestUtils.openssl? and .libressl?
test/utils: do not use DSA certificates in SSL tests
test/test_ssl: remove test_invalid_shutdown_by_gc
test/test_ssl: move test_multibyte_read_write to test_pair
test/test_ssl_session: rearrange tests
test/test_pair, test/test_ssl: fix for TLS 1.3
ssl: remove useless call to rb_thread_wait_fd()
ssl: fix NPN support
ssl: mark OpenSSL::SSL::SSLContext::DEFAULT_{1024,2048} as private
ssl: use 2048-bit group in the default tmp_dh_cb
ssl: ensure that SSL option flags are non-negative
ssl: update OpenSSL::SSL::OP_* flags
ssl: prefer TLS_method() over SSLv23_method()
ssl: add SSLContext#min_version= and #max_version=
ssl: rework SSLContext#ssl_version=
test/test_x509name: change script encoding to ASCII-8BIT
x509name: refactor OpenSSL::X509::Name#to_s
x509name: add OpenSSL::X509::Name#to_utf8
x509name: add OpenSSL::X509::Name#inspect
x509name: update regexp in OpenSSL::X509::Name.parse
Ruby/OpenSSL 2.1.0.beta1
Marcus Stollsteimer (1):
Fix rdoc for core Integer class
nobu (4):
[DOC] {read,write}_nonblock with exception: false
[DOC] keyword argument _exception_
[DOC] mark up literals
Revert r57690 except for read_nonblock
------------------------------------------------------------------------
r59733 | rhe | 2017-09-03 21:35:25 +0900 (Sun, 03 Sep 2017) | 4 lines
vm_insnhelper.c: fix opt_regexpmatch2 instruction
A fix-up for r58390 ("split insns.def into functions", 2017-04-18) which
accidentally swapped the arguments.
------------------------------------------------------------------------
r59732 | nobu | 2017-09-03 11:08:55 +0900 (Sun, 03 Sep 2017) | 4 lines
string.c: enumerator_wantarray
* string.c (enumerator_wantarray): show warnings at method
functions for proper method names.
------------------------------------------------------------------------
r59731 | nobu | 2017-09-03 10:47:19 +0900 (Sun, 03 Sep 2017) | 4 lines
string.c: fix for non-Unicode encodings
* string.c (rb_str_enumerate_grapheme_clusters): should enumerate
chars for non-Unicode encodings. [Feature #13780]
------------------------------------------------------------------------
r59730 | nobu | 2017-09-03 09:39:23 +0900 (Sun, 03 Sep 2017) | 4 lines
string.c: suppress a warning
* string.c (rb_str_enumerate_grapheme_clusters): suppress a
maybe-uninitialized warning by old gcc.
------------------------------------------------------------------------
r59729 | nobu | 2017-09-03 09:32:27 +0900 (Sun, 03 Sep 2017) | 4 lines
default.mspec: suppress warnings
* spec/default.mspec: suppress tons of useless use of == in void
context warnings.
------------------------------------------------------------------------
r59728 | nobu | 2017-09-03 09:25:01 +0900 (Sun, 03 Sep 2017) | 4 lines
test_io.rb: suppress a warning
* test/ruby/test_io.rb (test_single_exception_on_close): suppress
ambiguous first argument warning with RUBYOPT=-w.
------------------------------------------------------------------------
r59727 | nobu | 2017-09-03 09:13:15 +0900 (Sun, 03 Sep 2017) | 7 lines
test_coverage.rb: suppress warnings
* test/coverage/test_coverage.rb (test_nonpositive_linenumber):
suppress method redefinition warnings.
* test/coverage/test_coverage.rb (test_eval): suppress literal in
void context warning.
------------------------------------------------------------------------
r59726 | svn | 2017-09-03 09:02:24 +0900 (Sun, 03 Sep 2017) | 1 line
* 2017-09-03
------------------------------------------------------------------------
r59725 | nobu | 2017-09-03 09:02:23 +0900 (Sun, 03 Sep 2017) | 6 lines
test_coverage.rb: use real path
* test/coverage/test_coverage.rb (test_restarting_coverage): use
real directory path for the case $TMPDIR contains symlinks. on
macOS, it is defaulted to a path under /var which is a symlink
to /private/var.
------------------------------------------------------------------------
r59724 | mame | 2017-09-02 22:55:12 +0900 (Sat, 02 Sep 2017) | 12 lines
test/coverage/test_coverage.rb: run the tests in separated processes
The tests had been disabled under coverage measurement (during
`ENV['COVERAGE']`), since they call `Coverage.result` which stops
coverage measurement.
So, we couldn't measure both C-level and Ruby-level coverage of Ruby
simultaneously.
In short, `./configure --enable-gcov && make exam COVERAGE=true`
misses some coverages.
Now, the test runs in another process. They does not stop coverage
measurement, so we can now enable the tests under coverage measurement.
------------------------------------------------------------------------
r59723 | rhe | 2017-09-02 15:17:52 +0900 (Sat, 02 Sep 2017) | 1 line
proc.c: [DOC] fixup r59720
------------------------------------------------------------------------
r59722 | nobu | 2017-09-02 11:05:34 +0900 (Sat, 02 Sep 2017) | 4 lines
getoptlong.rb: multiline regexps
* lib/getoptlong.rb: make regexps multiline safe.
[ruby-core:82627] [Bug #13858]
------------------------------------------------------------------------
r59721 | nobu | 2017-09-02 10:47:43 +0900 (Sat, 02 Sep 2017) | 4 lines
cont.c: fix root fiber to_s
* cont.c (fiber_to_s): fix Fiber#to_s on root fibers which have no
procs. [ruby-core:82629] [Bug #13859]
------------------------------------------------------------------------
r59720 | nobu | 2017-09-02 10:41:14 +0900 (Sat, 02 Sep 2017) | 6 lines
Add Method#original_name code example [ci skip]
* proc.c (method_original_name): [DOC] add code example.
[Fix GH-1693]
Author: Seiei Miyagi <hanachin@gmail.com>
------------------------------------------------------------------------
r59719 | nobu | 2017-09-02 10:08:27 +0900 (Sat, 02 Sep 2017) | 6 lines
Update Hash#compact! documentation [ci skip]
* hash.c (rb_hash_compact_bang): [DOC] update the case if no
changes were made. [ruby-core:82591] [Bug #13855] [Fix GH-1692]
Author: Lucas Buchala <lucasbuchala@gmail.com>
------------------------------------------------------------------------
r59718 | svn | 2017-09-02 09:26:38 +0900 (Sat, 02 Sep 2017) | 1 line
* 2017-09-02
------------------------------------------------------------------------
r59717 | suke | 2017-09-02 09:26:37 +0900 (Sat, 02 Sep 2017) | 3 lines
* ext/win32ole/win32ole.c (fole_initialize): fix typo. thanks to Gray Wolf.
[Feature #13828]
------------------------------------------------------------------------
r59716 | mame | 2017-09-01 23:58:52 +0900 (Fri, 01 Sep 2017) | 5 lines
ext/coverage/coverage.c: add Coverage.enabled?
* ext/coverage/coverage.c (rb_coverage_running): add to quickly
check if coverage is enabled. patched by Burke Libbey <burke AT
libbey.me> in [ruby-core:81726]. [Feature #13667]
------------------------------------------------------------------------
r59715 | duerst | 2017-09-01 19:22:09 +0900 (Fri, 01 Sep 2017) | 4 lines
replace copyrights by explanatory text in data files for GB2312/GB12345 mappings
Replace the copyrights and explanatory texts in the data files used for mapping
GB2312/GB12345 to/from Unicode with short explanatory texts. [Bug #12598] [ci skip]
------------------------------------------------------------------------
r59714 | rhe | 2017-09-01 17:16:38 +0900 (Fri, 01 Sep 2017) | 4 lines
object.c: fix potential oob write in rb_str_to_dbl()
Ensure space for the terminating NUL byte. Note that this code path is
reachable only when Ruby is compiled with SHARABLE_MIDDLE_SUBSTRING=1.
------------------------------------------------------------------------
r59713 | hsbt | 2017-09-01 12:34:18 +0900 (Fri, 01 Sep 2017) | 4 lines
Exclude Changelog files from documentation.
Patch from larskanis (Lars Kanis).
[Misc #13704][ruby-core:81878]
------------------------------------------------------------------------
r59712 | ko1 | 2017-09-01 11:09:02 +0900 (Fri, 01 Sep 2017) | 2 lines
skip unless PLATFORM is darwin.
------------------------------------------------------------------------
r59711 | svn | 2017-09-01 10:13:54 +0900 (Fri, 01 Sep 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59710 | naruse | 2017-09-01 10:13:53 +0900 (Fri, 01 Sep 2017) | 3 lines
Fix C level backtrace on Darwin
SEGV caused by invalid instruction call.
------------------------------------------------------------------------
r59709 | nobu | 2017-09-01 09:58:52 +0900 (Fri, 01 Sep 2017) | 4 lines
compile.c: fix loading pathobj
* compile.c (ibf_load_iseq_each): location.pathobj may not be a
mere string now.
------------------------------------------------------------------------
r59708 | nobu | 2017-09-01 09:43:00 +0900 (Fri, 01 Sep 2017) | 4 lines
compile.c: ensure after toplevel return
* compile.c (iseq_compile_each0): toplevel returns should fire
ensures. [ruby-core:82492] [Bug #13844]
------------------------------------------------------------------------
r59707 | svn | 2017-09-01 00:41:55 +0900 (Fri, 01 Sep 2017) | 1 line
* 2017-09-01
------------------------------------------------------------------------
r59706 | sorah | 2017-09-01 00:41:54 +0900 (Fri, 01 Sep 2017) | 7 lines
Skip test_open_tempfile_path on EINVAL
Looks like File::Constants::TMPFILE could be defined even when not
supported on system. Just skip the test when we get EINVAL on open(2).
* test/ruby/test_file.rb(test_open_tempfile_path):
Skip when EINVAL occured on File.open.
------------------------------------------------------------------------
r59705 | sorah | 2017-08-31 20:22:15 +0900 (Thu, 31 Aug 2017) | 1 line
add NEWS entry for [Feature #13568] r59704
------------------------------------------------------------------------
r59704 | sorah | 2017-08-31 20:14:36 +0900 (Thu, 31 Aug 2017) | 24 lines
File#path: Raise IOError when a file is O_TMPFILE
File#path for a file opened with O_TMPFILE has no meaning.
A filepath returned by this method isn't guarranteed about its accuracy,
but files opened with O_TMPFILE are known its recorded path has no
meaning. So let them not to return any pathname.
After a discussion in ruby-core, just returning Qnil makes guessing the
root cause difficult. Instead, this patch makes the method to raise an
error.
Other consideration is calling fnctl(2) on rb_file_path, but it adds a
overhead, and it's difficult to determine O_TMPFILE status after fd has
been closed.
[Feature #13568]
* io.c(rb_file_open_generic): Set Qnil to fptr->pathv when opening a
file using O_TMPFILE
* file.c(rb_file_path): Raise IOError when fptr->pathv is Qnil
* file.c(rb_file_path): [DOC] Update for the new behavior
------------------------------------------------------------------------
r59703 | naruse | 2017-08-31 17:33:35 +0900 (Thu, 31 Aug 2017) | 1 line
Added NEWS for r59702
------------------------------------------------------------------------
r59702 | naruse | 2017-08-31 17:29:38 +0900 (Thu, 31 Aug 2017) | 3 lines
Add Socket::Ifaddr.vhid on supported platforms [Feature #13803]
patched by Alan Somers
------------------------------------------------------------------------
r59701 | nobu | 2017-08-31 17:21:46 +0900 (Thu, 31 Aug 2017) | 6 lines
io.c: shrink read buffer
* io.c (io_setstrbuf): return true if the buffer is newly created.
* io.c (io_set_read_length): shrink the read buffer if it is a new
object and is too large. [ruby-core:81370] [Bug #13597]
------------------------------------------------------------------------
r59700 | nobu | 2017-08-31 17:07:59 +0900 (Thu, 31 Aug 2017) | 4 lines
string.c: adjust indent [ci skip]
* string.c (rb_str_enumerate_grapheme_clusters): adjust indent.
[Feature #13780]
------------------------------------------------------------------------
r59699 | nobu | 2017-08-31 17:04:49 +0900 (Thu, 31 Aug 2017) | 4 lines
test_syntax.rb: suppress warnings
* test/ruby/test_syntax.rb (TestSyntax#test_return_toplevel):
suppress unreachable statement warnings.
------------------------------------------------------------------------
r59698 | naruse | 2017-08-31 15:35:28 +0900 (Thu, 31 Aug 2017) | 3 lines
String#each_grapheme_cluster and String#grapheme_clusters
added to enumerate grapheme clusters [Feature #13780]
------------------------------------------------------------------------
r59697 | nobu | 2017-08-31 12:06:05 +0900 (Thu, 31 Aug 2017) | 4 lines
test_syntax.rb: assert output
* test/ruby/test_syntax.rb (TestSyntax#test_return_toplevel):
assert expected output if given.
------------------------------------------------------------------------
r59696 | kazu | 2017-08-31 09:05:29 +0900 (Thu, 31 Aug 2017) | 3 lines
`$=` is no longer effective. [ci skip]
* doc/globals.rdoc: [DOC] `$=` is no longer effective.
------------------------------------------------------------------------
r59695 | ko1 | 2017-08-31 07:23:45 +0900 (Thu, 31 Aug 2017) | 4 lines
to_str -> to_s
* lib/net/http/header.rb (set_field): `val` can not have `to_str`.
------------------------------------------------------------------------
r59694 | svn | 2017-08-31 02:24:05 +0900 (Thu, 31 Aug 2017) | 1 line
* 2017-08-31
------------------------------------------------------------------------
r59693 | naruse | 2017-08-31 02:24:05 +0900 (Thu, 31 Aug 2017) | 1 line
A HTTP Header value must not contain CR or LF.
------------------------------------------------------------------------
r59692 | nobu | 2017-08-30 17:26:16 +0900 (Wed, 30 Aug 2017) | 4 lines
array.c: refine binomial_coefficient
* array.c (binomial_coefficient): get rid of bignums by division
after each multiplications.
------------------------------------------------------------------------
r59691 | nobu | 2017-08-30 16:55:19 +0900 (Wed, 30 Aug 2017) | 3 lines
array.c: refine descending_factorial
* array.c (descending_factorial): reduce factorial multipication.
------------------------------------------------------------------------
r59690 | svn | 2017-08-30 14:37:00 +0900 (Wed, 30 Aug 2017) | 1 line
* 2017-08-30
------------------------------------------------------------------------
r59689 | nobu | 2017-08-30 14:36:59 +0900 (Wed, 30 Aug 2017) | 10 lines
array.c: integer calculations
* array.c (rb_ary_cycle_size, descending_factorial): use
rb_int_mul instead of rb_funcallv.
* array.c (binomial_coefficient): use rb_int_idiv instead of
rb_funcallv.
* array.c (rb_ary_repeated_permutation_size): use
rb_int_positive_pow.
------------------------------------------------------------------------
r59688 | nobu | 2017-08-29 21:13:37 +0900 (Tue, 29 Aug 2017) | 3 lines
array.c: use rb_check_array_type
* array.c (ary_join_1): simplified by rb_check_array_type.
------------------------------------------------------------------------
r59687 | svn | 2017-08-29 20:52:52 +0900 (Tue, 29 Aug 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r59686 | hsbt | 2017-08-29 20:52:50 +0900 (Tue, 29 Aug 2017) | 4 lines
Merge rdoc-6.0.0.beta1.
This version fixed strange behavior of ruby code parser.
We will list all of impromovement to Changelog when 6.0.0 releasing.
------------------------------------------------------------------------
r59685 | nobu | 2017-08-29 20:35:35 +0900 (Tue, 29 Aug 2017) | 4 lines
array.c: nested encoding
* array.c (ary_join_1): ignore encodings in nested arrays as an
initial encoding.
------------------------------------------------------------------------
r59684 | nobu | 2017-08-29 19:49:40 +0900 (Tue, 29 Aug 2017) | 4 lines
array.c: join encoding
* array.c (ary_join_1): copy the encoding of the converted string
of the first element by to_str too, as an initial encoding.
------------------------------------------------------------------------
r59683 | hsbt | 2017-08-29 19:22:47 +0900 (Tue, 29 Aug 2017) | 3 lines
Partly reverted r59642. Because IO#close is idempotent since Ruby 2.3.
Reported by Eric Wong. Thank you.
------------------------------------------------------------------------
r59682 | nobu | 2017-08-29 16:11:52 +0900 (Tue, 29 Aug 2017) | 1 line
test/ruby: tweaked heredocs
------------------------------------------------------------------------
r59681 | ko1 | 2017-08-29 16:01:27 +0900 (Tue, 29 Aug 2017) | 1 line
fix error message.
------------------------------------------------------------------------
r59680 | sonots | 2017-08-29 15:24:31 +0900 (Tue, 29 Aug 2017) | 4 lines
.gitignore: ignore run.gdb
* .gitignore: ignore run.gdb which is assumed to be generated
by make gdb and customized manually during development
------------------------------------------------------------------------
r59679 | glass | 2017-08-29 13:58:29 +0900 (Tue, 29 Aug 2017) | 1 line
resolv.rb: remove unnecessary require statement
------------------------------------------------------------------------
r59678 | nobu | 2017-08-29 08:25:56 +0900 (Tue, 29 Aug 2017) | 5 lines
win32.c: fix function pointer
* win32/win32.c (rb_w32_set_thread_description): fix the condition
if the API function pointer is found.
[ruby-core:82494] [Bug #13845]
------------------------------------------------------------------------
r59677 | svn | 2017-08-29 01:05:11 +0900 (Tue, 29 Aug 2017) | 1 line
* 2017-08-29
------------------------------------------------------------------------
r59676 | naruse | 2017-08-29 01:05:11 +0900 (Tue, 29 Aug 2017) | 5 lines
Increase STACKFRAME_FOR_CALL_CFUNC
On below env, miniruby requires 568 and ruby requires 838 to pass.
* ruby -v: ruby 2.5.0dev (2017-08-28 trunk 59670) [x86_64-freebsd10.3]
* gcc8 (FreeBSD Ports Collection) 8.0.0 20170828 (experimental)
------------------------------------------------------------------------
r59675 | nobu | 2017-08-28 23:21:40 +0900 (Mon, 28 Aug 2017) | 3 lines
compile.c: compile_if
* compile.c (compile_if): extract from iseq_compile_each.
------------------------------------------------------------------------
r59674 | kazu | 2017-08-28 20:20:08 +0900 (Mon, 28 Aug 2017) | 1 line
[DOC] Fix typo in rdoc of `transform_values!` [ci skip]
------------------------------------------------------------------------
r59673 | glass | 2017-08-28 19:55:37 +0900 (Mon, 28 Aug 2017) | 4 lines
string.c: fix potential bug in String#split
* string.c (rb_str_split_m): fix potential bug when rb_memsearch()
matches a octet in the middle of a multi-byte character sequence.
------------------------------------------------------------------------
r59672 | hsbt | 2017-08-28 17:31:28 +0900 (Mon, 28 Aug 2017) | 4 lines
Merge rubygems-2.6.13.
see details for this update:
http://blog.rubygems.org/2017/08/27/2.6.13-released.html
------------------------------------------------------------------------
r59671 | glass | 2017-08-28 16:54:00 +0900 (Mon, 28 Aug 2017) | 3 lines
lib/csv.rb: refactor and optimize. This change
includes the patch from marshall-lee.
close #1168
------------------------------------------------------------------------
r59670 | nobu | 2017-08-28 01:18:17 +0900 (Mon, 28 Aug 2017) | 3 lines
compile.c: compile_ensure
* compile.c (compile_ensure): extract from iseq_compile_each.
------------------------------------------------------------------------
r59669 | nobu | 2017-08-28 01:15:19 +0900 (Mon, 28 Aug 2017) | 3 lines
compile.c: compile_resbody
* compile.c (compile_resbody): extract from iseq_compile_each.
------------------------------------------------------------------------
r59668 | svn | 2017-08-28 01:04:27 +0900 (Mon, 28 Aug 2017) | 1 line
* 2017-08-28
------------------------------------------------------------------------
r59667 | nobu | 2017-08-28 01:04:26 +0900 (Mon, 28 Aug 2017) | 3 lines
compile.c: compile_rescue
* compile.c (compile_rescue): extract from iseq_compile_each.
------------------------------------------------------------------------
r59666 | shugo | 2017-08-27 15:32:00 +0900 (Sun, 27 Aug 2017) | 4 lines
lib/net/imap.rb: Accept continuation requests without response text
The IMAP server of DOCOMO returns such continuation requests.
[ruby-list:50558]
------------------------------------------------------------------------
r59665 | suke | 2017-08-27 08:39:43 +0900 (Sun, 27 Aug 2017) | 2 lines
* ext/win32ole/win32ole.c (fole_initialize): support licensed COM server. Thanks to Gray Wolf. [Feature :#13828]
------------------------------------------------------------------------
r59664 | nobu | 2017-08-27 06:02:23 +0900 (Sun, 27 Aug 2017) | 3 lines
vcs.rb: refresh after dcommit
* tool/vcs.rb (VCS::GIT#commit): refresh until sync after dcommit.
------------------------------------------------------------------------
r59663 | svn | 2017-08-27 05:55:32 +0900 (Sun, 27 Aug 2017) | 1 line
* 2017-08-27
------------------------------------------------------------------------
r59662 | nobu | 2017-08-27 05:55:31 +0900 (Sun, 27 Aug 2017) | 1 line
NEWS: Thread#name= on Windows [ci skip]
------------------------------------------------------------------------
r59661 | nobu | 2017-08-26 23:22:31 +0900 (Sat, 26 Aug 2017) | 4 lines
win32.c: fix return value
* win32/win32.c (rb_w32_set_thread_description_str): return the
result when name is nil.
------------------------------------------------------------------------
r59660 | nobu | 2017-08-26 09:30:03 +0900 (Sat, 26 Aug 2017) | 7 lines
thread_win32.c: set thread name
* thread_win32.c (native_set_another_thread_name): set thread name
by SetThreadDescription.
* win32/win32.c (rb_w32_set_thread_description): dynamically try
SetThreadDescription.
------------------------------------------------------------------------
r59659 | svn | 2017-08-26 00:47:05 +0900 (Sat, 26 Aug 2017) | 1 line
* 2017-08-26
------------------------------------------------------------------------
r59658 | kazu | 2017-08-26 00:47:04 +0900 (Sat, 26 Aug 2017) | 3 lines
`$IGNORECASE` is no longer effective. [ci skip]
* lib/English.rb: [DOC] `$IGNORECASE` is no longer effective.
------------------------------------------------------------------------
r59657 | glass | 2017-08-25 17:13:32 +0900 (Fri, 25 Aug 2017) | 7 lines
csv.rb: optimize CSV::Table#to_a and #to_csv
* lib/csv.rb (CSV::Table#to_a, #to_csv): use Array#push instead of
Array#concat for performance improvement. This performance improvement is
proposed by zdennis <zach.dennis@gmail.com>. The patch is from
Mau Magnaguagno <maumagnaguagno@gmail.com>.
close #946
------------------------------------------------------------------------
r59656 | nobu | 2017-08-25 12:41:43 +0900 (Fri, 25 Aug 2017) | 4 lines
compile.c: unreachable chunk
* compile.c (iseq_peephole_optimize): remove unreachable chunk
which appeared by useless jump elimination.
------------------------------------------------------------------------
r59655 | nobu | 2017-08-25 12:33:32 +0900 (Fri, 25 Aug 2017) | 4 lines
compile.c: useless jump elimination
* compile.c (iseq_peephole_optimize): eliminate useless if/unless
just before jump.
------------------------------------------------------------------------
r59654 | svn | 2017-08-25 11:37:39 +0900 (Fri, 25 Aug 2017) | 1 line
* 2017-08-25
------------------------------------------------------------------------
r59653 | nobu | 2017-08-25 11:37:38 +0900 (Fri, 25 Aug 2017) | 4 lines
compile.c: moved comments [ci skip]
* compile.c (iseq_peephole_optimize): moved comments inside proper
blocks.
------------------------------------------------------------------------
r59652 | nobu | 2017-08-24 16:31:56 +0900 (Thu, 24 Aug 2017) | 4 lines
compile.c: show failed instructions
* compile.c (iseq_set_sequence): show failed instructions at
adjuststack mismatch.
------------------------------------------------------------------------
r59651 | svn | 2017-08-24 16:26:06 +0900 (Thu, 24 Aug 2017) | 1 line
* 2017-08-24
------------------------------------------------------------------------
r59650 | nobu | 2017-08-24 16:26:05 +0900 (Thu, 24 Aug 2017) | 1 line
compile.c: free before adjust error
------------------------------------------------------------------------
r59649 | nobu | 2017-08-23 13:01:39 +0900 (Wed, 23 Aug 2017) | 4 lines
gc.c: restore cfp at finalizer
* gc.c (run_finalizer): restore cfp for the case an exception
raised in a finalizer. [ruby-core:82432] [Bug #13832]
------------------------------------------------------------------------
r59648 | nobu | 2017-08-23 12:14:05 +0900 (Wed, 23 Aug 2017) | 1 line
skip unless finalizers run
------------------------------------------------------------------------
r59647 | nobu | 2017-08-23 11:26:02 +0900 (Wed, 23 Aug 2017) | 4 lines
gc.c: run all finalizers
* gc.c (run_finalizer): revert r59155 partially. finalizing loop
should continue even after an exception is rescued.
------------------------------------------------------------------------
r59646 | svn | 2017-08-23 11:23:48 +0900 (Wed, 23 Aug 2017) | 1 line
* 2017-08-23
------------------------------------------------------------------------
r59645 | ko1 | 2017-08-23 11:23:47 +0900 (Wed, 23 Aug 2017) | 3 lines
remove debug code.
------------------------------------------------------------------------
r59644 | nobu | 2017-08-22 22:21:18 +0900 (Tue, 22 Aug 2017) | 4 lines
parse.y: primary should not be 0
* parse.y (primary): should not be 0, since it can be a receiver.
[ruby-core:82447] [Bug #13836]
------------------------------------------------------------------------
r59643 | hsbt | 2017-08-22 15:57:00 +0900 (Tue, 22 Aug 2017) | 3 lines
Fixed regression to convert blank value at r45497.
[Bug #11126][ruby-core:69088]
------------------------------------------------------------------------
r59642 | hsbt | 2017-08-22 15:40:59 +0900 (Tue, 22 Aug 2017) | 3 lines
Gracefully handle CSV IO when file descriptor closed.
[Bug #10504][ruby-core:66240]
------------------------------------------------------------------------
r59641 | hsbt | 2017-08-22 15:34:27 +0900 (Tue, 22 Aug 2017) | 3 lines
Fixed equality method fails when given the object that doesn't support table method.
[Bug #12422][ruby-core:75707]
------------------------------------------------------------------------
r59640 | hsbt | 2017-08-22 15:17:42 +0900 (Tue, 22 Aug 2017) | 3 lines
Fixed to write_headers option behavior when given no rows.
[Bug #9988][ruby-core:63375]
------------------------------------------------------------------------
r59639 | hsbt | 2017-08-22 14:32:34 +0900 (Tue, 22 Aug 2017) | 5 lines
Escape skip_lines string before convert to Regexp.
It ignored all of lines when given Regexp special characters.
[Feature #9147][ruby-core:58549]
------------------------------------------------------------------------
r59638 | nobu | 2017-08-22 13:40:16 +0900 (Tue, 22 Aug 2017) | 1 line
pack insn_operand_info and insn_len_info
------------------------------------------------------------------------
r59637 | nobu | 2017-08-22 13:37:08 +0900 (Tue, 22 Aug 2017) | 1 line
pack insns_name_info
------------------------------------------------------------------------
r59636 | nobu | 2017-08-22 13:22:01 +0900 (Tue, 22 Aug 2017) | 1 line
tool/instruction.rb: move logics to templates
------------------------------------------------------------------------
r59635 | nobu | 2017-08-22 12:07:01 +0900 (Tue, 22 Aug 2017) | 4 lines
insns.inc.tmpl: ensure info size
* template/insns.inc.tmpl (ASSERT_VM_INSTRUCTION_SIZE): static
assertion for VM instruction info tables.
------------------------------------------------------------------------
r59634 | nobu | 2017-08-22 11:46:16 +0900 (Tue, 22 Aug 2017) | 4 lines
signal.c: fatal stack
* signal.c (check_stack_overflow): raise fatal when the last tag
is in danger zone.
------------------------------------------------------------------------
r59633 | nobu | 2017-08-22 11:42:23 +0900 (Tue, 22 Aug 2017) | 1 line
signal.c: removed raise_stack_overflow:
------------------------------------------------------------------------
r59632 | svn | 2017-08-22 09:41:25 +0900 (Tue, 22 Aug 2017) | 1 line
* 2017-08-22
------------------------------------------------------------------------
r59631 | ko1 | 2017-08-22 09:41:24 +0900 (Tue, 22 Aug 2017) | 5 lines
split out struct cont_saved_vm_stack.
* cont.c: introduce `struct cont_saved_vm_stack` which was part of
`struct rb_context_struct`.
------------------------------------------------------------------------
r59630 | nobu | 2017-08-21 23:15:31 +0900 (Mon, 21 Aug 2017) | 7 lines
prevent stack overflow
* gc.c: enable PREVENT_STACK_OVERFLOW.
* vm.c (invoke_iseq_block_from_c): prevent stack overflow.
* vm_eval.c (stack_check): raise preallocated exception instance.
------------------------------------------------------------------------
r59629 | yui-knk | 2017-08-21 22:38:35 +0900 (Mon, 21 Aug 2017) | 6 lines
Remove a meaningless local variable assignment
* iseq.c (rb_iseq_disasm_insn): Remove a meaningless
local variable assignment. `insn` is never changed
in this function, so a result of `insn_op_types(insn)`
is also never changed.
------------------------------------------------------------------------
r59628 | svn | 2017-08-21 15:46:47 +0900 (Mon, 21 Aug 2017) | 1 line
* 2017-08-21
------------------------------------------------------------------------
r59627 | nobu | 2017-08-21 15:46:46 +0900 (Mon, 21 Aug 2017) | 7 lines
vm_core.h: ruby_error_stackfatal
* vm_core.h (ruby_special_exceptions): rename sysstack_gc as
stackfatal.
* eval.c (Init_eval): modified the message for stackfatal error as
"critical region".
------------------------------------------------------------------------
r59626 | nobu | 2017-08-20 15:08:25 +0900 (Sun, 20 Aug 2017) | 6 lines
non-keywords hash
* class.c (rb_scan_args), include/ruby/ruby.h (rb_scan_args_set):
return non-keywords elements only in the last hash when keyword
arguments are extracted from it, as well as methods defined in
ruby level. [ruby-core:82427] [Bug #13830]
------------------------------------------------------------------------
r59625 | svn | 2017-08-20 08:39:04 +0900 (Sun, 20 Aug 2017) | 1 line
* 2017-08-20
------------------------------------------------------------------------
r59624 | nobu | 2017-08-20 08:39:03 +0900 (Sun, 20 Aug 2017) | 7 lines
ruby.h: fix rb_scan_args_trail_idx
* include/ruby/ruby.h (rb_scan_args_trail_idx): fix the case both
of optional and rest arguments are defined.
[ruby-core:82427] [Bug #13830]
* include/ruby/ruby.h (rb_scan_args_n_trail): ditto.
------------------------------------------------------------------------
r59623 | ktsj | 2017-08-19 19:02:57 +0900 (Sat, 19 Aug 2017) | 1 line
gems/bundled_gems: Update to power_assert 1.1.0
------------------------------------------------------------------------
r59622 | nobu | 2017-08-19 10:04:15 +0900 (Sat, 19 Aug 2017) | 4 lines
class.c: check kw hash
* class.c (rb_keyword_error_new): get rid of an intermediate
string and check if keys are symbols.
------------------------------------------------------------------------
r59621 | svn | 2017-08-19 09:45:23 +0900 (Sat, 19 Aug 2017) | 1 line
* 2017-08-19
------------------------------------------------------------------------
r59620 | nobu | 2017-08-19 09:45:22 +0900 (Sat, 19 Aug 2017) | 1 line
class.c: call rb_hash_keys directly
------------------------------------------------------------------------
r59619 | nobu | 2017-08-18 21:44:30 +0900 (Fri, 18 Aug 2017) | 4 lines
vm_insnhelper.c: vm_cfp_consistent_p
* vm_insnhelper.c (vm_cfp_consistent_p): extracted the conditions
for cfp consistency.
------------------------------------------------------------------------
r59618 | nobu | 2017-08-18 21:17:59 +0900 (Fri, 18 Aug 2017) | 4 lines
vm_insnhelper.c: raise ruby_error_sysstack_gc
* vm_insnhelper.c (rb_threadptr_stack_overflow): rb_fatal is not
available during GC. raise the preallocated fatal error.
------------------------------------------------------------------------
r59617 | shugo | 2017-08-18 14:16:05 +0900 (Fri, 18 Aug 2017) | 3 lines
test/net/imap/test_imap.rb: Use Addrinfo.tcp in case localhost is ::1.
[ruby-dev:50208] [Bug #13825]
------------------------------------------------------------------------
r59616 | nobu | 2017-08-18 08:31:41 +0900 (Fri, 18 Aug 2017) | 4 lines
Revert r59612
* method.h (rb_method_definition_t): rb_method_type_t should be
unsigned as it needs 5bits at least for signed extension.
------------------------------------------------------------------------
r59615 | svn | 2017-08-18 01:34:40 +0900 (Fri, 18 Aug 2017) | 1 line
* 2017-08-18
------------------------------------------------------------------------
r59614 | naruse | 2017-08-18 01:34:40 +0900 (Fri, 18 Aug 2017) | 36 lines
Add optimization for creating zerofill string
```
require 'benchmark'
n = 1 * 1024 * 1024 * 1024
Benchmark.bmbm do |x|
x.report("*") { 0.chr * n }
x.report("ljust") { String.new(capacity: n).ljust(n, "\0") }
end
```
Before
```% ./ruby test.rb
Rehearsal -----------------------------------------
* 0.358396 0.392753 0.751149 ( 1.134231)
ljust 0.203277 0.389223 0.592500 ( 0.594816)
-------------------------------- total: 1.343649sec
user system total real
* 0.282647 0.304600 0.587247 ( 0.589205)
ljust 0.201834 0.283801 0.485635 ( 0.487617)
```
After
```% ./ruby test.rb
Rehearsal -----------------------------------------
* 0.000522 0.000021 0.000543 ( 0.000534)
ljust 0.208551 0.321030 0.529581 ( 0.542083)
-------------------------------- total: 0.530124sec
user system total real
* 0.000069 0.000006 0.000075 ( 0.000069)
ljust 0.206698 0.301032 0.507730 ( 0.517674)
```
------------------------------------------------------------------------
r59613 | nobu | 2017-08-17 23:58:11 +0900 (Thu, 17 Aug 2017) | 5 lines
vm_method.c: alias warning at refined method
* vm_method.c (rb_method_entry_make): suppress a warning at
refined method which will not be redefined.
[ruby-core:82385] [Bug #13817]
------------------------------------------------------------------------
r59612 | nobu | 2017-08-17 23:36:57 +0900 (Thu, 17 Aug 2017) | 4 lines
method.h: enum rb_method_definition_t::type
* method.h (rb_method_definition_t): define type as an enum for
debugging.
------------------------------------------------------------------------
r59611 | nobu | 2017-08-17 21:33:41 +0900 (Thu, 17 Aug 2017) | 4 lines
parse.y: unexpected tINTEGER message
* parse.y (parser_number_literal_suffix): keep token after numeric
suffix to show the value in an error message.
------------------------------------------------------------------------
r59610 | svn | 2017-08-17 21:31:11 +0900 (Thu, 17 Aug 2017) | 1 line
* 2017-08-17
------------------------------------------------------------------------
r59609 | kazu | 2017-08-17 21:31:10 +0900 (Thu, 17 Aug 2017) | 4 lines
Use `*` instead of `**` in .editorconfig
It seems `**` is same as `*` when no `/` exist.
[ci skip]
------------------------------------------------------------------------
r59608 | hsbt | 2017-08-16 18:45:58 +0900 (Wed, 16 Aug 2017) | 3 lines
Extract files variables of ipaddr.gemspec for non git environment.
[Bug #13808][ruby-core:82358]
------------------------------------------------------------------------
r59607 | hsbt | 2017-08-16 18:37:03 +0900 (Wed, 16 Aug 2017) | 4 lines
Added gemspec of digest library.
standalone repository is https://github.com/ruby/digest
[Misc #13771][ruby-core:82179]
------------------------------------------------------------------------
r59606 | nobu | 2017-08-16 16:18:45 +0900 (Wed, 16 Aug 2017) | 5 lines
vm_insnhelper.c: cfp error at stack overflow
* vm_insnhelper.c (threadptr_stack_overflow): set stack overflow
flag until handling execptions, to get rid of cfp consistency
error when exec tag was rewound. [ruby-core:80618] [Bug #13412]
------------------------------------------------------------------------
r59605 | naruse | 2017-08-16 06:39:38 +0900 (Wed, 16 Aug 2017) | 3 lines
Partially revert "suppress warning: assigned but unused variable - line"
revert unexpected changes
------------------------------------------------------------------------
r59604 | naruse | 2017-08-16 06:36:16 +0900 (Wed, 16 Aug 2017) | 1 line
suppress warning: assigned but unused variable - line
------------------------------------------------------------------------
r59603 | svn | 2017-08-16 06:33:44 +0900 (Wed, 16 Aug 2017) | 1 line
* 2017-08-16
------------------------------------------------------------------------
r59602 | naruse | 2017-08-16 06:33:43 +0900 (Wed, 16 Aug 2017) | 1 line
High Sierra's APFS cannot use invalid filenames [Bug #13816]
------------------------------------------------------------------------
r59601 | nobu | 2017-08-15 22:53:38 +0900 (Tue, 15 Aug 2017) | 4 lines
parse.y: removed useless check
* parse.y (singleton): literal nodes are always value expressions,
no check is necessary.
------------------------------------------------------------------------
r59600 | yui-knk | 2017-08-15 22:12:39 +0900 (Tue, 15 Aug 2017) | 6 lines
Remove not exist arguments from comments of insns
is_local argument was introduced on r11639 and removed on r11813.
* insns.def (getinstancevariable, setinstancevariable): Remove a not
exist argument.
------------------------------------------------------------------------
r59599 | naruse | 2017-08-15 22:05:18 +0900 (Tue, 15 Aug 2017) | 1 line
suppress warning: assigned but unused variable - line
------------------------------------------------------------------------
r59598 | nobu | 2017-08-15 10:05:50 +0900 (Tue, 15 Aug 2017) | 4 lines
ftp.rb: fix example format [ci skip]
* lib/uri/ftp.rb: [DOC] fix format of example URLs. patched by
aycabta (Code Ahss) at [ruby-core:82379]. [Bug #13814]
------------------------------------------------------------------------
r59597 | nobu | 2017-08-15 09:50:22 +0900 (Tue, 15 Aug 2017) | 5 lines
ripper.rb: fix License format [ci skip]
* ext/ripper/lib/ripper.rb: [DOC] fix format of the License
description and the author. patched by aycabta (Code Ahss) at
[ruby-core:82376]. [Bug #13813]
------------------------------------------------------------------------
r59596 | nobu | 2017-08-15 09:45:14 +0900 (Tue, 15 Aug 2017) | 3 lines
compile.c: compile_retry
* compile.c (compile_retry): extract from iseq_compile_each.
------------------------------------------------------------------------
r59595 | nobu | 2017-08-15 09:45:13 +0900 (Tue, 15 Aug 2017) | 3 lines
compile.c: compile_redo
* compile.c (compile_redo): extract from iseq_compile_each.
------------------------------------------------------------------------
r59594 | nobu | 2017-08-15 09:18:47 +0900 (Tue, 15 Aug 2017) | 3 lines
compile.c: compile_next
* compile.c (compile_next): extract from iseq_compile_each.
------------------------------------------------------------------------
r59593 | nobu | 2017-08-15 08:55:34 +0900 (Tue, 15 Aug 2017) | 3 lines
compile.c: compile_break
* compile.c (compile_break): extract from iseq_compile_each.
------------------------------------------------------------------------
r59592 | svn | 2017-08-15 01:04:36 +0900 (Tue, 15 Aug 2017) | 1 line
* 2017-08-15
------------------------------------------------------------------------
r59591 | duerst | 2017-08-15 01:04:35 +0900 (Tue, 15 Aug 2017) | 2 lines
fix documentation of REXML::Formatters::Default (id_hack -> ie_hack) [ci skip]
------------------------------------------------------------------------
r59590 | nobu | 2017-08-14 23:25:27 +0900 (Mon, 14 Aug 2017) | 3 lines
compile.c: compile_loop
* compile.c (compile_loop): extract from iseq_compile_each.
------------------------------------------------------------------------
r59589 | nobu | 2017-08-14 23:18:29 +0900 (Mon, 14 Aug 2017) | 1 line
type is invariant inside this block
------------------------------------------------------------------------
r59588 | svn | 2017-08-14 22:26:38 +0900 (Mon, 14 Aug 2017) | 1 line
* 2017-08-14
------------------------------------------------------------------------
r59587 | yui-knk | 2017-08-14 22:26:37 +0900 (Mon, 14 Aug 2017) | 5 lines
Fix a class of a returned value
* ext/objspace/object_tracing.c (allocation_sourceline): Fix
a class of a returned value. allocation_sourceline returns
an integer.
------------------------------------------------------------------------
r59586 | nobu | 2017-08-13 22:43:36 +0900 (Sun, 13 Aug 2017) | 6 lines
script.rb: skip empty directories
* spec/mspec/lib/mspec/utils/script.rb (entries): skip empty
directories so that at least one file would run.
Merged https://github.com/ruby/spec/issues/459
------------------------------------------------------------------------
r59585 | nobu | 2017-08-13 22:34:26 +0900 (Sun, 13 Aug 2017) | 8 lines
parse.y: set used flag in gettable
* parse.y (dvar_defined_ref, dvar_defined): rename macros. only
gettable uses the former. assignable should not set LVAR_USED
flag.
* parse.y (gettable_gen): set used flag on local/dynamic variables
instead of setting in lexer. [ruby-core:82368] [Bug #13809]
------------------------------------------------------------------------
r59584 | kou | 2017-08-13 21:14:24 +0900 (Sun, 13 Aug 2017) | 6 lines
REXML: Fix a bug that unexpected methods can be called as a XPath function
[HackerOne:249295]
Reported by Andrea Jegher. Thanks!!!
------------------------------------------------------------------------
r59583 | nobu | 2017-08-13 16:53:04 +0900 (Sun, 13 Aug 2017) | 4 lines
stringio.c: suppress a warning [ci skip]
* ext/stringio/stringio.c (strio_read): suppress an
implicit-fallthrough warning.
------------------------------------------------------------------------
r59582 | nobu | 2017-08-13 16:31:49 +0900 (Sun, 13 Aug 2017) | 4 lines
stringio.c: encoding at empty chomped result
* ext/stringio/stringio.c (strio_gets): should return string with
the external encoding, at empty chomped result .
------------------------------------------------------------------------
r59581 | nobu | 2017-08-13 16:21:13 +0900 (Sun, 13 Aug 2017) | 4 lines
stringio.c: encoding at empty result
* ext/stringio/stringio.c (strio_gets): should return string with
the external encoding, at empty result.
------------------------------------------------------------------------
r59580 | svn | 2017-08-13 02:41:49 +0900 (Sun, 13 Aug 2017) | 1 line
* 2017-08-13
------------------------------------------------------------------------
r59579 | naruse | 2017-08-13 02:41:48 +0900 (Sun, 13 Aug 2017) | 1 line
Suppress warning: shadowing outer local variable - klass
------------------------------------------------------------------------
r59578 | nobu | 2017-08-12 10:47:09 +0900 (Sat, 12 Aug 2017) | 5 lines
stringio.c: encoding at EOF
* ext/stringio/stringio.c (strio_read): should return string with
the external encoding, at EOF too.
[ruby-core:82349] [Bug #13806]
------------------------------------------------------------------------
r59577 | svn | 2017-08-12 10:34:14 +0900 (Sat, 12 Aug 2017) | 1 line
* 2017-08-12
------------------------------------------------------------------------
r59576 | nobu | 2017-08-12 10:34:13 +0900 (Sat, 12 Aug 2017) | 4 lines
test_stringio.rb: more assertions
* test/stringio/test_stringio.rb (test_read): add assertions
of return value of read with a buffer string.
------------------------------------------------------------------------
r59575 | nobu | 2017-08-11 11:44:30 +0900 (Fri, 11 Aug 2017) | 1 line
enum.c: make constant argument static
------------------------------------------------------------------------
r59574 | nobu | 2017-08-11 11:05:24 +0900 (Fri, 11 Aug 2017) | 4 lines
re.c: options for sub-regexp
* re.c (rb_reg_to_s): needs embedded options to check syntax of
sub-regexp. [ruby-core:82328] [Bug #13798]
------------------------------------------------------------------------
r59573 | svn | 2017-08-11 10:27:25 +0900 (Fri, 11 Aug 2017) | 1 line
* 2017-08-11
------------------------------------------------------------------------
r59572 | nobu | 2017-08-11 10:27:24 +0900 (Fri, 11 Aug 2017) | 6 lines
separate hash literal and keyword arguments
* compile.c (compile_array_keyword_arg): separate keyword splat
inside hash literal from argument list.
* parse.y (rparen): flag hash literal.
------------------------------------------------------------------------
r59571 | yui-knk | 2017-08-10 23:46:51 +0900 (Thu, 10 Aug 2017) | 5 lines
Fix types of function argument
* doc/extension.ja.rdoc: Fix types of rb_ary_aref argument
* doc/extension.rdoc: ditto
------------------------------------------------------------------------
r59570 | nagachika | 2017-08-10 21:57:07 +0900 (Thu, 10 Aug 2017) | 3 lines
fix a typo in comment.
* cont.c (typedef struct rb_context_struct): fix a typo in comment.
------------------------------------------------------------------------
r59569 | knu | 2017-08-10 21:37:04 +0900 (Thu, 10 Aug 2017) | 3 lines
Import ruby-electric.el version 2.3.1 from upstream
It now supports [enh-ruby-mode](https://github.com/zenspider/enhanced-ruby-mode).
------------------------------------------------------------------------
r59568 | nobu | 2017-08-10 20:40:49 +0900 (Thu, 10 Aug 2017) | 4 lines
vm_core.h: unreachable VM_UNREACHABLE
* vm_core.h (VM_UNREACHABLE): tell unreachable if possible.
suppress an invalid-noreturn warning at rb_fiber_start.
------------------------------------------------------------------------
r59567 | rhe | 2017-08-10 18:23:45 +0900 (Thu, 10 Aug 2017) | 26 lines
openssl: import v2.0.5
Import Ruby/OpenSSL 2.0.5. The full commit history since v2.0.4
(imported at r59081) can be found at:
https://github.com/ruby/openssl/compare/v2.0.4...v2.0.5
This will fix the test failure on latest Debian sid and the "no
OPENSSL_Applink" issue on mswin.
----------------------------------------------------------------
Kazuki Yamaguchi (11):
test/test_ssl: allow 3DES cipher suites in test_sslctx_set_params
bio: prevent possible GC issue in ossl_obj2bio()
bio: do not use the FILE BIO method in ossl_obj2bio()
Rakefile: install_dependencies: install only when needed
appveyor.yml: test against Ruby 2.4
ossl_pem_passwd_cb: relax passphrase length constraint
ossl_pem_passwd_cb: do not check for taintedness
ossl_pem_passwd_cb: handle nil from the block explicitly
ssl: remove unsupported TLS versions from SSLContext::METHODS
ssl: fix compile error with OpenSSL 1.0.0
Ruby/OpenSSL 2.0.5
Lars Kanis (1):
Add msys2 library dependency tag in gem metadata
------------------------------------------------------------------------
r59566 | ko1 | 2017-08-10 15:26:52 +0900 (Thu, 10 Aug 2017) | 2 lines
use VM_UNREACHABLE() instead of rb_bug().
------------------------------------------------------------------------
r59565 | ko1 | 2017-08-10 15:01:57 +0900 (Thu, 10 Aug 2017) | 6 lines
introduce fiber_restore_thread.
* cont.c (fiber_restore_thread): added (separate from cont_restore_thread).
* cont.c (fiber_setcontext): call fiber_restore_thread() directly.
------------------------------------------------------------------------
r59564 | nobu | 2017-08-10 14:54:56 +0900 (Thu, 10 Aug 2017) | 5 lines
ruby.c: ignore non-option in shebang line
* ruby.c (moreswitches): process all words as options only in
an environment variable, but not in a shebang line.
[ruby-core:82267] [Bug #13786]
------------------------------------------------------------------------
r59563 | ko1 | 2017-08-10 13:55:12 +0900 (Thu, 10 Aug 2017) | 6 lines
rename rb_execution_context_t::stack(_size) to vm_stack(_size).
* vm_core.h: Ruby processes run with two stacks, a machine stack and a
VM stack. To make it clear, this fix renames
rb_execution_context_t::stack(_size) to vm_stack(_size).
------------------------------------------------------------------------
r59562 | nobu | 2017-08-10 13:03:48 +0900 (Thu, 10 Aug 2017) | 1 line
cont.c: fix up r59557 for !FIBER_USE_NATIVE
------------------------------------------------------------------------
r59561 | ko1 | 2017-08-10 12:34:25 +0900 (Thu, 10 Aug 2017) | 3 lines
constify some variables.
------------------------------------------------------------------------
r59560 | ko1 | 2017-08-10 12:20:39 +0900 (Thu, 10 Aug 2017) | 7 lines
Define Thread#to_s (as Thread#inspect) and make alias `inspect` as `to_s`.
* thread.c: "Thread#to_s" is not defined without any reason. So this fix
define "Thread#to_s" which returns a string with some thread information.
Also this fix makes alias "inspect" which refers "to_s". This manner is
same as other objects.
------------------------------------------------------------------------
r59559 | ko1 | 2017-08-10 12:09:51 +0900 (Thu, 10 Aug 2017) | 2 lines
remove additional newline.
------------------------------------------------------------------------
r59558 | ko1 | 2017-08-10 11:58:36 +0900 (Thu, 10 Aug 2017) | 7 lines
Fiber#to_s (#inspect) return richer information.
* cont.c (fiber_to_s): return with block and status information.
* proc.c (proc_to_s_): removed and introduce rb_block_to_s() function
to return block information string.
------------------------------------------------------------------------
r59557 | ko1 | 2017-08-10 10:47:13 +0900 (Thu, 10 Aug 2017) | 16 lines
refactoring Fiber status.
* cont.c: revisit fiber status.
"FIBER_RUNNING" status represents fiber is resumed or suspended.
This fix separate these two status explicitly.
FIBER_CREATED: Just after Fiber.new. Not resumed yet.
FIBER_RESUMED (new): Fiber#resumed. Now this fiber is running.
FIBER_SUSPENDED (new): Suspended by Fiber.yield. Not running.
FIBER_TERMINATED: Terminated.
Add sevral assertions to check consistency with these status.
* cont.c (fiber_status_set): added to change status.
* cont.c (FIBER_xxx_P): added to check fiber status.
------------------------------------------------------------------------
r59556 | nobu | 2017-08-10 09:50:45 +0900 (Thu, 10 Aug 2017) | 5 lines
compile.c: fix KW_SPLAT flag condition
* compile.c (compile_array_keyword_arg): fix the condition of
KW_SPLAT flag. splat is value node only without key node,
simple assoc argument is not. [ruby-core:82291] [Bug #13793]
------------------------------------------------------------------------
r59555 | svn | 2017-08-10 09:32:13 +0900 (Thu, 10 Aug 2017) | 1 line
* 2017-08-10
------------------------------------------------------------------------
r59554 | nobu | 2017-08-10 09:32:12 +0900 (Thu, 10 Aug 2017) | 5 lines
vm_args.c: prefer optarg to keyword splat
* vm_args.c (setup_parameters_complex): prefer optional argument
to splat keyword arguments for backward compatibility.
[ruby-core:82280] [Bug #13791]
------------------------------------------------------------------------
r59549 | nobu | 2017-08-09 20:03:55 +0900 (Wed, 09 Aug 2017) | 13 lines
ruby.c: origarg
* ruby.c (dladdr_path, ruby_set_argv): add guards for origarg.
[ruby-core:82272] [Bug #13788]
* ruby.c (proc_options, process_options, ruby_process_options):
set origarg if not set yet.
* ruby.c (process_options): prefer argv in the argument to origarg
as program name.
* ruby.c (ruby_sysinit): set origarg only if argc and argv seem
valid.
------------------------------------------------------------------------
r59536 | svn | 2017-08-09 17:17:53 +0900 (Wed, 09 Aug 2017) | 1 line
* 2017-08-09
------------------------------------------------------------------------
r59535 | usa | 2017-08-09 17:17:52 +0900 (Wed, 09 Aug 2017) | 4 lines
Missed `#` in usage
* tool/generate-backport-changelog.rb (usage): missed `#` in usage
------------------------------------------------------------------------
r59529 | nobu | 2017-08-08 19:43:19 +0900 (Tue, 08 Aug 2017) | 5 lines
dir.c: fix up r59527
* dir.c (glob_helper): fix up r59527, dot files other than current
directory should not be included unless FNM_DOTMATCH is given.
[ruby-core:82266] [Bug #13785]
------------------------------------------------------------------------
r59528 | svn | 2017-08-08 17:34:11 +0900 (Tue, 08 Aug 2017) | 1 line
* 2017-08-08
------------------------------------------------------------------------
r59527 | nobu | 2017-08-08 17:34:10 +0900 (Tue, 08 Aug 2017) | 5 lines
dir.c: fix up r59481 for old kernels
* dir.c (glob_helper): fix up r59481 for old kernels, which
provide d_type member but just always set DT_UNKNOWN for any
entries. [ruby-core:82266] [Bug #13785]
------------------------------------------------------------------------
r59526 | nobu | 2017-08-07 13:15:19 +0900 (Mon, 07 Aug 2017) | 1 line
enum.c: optimize for integers
------------------------------------------------------------------------
r59525 | nobu | 2017-08-07 13:08:46 +0900 (Mon, 07 Aug 2017) | 1 line
enum.c: prefer rb_funcallv to rb_funcall
------------------------------------------------------------------------
r59524 | svn | 2017-08-07 12:45:33 +0900 (Mon, 07 Aug 2017) | 1 line
* 2017-08-07
------------------------------------------------------------------------
r59523 | nobu | 2017-08-07 12:45:32 +0900 (Mon, 07 Aug 2017) | 1 line
enum.c: use predefined IDs
------------------------------------------------------------------------
r59522 | svn | 2017-08-06 14:22:27 +0900 (Sun, 06 Aug 2017) | 1 line
* 2017-08-06
------------------------------------------------------------------------
r59521 | duerst | 2017-08-06 14:22:26 +0900 (Sun, 06 Aug 2017) | 1 line
add some more assertions to test_ill_formed_utf_8_replace
------------------------------------------------------------------------
r59519 | nobu | 2017-08-05 15:58:44 +0900 (Sat, 05 Aug 2017) | 7 lines
splat keyword hash
* compile.c (compile_array_keyword_arg): set keyword splat flag if
explicitly splatted. [ruby-core:68124] [Bug #10856]
* vm_args.c (setup_parameters_complex): try keyword hash splat if
given.
------------------------------------------------------------------------
r59518 | nobu | 2017-08-05 15:51:08 +0900 (Sat, 05 Aug 2017) | 4 lines
vm_core.h: vm_call_flag_bits
* vm_core.h (vm_call_flag_bits): define VM_CALL flags by using
enum constants.
------------------------------------------------------------------------
r59509 | svn | 2017-08-05 02:05:44 +0900 (Sat, 05 Aug 2017) | 1 line
* 2017-08-05
------------------------------------------------------------------------
r59508 | eregon | 2017-08-05 02:05:43 +0900 (Sat, 05 Aug 2017) | 1 line
* man/ruby.1: Move paragraph which is related to -S, not -s.
------------------------------------------------------------------------
r59502 | ko1 | 2017-08-04 23:57:31 +0900 (Fri, 04 Aug 2017) | 13 lines
use stable sort.
* lib/rubygems/resolver.rb (sort_dependencies): use stable sort.
TestGemRequestSetLockfile#test_to_s_gem_dependency_non_default
fails because this method return unstable results.
Note that Enumerable#sort_by is unstable.
I'm not sure the "stable" nature is required for RubyGems.
The fact is that using stable sort, the test passed on
mswin64+VS2017 where the sort results was reverse (unstable) order.
Also using `-i` instead of `i` (it means forcing unstable sort)
this test fails on other platform where the test successed before.
------------------------------------------------------------------------
r59499 | kazu | 2017-08-04 21:00:00 +0900 (Fri, 04 Aug 2017) | 1 line
Fix `NameError: uninitialized constant Net`
------------------------------------------------------------------------
r59498 | kazu | 2017-08-04 20:59:59 +0900 (Fri, 04 Aug 2017) | 1 line
Use `register_scanner` instead of `regist_scanner`
------------------------------------------------------------------------
r59497 | kazu | 2017-08-04 20:59:57 +0900 (Fri, 04 Aug 2017) | 1 line
Add deprecated warning to ERB::Compiler::SimpleScanner2
------------------------------------------------------------------------
r59496 | nobu | 2017-08-04 13:39:53 +0900 (Fri, 04 Aug 2017) | 5 lines
string.c: improve String#scan
* string.c (rb_str_rstrip_bang): improve the performance in 50%
for a string pattern, and in 10% for a regexp pattern. get rid
of making MatchData in middle, which is not used.
------------------------------------------------------------------------
r59495 | svn | 2017-08-04 13:25:13 +0900 (Fri, 04 Aug 2017) | 1 line
* 2017-08-04
------------------------------------------------------------------------
r59494 | nobu | 2017-08-04 13:25:12 +0900 (Fri, 04 Aug 2017) | 1 line
benchmarks for String#scan
------------------------------------------------------------------------
r59487 | kazu | 2017-08-03 21:31:21 +0900 (Thu, 03 Aug 2017) | 1 line
Use the same variable name as in dir.c
------------------------------------------------------------------------
r59486 | svn | 2017-08-03 18:39:26 +0900 (Thu, 03 Aug 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59485 | naruse | 2017-08-03 18:39:25 +0900 (Thu, 03 Aug 2017) | 1 line
Add initial test for lldb extension
------------------------------------------------------------------------
r59484 | nobu | 2017-08-03 17:11:57 +0900 (Thu, 03 Aug 2017) | 1 line
disable rdoc for internal constants [ci skip]
------------------------------------------------------------------------
r59483 | nobu | 2017-08-03 17:09:24 +0900 (Thu, 03 Aug 2017) | 5 lines
ruby.h: NULL as empty array
* include/ruby/ruby.h (rb_yield_values, rb_funcall): call with
NULL when no arguments, for clang which defines static array
when an empty array is used.
------------------------------------------------------------------------
r59482 | nobu | 2017-08-03 16:08:00 +0900 (Thu, 03 Aug 2017) | 1 line
extract IDs
------------------------------------------------------------------------
r59481 | nobu | 2017-08-03 13:13:12 +0900 (Thu, 03 Aug 2017) | 5 lines
dir.c: reduce syscalls
* dir.c (glob_helper): utilize d_type even if no recursive
pattern, to reduce stat/lstat syscalls in subsequent
glob_helper.
------------------------------------------------------------------------
r59480 | nobu | 2017-08-03 12:41:50 +0900 (Thu, 03 Aug 2017) | 1 line
fix typo in help [ci skip]
------------------------------------------------------------------------
r59479 | nobu | 2017-08-03 12:39:33 +0900 (Thu, 03 Aug 2017) | 4 lines
dir.c: relative path Dir base
* dir.c (glob_helper): fix globbing based on a relative path Dir.
[Feature #13056]
------------------------------------------------------------------------
r59478 | usa | 2017-08-03 12:31:38 +0900 (Thu, 03 Aug 2017) | 4 lines
Should show the entity of $PATH_SEPARATOR
* win32/configure.bat (--help): should show the entity of $PATH_SEPARATOR.
------------------------------------------------------------------------
r59477 | usa | 2017-08-03 12:25:46 +0900 (Thu, 03 Aug 2017) | 4 lines
Mention about `--with-opt-dir`
* win32/configure.bat (--help): mention about `--with-opt-dir`.
------------------------------------------------------------------------
r59476 | nobu | 2017-08-03 11:14:51 +0900 (Thu, 03 Aug 2017) | 4 lines
dir.c: relax base option
* dir.c (dir_glob_options): relax base option. ignore when nil
or an empty string as :base option. [Feature #13056]
------------------------------------------------------------------------
r59475 | nobu | 2017-08-03 09:53:25 +0900 (Thu, 03 Aug 2017) | 5 lines
spec_helper.rb: pass jobserver fds
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension):
pass jobserver fds explicitly, because other specs might have
set close_on_exec flags on these fds.
------------------------------------------------------------------------
r59474 | ko1 | 2017-08-03 06:48:51 +0900 (Thu, 03 Aug 2017) | 12 lines
fix stack storing for root fibers.
* cont.c (root_fiber_alloc): this function is called by fiber_current()
and fiber_store(). fiber_current() should clear VM stack information
in a fiber data because runnning thread knows stack information and has
responsibility to manage it. However fiber_store() requires to remain
VM stack information in a fiber data because the responsibility to manage
VM stack is moved to the Fiber from the Thread (and switch to another
fiber).
* cont.c (root_fiber_alloc): save thread's fiber and root_fiber information.
------------------------------------------------------------------------
r59473 | kazu | 2017-08-03 00:10:43 +0900 (Thu, 03 Aug 2017) | 4 lines
Fix URI::FTP.build code example typo
ref https://github.com/rurema/doctree/pull/462
[ci skip]
------------------------------------------------------------------------
r59472 | kazu | 2017-08-03 00:10:42 +0900 (Thu, 03 Aug 2017) | 3 lines
Fix variable name in example of net/pop
[ci skip]
------------------------------------------------------------------------
r59471 | kazu | 2017-08-03 00:10:40 +0900 (Thu, 03 Aug 2017) | 4 lines
Fix net/pop code example syntax error
ref https://github.com/rurema/doctree/pull/455
[ci skip]
------------------------------------------------------------------------
r59470 | svn | 2017-08-03 00:10:39 +0900 (Thu, 03 Aug 2017) | 1 line
* 2017-08-03
------------------------------------------------------------------------
r59469 | kazu | 2017-08-03 00:10:38 +0900 (Thu, 03 Aug 2017) | 4 lines
Fix cgi/core code example missing comma
ref https://github.com/rurema/doctree/pull/448
[ci skip]
------------------------------------------------------------------------
r59468 | yugui | 2017-08-02 14:27:25 +0900 (Wed, 02 Aug 2017) | 3 lines
Port more commands from .gdbinit to lldb
* misc/lldb_cury.py (dump_node, SDR, rb_count_objects): added
------------------------------------------------------------------------
r59467 | nobu | 2017-08-02 12:02:22 +0900 (Wed, 02 Aug 2017) | 1 line
suppress warnings when RUBY_USE_SETJMPEX
------------------------------------------------------------------------
r59466 | nobu | 2017-08-02 11:40:29 +0900 (Wed, 02 Aug 2017) | 9 lines
eval.c: suppress warnings
* eval.c (exc_setup_message): setup exception message as an
exception instance, and a cause from a previous exception.
split from setup_exception to suppress a warning when
RUBY_USE_SETJMPEX is enabled.
* eval.c (setup_exception): make state volatile to suppress a
warning too.
------------------------------------------------------------------------
r59465 | knu | 2017-08-02 11:20:48 +0900 (Wed, 02 Aug 2017) | 1 line
ipaddr is now a default gem with an upstream at: https://github.com/ruby/ipaddr
------------------------------------------------------------------------
r59464 | hsbt | 2017-08-02 11:19:04 +0900 (Wed, 02 Aug 2017) | 1 line
Partly reverted email notification on travis configuration.
------------------------------------------------------------------------
r59463 | nobu | 2017-08-02 09:54:13 +0900 (Wed, 02 Aug 2017) | 4 lines
eval.c: fix state type
* eval.c (setup_exception): state is a raised thread flag, not for
EXEC_TAG.
------------------------------------------------------------------------
r59462 | ko1 | 2017-08-02 09:50:42 +0900 (Wed, 02 Aug 2017) | 16 lines
release VM stack properly.
* cont.c: r55766 change the handling method of Fiber's VM stack.
Resumed Fiber points NULL as VM stack and running Thread has
responsibility to manage it (marking and releasing).
However, thread_start_func_2()@thread.c and thread_free()@vm.c
doesn't free the VM stack if corresponding root Fiber is exist.
This causes memory leak. [Bug #13772]
* cont.c (root_fiber_alloc): fib->cont.saved_thread.ec.stack should be NULL
because running thread has responsibility to manage this stack.
* vm.c (rb_thread_recycle_stack_release): assert given stack is not NULL
(callers should care it).
------------------------------------------------------------------------
r59461 | svn | 2017-08-02 09:20:42 +0900 (Wed, 02 Aug 2017) | 1 line
* 2017-08-02
------------------------------------------------------------------------
r59460 | kazu | 2017-08-02 09:20:41 +0900 (Wed, 02 Aug 2017) | 3 lines
Remove "make update-rubyspec"
because it is no-op for compatibility
------------------------------------------------------------------------
r59459 | nobu | 2017-08-01 20:59:45 +0900 (Tue, 01 Aug 2017) | 5 lines
assertions.rb: AllFailures#message encoding
* test/lib/test/unit/assertions.rb (AllFailures#message): put
indented messages back to the original encoding, to get rid of
Encoding::CompatibilityError when key has non-ASCII characters.
------------------------------------------------------------------------
r59458 | nobu | 2017-08-01 17:32:18 +0900 (Tue, 01 Aug 2017) | 4 lines
parse.y: simplify parse_ident
* parse.y (parse_ident): simplified selecting identifier types by
the suffix.
------------------------------------------------------------------------
r59457 | ko1 | 2017-08-01 11:10:19 +0900 (Tue, 01 Aug 2017) | 9 lines
should not copy promoted flags.
* include/ruby/ruby.h (rb_clone_setup): should not copy some flags
(FL_PROMOTED0|FL_PROMOTED1|FL_FINALIZE).
[Bug #13775]
* test/ruby/test_object.rb: add a test (note that this test will fail
only when RGENGC_CHECK_MODE >= 2).
------------------------------------------------------------------------
r59456 | svn | 2017-08-01 09:19:10 +0900 (Tue, 01 Aug 2017) | 1 line
* 2017-08-01
------------------------------------------------------------------------
r59455 | kazu | 2017-08-01 09:19:10 +0900 (Tue, 01 Aug 2017) | 1 line
Use `&.` instead of modifier if
------------------------------------------------------------------------
r59454 | nobu | 2017-07-31 13:04:10 +0900 (Mon, 31 Jul 2017) | 5 lines
configure.in: use libtool
* configure.in: use libtool on macOS to suppress a warning against
debug_counter.o, which has no symbols unless USE_DEBUG_COUNTER
is set to non-zero.
------------------------------------------------------------------------
r59453 | svn | 2017-07-31 12:35:23 +0900 (Mon, 31 Jul 2017) | 1 line
* 2017-07-31
------------------------------------------------------------------------
r59452 | kazu | 2017-07-31 12:35:22 +0900 (Mon, 31 Jul 2017) | 3 lines
Improve error message
ref [Bug #13761]
------------------------------------------------------------------------
r59451 | nobu | 2017-07-30 23:59:40 +0900 (Sun, 30 Jul 2017) | 5 lines
UNALIGNED_MEMBER_ACCESS only for clang
* eval_intern.h (UNALIGNED_MEMBER_ACCESS): enable only on clang.
gcc does not complain about pointers to member of unaligned
struct.
------------------------------------------------------------------------
r59450 | nobu | 2017-07-30 23:48:45 +0900 (Sun, 30 Jul 2017) | 4 lines
UNALIGNED_MEMBER_ACCESS
* eval_intern.h (UNALIGNED_MEMBER_ACCESS): suppress
address-of-packed-member warnings by clang 4.0.
------------------------------------------------------------------------
r59449 | nobu | 2017-07-30 11:56:30 +0900 (Sun, 30 Jul 2017) | 5 lines
hash.c: refactor env_enc_str_new
* hash.c (env_enc_str_new): convert to the expected encoding
without intermediate string, and set econv flags if default
internal encoding is set too.
------------------------------------------------------------------------
r59448 | nobu | 2017-07-30 11:56:29 +0900 (Sun, 30 Jul 2017) | 5 lines
string.c: rb_str_initialize
* string.c (rb_str_initialize): new function to (re)initialize a
string with data and encoding. extracted from
rb_external_str_new_with_enc.
------------------------------------------------------------------------
r59447 | svn | 2017-07-30 09:40:44 +0900 (Sun, 30 Jul 2017) | 1 line
* 2017-07-30
------------------------------------------------------------------------
r59446 | nobu | 2017-07-30 09:40:43 +0900 (Sun, 30 Jul 2017) | 4 lines
compile.c: replace adjuststack
* compile.c (iseq_set_sequence): replace adjuststack with pop, or
remove if possible instead of two nops.
------------------------------------------------------------------------
r59445 | nobu | 2017-07-29 21:42:42 +0900 (Sat, 29 Jul 2017) | 7 lines
visibility of inherited method
* vm_insnhelper.c (vm_call_method_each_type): honor the original
visibility of inherited methods when a refinement is defined but
not activated. [ruby-core:82209] [Bug #13776]
Author: Mon_Ouie (Mon ouie) <mon.ouie@gmail.com>
------------------------------------------------------------------------
r59444 | nobu | 2017-07-29 21:42:41 +0900 (Sat, 29 Jul 2017) | 4 lines
adjust indent [ci skip]
* vm_insnhelper.c (vm_call_method_each_type): adjust indent of a
block in switch.
------------------------------------------------------------------------
r59443 | nobu | 2017-07-29 21:11:51 +0900 (Sat, 29 Jul 2017) | 4 lines
file.c: [DOC] File.mkfifo
* file.c (rb_file_s_mkfifo): enclose rdoc by ifdef so it will be
generated properly.
------------------------------------------------------------------------
r59442 | nobu | 2017-07-29 11:03:11 +0900 (Sat, 29 Jul 2017) | 5 lines
compile.c: fix flip-flop value
* compile.c (iseq_compile_each0): as compile_flip_flop always ends
with a jump instruction, successive instruction is never reached,
but caused stack consistency error without peephole optimization.
------------------------------------------------------------------------
r59441 | svn | 2017-07-29 01:47:51 +0900 (Sat, 29 Jul 2017) | 1 line
* 2017-07-29
------------------------------------------------------------------------
r59440 | odaira | 2017-07-29 01:47:50 +0900 (Sat, 29 Jul 2017) | 4 lines
Include sys/select.h when checking HAVE_RB_FD_INIT
* configure.in: include sys/select.h for fd_mask on AIX
[Feature #13637]
------------------------------------------------------------------------
r59439 | kou | 2017-07-28 23:16:17 +0900 (Fri, 28 Jul 2017) | 6 lines
rexml: Remove needless document
[Fix GH-1671]
Patch by madblobfish. Thanks!!!
------------------------------------------------------------------------
r59438 | svn | 2017-07-28 16:46:21 +0900 (Fri, 28 Jul 2017) | 1 line
* 2017-07-28
------------------------------------------------------------------------
r59437 | glass | 2017-07-28 16:46:20 +0900 (Fri, 28 Jul 2017) | 10 lines
csv.rb: fix incompatibility introduced in r59428
* lib/csv.rb: fix incompatibility introduced in r59428.
CSV.new takes options as keyword arguments.
* test/csv/test_features.rb: add a test to ensure it raises error againt
unknown options
* test/csv/test_features.rb: add a test to ensure row_sep option is properly
applied
------------------------------------------------------------------------
r59436 | nobu | 2017-07-27 21:54:55 +0900 (Thu, 27 Jul 2017) | 1 line
set auto-props to avoid commits setting properties
------------------------------------------------------------------------
r59435 | nobu | 2017-07-27 21:25:42 +0900 (Thu, 27 Jul 2017) | 4 lines
fix type
* spec/rubyspec/optional/capi/ext/io_spec.c (io_spec_rb_io_wait_readable):
fix type of read(2).
------------------------------------------------------------------------
r59434 | nobu | 2017-07-27 21:17:56 +0900 (Thu, 27 Jul 2017) | 4 lines
vm_core.h: shrink trap_list size
* vm_core.h (rb_vm_struct): separate trap_list cmd and safe to
each arrays, to shrink the size.
------------------------------------------------------------------------
r59433 | svn | 2017-07-27 21:10:42 +0900 (Thu, 27 Jul 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59432 | eregon | 2017-07-27 21:10:41 +0900 (Thu, 27 Jul 2017) | 1 line
Update to ruby/spec@c3e6b90
------------------------------------------------------------------------
r59431 | svn | 2017-07-27 21:10:24 +0900 (Thu, 27 Jul 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59430 | eregon | 2017-07-27 21:10:23 +0900 (Thu, 27 Jul 2017) | 1 line
Update to ruby/mspec@353605f
------------------------------------------------------------------------
r59429 | hsbt | 2017-07-27 20:56:54 +0900 (Thu, 27 Jul 2017) | 5 lines
Update configuration for slack notification.
* Encrypted slack token.
* Only notify when build fails and it recovered.
* Only notify trunk build without pull requests.
------------------------------------------------------------------------
r59428 | glass | 2017-07-27 18:53:58 +0900 (Thu, 27 Jul 2017) | 5 lines
csv.rb: use keyword parameters
* lib/csv.rb: usb keyword parameters to receive options
* test/csv/test_features.rb: remove a test for checking options
------------------------------------------------------------------------
r59427 | svn | 2017-07-27 15:49:28 +0900 (Thu, 27 Jul 2017) | 1 line
* 2017-07-27
------------------------------------------------------------------------
r59426 | glass | 2017-07-27 15:49:27 +0900 (Thu, 27 Jul 2017) | 3 lines
csv.rb: use Array#to_h
* lib/csv.rb (CSV::Row#to_hash): use Array#to_h
------------------------------------------------------------------------
r59425 | nobu | 2017-07-26 21:44:12 +0900 (Wed, 26 Jul 2017) | 4 lines
vcs.rb: commit
* tool/vcs.rb (commit): do commit, reset svn revision to sync git
mirror.
------------------------------------------------------------------------
r59424 | shugo | 2017-07-26 16:47:34 +0900 (Wed, 26 Jul 2017) | 3 lines
lib/net/imap.rb: support CHANGEDSINCE and MODSEQ
Patch by plehoux (Philippe-Antoine Lehoux). [ruby-core:64272] [Feature #10119]
------------------------------------------------------------------------
r59423 | hsbt | 2017-07-26 15:06:33 +0900 (Wed, 26 Jul 2017) | 3 lines
To use slack notification instead of email notification.
It's easily customize configuration of test notify.
------------------------------------------------------------------------
r59422 | hsbt | 2017-07-26 14:42:27 +0900 (Wed, 26 Jul 2017) | 3 lines
Removed definitions of mspec and ruby/spec.
They are no longer used on ruby core repository.
------------------------------------------------------------------------
r59421 | hsbt | 2017-07-26 14:39:41 +0900 (Wed, 26 Jul 2017) | 1 line
Removed Ruby 2.1 from Travis CI. It's EOL status on 2017.
------------------------------------------------------------------------
r59420 | nobu | 2017-07-26 09:56:44 +0900 (Wed, 26 Jul 2017) | 6 lines
parse.y: brace after array literal arg
* parse.y (parser_yylex): array is another literal. set state to
END too not only ENDARG and after a literal, so that a left
brace after it should be a primary block bound to the literal,
which causes syntax error. [ruby-core:81037] [Bug #13547]
------------------------------------------------------------------------
r59419 | svn | 2017-07-26 09:01:27 +0900 (Wed, 26 Jul 2017) | 1 line
* 2017-07-26
------------------------------------------------------------------------
r59418 | kazu | 2017-07-26 09:01:26 +0900 (Wed, 26 Jul 2017) | 1 line
Fix typos [ci skip]
------------------------------------------------------------------------
r59417 | nobu | 2017-07-25 17:30:11 +0900 (Tue, 25 Jul 2017) | 5 lines
parse.y: limit codepoint length
* parse.y (parser_tokadd_codepoint): limit Unicode codepoint
length. too long codepoint has been split unexpectedly since
r57050.
------------------------------------------------------------------------
r59416 | normal | 2017-07-25 14:55:22 +0900 (Tue, 25 Jul 2017) | 10 lines
dir.c (ruby_brace_expand): RB_GC_GUARD safety
The lifetime of a String VALUE must match or exceed the lifetime
of its R*_PTR result; otherwise the GC can while reclaim the
VALUE while the R*_PTR result is in use.
* dir.c (ruby_brace_expand): add var parameter for GC guard
(ruby_brace_glob_with_enc): adjust call
(file_s_fnmatch): ditto
(push_glob): remove misplaced GC guard
------------------------------------------------------------------------
r59415 | svn | 2017-07-25 10:08:52 +0900 (Tue, 25 Jul 2017) | 1 line
* 2017-07-25
------------------------------------------------------------------------
r59414 | nobu | 2017-07-25 10:08:51 +0900 (Tue, 25 Jul 2017) | 7 lines
socket: system getaddrinfo on Windows
* ext/socket/extconf.rb: use system getaddrinfo, getnameinfo, and
freeaddrinfo on Windows if they are provided. they conflict
with addrinfo.h and cannot compile. conftest.exe linked against
msvcr90.dll segfaults when invoked in extconf.rb for unknown
reason, and failed to check them.
------------------------------------------------------------------------
r59413 | svn | 2017-07-24 10:56:05 +0900 (Mon, 24 Jul 2017) | 1 line
* 2017-07-24
------------------------------------------------------------------------
r59412 | nobu | 2017-07-24 10:56:04 +0900 (Mon, 24 Jul 2017) | 5 lines
optparse.rb: case-sensitive candidate
* lib/optparse.rb (candidate): short options are case-sensitive by
the default, should not match case-different options..
https://github.com/mernen/completion-ruby/pull/9#issuecomment-317287946
------------------------------------------------------------------------
r59411 | svn | 2017-07-23 18:44:49 +0900 (Sun, 23 Jul 2017) | 1 line
* 2017-07-23
------------------------------------------------------------------------
r59410 | nobu | 2017-07-23 18:44:48 +0900 (Sun, 23 Jul 2017) | 4 lines
sprintf.c: width too big
* sprintf.c (rb_str_format): explicitly reject too big negative
width, instead of an empty string.
------------------------------------------------------------------------
r59394 | svn | 2017-07-22 21:26:20 +0900 (Sat, 22 Jul 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r59393 | yugui | 2017-07-22 21:26:19 +0900 (Sat, 22 Jul 2017) | 1 line
Add Doxygen comments
------------------------------------------------------------------------
r59392 | kazu | 2017-07-22 17:07:58 +0900 (Sat, 22 Jul 2017) | 1 line
Fix documents
------------------------------------------------------------------------
r59391 | kazu | 2017-07-22 17:07:56 +0900 (Sat, 22 Jul 2017) | 1 line
Fix typos and indent
------------------------------------------------------------------------
r59390 | svn | 2017-07-22 15:30:54 +0900 (Sat, 22 Jul 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r59389 | yugui | 2017-07-22 15:30:53 +0900 (Sat, 22 Jul 2017) | 1 line
Add documents
------------------------------------------------------------------------
r59388 | nobu | 2017-07-22 15:01:38 +0900 (Sat, 22 Jul 2017) | 6 lines
compile.c: COMPILE_ERROR
* compile.c: raise COMPILE_ERROR instead of compile_bug which is
very rarely (or never, actually) useful to debug instruction
sequence. COMPILE_ERROR is usually SyntaxError, or fatal error
if compile_debug is enabled,
------------------------------------------------------------------------
r59387 | nobu | 2017-07-22 07:45:13 +0900 (Sat, 22 Jul 2017) | 3 lines
compile.c: dump iseq at adjust bug
* compile.c (fix_sp_depth): dump instructions at adjust bug too.
------------------------------------------------------------------------
r59386 | svn | 2017-07-22 04:06:08 +0900 (Sat, 22 Jul 2017) | 1 line
* 2017-07-22
------------------------------------------------------------------------
r59385 | normal | 2017-07-22 04:06:07 +0900 (Sat, 22 Jul 2017) | 12 lines
NEWS: add entries for thread_sync.c changes
I'm slightly worried about some external code subclassing
ConditionVariable, Queue, and SizedQueue and relying on them
being Structs. However, they only started being Structs with
Ruby 2.1, and were implemented in pure Ruby before that; so
hopefully nobody notices that implementation detail.
Also, note the Mutex change as it may affect program design
when space can be saved.
* NEWS: entries for [Feature #13552] and [Feature #13517]
------------------------------------------------------------------------
r59384 | nobu | 2017-07-21 22:30:46 +0900 (Fri, 21 Jul 2017) | 5 lines
strscan.c: fix segfault in aref
* ext/strscan/strscan.c (strscan_aref): fix segfault after
get_byte or getch which do not apply regexp.
[ruby-core:82116] [Bug #13759]
------------------------------------------------------------------------
r59383 | nobu | 2017-07-21 17:31:47 +0900 (Fri, 21 Jul 2017) | 4 lines
optparse.rb: [DOC] fix keys
* lib/optparse.rb (getopts): [DOC] parameter keys are strings, not
symbols.
------------------------------------------------------------------------
r59382 | rhe | 2017-07-21 13:29:46 +0900 (Fri, 21 Jul 2017) | 12 lines
ripper: add kwrest_param parser event
* parse.y (f_kwrest): Dispatch kwrest_param event. This is especially
useful for unnamed kwrest parameter for which we expose the internal
ID currently. [ruby-core:75528] [Feature #12387]
* test/ripper/dummyparser.rb (on_kwrest_param): Add handler for
kwrest_param parser event.
* test/ripper/test_parser_events.rb (test_params): Adapt to the change
in DummyParser.
(test_kwrest_param): Test that kwrest_param event handler is called.
------------------------------------------------------------------------
r59381 | kazu | 2017-07-21 08:34:03 +0900 (Fri, 21 Jul 2017) | 1 line
Use `unpack1` instead of `unpack` and `[0]`
------------------------------------------------------------------------
r59380 | sonots | 2017-07-21 01:47:26 +0900 (Fri, 21 Jul 2017) | 11 lines
logger.rb: Fix handling progname
Because progname was memoized with ||= a logger call that involved
outputting false would be nil. Example code:
logger = Logger.new(STDOUT)
logger.info(false) # => nil
Perform an explicit nil check instead of ||= so that false will be output.
patched by Gavin Miller <gavingmiller@gmail.com> [Fix GH-1667]
------------------------------------------------------------------------
r59379 | sonots | 2017-07-21 01:29:20 +0900 (Fri, 21 Jul 2017) | 1 line
NEWS: Add String#delete_suffix and String#delete_suffix!
------------------------------------------------------------------------
r59378 | svn | 2017-07-21 01:29:20 +0900 (Fri, 21 Jul 2017) | 1 line
* 2017-07-21
------------------------------------------------------------------------
r59377 | sonots | 2017-07-21 01:29:19 +0900 (Fri, 21 Jul 2017) | 10 lines
string.c: add String#delete_suffix and String#delete_suffix!
to remove trailing suffix [Feature #13665] [Fix GH-1661]
* string.c (rb_str_delete_suffix_bang): add a new method
to remove suffix destuctively.
* string.c (rb_str_delete_suffix): add a new method
to remove suffix non-destuctively.
* test/ruby/test_string.rb: add tests.
------------------------------------------------------------------------
r59376 | yugui | 2017-07-20 20:00:39 +0900 (Thu, 20 Jul 2017) | 5 lines
Remove dead code
* eval.c (errinfo_setter): dead for 10 years since r13091.
(rb_rubylevel_errinfo): not used and not exported.
usually removed or hidden by linker.
------------------------------------------------------------------------
r59375 | nobu | 2017-07-20 14:48:26 +0900 (Thu, 20 Jul 2017) | 5 lines
parse.y: empty hash in defined
* parse.y (command): NODE_ARRAY with NULL is invalid. traversal
in defined_expr0 is simplified than iseq_compile_each0.
[ruby-core:82113] [Bug #13756]
------------------------------------------------------------------------
r59374 | nobu | 2017-07-20 11:43:45 +0900 (Thu, 20 Jul 2017) | 5 lines
compile.c: restore stack at return
* compile.c (iseq_compile_each0): restore the stack depth after
return to the previous depth, to fix the stack depth at
returning from rescue iseq. [ruby-core:82108] [Bug #13755]
------------------------------------------------------------------------
r59373 | shugo | 2017-07-20 08:38:31 +0900 (Thu, 20 Jul 2017) | 3 lines
lib/net/pop.rb: support timeout for TLS handshake
Patch by ahorek (Pavel Rosicky). [ruby-core:80490] [Feature #13389]
------------------------------------------------------------------------
r59372 | shugo | 2017-07-20 08:08:34 +0900 (Thu, 20 Jul 2017) | 4 lines
lib/net/imap.rb: Ignore trailing space for Microsoft Exchange Server
Based on the patch by keysen (Jeremy Carlier).
[ruby-core:81641] [Bug #13649]
------------------------------------------------------------------------
r59371 | svn | 2017-07-20 00:01:01 +0900 (Thu, 20 Jul 2017) | 1 line
* 2017-07-20
------------------------------------------------------------------------
r59370 | kazu | 2017-07-20 00:01:01 +0900 (Thu, 20 Jul 2017) | 1 line
Sort entries [ci skip]
------------------------------------------------------------------------
r59369 | kazu | 2017-07-19 22:59:58 +0900 (Wed, 19 Jul 2017) | 3 lines
NEWS: Add Hash#transform_keys and Hash#transform_keys!
[Feature #13583] [ruby-core:81290] [ci skip]
------------------------------------------------------------------------
r59368 | nobu | 2017-07-19 12:16:58 +0900 (Wed, 19 Jul 2017) | 4 lines
random.c: ensure initialized
* random.c (get_rnd, try_get_rnd): ensure initialized to get rid
of crash in forked processes. [ruby-core:82100] [Bug #13753]
------------------------------------------------------------------------
r59367 | nobu | 2017-07-19 12:16:08 +0900 (Wed, 19 Jul 2017) | 4 lines
test_rand.rb: improved assert_fork_status
* test/ruby/test_rand.rb (assert_fork_status): deal with errors
from children.
------------------------------------------------------------------------
r59366 | nobu | 2017-07-19 11:28:45 +0900 (Wed, 19 Jul 2017) | 1 line
st.c: adjust style
------------------------------------------------------------------------
r59365 | svn | 2017-07-19 10:35:05 +0900 (Wed, 19 Jul 2017) | 1 line
* 2017-07-19
------------------------------------------------------------------------
r59364 | normal | 2017-07-19 10:35:04 +0900 (Wed, 19 Jul 2017) | 4 lines
revert r59359, r59356, r59355, r59354
These caused numerous CI failures I haven't been able to
reproduce [ruby-core:82102]
------------------------------------------------------------------------
r59362 | hsbt | 2017-07-18 20:28:49 +0900 (Tue, 18 Jul 2017) | 4 lines
Copy openssl library finder for ext/digest from OpenSSL extention.
* ext/digest/digest_conf.rb: Support to search variaous filenames of
OpenSSL/LibreSSL libraries.
------------------------------------------------------------------------
r59361 | nobu | 2017-07-18 19:49:10 +0900 (Tue, 18 Jul 2017) | 1 line
fix typo
------------------------------------------------------------------------
r59360 | nobu | 2017-07-18 19:29:19 +0900 (Tue, 18 Jul 2017) | 4 lines
descriptive asssertions
* test/ruby/test_string.rb (test_uplus_minus): prefer more
descriptive asssertions than assert_equal.
------------------------------------------------------------------------
r59359 | normal | 2017-07-18 18:52:55 +0900 (Tue, 18 Jul 2017) | 6 lines
string: preserve taint flag with String#-@ (uminus)
* string.c (tainted_fstr_update): move up
(rb_fstring): support registering tainted strings
(register_fstring_tainted): extract from rb_fstring_existing0
(rb_tainted_fstring_existing): use register_fstring_tainted instead
------------------------------------------------------------------------
r59358 | nobu | 2017-07-18 17:31:02 +0900 (Tue, 18 Jul 2017) | 10 lines
vm_eval.c: rb_lambda_call
* enum.c (enum_collect): make the block arity same as the given
block. [Bug #13391]
* internal.h (vm_ifunc): store arity instead of unused id.
* proc.c (rb_vm_block_min_max_arity): return ifunc arity.
* vm_eval.c (rb_lambda_call): call method with lambda block.
------------------------------------------------------------------------
r59357 | nobu | 2017-07-18 16:48:37 +0900 (Tue, 18 Jul 2017) | 4 lines
proc.c: rb_block_min_max_arity
* proc.c (rb_block_min_max_arity): new function to get arity range
from the current block.
------------------------------------------------------------------------
r59356 | normal | 2017-07-18 16:21:05 +0900 (Tue, 18 Jul 2017) | 4 lines
test/ruby/test_string.rb: ensure we do not have tainted strings
Trying to figure out [ruby-core:82092]
cf. https://gist.github.com/e2c899c453f3f66e7934095c32505486
------------------------------------------------------------------------
r59355 | normal | 2017-07-18 13:30:08 +0900 (Tue, 18 Jul 2017) | 9 lines
newhash insn reuses existing keys
This gives the newhash VM instruction the same string reuse
capabilities as rb_hash_aset.
* st.c (str_key): new wrapper function to call rb_fstring_existing
(rb_hash_bulk_insert): use str_key
* test/ruby/test_optimization.rb (test_hash_reuse_fstring):
ensure key reuse for newhash instructions
------------------------------------------------------------------------
r59354 | normal | 2017-07-18 11:29:59 +0900 (Tue, 18 Jul 2017) | 26 lines
hash: keep fstrings of tainted strings for string keys
The same hash keys may be loaded from tainted data sources
frequently (e.g. parsing headers from socket or loading
YAML data from a file). If a non-tainted fstring already
exists (because the application expects the hash key),
cache and deduplicate the tainted version in the new
tainted_frozen_strings table.
For non-embedded strings, this also allows sharing with the
underlying malloc-ed data.
* vm_core.h (rb_vm_struct): add tainted_frozen_strings
* vm.c (ruby_vm_destruct): free tainted_frozen_strings
(Init_vm_objects): initialize tainted_frozen_strings
(rb_vm_tfstring_table): accessor for tainted_frozen_strings
* internal.h: declare rb_fstring_existing, rb_vm_tfstring_table
* hash.c (fstring_existing_str): remove (moved to string.c)
(hash_aset_str): use rb_fstring_existing
* string.c (rb_fstring_existing): new, based on fstring_existing_str
(tainted_fstr_update): new
(rb_fstring_existing0): new, based on fstring_existing_str
(rb_tainted_fstring_existing): new, special case for tainted strings
(rb_str_free): delete from tainted_frozen_strings table
* test/ruby/test_optimization.rb (test_hash_reuse_fstring): new test
[ruby-core:82012] [Bug #13737]
------------------------------------------------------------------------
r59353 | normal | 2017-07-18 11:10:50 +0900 (Tue, 18 Jul 2017) | 6 lines
doc/extension.rdoc: start documenting threading and IO APIs
This will hopefully be useful for folks writing C extensions.
* doc/extension.rdoc: start documenting threading and IO APIs
[ruby-core:82016] [Feature #13740]
------------------------------------------------------------------------
r59352 | svn | 2017-07-18 10:59:29 +0900 (Tue, 18 Jul 2017) | 1 line
* 2017-07-18
------------------------------------------------------------------------
r59351 | normal | 2017-07-18 10:59:28 +0900 (Tue, 18 Jul 2017) | 8 lines
webrick: fix SNI support
* lib/webrick/https.rb: check ssl context of virtual host.
* lib/webrick/ssl.rb: ensure to return ssl context.
* test/webrick/test_https.rb: test returned cert is correct.
[Feature #13729][ruby-dev:50173]
Author: Tietew <tietew@gmail.com>
------------------------------------------------------------------------
r59350 | nobu | 2017-07-17 10:16:07 +0900 (Mon, 17 Jul 2017) | 4 lines
gmake.mk: extract after update gems
* defs/gmake.mk (extract-gems): should wait for update-gems to
finish when doing both.
------------------------------------------------------------------------
r59349 | nobu | 2017-07-17 09:11:38 +0900 (Mon, 17 Jul 2017) | 10 lines
parse.y: refine literal error messages
* parse.y (parser_yyerror): strip newline in error source which
will not be printed, when lex_p has passed it.
* parse.y (parser_tokadd_utf8): unterminated Unicode escape even
after invalid Unicode escape.
* parse.y (parser_parse_string): show the error source line when
unterminated literal at end of file.
------------------------------------------------------------------------
r59348 | nobu | 2017-07-17 08:45:48 +0900 (Mon, 17 Jul 2017) | 7 lines
parse.y: refine invalid Unicode escape message
* parse.y (literal_flush): rename from numeric_literal_flush, as
it is not just for numerics now.
* parse.y (parser_tokadd_codepoint): show invalid character
position, but not the start of Unicode escape.
------------------------------------------------------------------------
r59347 | svn | 2017-07-17 00:28:51 +0900 (Mon, 17 Jul 2017) | 1 line
* 2017-07-17
------------------------------------------------------------------------
r59346 | nobu | 2017-07-17 00:28:50 +0900 (Mon, 17 Jul 2017) | 4 lines
assertions.rb: frozen string buffer
* test/lib/test/unit/assertions.rb (assert_pattern_list): make
frozen string literals modifiable as buffers.
------------------------------------------------------------------------
r59345 | nobu | 2017-07-16 23:32:41 +0900 (Sun, 16 Jul 2017) | 1 line
parse.y (numeric_literal_flush): fix typo
------------------------------------------------------------------------
r59344 | nobu | 2017-07-16 22:39:18 +0900 (Sun, 16 Jul 2017) | 5 lines
parse.y: utf-8 codepoints
* parse.y (parser_tokadd_utf8): skip spaces in the current line,
without advancing the line, to get rid of dangling pointer.
[ruby-core:82029] [Bug #13742]
------------------------------------------------------------------------
r59343 | svn | 2017-07-16 20:35:27 +0900 (Sun, 16 Jul 2017) | 1 line
* 2017-07-16
------------------------------------------------------------------------
r59342 | nobu | 2017-07-16 20:35:27 +0900 (Sun, 16 Jul 2017) | 1 line
Use assert_syntax_error
------------------------------------------------------------------------
r59341 | nobu | 2017-07-15 17:29:03 +0900 (Sat, 15 Jul 2017) | 4 lines
parse.y: refine error messages
* parse.y (parser_read_escape, parser_tok_hex): refine error
messages. point from the backslash up to the invalid char.
------------------------------------------------------------------------
r59340 | yui-knk | 2017-07-15 16:24:12 +0900 (Sat, 15 Jul 2017) | 5 lines
test_lexer.rb: require ripper directly
* test/ripper/test_lexer.rb: This file does not use
DummyParser, so requiring ripper directly instead of
requiring dummyparser.
------------------------------------------------------------------------
r59339 | svn | 2017-07-15 13:35:19 +0900 (Sat, 15 Jul 2017) | 1 line
* 2017-07-15
------------------------------------------------------------------------
r59338 | kazu | 2017-07-15 13:35:18 +0900 (Sat, 15 Jul 2017) | 3 lines
Fix warning: shadowing outer local variable - a
[ci skip][Fix GH-1628]
------------------------------------------------------------------------
r59337 | nobu | 2017-07-14 22:50:00 +0900 (Fri, 14 Jul 2017) | 5 lines
zlib.c: fix unnormalized Fixnum
* ext/zlib/zlib.c (rb_gzfile_total_out): cast to long not to
result in an unsigned long to normalized to Fixnum on LLP64
platforms. [ruby-core:81488]
------------------------------------------------------------------------
r59336 | nobu | 2017-07-14 19:53:35 +0900 (Fri, 14 Jul 2017) | 4 lines
io.c: textmode if newline decorator
* io.c (validate_enc_binmode): newline decorator implies text mode
now. [ruby-core:80270] [Bug #13350]
------------------------------------------------------------------------
r59335 | nobu | 2017-07-14 19:31:05 +0900 (Fri, 14 Jul 2017) | 7 lines
VPATH for ripper
* common.mk (ripper.c): pass the build directory path for id.h
which may be generated there.
* ext/ripper/depend (ripper.y): search the top build directory and
the top source directory.
------------------------------------------------------------------------
r59334 | rhe | 2017-07-14 18:41:05 +0900 (Fri, 14 Jul 2017) | 4 lines
hash.c: fix possible crash in Hash#transform_keys!
Fix up r59328. It is possible that the given block abuses
ObjectSpace.each_object to shrink the temporary array.
------------------------------------------------------------------------
r59333 | naruse | 2017-07-14 18:17:55 +0900 (Fri, 14 Jul 2017) | 3 lines
Zlib::GzipReader#pos underflows after calling #ungetbyte or #ungetc at start of file [Bug #13616]
patched by Andrew Haines <andrew@haines.org.nz> [ruby-core:81488]
------------------------------------------------------------------------
r59332 | knu | 2017-07-14 17:46:13 +0900 (Fri, 14 Jul 2017) | 1 line
Alias Set#to_s to #inspect [ruby-core:81753] [Feature #13676]
------------------------------------------------------------------------
r59331 | knu | 2017-07-14 17:46:10 +0900 (Fri, 14 Jul 2017) | 1 line
Make tests for Set#inspect more straightforward
------------------------------------------------------------------------
r59330 | hsbt | 2017-07-14 16:47:21 +0900 (Fri, 14 Jul 2017) | 1 line
Update gemspec for standalone gem that is ruby/date repository.
------------------------------------------------------------------------
r59329 | hsbt | 2017-07-14 16:13:17 +0900 (Fri, 14 Jul 2017) | 1 line
Fixup r59327. Forgot to update version number.
------------------------------------------------------------------------
r59328 | mrkn | 2017-07-14 15:44:00 +0900 (Fri, 14 Jul 2017) | 9 lines
hash.c: Add Hash#transform_keys and Hash#transform_keys!
* hash.c (transform_keys_i, rb_hash_transform_keys): Add Hash#transform_keys.
[Feature #13583] [ruby-core:81290]
* hash.c (rb_hash_transform_keys_bang): Add Hash#transform_keys!.
[Feature #13583] [ruby-core:81290]
* test/ruby/test_hash.rb: Add tests for above changes.
------------------------------------------------------------------------
r59327 | hsbt | 2017-07-14 15:15:58 +0900 (Fri, 14 Jul 2017) | 6 lines
Merge psych-3.0.0.beta3 from ruby/psych.
* Rely on encoding tags to determine if string should be dumped as binary.
https://github.com/ruby/psych/commit/8949a47b8cee31e03e21608406ba116adcf74054
* Specify "frozen_string_literal: true".
* Support to binary release for mingw32 platform.
------------------------------------------------------------------------
r59326 | hsbt | 2017-07-14 14:33:15 +0900 (Fri, 14 Jul 2017) | 1 line
Added psych entry to package table and fixed sync instructions.
------------------------------------------------------------------------
r59325 | nobu | 2017-07-14 13:43:16 +0900 (Fri, 14 Jul 2017) | 4 lines
process.c: null bytes
* process.c (rlimit_type_by_sym): prohibit null bytes in key
names. [ruby-core:82033] [Bug #13744]
------------------------------------------------------------------------
r59324 | kazu | 2017-07-14 08:55:41 +0900 (Fri, 14 Jul 2017) | 1 line
Use tr! instead of gsub!
------------------------------------------------------------------------
r59323 | svn | 2017-07-14 05:47:37 +0900 (Fri, 14 Jul 2017) | 1 line
* 2017-07-14
------------------------------------------------------------------------
r59322 | normal | 2017-07-14 05:47:36 +0900 (Fri, 14 Jul 2017) | 8 lines
process.c: handle dynamic :rlimit_* symbols in spawn execopts
* process.c (rb_execarg_addopt_rlimit): hoist out of rb_execarg_addopt
(rlimit_type_by_sym): new wrapper for dynamic symbol
(rb_execarg_addopt): check for dsym via rlimit_type_by_sym
* test/ruby/test_process.rb (test_execopts_rlimit): check dsym w/o pindown
Add extra check for bogus rlimit args, too.
[ruby-core:82033] [Bug #13744]
------------------------------------------------------------------------
r59321 | hsbt | 2017-07-13 18:46:16 +0900 (Thu, 13 Jul 2017) | 7 lines
Use Test::Unit::TestCase instead of MiniTest::Unit::TestCase. Because
tests of fiddle already used customized assertions of ruby core.
* test/fiddle/helper.rb: Use Test::Unit::TestCase for base class of
testcase.
* test/fiddle/test_*.rb: Use assert_raise instead of assert_raises.
Remove needless includes for Test::Unit::Assertions.
------------------------------------------------------------------------
r59320 | nobu | 2017-07-13 16:00:16 +0900 (Thu, 13 Jul 2017) | 4 lines
parse.y: flush debug output
* parse.y (parser_compile_error): flush debug output before
compile error message, to keep the order.
------------------------------------------------------------------------
r59319 | normal | 2017-07-13 03:31:07 +0900 (Thu, 13 Jul 2017) | 5 lines
doc/extension.rdoc: update wikipedia link to HTTPS
Avoid the latency for HTTP -> HTTPS redirect
* doc/extension.rdoc: update wikipedia link to HTTPS
------------------------------------------------------------------------
r59318 | svn | 2017-07-13 00:02:10 +0900 (Thu, 13 Jul 2017) | 1 line
* 2017-07-13
------------------------------------------------------------------------
r59317 | kazu | 2017-07-13 00:02:09 +0900 (Thu, 13 Jul 2017) | 1 line
Fix indent [ci skip]
------------------------------------------------------------------------
r59315 | nobu | 2017-07-12 18:44:45 +0900 (Wed, 12 Jul 2017) | 1 line
disable r59314 on mswin
------------------------------------------------------------------------
r59314 | nobu | 2017-07-12 14:30:43 +0900 (Wed, 12 Jul 2017) | 5 lines
gc.c: restrict RGENGC_DEBUG
* gc.c (RGENGC_DEBUG_ENABLED): restrict runtime ruby_rgengc_debug
level up to -RGENGC_DEBUG, to reduce runtime branches in inner
loops.
------------------------------------------------------------------------
r59313 | svn | 2017-07-12 11:49:54 +0900 (Wed, 12 Jul 2017) | 1 line
* 2017-07-12
------------------------------------------------------------------------
r59312 | nobu | 2017-07-12 11:49:53 +0900 (Wed, 12 Jul 2017) | 4 lines
optparse.rb: get rid of eval
* lib/optparse.rb: try Float() and Integer() instead of eval,
which does too much things.
------------------------------------------------------------------------
r59311 | svn | 2017-07-11 16:42:27 +0900 (Tue, 11 Jul 2017) | 1 line
* 2017-07-11
------------------------------------------------------------------------
r59310 | ko1 | 2017-07-11 16:42:27 +0900 (Tue, 11 Jul 2017) | 5 lines
tainted string should be tainted.
* hash.c (hash_aset_str): create frozen string for tainted objects.
(should not use fsting table on this case).
------------------------------------------------------------------------
r59309 | nobu | 2017-07-10 20:42:07 +0900 (Mon, 10 Jul 2017) | 5 lines
compile.c: simplify defined_expr0
* compile.c (defined_expr0): exapnd defined_expr macro.
* compile.c (defined_expr0): reduce duplicate code.
------------------------------------------------------------------------
r59308 | nobu | 2017-07-10 16:37:18 +0900 (Mon, 10 Jul 2017) | 1 line
test_rubyoptions.rb: assert -00
------------------------------------------------------------------------
r59307 | takano32 | 2017-07-10 15:57:50 +0900 (Mon, 10 Jul 2017) | 7 lines
a64: fix crash on register stack mark/sweep pass
* thread_pthread.c: move 'register_stack_start' earlier.
[ruby-core:79928] [Bug #13284] [Fix GH-1625]
Author: Sergei Trofimovich <slyfox@gentoo.org>
------------------------------------------------------------------------
r59306 | nobu | 2017-07-10 09:41:21 +0900 (Mon, 10 Jul 2017) | 1 line
hash.c: prefer value cast to pointer cast
------------------------------------------------------------------------
r59305 | svn | 2017-07-10 08:04:44 +0900 (Mon, 10 Jul 2017) | 1 line
* 2017-07-10
------------------------------------------------------------------------
r59304 | normal | 2017-07-10 08:04:43 +0900 (Mon, 10 Jul 2017) | 19 lines
Hash#[]= deduplicates string keys if (and only if) fstring exists
In typical applications, hash entries are read after being
written to. Blindly writing to hashes which are never read
makes little sense. So, for any hash which is read from, an
fstring entry for the key should already exist for the key.
We no longer blindly create fstrings if the code is blindly
setting random hash keys, preventing the performance regression
in the reverted r43870.
Regarding <https://bugs.ruby-lang.org/issues/9188>, this has a
minimum impact on the bm_so_k_nucleotide where hash keys are set
and not reused, performance is within 1-2% of existing cases.
* hash.c: #include gc.h for rb_objspace_garbage_object_p
(hash_aset_str): do read-only check of fstring table and
reuse fstring if it exists and is still alive (not garbage)
[ruby-core:81942] [Feature #13725]
------------------------------------------------------------------------
r59292 | nobu | 2017-07-09 13:49:15 +0900 (Sun, 09 Jul 2017) | 5 lines
downloader.rb: get rid of symlinks in dist files
* tool/downloader.rb: download to the target file directly if
CACHE_SAVE=no, to get rid of symlinks in dist files.
[ruby-core:81887] [Bug #13709]
------------------------------------------------------------------------
r59291 | nobu | 2017-07-09 13:20:48 +0900 (Sun, 09 Jul 2017) | 4 lines
make-snapshot: generate ChangeLog iff not exist
* tool/make-snapshot (package): ChangeLog had existed in pre-2.4
revisions, but not doc/ChangeLog-YYYY. fix for 2..3.
------------------------------------------------------------------------
r59290 | svn | 2017-07-09 13:17:50 +0900 (Sun, 09 Jul 2017) | 1 line
* 2017-07-09
------------------------------------------------------------------------
r59289 | nobu | 2017-07-09 13:17:49 +0900 (Sun, 09 Jul 2017) | 5 lines
make-snapshot: touch-unicode-files for 2.4
* tool/make-snapshot (package): fallback touch-unicode-files for
2.4, which has been introduced to reduce downloads on CI.
[ruby-core:81972] [Bug #13734]
------------------------------------------------------------------------
r59288 | nobu | 2017-07-08 21:31:55 +0900 (Sat, 08 Jul 2017) | 1 line
* template/exts.mk.tmpl: extract SUBMAKEOPTS from sub exts.mk files too. [Bug #13730]
------------------------------------------------------------------------
r59287 | nobu | 2017-07-08 11:22:20 +0900 (Sat, 08 Jul 2017) | 6 lines
assertions.rb: syntax_check for other impl
* test/lib/test/unit/assertions.rb (syntax_check): use eval
instead of RubyVM::InstructionSequence.compile so that other
implementations can share the tests.
[ruby-core:81935] [Bug #13723]
------------------------------------------------------------------------
r59285 | nobu | 2017-07-08 11:05:55 +0900 (Sat, 08 Jul 2017) | 1 line
.travis.yml: update dist to trusty
------------------------------------------------------------------------
r59284 | normal | 2017-07-08 02:59:09 +0900 (Sat, 08 Jul 2017) | 1 line
NEWS: note [Feature #13517] is Linux-only (no side-effects on _*nonblock)
------------------------------------------------------------------------
r59283 | normal | 2017-07-08 02:41:08 +0900 (Sat, 08 Jul 2017) | 1 line
NEWS: entry for WEBRick SNI support [Feature #13729]
------------------------------------------------------------------------
r59282 | svn | 2017-07-08 02:09:40 +0900 (Sat, 08 Jul 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59281 | normal | 2017-07-08 02:09:39 +0900 (Sat, 08 Jul 2017) | 7 lines
webrick: add Server Name Indication (SNI)
* lib/webrick/https.rb: servername_cb implementation.
* lib/webrick/ssl.rb: abstract servername_cb.
* test/webrick/test_https.rb: test.
[ruby-dev:50165] [Feature #13729]
Author: Tietew <tietew@gmail.com>
------------------------------------------------------------------------
r59280 | svn | 2017-07-08 01:53:04 +0900 (Sat, 08 Jul 2017) | 1 line
* 2017-07-08
------------------------------------------------------------------------
r59279 | normal | 2017-07-08 01:53:03 +0900 (Sat, 08 Jul 2017) | 3 lines
webrick: become maintainer
<CAK6HhsrshX7s3qai4usbXknTQnA4GoRThJcQ_Ea=WgTG2Gu0QA@mail.gmail.com>
------------------------------------------------------------------------
r59278 | nobu | 2017-07-07 21:25:49 +0900 (Fri, 07 Jul 2017) | 5 lines
Run single downloader
* common.mk (update-unicode-property-files, update-unicode-files):
download in single process for each targets, not for each files
in parallel, to get rid of conflicts.
------------------------------------------------------------------------
r59276 | svn | 2017-07-07 11:14:58 +0900 (Fri, 07 Jul 2017) | 1 line
* 2017-07-07
------------------------------------------------------------------------
r59275 | usa | 2017-07-07 11:14:57 +0900 (Fri, 07 Jul 2017) | 3 lines
* tool/redmine-backporter.rb (show): just report and ignore if a feature ticket
is specified instead of aborting.
------------------------------------------------------------------------
r59273 | nobu | 2017-07-06 20:49:03 +0900 (Thu, 06 Jul 2017) | 8 lines
Fix DecimalInteger converting to octal bug
Previously if the input started with a '0' then it will be converted
as octal even though it has been specified as a decimal. This commit
forces the number to be interpreted as a decimal.
[ruby-core:81927] [Bug #13722] [Fix GH-1665]
Author: william <william.mccumstie@outlook.com>
------------------------------------------------------------------------
r59272 | rhe | 2017-07-06 16:21:17 +0900 (Thu, 06 Jul 2017) | 4 lines
string.c: preserve coderange in String#setbyte
Fix a wrong jump so replacing a byte in an ASCII-only string with an
ASCII character won't clear the coderange.
------------------------------------------------------------------------
r59271 | rhe | 2017-07-06 16:21:16 +0900 (Thu, 06 Jul 2017) | 3 lines
string.c: remove dead code in str_fill_term()
The length of a string never exceeds the capacity.
------------------------------------------------------------------------
r59270 | svn | 2017-07-06 13:12:52 +0900 (Thu, 06 Jul 2017) | 1 line
* 2017-07-06
------------------------------------------------------------------------
r59269 | nobu | 2017-07-06 13:12:51 +0900 (Thu, 06 Jul 2017) | 5 lines
lexer.rb: ignore dedented space
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): replace an
empty string content because of dedentation with :on_ignored_sp.
an empty token makes the sorted order unstable.
------------------------------------------------------------------------
r59268 | rhe | 2017-07-05 18:05:53 +0900 (Wed, 05 Jul 2017) | 4 lines
un.rb: use OpenSSL::PKey.read instead of OpenSSL::PKey::RSA.new
Also, error out if --ssl-private-key option is not given, since
specifying only the certificate makes no sense. [Feature #13714]
------------------------------------------------------------------------
r59266 | nobu | 2017-07-05 15:32:54 +0900 (Wed, 05 Jul 2017) | 1 line
debug.c: add FMODE constants
------------------------------------------------------------------------
r59265 | nobu | 2017-07-05 15:27:43 +0900 (Wed, 05 Jul 2017) | 5 lines
un.rb: support https
* lib/un.rb: add https support. based on the patch by Flavio
Castelli <flavio@castelli.name> in [ruby-core:81901].
[Feature #13714]
------------------------------------------------------------------------
r59264 | normal | 2017-07-05 02:27:40 +0900 (Wed, 05 Jul 2017) | 5 lines
tool/mk_call_iseq_optimized.rb: fix generated comment
"tool/mkcall_iseq.rb" never existed in our repo.
* tool/mk_call_iseq_optimized.rb: fix generated comment
------------------------------------------------------------------------
r59263 | svn | 2017-07-05 01:02:20 +0900 (Wed, 05 Jul 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59262 | mame | 2017-07-05 01:02:19 +0900 (Wed, 05 Jul 2017) | 5 lines
Use lcov visualizer for gcov statistics
This experimental feature is only for Ruby-core team, not for casual users.
Usage: `./configure --enable-gcov && make && make exam && make lcov`
------------------------------------------------------------------------
r59261 | svn | 2017-07-05 01:02:18 +0900 (Wed, 05 Jul 2017) | 1 line
* 2017-07-05
------------------------------------------------------------------------
r59260 | mame | 2017-07-05 01:02:18 +0900 (Wed, 05 Jul 2017) | 7 lines
tool/run-gcov.rb: ignore rubyspec_temp directory
rubyspec compiles the extension libraries for capi specs in a temporary
directory, and after that, deletes the directory. gcov resurrects the
directory to save coverage statistics (.gcda files). However, the
source and profiling artifacts (.gcno files) have been deleted.
So, we need to ignore the .gcda files.
------------------------------------------------------------------------
r59259 | nobu | 2017-07-04 14:42:04 +0900 (Tue, 04 Jul 2017) | 5 lines
vm_args.c: improve keyword argument errors
* vm_args.c (argument_arity_error): improve required keyword
argument errors when non-keyword arguments given.
[ruby-core:79439] [Bug #13196]
------------------------------------------------------------------------
r59258 | nobu | 2017-07-04 13:23:06 +0900 (Tue, 04 Jul 2017) | 6 lines
time.c: preserve marshalled timezone
* time.c (time_add): preserve timezone name restored by Marshal.
[ruby-core:81892] [Bug #13710]
* time.c (time_mload): reset localtime if having timezone.
------------------------------------------------------------------------
r59257 | svn | 2017-07-04 08:42:13 +0900 (Tue, 04 Jul 2017) | 1 line
* 2017-07-04
------------------------------------------------------------------------
r59256 | nobu | 2017-07-04 08:42:12 +0900 (Tue, 04 Jul 2017) | 4 lines
win32.c: restrict cursor move
* win32/win32.c (constat_apply): restrict cursor move in visible
screen only. [ruby-core:81883] [Bug #13707]
------------------------------------------------------------------------
r59255 | nobu | 2017-07-03 19:56:21 +0900 (Mon, 03 Jul 2017) | 4 lines
win32.c: clear relative to screen
* win32/win32.c (constat_apply): clear visible screen only, not
the entire buffer. [ruby-core:81883] [Bug #13707]
------------------------------------------------------------------------
r59254 | nobu | 2017-07-03 19:22:15 +0900 (Mon, 03 Jul 2017) | 4 lines
win32.c: cursor relative to screen
* win32/win32.c (constat_apply): move relative to visible screen,
not the entire buffer. [ruby-core:81883] [Bug #13707]
------------------------------------------------------------------------
r59253 | naruse | 2017-07-03 17:08:29 +0900 (Mon, 03 Jul 2017) | 1 line
Suppress warning: method redefined; discarding old ==
------------------------------------------------------------------------
r59252 | svn | 2017-07-03 11:13:59 +0900 (Mon, 03 Jul 2017) | 1 line
* 2017-07-03
------------------------------------------------------------------------
r59251 | hsbt | 2017-07-03 11:13:59 +0900 (Mon, 03 Jul 2017) | 4 lines
Added sync to all of default gems command.
* Fix command of FileUtils sync operation. test/fileutils is a directory.
* When not given gem name option, do sync all of gems.
------------------------------------------------------------------------
r59250 | ktsj | 2017-07-02 19:38:38 +0900 (Sun, 02 Jul 2017) | 6 lines
Symbol#== should be able to be redefined
* vm.c (vm_init_redefined_flag): set redefinition flag for Symbol#==.
The bug was introduced in r58895.
* test/ruby/test_symbol.rb: test for above.
------------------------------------------------------------------------
r59249 | svn | 2017-07-02 06:17:26 +0900 (Sun, 02 Jul 2017) | 1 line
* 2017-07-02
------------------------------------------------------------------------
r59248 | eregon | 2017-07-02 06:17:25 +0900 (Sun, 02 Jul 2017) | 1 line
Used a fixed seed in Random#rand spec
------------------------------------------------------------------------
r59246 | nobu | 2017-07-01 11:01:05 +0900 (Sat, 01 Jul 2017) | 4 lines
parse.y: f_margs parser events
* parse.y (f_margs): implemented parser events for massign
formal arguments. [ruby-core:81848] [Bug #13701]
------------------------------------------------------------------------
r59245 | nobu | 2017-07-01 10:51:17 +0900 (Sat, 01 Jul 2017) | 4 lines
parse.y: mlhs_add_post
* parse.y (mlhs_add_post): new parser event corresponding to
POSTARG.
------------------------------------------------------------------------
r59244 | svn | 2017-07-01 10:29:23 +0900 (Sat, 01 Jul 2017) | 1 line
* 2017-07-01
------------------------------------------------------------------------
r59243 | nobu | 2017-07-01 10:29:22 +0900 (Sat, 01 Jul 2017) | 7 lines
test_parser_events.rb: simplify
* test/ripper/dummyparser.rb (DummyParser): simplified mlhs node
representation.
* test/ripper/test_parser_events.rb (test_mlhs_add_star):
simplified assertions.
------------------------------------------------------------------------
r59213 | nobu | 2017-06-30 13:19:12 +0900 (Fri, 30 Jun 2017) | 4 lines
main.c: RUBY_DEBUG_ENV in devel
* main.c (RUBY_DEBUG_ENV): default to enabled in the development
version.
------------------------------------------------------------------------
r59212 | nobu | 2017-06-30 11:09:42 +0900 (Fri, 30 Jun 2017) | 7 lines
compile.c: dump iseq
* compile.c (append_compile_error): raise a fatal error when
compile_debug is enabled.
* compile.c (COMPILE_ERROR): dump the disassembled instruction
instruction sequence always.
------------------------------------------------------------------------
r59211 | nobu | 2017-06-30 10:56:53 +0900 (Fri, 30 Jun 2017) | 6 lines
vm_insnhelper.c: dump iseq
* vm_insnhelper.c (vm_stack_consistency_error): raise a fatal
error with the disassembled instruction sequence, in the
development version, instead of very rarely useful rb_bug in
such case.
------------------------------------------------------------------------
r59210 | normal | 2017-06-30 07:40:36 +0900 (Fri, 30 Jun 2017) | 5 lines
array.c: more predefined IDs
* array.c (id_cmp): change to macro for OPTIMIZED_CMP
(rb_ary_repeated_permutation_size): s/id_power/idPow/
(Init_Array): remove id_cmp and id_power
------------------------------------------------------------------------
r59209 | svn | 2017-06-30 07:34:19 +0900 (Fri, 30 Jun 2017) | 1 line
* 2017-06-30
------------------------------------------------------------------------
r59208 | normal | 2017-06-30 07:34:19 +0900 (Fri, 30 Jun 2017) | 8 lines
remove unused rb_obj_basic_to_s_p function
This hasn't been used since r36709 (2012-08-15)
("Kernel#inspect: improve consistency and do not call #to_s.")
and was never part of public API in include/ruby/
* class.c (rb_obj_basic_to_s_p): remove function
* internal.h (rb_obj_basic_to_s_p): remove declaration
------------------------------------------------------------------------
r59207 | svn | 2017-06-29 23:35:39 +0900 (Thu, 29 Jun 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59206 | svn | 2017-06-29 23:35:39 +0900 (Thu, 29 Jun 2017) | 1 line
* append newline at EOF.
------------------------------------------------------------------------
r59205 | eregon | 2017-06-29 23:35:37 +0900 (Thu, 29 Jun 2017) | 1 line
Update to ruby/spec@abf1700
------------------------------------------------------------------------
r59204 | svn | 2017-06-29 23:35:11 +0900 (Thu, 29 Jun 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59203 | eregon | 2017-06-29 23:35:09 +0900 (Thu, 29 Jun 2017) | 1 line
Update to ruby/mspec@021a119
------------------------------------------------------------------------
r59202 | nobu | 2017-06-29 13:01:30 +0900 (Thu, 29 Jun 2017) | 6 lines
compile.c: disallow next in once
* compile.c (iseq_compile_each0): turned dregx context in "once"
into "guarded" type from "block" type, to disallow `next`,
`break`, `redo` as well as outside "once".
[ruby-core:81805] [Bug #13690]
------------------------------------------------------------------------
r59201 | svn | 2017-06-29 00:25:31 +0900 (Thu, 29 Jun 2017) | 1 line
* 2017-06-29
------------------------------------------------------------------------
r59200 | ko1 | 2017-06-29 00:25:30 +0900 (Thu, 29 Jun 2017) | 8 lines
introduce rb_fiber_t::first_proc.
* cont.c (rb_fiber_t): add rb_fiber_t::first_proc and do not use
rb_thread_t::first_proc which should be thread local.
[Bug #13689]
* test/ruby/test_thread.rb: test for [Bug #13689].
------------------------------------------------------------------------
r59199 | ko1 | 2017-06-28 23:27:49 +0900 (Wed, 28 Jun 2017) | 7 lines
move fields to ec.
* vm_core.h (rb_thread.h): move errinfo and trace_arg to
rb_execution_context_t.
* cont.c (fiber_switch, rb_cont_call): do not restore "trace_arg" here.
------------------------------------------------------------------------
r59198 | svn | 2017-06-28 19:18:04 +0900 (Wed, 28 Jun 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59197 | hsbt | 2017-06-28 19:18:03 +0900 (Wed, 28 Jun 2017) | 1 line
Added sync tool for default gems from github master.
------------------------------------------------------------------------
r59196 | nobu | 2017-06-28 15:13:00 +0900 (Wed, 28 Jun 2017) | 4 lines
parse.y: fix token
* parse.y (parser_parse_string): return proper token tREGEXP_END
at unterminated regexp. [Bug #13363]
------------------------------------------------------------------------
r59195 | ko1 | 2017-06-28 15:09:06 +0900 (Wed, 28 Jun 2017) | 5 lines
move fields to ec.
* vm_core.h (rb_thread_t): move root_lep, root_svar and ensure_list
to rb_execution_context_t.
------------------------------------------------------------------------
r59194 | nobu | 2017-06-28 14:38:27 +0900 (Wed, 28 Jun 2017) | 4 lines
parse.y: add ellipsis
* parse.y (parser_yyerror): add ellipsis properly when error line
is truncated.
------------------------------------------------------------------------
r59193 | ko1 | 2017-06-28 13:57:02 +0900 (Wed, 28 Jun 2017) | 1 line
fix to check thread type
------------------------------------------------------------------------
r59192 | ko1 | 2017-06-28 13:49:30 +0900 (Wed, 28 Jun 2017) | 7 lines
introduce rb_thread_ptr() to replace GetThreadPtr().
* vm_core.h (rb_thread_ptr): added to replace GetThreadPtr() macro.
* thread.c (in some functions: use "target_th" instead of "th" to make clear
that it is not a current thread.
------------------------------------------------------------------------
r59191 | nobu | 2017-06-28 13:08:51 +0900 (Wed, 28 Jun 2017) | 4 lines
parse.y: flush numeric token
* parse.y (parser_number_literal_suffix, parse_numeric): flush
numeric token so following unexpected token part is marked.
------------------------------------------------------------------------
r59190 | ko1 | 2017-06-28 11:50:56 +0900 (Wed, 28 Jun 2017) | 4 lines
move storages to ec.
* vm_core.h (rb_thread_t): move storages to rb_execution_context_t.
------------------------------------------------------------------------
r59189 | duerst | 2017-06-28 11:28:00 +0900 (Wed, 28 Jun 2017) | 1 line
add two tests
------------------------------------------------------------------------
r59188 | nobu | 2017-06-28 11:02:38 +0900 (Wed, 28 Jun 2017) | 4 lines
parse.y: fix parser_yyerror
* parse.y (parser_yyerror): fix buffer overflow at truncation of
error line. [ruby-core:81790] [Bug #13687]
------------------------------------------------------------------------
r59187 | nobu | 2017-06-28 10:49:44 +0900 (Wed, 28 Jun 2017) | 1 line
parse.y: prefer enum yytokentype instead to int
------------------------------------------------------------------------
r59186 | svn | 2017-06-28 02:10:57 +0900 (Wed, 28 Jun 2017) | 1 line
* 2017-06-28
------------------------------------------------------------------------
r59185 | nobu | 2017-06-28 02:10:56 +0900 (Wed, 28 Jun 2017) | 4 lines
downloader.rb: get rid of symlinks
* tool/downloader.rb: do not save downloaded files to cache.
[ruby-core:81780] [Bug #13684]
------------------------------------------------------------------------
r59184 | nobu | 2017-06-27 23:09:08 +0900 (Tue, 27 Jun 2017) | 5 lines
fix return in toplevel ensure
* compile.c (iseq_compile_each0): adjust stack after return in
toplevel ensure, when the value is used.
[ruby-core:81777] [Bug #13682]
------------------------------------------------------------------------
r59183 | nobu | 2017-06-27 15:57:34 +0900 (Tue, 27 Jun 2017) | 8 lines
fix return in toplevel rescue/ensure
* compile.c (iseq_compile_each0): throw TAG_RETURN at return in
toplevel rescue/ensure to adjust VM stack properly.
[ruby-core:81777] [Bug #13682]
* vm_insnhelper.c (vm_throw_start): allow return in toplevel
rescue/ensure.
------------------------------------------------------------------------
r59182 | svn | 2017-06-27 12:45:56 +0900 (Tue, 27 Jun 2017) | 1 line
* 2017-06-27
------------------------------------------------------------------------
r59181 | nobu | 2017-06-27 12:45:55 +0900 (Tue, 27 Jun 2017) | 6 lines
vm_insnhelper.c: break in once
* vm_insnhelper.c (vm_throw_start): size of catch table has been
included in iseq_catch_table struct, which could be NULL, since
2.2. e.g., proc-closure in `once'.
[ruby-core:81775] [Bug #13680]
------------------------------------------------------------------------
r59180 | naruse | 2017-06-26 19:37:13 +0900 (Mon, 26 Jun 2017) | 1 line
webrick is _unmaintained_
------------------------------------------------------------------------
r59179 | nobu | 2017-06-26 19:31:34 +0900 (Mon, 26 Jun 2017) | 4 lines
parse.y: line number of bin op
* parse.y (call_bin_op_gen): adjust line number to the receiver,
instead of the rhs.
------------------------------------------------------------------------
r59178 | nobu | 2017-06-26 18:40:39 +0900 (Mon, 26 Jun 2017) | 16 lines
parse.y: mark error token
* parse.y (parser_yyerror): mark the whole last token which caused
the error, not only the end.
before:
```
if end
^
```
after:
```
if end
^~~
```
------------------------------------------------------------------------
r59177 | ko1 | 2017-06-26 16:56:44 +0900 (Mon, 26 Jun 2017) | 5 lines
move several fields from rb_thread_t to rb_execution_context_t.
* vm_core.h (rb_thread_t): move several fields which are copied at cont.c
to rb_execution_context_t.
------------------------------------------------------------------------
r59176 | ko1 | 2017-06-26 16:46:11 +0900 (Mon, 26 Jun 2017) | 4 lines
copy ec on Fiber.
* cont.c (cont_restore_thread): on Fiber we only need to copy ec struct.
------------------------------------------------------------------------
r59175 | ko1 | 2017-06-26 14:36:10 +0900 (Mon, 26 Jun 2017) | 4 lines
add "FIBER_" prefix.
* cont.c (enum fiber_status): add "FIBER_" prefix for all names.
------------------------------------------------------------------------
r59174 | ko1 | 2017-06-26 14:30:07 +0900 (Mon, 26 Jun 2017) | 7 lines
Do not store/restore Thread#status on fiber switching.
* cont.c (cont_restore_thread): On Fiber switching, thread status shold be
THREAD_RUNNABLE so that we don't need to store/restore this field.
* cont.c (cont_save_thread): ditto.
------------------------------------------------------------------------
r59173 | svn | 2017-06-26 09:59:25 +0900 (Mon, 26 Jun 2017) | 1 line
* 2017-06-26
------------------------------------------------------------------------
r59172 | nobu | 2017-06-26 09:59:24 +0900 (Mon, 26 Jun 2017) | 4 lines
compile.c: fix debug print
* compile.c (iseq_compile_each0): debugs/ruby_debug_printf do not
support PRIsVALUE.
------------------------------------------------------------------------
r59171 | nobu | 2017-06-25 17:55:23 +0900 (Sun, 25 Jun 2017) | 4 lines
compile.c: fix_sp_depth
* compile.c (fix_sp_depth): separate fix-up of sp depth from code
generation.
------------------------------------------------------------------------
r59170 | svn | 2017-06-25 14:10:49 +0900 (Sun, 25 Jun 2017) | 1 line
* 2017-06-25
------------------------------------------------------------------------
r59169 | nobu | 2017-06-25 14:10:48 +0900 (Sun, 25 Jun 2017) | 5 lines
compile.c: toplevel return in argument
* compile.c (iseq_compile_each0): adjust the stack before return
in an evstr/argument (reported by Balazs <balazs@kutilovi.cz>)
to fix stack consistency error. [ruby-core:81761] [Bug #13678]
------------------------------------------------------------------------
r59168 | nobu | 2017-06-24 21:01:02 +0900 (Sat, 24 Jun 2017) | 1 line
Added version guards [Bug #12684]
------------------------------------------------------------------------
r59167 | nobu | 2017-06-24 12:35:29 +0900 (Sat, 24 Jun 2017) | 5 lines
Delegate to `eql?` [Fix GH-1564]
* lib/delegate.rb (eql?): Delegate to `eql?` of the inner object.
based on the patch by giginet <giginet.net@gmail.com>.
[ruby-core:76950] [Bug #12684]
------------------------------------------------------------------------
r59166 | nobu | 2017-06-24 10:44:49 +0900 (Sat, 24 Jun 2017) | 4 lines
mspec.rb: keep jobserver fds
* spec/mspec/lib/mspec/commands/mspec.rb (MSpecMain#run): do not
close jobserver FDs for mspec-run.
------------------------------------------------------------------------
r59165 | normal | 2017-06-24 05:59:00 +0900 (Sat, 24 Jun 2017) | 7 lines
thread_sync.c: fix documentation for Queue#close
When Queue#closed? is true, using push/enq/<< will raise an
exception, and not return nil.
* thread_sync.c: fix documentation for Queue#close
Thanks to John Anderson. [ruby-core:81749] [Misc #13673]
------------------------------------------------------------------------
r59164 | svn | 2017-06-24 00:08:51 +0900 (Sat, 24 Jun 2017) | 1 line
* 2017-06-24
------------------------------------------------------------------------
r59163 | nobu | 2017-06-24 00:08:50 +0900 (Sat, 24 Jun 2017) | 4 lines
test_command_processor.rb: add suffix
* test/shell/test_command_processor.rb (test_option_type): Windows
needs a suffix to execute.
------------------------------------------------------------------------
r59162 | nobu | 2017-06-23 20:56:48 +0900 (Fri, 23 Jun 2017) | 4 lines
parse.y: should not warn op method call
* parse.y (void_expr_gen): should warn operator expression style
calls only, but not method style calls. [Fix GH-1660]
------------------------------------------------------------------------
r59161 | nobu | 2017-06-23 20:20:29 +0900 (Fri, 23 Jun 2017) | 5 lines
parse.y: check multibyte char
* parse.y (parser_precise_mbclen): check invalid multibyte char at
skipping strings following `?x` literal string, not to stuck in
a infinite loop. [ruby-core:81746] [Bug #13672]
------------------------------------------------------------------------
r59160 | nobu | 2017-06-23 20:15:26 +0900 (Fri, 23 Jun 2017) | 5 lines
vm_core.h: sandwich jmpbuf
* vm_core.h (rb_vm_tag): move jmpbuf which should be stored at the
last in TH_PUSH_TAG, between tag and state so ensure to be
accessible. reapplied r40806.
------------------------------------------------------------------------
r59159 | ko1 | 2017-06-23 18:43:52 +0900 (Fri, 23 Jun 2017) | 5 lines
move "state" to rb_vm_tag.
* vm_core.h (rb_thread_t::tag_state): move to "rb_vm_tag::state".
Lifetime of "state" should be same as current tag.
------------------------------------------------------------------------
r59158 | ko1 | 2017-06-23 17:48:41 +0900 (Fri, 23 Jun 2017) | 5 lines
rename th->state to th->tag_state.
* vm_core.h (rb_thread_t): rename rb_thread_t::state to tag_state
to make it clear.
------------------------------------------------------------------------
r59157 | ko1 | 2017-06-23 17:24:54 +0900 (Fri, 23 Jun 2017) | 2 lines
rb_catch_protect() accepts enum ruby_tag_type *.
------------------------------------------------------------------------
r59156 | nobu | 2017-06-23 16:53:07 +0900 (Fri, 23 Jun 2017) | 4 lines
thread.c: suppress warning
* thread.c (exec_recursive): rb_catch_protect() uses `int*` as
well as rb_protect.
------------------------------------------------------------------------
r59155 | ko1 | 2017-06-23 16:25:52 +0900 (Fri, 23 Jun 2017) | 12 lines
use "enum ruby_tag_type" and TAG_NONE.
Return value of EXEC_TAG() is saved by "int state".
Instead of "int", use "enum ruby_tag_type". First EXEC_TAG()
value should be 0, so that define TAG_NONE (= 0) and use it.
Some code used "status" instead of "state". To make them clear,
rename them to state.
We can change variable name from "state" to "tag_state", but this
ticket doesn't contain it.
------------------------------------------------------------------------
r59154 | ko1 | 2017-06-23 14:55:12 +0900 (Fri, 23 Jun 2017) | 1 line
use NULL instead of 0.
------------------------------------------------------------------------
r59153 | ko1 | 2017-06-23 14:52:28 +0900 (Fri, 23 Jun 2017) | 2 lines
skip on other threads (again).
------------------------------------------------------------------------
r59152 | ko1 | 2017-06-23 14:50:35 +0900 (Fri, 23 Jun 2017) | 2 lines
revert r59151 which introduce failures.
------------------------------------------------------------------------
r59151 | ko1 | 2017-06-23 14:45:50 +0900 (Fri, 23 Jun 2017) | 3 lines
skip on other threads.
------------------------------------------------------------------------
r59150 | glass | 2017-06-23 13:19:53 +0900 (Fri, 23 Jun 2017) | 3 lines
Revert "Allow IO#reopen to take a block"
This reverts r59142.
------------------------------------------------------------------------
r59149 | nobu | 2017-06-23 10:43:39 +0900 (Fri, 23 Jun 2017) | 4 lines
vm_insnhelper.c: vm_stack_consistency_error
* vm_insnhelper.c (vm_stack_consistency_error): extracted from
insns.def for further info in the future.
------------------------------------------------------------------------
r59148 | svn | 2017-06-23 09:29:45 +0900 (Fri, 23 Jun 2017) | 1 line
* 2017-06-23
------------------------------------------------------------------------
r59147 | nobu | 2017-06-23 09:29:45 +0900 (Fri, 23 Jun 2017) | 9 lines
refinements.rdoc: [DOC] improved [Fix GH-1659]
* doc/syntax/refinements.rdocrefinements.rdoc: grammatical
correction and code highlighting improved
* doc/syntax/refinements.rdocrefinements.rdoc: Fixnum replaced
with Integer and Integer with Numeric
Author: Shiva Bhusal <shivabhusal@users.noreply.github.com>
------------------------------------------------------------------------
r59146 | nobu | 2017-06-22 21:53:05 +0900 (Thu, 22 Jun 2017) | 5 lines
fix mortal_dynamic_symbol count
* test/objspace/test_objspace.rb (test_count_symbols): exclude a
dynamic symbol which has been turned into immortal by
define_method.
------------------------------------------------------------------------
r59145 | glass | 2017-06-22 19:56:49 +0900 (Thu, 22 Jun 2017) | 9 lines
Fix exception type in option type checker
* lib/shell/system-command.rb (SystemCommand#initialize):
`def_e2message` wraps error message, but does not define new exception
* test/shell/test_command_processor.rb: add a test
This patch is authored by Kenichi Kamiya <kachick1@gmail.com>
close #1657
------------------------------------------------------------------------
r59144 | ko1 | 2017-06-22 17:37:53 +0900 (Thu, 22 Jun 2017) | 7 lines
use --dump option for parse rule.
* common.mk: use --dump=--dump=parsetree_with_comment,insns
instead of tool/parse.rb. maybe nobody use this option so that
I believe it is enough. previous "parse" rule doesn't run script
but patched parse rule runs specified script (on miniruby).
------------------------------------------------------------------------
r59143 | ko1 | 2017-06-22 17:33:33 +0900 (Thu, 22 Jun 2017) | 7 lines
try to fix symbol duplication.
* test/objspace/test_objspace.rb (test_count_symbols): make more complex dynamic
symbols to avoid conflict with other existing static symbols.
Sometimes this test fails with "mortal_dynamic_symbol=>127".
------------------------------------------------------------------------
r59142 | glass | 2017-06-22 15:50:32 +0900 (Thu, 22 Jun 2017) | 8 lines
Allow IO#reopen to take a block
* io.c (rb_io_reopen): take a block and ensure the IO closed
[Feature #2631]
* test/ruby/test_io.rb: add a test
* NEWS: add an entry for this change
------------------------------------------------------------------------
r59141 | svn | 2017-06-22 15:42:27 +0900 (Thu, 22 Jun 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r59140 | ko1 | 2017-06-22 15:42:26 +0900 (Thu, 22 Jun 2017) | 5 lines
introduce heap_allocatable_pages_set().
* gc.c (heap_allocatable_pages_set): added. This function set
heap_allocatable_pages and sorted_list atomically.
------------------------------------------------------------------------
r59139 | ko1 | 2017-06-22 14:51:43 +0900 (Thu, 22 Jun 2017) | 3 lines
catch up frozen_string_literal: true.
------------------------------------------------------------------------
r59138 | ko1 | 2017-06-22 14:03:18 +0900 (Thu, 22 Jun 2017) | 5 lines
introduce GC_ASSERT().
* gc.c (GC_ASSERT()): added. GC_ASSERT() is similar to VM_ASSERT in
vm_core.h but turn on by RGENGC_CHECK_MODE.
------------------------------------------------------------------------
r59137 | svn | 2017-06-22 09:59:55 +0900 (Thu, 22 Jun 2017) | 1 line
* 2017-06-22
------------------------------------------------------------------------
r59136 | nobu | 2017-06-22 09:59:54 +0900 (Thu, 22 Jun 2017) | 4 lines
gc.c: expand sorted pages
* gc.c (heap_page_allocate): expand sorted pages before inserting
allocated new page. [Bug #12670]
------------------------------------------------------------------------
r59135 | nobu | 2017-06-21 21:51:26 +0900 (Wed, 21 Jun 2017) | 4 lines
gc.c: FL_CHECK2
* gc.c (FL_TEST2, FL_SET2, FL_UNSET2): make error messages
consitent.
------------------------------------------------------------------------
r59134 | eregon | 2017-06-21 19:06:44 +0900 (Wed, 21 Jun 2017) | 1 line
* NEWS: Fix typo.
------------------------------------------------------------------------
r59133 | sonots | 2017-06-21 16:43:27 +0900 (Wed, 21 Jun 2017) | 6 lines
test/ruby/test_string.rb: add tests to chomp substr
* test/ruby/test_string.rb (TestString#test_chomp): add tests
to chomp substr
* test/ruby/test_string.rb (TestString#test_chomp!): ditto
------------------------------------------------------------------------
r59132 | sonots | 2017-06-21 16:43:26 +0900 (Wed, 21 Jun 2017) | 10 lines
string.c: add String#delete_prefix and String#delete_prefix!
to remove leading substr [Feature #12694] [fix GH-1632]
* string.c (rb_str_delete_prefix_bang): add a new method
to remove prefix destuctively.
* string.c (rb_str_delete_prefix): add a new method
to remove prefix non-destuctively.
* test/ruby/test_string.rb: add tests.
------------------------------------------------------------------------
r59131 | nobu | 2017-06-21 13:34:25 +0900 (Wed, 21 Jun 2017) | 8 lines
RUBY_DEVEL flag
* configure.in: define RUBY_DEVEL only in the trunk.
* gc.c: enable runtime rgengc debug if RUBY_DEVEL
* ruby.c (debug_option): enable RUBY_DEBUG in --debug option only
if RUBY_DEVEL.
------------------------------------------------------------------------
r59130 | nobu | 2017-06-21 12:27:21 +0900 (Wed, 21 Jun 2017) | 1 line
configure.in: use AS_IF
------------------------------------------------------------------------
r59129 | nobu | 2017-06-21 11:44:23 +0900 (Wed, 21 Jun 2017) | 4 lines
ruby.c: debug options in command line
* ruby.c (debug_option): parse options in --debug command line
option same as RUBY_DEBUG env. available only in the trunk.
------------------------------------------------------------------------
r59128 | nobu | 2017-06-21 11:25:27 +0900 (Wed, 21 Jun 2017) | 6 lines
Fix Enumerable#uniq with non single yield arguments
* enum.c (uniq_func, uniq_iter): need packed value as the unique
key. [ruby-core:81734] [Bug #13669] [Fix GH-1658]
Author: Kenichi Kamiya <kachick1@gmail.com>
------------------------------------------------------------------------
r59127 | nobu | 2017-06-21 11:03:38 +0900 (Wed, 21 Jun 2017) | 1 line
KNOWNBUGS.rb: hung up on linux
------------------------------------------------------------------------
r59126 | nobu | 2017-06-21 10:34:34 +0900 (Wed, 21 Jun 2017) | 1 line
KNOWNBUGS.rb: deferred free
------------------------------------------------------------------------
r59125 | nobu | 2017-06-21 10:34:33 +0900 (Wed, 21 Jun 2017) | 1 line
bootstraptest/runner.rb: keyword argument
------------------------------------------------------------------------
r59124 | svn | 2017-06-21 00:23:51 +0900 (Wed, 21 Jun 2017) | 1 line
* 2017-06-21
------------------------------------------------------------------------
r59123 | eregon | 2017-06-21 00:23:50 +0900 (Wed, 21 Jun 2017) | 4 lines
Use a file under tmp for File.real{,dir}path specs on Windows
* The source file path could have pre-existing symlinks.
* See https://github.com/ruby/spec/issues/445.
------------------------------------------------------------------------
r59122 | hsbt | 2017-06-20 20:43:05 +0900 (Tue, 20 Jun 2017) | 1 line
Fixed missing handling for frozen object at r59121.
------------------------------------------------------------------------
r59121 | hsbt | 2017-06-20 20:10:37 +0900 (Tue, 20 Jun 2017) | 1 line
Specify frozen_string_literal: true.
------------------------------------------------------------------------
r59120 | nobu | 2017-06-20 17:23:25 +0900 (Tue, 20 Jun 2017) | 4 lines
gc.c: add newline to report [ci skip]
* gc.c (gc_sweep_finish): gc_report format should end with a
newline, as gc_report_body does not append it.
------------------------------------------------------------------------
r59119 | svn | 2017-06-20 14:34:33 +0900 (Tue, 20 Jun 2017) | 1 line
* 2017-06-20
------------------------------------------------------------------------
r59118 | ko1 | 2017-06-20 14:34:33 +0900 (Tue, 20 Jun 2017) | 2 lines
skip unresolved issue.
------------------------------------------------------------------------
r59117 | nobu | 2017-06-19 23:36:18 +0900 (Mon, 19 Jun 2017) | 1 line
debug.c: rgengc debug option
------------------------------------------------------------------------
r59116 | nobu | 2017-06-19 23:36:17 +0900 (Mon, 19 Jun 2017) | 3 lines
test for [Bug #12670]
heap corruption by deferred free.
------------------------------------------------------------------------
r59115 | hsbt | 2017-06-19 22:03:06 +0900 (Mon, 19 Jun 2017) | 9 lines
Make string literal to frozen object on gemspec of defulte gems.
Added following gemspecs.
* extensions: date, dbm, etc, fiddle, gdbm, sdbm, stringio, strscan, zlib
* pure ruby libraries: cmath, csv, fileutils, scanf, webrick
psych and rdoc is out of scope of this commit. I will merge after
upstream was change to `frozen_string_literal: true`.
------------------------------------------------------------------------
r59114 | svn | 2017-06-19 22:00:13 +0900 (Mon, 19 Jun 2017) | 1 line
* 2017-06-19
------------------------------------------------------------------------
r59113 | eregon | 2017-06-19 22:00:12 +0900 (Mon, 19 Jun 2017) | 3 lines
Adapt Time#zone spec to deal with differences of TZ validation on Windows
* [Bug #13591] [ruby-core:81347]
------------------------------------------------------------------------
r59112 | nobu | 2017-06-18 13:38:01 +0900 (Sun, 18 Jun 2017) | 5 lines
string.c: check just before modification
* string.c (rb_str_chomp_bang): check if modifiable after checking
an argument and just before modification, as it can get frozen
during the argument conversion to String.
------------------------------------------------------------------------
r59111 | nobu | 2017-06-18 13:29:05 +0900 (Sun, 18 Jun 2017) | 4 lines
test_string.rb: chomp! frozen string
* test/ruby/test_string.rb (TestString#test_chomp): should raise
if frozen.
------------------------------------------------------------------------
r59110 | nobu | 2017-06-18 13:29:04 +0900 (Sun, 18 Jun 2017) | 5 lines
test/unit.rb: close jobserver
* test/lib/test/unit.rb (Test::Unit::Parallel#flush_job_tokens):
close jobserver auth fds aflter flush, not to release tokens
more than acquired.
------------------------------------------------------------------------
r59109 | nobu | 2017-06-18 10:15:36 +0900 (Sun, 18 Jun 2017) | 5 lines
capi/spec_helper.rb: suppress logo
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension):
suppress logo of nmake.exe to stderr. we want to show compiler
warnings only.
------------------------------------------------------------------------
r59108 | svn | 2017-06-18 10:15:36 +0900 (Sun, 18 Jun 2017) | 1 line
* 2017-06-18
------------------------------------------------------------------------
r59107 | nobu | 2017-06-18 10:15:35 +0900 (Sun, 18 Jun 2017) | 4 lines
appveyor.yml: num of jobs
* appveyor.yml (test_script): stop running too many workers to get
rid of sporadic NoMemoryError.
------------------------------------------------------------------------
r59106 | nobu | 2017-06-17 09:18:33 +0900 (Sat, 17 Jun 2017) | 7 lines
capi/spec_helper.rb: pass jobserver fds
* spec/mspec/lib/mspec/commands/mspec.rb (MSpecMain#multi_exec):
do not close GNU make jobserver auth fds.
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension):
ditto.
------------------------------------------------------------------------
r59105 | nobu | 2017-06-17 09:10:54 +0900 (Sat, 17 Jun 2017) | 5 lines
capi/spec_helper.rb: use MAKE env
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension):
prefer MAKE environment variable to hardcoded name if set by
parent make.
------------------------------------------------------------------------
r59104 | svn | 2017-06-17 08:59:34 +0900 (Sat, 17 Jun 2017) | 1 line
* 2017-06-17
------------------------------------------------------------------------
r59103 | nobu | 2017-06-17 08:59:33 +0900 (Sat, 17 Jun 2017) | 4 lines
default.mspec: limit cores
* spec/default.mspec (MSpecScript::JobServer#cores): limit max
number of processors, not to acquire tokens more than necessary.
------------------------------------------------------------------------
r59102 | nobu | 2017-06-16 23:44:01 +0900 (Fri, 16 Jun 2017) | 6 lines
pathname.rb: UNC root pathname needs a separator
* ext/pathname/lib/pathname.rb (Pathname#plus): UNC root pathname
needs a separator. File.basename returns "/" on UNC root, as
well as sole drive letter, even if it does not end with a
separator. [ruby-core:80900] [Bug #13515]
------------------------------------------------------------------------
r59101 | hsbt | 2017-06-16 16:02:22 +0900 (Fri, 16 Jun 2017) | 9 lines
Merge psych-3.0.0.beta2 from https://github.com/ruby/psych
It contains following changes from 3.0.0.beta1
* Preserve time zone offset when deserializing times
https://github.com/ruby/psych/pull/316
* Enable YAML serialization of Ruby delegators
https://github.com/ruby/psych/pull/158
------------------------------------------------------------------------
r59100 | ko1 | 2017-06-16 13:04:53 +0900 (Fri, 16 Jun 2017) | 4 lines
require 'bigdecimal'
* test/json/json_parser_test.rb: this test needs bigdecimal.
------------------------------------------------------------------------
r59099 | hsbt | 2017-06-16 12:04:46 +0900 (Fri, 16 Jun 2017) | 3 lines
Merge json-2.1.0 from https://github.com/flori/json
https://github.com/flori/json/blob/master/CHANGES.md#2017-04-18-210
------------------------------------------------------------------------
r59098 | svn | 2017-06-16 10:53:16 +0900 (Fri, 16 Jun 2017) | 1 line
* 2017-06-16
------------------------------------------------------------------------
r59097 | nobu | 2017-06-16 10:53:15 +0900 (Fri, 16 Jun 2017) | 1 line
removed ruby_error_print
------------------------------------------------------------------------
r59096 | usa | 2017-06-15 23:04:29 +0900 (Thu, 15 Jun 2017) | 7 lines
Clear `DESTDIR` when running make
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension): `DESTDIR` is
the drive letter of the ruby installed path as default on mswin, but not
builddir of the ruby. this causes spec errors if the drive letter is
different in the installed path and builddir.
------------------------------------------------------------------------
r59095 | eregon | 2017-06-15 22:34:32 +0900 (Thu, 15 Jun 2017) | 1 line
Update to ruby/spec@c730f07
------------------------------------------------------------------------
r59094 | svn | 2017-06-15 21:48:54 +0900 (Thu, 15 Jun 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59093 | eregon | 2017-06-15 21:48:52 +0900 (Thu, 15 Jun 2017) | 1 line
Update to ruby/spec@cd1b911
------------------------------------------------------------------------
r59092 | eregon | 2017-06-15 21:48:26 +0900 (Thu, 15 Jun 2017) | 1 line
Update to ruby/mspec@d900a49
------------------------------------------------------------------------
r59091 | nobu | 2017-06-15 20:51:39 +0900 (Thu, 15 Jun 2017) | 1 line
Revert r59084, see r57060
------------------------------------------------------------------------
r59090 | a_matsuda | 2017-06-15 19:43:17 +0900 (Thu, 15 Jun 2017) | 10 lines
Don't pollute toplevel by an IRB internal method
There actually are some libraries that requires 'irb' such as byebug, and when
'irb' is required, it requires irb/src_encoding.rb, then it defines the toplevel
default_src_encoding method that is visible from anywhere in the end users' apps.
Here's a quick oneliner that shows what's happening.
% ruby -rpry-byebug -e 'p private_methods(false)'
[:include, :using, :define_method, :public, :private, :DelegateClass, :default_src_encoding]
------------------------------------------------------------------------
r59089 | ko1 | 2017-06-15 16:16:17 +0900 (Thu, 15 Jun 2017) | 4 lines
Prohibit SystemStackError while GC.
* vm_insnhelper.c (rb_threadptr_stack_overflow): fatal on GC [Bug #13662]
------------------------------------------------------------------------
r59088 | nobu | 2017-06-15 12:12:32 +0900 (Thu, 15 Jun 2017) | 8 lines
common.mk: tweaked packages order
* common.mk (dist): tweaked packages order by $(DISTPKGS).
.tar.gz comes first for the hash values in downloads page, then
popular .zip.
* tool/make-snapshot: "all" in -packages means all of the rest
package types now.
------------------------------------------------------------------------
r59087 | nobu | 2017-06-15 11:39:06 +0900 (Thu, 15 Jun 2017) | 1 line
make-snapshot: colorize [ci skip]
------------------------------------------------------------------------
r59086 | nobu | 2017-06-15 11:33:57 +0900 (Thu, 15 Jun 2017) | 1 line
make-snapshot: suppress output from 7z [ci skip]
------------------------------------------------------------------------
r59085 | svn | 2017-06-15 11:33:56 +0900 (Thu, 15 Jun 2017) | 1 line
* 2017-06-15
------------------------------------------------------------------------
r59084 | nobu | 2017-06-15 11:33:56 +0900 (Thu, 15 Jun 2017) | 1 line
make-snapshot: prefer default commands over 7z [ci skip]
------------------------------------------------------------------------
r59083 | nobu | 2017-06-14 23:02:33 +0900 (Wed, 14 Jun 2017) | 4 lines
proc.c: infect inspect result
* proc.c (method_inspect): the result should be infected by the
object.
------------------------------------------------------------------------
r59082 | nobu | 2017-06-14 22:08:50 +0900 (Wed, 14 Jun 2017) | 1 line
test/ruby/test_method.rb: refined [ruby-core:81666] [Bug #13656]
------------------------------------------------------------------------
r59081 | rhe | 2017-06-14 18:49:09 +0900 (Wed, 14 Jun 2017) | 36 lines
openssl: import v2.0.4
Import Ruby/OpenSSL 2.0.4. Only bug (and typo) fixes. The full commit
history since v2.0.3 (imported at r57482) can be found at:
https://github.com/ruby/openssl/compare/v2.0.3...v2.0.4
This contains the fix for [Bug #11033].
----------------------------------------------------------------
Jun Aruga (1):
Update .travis.yml and Dockerfile
Kazuki Yamaguchi (9):
test/test_pkey_ec: do not use dummy 0 order
test/test_ssl: fix typo in test_sysread_and_syswrite
ssl: check return value of SSL_set_fd()
Fix typos
test/test_x509store: skip OpenSSL::TestX509Store#test_set_errors
tool/sync-with-trunk: 'LASY' -> 'LAST'
x509store: clear error queue after calling X509_LOOKUP_load_file()
extconf.rb: simplify searching libraries logic
Ruby/OpenSSL 2.0.4
SHIBATA Hiroshi (1):
Fix typos
Vladimir Rybas (1):
Fix documentation for OpenSSL::Cipher#final
nobu (2):
openssl: fix broken openssl check
openssl: fix broken openssl check
usa (1):
Search SSL libraries by testing various filename patterns
------------------------------------------------------------------------
r59080 | nobu | 2017-06-14 15:03:55 +0900 (Wed, 14 Jun 2017) | 5 lines
proc.c: skip prepended modules
* proc.c (method_super_method): skip prepended modules and
continue from the super class of the original class.
[ruby-core:81666] [Bug #13656]
------------------------------------------------------------------------
r59079 | nobu | 2017-06-14 14:10:30 +0900 (Wed, 14 Jun 2017) | 4 lines
compile.c: dump and error before allocation
* compile.c (iseq_set_sequence): separate instruction dump and
error, before allocation of sequence.
------------------------------------------------------------------------
r59078 | ko1 | 2017-06-14 13:27:14 +0900 (Wed, 14 Jun 2017) | 5 lines
simply call xfree().
* compile.c (BADINSN_ERROR): mixing (void) and (int) will fail solaris
compiler. [ruby-core:81668], [Bug #13658]
------------------------------------------------------------------------
r59077 | svn | 2017-06-14 11:26:19 +0900 (Wed, 14 Jun 2017) | 1 line
* 2017-06-14
------------------------------------------------------------------------
r59076 | ko1 | 2017-06-14 11:26:18 +0900 (Wed, 14 Jun 2017) | 6 lines
remove OPT_CALL_CFUNC_WITHOUT_FRAME.
* vm_core.h (OPT_CALL_CFUNC_WITHOUT_FRAME): removed because nobody use it.
This optimization tries to call C-methods without pushing VM frames,
however no big improvements compare with this complexity.
------------------------------------------------------------------------
r59075 | nobu | 2017-06-13 12:20:12 +0900 (Tue, 13 Jun 2017) | 2 lines
* compile.c (dump_disasm_list_with_cursor): replace with
dump_disasm_list_with_cursor_dest.
------------------------------------------------------------------------
r59074 | ko1 | 2017-06-13 11:52:33 +0900 (Tue, 13 Jun 2017) | 5 lines
fix to free unallocated memory.
* compile.c (iseq_set_sequence): initialize with NULL for line_info_table
and generated_iseq and check NULL at BADINSN_ERROR.
------------------------------------------------------------------------
r59073 | nobu | 2017-06-13 10:31:32 +0900 (Tue, 13 Jun 2017) | 4 lines
compile.c: refine error message
* compile.c (insn_set_sc_state): dump the whole instructions and
mark the destination when label state mismatch.
------------------------------------------------------------------------
r59072 | svn | 2017-06-13 10:04:57 +0900 (Tue, 13 Jun 2017) | 1 line
* 2017-06-13
------------------------------------------------------------------------
r59071 | nobu | 2017-06-13 10:04:56 +0900 (Tue, 13 Jun 2017) | 1 line
compile.c: refine error messages
------------------------------------------------------------------------
r59070 | k0kubun | 2017-06-12 20:09:10 +0900 (Mon, 12 Jun 2017) | 5 lines
array.c: [DOC] Make it clear that #<< modifies receiver
This patch is sent from @selmertsx (morioka shuhei).
[fix GH-1646]
------------------------------------------------------------------------
r59069 | ko1 | 2017-06-12 16:58:23 +0900 (Mon, 12 Jun 2017) | 1 line
add a comment for rb_thread_mark()
------------------------------------------------------------------------
r59068 | ko1 | 2017-06-12 16:49:33 +0900 (Mon, 12 Jun 2017) | 8 lines
remove rb_blocking_region_buffer::oldubf.
* thread.c (rb_blocking_region_buffer): remove oldubf because ubf should be
NULL just before ubf setting.
* thread.c (set_unblock_function, reset_unblock_function): rename to
unblock_function_set() and unblock_function_clear() respectively.
------------------------------------------------------------------------
r59067 | nobu | 2017-06-12 15:31:02 +0900 (Mon, 12 Jun 2017) | 4 lines
unused functions
* thread_win32.c: native_cond_signal, native_cond_wait,
native_cond_initialize, native_cond_destroy are not used now.
------------------------------------------------------------------------
r59066 | ko1 | 2017-06-12 13:52:25 +0900 (Mon, 12 Jun 2017) | 15 lines
remove ruby_kill() introduced for [Bug #7951].
* thread.c (rbuy_kill): removed. This function is used
with SIGSEGV, SIGBUS, SIGKILL, SIGILL, SIGFPE and SIGSTOP
and these signals are affect immediately. So that `kill(2)'
is enough for them.
* signal.c (rb_f_kill): ditto.
* vm_core.h (rb_thread_t::interrupt_cond): removed because
only `ruby_kill()' uses this field.
* test/ruby/test_signal.rb: Without this patch sending SIGSTOP to own
process wait another interrupt even if another process sends SIGCONT.
------------------------------------------------------------------------
r59065 | nobu | 2017-06-12 13:35:53 +0900 (Mon, 12 Jun 2017) | 3 lines
iseq.c: preserve encoding
* iseq.c (iseqw_inspect): preserve path encoding in the result.
------------------------------------------------------------------------
r59064 | nobu | 2017-06-12 13:35:52 +0900 (Mon, 12 Jun 2017) | 1 line
gc.c: duplicate rb_iseq_path by RSTRING_PTR
------------------------------------------------------------------------
r59063 | ko1 | 2017-06-12 11:20:09 +0900 (Mon, 12 Jun 2017) | 7 lines
* proc.c (get_local_variable_ptr): return found env ptr. Returned env
will be used by write barrier at `bind_local_variable_set()'.
[Bug #13605]
* test/ruby/test_proc.rb: add a test for this issue.
------------------------------------------------------------------------
r59062 | svn | 2017-06-12 09:18:31 +0900 (Mon, 12 Jun 2017) | 1 line
* 2017-06-12
------------------------------------------------------------------------
r59061 | nobu | 2017-06-12 09:18:30 +0900 (Mon, 12 Jun 2017) | 4 lines
win32.c: rb_dir_getwd_ospath
* win32/win32.c (rb_dir_getwd_ospath): Windows implementation
moved from dir.c. get rid of freeing malloced memory by xfree.
------------------------------------------------------------------------
r59060 | nobu | 2017-06-11 20:21:01 +0900 (Sun, 11 Jun 2017) | 4 lines
expand ruby_sourcefile
* compile.c: expand ruby_sourcefile not to evaluate twice in
RSTRING_PTR.
------------------------------------------------------------------------
r59059 | svn | 2017-06-11 14:36:57 +0900 (Sun, 11 Jun 2017) | 1 line
* 2017-06-11
------------------------------------------------------------------------
r59058 | nobu | 2017-06-11 14:36:56 +0900 (Sun, 11 Jun 2017) | 1 line
configure.in: link the DWARF debug information
------------------------------------------------------------------------
r59057 | svn | 2017-06-10 19:26:33 +0900 (Sat, 10 Jun 2017) | 1 line
* 2017-06-10
------------------------------------------------------------------------
r59056 | nobu | 2017-06-10 19:26:32 +0900 (Sat, 10 Jun 2017) | 7 lines
enumerator.c: fix nested maps
* enumerator.c (lazy_map_proc, lazy_grep_iter_proc): marks values
returned by blocks are not packed in the case of nested maps, so
that the result will be same as non-lazy version. based on the
patch by akihikodaki (Akihiko Odaki) at [ruby-core:81638],
without GCC extension. [Bug#13648]
------------------------------------------------------------------------
r59055 | nobu | 2017-06-09 23:42:15 +0900 (Fri, 09 Jun 2017) | 6 lines
thread_pthread.c: workaround for valgrind on Mac
* thread.c: revert r59053.
* thread_pthread.c (rb_thread_create_timer_thread): needs more
stack space for valgrind.
------------------------------------------------------------------------
r59054 | nobu | 2017-06-09 23:42:14 +0900 (Fri, 09 Jun 2017) | 1 line
signal.c: do not disable handlers to dump core
------------------------------------------------------------------------
r59053 | nobu | 2017-06-09 22:58:09 +0900 (Fri, 09 Jun 2017) | 9 lines
thread.c: workaround for valgrind on Mac OS X
Without this hack, pthread_join() in rb_thread_stop_timer_thread()
segfaults.
ProductName: Mac OS X
ProductVersion: 10.11.6
BuildVersion: 15G1510
valgrind-3.12.0
------------------------------------------------------------------------
r59052 | nobu | 2017-06-09 22:02:13 +0900 (Fri, 09 Jun 2017) | 4 lines
signal.c: no sigsegv handler with valgrind
* signal.c: disable handling signals to dump core, if installing
unreserved signals failed, not valgrind to hang on Mac OS.
------------------------------------------------------------------------
r59051 | nobu | 2017-06-09 17:30:24 +0900 (Fri, 09 Jun 2017) | 1 line
signal.c: warn at unresserved signals
------------------------------------------------------------------------
r59050 | hsbt | 2017-06-09 12:20:03 +0900 (Fri, 09 Jun 2017) | 5 lines
Update bundled gems to latest versions.
* did_you_mean 1.1.2
* minitest 5.10.2
* xmlrpc 0.3.0
------------------------------------------------------------------------
r59049 | a_matsuda | 2017-06-09 10:31:36 +0900 (Fri, 09 Jun 2017) | 7 lines
Fix typo.
Patch by: Sarah Duve
Signed-off-by: Akira Matsuda <ronnie@dio.jp>
[Fix GH-1643]
[ci skip]
------------------------------------------------------------------------
r59048 | svn | 2017-06-09 05:58:04 +0900 (Fri, 09 Jun 2017) | 1 line
* 2017-06-09
------------------------------------------------------------------------
r59047 | normal | 2017-06-09 05:58:03 +0900 (Fri, 09 Jun 2017) | 13 lines
tool/runruby.rb: test with smallest possible machine stack
Lets ensure none of our C functions use too much stack space and
fix all excessive stack usage before releasing the next version.
Reducing C stack usage should reduce conservative GC scanning
time and improve performance.
If there are platform-dependent test failures; excessive stack
usage should be fixed; rather than increasing minimum values or
removing these envs from testing.
* tool/runruby.rb: use smallest possible machine stack size
[ruby-core:81597] [Feature #13637]
------------------------------------------------------------------------
r59046 | nobu | 2017-06-08 16:41:38 +0900 (Thu, 08 Jun 2017) | 6 lines
signal.c: relax installation failure
* signal.c (install_sighandler): ignore failure at unreserved
signals. e.g., SIGUSR2 fails under valgrind.
* signal.c (install_sighandler_fail): refine [BUG] message.
------------------------------------------------------------------------
r59045 | ko1 | 2017-06-08 14:22:49 +0900 (Thu, 08 Jun 2017) | 5 lines
vm_block_handler_verify() should not return any value.
* vm_core.h (vm_block_handler_verify): this function only checks
the given block handler with VM_ASSERT(). No need to return any value.
------------------------------------------------------------------------
r59044 | svn | 2017-06-08 13:13:52 +0900 (Thu, 08 Jun 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r59043 | ko1 | 2017-06-08 13:13:51 +0900 (Thu, 08 Jun 2017) | 18 lines
check break target correctly.
* compile.c (iseq_compile_each0): save target child_iseq in the catch-table
for break. This iseq is not for continuation, but for search key at
vm_throw_start().
* vm_insnhelper.c (vm_throw_start): check saved iseq first.
* iseq.h: add comment for it.
* test/ruby/test_iterator.rb (test_ljump): add a test for the issue:
def call b; b.call; end
call(Proc.new{break}){} #=> (1) should raise LocalJumpError
call(Proc.new{break}) #=> (2) shoudd raies LocalJumpError, too.
but (1) doesn't raise LocalJumpError.
This issue is reported by Matz.
------------------------------------------------------------------------
r59042 | ko1 | 2017-06-08 13:06:07 +0900 (Thu, 08 Jun 2017) | 5 lines
use NULL instead of 0.
* compile.c: use NULL instead of 0 for ADD_CATCH_ENTRY()
to specify don't pass iseq.
------------------------------------------------------------------------
r59041 | nobu | 2017-06-08 11:07:42 +0900 (Thu, 08 Jun 2017) | 4 lines
ruby.c: script name in UTF-8
* ruby.c (process_options): keep script name in UTF-8 if UTF8_PATH
to get rid of loss by conversion.
------------------------------------------------------------------------
r59040 | nobu | 2017-06-08 10:58:44 +0900 (Thu, 08 Jun 2017) | 6 lines
file.c: realpath in OS path encoding
* dir.c (rb_dir_getwd_ospath): return cwd path in the OS path
encoding.
* file.c (rb_realpath_internal): work in the OS path encoding
------------------------------------------------------------------------
r59039 | nobu | 2017-06-08 10:58:42 +0900 (Thu, 08 Jun 2017) | 1 line
appveyor.yml: show encodings [ci skip]
------------------------------------------------------------------------
r59038 | nobu | 2017-06-08 10:19:44 +0900 (Thu, 08 Jun 2017) | 1 line
appveyor.yml: enable exam on AppVeyor
------------------------------------------------------------------------
r59037 | svn | 2017-06-08 07:25:24 +0900 (Thu, 08 Jun 2017) | 1 line
* 2017-06-08
------------------------------------------------------------------------
r59036 | odaira | 2017-06-08 07:25:23 +0900 (Thu, 08 Jun 2017) | 2 lines
* tool/make-snapshot: prefer to use a make command
set in the MAKE or make env variable.
------------------------------------------------------------------------
r59035 | nobu | 2017-06-07 23:36:18 +0900 (Wed, 07 Jun 2017) | 4 lines
load.c: get rid of side effects
* load.c (rb_f_load, rb_require_internal): DTrace hooks should not
have side effects, i.e., conversion to String.
------------------------------------------------------------------------
r59034 | svn | 2017-06-07 22:01:28 +0900 (Wed, 07 Jun 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59033 | kou | 2017-06-07 22:01:28 +0900 (Wed, 07 Jun 2017) | 6 lines
rexml: add close tag check on end of document to StreamParser
[ruby-core:81593] [Bug #13636]
Reported by Anton Sivakov. Thanks!!!
------------------------------------------------------------------------
r59032 | normal | 2017-06-07 09:32:07 +0900 (Wed, 07 Jun 2017) | 7 lines
common.mk: update dependencies after r58978
Using "tool/update-deps --fix"
* common.mk (file.$(OBJEXT)): depend on id.h
(rational.$(OBJEXT)): ditto
(string.$(OBJEXT)): sort alphabetically
------------------------------------------------------------------------
r59031 | svn | 2017-06-07 09:32:03 +0900 (Wed, 07 Jun 2017) | 1 line
* properties.
------------------------------------------------------------------------
r59030 | normal | 2017-06-07 09:32:02 +0900 (Wed, 07 Jun 2017) | 10 lines
thread.c: avoid busy looping on rb_thread_fd_close
We no longer use it this function, but extensions do, and
we need to ensure it continues to work for them.
* thread.c (rb_thread_fd_close): schedule other threads in loop
* ext/-test-/thread_fd_close/thread_fd_close.c: new file
* ext/-test-/thread_fd_close/depend: ditto
* ext/-test-/thread_fd_close/extconf.rb: ditto
* test/-ext-/thread_fd_close/test_thread_fd_close.rb: new test
------------------------------------------------------------------------
r59029 | svn | 2017-06-07 07:55:36 +0900 (Wed, 07 Jun 2017) | 1 line
* 2017-06-07
------------------------------------------------------------------------
r59028 | normal | 2017-06-07 07:55:35 +0900 (Wed, 07 Jun 2017) | 17 lines
IO#close: do not enqueue redundant interrupts (take #2)
Enqueuing multiple errors for one event causes spurious errors
down the line, as reported by Nikolay Vashchenko in
https://bugs.ruby-lang.org/issues/13632
This should fix bad interactions with test_race_gets_and_close
in test/ruby/test_io.rb since we ensure rb_notify_fd_close
continues returning the busy flag after enqueuing the interrupt.
Backporting changes to 2.4 and earlier releases will be more
challenging...
* thread.c (rb_notify_fd_close): do not enqueue multiple interrupts
[ruby-core:81581] [Bug #13632]
* test/ruby/test_io.rb (test_single_exception_on_close):
new test based on script from Nikolay
------------------------------------------------------------------------
r59027 | nobu | 2017-06-06 21:30:17 +0900 (Tue, 06 Jun 2017) | 1 line
debug.c: fix breaking condtions
------------------------------------------------------------------------
r59026 | duerst | 2017-06-06 19:34:10 +0900 (Tue, 06 Jun 2017) | 10 lines
add test_ill_formed_utf_8_replace to test recommended number of \uFFFD
Add test method test_ill_formed_utf_8_replace to test/ruby/test_transcode.rb
to check for the recommended number of \uFFFD replacement characters.
This is the first part, using ill-formed prefixes, with suffixes up to
the length of the original UTF-8 structure (including overlongs and
the full 31-bit space.)
For more details, see Unicode 9.0.0, Section 3.9, Best Practices for Using U+FFFD.
------------------------------------------------------------------------
r59025 | ko1 | 2017-06-06 16:11:28 +0900 (Tue, 06 Jun 2017) | 1 line
re-revert r59020
------------------------------------------------------------------------
r59024 | ko1 | 2017-06-06 16:10:19 +0900 (Tue, 06 Jun 2017) | 1 line
revert r59023 because it contans unrelated developping code
------------------------------------------------------------------------
r59023 | ko1 | 2017-06-06 15:58:54 +0900 (Tue, 06 Jun 2017) | 1 line
revert r59020 because it may fail some tests sometimes on some environment (http://ci.rvm.jp/). This revert is to check the reason of failures.
------------------------------------------------------------------------
r59022 | nobu | 2017-06-06 12:45:02 +0900 (Tue, 06 Jun 2017) | 1 line
debug.c: parse locale and filesystem codepages
------------------------------------------------------------------------
r59021 | svn | 2017-06-06 09:13:48 +0900 (Tue, 06 Jun 2017) | 1 line
* 2017-06-06
------------------------------------------------------------------------
r59020 | normal | 2017-06-06 09:13:47 +0900 (Tue, 06 Jun 2017) | 10 lines
IO#close: do not enqueue redundant interrupts
Enqueuing multiple errors for one event causes spurious errors
down the line, as reported by Nikolay Vashchenko in
https://bugs.ruby-lang.org/issues/13632
* thread.c (rb_notify_fd_close): do not enqueue multiple interrupts
[ruby-core:81581] [Bug #13632]
* test/ruby/test_io.rb (test_single_exception_on_close):
new test based on script from Nikolay
------------------------------------------------------------------------
r59019 | nobu | 2017-06-05 16:26:15 +0900 (Mon, 05 Jun 2017) | 4 lines
win32.c: no locale
* win32/win32.c (skipspace, w32_cmdvector): get rid of iswspace(),
which is locale dependent.
------------------------------------------------------------------------
r59018 | ko1 | 2017-06-05 16:03:27 +0900 (Mon, 05 Jun 2017) | 1 line
revert r59017 it fails ruby/test_lambda.rb
------------------------------------------------------------------------
r59017 | ko1 | 2017-06-05 15:57:20 +0900 (Mon, 05 Jun 2017) | 5 lines
do not inform ``is_lambda".
* vm_eval.c (yield_under): do not inform Proc is lambda or not.
After that invoke_block_from_c_bh() checks it.
------------------------------------------------------------------------
r59016 | ko1 | 2017-06-05 15:15:28 +0900 (Mon, 05 Jun 2017) | 18 lines
rename functions and clean parameters.
* internal.h (rb_yield_lambda): rename to rb_yield_force_blockarg()
because this function prohibt lambda arg setup (strict setup).
* vm.c (invoke_iseq_block_from_c): remove splattable argument because
it is not used.
* vm.c (invoke_block_from_c_splattable): rename to invoke_block_from_c_bh()
because `splattable` doesn't make sense on current this function.
Also accept `force_blockarg' parameter instead of `splattable` parameter.
It is more clear.
* vm.c (invoke_block_from_c_unsplattable): rename to
invoke_block_from_c_proc() and accept `proc` instead of `block'.
This function is used only by proc block invocation.
------------------------------------------------------------------------
r59015 | svn | 2017-06-05 14:43:59 +0900 (Mon, 05 Jun 2017) | 1 line
* 2017-06-05
------------------------------------------------------------------------
r59014 | ko1 | 2017-06-05 14:43:58 +0900 (Mon, 05 Jun 2017) | 5 lines
remove arg_setup_lambda.
* vm_args.c (enum arg_setup_type): remove arg_setup_lambda because it is
same as arg_setup_method.
------------------------------------------------------------------------
r59013 | nobu | 2017-06-04 16:29:52 +0900 (Sun, 04 Jun 2017) | 1 line
load.c: encode to OS path outside PUSH_TAG
------------------------------------------------------------------------
r59012 | nobu | 2017-06-04 15:24:04 +0900 (Sun, 04 Jun 2017) | 6 lines
test_require.rb: fix expected path
* test/ruby/test_require.rb (test_require_with_unc): remove extra
slash. the result of File.expand_path has a slash just follows
the drive letter.
https://github.com/ruby/ruby/commit/4ef849bd9014746821402e21053a53ea61b3690d#commitcomment-22391133
------------------------------------------------------------------------
r59011 | stomar | 2017-06-04 05:17:00 +0900 (Sun, 04 Jun 2017) | 5 lines
array.c: docs for Array#{sort,sort!}
* array.c: [DOC] make example in the docs for Array#{sort,sort!}
match the call-seq and description by using the same block vars.
Based on a patch by Roque Pinel (repinel). [Fix GH-1628]
------------------------------------------------------------------------
r59010 | svn | 2017-06-04 02:11:44 +0900 (Sun, 04 Jun 2017) | 1 line
* 2017-06-04
------------------------------------------------------------------------
r59009 | nobu | 2017-06-04 02:11:43 +0900 (Sun, 04 Jun 2017) | 5 lines
test_require.rb: ignore EPERM at UNC
* test/ruby/test_require.rb (test_require_with_unc): ignore EPERM.
GetFileAttributes and CreateFile with backup semantics fail at a
symlink in a shared folder to another shared folder.
------------------------------------------------------------------------
r59008 | nobu | 2017-06-03 23:40:05 +0900 (Sat, 03 Jun 2017) | 4 lines
file.c: preserve encoding
* file.c (path_check_0): preserve encoding of path name in warning
message.
------------------------------------------------------------------------
r59007 | nobu | 2017-06-03 21:47:11 +0900 (Sat, 03 Jun 2017) | 4 lines
ruby.c: dladdr_path is not used on cygwin
* ruby.c (dladdr_path): dladdr is provided on recent cygwin, but
GetModuleFileNameW is used instead of it.
------------------------------------------------------------------------
r59006 | ko1 | 2017-06-03 19:07:44 +0900 (Sat, 03 Jun 2017) | 7 lines
* vm_core.h: remove VM_FRAME_MAGIC_LAMBDA and introduce
VM_FRAME_FLAG_LAMBDA. So that lambda block frame is
VM_FRAME_MAGIC_BLOCK | VM_FRAME_FLAG_LAMBDA.
* vm_core.h: remvoe VM_FRAME_MAGIC_PROC because nobody uses it.
------------------------------------------------------------------------
r59005 | nobu | 2017-06-03 18:35:43 +0900 (Sat, 03 Jun 2017) | 1 line
test/ruby/test_require.rb: remove duplicate assertion
------------------------------------------------------------------------
r59004 | nobu | 2017-06-03 18:18:44 +0900 (Sat, 03 Jun 2017) | 5 lines
test_require.rb: untouch default internal encoding
* test/ruby/test_require.rb (assert_require_insecure_path): get
rid of setting Encoding.default_internal, which affects load
path conversion.
------------------------------------------------------------------------
r59003 | normal | 2017-06-03 10:04:30 +0900 (Sat, 03 Jun 2017) | 11 lines
test: attempt to reduce failures in assert_cpu_usage_low
Try to make this test less fragile by taking into account
the worst case kernel timing resolution.
[ruby-core:81540]
* test/lib/test/unit/assertions.rb (assert_cpu_usage_low):
clamp measurement to minimum measurable time and warn
about tests being too short to measure
* test/ruby/test_io.rb (test_copy_stream_no_busy_wait):
remove pct kwarg and rely on assert_cpu_usage_low defaults
------------------------------------------------------------------------
r59002 | stomar | 2017-06-03 06:29:27 +0900 (Sat, 03 Jun 2017) | 5 lines
string.c: docs for String#split
* string.c: [DOC] clarify docs for String#split when called
with limit and capture groups.
Reported by Cichol Tsai. [ruby-core:81505] [Bug #13621]
------------------------------------------------------------------------
r59001 | svn | 2017-06-03 00:38:29 +0900 (Sat, 03 Jun 2017) | 1 line
* 2017-06-03
------------------------------------------------------------------------
r59000 | nobu | 2017-06-03 00:38:28 +0900 (Sat, 03 Jun 2017) | 1 line
common.mk: show locale
------------------------------------------------------------------------
r58999 | nobu | 2017-06-02 23:52:49 +0900 (Fri, 02 Jun 2017) | 4 lines
test_require.rb: assert_require_insecure_path
* test/ruby/test_require.rb (assert_require_insecure_path): more
tests for loading insecure path.
------------------------------------------------------------------------
r58998 | nobu | 2017-06-02 13:32:47 +0900 (Fri, 02 Jun 2017) | 4 lines
test_require.rb: fallback encoding
* test/ruby/test_require.rb (assert_require_nonascii_path):
fallback when LANG=C.
------------------------------------------------------------------------
r58997 | nobu | 2017-06-02 13:10:36 +0900 (Fri, 02 Jun 2017) | 4 lines
test_require.rb: filesystem encoding
* test/ruby/test_require.rb (assert_require_nonascii_path): the
path in error message is converted to filesystem encoding.
------------------------------------------------------------------------
r58996 | nobu | 2017-06-02 12:54:19 +0900 (Fri, 02 Jun 2017) | 4 lines
file.c: preserve encoding
* file.c (rb_find_file_safe): preserve encoding of path in
SecurityError messages.
------------------------------------------------------------------------
r58995 | eregon | 2017-06-02 02:26:12 +0900 (Fri, 02 Jun 2017) | 1 line
Fix DRb.start_service to use any available port
------------------------------------------------------------------------
r58994 | eregon | 2017-06-02 02:26:00 +0900 (Fri, 02 Jun 2017) | 4 lines
Remove bad spec which cannot behave nicely in a multi-process environment
* A system port might be taken by another process at any time.
* There are no useful expectations in this spec.
------------------------------------------------------------------------
r58993 | eregon | 2017-06-02 02:25:48 +0900 (Fri, 02 Jun 2017) | 1 line
Remove empty files in drb specs
------------------------------------------------------------------------
r58992 | eregon | 2017-06-02 02:08:59 +0900 (Fri, 02 Jun 2017) | 3 lines
Create the file in the File::TMPFILE spec in its own directory
* Avoids failing the spec if rubyspec_temp is not empty.
------------------------------------------------------------------------
r58991 | eregon | 2017-06-02 02:08:47 +0900 (Fri, 02 Jun 2017) | 4 lines
Open files in binary modes for copying in MSpec's #cp
* See https://bugs.ruby-lang.org/issues/13570.
* Found by MSP-Greg (Greg L).
------------------------------------------------------------------------
r58990 | ko1 | 2017-06-02 00:18:51 +0900 (Fri, 02 Jun 2017) | 5 lines
make Dir object WB protected.
* dir.c (dir_data_type): set RUBY_TYPED_WB_PROTECTED.
Insert WBs for dir_data::path.
------------------------------------------------------------------------
r58989 | svn | 2017-06-02 00:12:15 +0900 (Fri, 02 Jun 2017) | 1 line
* 2017-06-02
------------------------------------------------------------------------
r58988 | ko1 | 2017-06-02 00:12:14 +0900 (Fri, 02 Jun 2017) | 5 lines
make Binding object WB protected.
* proc.c (ruby_binding_data_type): set RUBY_TYPED_WB_PROTECTED.
Insert write barriers (WBs) to all of writes.
------------------------------------------------------------------------
r58987 | nobu | 2017-06-01 22:05:54 +0900 (Thu, 01 Jun 2017) | 4 lines
load.c: convert by rb_get_path_check
* load.c (rb_require_internal): convert to path name with the
given safe level, without setting global safe level.
------------------------------------------------------------------------
r58986 | nobu | 2017-06-01 21:58:02 +0900 (Thu, 01 Jun 2017) | 1 line
file.c: rb_check_funcall_default for fallback value
------------------------------------------------------------------------
r58985 | nobu | 2017-06-01 17:02:41 +0900 (Thu, 01 Jun 2017) | 7 lines
vm_eval.c: fix rb_check_funcall_default
* vm_eval.c (check_funcall_missing): revert r58984. should call
method_missing if respond_to_missing is not redefined.
* vm_eval.c (rb_check_funcall_default): return the default value
if respond_to_missing and method_missing are not defined.
------------------------------------------------------------------------
r58984 | nobu | 2017-06-01 16:46:22 +0900 (Thu, 01 Jun 2017) | 4 lines
vm_eval.c: fix for rb_check_funcall_default
* vm_eval.c (check_funcall_missing): basic_obj_respond_to_missing
returns Qundef if respond_to_missing is not redefined.
------------------------------------------------------------------------
r58983 | ko1 | 2017-06-01 13:48:05 +0900 (Thu, 01 Jun 2017) | 1 line
fix failure on r58981
------------------------------------------------------------------------
r58982 | nobu | 2017-06-01 13:43:03 +0900 (Thu, 01 Jun 2017) | 4 lines
debug.c: more enums
* debug.c (ruby_dummy_gdb_enums): add enums for RObject, RModule,
RString, RArray.
------------------------------------------------------------------------
r58981 | duerst | 2017-06-01 13:38:03 +0900 (Thu, 01 Jun 2017) | 5 lines
improve English for a warning message
On DOSish systems, there is a warning message for \r\n line endings on shebang line.
Improve this message from "shebang line ends with \r may cause a problem"
to "shebang line ending with \r may cause problems".
------------------------------------------------------------------------
r58980 | svn | 2017-06-01 09:05:35 +0900 (Thu, 01 Jun 2017) | 1 line
* 2017-06-01
------------------------------------------------------------------------
r58979 | ko1 | 2017-06-01 09:05:33 +0900 (Thu, 01 Jun 2017) | 27 lines
rename absolute_path to realpath internally and introduce pathobj.
* vm_core.h: rename absolute_path to realpath because it is expected name.
external APIs (#absolute_path methods) are remained.
* vm_core.h: remove rb_iseq_location_struct::path and
rb_iseq_location_struct::absolute_path and introduce pathobj.
if given path equals to given absolute_path (and most of case
it is true), pathobj is simply given path String. If it is not same,
pathobj is Array and pathobj[0] is path and pathobj[1] is realpath.
This size optimization reduce 8 bytes and
sizeof(struct rb_iseq_constant_body) is 200 bytes -> 192 bytes
on 64bit CPU.
To support this change, the following functions are introduced:
* pathobj_path() (defined in vm_core.h)
* pathobj_realpath() (ditto)
* rb_iseq_path() (decl. in vm_core.h)
* rb_iseq_realpath() (ditto)
* rb_iseq_pathobj_new() (ditto)
* rb_iseq_pathobj_set() (ditto)
* vm_core.h (rb_binding_t): use pathobj instead of path. If binding
is given at eval methods, realpath (absolute_path) was caller's
realpath. However, they should use binding's realpath.
------------------------------------------------------------------------
r58978 | watson1978 | 2017-05-31 21:30:57 +0900 (Wed, 31 May 2017) | 50 lines
Improve performance of implicit type conversion
To convert the object implicitly, it has had two parts in convert_type() which are
1. lookink up the method's id
2. calling the method
Seems that strncmp() and strcmp() in convert_type() are slightly heavy to look up
the method's id for type conversion.
This patch will add and use internal APIs (rb_convert_type_with_id, rb_check_convert_type_with_id)
to call the method without looking up the method's id when convert the object.
Array#flatten -> 19 % up
Array#+ -> 3 % up
[ruby-dev:50024] [Bug #13341] [Fix GH-1537]
### Before
Array#flatten 104.119k ({U+00B1} 1.1%) i/s - 525.690k in 5.049517s
Array#+ 1.993M ({U+00B1} 1.8%) i/s - 10.010M in 5.024258s
### After
Array#flatten 124.005k ({U+00B1} 1.0%) i/s - 624.240k in 5.034477s
Array#+ 2.058M ({U+00B1} 4.8%) i/s - 10.302M in 5.019328s
### Test Code
require 'benchmark/ips'
class Foo
def to_ary
[1,2,3]
end
end
Benchmark.ips do |x|
ary = []
100.times { |i| ary << i }
array = [ary]
x.report "Array#flatten" do |i|
i.times { array.flatten }
end
x.report "Array#+" do |i|
obj = Foo.new
i.times { array + obj }
end
end
------------------------------------------------------------------------
r58977 | ko1 | 2017-05-31 15:46:57 +0900 (Wed, 31 May 2017) | 9 lines
add debug counters for local variable (lavr) access.
* debug_counter.h: add the following counters:
* lvar_get: counter for lvar get.
* lvar_get_dynamic: counter for lvar get from upper frames.
* lvar_set: coutner for lvar set.
* lvar_set_dynamic: coutner for lvar set from upper frames.
* lvar_set_slowpath: counter for lavr set using slowpath.
------------------------------------------------------------------------
r58976 | nobu | 2017-05-31 15:40:49 +0900 (Wed, 31 May 2017) | 4 lines
Makefile.sub: set ENABLE_SHARED [ci skip]
* win32/Makefile.sub (LIBRUBY_LDSHARED): mswin build always
enables shared.
------------------------------------------------------------------------
r58975 | nobu | 2017-05-31 15:03:13 +0900 (Wed, 31 May 2017) | 3 lines
common.mk: lldb [ci skip]
* common.mk (lldb, lldb-ruby): add targets to debug with lldb.
------------------------------------------------------------------------
r58974 | nobu | 2017-05-31 11:42:10 +0900 (Wed, 31 May 2017) | 4 lines
lldb_cruby.py: eval outside frames
* misc/lldb_cruby.py (lldb_rp): evaluate without frames when no
process is running, and show error messages.
------------------------------------------------------------------------
r58973 | svn | 2017-05-31 03:17:56 +0900 (Wed, 31 May 2017) | 1 line
* 2017-05-31
------------------------------------------------------------------------
r58972 | stomar | 2017-05-31 03:17:55 +0900 (Wed, 31 May 2017) | 8 lines
object.c: improve docs
* object.c: [DOC] add an example for Object#yield_self that
better illustrates its purpose; other small improvements.
Reported by Vitaly Tatarintsev (ck3g). Patch by Marcus Stollsteimer.
[Fix GH-1637]
* object.c: [DOC] improve docs for Object#{itself,tap}.
------------------------------------------------------------------------
r58971 | nobu | 2017-05-30 22:12:22 +0900 (Tue, 30 May 2017) | 7 lines
enum.c: check if reentered
* enum.c (cmpint_reenter_check): extract from nmin_cmp and
nmin_block_cmp.
* enum.c (nmin_cmp): check if reentered before rb_cmpint.
[Feature #13437]
------------------------------------------------------------------------
r58970 | nobu | 2017-05-30 21:47:58 +0900 (Tue, 30 May 2017) | 1 line
enum.c: rb_check_funcall_default for fallback value
------------------------------------------------------------------------
r58969 | nobu | 2017-05-30 20:59:26 +0900 (Tue, 30 May 2017) | 1 line
test_rubyoptions.rb: ruby-runner sets $0 to install name now
------------------------------------------------------------------------
r58968 | watson1978 | 2017-05-30 18:00:56 +0900 (Tue, 30 May 2017) | 68 lines
Improve performance of Enumerable#{sort_by,min_by,max_by,minmax_by}
This is totally same approach with r58964.
enum.c (sort_by_cmp): use OPTIMIZED_CMP() to compare the objects instead of
`<=>' method dispatching for Fixnum/Float/String object.
enum.c (nmin_cmp): ditto.
enum.c (min_by_i): ditto.
enum.c (max_by_i): ditto.
enum.c (minmax_by_i_update): ditto.
enum.c (minmax_by_i): ditto.
Enumerable#sort_by -> 51 % up
Enumerable#min_by(n) -> 34 % up
Enumerable#min_by -> 37 % up
Enumerable#max_by(n) -> 61 % up
Enumerable#max_by -> 40 % up
Enumerable#minmax_by -> 67 % up
[ruby-core:80689] [Bug #13437] [Fix GH-1584]
### Before
Enumerable#sort_by 5.692k ({U+00B1} 2.2%) i/s - 28.611k in 5.028861s
Enumerable#min_by(n) 8.496k ({U+00B1} 0.5%) i/s - 43.146k in 5.078394s
Enumerable#min_by 8.678k ({U+00B1} 0.5%) i/s - 43.911k in 5.060128s
Enumerable#max_by(n) 3.306k ({U+00B1} 3.0%) i/s - 16.562k in 5.014727s
Enumerable#max_by 8.322k ({U+00B1} 2.8%) i/s - 42.400k in 5.099400s
Enumerable#minmax_by 6.769k ({U+00B1} 2.6%) i/s - 34.100k in 5.041354s
### After
Enumerable#sort_by 8.591k ({U+00B1} 3.0%) i/s - 43.316k in 5.046836s
Enumerable#min_by(n) 11.489k ({U+00B1} 1.2%) i/s - 57.732k in 5.025504s
Enumerable#min_by 11.835k ({U+00B1} 2.7%) i/s - 60.150k in 5.086450s
Enumerable#max_by(n) 5.322k ({U+00B1} 1.1%) i/s - 26.650k in 5.008289s
Enumerable#max_by 11.705k ({U+00B1} 0.6%) i/s - 59.262k in 5.062997s
Enumerable#minmax_by 11.323k ({U+00B1} 1.3%) i/s - 57.018k in 5.036565s
### Test code
require 'benchmark/ips'
Benchmark.ips do |x|
enum = (1..1000).to_a.to_enum
x.report "Enumerable#sort_by" do
enum.sort_by { |a| a }
end
x.report "Enumerable#min_by(n)" do
enum.min_by(2) { |a| a }
end
x.report "Enumerable#min_by" do
enum.min_by { |a| a }
end
x.report "Enumerable#max_by(n)" do
enum.max_by(2) { |a| a }
end
x.report "Enumerable#max_by" do
enum.max_by { |a| a }
end
x.report "Enumerable#minmax_by" do
enum.minmax_by { |a| a }
end
end
------------------------------------------------------------------------
r58967 | ko1 | 2017-05-30 16:05:58 +0900 (Tue, 30 May 2017) | 4 lines
add parameter names.
* vm_core.h: add parameter names for rb_iseq_new*.
------------------------------------------------------------------------
r58966 | naruse | 2017-05-30 15:50:35 +0900 (Tue, 30 May 2017) | 3 lines
Solaris 10 x86 raseis SEGV
http://rubyci.s3.amazonaws.com/unstable10x/ruby-trunk/log/20170527T221806Z.diff.html.gz
------------------------------------------------------------------------
r58965 | duerst | 2017-05-30 14:43:41 +0900 (Tue, 30 May 2017) | 5 lines
Change max byte length of UTF-8 to 4 bytes
In enc/utf_8.c, change maximum byte length of UTF-8 to 4 bytes (from 6)
to conform to definition of UTF-8. This closes issue #13590.
(This is a retry of r58954, after issue #13590 has been addressed.)
------------------------------------------------------------------------
r58964 | watson1978 | 2017-05-30 11:57:33 +0900 (Tue, 30 May 2017) | 32 lines
Improve performance of Range#{min,max}
range.c (range_min): use OPTIMIZED_CMP() to compare the objects instead of
`<=>' method dispatching for Fixnum/Float/String object inside Range object.
range.c (range_max): ditto.
Range#min -> 34 % up
Range#max -> 44 % up
[ruby-core:80713] [Bug #13443] [Fix GH-1585]
### Before
Range#min 8.428M ({U+00B1} 1.3%) i/s - 42.141M in 5.000952s
Range#max 8.157M ({U+00B1} 1.3%) i/s - 40.852M in 5.009297s
### After
Range#min 11.269M ({U+00B1} 1.2%) i/s - 56.388M in 5.004611s
Range#max 11.764M ({U+00B1} 1.3%) i/s - 58.856M in 5.003820s
### Test code
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "Range#min" do |i|
i.times { (1..100).min }
end
x.report "Range#max" do |i|
i.times { (1..100).max }
end
end
------------------------------------------------------------------------
r58963 | svn | 2017-05-30 02:56:47 +0900 (Tue, 30 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58962 | eregon | 2017-05-30 02:56:46 +0900 (Tue, 30 May 2017) | 1 line
Clean up a bit the Process.setpriority specs
------------------------------------------------------------------------
r58961 | eregon | 2017-05-30 02:56:34 +0900 (Tue, 30 May 2017) | 1 line
Enable Process.setpriority for a single process on more platforms.
------------------------------------------------------------------------
r58960 | svn | 2017-05-30 00:34:46 +0900 (Tue, 30 May 2017) | 1 line
* 2017-05-30
------------------------------------------------------------------------
r58959 | nobu | 2017-05-30 00:34:45 +0900 (Tue, 30 May 2017) | 1 line
Run in separate process/pgrp [Bug #13609]
------------------------------------------------------------------------
r58958 | eregon | 2017-05-29 20:19:42 +0900 (Mon, 29 May 2017) | 1 line
Simplify, avoid extra exceptions and add test for concurrent mspec mkdir_p
------------------------------------------------------------------------
r58957 | k0kubun | 2017-05-29 19:53:54 +0900 (Mon, 29 May 2017) | 8 lines
rubyspec: Fix method redefinition warning
ruby/spec/rubyspec/library/erb/run_spec.rb:63: warning: method redefined; discarding old main
ruby/spec/rubyspec/library/erb/result_spec.rb:53: warning: previous definition of main was here
ruby/spec/rubyspec/library/erb/run_spec.rb:76: warning: method redefined; discarding old main1
ruby/spec/rubyspec/library/erb/result_spec.rb:67: warning: previous definition of main1 was here
ruby/spec/rubyspec/library/erb/run_spec.rb:81: warning: method redefined; discarding old main2
ruby/spec/rubyspec/library/erb/result_spec.rb:72: warning: previous definition of main2 was here
------------------------------------------------------------------------
r58956 | k0kubun | 2017-05-29 19:22:47 +0900 (Mon, 29 May 2017) | 3 lines
test/erb/test_erb.rb: Fix unused variable warning
ruby/test/erb/test_erb.rb:575: warning: assigned but unused variable - foo
------------------------------------------------------------------------
r58955 | duerst | 2017-05-29 17:59:41 +0900 (Mon, 29 May 2017) | 5 lines
revert r58954 temporarily
Revert change to maximum of 4 bytes for UTF-8 characters at r58954 temporarily.
This failed spec at https://travis-ci.org/ruby/ruby/builds/237086017, but it
is totally unclear why.
------------------------------------------------------------------------
r58954 | duerst | 2017-05-29 17:41:23 +0900 (Mon, 29 May 2017) | 4 lines
Change max byte length of UTF-8 to 4 bytes
In enc/utf_8.c, change maximum byte length of UTF-8 to 4 bytes (from 6)
to conform to definition of UTF-8. This closes issue #13590.
------------------------------------------------------------------------
r58953 | nobu | 2017-05-29 16:03:11 +0900 (Mon, 29 May 2017) | 4 lines
fix up r58952
* spec/mspec/lib/mspec/helpers/fs.rb (Object#mkdir_p): rescue
File.stat when the target does not exist.
------------------------------------------------------------------------
r58952 | nobu | 2017-05-29 15:53:05 +0900 (Mon, 29 May 2017) | 4 lines
fix race condition
* spec/mspec/lib/mspec/helpers/fs.rb (Object#mkdir_p): fix race
condition when multi_exec.
------------------------------------------------------------------------
r58951 | nobu | 2017-05-29 15:39:42 +0900 (Mon, 29 May 2017) | 1 line
tool/runruby.rb: exec ruby-runner
------------------------------------------------------------------------
r58950 | nobu | 2017-05-29 15:39:41 +0900 (Mon, 29 May 2017) | 1 line
ruby-runner.c: replace argv[0]
------------------------------------------------------------------------
r58949 | nobu | 2017-05-29 14:19:51 +0900 (Mon, 29 May 2017) | 5 lines
default.mspec: remove useless flags
* spec/default.mspec: removed -I options for useless or non-
existent paths from flags. there is no library scripts and .ext
directory in the source directory.
------------------------------------------------------------------------
r58948 | naruse | 2017-05-29 01:41:31 +0900 (Mon, 29 May 2017) | 4 lines
suppress warning: ambiguous first argument; put parentheses or a space even after `-' operator
Introduced at r58905
http://rubyci.s3.amazonaws.com/ubuntu/ruby-trunk/log/20170526T153003Z.diff.html.gz
------------------------------------------------------------------------
r58947 | naruse | 2017-05-29 01:40:12 +0900 (Mon, 29 May 2017) | 3 lines
Revert "Update to ruby/spec@2a047c8"
This reverts commit 2531a1013b56a030f99ea4c2ee36e66dbf38a855.
------------------------------------------------------------------------
r58946 | svn | 2017-05-29 01:29:05 +0900 (Mon, 29 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58945 | svn | 2017-05-29 01:29:05 +0900 (Mon, 29 May 2017) | 1 line
* 2017-05-29
------------------------------------------------------------------------
r58944 | naruse | 2017-05-29 01:29:04 +0900 (Mon, 29 May 2017) | 8 lines
Revert r58939 and r58942
This reverts following commits because it breaks mswinci
* Update to ruby/spec@2a047c8
* Update to ruby/spec@ca32ae2
see also the result:
http://rubyci.org/logs/mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/log/20170528T140014Z.fail.html.gz
------------------------------------------------------------------------
r58943 | nobu | 2017-05-28 23:17:25 +0900 (Sun, 28 May 2017) | 4 lines
lldb_cruby.py: constants from the target
* misc/lldb_cruby.py (lldb_init): get constants from
ruby_dummy_gdb_enums in the target.
------------------------------------------------------------------------
r58942 | eregon | 2017-05-28 21:02:08 +0900 (Sun, 28 May 2017) | 1 line
Update to ruby/spec@ca32ae2
------------------------------------------------------------------------
r58941 | svn | 2017-05-28 20:30:57 +0900 (Sun, 28 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58940 | eregon | 2017-05-28 20:30:55 +0900 (Sun, 28 May 2017) | 1 line
Add tool to pull latest mspec/spec when commits have been synchronized
------------------------------------------------------------------------
r58939 | eregon | 2017-05-28 20:30:42 +0900 (Sun, 28 May 2017) | 1 line
Update to ruby/spec@2a047c8
------------------------------------------------------------------------
r58938 | nobu | 2017-05-28 18:49:30 +0900 (Sun, 28 May 2017) | 4 lines
ruby.c: file in load_file argument
* ruby.c (load_file): move opened file to an argument, to reduce
open/close calls in the near future.
------------------------------------------------------------------------
r58937 | nobu | 2017-05-28 18:49:29 +0900 (Sun, 28 May 2017) | 5 lines
ruby.c: shrink ruby_cmdline_options_t
* ruby.c (ruby_cmdline_options_t): reordered members and turned
simple flags into bit fields to reduce the size (136->104 on
LP64).
------------------------------------------------------------------------
r58936 | normal | 2017-05-28 14:39:29 +0900 (Sun, 28 May 2017) | 14 lines
test/ruby/test_io.rb: adjust CPU usage check to 10%
I miscalculated for r58934, since we sleep 100ms, and
the worst possible case is 100 Hz in the kernel meaning
we only have 10ms resolution. So, we need to increase
our CPU percentage to >= 10% for this.
This should be more than enough for our CI machines which
have 300 Hz kernels [ruby-core:81429]:
http://ci.rvm.jp/results/trunk-test@sasada-8core/1495942555
* test/ruby/test_io.rb (test_copy_stream_no_busy_wait):
override default percentage
------------------------------------------------------------------------
r58935 | k0kubun | 2017-05-28 10:48:11 +0900 (Sun, 28 May 2017) | 44 lines
process.c: Use getrusage(2) in Process.times
if getrusage(2) is available, to improve precision of Process.times and
its user like lib/benchmark.rb.
On macOS, since getrusage(2) has better precision than times(3),
they are much improved like:
* Before
Process.times
=> #<struct Process::Tms utime=0.56, stime=0.35, cutime=0.04, cstime=0.03>
puts Benchmark.measure { "a" * 1_000_000_000 }
0.340000 0.310000 0.650000 ( 0.674025)
* After
Process.times
=> #<struct Process::Tms utime=0.561899, stime=0.35076, cutime=0.046483, cstime=0.038929>
puts Benchmark.measure { "a" * 1_000_000_000 }
0.343223 0.310037 0.653260 ( 0.674025)
On Linux, since struct rusage from getrusage(2) is used instead of struct tms
from times(2), they are slightly improved like:
* Before
Process.times
=> #<struct Process::Tms utime=0.43, stime=0.11, cutime=0.0, cstime=0.0>
puts Benchmark.measure { "a" * 1_000_000_000 }
0.120000 0.040000 0.170000 ( 0.171621)
* After
Process.times
=> #<struct Process::Tms utime=0.432, stime=0.116, cutime=0.0, cstime=0.0>
puts Benchmark.measure { "a" * 1_000_000_000 }
0.124000 0.048000 0.172000 ( 0.171621)
[ruby-dev:49471] [Feature #11952]
------------------------------------------------------------------------
r58934 | normal | 2017-05-28 10:43:38 +0900 (Sun, 28 May 2017) | 11 lines
tests: increase CPU percentage threshold for assert_cpu_usage_low
When sleeping for the tick rate of 100ms (defined in
thread_pthread.c) as we do in test/ruby/test_io.rb
(test_copy_stream_no_busy_wait), it may not be possible to
measure with <= 10ms resolution on 100HZ systems (CONFIG_HZ in
the Linux kernel). So increase the threshold to 15ms (10ms +
5ms slack for slow systems).
* test/lib/test/unit/assertions.rb (assert_cpu_usage_low):
increase pct default value [ruby-core:81427]
------------------------------------------------------------------------
r58933 | svn | 2017-05-28 06:55:03 +0900 (Sun, 28 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58932 | svn | 2017-05-28 06:55:03 +0900 (Sun, 28 May 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r58931 | eregon | 2017-05-28 06:55:02 +0900 (Sun, 28 May 2017) | 1 line
Update to ruby/spec@2795010
------------------------------------------------------------------------
r58930 | eregon | 2017-05-28 06:54:38 +0900 (Sun, 28 May 2017) | 1 line
Update to ruby/mspec@6c95759
------------------------------------------------------------------------
r58929 | svn | 2017-05-28 02:04:32 +0900 (Sun, 28 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58928 | svn | 2017-05-28 02:04:32 +0900 (Sun, 28 May 2017) | 1 line
* 2017-05-28
------------------------------------------------------------------------
r58927 | naruse | 2017-05-28 02:04:31 +0900 (Sun, 28 May 2017) | 1 line
Initial commit of LLDB port of debug utility
------------------------------------------------------------------------
r58926 | k0kubun | 2017-05-27 22:54:09 +0900 (Sat, 27 May 2017) | 3 lines
bootstraptest/test_insns.rb: Fix typo
on test message. "torexp" insn does not exist.
------------------------------------------------------------------------
r58925 | normal | 2017-05-27 17:26:47 +0900 (Sat, 27 May 2017) | 13 lines
rb_wait_for_single_fd: do not OOM or segfault with invalid FD on select()
Instead, match the poll() implementation used on Linux for now;
as the Linux poll(2) manpage describes using negative FD to
easily ignore an FD in a larger FD set while (sleeping the given
timeout). I'm not entirely sure if matching poll() behavior
is a good idea for a single FD, but it's better than segfaulting
or NoMemoryError.
* thread.c (init_set_fd): ignore negative FD
* test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb
(test_wait_for_invalid_fd): check values which may trigger
segfaults or OOM
------------------------------------------------------------------------
r58924 | normal | 2017-05-27 16:23:02 +0900 (Sat, 27 May 2017) | 8 lines
test for IO.copy_stream CPU usage (r58534)
I'm likely to make similar mistakes in the future when working
on Fiber auto-scheduling. Start adding assertions for existing
code, first.
* test/ruby/test_io.rb (test_copy_stream_no_busy_wait): added
* test/lib/test/unit/assertions.rb (assert_cpu_usage_low): added
------------------------------------------------------------------------
r58923 | normal | 2017-05-27 16:18:52 +0900 (Sat, 27 May 2017) | 4 lines
Revert "common: "test-all" depends on "exts" target"
This reverts r58919.
Apparently skipping exts is intentional since r58759
------------------------------------------------------------------------
r58922 | watson1978 | 2017-05-27 14:41:02 +0900 (Sat, 27 May 2017) | 67 lines
Improve performance of some Time & Rational methods
rational.c (i_gcd): replace GCD algorithm from Euclidean algorithm to Stein
algorithm (https://en.wikipedia.org/wiki/Binary_GCD_algorithm).
Some Time methods will call internal quov() function and it calls
Rational#quo -> f_muldiv() -> i_gcd() in rational.c
And some Rational methods also call i_gcd().
The implementation of Euclidean algorithm spent a long time at modulo
operation (ie "x = y % x;").
The Stein algorithm will replace with shift operation which is faster
than modulo.
Time#subsec -> 36 % up
Time#to_r -> 26 % up
Rational#+ -> 14 % up
Rational#- -> 15 % up
Rational#* -> 13 % up
[ruby-core:80843] [Bug #13503] [Fix GH-1596]
### Before
Time#subsec 2.142M ({U+00B1} 9.8%) i/s - 10.659M in 5.022659s
Time#to_r 2.003M ({U+00B1} 9.1%) i/s - 9.959M in 5.012445s
Rational#+ 3.843M ({U+00B1} 0.9%) i/s - 19.274M in 5.016254s
Rational#- 3.820M ({U+00B1} 1.3%) i/s - 19.149M in 5.014137s
Rational#* 5.198M ({U+00B1} 1.4%) i/s - 26.016M in 5.005664s
* After
Time#subsec 2.902M ({U+00B1} 2.9%) i/s - 14.505M in 5.001815s
Time#to_r 2.503M ({U+00B1} 4.8%) i/s - 12.512M in 5.011454s
Rational#+ 4.390M ({U+00B1} 1.2%) i/s - 22.001M in 5.012413s
Rational#- 4.391M ({U+00B1} 1.2%) i/s - 22.013M in 5.014584s
Rational#* 5.872M ({U+00B1} 2.2%) i/s - 29.369M in 5.003666s
* Test code
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "Time#subsec" do |t|
time = Time.now
t.times { time.subsec }
end
x.report "Time#to_r" do |t|
time = Time.now
t.times { time.to_r }
end
x.report "Rational#+" do |t|
rat1 = 1/2r
rat2 = 1/3r
t.times { rat1 + rat2 }
end
x.report "Rational#-" do |t|
rat1 = 1/3r
rat2 = 1/2r
t.times { rat1 - rat2 }
end
x.report "Rational#*" do |t|
rat1 = 1/3r
rat2 = 1/2r
t.times { rat1 * rat2 }
end
end
------------------------------------------------------------------------
r58921 | watson1978 | 2017-05-27 14:41:00 +0900 (Sat, 27 May 2017) | 51 lines
Improve performance of some Time methods
internal.h : add rb_numeric_quo() as internal API.
rational.c : rename numeric_quo() to rb_numeric_quo() as internal API.
time.c (quov): optimize by invoking rb_numeric_quo() to retrieve a value of
Numeric#quo instead of method dispatching via rb_funcall().
Time#subsec -> 7 % up
Time#- -> 26 % up
Time#to_f -> 30 % up
Time#to_r -> 7 % up
[ruby-core:80915] [Bug #13519] [Fix GH-1601]
### Before
Time#subsec 2.024M ({U+00B1} 8.7%) i/s - 10.062M in 5.009762s
Time#- 5.049M ({U+00B1} 4.7%) i/s - 25.186M in 5.002379s
Time#to_f 5.625M ({U+00B1} 4.2%) i/s - 28.066M in 5.000749s
Time#to_r 1.880M ({U+00B1} 9.7%) i/s - 9.361M in 5.027527s
### After
Time#subsec 2.155M ({U+00B1} 9.7%) i/s - 10.724M in 5.022579s
Time#- 6.362M ({U+00B1} 2.0%) i/s - 31.824M in 5.004625s
Time#to_f 7.287M ({U+00B1} 4.8%) i/s - 36.402M in 5.010983s
Time#to_r 2.020M ({U+00B1} 9.4%) i/s - 10.059M in 5.021852s
### Test code
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "Time#subsec" do |t|
time = Time.now
t.times { time.subsec }
end
x.report "Time#-" do |t|
time1 = Time.now
time2 = Time.now
t.times { time1 - time2 }
end
x.report "Time#to_f" do |t|
time = Time.now
t.times { time.to_f }
end
x.report "Time#to_r" do |t|
time = Time.now
t.times { time.to_r }
end
end
------------------------------------------------------------------------
r58920 | nobu | 2017-05-27 14:18:52 +0900 (Sat, 27 May 2017) | 1 line
.travis.yml: exts is not needed for tests here
------------------------------------------------------------------------
r58919 | normal | 2017-05-27 13:35:41 +0900 (Sat, 27 May 2017) | 8 lines
common: "test-all" depends on "exts" target
This allows me to test changes to ext/ more easily by only typing:
make test-all TESTS=/path/to/ext/test_foo.rb
I spent a few minutes wondering what was wrong before I realized
changes to exts were not taking effect.
------------------------------------------------------------------------
r58918 | nobu | 2017-05-27 12:43:02 +0900 (Sat, 27 May 2017) | 6 lines
mspec/commands/mspec.rb: formatter for multi_exec
* spec/mspec/lib/mspec/commands/mspec.rb (MSpecMain#multi_exec):
as multi_exec children must run with yaml formatter, append the
option for it after other options to override another formatter
option with a warning if it is given.
------------------------------------------------------------------------
r58917 | nobu | 2017-05-27 12:14:04 +0900 (Sat, 27 May 2017) | 1 line
.travis.yml: get number of processors at runtime
------------------------------------------------------------------------
r58916 | k0kubun | 2017-05-27 12:06:55 +0900 (Sat, 27 May 2017) | 12 lines
erb.rb: Use str_uplus instead of rb_str_dup
to skip unnecessary string allocation on frozen_string_literal: false.
str_uplus can bypass calling rb_str_dup when OBJ_FROZEN is true.
* Before
erb_render 1.064
* Afete
erb_render 0.909
------------------------------------------------------------------------
r58915 | k0kubun | 2017-05-27 11:47:11 +0900 (Sat, 27 May 2017) | 6 lines
benchmark: Rename to bm_erb_render.rb
from bm_app_erb_render.rb.
I'm told from ko1 that bm_app_* is namespace for Ruby applications,
not for ERB and we should use bm_erb_* for ERB benchmark instead.
------------------------------------------------------------------------
r58914 | ko1 | 2017-05-27 11:01:41 +0900 (Sat, 27 May 2017) | 1 line
apply timeout scale
------------------------------------------------------------------------
r58913 | nobu | 2017-05-27 10:26:31 +0900 (Sat, 27 May 2017) | 4 lines
numeric.c: fix for small number
* numeric.c (flo_floor, flo_ceil): should not return zero for small
number. [ruby-core:81394] [Bug #13599]
------------------------------------------------------------------------
r58912 | nobu | 2017-05-27 10:04:23 +0900 (Sat, 27 May 2017) | 4 lines
dir.c: fix FD leaks
* dir.c (do_opendir): close FD when fdopendir failed, e.g.,
ENOTDIR. [Feature#13056]
------------------------------------------------------------------------
r58911 | nobu | 2017-05-27 02:11:15 +0900 (Sat, 27 May 2017) | 3 lines
numeric.c: remove duplicate code
* numeric.c (flo_to_i): use dbl2ival and reduce duplicate code.
------------------------------------------------------------------------
r58910 | svn | 2017-05-27 02:10:03 +0900 (Sat, 27 May 2017) | 1 line
* 2017-05-27
------------------------------------------------------------------------
r58909 | watson1978 | 2017-05-27 02:10:01 +0900 (Sat, 27 May 2017) | 24 lines
Improve Array#concat performance if only one argument is given
* array.c (rb_ary_concat_multi): concatenate the array without generating
temporary Array object if only one argument is given.
This is very similar with r58886.
Array#concat will be faster around 19%.
[Fix GH-1634]
### Before
Array#concat 2.187M ({U+00B1} 3.5%) i/s - 10.926M in 5.002829s
### After
Array#concat 2.598M ({U+00B1} 1.8%) i/s - 13.008M in 5.008201s
### Test code
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "Array#concat" do |i|
other = [4]
i.times { [1, 2, 3].concat(other) }
end
end
------------------------------------------------------------------------
r58908 | k0kubun | 2017-05-26 23:17:55 +0900 (Fri, 26 May 2017) | 11 lines
erb.rb: Tiny improvement of compiling cost
by reducing string allocation.
* Before
app_erb 0.687
* After
app_erb 0.679
------------------------------------------------------------------------
r58907 | k0kubun | 2017-05-26 22:58:36 +0900 (Fri, 26 May 2017) | 3 lines
erb.rb: [DOC] Follow compiled code's change
introduced in r58905.
------------------------------------------------------------------------
r58906 | svn | 2017-05-26 22:49:36 +0900 (Fri, 26 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58905 | k0kubun | 2017-05-26 22:49:35 +0900 (Fri, 26 May 2017) | 34 lines
erb.rb: Generate static string with opt_str_uminus
to skip object allocation for static string.
We can't always enable frozen_string_literal pragma because we can't
freeze string literals embedded by user for backward compatibility.
So we need to use fstring for each static string.
Since adding ".freeze" to string literals in #content_dump is slow
on compiling, I used unary "-" operator instead.
benchmark/bm_app_erb_render.rb: Added rendering-only benchmark to
test rendering performance on production environment.
This benchmark is created to reproduce the behavior on Sinatra (Tilt).
Thus it doesn't use ERB#result to skip parsing compiled code.
It doesn't use ERB#def_method too to regard `title` and `content` as
local variables. If we use #def_method, `title` and `content` needs
to be method call. I wanted to avoid it.
This patch's benchmark results is:
* Before
app_erb_render 1.250
app_erb 0.704
* After
app_erb_render 1.066
app_erb 0.686
This patch optimizes rendering performance (app_erb_render) without
spoiling (total of rendering +) compiling performance (app_erb).
------------------------------------------------------------------------
r58904 | k0kubun | 2017-05-26 21:12:13 +0900 (Fri, 26 May 2017) | 80 lines
erb.rb: Use script encoding instead of force_encoding
The original intention of introducing `_erbout.force_encoding`
in r21170 was:
- "returns a string in the same character encoding as the input string."
- "When the input string has a magic comment, however, it returns a string
in the encoding specified by the magic comment."
And they are tested by test/erb/test_erb_m17n.rb well and this patch
passes the test.
Since magic comment is always added in ERB compiled code, using ''.dup
instead of String.new will set correct encoding without calling
force_encoding method.
The benchmark results are:
* Before
$ ./ruby benchmark/run.rb --matzruby=./ruby -m bm_app_erb
MatzRuby:
ruby 2.5.0dev (2017-05-26 skip-force-enc.. 58903) [x86_64-linux]
last_commit=Skip force_encoding in compiled code of erb
Ruby:
app_erb:
matz 0.715
* After
$ ./ruby benchmark/run.rb --matzruby=./ruby -m bm_app_erb
MatzRuby:
ruby 2.5.0dev (2017-05-26 skip-force-enc.. 58903) [x86_64-linux]
last_commit=Skip force_encoding in compiled code of erb
Ruby:
app_erb:
matz 0.672
And perf(1) results are:
* Before
$ sudo perf stat ./ruby benchmark/bm_app_erb.rb
Performance counter stats for './ruby benchmark/bm_app_erb.rb':
709.571746 task-clock (msec) # 1.000 CPUs utilized
5 context-switches # 0.007 K/sec
1 cpu-migrations # 0.001 K/sec
1,337 page-faults # 0.002 M/sec
3,088,936,521 cycles # 4.353 GHz
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
4,849,564,282 instructions # 1.57 insns per cycle
1,027,042,087 branches # 1447.411 M/sec
19,983,456 branch-misses # 1.95% of all branches
0.709747823 seconds time elapsed
* After
$ sudo perf stat ./ruby benchmark/bm_app_erb.rb
Performance counter stats for './ruby benchmark/bm_app_erb.rb':
693.494673 task-clock (msec) # 1.000 CPUs utilized
7 context-switches # 0.010 K/sec
1 cpu-migrations # 0.001 K/sec
1,316 page-faults # 0.002 M/sec
3,025,639,349 cycles # 4.363 GHz
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
4,694,848,271 instructions # 1.55 insns per cycle
994,496,704 branches # 1434.037 M/sec
19,693,239 branch-misses # 1.98% of all branches
0.693724345 seconds time elapsed
[fix GH-1147]
------------------------------------------------------------------------
r58903 | nobu | 2017-05-26 18:49:20 +0900 (Fri, 26 May 2017) | 4 lines
remove extra call to OleInitialize
[Fix GH-1629]
Signed-off-by: Matt Wrock <matt@mattwrock.com>
------------------------------------------------------------------------
r58902 | normal | 2017-05-26 16:28:23 +0900 (Fri, 26 May 2017) | 9 lines
attempt to fix rb_alloc_tmp_buffer2 for ALLOCV_N
This is a confusing function to my arithmetic-challenged mind,
but nobu seems alright with this. Anyways this lets me use
large values of elsize without segfaulting, and "make exam"
passes.
* include/ruby/ruby.h (rb_alloc_tmp_buffer2): attempt to fix
[ruby-core:81388] [ruby-core:81391] [Bug #13595]
------------------------------------------------------------------------
r58901 | nobu | 2017-05-26 16:04:43 +0900 (Fri, 26 May 2017) | 4 lines
dir.c: yield without base part
* dir.c (glob_helper): yield globbed part only without the base
directory path part if the base is given. [Feature#13056]
------------------------------------------------------------------------
r58900 | nobu | 2017-05-26 16:02:51 +0900 (Fri, 26 May 2017) | 5 lines
runruby.rb: no PRELOAD on multiarch [ci skip]
* tool/runruby.rb: do not set environment to preload on multiarch
platforms, otherwise other external commands (e.g., /bin/sh)
fail to run.
------------------------------------------------------------------------
r58899 | sonots | 2017-05-26 15:42:11 +0900 (Fri, 26 May 2017) | 2 lines
* lib/uri/common.rb: [DOC] add rdoc to describe
URI.unescape is obsolete [ci-skip] [fix GH-1630]
------------------------------------------------------------------------
r58898 | nobu | 2017-05-26 15:39:49 +0900 (Fri, 26 May 2017) | 4 lines
sprintf.c: remove redundant condition
* sprintf.c (rb_str_format): when `t + 1 == end` (or `t < end`),
`*t == '%'` is always true. [ruby-core:80153] [Bug #13315]
------------------------------------------------------------------------
r58897 | nobu | 2017-05-26 15:39:06 +0900 (Fri, 26 May 2017) | 1 line
string.c: adjust style [ci skip]
------------------------------------------------------------------------
r58896 | nobu | 2017-05-26 15:28:38 +0900 (Fri, 26 May 2017) | 7 lines
Symbol support for opt_eql_func too
* vm_insnhelper.c (comparable_by_identity): extract the condition
where comparable by identity. currently both are same types,
Fixnum, Flonum, or Symbol.
* vm_insnhelper.c (opt_eql_func): support Symbol too.
------------------------------------------------------------------------
r58895 | ko1 | 2017-05-26 14:26:57 +0900 (Fri, 26 May 2017) | 5 lines
Symbol support for opt_eq_func.
* vm_insnhelper.c (opt_eq_func): optimize for symbol comparison.
[Bug #13330] [fix GH-1540]
------------------------------------------------------------------------
r58894 | rhe | 2017-05-26 10:50:20 +0900 (Fri, 26 May 2017) | 4 lines
compile.c: fix possible use of uninitialized value
LABEL::unremovable added by r58810 is not initialized by
new_label_body(), making the optimization unstable.
------------------------------------------------------------------------
r58893 | ko1 | 2017-05-26 08:43:33 +0900 (Fri, 26 May 2017) | 7 lines
use timeout scale.
* test/lib/envutil.rb: introduce EnvUtil.apply_timeout_scale to use
this scale from outside.
* test/ruby/test_thread.rb (test_fork_in_thread): respect timeout scale.
------------------------------------------------------------------------
r58892 | k0kubun | 2017-05-26 00:43:49 +0900 (Fri, 26 May 2017) | 3 lines
NEWS: Add entry for ERB#result_with_hash
See r58891.
------------------------------------------------------------------------
r58891 | k0kubun | 2017-05-26 00:38:25 +0900 (Fri, 26 May 2017) | 3 lines
erb.rb: Add ERB#result_with_hash
[ruby-core:55985] [Feature #8631] [fix GH-1623]
------------------------------------------------------------------------
r58890 | eregon | 2017-05-26 00:33:28 +0900 (Fri, 26 May 2017) | 5 lines
Raise ArgumentError if sprintf format string ends with %
* Add tests and specs. See ruby/spec#401.
Patch by Yuta Iwama and Shintaro Morikawa.
[ruby-core:80153] [Bug #13315] [Fix GH-1560]
------------------------------------------------------------------------
r58889 | svn | 2017-05-26 00:14:39 +0900 (Fri, 26 May 2017) | 1 line
* 2017-05-26
------------------------------------------------------------------------
r58888 | stomar | 2017-05-26 00:14:38 +0900 (Fri, 26 May 2017) | 4 lines
hash.c: docs for Hash#transform_values
* hash.c: [DOC] fix return value in call-seq of Hash#transform_values;
other small fixes.
------------------------------------------------------------------------
r58887 | k0kubun | 2017-05-25 20:41:45 +0900 (Thu, 25 May 2017) | 3 lines
insns.def: [DOC] Fix description of tostring
rb_obj_as_string() calls not #to_str (idTo_str) but #to_s (idTo_s).
------------------------------------------------------------------------
r58886 | k0kubun | 2017-05-25 20:14:40 +0900 (Thu, 25 May 2017) | 31 lines
string.c: Optimize String#concat when argc is 1
Optimize performance regression introduced in r56021.
* Benchmark (i7-4790K @ 4.00GH, x86_64 GNU/Linux)
Benchmark.ips do |x|
x.report("String#concat (1)") { "a".concat("b") }
if RUBY_VERSION >= "2.4.0"
x.report("String#concat (2)") { "a".concat("b", "c") }
end
end
* Ruby 2.3
Calculating -------------------------------------
String#concat (1) 6.003M ({U+00B1} 5.2%) i/s - 30.122M in 5.031646s
* Ruby 2.4 (Before this patch)
Calculating -------------------------------------
String#concat (1) 4.458M ({U+00B1} 8.9%) i/s - 22.298M in 5.058084s
String#concat (2) 3.660M ({U+00B1} 5.6%) i/s - 18.314M in 5.020527s
* Ruby 2.4 (After this patch)
Calculating -------------------------------------
String#concat (1) 6.448M ({U+00B1} 5.2%) i/s - 32.215M in 5.010833s
String#concat (2) 3.633M ({U+00B1} 9.0%) i/s - 18.056M in 5.022603s
[fix GH-1631]
------------------------------------------------------------------------
r58885 | stomar | 2017-05-25 17:34:13 +0900 (Thu, 25 May 2017) | 4 lines
dir.c: document base keyword argument of Dir.glob
* dir.c: [DOC] document the new `base` keyword argument of Dir.glob
[Feature #13056]; also improve docs for Dir.glob and Dir[].
------------------------------------------------------------------------
r58884 | stomar | 2017-05-25 16:50:20 +0900 (Thu, 25 May 2017) | 3 lines
dir.c: docs for Dir.each_child and Dir.children
* dir.c: [DOC] fix examples for Dir.each_child and Dir.children.
------------------------------------------------------------------------
r58883 | nobu | 2017-05-25 16:36:47 +0900 (Thu, 25 May 2017) | 1 line
vm_insnhelper.c: remove redefinitions and undefine after used
------------------------------------------------------------------------
r58882 | nobu | 2017-05-25 14:29:35 +0900 (Thu, 25 May 2017) | 4 lines
vm_insnhelper.c: rb_eql_opt should call eql?
* vm_insnhelper.c (rb_eql_opt): should call #eql? on Float and
String, not #==.
------------------------------------------------------------------------
r58881 | watson1978 | 2017-05-25 13:25:39 +0900 (Thu, 25 May 2017) | 37 lines
Improve performance of rb_eql()
This improvement is similar with https://github.com/ruby/ruby/pull/1552
internal.h: add declaration of rb_eql_opt() API.
vm_insnhelper.c (rb_eql_opt): add rb_eql_opt() API which provides optimized
path for #eql? method such as rb_equal_opt().
object.c (rb_eql): optimize using rb_eql_opt() such as rb_equal().
Array#eql? and some methods have used rb_eql() and Array#eql? will be faster
around 20%.
[ruby-core:80761] [Bug #13447] [Fix GH-#1589]
### Before
user system total real
1.570000 0.000000 1.570000 ( 1.569754)
### After
user system total real
1.300000 0.000000 1.300000 ( 1.303624)
### Test code
require 'benchmark'
Benchmark.bmbm do |x|
ary1 = Array.new(1000) { rand(1000) }
ary2 = Array.new(1000) { rand(1000) }
x.report do
5000000.times do
ary1.eql?(ary2)
end
end
end
------------------------------------------------------------------------
r58880 | watson1978 | 2017-05-25 13:25:37 +0900 (Thu, 25 May 2017) | 62 lines
Improve performance of rb_equal()
* object.c (rb_equal): add optimized path to compare the objects using
rb_equal_opt(). Previously, if not same objects were given, rb_equal() would
call `==' method via rb_funcall() which took a long time.
rb_equal_opt() has provided faster comparing for Fixnum/Float/String objects.
Now, Time#eql? uses rb_equal() to compare with argument object and it will
be faster around 40% on 64-bit environment.
* array.c (rb_ary_index): remove redundant rb_equal_opt() calling.
Now, rb_equal() was optimized using rb_equal_opt().
If rb_equal_opt() returns Qundef, it will invoke rb_equal() -> rb_equal_opt(),
and it will cause the performance regression.
So, this patch will remove first redundant rb_equal_opt() calling.
* array.c (rb_ary_rindex): ditto.
* array.c (rb_ary_includes): ditto.
[ruby-core:80360] [Bug #13365] [Fix GH-#1552]
### Before
Time#eql? with other 7.309M ({U+00B1} 1.4%) i/s - 36.647M in 5.014964s
Array#index(val) 1.433M ({U+00B1} 1.2%) i/s - 7.207M in 5.030942s
Array#rindex(val) 1.418M ({U+00B1} 1.6%) i/s - 7.103M in 5.009164s
Array#include?(val) 1.451M ({U+00B1} 0.9%) i/s - 7.295M in 5.026392s
### After
Time#eql? with other 10.321M ({U+00B1} 1.9%) i/s - 51.684M in 5.009203s
Array#index(val) 1.474M ({U+00B1} 0.9%) i/s - 7.433M in 5.044384s
Array#rindex(val) 1.449M ({U+00B1} 1.7%) i/s - 7.292M in 5.034436s
Array#include?(val) 1.466M ({U+00B1} 1.7%) i/s - 7.373M in 5.030047s
### Test code
require 'benchmark/ips'
Benchmark.ips do |x|
t1 = Time.now
t2 = Time.now
x.report "Time#eql? with other" do |i|
i.times { t1.eql?(t2) }
end
# Benchmarks to check whether it didn't introduce the regression
obj = Object.new
x.report "Array#index(val)" do |i|
ary = [1, 2, true, false, obj]
i.times { ary.index(obj) }
end
x.report "Array#rindex(val)" do |i|
ary = [1, 2, true, false, obj].reverse
i.times { ary.rindex(obj) }
end
x.report "Array#include?(val)" do |i|
ary = [1, 2, true, false, obj]
i.times { ary.include?(obj) }
end
end
------------------------------------------------------------------------
r58879 | nobu | 2017-05-25 11:50:21 +0900 (Thu, 25 May 2017) | 5 lines
dir.c: Dir.each_child and Dir.children
* dir.c (dir_s_each_child, dir_s_children): Dir.each_child and
Dir.children which are similar to Dir.foreach and Dir.entries
respectively, except to exclude "." and "..". [Feature #11302]
------------------------------------------------------------------------
r58878 | nobu | 2017-05-25 11:50:20 +0900 (Thu, 25 May 2017) | 4 lines
test_dir.rb: test Dir.entries
* test/ruby/test_dir.rb (test_entries): test class singleton
method Dir.entries too.
------------------------------------------------------------------------
r58877 | nobu | 2017-05-25 10:46:36 +0900 (Thu, 25 May 2017) | 3 lines
dir.c: dir_each_entries
* dir.c (dir_each_entries): expand entries without method calls.
------------------------------------------------------------------------
r58876 | normal | 2017-05-25 06:26:14 +0900 (Thu, 25 May 2017) | 3 lines
string.c: fix String#crypt leak introduced in r58866
* string.c (rb_str_crypt): define LARGE_CRYPT_DATA when allocating
------------------------------------------------------------------------
r58875 | svn | 2017-05-25 03:59:25 +0900 (Thu, 25 May 2017) | 1 line
* 2017-05-25
------------------------------------------------------------------------
r58874 | normal | 2017-05-25 03:59:24 +0900 (Thu, 25 May 2017) | 14 lines
thread_pthread: retry timer thread creation w/o attr on EINVAL
Setting a small stack size can fail due to having 3rd-party
libraries (e.g. libkqueue) loaded, if those libraries use
thread-local-storage (__thread) heavily. This causes
pthread_create to fail with small stacks; even if our
timer_thread function does not hit any of the TLS-using code
paths.
Today, some RubyGems are capable of using libkqueue (or __thread
storage directly), and future versions of Ruby may use kqueue
internally.
cf. https://www.akkadia.org/drepper/tls.pdf
------------------------------------------------------------------------
r58873 | nobu | 2017-05-24 23:26:09 +0900 (Wed, 24 May 2017) | 4 lines
dir.c: prefer NAMLEN to d_name
* dir.c (glob_helper): prefer NAMLEN, do not assume d_name is NUL
terminated everywhere.
------------------------------------------------------------------------
r58872 | nobu | 2017-05-24 22:30:54 +0900 (Wed, 24 May 2017) | 4 lines
test_http.rb: fix r58855
* test/net/http/test_http.rb (test_s_start): git rid of error when
failed to start a connection.
------------------------------------------------------------------------
r58871 | nobu | 2017-05-24 17:00:42 +0900 (Wed, 24 May 2017) | 4 lines
enum.c: respect method visibility
* enum.c (ary_inject_op): should respect method visibility, do not
optimize uncallable method. [ruby-core:81349] [Bug #13592]
------------------------------------------------------------------------
r58870 | nobu | 2017-05-24 16:57:19 +0900 (Wed, 24 May 2017) | 4 lines
test_enum.rb: test_inject_array_op_redefined
* test/ruby/test_enum.rb (test_inject_array_op_redefined): test
other operators too. [Bug#12178]
------------------------------------------------------------------------
r58869 | nobu | 2017-05-24 16:57:18 +0900 (Wed, 24 May 2017) | 4 lines
assertions.rb: AllFailures#foreach
* test/lib/test/unit/assertions.rb (AllFailures#foreach):
shortcircuit for `each` and `AllFailures#for`.
------------------------------------------------------------------------
r58868 | nobu | 2017-05-24 16:11:41 +0900 (Wed, 24 May 2017) | 4 lines
duplicate method
* test/ruby/test_enum.rb (assert_float_equal): remove overridden
definition.
------------------------------------------------------------------------
r58867 | watson1978 | 2017-05-24 15:57:08 +0900 (Wed, 24 May 2017) | 65 lines
Improve performance in where push the element into non shared Array object
* array.c (ary_ensure_room_for_push): use rb_ary_modify_check() instead of
rb_ary_modify() to check whether the object can be modified for non shared
Array object. rb_ary_modify() has the codes for shared Array object too.
In here, it has condition branch for shared / non shared Array object and
it can use rb_ary_modify_check() which is smaller function than
rb_ary_modify() for non shared object.
rb_ary_modify_check() will be expand as inline function.
If it will compile with GCC, Array#<< will be faster around 8%.
[ruby-core:81082] [Bug #13553] [Fix GH-1609]
## Clang 802.0.42
### Before
Array#<< 9.353M ({U+00B1} 1.7%) i/s - 46.787M in 5.004123s
Array#push 7.702M ({U+00B1} 1.1%) i/s - 38.577M in 5.009338s
Array#values_at 6.133M ({U+00B1} 1.9%) i/s - 30.699M in 5.007772s
### After
Array#<< 9.458M ({U+00B1} 2.0%) i/s - 47.357M in 5.009069s
Array#push 7.921M ({U+00B1} 1.8%) i/s - 39.665M in 5.009151s
Array#values_at 6.377M ({U+00B1} 2.3%) i/s - 31.881M in 5.001888s
### Result
Array#<< -> 1.2% faster
Array#push -> 2.8% faster
Array#values_at -> 3.9% faster
## GCC 7.1.0
### Before
Array#<< 10.497M ({U+00B1} 1.1%) i/s - 52.665M in 5.017601s
Array#push 8.527M ({U+00B1} 1.6%) i/s - 42.777M in 5.018003s
Array#values_at 7.621M ({U+00B1} 1.7%) i/s - 38.152M in 5.007910s
### After
Array#<< 11.403M ({U+00B1} 1.3%) i/s - 57.028M in 5.001849s
Array#push 8.924M ({U+00B1} 1.3%) i/s - 44.609M in 4.999940s
Array#values_at 8.291M ({U+00B1} 1.4%) i/s - 41.487M in 5.004727s
### Result
Array#<< -> 8.3% faster
Array#push -> 4.3% faster
Array#values_at -> 8.7% faster
## Test code
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "Array#<<" do |i|
i.times { [1,2] << 3 }
end
x.report "Array#push" do |i|
i.times { [1,2].push(3) }
end
x.report "Array#values_at" do |i|
ary = [1, 2, 3, 4, 5]
i.times { ary.values_at(0, 2, 4) }
end
end
------------------------------------------------------------------------
r58866 | nobu | 2017-05-24 15:55:09 +0900 (Wed, 24 May 2017) | 4 lines
string.c: for small crypt_data
* string.c (rb_str_crypt): struct crypt_data defined in
missing/crypt.h is small enough.
------------------------------------------------------------------------
r58865 | ko1 | 2017-05-24 15:46:44 +0900 (Wed, 24 May 2017) | 14 lines
Add debug counters.
* debug_counter.h: add the following counters to measure object types.
obj_free: freed count
obj_str_ptr: freed count of Strings they have extra buff.
obj_str_embed: freed count of Strings they don't have extra buff.
obj_str_shared: freed count of Strings they have shared extra buff.
obj_str_nofree: freed count of Strings they are marked as nofree.
obj_str_fstr: freed count of Strings they are marked as fstr.
obj_ary_ptr: freed count of Arrays they have extra buff.
obj_ary_embed: freed count of Arrays they don't have extra buff.
obj_obj_ptr: freed count of Objects (T_OBJECT) they have extra buff.
obj_obj_embed: freed count of Objects they don't have extra buff.
------------------------------------------------------------------------
r58864 | normal | 2017-05-24 12:01:44 +0900 (Wed, 24 May 2017) | 4 lines
string.c (rb_str_crypt): fix excessive stack use with crypt_r
"struct crypt_data" is 131232 bytes on x86-64 GNU/Linux,
making it unsafe to use tiny Fiber stack sizes.
------------------------------------------------------------------------
r58863 | normal | 2017-05-24 09:34:12 +0900 (Wed, 24 May 2017) | 14 lines
rubyspec/core/io/popen_spec: avoid lingering "ruby -e sleep" process
The ruby_cmd helper blindly escapes code blocks passed to it,
causing "sleep" to be quoted in the command-line. This quoting
results in IO.popen using a subshell (/bin/sh) to run the given
string command instead of invoking the Ruby executable directly.
Thus, IO.popen would only see the PID of the subshell via
IO#pid, and merely sending SIGKILL to the subshell would not
result in the child ("ruby -e sleep") being killed.
This problem with lingering ruby processes was easier to
reproduce on slow or heavily-loaded systems using low-scheduling
priority (e.g. "chrt -i 0 make test-rubyspec")
------------------------------------------------------------------------
r58862 | svn | 2017-05-24 01:51:48 +0900 (Wed, 24 May 2017) | 1 line
* 2017-05-24
------------------------------------------------------------------------
r58861 | naruse | 2017-05-24 01:51:48 +0900 (Wed, 24 May 2017) | 5 lines
skip on Solaris 11
On Solaris 11, MSG_OOB is in readfds?
http://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11x/ruby-trunk/log/20170523T152403Z.fail.html.gz
http://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20170523T152503Z.fail.html.gz
------------------------------------------------------------------------
r58860 | nobu | 2017-05-23 23:34:12 +0900 (Tue, 23 May 2017) | 4 lines
Dir as base option
* dir.c (glob_helper): support Dir instance as `base` option.
[Feature#13056]
------------------------------------------------------------------------
r58859 | nobu | 2017-05-23 22:54:10 +0900 (Tue, 23 May 2017) | 4 lines
test_dir.rb: sort
* test/ruby/test_dir.rb (test_glob_base): sort the globbed result
to compare.
------------------------------------------------------------------------
r58858 | nobu | 2017-05-23 22:47:36 +0900 (Tue, 23 May 2017) | 4 lines
Dir.glob base option
* dir.c (dir_s_aref, dir_s_glob): add new optional keyword
argument, `base`. [Feature#13056]
------------------------------------------------------------------------
r58857 | nobu | 2017-05-23 22:18:45 +0900 (Tue, 23 May 2017) | 3 lines
readonly srcdir
.travis.yml: make srcdir unwritable during build and tests.
------------------------------------------------------------------------
r58856 | nobu | 2017-05-23 21:42:40 +0900 (Tue, 23 May 2017) | 3 lines
out-of-place on travis
* .travis.yml (before_script, script): out-of-place build.
------------------------------------------------------------------------
r58855 | nobu | 2017-05-23 21:38:01 +0900 (Tue, 23 May 2017) | 4 lines
fix FD leaks
* test/net/http/test_http.rb (test_s_start): finish connections to
get rid of FD leaks.
------------------------------------------------------------------------
r58854 | nobu | 2017-05-23 21:11:57 +0900 (Tue, 23 May 2017) | 3 lines
LABEL_FORMAT
* compile.c (LABEL_FORMAT): extract format string for labels.
------------------------------------------------------------------------
r58853 | nobu | 2017-05-23 20:35:54 +0900 (Tue, 23 May 2017) | 3 lines
unused member
* vsnprintf.c (__sFILE): _lbfsize is not used.
------------------------------------------------------------------------
r58852 | kou | 2017-05-23 15:02:20 +0900 (Tue, 23 May 2017) | 2 lines
Use test-unit 3.2.4
------------------------------------------------------------------------
r58851 | nobu | 2017-05-23 10:04:09 +0900 (Tue, 23 May 2017) | 3 lines
readonly srcdir
appveyor.yml: make srcdir unwritable during build and tests.
------------------------------------------------------------------------
r58850 | nobu | 2017-05-23 10:04:07 +0900 (Tue, 23 May 2017) | 1 line
appveyor.yml: remove unused UNICODE_DATA_DIR
------------------------------------------------------------------------
r58849 | svn | 2017-05-23 08:41:51 +0900 (Tue, 23 May 2017) | 1 line
* 2017-05-23
------------------------------------------------------------------------
r58848 | normal | 2017-05-23 08:41:50 +0900 (Tue, 23 May 2017) | 7 lines
variable.c (autoload_sleep_done): avoid needless list_node init
We do not need list_del_init in ensure callbacks, only list_del,
since it can only ever be called after list_del_init in
autoload_reset. So avoid the needless re-initialization.
* variable.c (autoload_sleep_done): s/list_del_init/list_del/
------------------------------------------------------------------------
r58847 | nobu | 2017-05-22 23:25:56 +0900 (Mon, 22 May 2017) | 1 line
source directory may not be writable
------------------------------------------------------------------------
r58846 | normal | 2017-05-22 16:36:00 +0900 (Mon, 22 May 2017) | 9 lines
lib/net/protocol.rb: account read_bytes before caller sees it
Users may modify the chunk yielded to them in Net::HTTPResponse#read_body.
This will allow users to reduce memory usage by calling
String#clear on the buffer once they're done using it.
* lib/net/protocol.rb (read): increment read_bytes earlier
(read_all): ditto
* test/net/http/test_httpresponse.rb (test_read_body_block_mod): new test
------------------------------------------------------------------------
r58845 | rhe | 2017-05-22 16:13:06 +0900 (Mon, 22 May 2017) | 4 lines
hash.c: [DOC] fix docs for Hash#transform_values!
Hash#transform_values! returns the receiver rather than a new Hash
object.
------------------------------------------------------------------------
r58844 | shugo | 2017-05-22 15:13:11 +0900 (Mon, 22 May 2017) | 4 lines
net/imap: separate @continuation_request_exception from @exception
Otherwise literal data will be sent even if NO response is returned
because @exception is set to nil in receive_responses.
------------------------------------------------------------------------
r58843 | nobu | 2017-05-22 13:10:51 +0900 (Mon, 22 May 2017) | 6 lines
downloader.rb: true symlink on cygwin
* tool/downloader.rb (Downloader.link_cache): on Cygwin, make true
symlink only, which is provided by the OS. as mingw/mswin ruby
can't follow cygwin's pseudo symlink, it will fail on the same
source tree.
------------------------------------------------------------------------
r58842 | k0kubun | 2017-05-22 12:56:16 +0900 (Mon, 22 May 2017) | 23 lines
erb.rb: Skip creating regexp
if stags and etags are not changed from default.
:putobject insn (of regexp) will be used instead of :toregexp insn.
This means that the regexp won't be compiled for every
`SimpleScanner#scan` call.
It may not be a good idea to apply this kind of optimization for all cases.
But I applied this because it is default scanner and used frequently and has
relatively large impact for benchmark like this:
* Before
app_erb 1.023
* After
app_erb 0.781
This commit fixes only the bottleneck of performance regression introduced
in r53412. For maintainability, I won't fix other small regressions like
additional overhead of method calls.
[ruby-core:73820] [Bug #12074]
------------------------------------------------------------------------
r58841 | nobu | 2017-05-22 12:18:17 +0900 (Mon, 22 May 2017) | 4 lines
fix r58833
* tool/downloader.rb (Downloader.download): just link to the cache
when downloaded to the cache but not the target file.
------------------------------------------------------------------------
r58840 | normal | 2017-05-22 08:52:08 +0900 (Mon, 22 May 2017) | 34 lines
lib/net/protocol: clear short-lived read buffer
Using a parallel Net::HTTP downloader, this reduced memory usage
from around 120MB to 50MB on my 32-bit x86 system.
* lib/net/protocol.rb (rbuf_fill): clear temporary buffer
Test script I used:
require 'net/http'
require 'uri'
require 'digest/sha1'
url = 'http://80x24.org/git-i-forgot-to-pack/objects/pack/pack-97b25a76c03b489d4cbbd85b12d0e1ad28717e55.idx'
uri = URI(url)
use_ssl = "https" == uri.scheme
thrs = 30.times.map do
Thread.start do
cur = Thread.current.object_id
Net::HTTP.start(uri.host, uri.port, use_ssl: use_ssl) do |http|
req = Net::HTTP::Get.new(uri)
http.request(req) do |res|
dig = Digest::SHA1.new
res.read_body do |buf|
dig.update(buf)
#buf.clear # most Ruby programmers don't do this :<
end
warn "#{Time.now} #{cur} #{dig.hexdigest}\n"
end
end
:done
end
end
p thrs.map(&:value)
------------------------------------------------------------------------
r58839 | stomar | 2017-05-22 04:31:37 +0900 (Mon, 22 May 2017) | 3 lines
String#casecmp no longer raises TypeError
* See https://bugs.ruby-lang.org/issues/13312
------------------------------------------------------------------------
r58838 | stomar | 2017-05-22 04:29:58 +0900 (Mon, 22 May 2017) | 1 line
NEWS: String#{casecmp,casecmp?} [Bug #13312]
------------------------------------------------------------------------
r58837 | stomar | 2017-05-22 04:28:48 +0900 (Mon, 22 May 2017) | 9 lines
string.c: fix String#{casecmp,casecmp?} for non-string arguments
* string.c: make String#{casecmp,casecmp?} return nil for
non-string arguments instead of raising a TypeError.
* test/ruby/test_string.rb: add tests.
Reported by Marcus Stollsteimer. Based on a patch by Shingo Morita.
[ruby-core:80145] [Bug #13312]
------------------------------------------------------------------------
r58836 | stomar | 2017-05-22 04:27:08 +0900 (Mon, 22 May 2017) | 4 lines
test_string.rb,test_symbol.rb: add some tests
* test/ruby/test_string.rb: add more test cases for String#casecmp.
* test/ruby/test_symbol.rb: ditto for Symbol#{casecmp,casecmp?}.
------------------------------------------------------------------------
r58835 | stomar | 2017-05-22 04:25:19 +0900 (Mon, 22 May 2017) | 1 line
Use should_receive expectation instead of singleton method
------------------------------------------------------------------------
r58834 | svn | 2017-05-22 01:45:36 +0900 (Mon, 22 May 2017) | 1 line
* 2017-05-22
------------------------------------------------------------------------
r58833 | nobu | 2017-05-22 01:45:35 +0900 (Mon, 22 May 2017) | 3 lines
downloader cache
* tool/downloader.rb (Downloader.download): manage download cache.
------------------------------------------------------------------------
r58832 | nobu | 2017-05-21 23:29:00 +0900 (Sun, 21 May 2017) | 1 line
remove verify option
------------------------------------------------------------------------
r58831 | nobu | 2017-05-21 17:30:50 +0900 (Sun, 21 May 2017) | 4 lines
downloader.rb: utilize dir argument
* tool/downloader.rb (Downloader::RubyGems.download): utilize
`dir` argument of Downloader.download.
------------------------------------------------------------------------
r58830 | kazu | 2017-05-21 16:13:11 +0900 (Sun, 21 May 2017) | 8 lines
Add missing word in transform_values methods description
Explicitly says that the methods return a new hash rather than just
stating it return a new something we don't know.
[ci skip]
[Fix GH-1619]
Author: Nicolas Cavigneaux <nico@bounga.org>
------------------------------------------------------------------------
r58829 | watson1978 | 2017-05-21 12:36:31 +0900 (Sun, 21 May 2017) | 42 lines
Improve Time#+ & Time#- performance
* time.c (wadd): use internal addv() function to calculate internal value in
Time object. On 64-bit machine, Time object might have Fixnum object
internally by default and addv() can calculate Fixnum objects directly.
* time.c (wsub): use internal subv() function due the same reason in above.
Time#+ & Time#- will be faster around 15%.
[ruby-dev:50036] [Bug #13357] [Fix GH-1547]
### Before
user system total real
Time#+ 0.820000 0.000000 0.820000 ( 0.818081)
Time#- 0.810000 0.000000 0.810000 ( 0.813835)
### After
user system total real
Time#+ 0.710000 0.000000 0.710000 ( 0.710241)
Time#- 0.710000 0.010000 0.720000 ( 0.714151)
### Test code
require 'benchmark'
Benchmark.bmbm do |x|
x.report "Time#+" do
t = Time.now
2000000.times do
t + 1
end
end
x.report "Time#-" do
t = Time.now
2000000.times do
t - 1
end
end
end
------------------------------------------------------------------------
r58828 | watson1978 | 2017-05-21 12:36:30 +0900 (Sun, 21 May 2017) | 48 lines
Improve Time#<=> performance
* time.c (wcmp): use internal cmp() function for comparing internal Fixnum value
in Time objects. On 64-bit machine, Time object might have Fixnum object
internally by default and cmp() can compare the Fixnum objects directly.
Time#<=> will be faster around 60% on 64-bit machine.
* time.c (cmp): add optimized path for comparing internal Bignum value by using
rb_big_cmp() API. On 32-bit machine, Time object might have Bignum object
internally by default.
Time#<=> will be faster around 50% on 32-bit machine.
[ruby-dev:50034] [Bug #13354] [Fix GH-1546]
### Before
user system total real
Fixnum 1.410000 0.000000 1.410000 ( 1.407848)
Bignum 1.550000 0.000000 1.550000 ( 1.549145)
### After
user system total real
Fixnum 0.880000 0.000000 0.880000 ( 0.886662)
Bignum 1.050000 0.000000 1.050000 ( 1.047994)
### Test code
require 'benchmark'
Benchmark.bmbm do |x|
x.report "Fixnum" do
t1 = Time.now
t2 = Time.now
10000000.times do
t1 <=> t2
end
end
x.report "Bignum" do
t1 = Time.at(2 ** 64)
t2 = Time.at(2 ** 64 + 1)
10000000.times do
t1 <=> t2
end
end
end
------------------------------------------------------------------------
r58827 | kazu | 2017-05-21 10:01:10 +0900 (Sun, 21 May 2017) | 4 lines
Remove redundant square brackets
Use character class directly instead of
character class in character class.
------------------------------------------------------------------------
r58826 | k0kubun | 2017-05-21 02:36:09 +0900 (Sun, 21 May 2017) | 3 lines
erb.rb: Allow trimming CR in all trim_modes
to unify a behavior with r58823 and r58825.
------------------------------------------------------------------------
r58825 | k0kubun | 2017-05-21 02:17:22 +0900 (Sun, 21 May 2017) | 5 lines
erb.rb: Allow explicit trimming carriage return
when trim_mode is "-", for Windows environments.
[ruby-core:39625] [Bug #5339]
------------------------------------------------------------------------
r58824 | k0kubun | 2017-05-21 02:03:01 +0900 (Sun, 21 May 2017) | 4 lines
doc/maintainers.rdoc: Add me to ERB maintainers
The current maintainer suggested this in ruby-dev:50113.
Please ping me if an issue happens in ERB.
------------------------------------------------------------------------
r58823 | k0kubun | 2017-05-21 01:50:33 +0900 (Sun, 21 May 2017) | 5 lines
erb.rb: Allow trimming carriage return
when trim_mode is "<>", for Windows environments.
[Bug #11464]
------------------------------------------------------------------------
r58822 | k0kubun | 2017-05-21 01:20:07 +0900 (Sun, 21 May 2017) | 3 lines
erb.rb: Prevent potential unexpected rescue
of LoadError in some method calls, not from `require "strscan"`.
------------------------------------------------------------------------
r58821 | svn | 2017-05-21 00:58:17 +0900 (Sun, 21 May 2017) | 1 line
* 2017-05-21
------------------------------------------------------------------------
r58820 | naruse | 2017-05-21 00:58:16 +0900 (Sun, 21 May 2017) | 1 line
Clean proxy
------------------------------------------------------------------------
r58819 | k0kubun | 2017-05-20 23:55:33 +0900 (Sat, 20 May 2017) | 9 lines
erb.rb: Drop unused scanner implementation
Original `SimpleScanner` was used only in tests.
Since `SimpleScanner` and `SimpleScanner2` work in the same way, I want
to drop the one which can't be used in a normal situation.
The only difference was `SimpleScanner` can be loaded without strscan
dependency but I think there's no situation that strscan is unavailable
because it's a standard library.
------------------------------------------------------------------------
r58818 | svn | 2017-05-20 22:00:42 +0900 (Sat, 20 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58817 | mame | 2017-05-20 22:00:41 +0900 (Sat, 20 May 2017) | 5 lines
Add coverage measurement mode by using gcov
This experimental feature is only for Ruby-core team, not for casual users.
Usage: `./configure --enable-gcov && make && make exam && make gcov`
------------------------------------------------------------------------
r58816 | mame | 2017-05-20 21:23:27 +0900 (Sat, 20 May 2017) | 5 lines
ripper.c should have `#line "ripper.c"`, not `#line "parse.c"`
The order of sed commands in Makefile of ripper was wrong: it tries to
replace `y.tab.c` with `ripper.c`, but before that, ytab.sed replaced
`y.tab.c` with `parse.c`, which led to a wrong result.
------------------------------------------------------------------------
r58815 | nobu | 2017-05-20 20:40:57 +0900 (Sat, 20 May 2017) | 4 lines
compile.c: optimize branches
* compile.c (compile_branch_condition, iseq_compile_each0):
eliminate unreachable branches in NODE_IF.
------------------------------------------------------------------------
r58814 | nobu | 2017-05-20 19:27:27 +0900 (Sat, 20 May 2017) | 5 lines
compile.c: binary logop check
* compile.c (compile_branch_condition): turn recursion at binary
logical operator into loop by goto, and check the result of RHS
of NODE_OR.
------------------------------------------------------------------------
r58813 | stomar | 2017-05-20 19:21:44 +0900 (Sat, 20 May 2017) | 5 lines
prime.rb: remove alias after timeout test
* test/test_prime.rb: remove alias after timeout test.
* lib/prime.rb: fix typo.
------------------------------------------------------------------------
r58812 | normal | 2017-05-20 18:47:14 +0900 (Sat, 20 May 2017) | 31 lines
speed up IO#close with many threads
Today, it increases IO#close performance with many threads:
Execution time (sec)
name trunk after
vm_thread_close 4.276 3.018
Speedup ratio: compare with the result of `trunk' (greater is better)
name after
vm_thread_close 1.417
This speedup comes because rb_notify_fd_close only scans threads
inside rb_thread_io_blocking_region, not all threads in the VM.
In the future, this type data structure may allow us to notify
waiters of multiple FDs on a single thread (when using
Fibers).
* thread.c (struct waiting_fd): declare
(rb_thread_io_blocking_region): use on-stack list waiter
(rb_notify_fd_close): walk vm->waiting_fds instead
(call_without_gvl): remove old field setting
(th_init): ditto
* vm_core.h (typedef struct rb_vm_struct): add waiting_fds list
* (typedef struct rb_thread_struct): remove waiting_fd field
(rb_vm_living_threads_init): initialize waiting_fds list
I am now kicking myself for not thinking about this 3 years ago
when I introduced ccan/list in [Feature #9632] to optimize this
same function :<
------------------------------------------------------------------------
r58811 | watson1978 | 2017-05-20 18:23:46 +0900 (Sat, 20 May 2017) | 32 lines
Improve Hash#merge performance
* hash.c (rb_hash_merge): use rb_hash_dup() instead of rb_obj_dup() to duplicate
Hash object. rb_hash_dup() is faster duplicating function for Hash object
which got rid of Hash#initialize_dup method calling.
Hash#merge will be faster around 60%.
[ruby-dev:50026] [Bug #13343] [Fix GH-1533]
### Before
user system total real
Hash#merge 0.160000 0.020000 0.180000 ( 0.182357)
### After
user system total real
Hash#merge 0.110000 0.010000 0.120000 ( 0.114404)
### Test code
require 'benchmark'
Benchmark.bmbm do |x|
hash1 = {}
100.times { |i| hash1[i.to_s] = i }
hash2 = {}
100.times { |i| hash2[(i*2).to_s] = i*2 }
x.report "Hash#merge" do
10000.times do
hash1.merge(hash2)
end
end
end
------------------------------------------------------------------------
r58810 | nobu | 2017-05-20 11:11:24 +0900 (Sat, 20 May 2017) | 4 lines
compile.c: fix catch-table labels optimization
* compile.c (remove_unreachable_chunk): do not eliminate chunks
followed by labels in catch-table entries.
------------------------------------------------------------------------
r58809 | marcandre | 2017-05-20 09:36:55 +0900 (Sat, 20 May 2017) | 6 lines
lib/prime: Fix primality of some large integers [#13492].
* lib/prime.rb: Use accurate sqrt to insure all factors are tested.
Patch by Marcus Stollsteimer.
* test/test_prime.rb: Adapt test for timeout
------------------------------------------------------------------------
r58808 | hsbt | 2017-05-20 08:39:58 +0900 (Sat, 20 May 2017) | 3 lines
Merge gemspec from ruby/fileutils.
* Replaced homepage option to source code location as github.
------------------------------------------------------------------------
r58807 | normal | 2017-05-20 06:34:04 +0900 (Sat, 20 May 2017) | 1 line
fix off-by-one in r58806
------------------------------------------------------------------------
r58806 | normal | 2017-05-20 06:33:15 +0900 (Sat, 20 May 2017) | 4 lines
test/ruby/test_io.rb: new test for IO.select exception set
Ensure this rarely-used feature of IO.select continues
to work properly.
------------------------------------------------------------------------
r58805 | normal | 2017-05-20 03:53:11 +0900 (Sat, 20 May 2017) | 34 lines
thread_sync.c: rewrite the rest using using ccan/list
The performance improvement increases as the number of waiters
increases, due to avoiding the O(n) behavior of rb_ary_delete on
the waiting thread. Uncontended queues and condition variables
performance is not altered significantly.
Function entry cost is slightly increased for ConditionVariable,
since the data pointer is separately allocated and not embedded
into the RVALUE slot.
[ruby-core:81235] [Feature #13552]
name |trunk |built
----------------------|------:|------:
vm_thread_condvar1 | 0.858| 0.858
vm_thread_condvar2 | 1.003| 0.804
vm_thread_queue | 0.131| 0.129
vm_thread_sized_queue | 0.265| 0.251
vm_thread_sized_queue2| 0.892| 0.859
vm_thread_sized_queue3| 0.879| 0.845
vm_thread_sized_queue4| 0.599| 0.486
Speedup ratio: compare with the result of `trunk' (greater is better)
name |built
----------------------|------:
vm_thread_condvar1 | 0.999
vm_thread_condvar2 | 1.246
vm_thread_queue | 1.020
vm_thread_sized_queue | 1.057
vm_thread_sized_queue2| 1.039
vm_thread_sized_queue3| 1.041
vm_thread_sized_queue4| 1.233
------------------------------------------------------------------------
r58804 | normal | 2017-05-20 03:34:38 +0900 (Sat, 20 May 2017) | 4 lines
thread_sync.c: rename mutex_waiter struct to sync_waiter
We will reuse this struct for ConditionVariable, Queue, and SizedQueue,
so it is no longer Mutex-specific.
------------------------------------------------------------------------
r58803 | naruse | 2017-05-20 01:19:46 +0900 (Sat, 20 May 2017) | 1 line
Define classes for r58800
------------------------------------------------------------------------
r58802 | svn | 2017-05-20 01:06:26 +0900 (Sat, 20 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58801 | naruse | 2017-05-20 01:06:25 +0900 (Sat, 20 May 2017) | 5 lines
Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]
Note that 418 I'm a teapot doesn't exist because RFC 2324 and
RFC 7168 are not registered in IANA repository.
https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
------------------------------------------------------------------------
r58800 | naruse | 2017-05-20 01:06:18 +0900 (Sat, 20 May 2017) | 1 line
Add more HTTP status classes
------------------------------------------------------------------------
r58799 | svn | 2017-05-20 00:13:42 +0900 (Sat, 20 May 2017) | 1 line
* 2017-05-20
------------------------------------------------------------------------
r58798 | naruse | 2017-05-20 00:13:42 +0900 (Sat, 20 May 2017) | 3 lines
Net::HTTP#start now pass :ENV to p_addr by default [Bug #13351]
To avoid this, pass nil explicitly.
------------------------------------------------------------------------
r58797 | nobu | 2017-05-19 23:58:38 +0900 (Fri, 19 May 2017) | 4 lines
compile.c: dump_disasm_list_with_cursor
* compile.c (dump_disasm_list_with_cursor): improve disassemble
list. show whole elemetns and mark the current element.
------------------------------------------------------------------------
r58796 | naruse | 2017-05-19 23:14:52 +0900 (Fri, 19 May 2017) | 3 lines
Merge latest dtoa.c [Bug #13545]
Apply some part of http://www.netlib.org/fp/dtoa.c with my eyes...
------------------------------------------------------------------------
r58795 | usa | 2017-05-19 21:44:46 +0900 (Fri, 19 May 2017) | 5 lines
Of course, opened file is not able to unlink on Windows
* test/test_tempfile.rb (test_create_with_block): close the tempfile before
unlink. fixed a failure on Windows introduced at r58791.
------------------------------------------------------------------------
r58794 | nobu | 2017-05-19 18:36:34 +0900 (Fri, 19 May 2017) | 1 line
tempfile.rb: do not call File.identical? on closed stream
------------------------------------------------------------------------
r58793 | svn | 2017-05-19 18:25:53 +0900 (Fri, 19 May 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r58792 | shugo | 2017-05-19 18:25:52 +0900 (Fri, 19 May 2017) | 3 lines
net/imap: Net::IMAP#append should not block when NO response is received
[ruby-dev:50129] [Bug#13579]
------------------------------------------------------------------------
r58791 | nobu | 2017-05-19 18:20:14 +0900 (Fri, 19 May 2017) | 4 lines
tempfile.rb: remove in Tempfile.create
* lib/tempfile.rb (Tempfile.create): should not fail even if the
temporary file has been removed in the block, just ignore.
------------------------------------------------------------------------
r58790 | duerst | 2017-05-19 17:19:02 +0900 (Fri, 19 May 2017) | 1 line
add specs for Unicode-wide case conversions introduced in Ruby 2.4
------------------------------------------------------------------------
r58789 | duerst | 2017-05-19 17:05:56 +0900 (Fri, 19 May 2017) | 1 line
improve examples, fix one improbably should_not value
------------------------------------------------------------------------
r58788 | ko1 | 2017-05-19 16:54:04 +0900 (Fri, 19 May 2017) | 5 lines
specify unsigned (fix r58784).
* method.h (rb_method_definition_t#type): specify unsigned explicitly.
Some compilers (includes VC) returns negative value.
------------------------------------------------------------------------
r58787 | nobu | 2017-05-19 16:34:05 +0900 (Fri, 19 May 2017) | 1 line
fix syntax error
------------------------------------------------------------------------
r58786 | nobu | 2017-05-19 16:12:45 +0900 (Fri, 19 May 2017) | 4 lines
eval_error.c: enrich backtrace
* eval_error.c (print_backtrace): add frame number when printing
in reverse order. [Feature #8661]
------------------------------------------------------------------------
r58785 | naruse | 2017-05-19 15:14:43 +0900 (Fri, 19 May 2017) | 1 line
Add NEWS about [Feature #8661]
------------------------------------------------------------------------
r58784 | normal | 2017-05-19 15:00:53 +0900 (Fri, 19 May 2017) | 14 lines
method.h: pack rb_method_definition_t struct
We only have 12 method types, so 4 bits is enough for
rb_method_type_t.
Size reductions:
- x86-64 48 => 40 bytes
- x86 28 => 24 bytes
* method.h (enum method_optimized_type): split out for CPP
(struct rb_method_definition struct): pack on unaligned systems
(rb_method_definition_t): split typedef to help ctags
[ruby-core:81236] [Feature #13494]
------------------------------------------------------------------------
r58783 | k0kubun | 2017-05-19 00:13:30 +0900 (Fri, 19 May 2017) | 4 lines
Fix strange indentation
which I introduced at r58773.
Hard tabs and spaces are mixed...
------------------------------------------------------------------------
r58782 | svn | 2017-05-19 00:06:48 +0900 (Fri, 19 May 2017) | 1 line
* 2017-05-19
------------------------------------------------------------------------
r58781 | nobu | 2017-05-19 00:06:47 +0900 (Fri, 19 May 2017) | 5 lines
common.mk: path in parse.c
* common.mk (parse.c): replace source file name in #line pragmas
with the path in the source directory, so that binary utilities,
e.g. gcov, can find it.
------------------------------------------------------------------------
r58780 | nobu | 2017-05-18 20:29:42 +0900 (Thu, 18 May 2017) | 5 lines
potential memory leak
* dir.c (rb_dir_getwd): get rid of potential memory leak.
* util.c (ruby_getcwd): ditto.
------------------------------------------------------------------------
r58779 | hsbt | 2017-05-18 14:29:04 +0900 (Thu, 18 May 2017) | 1 line
Fix a wrong repository name of simplecov.
------------------------------------------------------------------------
r58778 | svn | 2017-05-18 11:42:17 +0900 (Thu, 18 May 2017) | 1 line
* 2017-05-18
------------------------------------------------------------------------
r58777 | hsbt | 2017-05-18 11:42:16 +0900 (Thu, 18 May 2017) | 47 lines
Improve CSV parsing performance.
Patch by @joshpencheon (Josh Pencheon)
[fix GH-1607]
#### benchmark-ips results
```
trunk:
Warming up --------------------------------------
4.000 i/100ms
Calculating -------------------------------------
39.661 ({U+00B1}10.1%) i/s - 2.352k in 60.034781s
with-patch:
Warming up --------------------------------------
5.000 i/100ms
Calculating -------------------------------------
60.521 ({U+00B1} 9.9%) i/s - 3.595k in 60.047157s
```
#### memory_profiler resuts
```
trunk:
allocated memory by class
-----------------------------------
35588490 String
7454320 Array
294000 MatchData
37340 Regexp
11840 Hash
2400 CSV
1600 Proc
1280 Method
800 StringIO
with-patch:
allocated memory by class
-----------------------------------
18788490 String
3454320 Array
294000 MatchData
37340 Regexp
11840 Hash
2400 CSV
1600 Proc
1280 Method
800 StringIO
```
------------------------------------------------------------------------
r58776 | ko1 | 2017-05-17 23:43:22 +0900 (Wed, 17 May 2017) | 6 lines
modify r58771.
* spec/rubyspec/command_line/dash_upper_s_spec.rb: enable tests on vboxsf
(VirtualBox shared directory) and change tests to match /success$/ to
ignore warnings. This technique is suggested by @unak.
------------------------------------------------------------------------
r58775 | k0kubun | 2017-05-17 23:11:01 +0900 (Wed, 17 May 2017) | 5 lines
spec/rubyspec: Add `ruby_version_is` guard
for future backport to ruby/spec repository.
See r58772 r58773 r58774.
------------------------------------------------------------------------
r58774 | k0kubun | 2017-05-17 22:21:09 +0900 (Wed, 17 May 2017) | 1 line
spec/rubyspec: Fix rubyspec for tilde unescape
------------------------------------------------------------------------
r58773 | k0kubun | 2017-05-17 21:34:59 +0900 (Wed, 17 May 2017) | 5 lines
cgi/util.rb: Don't escape tilde in #escape
to make it compatible with ERB::Util.url_encode.
ext/cgi/escape/escape.c: ditto.
------------------------------------------------------------------------
r58772 | k0kubun | 2017-05-17 20:58:09 +0900 (Wed, 17 May 2017) | 7 lines
erb.rb: Don't encode tilde in #url_encode
Based on patch by madeofcode (Mark Dodwell).
[ruby-core:46168] [Bug #6696] [Fix GH-54]
`~` is a unreserved character.
https://tools.ietf.org/html/rfc3986#section-2.3
------------------------------------------------------------------------
r58771 | ko1 | 2017-05-17 18:31:34 +0900 (Wed, 17 May 2017) | 4 lines
skip some tests on vboxsf.
* spec/rubyspec/command_line/dash_upper_s_spec.rb:
------------------------------------------------------------------------
r58770 | hsbt | 2017-05-17 16:56:27 +0900 (Wed, 17 May 2017) | 18 lines
Optimize CSV#shift.
[Bug #12373][ruby-core:75462]
Patch by Yuki Kurihara.
Benchmark:
```
Warming up --------------------------------------
csv_shift 1.000 i/100ms
new_csv_shift 1.000 i/100ms
Calculating -------------------------------------
csv_shift 1.192 ({U+00B1} 0.0%) i/s - 6.000 in 5.034250s
new_csv_shift 1.527 ({U+00B1} 0.0%) i/s - 8.000 in 5.243446s
Comparison:
new_csv_shift: 1.5 i/s
csv_shift: 1.2 i/s - 1.28x slower
```
------------------------------------------------------------------------
r58769 | naruse | 2017-05-17 16:13:47 +0900 (Wed, 17 May 2017) | 1 line
Treat NULL reference case [Bug #13566]
------------------------------------------------------------------------
r58768 | naruse | 2017-05-17 14:38:37 +0900 (Wed, 17 May 2017) | 3 lines
Merge Onigmo 6.1.2
https://github.com/k-takata/Onigmo/commit/1364ae3488cac0acbf2d61ef3ce2b62fe0c0f528
------------------------------------------------------------------------
r58767 | nobu | 2017-05-17 13:47:05 +0900 (Wed, 17 May 2017) | 4 lines
ruby.c: encode script name
* ruby.c (process_options): encode script name to locale encoding
instead of associate, if UTF-8 path.
------------------------------------------------------------------------
r58766 | nobu | 2017-05-17 13:44:12 +0900 (Wed, 17 May 2017) | 4 lines
.gdbinit: fix nd_tree
* .gdbinit (nd_tree): use rb_str_tmp_new to get rid of
`__extension__'.
------------------------------------------------------------------------
r58765 | nobu | 2017-05-17 09:28:01 +0900 (Wed, 17 May 2017) | 6 lines
test_dir_m17n.rb: read in filesystem encoding
* test/ruby/test_dir_m17n.rb (test_entries_compose): read in
filesystem encoding instead of default external encoding on
Windows too. these two encodings may differ on some
environments.
------------------------------------------------------------------------
r58764 | normal | 2017-05-17 08:59:01 +0900 (Wed, 17 May 2017) | 4 lines
Revert "test/test_extilibs.rb: do not check the existence of fiddle"
This reverts r58761 since fiddle is considered critical.
[ruby-core:81201] [ruby-core:81203]
------------------------------------------------------------------------
r58763 | usa | 2017-05-17 08:15:56 +0900 (Wed, 17 May 2017) | 5 lines
ENV["HOME"] is prior as home on Windows
* spec/rubyspec/core/dir/home_spec.rb: ENV["HOME"] is prior as home on Windows.
reported by ko1.
------------------------------------------------------------------------
r58762 | nobu | 2017-05-17 08:09:34 +0900 (Wed, 17 May 2017) | 4 lines
gmake.mk: test dependency
* defs/gmake.mk (TEST_DEPENDS): check and more tests targets need
all to be built.
------------------------------------------------------------------------
r58761 | normal | 2017-05-17 07:05:39 +0900 (Wed, 17 May 2017) | 6 lines
test/test_extilibs.rb: do not check the existence of fiddle
libffi is not installed on all systems, and is not needed
for most of the tests.
Tested on a fresh FreeBSD 11.0 VM
------------------------------------------------------------------------
r58760 | usa | 2017-05-17 01:16:47 +0900 (Wed, 17 May 2017) | 9 lines
Should require at spec file, not fixture file
Fixed ERRORs at non-Windows platforms.
* spec/rubyspec/library/win32ole/fixtures/classes.rb (require): removed.
* spec/rubyspec/library/win32ole/win32ole/ole_get_methods_spec.rb (require):
forgotten to require 'win32ole'.
------------------------------------------------------------------------
r58759 | nobu | 2017-05-17 00:47:44 +0900 (Wed, 17 May 2017) | 1 line
run tests without exts
------------------------------------------------------------------------
r58758 | usa | 2017-05-17 00:45:25 +0900 (Wed, 17 May 2017) | 5 lines
Should require WIN32OLE
* spec/rubyspec/library/win32ole/fixtures/classes.rb: should require WIN32OLE
here because this file causes NameError in parallel spec.
------------------------------------------------------------------------
r58757 | svn | 2017-05-17 00:17:40 +0900 (Wed, 17 May 2017) | 1 line
* 2017-05-17
------------------------------------------------------------------------
r58756 | nobu | 2017-05-17 00:17:39 +0900 (Wed, 17 May 2017) | 4 lines
test/unit.rb: fix returning job tokens
* test/lib/test/unit.rb (_run_parallel): flush job tokens after
quitting workers when normally finished too.
------------------------------------------------------------------------
r58755 | nobu | 2017-05-16 23:53:04 +0900 (Tue, 16 May 2017) | 5 lines
test_process.rb: compare in UTF-8
* test/ruby/test_process.rb (test_execopts_open_chdir_m17n_path):
compare directory name in UTF-8. encoding of `Dir.pwd` is
affected by filesystem encoding.
------------------------------------------------------------------------
r58754 | nobu | 2017-05-16 22:57:18 +0900 (Tue, 16 May 2017) | 1 line
Use raise_error block
------------------------------------------------------------------------
r58753 | nobu | 2017-05-16 22:51:17 +0900 (Tue, 16 May 2017) | 1 line
Mac OS raises EADDRNOTAVAIL but not ECONNREFUSED
------------------------------------------------------------------------
r58752 | nobu | 2017-05-16 22:51:15 +0900 (Tue, 16 May 2017) | 1 line
Multiple exception classes at raise_error
------------------------------------------------------------------------
r58751 | usa | 2017-05-16 22:50:51 +0900 (Tue, 16 May 2017) | 2 lines
* common.mk (help): get rid of make error with nmake.
------------------------------------------------------------------------
r58750 | ko1 | 2017-05-16 22:22:42 +0900 (Tue, 16 May 2017) | 1 line
restore yes-test-rubyspec
------------------------------------------------------------------------
r58749 | nobu | 2017-05-16 22:15:12 +0900 (Tue, 16 May 2017) | 1 line
follow test-spec
------------------------------------------------------------------------
r58748 | eregon | 2017-05-16 21:29:44 +0900 (Tue, 16 May 2017) | 1 line
Avoid using a class variable in socket specs
------------------------------------------------------------------------
r58747 | eregon | 2017-05-16 21:29:30 +0900 (Tue, 16 May 2017) | 3 lines
Use a reserved port to test for a non-existing TCP server
* Avoids a race between finding an available port and another process starting a server on it.
------------------------------------------------------------------------
r58746 | usa | 2017-05-16 21:15:48 +0900 (Tue, 16 May 2017) | 5 lines
Rename rubyspec to spec
* common.mk (*-rubyspec): rename to *-spec because rubyspec is historical name.
of course, *-rubyspec are still available for compatibility.
------------------------------------------------------------------------
r58745 | nobu | 2017-05-16 19:25:56 +0900 (Tue, 16 May 2017) | 6 lines
rb_w32_ugetcwd: UTF-8 version getcwd
* dir.c (rb_dir_getwd): convert from UTF-8.
* win32/win32.c (w32_getcwd): codepage aware getcwd using
GetCurrentDirectoryW.
------------------------------------------------------------------------
r58744 | hsbt | 2017-05-16 18:32:32 +0900 (Tue, 16 May 2017) | 3 lines
Strip punctuation from CSV headers in symbol converter.
Patch by @cllns. [Fix GH-957]
------------------------------------------------------------------------
r58743 | hsbt | 2017-05-16 18:17:09 +0900 (Tue, 16 May 2017) | 3 lines
Added accessor of original line when parsing.
[Feature #11865][ruby-core:72452][fix GH-1170]
------------------------------------------------------------------------
r58742 | usa | 2017-05-16 17:03:53 +0900 (Tue, 16 May 2017) | 5 lines
Search SSL libraries by testing various filename patterns
* ext/openssl/extconf.rb (find_openssl_library): should search by more flexible
method, especially for LibreSSL on Windows.
------------------------------------------------------------------------
r58741 | nobu | 2017-05-16 14:47:53 +0900 (Tue, 16 May 2017) | 4 lines
fix tempfile leaks on Windows
* lib/rubygems/ext/ext_conf_builder.rb (build): needs to close
before unlink on Windows.
------------------------------------------------------------------------
r58740 | naruse | 2017-05-16 14:02:23 +0900 (Tue, 16 May 2017) | 1 line
fix words
------------------------------------------------------------------------
r58739 | ko1 | 2017-05-16 13:23:10 +0900 (Tue, 16 May 2017) | 2 lines
skip openssl related tests.
------------------------------------------------------------------------
r58738 | svn | 2017-05-16 09:15:55 +0900 (Tue, 16 May 2017) | 1 line
* 2017-05-16
------------------------------------------------------------------------
r58737 | nobu | 2017-05-16 09:15:54 +0900 (Tue, 16 May 2017) | 4 lines
enable ruby_w32_codepage on cygwin
* debug.c, localeinit.c: enable ruby_w32_codepage on cygwin too.
[ruby-core:81163] [Bug #13567]
------------------------------------------------------------------------
r58736 | ko1 | 2017-05-15 23:40:07 +0900 (Mon, 15 May 2017) | 16 lines
refresh Gem at the end of `teardown`.
* lib/rubygems/test_case.rb (teardown): call `Gem::refresh()` at the
end of `teardown`.
On parallel test sometimes fails test process. The reason
is:
(1) previous tests remains `Gem::Specification@@stubs` value
which points to temporary directories and the directories
are removed by `teardown` method of previous test.
(2) `require 'rubygems/gem_runner'` in `test_gem_gem_runner.rb`
tries to require test utility file. However, with strange `@@stubs`
RubyGems tries to load specification from removed directory.
`StubSpecification#to_spec` returns `nil` and error will occur.
The solution this patch employs is to refresh all of parameters
includes `Gem::Specification@@stubs` by `Gem::refresh()`.
------------------------------------------------------------------------
r58735 | k0kubun | 2017-05-15 22:38:02 +0900 (Mon, 15 May 2017) | 5 lines
erb.rb: Use String#<< instead of #concat
to optimize String concatenation on rendering.
[fix GH-1612]
------------------------------------------------------------------------
r58734 | sorah | 2017-05-15 21:18:55 +0900 (Mon, 15 May 2017) | 7 lines
[DOC] File#path result can be inaccurate
* file.c(rb_file_path): [DOC] Note that the pathname returned by this
method can be inaccurate, for instance file gets moved, renamed,
deleted or is created with File::TMPFILE option.
Relates to [Feature #13568]
------------------------------------------------------------------------
r58733 | nobu | 2017-05-15 20:32:35 +0900 (Mon, 15 May 2017) | 4 lines
optional/capi: use LIBRUBYARG_SHARED
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension):
use LIBRUBYARG_SHARED for LDSHARED.
------------------------------------------------------------------------
r58732 | nobu | 2017-05-15 20:25:56 +0900 (Mon, 15 May 2017) | 1 line
thread_spec.c: use rb_w32_pipe
------------------------------------------------------------------------
r58731 | nobu | 2017-05-15 20:19:12 +0900 (Mon, 15 May 2017) | 1 line
io_spec.c: suppress unused-variable warning
------------------------------------------------------------------------
r58730 | nobu | 2017-05-15 20:16:27 +0900 (Mon, 15 May 2017) | 4 lines
configure.in: negative time_t for mingw
* configure.in: mingw also uses MSVCRT accepts negative time_t.
c.f. r58681.
------------------------------------------------------------------------
r58729 | nobu | 2017-05-15 20:16:26 +0900 (Mon, 15 May 2017) | 1 line
configure.in: remove dynamic option in LDSHARED
------------------------------------------------------------------------
r58728 | nobu | 2017-05-15 20:16:25 +0900 (Mon, 15 May 2017) | 5 lines
optional/capi: fix link on mingw
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension):
LIBRUBYARG is always necessary unless dynamic lookup is allowed.
strip $(DEFFILE) from DLDFLAGS on mingw.
------------------------------------------------------------------------
r58727 | nobu | 2017-05-15 19:32:30 +0900 (Mon, 15 May 2017) | 1 line
default.mspec: ignore unavailable FDs
------------------------------------------------------------------------
r58726 | usa | 2017-05-15 16:35:26 +0900 (Mon, 15 May 2017) | 8 lines
Should call `ln_s` only when symlink is available
* test/fileutils/test_fileutils.rb (test_ln_s): skip if symlink is not
available.
* test/fileutils/test_fileutils.rb (test_ln_s): remove created symlink
certainly.
------------------------------------------------------------------------
r58725 | normal | 2017-05-15 16:33:10 +0900 (Mon, 15 May 2017) | 4 lines
test/socket/test_basicsocket.rb (socks): bind explicitly to localhost
Binding to a potentially public IP in a test can cause problems
if hit by a random port scanner or something...
------------------------------------------------------------------------
r58724 | nobu | 2017-05-15 16:04:48 +0900 (Mon, 15 May 2017) | 1 line
define RUBY_DEBUG_ENV only for main.c
------------------------------------------------------------------------
r58723 | ko1 | 2017-05-15 16:02:33 +0900 (Mon, 15 May 2017) | 3 lines
add information for debugging.
------------------------------------------------------------------------
r58722 | svn | 2017-05-15 15:17:30 +0900 (Mon, 15 May 2017) | 1 line
* 2017-05-15
------------------------------------------------------------------------
r58721 | nobu | 2017-05-15 15:17:29 +0900 (Mon, 15 May 2017) | 1 line
refer flag variables regardless RUBY_DEBUG_ENV
------------------------------------------------------------------------
r58720 | nobu | 2017-05-14 23:27:07 +0900 (Sun, 14 May 2017) | 1 line
fix typo
------------------------------------------------------------------------
r58719 | svn | 2017-05-14 23:09:58 +0900 (Sun, 14 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58718 | eregon | 2017-05-14 23:09:56 +0900 (Sun, 14 May 2017) | 1 line
Update to ruby/spec@032022ca
------------------------------------------------------------------------
r58717 | svn | 2017-05-14 23:09:30 +0900 (Sun, 14 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58716 | eregon | 2017-05-14 23:09:29 +0900 (Sun, 14 May 2017) | 1 line
Update to ruby/mspec@4b980493
------------------------------------------------------------------------
r58715 | nobu | 2017-05-14 22:01:46 +0900 (Sun, 14 May 2017) | 4 lines
suppress a warning [ci skip]
* thread_sync.c (rb_mutex_num_waiting): suppress warning C4700 by
VC, uninitialized local variable.
------------------------------------------------------------------------
r58714 | nobu | 2017-05-14 20:45:00 +0900 (Sun, 14 May 2017) | 7 lines
object.c: use a sized enumerator with #yield_self
* object.c (rb_obj_size): The #yield_self Enumerator instance
always has a #count of `1`. This provides a lazy #size of `1`
to match the count instead of `nil`. [Fix GH-1615]
Author: Shannon Skipper <shannonskipper@gmail.com>
------------------------------------------------------------------------
r58713 | naruse | 2017-05-14 20:36:01 +0900 (Sun, 14 May 2017) | 3 lines
Don't read non .rb file as a spec
To avoid reading `core` file on reading core/ specs.
------------------------------------------------------------------------
r58712 | nobu | 2017-05-14 12:53:59 +0900 (Sun, 14 May 2017) | 4 lines
suppress warning
* spec/rubyspec/optional/capi/ext/fixnum_spec.c: suppress
unused-but-set-variable warning.
------------------------------------------------------------------------
r58711 | nobu | 2017-05-14 12:33:01 +0900 (Sun, 14 May 2017) | 4 lines
exts.mk.tmpl: fix multiple rubies
* template/exts.mk.tmpl: get rid of making multiple rubies
simultaneously. it can cause making libruby in parallel.
------------------------------------------------------------------------
r58710 | nobu | 2017-05-14 10:03:15 +0900 (Sun, 14 May 2017) | 4 lines
tgamma on mingw
* configure.in: get rid of unreliable tgamma() implemented of
mingw, which returns NaN unexpectedly.
------------------------------------------------------------------------
r58709 | nobu | 2017-05-14 09:21:00 +0900 (Sun, 14 May 2017) | 4 lines
string.c: cut down intermediate string
* string.c (rb_external_str_new_with_enc): cut down intermediate
string for conversion source, by appending with conversion.
------------------------------------------------------------------------
r58708 | nobu | 2017-05-14 01:04:05 +0900 (Sun, 14 May 2017) | 1 line
revert r58703 & r58705
------------------------------------------------------------------------
r58707 | svn | 2017-05-14 00:23:39 +0900 (Sun, 14 May 2017) | 1 line
* 2017-05-14
------------------------------------------------------------------------
r58706 | usa | 2017-05-14 00:23:38 +0900 (Sun, 14 May 2017) | 4 lines
The exception raised when exec/spawn unexecutable file on Windows is various
It seems that depend on OS version or filesystem
------------------------------------------------------------------------
r58705 | nobu | 2017-05-13 23:20:19 +0900 (Sat, 13 May 2017) | 6 lines
string.c: fix up r58703
* string.c (rb_external_str_new_with_enc): fix the case of
conversion failure. when conversion failed for some reason,
just ignores the default internal encoding and returns in the
given encoding.
------------------------------------------------------------------------
r58704 | nobu | 2017-05-13 22:54:52 +0900 (Sat, 13 May 2017) | 5 lines
remove wrong expectation
* spec/rubyspec/core/kernel/itself_spec.rb: `object_id` may return
different objects for each calls, and the expectation of object
identity is done by `equal` matcher which uses `equal?` method.
------------------------------------------------------------------------
r58703 | nobu | 2017-05-13 22:34:39 +0900 (Sat, 13 May 2017) | 4 lines
string.c: cut down intermediate string
* string.c (rb_external_str_new_with_enc): cut down intermediate
string for conversion source, by appending with conversion.
------------------------------------------------------------------------
r58702 | nobu | 2017-05-13 21:31:01 +0900 (Sat, 13 May 2017) | 4 lines
string.c: fix one-off bug
* string.c (rb_str_cat_conv_enc_opts): fix one-off bug. `ofs`
equals `olen` when appending at the end.
------------------------------------------------------------------------
r58701 | nobu | 2017-05-13 18:55:23 +0900 (Sat, 13 May 2017) | 4 lines
make test-rubyspec-precheck
* common.mk (yes-test-rubyspec): make test-rubyspec-precheck for
fake.rb to setup build configuration.
------------------------------------------------------------------------
r58700 | shugo | 2017-05-13 11:05:40 +0900 (Sat, 13 May 2017) | 1 line
test/net/imap: fix race condition in test_exception_during_idle
------------------------------------------------------------------------
r58699 | nobu | 2017-05-13 10:16:36 +0900 (Sat, 13 May 2017) | 1 line
thread_win32.c: disable currently unused functions
------------------------------------------------------------------------
r58698 | nobu | 2017-05-13 10:05:30 +0900 (Sat, 13 May 2017) | 4 lines
math.c: check argument to lgamma_r
* math.c (math_lgamma): check the argument before calling math
function `lgamma_r` for edge cases.
------------------------------------------------------------------------
r58697 | nobu | 2017-05-13 09:50:20 +0900 (Sat, 13 May 2017) | 4 lines
math.c: check argument to tgamma
* math.c (math_gamma): check the argument before calling math
function `tgamma` for edge cases.
------------------------------------------------------------------------
r58696 | normal | 2017-05-13 06:52:04 +0900 (Sat, 13 May 2017) | 26 lines
autoload: always wait on loading thread
We cannot assume autoload_provided/rb_feature_provided returning
TRUE means it is safe to proceed without waiting. Another
thread may call rb_provide_feature before setting the constant
(via autoload_const_set). So we must wait until autoload is
completed by another thread.
Note: this patch was tested with an explicit rb_thread_schedule
in rb_provide_feature to make the race condition more apparent
as suggested by <s.wanabe@gmail.com>:
> --- a/load.c
> +++ b/load.c
> @@ -563,6 +563,7 @@ rb_provide_feature(VALUE feature)
> rb_str_freeze(feature);
>
> rb_ary_push(features, rb_fstring(feature));
> +rb_thread_schedule();
> features_index_add(feature, INT2FIX(RARRAY_LEN(features)-1));
> reset_loaded_features_snapshot();
> }
* variable.c (check_autoload_required): do not assume a provided
feature means autoload is complete, always wait if autoload is
being performed by another thread.
[ruby-core:81105] [Bug #11384] Thanks to <s.wanabe@gmail.com>
------------------------------------------------------------------------
r58695 | usa | 2017-05-13 05:10:16 +0900 (Sat, 13 May 2017) | 4 lines
`notepad.exe` does not always exist in `C:\Windows`
Use `%WINDIR%\system32\drivers\etc\services` instead of `notepad.exe`.
------------------------------------------------------------------------
r58694 | nobu | 2017-05-13 02:23:46 +0900 (Sat, 13 May 2017) | 4 lines
array.c: fix position in message
* array.c (rb_ary_insert): fix the position in error message, when
it is less than -1.
------------------------------------------------------------------------
r58693 | nobu | 2017-05-13 02:02:48 +0900 (Sat, 13 May 2017) | 4 lines
array.c: check position to insert
* array.c (rb_ary_insert): check position to insert even if no
elements to be inserted. [ruby-core:81125] [Bug #13558]
------------------------------------------------------------------------
r58692 | naruse | 2017-05-13 02:02:25 +0900 (Sat, 13 May 2017) | 1 line
show GEM_HOME
------------------------------------------------------------------------
r58691 | nobu | 2017-05-13 01:12:46 +0900 (Sat, 13 May 2017) | 7 lines
fix tgamma for inifity
* configure.in: do not use buggy tgamma() of mingw.
* missing/tgamma.c (tgamma): merge fix for inifity from
ruby_tgamma. since msvcr120.dll and later have tgamma, this
implementation will not be used.
------------------------------------------------------------------------
r58690 | svn | 2017-05-13 01:01:18 +0900 (Sat, 13 May 2017) | 1 line
* 2017-05-13
------------------------------------------------------------------------
r58689 | nobu | 2017-05-13 01:01:17 +0900 (Sat, 13 May 2017) | 1 line
tgamma.c: unify versions with/without lgamma_r
------------------------------------------------------------------------
r58688 | nobu | 2017-05-13 00:29:55 +0900 (Sat, 13 May 2017) | 4 lines
string.c: remove bare Unicode.
* string.c (rb_str_unicode_normalize): remove bare Unicode. do
not assume that all compilers can handle UTF-8.
------------------------------------------------------------------------
r58687 | usa | 2017-05-12 20:49:05 +0900 (Fri, 12 May 2017) | 5 lines
Encoding.default_internal should affect ENV on Windows like other platforms
* hash.c (env_str_transcode): call rb_external_str_with_enc() if
default_internal is available.
------------------------------------------------------------------------
r58686 | usa | 2017-05-12 19:37:41 +0900 (Fri, 12 May 2017) | 2 lines
Windows does not know Unix style timezone
------------------------------------------------------------------------
r58685 | usa | 2017-05-12 19:31:52 +0900 (Fri, 12 May 2017) | 5 lines
Math.gamma(Float::INFINITY) should return +INF
* math.c (tgamma): it seems that the implementaion of mswin has similar problem
with mingw.
------------------------------------------------------------------------
r58684 | usa | 2017-05-12 19:23:53 +0900 (Fri, 12 May 2017) | 2 lines
On LLP64 platform (mswin64), the return value of String#hash is fixnum.
------------------------------------------------------------------------
r58683 | usa | 2017-05-12 19:10:15 +0900 (Fri, 12 May 2017) | 4 lines
Skip specs which make non-socket fd nonblocking on Windows
because Windows does not support nonblocking mode except sockets.
------------------------------------------------------------------------
r58682 | usa | 2017-05-12 19:05:48 +0900 (Fri, 12 May 2017) | 2 lines
Support bulding the extension on Windows
------------------------------------------------------------------------
r58681 | usa | 2017-05-12 18:46:45 +0900 (Fri, 12 May 2017) | 2 lines
It seems that MSVCRT accepts negative time_t
------------------------------------------------------------------------
r58680 | shugo | 2017-05-12 18:39:23 +0900 (Fri, 12 May 2017) | 4 lines
net/imap: Revert read_tiemout in r58549.
get_response is called in a receiver thread, so there may be no pending
commands when get_response is called.
------------------------------------------------------------------------
r58679 | usa | 2017-05-12 18:36:57 +0900 (Fri, 12 May 2017) | 2 lines
unistd.h is only available when HAVE_UNISTD_H is 1
------------------------------------------------------------------------
r58678 | usa | 2017-05-12 18:17:10 +0900 (Fri, 12 May 2017) | 2 lines
Skip the spec which uses `fork` on Windows
------------------------------------------------------------------------
r58677 | usa | 2017-05-12 17:45:20 +0900 (Fri, 12 May 2017) | 6 lines
The title of "Desktop" may be localized
* spec/rubyspec/library/win32ole/win32ole/_invoke_spec.rb: the title of
"Desktop" may be localized. then, use "System32" because it seems not to be
localized.
------------------------------------------------------------------------
r58676 | usa | 2017-05-12 17:11:35 +0900 (Fri, 12 May 2017) | 5 lines
Skip on Windows because it always fails
On Windows, when invoking ruby via runruby.rb, the pid of invoker and of invokee
are diffrent. Therefore, this spec always fails.
------------------------------------------------------------------------
r58675 | nobu | 2017-05-12 17:10:36 +0900 (Fri, 12 May 2017) | 6 lines
remove code old versions
* spec/rubyspec/optional/capi/spec_helper.rb (compile_extension):
remove code old versions. `RbConfig::CONFIG["rubyhdrdir"]` is
since 1.9, and `RbConfig::CONFIG["rubyarchhdrdir"]` is since
2.0.0.
------------------------------------------------------------------------
r58674 | nobu | 2017-05-12 16:48:08 +0900 (Fri, 12 May 2017) | 5 lines
gc.c: checks of sizes
* gc.c (ruby_xmalloc, ruby_xmalloc2, ruby_xcalloc): move checks of
sizes from objspace_xmalloc, objspace_xmalloc2, objspace_xcalloc,
respectively.
------------------------------------------------------------------------
r58673 | nobu | 2017-05-12 16:48:05 +0900 (Fri, 12 May 2017) | 4 lines
gc.c: objspace_malloc_fixup
* gc.c (objspace_malloc_fixup): include allocated size
managements.
------------------------------------------------------------------------
r58672 | usa | 2017-05-12 15:48:53 +0900 (Fri, 12 May 2017) | 2 lines
spec has been merged, then should run it in love
------------------------------------------------------------------------
r58671 | usa | 2017-05-12 15:39:43 +0900 (Fri, 12 May 2017) | 5 lines
Support building exts of spec on mswin
* spec/rubyspec/optional/capi/spec_helper.rb: building command of extensions on
mswin differs from Unixen's one.
------------------------------------------------------------------------
r58670 | nobu | 2017-05-12 15:19:00 +0900 (Fri, 12 May 2017) | 4 lines
vm.c: free by ruby_xfree
* vm.c (ruby_vm_run_at_exit_hooks): should free by `ruby_xfree`
memories allocated by `ALLOC`.
------------------------------------------------------------------------
r58669 | stomar | 2017-05-12 03:59:45 +0900 (Fri, 12 May 2017) | 3 lines
string.c: docs for String#match
* string.c: [DOC] add example for String#match with pos argument.
------------------------------------------------------------------------
r58668 | stomar | 2017-05-12 03:58:27 +0900 (Fri, 12 May 2017) | 4 lines
string.c: docs for Symbol
* string.c: [DOC] adopt call-seq's for Symbol#{match,match?} from
String methods; other small improvements for Symbol docs.
------------------------------------------------------------------------
r58667 | svn | 2017-05-12 03:56:33 +0900 (Fri, 12 May 2017) | 1 line
* 2017-05-12
------------------------------------------------------------------------
r58666 | stomar | 2017-05-12 03:56:32 +0900 (Fri, 12 May 2017) | 4 lines
string.c: docs for Symbol#{match,match?}
* string.c: [DOC] mention pos argument for Symbol#{match,match?}.
Patch by Yuki Kurihara (ksss). [Fix GH-1606]
------------------------------------------------------------------------
r58665 | nobu | 2017-05-11 23:28:38 +0900 (Thu, 11 May 2017) | 4 lines
gc.c: skip unnecessary check
* gc.c (wmap_aset): skip unnecessary size check.
`2*sizeof(VALUE)` is static and should never overflow.
------------------------------------------------------------------------
r58664 | nobu | 2017-05-11 23:28:37 +0900 (Thu, 11 May 2017) | 4 lines
gc.c: use the argument objspace
* gc.c (objspace_xrealloc): use the argument objspace, instead of
the default object space.
------------------------------------------------------------------------
r58663 | shugo | 2017-05-11 16:56:52 +0900 (Thu, 11 May 2017) | 1 line
net/imap: Net::IMAP#disconnect need not do anything if already disconnected
------------------------------------------------------------------------
r58662 | nobu | 2017-05-11 11:38:09 +0900 (Thu, 11 May 2017) | 4 lines
process.c: fix error check
* process.c (obj2uid, obj2gid): check the error number returned by
`getpwnam_r()` and `getgrnam_r()`, instead of `errno`.
------------------------------------------------------------------------
r58661 | nobu | 2017-05-11 08:52:14 +0900 (Thu, 11 May 2017) | 4 lines
fix up r57167
* test/lib/minitest/unit.rb (MiniTest::Unit#_run_anything): stop
if any errors or failures.
------------------------------------------------------------------------
r58660 | naruse | 2017-05-11 08:38:28 +0900 (Thu, 11 May 2017) | 1 line
pass as exception
------------------------------------------------------------------------
r58659 | nobu | 2017-05-11 08:34:33 +0900 (Thu, 11 May 2017) | 1 line
.
------------------------------------------------------------------------
r58658 | nobu | 2017-05-11 08:18:07 +0900 (Thu, 11 May 2017) | 5 lines
process.c: temporary string for buffer
* process.c (obj2uid, obj2gid): use temporary string as the buffer
instead of `rb_alloc_tmp_buffer`, which is `NODE_ALLOCA` since
r51492. [ruby-core:81084] [Bug #13554]
------------------------------------------------------------------------
r58657 | naruse | 2017-05-11 04:19:38 +0900 (Thu, 11 May 2017) | 1 line
Show garbages if requiring gem_runner is failed
------------------------------------------------------------------------
r58656 | svn | 2017-05-11 04:03:07 +0900 (Thu, 11 May 2017) | 1 line
* 2017-05-11
------------------------------------------------------------------------
r58655 | stomar | 2017-05-11 04:03:07 +0900 (Thu, 11 May 2017) | 4 lines
lib/uri/generic.rb: fix typos
* lib/uri/generic.rb: [DOC] fix typos in URI::Generic#== docs.
Patch by Alyssa Ross (alyssais). [Fix GH-1604]
------------------------------------------------------------------------
r58654 | eregon | 2017-05-10 23:35:38 +0900 (Wed, 10 May 2017) | 1 line
Use environment values to find ruby and flags instead of an argument
------------------------------------------------------------------------
r58653 | eregon | 2017-05-10 23:35:24 +0900 (Wed, 10 May 2017) | 1 line
Use ruby_cmd instead of the RUBY_EXE constant in specs
------------------------------------------------------------------------
r58652 | nobu | 2017-05-10 23:25:03 +0900 (Wed, 10 May 2017) | 1 line
gc.c: check of size in ruby_sized_xrealloc
------------------------------------------------------------------------
r58651 | eregon | 2017-05-10 23:18:23 +0900 (Wed, 10 May 2017) | 1 line
Use the Mutex to know whether we entered the signal handler in Process#kill specs
------------------------------------------------------------------------
r58650 | eregon | 2017-05-10 23:18:10 +0900 (Wed, 10 May 2017) | 1 line
Process.getpgrp and Process.setsid must be available for Process#kill group specs
------------------------------------------------------------------------
r58649 | eregon | 2017-05-10 23:17:58 +0900 (Wed, 10 May 2017) | 1 line
Use #system directly with multiple arguments in Process#kill specs
------------------------------------------------------------------------
r58648 | naruse | 2017-05-10 16:23:06 +0900 (Wed, 10 May 2017) | 1 line
confirm current process equals to gemhome's pid
------------------------------------------------------------------------
r58647 | nobu | 2017-05-10 15:38:30 +0900 (Wed, 10 May 2017) | 4 lines
test_exception.rb: test_machine_stackoverflow_by_trace
* test/ruby/test_exception.rb (test_machine_stackoverflow_by_trace):
move from test_trace.rb and rename, to be excluded by the default.
------------------------------------------------------------------------
r58646 | nobu | 2017-05-10 09:39:26 +0900 (Wed, 10 May 2017) | 1 line
adjust styles [ci skip]
------------------------------------------------------------------------
r58645 | nobu | 2017-05-10 09:20:02 +0900 (Wed, 10 May 2017) | 1 line
math.c (ruby_lgamma_r): reduce duplicate code
------------------------------------------------------------------------
r58644 | normal | 2017-05-10 04:52:10 +0900 (Wed, 10 May 2017) | 11 lines
test/thread: relax internal implementation check in error message
Queue, SizedQueue, and ConditionVariable internal implementation
should not be tied to using arrays. Implementation details can
change and I am working on a change to remove the dependency on
arrays (as others may attempt, too) by using ccan/list for the
waiter list.
* test/thread/test_cv.rb (test_dump): remove check for Array
* test/thread/test_queue.rb (test_dump): ditto
[ruby-core:81001] [Misc #13541]
------------------------------------------------------------------------
r58643 | stomar | 2017-05-10 03:56:22 +0900 (Wed, 10 May 2017) | 7 lines
date_core.c: fix docs for %Z format
* ext/date/date_core.c: [DOC] fix documentation for %Z format
of {Date,DateTime}.strftime.
Reported by Damon Timm. Based on a patch by nano.
[ruby-core:79602] [Bug #13231] [Fix GH-1565]
------------------------------------------------------------------------
r58642 | naruse | 2017-05-10 02:41:10 +0900 (Wed, 10 May 2017) | 1 line
dump stub specifications if nil
------------------------------------------------------------------------
r58641 | nobu | 2017-05-10 02:20:00 +0900 (Wed, 10 May 2017) | 7 lines
parse.y: brace after literal arg
* parse.y (symbol, dsym, parser_set_number_literal, parser_yylex):
set state to END too not only ENDARG and after a literal, so
that a left brace after it should be a primary block bound to
the literal, which causes syntax error.
[ruby-core:81037] [Bug #13547]
------------------------------------------------------------------------
r58640 | nobu | 2017-05-10 02:12:43 +0900 (Wed, 10 May 2017) | 6 lines
parse.y: do after cmdarg in paren
* parse.y (parser_yylex): set state to ENDARG after a string
literal, so that `do` after a literal should be `do_block` and
bound to the outer method, as well as a numeric/symbol literal.
[ruby-core:72482] [Bug #11873]
------------------------------------------------------------------------
r58639 | svn | 2017-05-10 02:02:08 +0900 (Wed, 10 May 2017) | 1 line
* 2017-05-10
------------------------------------------------------------------------
r58638 | nobu | 2017-05-10 02:02:07 +0900 (Wed, 10 May 2017) | 4 lines
test_syntax.rb: test_brace_after_local_variable
* test/ruby/test_syntax.rb (test_brace_after_local_variable):
another test using braces. [Bug #11873]
------------------------------------------------------------------------
r58621 | nobu | 2017-05-09 23:11:46 +0900 (Tue, 09 May 2017) | 4 lines
string.c: fix r58618
* string.c (unicode_normalize_common): aggregation type cannot be
initialized with dynamic values, in C89.
------------------------------------------------------------------------
r58618 | duerst | 2017-05-09 20:13:45 +0900 (Tue, 09 May 2017) | 6 lines
replace hand-written argument check by call to rb_scan_args in unicode_normalize_common
In string.c, replace hand-written argument count check by call to rb_scan_args.
This allows to use rb_funcallv once, rather than using rb_funcall twice.
Thanks to Hanmac (Hans Mackowiak) for the idea, see
https://bugs.ruby-lang.org/issues/11078#note-7.
------------------------------------------------------------------------
r58617 | duerst | 2017-05-09 19:45:46 +0900 (Tue, 09 May 2017) | 6 lines
add explanations about status of module UnicodeNormalize
In lib/unicode_normalize/normalize.rb, add explanations and clarifications
about the status of the files and the module. [ci skip]
This is in response to discussions at https://github.com/ruby/spec/pull/433
and https://bugs.ruby-lang.org/issues/5481#note-58.
------------------------------------------------------------------------
r58616 | naruse | 2017-05-09 16:47:28 +0900 (Tue, 09 May 2017) | 1 line
Add one more guard to avoid mixing nil into latest_specs
------------------------------------------------------------------------
r58615 | normal | 2017-05-09 15:17:01 +0900 (Tue, 09 May 2017) | 3 lines
fixup r58614 for raspi3 and maybe other systems with odd compile
[ruby-core:81048]
------------------------------------------------------------------------
r58614 | normal | 2017-05-09 14:06:41 +0900 (Tue, 09 May 2017) | 7 lines
rb_execution_context_t: move stack, stack_size and cfp from rb_thread_t
The goal is to reduce rb_context_t and rb_fiber_t size
by removing the need to store the entire rb_thread_t in
there.
[ruby-core:81045] Work-in-progress: soon, we will move more fields here.
------------------------------------------------------------------------
r58613 | nobu | 2017-05-09 11:55:51 +0900 (Tue, 09 May 2017) | 5 lines
Ignore fail on non empty ext and gems [ci skip]
* Makefile.in ({ext,gems}/{distclean,realclean}): ignore fail on
removal of non empty directories. these directories should not
be empty when in-place build.
------------------------------------------------------------------------
r58612 | svn | 2017-05-09 01:00:02 +0900 (Tue, 09 May 2017) | 1 line
* 2017-05-09
------------------------------------------------------------------------
r58611 | kazu | 2017-05-09 01:00:00 +0900 (Tue, 09 May 2017) | 1 line
Add mspec and rubyspec to LEGAL [ci skip]
------------------------------------------------------------------------
r58610 | hsbt | 2017-05-08 22:14:24 +0900 (Mon, 08 May 2017) | 3 lines
Translate missing rdoc comment for opt_send_without_block.
fix [GH-1608], Patch by @k0kubun
------------------------------------------------------------------------
r58609 | nobu | 2017-05-08 14:31:02 +0900 (Mon, 08 May 2017) | 4 lines
separate constdefs.c and constdefs.h
* ext/socket/depend: separate constdefs.c and constdefs.h so that
only one process will run when parallel building.
------------------------------------------------------------------------
r58608 | normal | 2017-05-08 10:59:17 +0900 (Mon, 08 May 2017) | 10 lines
reduce rb_mutex_t size from 80 bytes to 72 bytes on 64-bit
We can use existing RVALUE flags to avoid adding a 4-byte
integer to store a boolean flag. This integer cost us 8 bytes
due to default (lack of) struct packing on x86-64
* thread_sync.c (MUTEX_ALLOW_TRAP): define as FL_USER1
(struct rb_mutex_struct): remove allow_trap
(rb_mutex_lock): adjust for flag check
(rb_mutex_allow_trap): adjust for flag set/unset
------------------------------------------------------------------------
r58607 | svn | 2017-05-08 10:59:13 +0900 (Mon, 08 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58606 | normal | 2017-05-08 10:59:12 +0900 (Mon, 08 May 2017) | 5 lines
benchmark/bm_vm2_fiber_switch.rb: check for fiber performance
There are currently no benchmarks for Fiber performance, I
should've committed this years ago when [Feature #10341] was
implemented.
------------------------------------------------------------------------
r58605 | svn | 2017-05-08 09:18:54 +0900 (Mon, 08 May 2017) | 1 line
* 2017-05-08
------------------------------------------------------------------------
r58604 | normal | 2017-05-08 09:18:53 +0900 (Mon, 08 May 2017) | 57 lines
reduce rb_mutex_t size from 160 to 80 bytes on 64-bit
Instead of relying on a native condition variable and mutex for
every Ruby Mutex object, use a doubly linked-list to implement a
waiter queue in the Mutex. The immediate benefit of this is
reducing the size of every Mutex object, as some projects have
many objects requiring synchronization.
In the future, this technique using a linked-list and on-stack
list node (struct mutex_waiter) should allow us to easily
transition to M:N threading model, as we can avoid the native
thread dependency to implement Mutex.
We already do something similar for autoload in variable.c,
and this was inspired by the Linux kernel wait queue (as
ccan/list is inspired by the Linux kernel linked-list).
Finaly, there are big performance improvements for Mutex
benchmarks, especially in contended cases:
measure target: real
name |trunk |built
----------------|------:|------:
loop_whileloop2 | 0.149| 0.148
vm2_mutex* | 0.893| 0.651
vm_thread_mutex1| 0.809| 0.624
vm_thread_mutex2| 2.608| 0.628
vm_thread_mutex3| 28.227| 0.881
Speedup ratio: compare with the result of `trunk' (greater is better)
name |built
----------------|------:
loop_whileloop2 | 1.002
vm2_mutex* | 1.372
vm_thread_mutex1| 1.297
vm_thread_mutex2| 4.149
vm_thread_mutex3| 32.044
Tested on AMD FX-8320 8-core at 3.5GHz
* thread_sync.c (struct mutex_waiter): new on-stack struct
(struct rb_mutex_struct): remove native lock/cond, use ccan/list
(rb_mutex_num_waiting): new function for debug_deadlock_check
(mutex_free): remove native_*_destroy
(mutex_alloc): initialize waitq, remove native_*_initialize
(rb_mutex_trylock): remove native_mutex_{lock,unlock}
(lock_func): remove
(lock_interrupt): remove
(rb_mutex_lock): rewrite waiting path to use native_sleep + ccan/list
(rb_mutex_unlock_th): rewrite to wake up from native_sleep
using rb_threadptr_interrupt
(rb_mutex_abandon_all): empty waitq
* thread.c (debug_deadlock_check): update for new struct
(rb_check_deadlock): ditto
[ruby-core:80913] [Feature #13517]
------------------------------------------------------------------------
r58603 | nobu | 2017-05-07 23:21:10 +0900 (Sun, 07 May 2017) | 4 lines
relative path as VPATH
* common.mk (ripper.c): use relative path as VPATH instead of
absolute path of the current working directory.
------------------------------------------------------------------------
r58602 | nobu | 2017-05-07 23:03:52 +0900 (Sun, 07 May 2017) | 1 line
parse.y: export rb_parser_fatal for ripper
------------------------------------------------------------------------
r58601 | nobu | 2017-05-07 22:40:56 +0900 (Sun, 07 May 2017) | 3 lines
stale targets
* common.mk (update-mspec, update-rubyspec): empty stale targets.
------------------------------------------------------------------------
r58600 | nobu | 2017-05-07 22:06:34 +0900 (Sun, 07 May 2017) | 4 lines
extract prereq.status
* tool/make-snapshot (package): extract static config values for
prereq and override dynamic values at runtime.
------------------------------------------------------------------------
r58599 | eregon | 2017-05-07 21:26:25 +0900 (Sun, 07 May 2017) | 1 line
Update specs to follow newlines added by r58596
------------------------------------------------------------------------
r58598 | eregon | 2017-05-07 21:17:21 +0900 (Sun, 07 May 2017) | 1 line
Rename spec/README to spec/README.md
------------------------------------------------------------------------
r58597 | svn | 2017-05-07 21:05:45 +0900 (Sun, 07 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58596 | svn | 2017-05-07 21:05:36 +0900 (Sun, 07 May 2017) | 1 line
* remove trailing spaces, append newline at EOF.
------------------------------------------------------------------------
r58595 | eregon | 2017-05-07 21:04:49 +0900 (Sun, 07 May 2017) | 8 lines
Add in-tree mspec and ruby/spec
* For easier modifications of ruby/spec by MRI developers.
* .gitignore: track changes under spec.
* spec/mspec, spec/rubyspec: add in-tree mspec and ruby/spec.
These files can therefore be updated like any other file in MRI.
Instructions are provided in spec/README.
[Feature #13156] [ruby-core:79246]
------------------------------------------------------------------------
r58594 | eregon | 2017-05-07 21:01:26 +0900 (Sun, 07 May 2017) | 3 lines
make update-rubyspec is no longer needed
* Kept a no-op for compatibility.
------------------------------------------------------------------------
r58593 | eregon | 2017-05-07 21:01:12 +0900 (Sun, 07 May 2017) | 1 line
Update README about ruby/spec
------------------------------------------------------------------------
r58592 | eregon | 2017-05-07 21:00:58 +0900 (Sun, 07 May 2017) | 2 lines
* spec/default.mspec: only require rbconfig if is it not already.
Useful when running spec/mspec/bin/mspec directly.
------------------------------------------------------------------------
r58591 | normal | 2017-05-07 17:06:02 +0900 (Sun, 07 May 2017) | 17 lines
vm_core.h (rb_thread_t): use 32-bit running_time_us
The current range based current values of:
TIME_QUANTUM_USEC=100000
RUBY_THREAD_PRIORITY_MAX=3
RUBY_THREAD_PRIORITY_MIN=-3
Gives a range of 12500..800000, plenty enough for a 32-bit
integer. Clamping this also reduces potential implementation
bugs between 32-bit and 64-bit platforms.
I may consider a further reduction to uint16_t in the future
for M:N threading, but some users may want slightly larger
time quantums.
* vm_core.h (rb_thread_t): use 32-bit running_time_us
------------------------------------------------------------------------
r58590 | normal | 2017-05-07 16:38:30 +0900 (Sun, 07 May 2017) | 7 lines
io.c (do_fcntl): update max FD for F_DUPFD_CLOEXEC, too
Somebody may pass 1030 (the value of F_DUPFD_CLOEXEC) to IO#fcntl
because they copied code from somewhere else. Ensure we know
about FDs created that way.
* io.c (do_fcntl): update max FD for F_DUPFD_CLOEXEC, too
------------------------------------------------------------------------
r58589 | stomar | 2017-05-07 16:18:10 +0900 (Sun, 07 May 2017) | 1 line
NEWS: Integer#{round,floor,ceil,truncate} [Bug #13420]
------------------------------------------------------------------------
r58588 | svn | 2017-05-07 13:26:38 +0900 (Sun, 07 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58587 | normal | 2017-05-07 13:26:37 +0900 (Sun, 07 May 2017) | 10 lines
variable.c: cleanup waitq upon thread death
* variable.c (autoload_reset): use idempotent list_del_init
(autoload_sleep): moved code from rb_autoload_load
(autoload_sleep_done): cleanup for use with rb_ensure
(rb_autoload_load): ensure list delete happens in case the
thread dies during sleep
* test/ruby/bug-13526.rb: new script for separate execution
* test/ruby/test_autoload.rb (test_bug_13526): new test
[ruby-core:81016] [Bug #13526]
------------------------------------------------------------------------
r58586 | stomar | 2017-05-07 04:58:12 +0900 (Sun, 07 May 2017) | 12 lines
make Integer#{round,floor,ceil,truncate} always return integer
* numeric.c (int_round): return integer (self) instead of float
for Integer#round with positive ndigits argument, because
conversion to float introduces errors for large integers.
* numeric.c (int_floor): ditto for Integer#floor.
* numeric.c (int_ceil): ditto for Integer#ceil.
* numeric.c (int_truncate): ditto for Integer#truncate.
* test/ruby/test_integer.rb: adjust test cases and add some more.
[ruby-core:80645] [Bug #13420]
------------------------------------------------------------------------
r58585 | svn | 2017-05-07 00:14:59 +0900 (Sun, 07 May 2017) | 1 line
* 2017-05-07
------------------------------------------------------------------------
r58584 | nobu | 2017-05-07 00:14:58 +0900 (Sun, 07 May 2017) | 6 lines
ripper/lexer.rb: nested indented heredoc
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): insert
stripped leading spaces as `on_ignored_sp` elements, so that the
original source can be reconsructed.
[ruby-core:80977] [Bug #13536]
------------------------------------------------------------------------
r58583 | nobu | 2017-05-06 23:12:30 +0900 (Sat, 06 May 2017) | 4 lines
fix up r58573
* common.mk: make the directory for extension shared library with
the timestamp directory.
------------------------------------------------------------------------
r58582 | stomar | 2017-05-06 16:28:40 +0900 (Sat, 06 May 2017) | 3 lines
math.c: improve docs for Math.sqrt
* math.c: [DOC] mention Integer.sqrt in docs for Math.sqrt.
------------------------------------------------------------------------
r58581 | stomar | 2017-05-06 16:18:49 +0900 (Sat, 06 May 2017) | 4 lines
numeric.c: remove mention of Bignum from docs
* numeric.c: [DOC] remove mention of Bignum from Integer#{+,-,*,/},
the return type does not depend on magnitude anymore.
------------------------------------------------------------------------
r58580 | stomar | 2017-05-06 16:17:41 +0900 (Sat, 06 May 2017) | 9 lines
numeric.c: revise docs
* numeric.c: [DOC] revise docs for Numeric, Integer, Float:
* nodoc Numeric#singleton_method_added
* mention that result for Integer#** might also be Complex
* add / simplify / fix some examples
* mention aliases
* fix rdoc formatting, typos, grammar
* clarifications and other improvements
------------------------------------------------------------------------
r58579 | duerst | 2017-05-06 13:42:58 +0900 (Sat, 06 May 2017) | 2 lines
delete enc/prelude.rb, because no longer needed
------------------------------------------------------------------------
r58578 | duerst | 2017-05-06 12:12:26 +0900 (Sat, 06 May 2017) | 3 lines
delete lib/unicode_normalize.rb, because no longer needed
(all content has been moved to string.c)
------------------------------------------------------------------------
r58577 | duerst | 2017-05-06 11:54:02 +0900 (Sat, 06 May 2017) | 5 lines
remove enc/prelude.rb from list of prelude files in common.mk
(This is a retry of r58559, it should work now that rubyspec does
no longer check for unicode_normalized to be required. See also
https://github.com/ruby/spec/commit/41176ead68b14011658c8abd0ebd67df2ae632fb.)
------------------------------------------------------------------------
r58576 | nobu | 2017-05-06 10:33:04 +0900 (Sat, 06 May 2017) | 5 lines
share `@@accept_charset`
* lib/cgi/{core,util}.rb: include CGI::Util not only extending, to
share `@@accept_charset` class variable, so that it is always
accessible. [ruby-core:80986] [Bug #13539]
------------------------------------------------------------------------
r58575 | nobu | 2017-05-06 10:01:52 +0900 (Sat, 06 May 2017) | 6 lines
string.c: fix types
* string.c (id_normalize, id_normalized_p): fix types, IDs should
be ID.
* string.c (unicode_normalize_common): ditto.
------------------------------------------------------------------------
r58574 | svn | 2017-05-06 09:54:23 +0900 (Sat, 06 May 2017) | 1 line
* 2017-05-06
------------------------------------------------------------------------
r58573 | nobu | 2017-05-06 09:54:22 +0900 (Sat, 06 May 2017) | 4 lines
timestamp for extensions
* common.mk: use the same timestamp file for architecture specific
directory as the file used in Makefiles under ext.
------------------------------------------------------------------------
r58572 | svn | 2017-05-05 01:47:18 +0900 (Fri, 05 May 2017) | 1 line
* 2017-05-05
------------------------------------------------------------------------
r58571 | normal | 2017-05-05 01:47:17 +0900 (Fri, 05 May 2017) | 10 lines
benchmark/bm_vm_thread_pass_flood.rb: add comment
I was about to write off this benchmark while working on GVL
improvements on multi-core systems.
However I noticed it exposes a weakness in my work-in-progress
code when I tested on an old single CPU system. Further testing
reveals setting CPU affinity ("schedtool -a 0x1" on Linux) on a
modern multi-core system is enough to reproduce the problem
exposed by this benchmark.
------------------------------------------------------------------------
r58570 | mame | 2017-05-04 22:42:47 +0900 (Thu, 04 May 2017) | 5 lines
time.c: avoid taking a pointer to a member of packed struct
clang 4.0.0 emitted a warning: "taking address of packed member
'subsecx' of class or structure 'vtm' may result in an unaligned
pointer value [-Waddress-of-packed-member]".
------------------------------------------------------------------------
r58569 | stomar | 2017-05-04 22:19:43 +0900 (Thu, 04 May 2017) | 1 line
string.c: [DOC] improve docs for String.new
------------------------------------------------------------------------
r58568 | ktsj | 2017-05-04 19:17:12 +0900 (Thu, 04 May 2017) | 3 lines
internal.h (rb_gc_resurrect): remove stale declaration
rb_gc_resurrect is no longer defined since r47444.
------------------------------------------------------------------------
r58567 | ktsj | 2017-05-04 17:59:01 +0900 (Thu, 04 May 2017) | 1 line
string.c: [DOC] Properly refer to keyword argument by its name
------------------------------------------------------------------------
r58566 | ktsj | 2017-05-04 17:58:59 +0900 (Thu, 04 May 2017) | 9 lines
dir.c: [DOC] Properly refer to keyword argument by its name [Fix GH-1543]
enc is the name of the variable used in the example, not the name of the
keyword argument (encoding).
The documentation used to wrongly suggest that the keyword argument name was
"enc" which could cause people try try to call `Dir.open("thing", enc: "utf-8")`
Author: Olivier Lacan <hi@olivierlacan.com>
------------------------------------------------------------------------
r58565 | normal | 2017-05-04 17:55:54 +0900 (Thu, 04 May 2017) | 15 lines
benchmark/bm_vm1_gc_wb_*.rb: fix GC.start args for invalid keyword
"lazy_sweep" does not appear to have ever been a valid kwarg
for GC.start, however the opposite of "lazy_sweep" appears
to be "immediate_sweep". So use immediate_sweep, and flip
the boolean value of each arg.
I guess this only started failing with r56981 in Dec 2016
("class.c: missing unknown_keyword_error",
commit e3f0cca2f26ba44c810ac980cdff7dda129ae533)
* benchmark/bm_vm1_gc_wb_ary.rb: "lazy_sweep: false" => "immediate_sweep: true"
* benchmark/bm_vm1_gc_wb_ary_promoted.rb: ditto
* benchmark/bm_vm1_gc_wb_obj.rb: ditto
* benchmark/bm_vm1_gc_wb_obj_promoted.rb: ditto
------------------------------------------------------------------------
r58564 | ktsj | 2017-05-04 17:13:17 +0900 (Thu, 04 May 2017) | 1 line
gems/bundled_gems: Update to power_assert 1.0.2
------------------------------------------------------------------------
r58563 | normal | 2017-05-04 16:18:33 +0900 (Thu, 04 May 2017) | 5 lines
.gitignore: ignore benchmark/bm_require.data
Followup-to r58562 in SVN
* .gitignore: ignore benchmark/bm_require.data
------------------------------------------------------------------------
r58562 | normal | 2017-05-04 16:08:39 +0900 (Thu, 04 May 2017) | 2 lines
benchmark: ignore bm_require.data/
------------------------------------------------------------------------
r58561 | nobu | 2017-05-04 15:54:11 +0900 (Thu, 04 May 2017) | 5 lines
parse.y: make shared string modifiable
* parse.y (dedent_string): ensure that the string is modifiable,
not to set the length of shared string.
[ruby-core:80987] [Bug #13540]
------------------------------------------------------------------------
r58560 | duerst | 2017-05-04 14:07:20 +0900 (Thu, 04 May 2017) | 1 line
revert 58559, because it fails on travis (rubyspec problem)
------------------------------------------------------------------------
r58559 | duerst | 2017-05-04 13:53:33 +0900 (Thu, 04 May 2017) | 1 line
remove enc/prelude.rb from list of prelude files in common.mk
------------------------------------------------------------------------
r58558 | duerst | 2017-05-04 11:16:27 +0900 (Thu, 04 May 2017) | 6 lines
refactor common parts of unicode normalization functions into unicode_normalize_common
In string.c, refactor the common parts (requiring of unicode_normalize/normalize.rb,
check of number of arguments) of the unicode normalization functions
(rb_str_unicode_normalize, rb_str_unicode_normalize_bang, rb_str_unicode_normalized_p)
into the new function unicode_normalize_common.
------------------------------------------------------------------------
r58557 | svn | 2017-05-04 11:13:12 +0900 (Thu, 04 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58556 | normal | 2017-05-04 11:13:11 +0900 (Thu, 04 May 2017) | 8 lines
benchmark: new single-threaded read/write benchmark with pipe
This is currently for testing GVL performance in the uncontended
case: IO#write and IO#read unconditionally release GVL for
blocking I/O with pipe.
It will also be interesting to see how this changes if we switch
to M:N threading model.
------------------------------------------------------------------------
r58555 | duerst | 2017-05-04 11:00:19 +0900 (Thu, 04 May 2017) | 9 lines
move definition of String#unicode_normalized? to C to make sure it is documented
* lib/unicode_normalize.rb: Remove definition of String#unicode_normalized?
(including documentation). Leave a comment explaining that the file is now empty.
* string.c: Define String#unicode_normalized? in rb_str_unicode_normalized_p in C,
(including documentation)
* lib/unicode_normalize/normalize.rb: Remove (re)definition of
String#unicode_normalized? to avoid warnings (when $VERBOSE==true) and
problems when String is frozen
------------------------------------------------------------------------
r58554 | svn | 2017-05-04 10:36:53 +0900 (Thu, 04 May 2017) | 1 line
* 2017-05-04
------------------------------------------------------------------------
r58553 | duerst | 2017-05-04 10:36:52 +0900 (Thu, 04 May 2017) | 9 lines
move definition of String#unicode_normalize! to C to make sure it is documented
* lib/unicode_normalize.rb: Remove definition of String#unicode_normalize!
(including documentation)
* string.c: Define String#unicode_normalize! in rb_str_unicode_normalize_bang in C,
(including documentation)
* lib/unicode_normalize/normalize.rb: Remove (re)definition of
String#unicode_normalize! to avoid warnings (when $VERBOSE==true) and
problems when String is frozen
------------------------------------------------------------------------
r58552 | kou | 2017-05-03 21:25:17 +0900 (Wed, 03 May 2017) | 8 lines
rss: Accept empty text element as valid element
Parser has been accepted it but XML serializer wasn't accepted.
Reported by stefano frabetti. Thanks!!!
[ruby-core:80965] [Bug #13531]
------------------------------------------------------------------------
r58551 | svn | 2017-05-03 21:18:37 +0900 (Wed, 03 May 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r58550 | duerst | 2017-05-03 21:18:37 +0900 (Wed, 03 May 2017) | 9 lines
move definition of String#unicode_normalize to C to make sure it is documented
* lib/unicode_normalize.rb: Remove definition of String#unicode_normalize
(including documentation)
* string.c: Define String#unicode_normalize in rb_str_unicode_normalize in C,
(including documentation)
* lib/unicode_normalize/normalize.rb: Remove (re)definition of
String#unicode_normalize to avoid warnings (when $VERBOSE==true) and
problems when String is frozen
------------------------------------------------------------------------
r58549 | shugo | 2017-05-03 20:32:22 +0900 (Wed, 03 May 2017) | 3 lines
net/imap: handle timeouts
Patch by Pavel Rosicky. [Feature #13379] [ruby-core:80440]
------------------------------------------------------------------------
r58548 | kazu | 2017-05-03 11:02:50 +0900 (Wed, 03 May 2017) | 3 lines
Use `dd` instead of `head -c`
[Bug #13538] [ruby-dev:50106]
------------------------------------------------------------------------
r58547 | kazu | 2017-05-03 10:44:52 +0900 (Wed, 03 May 2017) | 1 line
Fix NoMethodError [ci skip]
------------------------------------------------------------------------
r58546 | svn | 2017-05-03 02:48:10 +0900 (Wed, 03 May 2017) | 1 line
* 2017-05-03
------------------------------------------------------------------------
r58545 | nobu | 2017-05-03 02:48:10 +0900 (Wed, 03 May 2017) | 5 lines
ripper/lexer.rb: nested indented heredoc
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): fix for
nested indedented here documents, where `Elem`s are nested too.
[ruby-core:80977] [Bug #13536]
------------------------------------------------------------------------
r58544 | nobu | 2017-05-02 22:16:04 +0900 (Tue, 02 May 2017) | 4 lines
.travis.yml: tweek after-update
* .travis.yml (before_script): get rid of making miniruby at
after-update.
------------------------------------------------------------------------
r58543 | nobu | 2017-05-02 21:45:07 +0900 (Tue, 02 May 2017) | 1 line
mkconfig.rb: remove cross_compiling
------------------------------------------------------------------------
r58542 | nobu | 2017-05-02 21:45:04 +0900 (Tue, 02 May 2017) | 4 lines
common.mk: BOOTSTRAPRUBY for enc.mk
* common.mk ($(ENC_MK)): use $(BOOTSTRAPRUBY) as well as $(RBCONFIG),
instead of $(MINIRUBY).
------------------------------------------------------------------------
r58541 | kazu | 2017-05-02 20:26:28 +0900 (Tue, 02 May 2017) | 1 line
Use `\A` and `\z` instead of `^` and `$` [ci skip]
------------------------------------------------------------------------
r58540 | nobu | 2017-05-02 16:35:20 +0900 (Tue, 02 May 2017) | 4 lines
internal.h: rb_raise_static
* internal.h (rb_raise_static): raise with a static message string
literal.
------------------------------------------------------------------------
r58539 | duerst | 2017-05-02 14:46:31 +0900 (Tue, 02 May 2017) | 6 lines
remove unnecessary conditions in lib/unicode_normalize.rb
Because the methods in lib/unicode_normalize.rb are overwritten
by those in lib/unicode_normalize/normalize.rb as soon as one
of them is called, the check for whether UnicodeNormalized is
defined or not is no longer necessary.
------------------------------------------------------------------------
r58538 | duerst | 2017-05-02 14:34:25 +0900 (Tue, 02 May 2017) | 5 lines
rework definition of String#unicode_normalize! and #unicode_normalized?
simplify String#unicode_normalize! and #unicode_normalized?
in lib/unicode_normalize.rb by redefining them
in lib/unicode_normalize/normalize.rb
------------------------------------------------------------------------
r58537 | duerst | 2017-05-02 14:15:04 +0900 (Tue, 02 May 2017) | 4 lines
rework definition of String#unicode_normalize
simplify String#unicode_normalize in lib/unicode_normalize.rb
by redefining it in lib/unicode_normalize/normalize.rb
------------------------------------------------------------------------
r58536 | svn | 2017-05-02 11:40:47 +0900 (Tue, 02 May 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58535 | normal | 2017-05-02 11:40:46 +0900 (Tue, 02 May 2017) | 11 lines
more benchmarks for SizedQueue and ConditionVariable
I'm working on patches to improve everything in thread_sync.c,
add these to track progress.
* benchmark/bm_vm_thread_sized_queue.rb: add description
* benchmark/bm_vm_thread_condvar1.rb: new benchmark
* benchmark/bm_vm_thread_condvar2.rb: ditto
* benchmark/bm_vm_thread_sized_queue2.rb: ditto
* benchmark/bm_vm_thread_sized_queue3.rb: ditto
* benchmark/bm_vm_thread_sized_queue4.rb: ditto
------------------------------------------------------------------------
r58534 | kosaki | 2017-05-02 11:19:32 +0900 (Tue, 02 May 2017) | 4 lines
nogvl_wait_for_single_fd must wait as its name
poll(fds, n, 0) mean no timeout and immediately return. If you want to
wait something, you need to use -1 instead.
------------------------------------------------------------------------
r58533 | svn | 2017-05-02 00:17:33 +0900 (Tue, 02 May 2017) | 1 line
* 2017-05-02
------------------------------------------------------------------------
r58532 | nobu | 2017-05-02 00:17:32 +0900 (Tue, 02 May 2017) | 4 lines
thread.c: suppress warnings [ci skip]
* thread.c (fill_thread_id_string): cast to void pointer to
suppress warnings when pthread_t is not pointer type.
------------------------------------------------------------------------
r58531 | svn | 2017-05-01 20:40:47 +0900 (Mon, 01 May 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r58530 | hsbt | 2017-05-01 20:40:46 +0900 (Mon, 01 May 2017) | 11 lines
Merge rubygems-2.6.12 from rubygems/rubygems.
* Details of changes:
https://github.com/rubygems/rubygems/blob/009080040279282d7b8ddd09acab41719cb4ba00/History.txt#L3
* I kept ko1's commmit related thread issue. It's not merged 2.6 branch on rubygems.
https://github.com/ruby/ruby/commit/1721dfa0ea963a85d4ac1e3415eb18ef427d4d36
* I removed test_realworld_default_gem from rubygems-2.6.12. It fails on
Ruby trunk. Because it's differences of test suite and environment.
https://github.com/rubygems/rubygems/pull/1899
------------------------------------------------------------------------
r58529 | hsbt | 2017-05-01 19:20:35 +0900 (Mon, 01 May 2017) | 4 lines
Merge gemspec from ruby/webrick.
* Bump version to 1.4.0.beta1. Because https://rubygems.org/gems/webrick
is already reserved old version of webrick.
------------------------------------------------------------------------
r58528 | nobu | 2017-05-01 16:50:53 +0900 (Mon, 01 May 2017) | 5 lines
object.c: Kernel#yield_self
* object.c (rb_obj_yield_self): new method which yields the
receiver and returns the result.
[ruby-core:46320] [Feature #6721]
------------------------------------------------------------------------
r58527 | kazu | 2017-05-01 11:42:34 +0900 (Mon, 01 May 2017) | 4 lines
Fix typo in documentation [ci skip]
[Fix GH-1599]
Author: Liam Sean Brady <liamseanbrady@gmail.com>
------------------------------------------------------------------------
r58526 | nobu | 2017-05-01 11:01:38 +0900 (Mon, 01 May 2017) | 5 lines
zlib.c: no buf_filled in zstream
* ext/zlib/zlib.c (zstream): manage capacity and size of `buf`
instead of size and separated member `buf_filled`. reported by
Christian Jalio (jalio) at https://hackerone.com/reports/211958
------------------------------------------------------------------------
r58525 | nobu | 2017-05-01 09:35:02 +0900 (Mon, 01 May 2017) | 4 lines
zlib.c: zstream_buffer_ungetbyte
* ext/zlib/zlib.c (zstream_buffer_ungetbyte): simplify by using
zstream_buffer_ungets().
------------------------------------------------------------------------
r58524 | nobu | 2017-05-01 09:35:00 +0900 (Mon, 01 May 2017) | 5 lines
zlib.c: zstream_expand_buffer_non_stream
* ext/zlib/zlib.c (zstream_expand_buffer_non_stream): rename from
zstream_expand_buffer_without_gvl() and replace duplicate code
in zstream_expand_buffer().
------------------------------------------------------------------------
r58523 | nobu | 2017-05-01 09:32:56 +0900 (Mon, 01 May 2017) | 7 lines
rational.c: canonicalization case
* rational.c (float_numerator, float_denominator): fix for
canonicalization case where `Float#to_r` could return an Integer
not a Rational. although mathn.rb has been removed in the
trunk, fix for the backport purpose.
[ruby-core:80942] [Bug #13528]
------------------------------------------------------------------------
r58521 | svn | 2017-05-01 06:18:31 +0900 (Mon, 01 May 2017) | 1 line
* 2017-05-01
------------------------------------------------------------------------
r58520 | usa | 2017-05-01 06:18:31 +0900 (Mon, 01 May 2017) | 4 lines
setup.mak have to handle `GIT` and `HAVE_GIT`
* win32/setup.mak: seems to be forgotten to commit at r58295.
------------------------------------------------------------------------
r58514 | usa | 2017-04-30 22:34:18 +0900 (Sun, 30 Apr 2017) | 4 lines
Typo
* tool/generate-backport-changelog.rb: fixed a typo.
------------------------------------------------------------------------
r58512 | nobu | 2017-04-30 19:53:42 +0900 (Sun, 30 Apr 2017) | 4 lines
git-refresh: fix for Solaris
* tool/git-refresh: expand for each words.
[ruby-dev:50102] [Bug #13522]
------------------------------------------------------------------------
r58511 | normal | 2017-04-30 18:06:39 +0900 (Sun, 30 Apr 2017) | 3 lines
thread_sync.c: document SizedQueue#clear correctly [ci skip]
* thread_sync.c (rb_szqueue_clear): fix class name in RDoc
------------------------------------------------------------------------
r58510 | svn | 2017-04-30 16:24:37 +0900 (Sun, 30 Apr 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58509 | normal | 2017-04-30 16:24:36 +0900 (Sun, 30 Apr 2017) | 4 lines
new benchmark for SizedQueue
The performance of SizedQueue is a bit more complex than
regular Queue, so it deserves a separate benchmark.
------------------------------------------------------------------------
r58508 | svn | 2017-04-30 12:52:07 +0900 (Sun, 30 Apr 2017) | 1 line
* 2017-04-30
------------------------------------------------------------------------
r58507 | nobu | 2017-04-30 12:52:06 +0900 (Sun, 30 Apr 2017) | 5 lines
git-refresh: fix for Solaris
* tool/git-refresh: unset variable `branch` if it is null, to get
rid of substitutions which are not supported old Solaris.
[ruby-dev:50102] [Bug #13522]
------------------------------------------------------------------------
r58506 | normal | 2017-04-29 19:50:59 +0900 (Sat, 29 Apr 2017) | 8 lines
load.c: remove a redundant rb_str_freeze call
rb_file_expand_path_fast already performs the buffer shrinking
rb_str_freeze does (via expand_path macro in file.c); the
result of rb_fstring is always frozen, and that rb_fstring
call is the last use of `expanded_path` in its scope.
load.c (rb_construct_expanded_load_path): remove rb_str_freeze
------------------------------------------------------------------------
r58505 | nobu | 2017-04-29 19:27:46 +0900 (Sat, 29 Apr 2017) | 4 lines
proc.c: recursion loop
* proc.c (rb_block_min_max_arity, rb_method_entry_min_max_arity):
turn loop by recursion into goto.
------------------------------------------------------------------------
r58504 | svn | 2017-04-29 11:58:54 +0900 (Sat, 29 Apr 2017) | 1 line
* 2017-04-29
------------------------------------------------------------------------
r58503 | nobu | 2017-04-29 11:58:53 +0900 (Sat, 29 Apr 2017) | 6 lines
node.h: sign-extend
* node.h (nd_line): should sign-extend. shifting `VALUE` extends
with zero bits if `sizeof(VALUE)` equals to `sizeof(int)`. the
zero bits are truncated if `sizeof(VALUE)` is bigger enough.
[ruby-core:80920] [Bug #13523]
------------------------------------------------------------------------
r58502 | hsbt | 2017-04-28 21:14:56 +0900 (Fri, 28 Apr 2017) | 5 lines
Bump version to gdbm-2.0.0.beta1
* Merge from ruby/gdbm.
* gdbm gem is already registered in rubygems.org. I skip shipped
version of 0.x and 1.x. Therefore We need to use 2.x.
------------------------------------------------------------------------
r58501 | nobu | 2017-04-28 20:42:58 +0900 (Fri, 28 Apr 2017) | 1 line
sprintf.c: remove unused variable
------------------------------------------------------------------------
r58500 | nobu | 2017-04-28 18:50:43 +0900 (Fri, 28 Apr 2017) | 1 line
parse.y: set_line_body is not used in ripper
------------------------------------------------------------------------
r58499 | nobu | 2017-04-28 17:06:33 +0900 (Fri, 28 Apr 2017) | 4 lines
parse.y: fix line in rescue
* parse.y (set_line_body, primary): fix line number of bodystmt as
the beginning of the block. [ruby-core:79388] [Bug #13181]
------------------------------------------------------------------------
r58498 | nobu | 2017-04-28 14:08:44 +0900 (Fri, 28 Apr 2017) | 4 lines
sprintf.c: ruby_ultoa
* sprintf.c (ruby_ultoa): prefixed to get rid of conflict with
a MSVC library function.
------------------------------------------------------------------------
r58497 | nobu | 2017-04-28 11:10:51 +0900 (Fri, 28 Apr 2017) | 7 lines
sprintf.c: format by utility functions
* sprintf.c (rb_str_format, fmt_setup): format by utility
functions in vsnprintf.c instead of `snprintf`.
* sprintf.c (rb_str_format): format and append by `rb_str_catf`
instead of formatting by `snprintf` and then copy.
------------------------------------------------------------------------
r58496 | svn | 2017-04-28 11:05:55 +0900 (Fri, 28 Apr 2017) | 1 line
* 2017-04-28
------------------------------------------------------------------------
r58495 | nobu | 2017-04-28 11:05:54 +0900 (Fri, 28 Apr 2017) | 4 lines
sprintf.c: fix one-off bug
* sprintf.c (rb_str_format): `CHECK` just before `FILL_`, but
after another `PUSH`. fix one-off bug.
------------------------------------------------------------------------
r58494 | nobu | 2017-04-27 21:30:55 +0900 (Thu, 27 Apr 2017) | 6 lines
fix ripper prereq
* common.mk (ext/ripper/ripper.c): fix VPATH when out-of-place
build, and id.h was created in the build directory too. it has
to include the build directory, i.e., the current directory
before `cd`.
------------------------------------------------------------------------
r58493 | eregon | 2017-04-27 21:07:43 +0900 (Thu, 27 Apr 2017) | 6 lines
Send the backtrace of the circular require warning as a single String to Warning.warn
* load.c: send as a single string.
* error.c: expose the string formatted by rb_warning as rb_warning_string().
* test/ruby/test_exception.rb: update tests.
[ruby-core:80850] [Bug #13505]
------------------------------------------------------------------------
r58492 | shyouhei | 2017-04-27 13:21:04 +0900 (Thu, 27 Apr 2017) | 37 lines
refactor newhash (revision 58463 another try) [fix GH-1600]
* st.c (rb_hash_bulk_insert): new API to bulk insert entries
into a hash. Given arguments are first inserted into the
table at once, then reindexed. This is faster than inserting
things using rb_hash_aset() one by one.
This arrangement (rb_ prefixed function placed in st.c) is
unavoidable because it both touches table internal and write
barrier at once.
* internal.h: delcare the new function.
* hash.c (rb_hash_s_create): use the new function.
* vm.c (core_hash_merge): ditto.
* insns.def (newhash): ditto.
* test/ruby/test_hash.rb: more coverage on hash creation.
* test/ruby/test_literal.rb: ditto.
-----------------------------------------------------------
benchmark results:
minimum results in each 7 measurements.
Execution time (sec)
name before after
loop_whileloop2 0.136 0.137
vm2_bighash* 1.249 0.623
Speedup ratio: compare with the result of `before' (greater is better)
name after
loop_whileloop2 0.996
vm2_bighash* 2.004
------------------------------------------------------------------------
r58491 | normal | 2017-04-27 12:16:39 +0900 (Thu, 27 Apr 2017) | 7 lines
load.c: make fstrings from C strings sooner
The underlying string objects will become fstrings anyways,
so create the fstring directly from the C string to reduce
intermediate garbage.
* load.c (rb_provide, rb_provide): create fstring
------------------------------------------------------------------------
r58490 | nobu | 2017-04-27 05:13:07 +0900 (Thu, 27 Apr 2017) | 5 lines
error.c: send as a single string
* error.c (rb_warn_m): send the arguments as a single string
concatenated with a newline, so it can be filtered easily.
[ruby-core:80875] [Feature #12944]
------------------------------------------------------------------------
r58489 | svn | 2017-04-27 05:09:35 +0900 (Thu, 27 Apr 2017) | 1 line
* 2017-04-27
------------------------------------------------------------------------
r58488 | stomar | 2017-04-27 05:09:34 +0900 (Thu, 27 Apr 2017) | 5 lines
error.c: improve docs
* error.c: [DOC] fix rdoc formatting (make sure `Warning.warn' is
displayed verbatim; rdoc would render it as a link named `#warn'),
use capitalized "Ruby", fix a typo.
------------------------------------------------------------------------
r58487 | nobu | 2017-04-26 17:11:32 +0900 (Wed, 26 Apr 2017) | 5 lines
error.c: splat warn arguments
* error.c (rb_warn_m): print array arguments with splatting.
it is often used with `caller`.
[ruby-core:80849] [Feature #12944]
------------------------------------------------------------------------
r58486 | nobu | 2017-04-26 09:30:05 +0900 (Wed, 26 Apr 2017) | 1 line
range.c: remove no longer used variable
------------------------------------------------------------------------
r58485 | normal | 2017-04-26 05:20:08 +0900 (Wed, 26 Apr 2017) | 1 line
thread_sync.c (rb_mutex_lock): spelling fix [ci skip]
------------------------------------------------------------------------
r58484 | eregon | 2017-04-26 04:34:07 +0900 (Wed, 26 Apr 2017) | 3 lines
Use require to load rbconfig in default.mspec
* Otherwise it would be loaded twice.
------------------------------------------------------------------------
r58483 | naruse | 2017-04-26 04:13:26 +0900 (Wed, 26 Apr 2017) | 1 line
suppress_warning
------------------------------------------------------------------------
r58482 | ko1 | 2017-04-26 02:50:34 +0900 (Wed, 26 Apr 2017) | 7 lines
add timeout.
* test/ruby/test_trace.rb (test_trace_stackoverflow): sometimes this test
was stopped forever and killed by test process forcibly. However, this
test only checks if this code cause some critical failure such as SEGV.
So that we can add timeout for this code.
------------------------------------------------------------------------
r58481 | svn | 2017-04-26 02:24:07 +0900 (Wed, 26 Apr 2017) | 1 line
* 2017-04-26
------------------------------------------------------------------------
r58480 | ko1 | 2017-04-26 02:24:06 +0900 (Wed, 26 Apr 2017) | 1 line
revert r58478 and r58479 because they do not support not in-place build
------------------------------------------------------------------------
r58479 | eregon | 2017-04-25 21:45:36 +0900 (Tue, 25 Apr 2017) | 3 lines
Use require_relative to load rbconfig in default.mspec
* Otherwise it would load it twice.
------------------------------------------------------------------------
r58478 | eregon | 2017-04-25 21:45:25 +0900 (Tue, 25 Apr 2017) | 3 lines
No need to pass the config file to mspec as mspec finds it itself
* It would also #load (because .mspec cannot be #require'd) it twice.
------------------------------------------------------------------------
r58477 | eregon | 2017-04-25 21:45:14 +0900 (Tue, 25 Apr 2017) | 1 line
Remove useless else which produced a warning
------------------------------------------------------------------------
r58476 | eregon | 2017-04-25 20:42:43 +0900 (Tue, 25 Apr 2017) | 6 lines
no longer rescue exceptions of #<=> when initializing a Range
* range.c (range_init): no longer hide the user exception
with a ArgumentError, just let the user exception go through.
* test/ruby/test_range.rb (test_new): add tests.
[Feature #7688]
------------------------------------------------------------------------
r58475 | eregon | 2017-04-25 20:42:31 +0900 (Tue, 25 Apr 2017) | 5 lines
no longer rescue exceptions of #coerce in Integer#step
* numeric.c (num_step_negative_p): no more error hiding.
* test/ruby/test_float.rb, test/ruby/test_numeric.rb:
follow the change. [Feature #7688]
------------------------------------------------------------------------
r58474 | eregon | 2017-04-25 20:42:20 +0900 (Tue, 25 Apr 2017) | 5 lines
no longer rescue exceptions in numeric comparison operations
* numeric.c (do_coerce): no more error hiding.
* test/ruby/test_numeric.rb: follow the change.
[Feature #7688]
------------------------------------------------------------------------
r58473 | hsbt | 2017-04-25 18:23:04 +0900 (Tue, 25 Apr 2017) | 6 lines
Import gemspec
Import gemspec and test file from ruby/webrick.
* webrick.gemspec: Update files and dependency for standalone gem.
* test/webrick/utils.rb: Added explicitly loading of EnvUtil for
test suite without ruby core test suite.
------------------------------------------------------------------------
r58472 | eregon | 2017-04-25 18:10:46 +0900 (Tue, 25 Apr 2017) | 4 lines
Document the Warning module and warn method
* error.c (Warning): add documentation. [Feature #13504]
Author: Jeremy Evans <code@jeremyevans.net>
------------------------------------------------------------------------
r58471 | nobu | 2017-04-25 17:17:24 +0900 (Tue, 25 Apr 2017) | 4 lines
load.c: backtrace of circular require
* load.c (load_lock): print backtrace of circular require via
`Warning.warn` [ruby-core:80850] [Bug #13505]
------------------------------------------------------------------------
r58470 | hsbt | 2017-04-25 16:55:56 +0900 (Tue, 25 Apr 2017) | 5 lines
Import gemspec and test file changes from ruby/gdbm.
* gdbm.gemspec: Update basic configuraiton for standalone gdbm gem.
* test/gdbm/test_gdbm.rb: In standalone environment, It needs to
explicit loading of EnvUtil module for test suite.
------------------------------------------------------------------------
r58469 | svn | 2017-04-25 15:51:35 +0900 (Tue, 25 Apr 2017) | 1 line
* 2017-04-25
------------------------------------------------------------------------
r58468 | shyouhei | 2017-04-25 15:51:34 +0900 (Tue, 25 Apr 2017) | 4 lines
fix macro expansion bug
This previous "key" macro argument accidentally replaced `(ptr)->key` part.
------------------------------------------------------------------------
r58467 | nobu | 2017-04-24 20:52:14 +0900 (Mon, 24 Apr 2017) | 1 line
tool/git-refresh: fix branch operations
------------------------------------------------------------------------
r58466 | nobu | 2017-04-24 15:17:55 +0900 (Mon, 24 Apr 2017) | 5 lines
parse.y: args tail at error
* parse.y (new_args_tail_gen): abandon parsing arguments after
error. reported by ilsani Martino Sani (ilsani) at
https://hackerone.com/reports/221201
------------------------------------------------------------------------
r58465 | nobu | 2017-04-24 15:17:54 +0900 (Mon, 24 Apr 2017) | 6 lines
parse.y: rb_parser_fatal
* parse.y (rb_parser_fatal): abort compilation on internal parser
error. rb_bug() is generic use but not useful for debugging the
parser. this function dumps internal states, and continues with
enabling yydebug output to stderr for the parser stack dump.
------------------------------------------------------------------------
r58464 | nobu | 2017-04-24 13:20:02 +0900 (Mon, 24 Apr 2017) | 1 line
Get rid of unnecessary GCC extension
------------------------------------------------------------------------
r58463 | shyouhei | 2017-04-24 10:40:51 +0900 (Mon, 24 Apr 2017) | 5 lines
revert newhash refactoring
We need to fix GC bug before merging this. Revert revisions
58452, 58435, 58434, 58428, 58427 in this order.
------------------------------------------------------------------------
r58462 | svn | 2017-04-24 01:19:23 +0900 (Mon, 24 Apr 2017) | 1 line
* 2017-04-24
------------------------------------------------------------------------
r58461 | naruse | 2017-04-24 01:19:23 +0900 (Mon, 24 Apr 2017) | 5 lines
Allow Net::HTTP to fetch user/pass from http_proxy
Note that this feature is enabled only on environment variables are
multi-user safe. In this time the list includes Linux, FreeBSD, or
Darwin. [Bug #12921]
------------------------------------------------------------------------
r58460 | naruse | 2017-04-24 01:19:22 +0900 (Mon, 24 Apr 2017) | 1 line
suppress warning: shadowing outer local variable
------------------------------------------------------------------------
r58459 | nobu | 2017-04-23 23:51:08 +0900 (Sun, 23 Apr 2017) | 1 line
Add diagnostic reports section header [ci skip]
------------------------------------------------------------------------
r58458 | nobu | 2017-04-23 23:47:31 +0900 (Sun, 23 Apr 2017) | 1 line
assert_syntax_error returns the exception [ci skip]
------------------------------------------------------------------------
r58457 | nobu | 2017-04-23 10:31:37 +0900 (Sun, 23 Apr 2017) | 1 line
Document parse.y instead of ext/ripper/ripper.c
------------------------------------------------------------------------
r58456 | nobu | 2017-04-23 10:31:36 +0900 (Sun, 23 Apr 2017) | 1 line
ext/dl has been removed already [ci skip]
------------------------------------------------------------------------
r58455 | nobu | 2017-04-23 10:23:30 +0900 (Sun, 23 Apr 2017) | 4 lines
use $(srcdir).
* win32/Makefile.sub (enc/jis/props.h): build it in not builddir,
but in srcdir.
------------------------------------------------------------------------
r58454 | nobu | 2017-04-23 10:04:40 +0900 (Sun, 23 Apr 2017) | 4 lines
Refactor "%f" % Inf/NaN
* sprintf.c (rb_str_format): as for non-finite float, calculate
the exact needed size with the space flag.
------------------------------------------------------------------------
r58453 | nobu | 2017-04-23 10:04:39 +0900 (Sun, 23 Apr 2017) | 5 lines
Fix space flag when Inf/NaN and width==3
* sprintf.c (rb_str_format): while `"% 2f"` and `"% 4f"` result in
`" Inf"` and `" Inf"` respectively, `"% 3f"` results in
`"Inf"` (no space).
------------------------------------------------------------------------
r58452 | ko1 | 2017-04-23 09:20:27 +0900 (Sun, 23 Apr 2017) | 5 lines
mark Hash keys correctly.
* hash.c (rb_hash_new_from_object): same as r58434.
Newly created frozen objects are not referred from any roots/objects.
------------------------------------------------------------------------
r58451 | nobu | 2017-04-23 01:26:15 +0900 (Sun, 23 Apr 2017) | 1 line
Ignore enc/jis/props.h
------------------------------------------------------------------------
r58450 | svn | 2017-04-23 01:19:13 +0900 (Sun, 23 Apr 2017) | 1 line
* 2017-04-23
------------------------------------------------------------------------
r58449 | stomar | 2017-04-23 01:19:12 +0900 (Sun, 23 Apr 2017) | 1 line
test/test_prime.rb: update method name in comment
------------------------------------------------------------------------
r58448 | nobu | 2017-04-22 17:32:33 +0900 (Sat, 22 Apr 2017) | 6 lines
parse.y: fix compile_error format
* parse.y (ripper_compile_error, parser_compile_error): declare as
PRINTF_ARGS attribute.
* parse.y (id_is_var_gen): fix format specifier for string value.
------------------------------------------------------------------------
r58447 | nobu | 2017-04-22 17:19:34 +0900 (Sat, 22 Apr 2017) | 5 lines
test_file_exhaustive.rb: check case-sensitive fs
* test/ruby/test_file_exhaustive.rb (test_expand_path): dump
expanded file name, not only appended char, for case-sensitive
filesystem. [ruby-dev:50093] [Bug #13489]
------------------------------------------------------------------------
r58446 | nobu | 2017-04-22 17:19:33 +0900 (Sat, 22 Apr 2017) | 1 line
adjust indent
------------------------------------------------------------------------
r58443 | kazu | 2017-04-22 11:04:35 +0900 (Sat, 22 Apr 2017) | 1 line
Remove nonexistent files and rename some files
------------------------------------------------------------------------
r58442 | normal | 2017-04-22 10:08:15 +0900 (Sat, 22 Apr 2017) | 16 lines
define PACKED_STRUCT_UNALIGNED correctly
Defining PACKED_STRUCT_UNALIGNED to a noop in ruby/config.h (via
`configure') prevents the definition in include/ruby/defines.h
from working
This should have been fixed in r46914, so there's a size
regression for some objects since Ruby 2.2+. I do not believe
we can backport to existing releases, either, since it can
affect ABI.
Add a test for Time objects on common x86-based platforms to
check for future regressions.
* configure.in: remove PACKED_STRUCT_UNALIGNED definition
* test/ruby/test_time.rb (test_memsize): new test for x86
------------------------------------------------------------------------
r58441 | nobu | 2017-04-22 09:27:14 +0900 (Sat, 22 Apr 2017) | 1 line
Add sha512
------------------------------------------------------------------------
r58440 | nobu | 2017-04-22 09:18:08 +0900 (Sat, 22 Apr 2017) | 1 line
Update sources and include files after update
------------------------------------------------------------------------
r58439 | ko1 | 2017-04-22 09:10:28 +0900 (Sat, 22 Apr 2017) | 4 lines
use $(srcdir).
* Makefile.in (enc/jis/props.h): build it in not builddir, but in srcdir.
------------------------------------------------------------------------
r58438 | nobu | 2017-04-22 08:16:43 +0900 (Sat, 22 Apr 2017) | 7 lines
clean autogenerated files
* enc/depend (clean, clean-srcs): fix path of name2ctype.h, and
remove casefold.h too.
* enc/jis/props.h: autogenerated file.
[ruby-core:80823] [Bug #13493]
------------------------------------------------------------------------
r58437 | normal | 2017-04-22 05:38:58 +0900 (Sat, 22 Apr 2017) | 8 lines
test/socket/test_basicsocket: handle :wait_readable on read_nonblock
On some systems with slower local sockets, :wait_readable may
happen and we should wait on it to drain the socket.
This is a possible fix for https://bugs.ruby-lang.org/issues/13491
* test/socket/test_basicsocket.rb (test_read_write_nonblock):
handle :wait_readable on read_nonblock
------------------------------------------------------------------------
r58436 | svn | 2017-04-22 00:00:31 +0900 (Sat, 22 Apr 2017) | 1 line
* 2017-04-22
------------------------------------------------------------------------
r58435 | ko1 | 2017-04-22 00:00:30 +0900 (Sat, 22 Apr 2017) | 4 lines
insert WB correctly.
* hash.c (hash_insert_raw): should insert WB.
------------------------------------------------------------------------
r58434 | ko1 | 2017-04-21 20:02:10 +0900 (Fri, 21 Apr 2017) | 8 lines
mark created frozen strings.
* hash.c (rb_hash_new_from_values_with_klass): before this fix,
only a st table are filled with passed values. However, newly
created frozen strings are not marked correctly only reference
from st table. This patch marks such created frozen strings
by Hash object which refers to the st table.
------------------------------------------------------------------------
r58433 | kazu | 2017-04-21 20:00:10 +0900 (Fri, 21 Apr 2017) | 2 lines
Remove empty directories
------------------------------------------------------------------------
r58432 | hsbt | 2017-04-21 15:16:11 +0900 (Fri, 21 Apr 2017) | 3 lines
Removed mathn.rb from stdlib. It's deprecated from Ruby 2.2.
[Feature #10169][[ruby-core:64553]]
------------------------------------------------------------------------
r58431 | nobu | 2017-04-21 15:12:27 +0900 (Fri, 21 Apr 2017) | 8 lines
test_framework.rb: for case-sensitive filesystem
* test/mkmf/test_framework.rb (test_single_framework): fix header
file name for case-sensitive filesystem. it may not be same as
the framework name, but should be the actual file name.
[ruby-dev:50093] [Bug #13489]
* test/mkmf/test_framework.rb (test_multi_frameworks): ditto.
------------------------------------------------------------------------
r58430 | rhe | 2017-04-21 15:03:12 +0900 (Fri, 21 Apr 2017) | 4 lines
Remove missing/strtol.c
It is never used. We don't need it anyway as it's part of C89 which is
our current minimum requirement.
------------------------------------------------------------------------
r58429 | shyouhei | 2017-04-21 14:35:34 +0900 (Fri, 21 Apr 2017) | 2 lines
NEWS entry for [Feature #13302]
------------------------------------------------------------------------
r58428 | shyouhei | 2017-04-21 13:42:09 +0900 (Fri, 21 Apr 2017) | 2 lines
typo fix (sorry!)
------------------------------------------------------------------------
r58427 | shyouhei | 2017-04-21 13:21:14 +0900 (Fri, 21 Apr 2017) | 40 lines
refactor hash literal
Same as rb_ary_tmp_new_from_values(), it reduces vm_exec_core binary
size from 26,176 bytes to 26,080 bytes. But this time, also with a
bit of optimizations:
- Because we are allocating a new hash and no back references are
introduced at all, we can safely skip write barriers.
- Also, the iteration never recurs. We can avoid complicated
function callbacks by using st_insert instead of st_update.
----
* hash.c (rb_hash_new_from_values): refactor
extract the bulk insert into a function.
* hash.c (rb_hash_new_from_object): also refactor.
* hash.c (rb_hash_s_create): use the new functions.
* insns.def (newhash): ditto.
* vm.c (core_hash_from_ary): ditto.
* iternal.h: export the new function.
-----------------------------------------------------------
benchmark results:
minimum results in each 7 measurements.
Execution time (sec)
name before after
loop_whileloop2 0.135 0.134
vm2_bighash* 1.236 0.687
Speedup ratio: compare with the result of `before' (greater is better)
name after
loop_whileloop2 1.008
vm2_bighash* 1.798
------------------------------------------------------------------------
r58426 | nobu | 2017-04-21 12:01:12 +0900 (Fri, 21 Apr 2017) | 7 lines
ext/extmk.rb: colorize notes [Feature #13302]
* common.mk (build-ext): pass variables to colorize.
* ext/extmk.rb: colorize notes with tool/colorize.rb.
* tool/colorize.rb: extract from tool/generic_erb.rb.
------------------------------------------------------------------------
r58425 | nobu | 2017-04-21 11:43:25 +0900 (Fri, 21 Apr 2017) | 7 lines
exts.mk: refine notes [Feature #13302]
* ext/extmk.rb: split notes into header and footer, which are
common, from bodies which are unique for each extensions.
* template/exts.mk.tmpl: now each notes are not one line, should
not unique.
------------------------------------------------------------------------
r58424 | nobu | 2017-04-21 09:53:26 +0900 (Fri, 21 Apr 2017) | 4 lines
vm_dump.c: non-scalar thread_id
* vm_dump.c (rb_vmdebug_stack_dump_all_threads): fix for
non-scalar thread_id platforms. c.f. [Bug #9884]
------------------------------------------------------------------------
r58423 | nobu | 2017-04-21 09:11:56 +0900 (Fri, 21 Apr 2017) | 24 lines
Suppress a warning in ruby/win32.h [Fix GH-1591]
Fix a warning in ruby/win32.h which can cause failures with mkmf
The return value is implicit type casted from 'long double' to 'double', currently.
This causes a gcc warning like this:
```
In file included from C:\Ruby24-x64\include\ruby-2.4.0/ruby/defines.h:243:0,
from C:\Ruby24-x64\include\ruby-2.4.0/ruby/ruby.h:36,
from C:\Ruby24-x64\include\ruby-2.4.0/ruby.h:33,
from conftest.c:1:
C:\Ruby24-x64\include\ruby-2.4.0/ruby/win32.h: In function 'rb_w32_pow':
C:\Ruby24-x64\include\ruby-2.4.0/ruby/win32.h:786:12: warning: conversion to 'double' from 'long double' may alter its value [-Wfloat-conversion]
return powl(x, y);
^~~~~~~~~~
```
This is fixed by the attached explicit type cast.
Moreover when CFLAGS is set to '-Wconversion', it prevents the compiler from
building. This is the case at the nokogiri gem.
The original issue arose at RubyInstaller2: https://github.com/oneclick/rubyinstaller2/commit/576a0eb70aa9348b366c3ecfe83c67811b7bcb9b
------------------------------------------------------------------------
r58422 | ko1 | 2017-04-21 07:52:57 +0900 (Fri, 21 Apr 2017) | 5 lines
use correct synchronization.
* test/ruby/test_thread.rb (make_handle_interrupt_test_thread1): use Queue
to use correct synchronization.
------------------------------------------------------------------------
r58421 | ko1 | 2017-04-21 00:58:35 +0900 (Fri, 21 Apr 2017) | 4 lines
* vm_dump.c (rb_vmdebug_stack_dump_all_threads): cast to `void*`.
Pointed out at
<https://github.com/ruby/ruby/commit/fbc1deca89595e60af21e58b7e164f376e4bd2fc#commitcomment-21839826>
------------------------------------------------------------------------
r58420 | svn | 2017-04-21 00:02:56 +0900 (Fri, 21 Apr 2017) | 1 line
* 2017-04-21
------------------------------------------------------------------------
r58419 | ko1 | 2017-04-21 00:02:55 +0900 (Fri, 21 Apr 2017) | 8 lines
release monitor correctly.
* lib/rubygems/core_ext/kernel_require.rb: sometimes
`Kernel.send(:gem, spec.name)` can raise some errors
(Gem::MissingSpecError I observed) and this method
doesn't release RUBYGEMS_ACTIVATION_MONITOR correctly.
This patch fix this problem.
------------------------------------------------------------------------
r58418 | nobu | 2017-04-20 20:07:02 +0900 (Thu, 20 Apr 2017) | 5 lines
ruby-lex.rb: fix continued line conditions
* lib/irb/ruby-lex.rb (RubyLex#lex): fix conditions for continued
line; empty lines, a semicolon, first line in `begin` block,
just after `else` are not continued.
------------------------------------------------------------------------
r58417 | nobu | 2017-04-20 20:07:00 +0900 (Thu, 20 Apr 2017) | 1 line
ruby-lex.rb: merge regexps
------------------------------------------------------------------------
r58416 | shyouhei | 2017-04-20 19:32:08 +0900 (Thu, 20 Apr 2017) | 14 lines
refactor torexp to use routine in array.c
Found a part where copy&paste can be eliminated. Reduces vm_exec_core
from 26,228 bytes to 26,176 bytes in size on my machine. I believe it
does not affect any runtime performance.
----
* array.c (rb_ary_tmp_new_from_values): extend existing
rb_ary_new_from_values function so that it can take
additional value for klass.
* array.c (rb_ary_new_from_values): use the new function.
* insns.def (toregexp): ditto.
------------------------------------------------------------------------
r58415 | hsbt | 2017-04-20 18:11:36 +0900 (Thu, 20 Apr 2017) | 3 lines
Removed math mode from irb.
mathn is deprecated from Ruby 2.2.
------------------------------------------------------------------------
r58414 | nobu | 2017-04-20 17:31:20 +0900 (Thu, 20 Apr 2017) | 4 lines
common.mk: separate note
* common.mk (build-ext): separate note from building extensions,
not to be intermingled. [ruby-core:80759] [Feature #13302]
------------------------------------------------------------------------
r58413 | hsbt | 2017-04-20 17:21:24 +0900 (Thu, 20 Apr 2017) | 4 lines
Removed deprecated extensions of mathn.
* ext/mathn/{complex,rational}: Removed from ruby core.
[fix GH-1542][Feature #13334][ruby-core:80247]
------------------------------------------------------------------------
r58412 | nobu | 2017-04-20 17:13:16 +0900 (Thu, 20 Apr 2017) | 6 lines
extmk.rb: fail for mandatory libraries
* ext/extmk.rb: fail if a mandatory extension library failed to
configure. [ruby-core:80759] [Feature #13302]
* template/exts.mk.tmpl: move `exit` at the end.
------------------------------------------------------------------------
r58411 | stomar | 2017-04-20 16:46:22 +0900 (Thu, 20 Apr 2017) | 6 lines
improve man pages
* man/ruby.1, man/erb.1, man/goruby.1, man/irb.1:
fix document title formatting and volume name,
improve "REPORTING BUGS" section: fix mdoc formatting error
(wrong macro for bullet list items), small rewordings.
------------------------------------------------------------------------
r58410 | stomar | 2017-04-20 16:44:54 +0900 (Thu, 20 Apr 2017) | 9 lines
ri.1: rewrite ri man page
* man/ri.1: update the (very outdated) ri man page:
* update document date
* fix document title formatting and volume name
* update descriptions and options to current ri --help text
* fix some mdoc formatting errors (missing escaping of `\',
wrong macro for bullet list items)
* various rewordings and other improvements
------------------------------------------------------------------------
r58409 | stomar | 2017-04-20 16:44:01 +0900 (Thu, 20 Apr 2017) | 6 lines
ri.1: fix errors in ri man page
* man/ri.1: fix some errors in ri man page (add missing options,
remove options that do not exist, fix formatter list).
Reported by Josh Cheek. [ruby-core:68065] [Bug #10838]
------------------------------------------------------------------------
r58408 | ko1 | 2017-04-20 13:50:53 +0900 (Thu, 20 Apr 2017) | 5 lines
add a debug function.
* vm_dump.c (rb_vmdebug_stack_dump_all_threads): dump stack dump
for all living threads.
------------------------------------------------------------------------
r58407 | usa | 2017-04-20 10:36:11 +0900 (Thu, 20 Apr 2017) | 4 lines
Move test_extlibs.rb because it's not the test of ruby itself
* test/test_extlibs.rb: moved from test/ruby.
------------------------------------------------------------------------
r58406 | svn | 2017-04-20 00:14:04 +0900 (Thu, 20 Apr 2017) | 1 line
* 2017-04-20
------------------------------------------------------------------------
r58405 | nobu | 2017-04-20 00:14:03 +0900 (Thu, 20 Apr 2017) | 4 lines
fix infinite recursion
* vm_insnhelper.c (vm_once_dispatch): no guarantee that tail call
is always optimized away.
------------------------------------------------------------------------
r58404 | rhe | 2017-04-19 23:05:26 +0900 (Wed, 19 Apr 2017) | 4 lines
extmk.rb: improve message printed when configuring extensions fails
Point to the mkmf.log if configuring an extension fails so that people
can find and fix the culprit easily. [ruby-core:80131] [Feature #13302]
------------------------------------------------------------------------
r58403 | hsbt | 2017-04-19 20:50:03 +0900 (Wed, 19 Apr 2017) | 2 lines
Rervert r58304. Because Rubygems have specialized finder for default gems.
We need to list library entries for default gems.
------------------------------------------------------------------------
r58402 | shyouhei | 2017-04-19 16:27:03 +0900 (Wed, 19 Apr 2017) | 19 lines
refactor extract binop dispatcher
Those opt_something instructions are worth refactoring. They tend to
have similar ways of executions. By extracting the common part,
generated vm_exec_core function shrinks from 26,816 bytes to 26,256
bytes (according to nm(1)).
This changeset introduces negligible performance impact. 3 repeated
runs of optcarrot benchmark on my machine resulted in:
before this: 28.813363684823557, 27.523907198440366, 27.292766121965400
after this: 28.174038497265080, 28.999513875020405, 29.621399800428065
in fps (greater==faster).
----
* vm_insnhelper.c (vm_opt_binop_dispatch): new function.
------------------------------------------------------------------------
r58401 | svn | 2017-04-19 10:08:17 +0900 (Wed, 19 Apr 2017) | 1 line
* 2017-04-19
------------------------------------------------------------------------
r58400 | normal | 2017-04-19 10:08:16 +0900 (Wed, 19 Apr 2017) | 19 lines
socket: avoid fcntl for read/write_nonblock on Linux
On platforms where MSG_DONTWAIT works reliably on all sockets
(so far, I know of Linux), we can avoid fcntl syscalls and
implement IO#write_nonblock and IO#read_nonblock in terms of the
socket-specific send and recv family of syscalls.
This avoids side effects on the socket, and also encourages
generic code to be written in cases where IO wrappers like
OpenSSL::SSL::SSLSocket are used.
Perhaps in the future, side-effect-free non-blocking I/O can
be standard on all files and OSes: https://cr.yp.to/unix/nonblock.html
* ext/socket/lib/socket.rb (read_nonblock, write_nonblock):
Linux-specific wrapper without side effects
[ruby-core:80780] [Feature #13362]
* test/socket/test_basicsocket.rb (test_read_write_nonblock):
new test
------------------------------------------------------------------------
r58399 | nobu | 2017-04-18 22:14:08 +0900 (Tue, 18 Apr 2017) | 1 line
fixup! vm_insnhelper.c: adjust indent [ci skip]
------------------------------------------------------------------------
r58398 | nobu | 2017-04-18 22:14:06 +0900 (Tue, 18 Apr 2017) | 5 lines
compile.c: wrong optimization
* compile.c (compile_branch_condition): expression which has side
effects should not be eliminated.
[ruby-core:80740] [Bug #13444]
------------------------------------------------------------------------
r58397 | nobu | 2017-04-18 22:14:05 +0900 (Tue, 18 Apr 2017) | 1 line
vm_insnhelper.c: adjust indent [ci skip]
------------------------------------------------------------------------
r58396 | shyouhei | 2017-04-18 22:05:38 +0900 (Tue, 18 Apr 2017) | 4 lines
typo fix (sorry!) [ci skip]
Surprisingly this was not a syntax error on my machine.
------------------------------------------------------------------------
r58395 | nobu | 2017-04-18 22:02:56 +0900 (Tue, 18 Apr 2017) | 1 line
test_optimization.rb: heredoc code style
------------------------------------------------------------------------
r58394 | ko1 | 2017-04-18 21:30:59 +0900 (Tue, 18 Apr 2017) | 4 lines
fix compile error.
* insns.def (trace): use cast `flag` to pass compilation with clang on MacOSX.
------------------------------------------------------------------------
r58393 | hsbt | 2017-04-18 20:55:44 +0900 (Tue, 18 Apr 2017) | 3 lines
Fix heading of README.
[Fix GH-1586] Patch by @jbampton
------------------------------------------------------------------------
r58392 | shyouhei | 2017-04-18 20:06:58 +0900 (Tue, 18 Apr 2017) | 2 lines
tabify (sorry!) [ci skip]
------------------------------------------------------------------------
r58391 | svn | 2017-04-18 19:58:50 +0900 (Tue, 18 Apr 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r58390 | shyouhei | 2017-04-18 19:58:49 +0900 (Tue, 18 Apr 2017) | 33 lines
split insns.def into functions
Contemporary C compilers are good at function inlining. They fold
multiple functions into one. However they are not yet smart enough to
unfold a function into several ones. So generally speaking, it is
wiser for a C programmer to manually split C functions whenever
possible. That should make rooms for compilers to optimize at will.
Before this changeset insns.def was converted into single HUGE
function called vm_exec_core(). By moving each instruction's core
into individual functions, generated C source code is reduced from
3,428 lines to 2,847 lines. Looking at the generated assembly
however, it seems my compiler (gcc 6.2) is extraordinary smart so that
it inlines almost all functions I introduced in this changeset back
into that vm_exec_core. On my machine compiled machine binary of the
function does not shrink very much in size (28,432 bytes to 26,816
bytes, according to nm(1)).
I believe this change is zero-cost. Several benchmarks I exercised
showed no significant difference beyond error mergin. For instance
3 repeated runs of optcarrot benchmark on my machine resulted in:
before this: 28.330329285707490, 27.513378371065920, 29.40420215754537
after this: 27.107195867280414, 25.549324021385907, 30.31581919050884
in fps (greater==faster).
----
* internal.h (rb_obj_not_equal): used from vm_insnhelper.c
* insns.def: move vast majority of lines into vm_insnhelper.c
* vm_insnhelper.c: moved here.
------------------------------------------------------------------------
r58389 | nobu | 2017-04-18 17:34:40 +0900 (Tue, 18 Apr 2017) | 4 lines
eval.c: fix exit inside TAG
* eval.c (setup_exception): do not exit by goto inside
PUSH_TAG/POP_TAG. it causes an infinite loop.
------------------------------------------------------------------------
r58388 | nobu | 2017-04-18 14:56:34 +0900 (Tue, 18 Apr 2017) | 4 lines
configure.in: honor GIT env
* configure.in (--with-git): honor environment variable GIT if
set.
------------------------------------------------------------------------
r58387 | nobu | 2017-04-18 11:58:45 +0900 (Tue, 18 Apr 2017) | 4 lines
vcs.rb: env for command
* tool/vcs.rb (VCS::SVN::COMMAND, VCS::GIT::COMMAND): customize
command paths by environment variables.
------------------------------------------------------------------------
r58386 | nobu | 2017-04-18 11:58:44 +0900 (Tue, 18 Apr 2017) | 4 lines
enc/depend: remove Unicode versions
* enc/depend (enc/unicode.o): remove hardcoded Unicode versions.
this object file must be compiled by toplevel make.
------------------------------------------------------------------------
r58385 | svn | 2017-04-18 08:47:13 +0900 (Tue, 18 Apr 2017) | 1 line
* 2017-04-18
------------------------------------------------------------------------
r58384 | ko1 | 2017-04-18 08:47:12 +0900 (Tue, 18 Apr 2017) | 5 lines
should not return.
* test/ruby/test_settracefunc.rb (test_throwing_return_with_finish_frame):
should not use `return`, but should use `next`.
------------------------------------------------------------------------
r58383 | nobu | 2017-04-17 22:38:34 +0900 (Mon, 17 Apr 2017) | 5 lines
string.c: improve insertion performace
* string.c (rb_str_splice_0): improve performace of single byte
optimizable cases, insertion 7bit string to 7bit string.
[ruby-dev:49984] [Bug #13228]
------------------------------------------------------------------------
r58382 | nobu | 2017-04-17 22:23:42 +0900 (Mon, 17 Apr 2017) | 4 lines
thread_win32.c: fix index
* thread_win32.c (w32_wait_events): fix wait object index in the
case of interrupt_event is not usable.
------------------------------------------------------------------------
r58381 | nobu | 2017-04-17 11:41:00 +0900 (Mon, 17 Apr 2017) | 4 lines
eval.c: copy before cause setup
* eval.c (setup_exception): copy frozen exception before setting
up a cause not only a backtrace.
------------------------------------------------------------------------
r58380 | nobu | 2017-04-17 11:31:35 +0900 (Mon, 17 Apr 2017) | 9 lines
eval.c: copy special exceptions before raise
* eval.c (setup_exception): consider if the exception is frozen,
but not one of special exception objects.
* gc.c (rb_memerror): copy minimum objects.
* thread.c (rb_threadptr_execute_interrupts): prepare special
exception queued by another thread to be raised.
------------------------------------------------------------------------
r58379 | nobu | 2017-04-17 11:08:41 +0900 (Mon, 17 Apr 2017) | 4 lines
vm_insnhelper.c: rb_threadptr_stack_overflow
* vm_insnhelper.c (rb_threadptr_stack_overflow): move from
thread.c and integrate with vm_stackoverflow.
------------------------------------------------------------------------
r58378 | nobu | 2017-04-17 10:35:54 +0900 (Mon, 17 Apr 2017) | 5 lines
parse.y: fix for empty `__VA_ARGS__`
* parse.y (WARN_CALL, WARNING_CALL): need `##` between a comman
and `__VA_ARGS__` in the case it is empty, not to end arguments
with a comma.
------------------------------------------------------------------------
r58377 | nobu | 2017-04-17 10:23:50 +0900 (Mon, 17 Apr 2017) | 9 lines
vm_backtrace.c: backtrace functions per threads
* vm_backtrace.c (rb_threadptr_backtrace_object): rename and
extern.
* vm_backtrace.c (rb_threadptr_backtrace_str_ary): rename as
threadptr since the parameter is rb_thread_t*.
* vm_backtrace.c (rb_threadptr_backtrace_location_ary): ditto.
------------------------------------------------------------------------
r58376 | nobu | 2017-04-17 09:25:48 +0900 (Mon, 17 Apr 2017) | 4 lines
eval.c: share rb_longjmp
* eval.c (rb_longjmp, rb_raise_jump): parameterize thread, and
share rb_longjmp.
------------------------------------------------------------------------
r58375 | nobu | 2017-04-17 09:10:47 +0900 (Mon, 17 Apr 2017) | 7 lines
gc.c: rb_threadptr_stack_check
* gc.c (rb_threadptr_stack_check): check probability of stack
overflow for the given thread, not the current thread.
* vm_eval.c (stack_check): check the given thread, not the current
thread.
------------------------------------------------------------------------
r58374 | nobu | 2017-04-17 09:10:45 +0900 (Mon, 17 Apr 2017) | 6 lines
gc.c: PREVENT_STACK_OVERFLOW
* gc.c (PREVENT_STACK_OVERFLOW): define TRUE to try preventing
stack overflow before actually happens.
* gc.c (stack_check): parameterize thread pointer.
------------------------------------------------------------------------
r58373 | svn | 2017-04-17 00:54:58 +0900 (Mon, 17 Apr 2017) | 1 line
* 2017-04-17
------------------------------------------------------------------------
r58372 | stomar | 2017-04-17 00:54:57 +0900 (Mon, 17 Apr 2017) | 3 lines
test_integer.rb: simplify test
* test/ruby/test_integer.rb: simplify test for Integer.sqrt.
------------------------------------------------------------------------
r58371 | nobu | 2017-04-16 23:54:59 +0900 (Sun, 16 Apr 2017) | 4 lines
rbinstall.rb: ignore skipped exts
* tool/rbinstall.rb (default-gems): skip gemspec if corresponding
Makefile does not exist.
------------------------------------------------------------------------
r58370 | nobu | 2017-04-16 23:27:21 +0900 (Sun, 16 Apr 2017) | 5 lines
thread_win32.c: no GVL for interrupt_event
* thread_win32.c (w32_wait_events): do not acquire GVL, to fix
deadlock at read/close race condition. instead, just ignore
interrupt_event if it is closed.
------------------------------------------------------------------------
r58369 | nobu | 2017-04-16 13:16:11 +0900 (Sun, 16 Apr 2017) | 1 line
test/ruby/test_io.rb: use Thread.stop? to wait
------------------------------------------------------------------------
r58368 | usa | 2017-04-16 11:00:24 +0900 (Sun, 16 Apr 2017) | 3 lines
* test/ruby/test_io.rb (test_race_closed_stream): separate because it stops
entire test process on Windows.
------------------------------------------------------------------------
r58367 | svn | 2017-04-16 00:29:09 +0900 (Sun, 16 Apr 2017) | 1 line
* 2017-04-16
------------------------------------------------------------------------
r58366 | nobu | 2017-04-16 00:29:09 +0900 (Sun, 16 Apr 2017) | 5 lines
bignum.c: fix inexact estimation
* bignum.c (estimate_initial_sqrt): estimated square root is
inexact if it is not equal to its ceil, needs Newton's method.
[ruby-core:80696] [Bug #13440]
------------------------------------------------------------------------
r58365 | svn | 2017-04-15 16:13:06 +0900 (Sat, 15 Apr 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58364 | normal | 2017-04-15 16:13:05 +0900 (Sat, 15 Apr 2017) | 11 lines
fix ext/-test-/struct/ dependencies
I started writing a template for auto-generation and
let "tool/update-deps --fix" fill in the rest.
Hopefully this fixes problems with some CI builds
after r58359. Further changes to other ext/-test-/
files should probably add or update "depend" files, too.
* ext/-test-/struct/depend: new file
* enc/depend: auto-updated with unicode 9.0.0 headers (side-effect)
------------------------------------------------------------------------
r58363 | nobu | 2017-04-15 11:37:21 +0900 (Sat, 15 Apr 2017) | 4 lines
signal.c: last tag page condition
* signal.c (check_stack_overflow): drop the last tag when it is
close to the fault page, not same as sp page.
------------------------------------------------------------------------
r58362 | nobu | 2017-04-15 11:09:27 +0900 (Sat, 15 Apr 2017) | 4 lines
ruby.h: check argc to rb_funcall
* include/ruby/ruby.h (rb_funcall): check if argc matches the
number of variadic arguments, and replace with rb_funcallv.
------------------------------------------------------------------------
r58361 | nobu | 2017-04-15 11:07:01 +0900 (Sat, 15 Apr 2017) | 4 lines
signal.c: prefer pthread_sigmask
* signal.c (raise_stack_overflow): prefer pthread_sigmask to
sigprocmask, for multithreading.
------------------------------------------------------------------------
r58360 | svn | 2017-04-15 09:46:01 +0900 (Sat, 15 Apr 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58359 | normal | 2017-04-15 09:46:00 +0900 (Sat, 15 Apr 2017) | 9 lines
fix RSTRUCT_LEN macro in public C API
rb_struct_size returns an Integer VALUE, so it must be converted
to a `long` for compatibility with previous Ruby C API versions.
* ext/-test-/struct/len.c: new
* test/-ext-/struct/test_len.rb: new
* include/ruby/ruby.h (RSTRUCT_LEN): use NUM2LONG
[ruby-core:80692] [Bug #13439]
------------------------------------------------------------------------
r58358 | ngoto | 2017-04-15 04:12:51 +0900 (Sat, 15 Apr 2017) | 7 lines
Workaround for optimization bug of Oracle Solaris Studio 12.4 and 12.5
* pack.c (pack_unpack, AVOID_CC_BUG): Very ugly workaround for
optimization bug of Oracle Solaris Studio 12.4 and 12.5
(Oracle Developer Studio 12.5) on Solaris with -xO4 optimization
option. [Bug #11684] [ruby-core:80690]
------------------------------------------------------------------------
r58357 | ko1 | 2017-04-15 03:19:37 +0900 (Sat, 15 Apr 2017) | 4 lines
sync certainly.
* test/ruby/test_io.rb (test_race_closed_stream): awit for 'sleep' state.
------------------------------------------------------------------------
r58356 | ko1 | 2017-04-15 03:14:25 +0900 (Sat, 15 Apr 2017) | 6 lines
more explicit synchronization.
* test/ruby/test_io.rb (test_race_closed_stream): wait for blocking by r.gets.
On some systems (for example, high load average systems) can't start Thread
correctly and can't wait r.gets in invoked Thread.
------------------------------------------------------------------------
r58355 | svn | 2017-04-15 01:07:46 +0900 (Sat, 15 Apr 2017) | 1 line
* 2017-04-15
------------------------------------------------------------------------
r58354 | nobu | 2017-04-15 01:07:45 +0900 (Sat, 15 Apr 2017) | 1 line
signal.c: add sigprocmask guard
------------------------------------------------------------------------
r58353 | nobu | 2017-04-14 21:59:59 +0900 (Fri, 14 Apr 2017) | 4 lines
signal.c: unblock signal
* signal.c (raise_stack_overflow): unblock the received signal, to
receive the same signal again. [ruby-core:79285] [Bug #13164]
------------------------------------------------------------------------
r58352 | nobu | 2017-04-14 21:51:46 +0900 (Fri, 14 Apr 2017) | 4 lines
configure.in: sigsetjmp sivesigs flag
* configure.in (RUBY_SETJMP_TYPE): optional flag to save signal
mask.
------------------------------------------------------------------------
r58351 | nobu | 2017-04-14 19:03:43 +0900 (Fri, 14 Apr 2017) | 1 line
IPSocket#inspect
------------------------------------------------------------------------
r58350 | nobu | 2017-04-14 17:33:08 +0900 (Fri, 14 Apr 2017) | 4 lines
ruby.h: check argc to rb_yield_values
* include/ruby/ruby.h (rb_yield_values): check if argc matches the
number of variadic arguments, and replace with rb_yield_values2.
------------------------------------------------------------------------
r58349 | ko1 | 2017-04-14 16:46:11 +0900 (Fri, 14 Apr 2017) | 9 lines
disable rewind hooks.
* vm.c (hook_before_rewind): skip rewind hooks if err is SystemStackError
because rewind hooks can cause stack overflow again and again.
* thread.c (ruby_thread_stack_overflow): do not disable all hooks.
Additionally, clearing ruby_vm_event_flags is not suitable way
to disable hooks.
------------------------------------------------------------------------
r58348 | svn | 2017-04-14 14:19:12 +0900 (Fri, 14 Apr 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58347 | mrkn | 2017-04-14 14:19:12 +0900 (Fri, 14 Apr 2017) | 13 lines
Improve performance of type conversion using to_r
* object.c: Add to_r in conv_method_tbl.
* defs/id.def: add to_r.
* benchmark/bm_int_quo.rb: added.
* benchmark/bm_time_subsec.rb: added.
[Bug #13426]
[ruby-core:80665]
[Fix GH-1582]
------------------------------------------------------------------------
r58346 | ko1 | 2017-04-14 11:19:39 +0900 (Fri, 14 Apr 2017) | 5 lines
increase timeout seconds.
* test/ruby/test_trace.rb (test_trace_stackoverflow): on some platforms
this test fails because of timeout.
------------------------------------------------------------------------
r58345 | nobu | 2017-04-14 09:45:49 +0900 (Fri, 14 Apr 2017) | 5 lines
rbinstall.rb: no file list for default gems
* tool/rbinstall.rb (default-gems): no file list is used now.
all files should be installed as standard libraries.
[ruby-core:80667] [Bug #13428]
------------------------------------------------------------------------
r58344 | nobu | 2017-04-14 09:45:48 +0900 (Fri, 14 Apr 2017) | 5 lines
git-refresh: fix abort by cd failure
* tool/git-refresh: try `cd -P` in a subshell, because Solaris10
sh dies if it fails, not only the command.
[ruby-dev:50074] [Bug #13433]
------------------------------------------------------------------------
r58343 | ko1 | 2017-04-14 01:32:20 +0900 (Fri, 14 Apr 2017) | 1 line
fix last commit
------------------------------------------------------------------------
r58342 | svn | 2017-04-14 01:19:46 +0900 (Fri, 14 Apr 2017) | 1 line
* 2017-04-14
------------------------------------------------------------------------
r58341 | ko1 | 2017-04-14 01:19:46 +0900 (Fri, 14 Apr 2017) | 2 lines
Terminate created threads.
------------------------------------------------------------------------
r58340 | svn | 2017-04-13 18:25:39 +0900 (Thu, 13 Apr 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58339 | mrkn | 2017-04-13 18:25:38 +0900 (Thu, 13 Apr 2017) | 9 lines
array.c: improve performance of Array#sort with block
* array.c (sort_1): improve performance of Array#sort with block
* benchmark/bm_array_sort_block.rb: added for Array#sort with block
[Bug #13344]
[ruby-dev:50027]
[Fix GH-1544]
------------------------------------------------------------------------
r58338 | svn | 2017-04-13 17:09:07 +0900 (Thu, 13 Apr 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58337 | mrkn | 2017-04-13 17:09:06 +0900 (Thu, 13 Apr 2017) | 4 lines
Add a benchmark script for Array#sort of float array
[Bug #13340]
[ruby-dev:50023]
------------------------------------------------------------------------
r58336 | nobu | 2017-04-13 17:08:04 +0900 (Thu, 13 Apr 2017) | 3 lines
git-refresh: for symlink srcdir
* tool/git-refresh: use `cd -P` for symlink srcdir.
------------------------------------------------------------------------
r58335 | nobu | 2017-04-13 16:52:05 +0900 (Thu, 13 Apr 2017) | 4 lines
git-refresh: fix expr
* tool/git-refresh (dir): surround by slashes to extract base
name. [ruby-dev:50070] [Bug #13424]
------------------------------------------------------------------------
r58334 | nobu | 2017-04-13 16:38:23 +0900 (Thu, 13 Apr 2017) | 6 lines
thread.c: disable VM events when stack overflow
* thread.c (ruby_thread_stack_overflow): disable VM events when
stack overflow occurred; it causes another stack overflow again
in making backtrace object, and crashes.
[ruby-core:80662] [Bug #13425]
------------------------------------------------------------------------
r58333 | mrkn | 2017-04-13 16:22:35 +0900 (Thu, 13 Apr 2017) | 14 lines
array.c: Improve performance of Array#sort with float elements
* array.c (sort_2): improve performance of Array#sort with float elements.
* internal.h (cmp_opt_Float, cmp_opt_data): added for checking whether or not
Float#<=> can be optimizable.
* numeric.c (rb_float_cmp): added for internal use.
* internal.h (rb_float_cmp): ditto.
[Bug #13340]
[ruby-dev:50023]
[Fix GH-1539]
------------------------------------------------------------------------
r58332 | rhe | 2017-04-13 15:43:17 +0900 (Thu, 13 Apr 2017) | 6 lines
array.c: report correct memsize for shared root arrays
For a shared array root, struct RArray::as.heap.aux.capa stores the
number of Arrays holding reference to that T_ARRAY instead of the actual
heap-allocated capacity. Use ARY_CAPA() macro which handles this
appropriately.
------------------------------------------------------------------------
r58331 | stomar | 2017-04-13 04:49:48 +0900 (Thu, 13 Apr 2017) | 5 lines
unicode_normalize.rb: improve docs
* lib/unicode_normalize.rb: [DOC] improve docs for
String#{unicode_normalize,unicode_normalized?}: rdoc formatting,
adopt style of other String methods (drop heading and "Examples").
------------------------------------------------------------------------
r58330 | svn | 2017-04-13 03:07:33 +0900 (Thu, 13 Apr 2017) | 1 line
* 2017-04-13
------------------------------------------------------------------------
r58329 | stomar | 2017-04-13 03:07:32 +0900 (Thu, 13 Apr 2017) | 6 lines
nodoc UnicodeNormalize module
* lib/unicode_normalize/normalize.rb: [DOC] nodoc the
internal UnicodeNormalize module.
* lib/unicode_normalize/tables.rb: ditto.
* template/unicode_norm_gen.tmpl: ditto.
------------------------------------------------------------------------
r58328 | nobu | 2017-04-12 23:47:50 +0900 (Wed, 12 Apr 2017) | 4 lines
thread.c: during GC for thread
* thread.c (ruby_thread_stack_overflow): check if the given thread
is during GC.
------------------------------------------------------------------------
r58327 | nobu | 2017-04-12 17:39:19 +0900 (Wed, 12 Apr 2017) | 5 lines
rbinstall.rb: purge `git ls-files`
* tool/rbinstall.rb (load_gemspec): purge `git ls-files` generated
by bundle. it is not available always everywhere everytime.
[ruby-dev:50068] [Bug #13423]
------------------------------------------------------------------------
r58326 | hsbt | 2017-04-12 17:12:53 +0900 (Wed, 12 Apr 2017) | 4 lines
Import latest gemspec from ruby/fileutils.
* Bump version to 0.7.1. Beucause fileutils-0.7 is alread reserverd
on rubygems.org.
------------------------------------------------------------------------
r58325 | nobu | 2017-04-12 14:22:36 +0900 (Wed, 12 Apr 2017) | 4 lines
git-refresh: for old sh
* tool/git-refresh: get rid of matching prefix pattern removal for
old sh. [ruby-dev:50069] [Bug #13424]
------------------------------------------------------------------------
r58324 | hsbt | 2017-04-12 09:21:20 +0900 (Wed, 12 Apr 2017) | 1 line
Use `assert_raise` instead of `assert_raises`.
------------------------------------------------------------------------
r58323 | hsbt | 2017-04-12 09:21:18 +0900 (Wed, 12 Apr 2017) | 4 lines
Merge json-2.0.4.
* https://github.com/flori/json/releases/tag/v2.0.4
* https://github.com/flori/json/blob/09fabeb03e73ed88dc8ce8f19d76ac59e51dae20/CHANGES.md#2017-03-23-204
------------------------------------------------------------------------
r58322 | svn | 2017-04-12 07:41:21 +0900 (Wed, 12 Apr 2017) | 1 line
* 2017-04-12
------------------------------------------------------------------------
r58321 | hsbt | 2017-04-12 07:41:21 +0900 (Wed, 12 Apr 2017) | 4 lines
Merge upstream of ruby/etc.
* Do not use `git ls-files` for file listing.
* Fix extconf.rb path.
------------------------------------------------------------------------
r58320 | normal | 2017-04-11 23:56:17 +0900 (Tue, 11 Apr 2017) | 6 lines
Socket.udp_server_sockets: use symbol proc
Symbol proc is shorter human and machine code;
and also avoids needing to name variables.
* ext/socket/lib/socket.rb (Socket.udp_server_sockets): use symbol proc
------------------------------------------------------------------------
r58319 | nobu | 2017-04-11 21:28:51 +0900 (Tue, 11 Apr 2017) | 1 line
Parenthesized CHECK_CFP_CONSISTENCY [ci skip]
------------------------------------------------------------------------
r58318 | nobu | 2017-04-11 21:20:21 +0900 (Tue, 11 Apr 2017) | 5 lines
Install only files explicitly referenced by bundled gems.
[Bug #13417]
[Fix GH-1580]
Author: Vit Ondruch <vondruch@redhat.com>
------------------------------------------------------------------------
r58317 | nobu | 2017-04-11 21:20:18 +0900 (Tue, 11 Apr 2017) | 4 lines
Spec#files are not used anymore.
[Fix GH-1579]
Author: Vit Ondruch <vondruch@redhat.com>
------------------------------------------------------------------------
r58316 | hsbt | 2017-04-11 21:19:05 +0900 (Tue, 11 Apr 2017) | 3 lines
Fix a typo.
Patch by @voxik. [fix GH-1581]
------------------------------------------------------------------------
r58315 | hsbt | 2017-04-11 18:46:53 +0900 (Tue, 11 Apr 2017) | 4 lines
Import gemspec from ruby/etc.
* Update configuraiton for gem release.
* Bump version to 0.2.1. Because 0.2.0 is already reserved on rubygems.org
------------------------------------------------------------------------
r58314 | hsbt | 2017-04-11 17:49:01 +0900 (Tue, 11 Apr 2017) | 4 lines
Import gemspec from ruby/dbm
* Update gemspec version of beta release.
* Bump version to 0.5.1. Because 0.5 is already reserved another implementation.
------------------------------------------------------------------------
r58313 | nobu | 2017-04-11 13:17:45 +0900 (Tue, 11 Apr 2017) | 4 lines
vm_insnhelper.c: CHECK_CFP_CONSISTENCY
* vm_insnhelper.c (CHECK_CFP_CONSISTENCY): make [BUG] messages
consistent.
------------------------------------------------------------------------
r58312 | nobu | 2017-04-11 11:40:14 +0900 (Tue, 11 Apr 2017) | 4 lines
time.c: rename div as divv
* time.c (divv): add suffix to get rid of the name in C standard
library, and others together.
------------------------------------------------------------------------
r58311 | nobu | 2017-04-11 11:40:13 +0900 (Tue, 11 Apr 2017) | 1 line
configure.in: need GIT to check if using git
------------------------------------------------------------------------
r58310 | nobu | 2017-04-11 10:24:13 +0900 (Tue, 11 Apr 2017) | 1 line
enc/unicode/data: no files under version control now
------------------------------------------------------------------------
r58309 | normal | 2017-04-11 03:16:58 +0900 (Tue, 11 Apr 2017) | 12 lines
time.c: use predefined IDs
This reduces rb_intern calls during startup and shortens code.
* time.c: include id.h for predefined IDs
(id_mul, id_eq, id_ne, id_cmp): remove static variables
(eq): replace id_eq with idEq
(cmp, wcmp): replace id_cmp with idCmp
(weq): replace id_eq with idEq
(time_timespec): replace id_mul with '*'
(Init_Time): remove rb_intern calls for removed variables
* common.mk (time.$(OBJEXT)): add depend on id.h
------------------------------------------------------------------------
r58308 | normal | 2017-04-11 03:08:16 +0900 (Tue, 11 Apr 2017) | 30 lines
time.c: Improve Time#to_i performance
Time#to_i will be faster around 80% (on 64-bit platforms).
* Before
user system total real
2.840000 0.000000 2.840000 ( 2.847238)
* After
user system total real
1.600000 0.000000 1.600000 ( 1.598911)
* Test code
require 'benchmark'
Benchmark.bmbm do |x|
x.report do
t = Time.now
20000000.times do
t.to_i
end
end
end
* time.c (_div): new function avoid rb_funcall
(div): replace with new _div function
[ruby-core:80636] [Bug #13418]
Thanks to Watson <watson1978@gmail.com> for the patch.
From: Watson <watson1978@gmail.com>
------------------------------------------------------------------------
r58307 | stomar | 2017-04-11 02:28:18 +0900 (Tue, 11 Apr 2017) | 1 line
doc/extension.rdoc: rb_str_append grammar fix
------------------------------------------------------------------------
r58306 | nobu | 2017-04-11 00:34:37 +0900 (Tue, 11 Apr 2017) | 4 lines
extension.rdoc: rb_str_append [ci skip]
* doc/extension.rdoc: add rb_str_append and fix equivalent for
rb_str_catf and rb_str_vcatf from rb_str_cat2.
------------------------------------------------------------------------
r58305 | svn | 2017-04-11 00:26:50 +0900 (Tue, 11 Apr 2017) | 1 line
* 2017-04-11
------------------------------------------------------------------------
r58304 | nobu | 2017-04-11 00:26:49 +0900 (Tue, 11 Apr 2017) | 9 lines
Make .gemspec slimmer.
This is the same code that RubyGems are using:
https://github.com/rubygems/rubygems/commit/a1a5ab55cb1501cbfeee29131a56cfa2e763174f
[ci skip]
[Fix GH-1578]
Author: Vit Ondruch <vondruch@redhat.com>
------------------------------------------------------------------------
r58303 | nobu | 2017-04-11 00:26:48 +0900 (Tue, 11 Apr 2017) | 7 lines
extension.rdoc: fix rb_enc_str_new_literal
* doc/extension.rdoc: Add missing enc arg to rb_enc_str_new_literal.
[ci skip]
[Fix GH-1577]
Author: Dylan Thacker-Smith <Dylan.Smith@shopify.com>
------------------------------------------------------------------------
r58302 | nobu | 2017-04-10 22:35:39 +0900 (Mon, 10 Apr 2017) | 1 line
svn:ignore: ignore ruby-runner
------------------------------------------------------------------------
r58301 | usa | 2017-04-10 22:30:28 +0900 (Mon, 10 Apr 2017) | 2 lines
svn:ignore: fix handling exts.mk.
------------------------------------------------------------------------
r58300 | usa | 2017-04-10 22:18:03 +0900 (Mon, 10 Apr 2017) | 2 lines
svn:ignore
------------------------------------------------------------------------
r58299 | nobu | 2017-04-10 11:13:52 +0900 (Mon, 10 Apr 2017) | 4 lines
Makefile.sub: fix HAVE_GIT
* win32/Makefile.sub (HAVE_GIT): fix missing `do`, excape `$`, and
fix a typo.
------------------------------------------------------------------------
r58298 | nobu | 2017-04-10 10:46:24 +0900 (Mon, 10 Apr 2017) | 3 lines
configure.in: detect baseruby by default
* configure.in: default HAVE_BASERUBY to yes, for auto detection.
------------------------------------------------------------------------
r58297 | nobu | 2017-04-10 10:22:50 +0900 (Mon, 10 Apr 2017) | 4 lines
vcs.rb: remove git stuff
* tool/vcs.rb (VCS::GIT#after_export): remove git stuff not to
distribute. [ruby-core:80629] [Feature #13415]
------------------------------------------------------------------------
r58296 | nobu | 2017-04-10 10:22:49 +0900 (Mon, 10 Apr 2017) | 4 lines
Allow --without-baseruby option
* configure.in, win32/configure.bat: allow --without-baseruby
option to use already generated files without baseruby.
------------------------------------------------------------------------
r58295 | nobu | 2017-04-10 10:22:48 +0900 (Mon, 10 Apr 2017) | 4 lines
Add --with-git option
* configure.in, win32/configure.bat: add --with-git option to
tell git command to use, or not to use git.
------------------------------------------------------------------------
r58294 | svn | 2017-04-10 01:19:39 +0900 (Mon, 10 Apr 2017) | 1 line
* 2017-04-10
------------------------------------------------------------------------
r58293 | usa | 2017-04-10 01:19:37 +0900 (Mon, 10 Apr 2017) | 6 lines
Get rid of inifinity retry loop in Socket.udp_server_sockets
* ext/socket/lib/socket.rb (Socket.udp_server_sockets): remove duplicated
addresses before passing it to ip_sockets_port0 because it causes
Errno::EADDRINUSE and retry forever.
------------------------------------------------------------------------
r58291 | stomar | 2017-04-09 22:30:31 +0900 (Sun, 09 Apr 2017) | 4 lines
math.c: improve docs for Math.sqrt
* math.c: [DOC] mention possibly surprising behavior of Math.sqrt
due to floating point arithmetic; also refer to BigDecimal#sqrt.
------------------------------------------------------------------------
r58290 | stomar | 2017-04-09 22:28:11 +0900 (Sun, 09 Apr 2017) | 4 lines
numeric.c: improve docs for Float
* numeric.c: [DOC] mention possibly surprising behavior of
Float#{floor,ceil,to_i,truncate} due to floating point arithmetic.
------------------------------------------------------------------------
r58288 | kazu | 2017-04-09 20:53:53 +0900 (Sun, 09 Apr 2017) | 5 lines
io.c: ARGF.file returns $stdin instead of STDIN [ci skip]
For example:
`ruby -e '$stdin=open(IO::NULL);p [STDIN,$stdin,ARGF.file]'`
prints `[#<IO:<STDIN>>, #<File:/dev/null>, #<File:/dev/null>]`
------------------------------------------------------------------------
r58287 | nobu | 2017-04-09 20:44:01 +0900 (Sun, 09 Apr 2017) | 4 lines
configure.in: rpath with OPTDIR
* configure.in: add rpath flags which is needed for OPTDIR as well
as -L options, when it is given. [ruby-dev:50065] [Bug #13411]
------------------------------------------------------------------------
r58286 | nobu | 2017-04-09 14:09:44 +0900 (Sun, 09 Apr 2017) | 5 lines
thread.c: refine stream closed message
* thread.c (Init_Thread): [EXPERIMENTAL] refine the "stream
closed" special exception message, by explicating that it is
caused by threading. [ruby-core:80583] [Bug #13405]
------------------------------------------------------------------------
r58285 | nobu | 2017-04-09 13:01:07 +0900 (Sun, 09 Apr 2017) | 4 lines
special exception messages are static
* vm_core.h (rb_vm_register_special_exception): make the contents
of special exception messages static.
------------------------------------------------------------------------
r58284 | nobu | 2017-04-09 11:34:49 +0900 (Sun, 09 Apr 2017) | 5 lines
vm_core.h: ruby_error_stream_closed
* vm_core.h (ruby_special_exceptions): renamed
ruby_error_closed_stream as ruby_error_stream_closed, like the
message.
------------------------------------------------------------------------
r58283 | nobu | 2017-04-09 11:06:45 +0900 (Sun, 09 Apr 2017) | 4 lines
no mark of u3 in NODE_BLOCK_PASS
* node.c (rb_gc_mark_node): u3 in NODE_BLOCK_PASS is not used and
does not need to be marked.
------------------------------------------------------------------------
r58282 | nobu | 2017-04-09 10:23:02 +0900 (Sun, 09 Apr 2017) | 5 lines
default.mspec: defer job tokens
* spec/default.mspec (MSpecScript::JobServer#cores): defer getting
job tokens until required. when running only one spec file,
`-j` option has no effect.
------------------------------------------------------------------------
r58281 | svn | 2017-04-09 10:23:02 +0900 (Sun, 09 Apr 2017) | 1 line
* 2017-04-09
------------------------------------------------------------------------
r58280 | nobu | 2017-04-09 10:23:01 +0900 (Sun, 09 Apr 2017) | 4 lines
test/unit.rb: no jobserver in workers
* test/lib/test/unit.rb (Test::Unit::Parallel#process_args):
worker processes do not access job server.
------------------------------------------------------------------------
r58279 | nobu | 2017-04-08 16:29:55 +0900 (Sat, 08 Apr 2017) | 4 lines
Show logs after PR merger
* .travis.yml (before_script): show logs of merged pull requests
to rubyspec.
------------------------------------------------------------------------
r58278 | nobu | 2017-04-08 16:29:54 +0900 (Sat, 08 Apr 2017) | 5 lines
Split commands
* .travis.yml (before_script): split commands to prepare variables
for pull request URLs to rubyspec, to stop when each commands
failed.
------------------------------------------------------------------------
r58277 | nobu | 2017-04-08 12:25:50 +0900 (Sat, 08 Apr 2017) | 4 lines
basicsocket.c: proper system call name
* ext/socket/basicsocket.c (rsock_bsock_send): show proper system
call name in the exception message.
------------------------------------------------------------------------
r58276 | suke | 2017-04-08 11:37:03 +0900 (Sat, 08 Apr 2017) | 2 lines
ext/win32ole/win32ole_variant.c (ole_val2variant_err): use FIXNUM_P, RB_TYPE_P
------------------------------------------------------------------------
r58275 | svn | 2017-04-08 01:08:50 +0900 (Sat, 08 Apr 2017) | 1 line
* 2017-04-08
------------------------------------------------------------------------
r58274 | nobu | 2017-04-08 01:08:49 +0900 (Sat, 08 Apr 2017) | 4 lines
.travis.yml: split long command [ci skip]
* .travis.yml (before_script): split long command to merge pull
requests to rubyspec from github.
------------------------------------------------------------------------
r58273 | nobu | 2017-04-07 23:00:22 +0900 (Fri, 07 Apr 2017) | 5 lines
.travis.yml: multiple rubyspec PRs [ci skip]
* .travis.yml (before_script): merge multiple pull requests
rubyspec to from github. pull request numbers are given by
RUBYSPEC_PULL_REQUEST, as a comma or space separated list.
------------------------------------------------------------------------
r58272 | nobu | 2017-04-07 22:26:12 +0900 (Fri, 07 Apr 2017) | 1 line
use dedicated assertions
------------------------------------------------------------------------
r58271 | nobu | 2017-04-07 22:26:12 +0900 (Fri, 07 Apr 2017) | 1 line
Use \A and \z to match whole string
------------------------------------------------------------------------
r58270 | usa | 2017-04-07 21:56:35 +0900 (Fri, 07 Apr 2017) | 4 lines
Classify extlibs tool
* tool/extlibs.rb (ExtLibs): classify the tool to make it able to reuse it.
------------------------------------------------------------------------
r58269 | ko1 | 2017-04-07 16:50:30 +0900 (Fri, 07 Apr 2017) | 2 lines
insert assertions for THROW_DATA_* macros.
------------------------------------------------------------------------
r58268 | ko1 | 2017-04-07 15:41:32 +0900 (Fri, 07 Apr 2017) | 5 lines
introduce imemo_type_p(v, imemo_type)
* internal.h: introduce imemo_type_p() which checks the given value is
T_IMEMO and imemo_type() == given imemo_type.
------------------------------------------------------------------------
r58267 | nobu | 2017-04-07 13:00:56 +0900 (Fri, 07 Apr 2017) | 4 lines
fix condition of assert_not_respond_to
* test/lib/test/unit/assertions.rb (assert_not_respond_to): fix
condition to assert.
------------------------------------------------------------------------
r58266 | nobu | 2017-04-07 12:56:16 +0900 (Fri, 07 Apr 2017) | 4 lines
assert_not_respond_to private method
* test/lib/test/unit/assertions.rb (assert_not_respond_to): allow
private flag as well as assert_respond_to.
------------------------------------------------------------------------
r58265 | svn | 2017-04-07 12:56:16 +0900 (Fri, 07 Apr 2017) | 1 line
* 2017-04-07
------------------------------------------------------------------------
r58264 | nobu | 2017-04-07 12:56:15 +0900 (Fri, 07 Apr 2017) | 4 lines
assert_respond_to non-private method
* test/lib/test/unit/assertions.rb (assert_respond_to): do not
call super class assert_respond_to when false priv is given.
------------------------------------------------------------------------
r58263 | nobu | 2017-04-06 13:42:41 +0900 (Thu, 06 Apr 2017) | 4 lines
internal.h: parenthesize macro argument
* internal.h (THROW_DATA_P): parenthesize the argument which is
casted.
------------------------------------------------------------------------
r58262 | ko1 | 2017-04-06 11:56:23 +0900 (Thu, 06 Apr 2017) | 15 lines
fix TracePoint#return_value with non-local exits
* vm.c: get return_value from imemo_throw_data object (THROW_DATA_VAL()).
imemo_throw_data (TAG_BREAK) contains returned value.
However, imemo_throw_data (TAG_BREAK) can skip several frames so that
we need to use it only once (at most internal frame). To record it,
we introduced THROW_DATA_CONSUMED and check it.
* internal.h: define THROW_DATA_CONSUMED flag.
* test/ruby/test_settracefunc.rb: add tests for [Bug #13369]
* vm_insnhelper.h: add THROW_DATA_CONSUMED_P() and
THROW_DATA_CONSUMED_SET().
------------------------------------------------------------------------
r58261 | nobu | 2017-04-06 11:33:40 +0900 (Thu, 06 Apr 2017) | 1 line
Freeze RbConfig::SIZEOF and RbConfig::LIMITS
------------------------------------------------------------------------
r58260 | nobu | 2017-04-06 11:10:40 +0900 (Thu, 06 Apr 2017) | 5 lines
Rename RbConfig::Limits as RbConfig::LIMITS
* template/limits.c.tmpl (Init_limits): rename RbConfig::Limits as
RbConfig::LIMITS, constants other than class or module are all
uppercase with underscores by convention.
------------------------------------------------------------------------
r58259 | hsbt | 2017-04-06 10:47:45 +0900 (Thu, 06 Apr 2017) | 1 line
Update library entry for stringio and fiddle.
------------------------------------------------------------------------
r58258 | svn | 2017-04-06 09:14:58 +0900 (Thu, 06 Apr 2017) | 1 line
* 2017-04-06
------------------------------------------------------------------------
r58257 | kazu | 2017-04-06 09:14:57 +0900 (Thu, 06 Apr 2017) | 3 lines
NEWS: mention Array#append and Array#prepend
[Feature #12746] [ci skip]
------------------------------------------------------------------------
r58256 | hsbt | 2017-04-05 22:16:32 +0900 (Wed, 05 Apr 2017) | 5 lines
Import psych-3.0.0.beta1 from ruby/psych.
* Removed deprecated code.
* Removed code related syck gem.
* Fixed typos.
------------------------------------------------------------------------
r58255 | hsbt | 2017-04-05 20:04:25 +0900 (Wed, 05 Apr 2017) | 3 lines
Added initial gemspec for ruby/fiddle.
[Feature #13403][ruby-core:80577]
------------------------------------------------------------------------
r58254 | shyouhei | 2017-04-05 17:52:31 +0900 (Wed, 05 Apr 2017) | 8 lines
fix --with-gmp (broken by r57490)
Looking at the generated shell script (also the autoconf manual), it
seems AC_SEARCH_LIBS() m4 macro does not define HAVE_LIBsomething C
preprocessor macros, unlike AC_CHECK_LIB() which does define them.
This previous change effectively killed building with GMP because
building that mode depends on existence of HAVE_LIBGMP. [Bug #13402]
------------------------------------------------------------------------
r58253 | nobu | 2017-04-05 17:34:18 +0900 (Wed, 05 Apr 2017) | 5 lines
compile.c: remove side effects by debug macros
* compile.c (debugp_param): do not evaluate arguments of debug
macros, unless the debug mode is enabled. these macros should
not have side effects.
------------------------------------------------------------------------
r58252 | nobu | 2017-04-05 16:07:51 +0900 (Wed, 05 Apr 2017) | 3 lines
configure.in: HAVE_MALLOC_CONF
* configure.in: define HAVE_MALLOC_CONF when using jemalloc.
------------------------------------------------------------------------
r58251 | nobu | 2017-04-05 10:36:21 +0900 (Wed, 05 Apr 2017) | 4 lines
default.mspec: job server
* spec/default.mspec: override MSpecScript#cores by the tokens
from the parent make job server.
------------------------------------------------------------------------
r58250 | nobu | 2017-04-05 09:12:43 +0900 (Wed, 05 Apr 2017) | 3 lines
parse.y: ID for logop
* parse.y (logop): use ID instead of token values.
------------------------------------------------------------------------
r58249 | svn | 2017-04-05 08:42:01 +0900 (Wed, 05 Apr 2017) | 1 line
* 2017-04-05
------------------------------------------------------------------------
r58248 | nobu | 2017-04-05 08:42:00 +0900 (Wed, 05 Apr 2017) | 4 lines
parse.y: use idGE for tGEQ
* parse.y (arg): use ID directly for '>=' operator, without
TOKEN2ID macro.
------------------------------------------------------------------------
r58247 | nobu | 2017-04-04 23:19:04 +0900 (Tue, 04 Apr 2017) | 4 lines
parse.y: share with ripper
* parse.y (rb_parser_trace_lex_state, rb_parser_show_bitstack):
share with ripper.
------------------------------------------------------------------------
r58246 | nobu | 2017-04-04 23:13:46 +0900 (Tue, 04 Apr 2017) | 4 lines
parse.y: flush debug buffer
* parse.y (rb_parser_trace_lex_state, rb_parser_show_bitstack):
flush debug buffer before traces of lex_state and bitstack.
------------------------------------------------------------------------
r58245 | akr | 2017-04-04 21:54:42 +0900 (Tue, 04 Apr 2017) | 2 lines
Refactored using Method#owner.
------------------------------------------------------------------------
r58244 | stomar | 2017-04-04 04:23:13 +0900 (Tue, 04 Apr 2017) | 5 lines
improve docs for #truncate, #floor, and #ceil methods
* numeric.c: [DOC] improve and harmonize documentation
for {Float,Integer,Numeric}#{truncate,floor,ceil}.
* rational.c: [DOC] ditto for Rational#{truncate,floor,ceil}.
------------------------------------------------------------------------
r58243 | svn | 2017-04-04 04:19:21 +0900 (Tue, 04 Apr 2017) | 1 line
* 2017-04-04
------------------------------------------------------------------------
r58242 | stomar | 2017-04-04 04:19:20 +0900 (Tue, 04 Apr 2017) | 5 lines
improve docs for #round methods
* numeric.c: [DOC] improve and harmonize documentation
for {Float,Integer,Numeric}#round.
* rational.c: [DOC] ditto for Rational#round.
------------------------------------------------------------------------
r58241 | kazu | 2017-04-03 21:30:04 +0900 (Mon, 03 Apr 2017) | 1 line
Fix arguments order of IO#pwrite
------------------------------------------------------------------------
r58240 | nobu | 2017-04-03 09:10:50 +0900 (Mon, 03 Apr 2017) | 14 lines
Add IO#pread and IO#pwrite methods
These methods are useful for safe/concurrent file I/O in
multi-thread/process environments and also fairly standard
nowadays especially in systems supporting pthreads.
Based on patches by Avseyev <sergey.avseyev@gmail.com> at
[ruby-core:79290]. [Feature #4532]
* configure.in: check for pwrite(2). pread() is already used
internally for IO.copy_stream.
* io.c: implement wrappers for pread(2) and pwrite(2) and expose
them in IO.
------------------------------------------------------------------------
r58239 | svn | 2017-04-03 05:16:02 +0900 (Mon, 03 Apr 2017) | 1 line
* 2017-04-03
------------------------------------------------------------------------
r58238 | normal | 2017-04-03 05:16:02 +0900 (Mon, 03 Apr 2017) | 9 lines
compile.c: avoid duplicate mark entry for string literal Range
iseq_add_mark_object is called in iseq_set_sequence later on,
so we only need to call iseq_add_mark_object_compile_time
in iseq_peephole_optimize. Without this change, there would've
been a duplicate entry in the long-lived iseq mark_ary.
* compile.c (iseq_peephole_optimize): avoid duplicate mark object entry
[ruby-core:80536] [Feature #13355]
------------------------------------------------------------------------
r58237 | nobu | 2017-04-02 12:05:10 +0900 (Sun, 02 Apr 2017) | 1 line
update configure by prereq [ci skip]
------------------------------------------------------------------------
r58236 | normal | 2017-04-02 10:14:14 +0900 (Sun, 02 Apr 2017) | 8 lines
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.
------------------------------------------------------------------------
r58235 | nobu | 2017-04-02 07:48:01 +0900 (Sun, 02 Apr 2017) | 4 lines
rational.c: improves Rational#round rdoc [ci skip]
* rational.c (nurat_round_n): [DOC] improves Integer#round
documentation as well as Float#round.
------------------------------------------------------------------------
r58234 | normal | 2017-04-02 07:18:25 +0900 (Sun, 02 Apr 2017) | 5 lines
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.
------------------------------------------------------------------------
r58233 | normal | 2017-04-02 06:38:25 +0900 (Sun, 02 Apr 2017) | 16 lines
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]
------------------------------------------------------------------------
r58232 | stomar | 2017-04-02 05:43:35 +0900 (Sun, 02 Apr 2017) | 1 line
doc/contributors.rdoc: [DOC] update
------------------------------------------------------------------------
r58231 | svn | 2017-04-02 05:20:00 +0900 (Sun, 02 Apr 2017) | 1 line
* 2017-04-02
------------------------------------------------------------------------
r58230 | stomar | 2017-04-02 05:19:59 +0900 (Sun, 02 Apr 2017) | 11 lines
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
------------------------------------------------------------------------
r58229 | eregon | 2017-04-01 19:30:48 +0900 (Sat, 01 Apr 2017) | 6 lines
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]
------------------------------------------------------------------------
r58228 | svn | 2017-04-01 16:38:13 +0900 (Sat, 01 Apr 2017) | 1 line
* 2017-04-01
------------------------------------------------------------------------
r58227 | nobu | 2017-04-01 16:38:12 +0900 (Sat, 01 Apr 2017) | 6 lines
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>
------------------------------------------------------------------------
r58226 | nobu | 2017-03-31 16:34:47 +0900 (Fri, 31 Mar 2017) | 3 lines
exts.mk.tmpl: note footer [ci skip]
* template/exts.mk.tmpl: place note footer message at the end.
------------------------------------------------------------------------
r58225 | nobu | 2017-03-31 16:34:46 +0900 (Fri, 31 Mar 2017) | 3 lines
debug.c: check codepage value [ci skip]
* debug.c (set_debug_option): check garbage and overflow.
------------------------------------------------------------------------
r58224 | nobu | 2017-03-31 09:35:02 +0900 (Fri, 31 Mar 2017) | 7 lines
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.
------------------------------------------------------------------------
r58223 | nobu | 2017-03-31 09:35:01 +0900 (Fri, 31 Mar 2017) | 4 lines
setup.mak: ENABLE_DEBUG_ENV [ci skip]
* win32/setup.mak (-basic-vars-): pass ENABLE_DEBUG_ENV to
Makefile.
------------------------------------------------------------------------
r58222 | svn | 2017-03-31 00:20:52 +0900 (Fri, 31 Mar 2017) | 1 line
* 2017-03-31
------------------------------------------------------------------------
r58221 | nobu | 2017-03-31 00:20:52 +0900 (Fri, 31 Mar 2017) | 5 lines
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.
------------------------------------------------------------------------
r58220 | nobu | 2017-03-30 16:25:13 +0900 (Thu, 30 Mar 2017) | 1 line
.travis.yml: make tests silent [ci skip]
------------------------------------------------------------------------
r58219 | nobu | 2017-03-30 16:16:20 +0900 (Thu, 30 Mar 2017) | 1 line
.travis.yml: checkout ruby/spec PR
------------------------------------------------------------------------
r58218 | nobu | 2017-03-30 16:04:14 +0900 (Thu, 30 Mar 2017) | 4 lines
git-refresh: rewrite options
* tool/git-refresh: parse options without git-rev-parse, which is
old on travis.
------------------------------------------------------------------------
r58217 | nobu | 2017-03-30 15:44:27 +0900 (Thu, 30 Mar 2017) | 5 lines
tool/git-refresh
* tool/git-refresh: tool to clone or update git working directory.
* Makefile.in: use git-refresh.
------------------------------------------------------------------------
r58216 | svn | 2017-03-30 04:12:02 +0900 (Thu, 30 Mar 2017) | 1 line
* 2017-03-30
------------------------------------------------------------------------
r58215 | stomar | 2017-03-30 04:12:01 +0900 (Thu, 30 Mar 2017) | 4 lines
methods.rdoc: small improvements
* doc/syntax/methods.rdoc: [DOC] small improvements: fix some typos,
grammar, punctuation, consistently use capitalized "Ruby".
------------------------------------------------------------------------
r58212 | mame | 2017-03-29 20:49:39 +0900 (Wed, 29 Mar 2017) | 3 lines
Fix two typos
My typo checker :-) found the bugs.
------------------------------------------------------------------------
r58211 | sorah | 2017-03-29 20:33:59 +0900 (Wed, 29 Mar 2017) | 5 lines
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].
------------------------------------------------------------------------
r58210 | nobu | 2017-03-29 18:47:42 +0900 (Wed, 29 Mar 2017) | 4 lines
vsnprintf.c: prefix with precision
* vsnprintf.c (BSD_vfprintf): sign and hex-prefix should not be
counted in precision. [ruby-dev:47714] [Bug #8916]
------------------------------------------------------------------------
r58209 | nobu | 2017-03-29 18:47:40 +0900 (Wed, 29 Mar 2017) | 4 lines
test_minitest_unit.rb: assert_triggered
* test/minitest/test_minitest_unit.rb (assert_triggered): rename
to be hidden in backtraces.
------------------------------------------------------------------------
r58208 | sorah | 2017-03-29 18:31:13 +0900 (Wed, 29 Mar 2017) | 5 lines
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]
------------------------------------------------------------------------
r58207 | sorah | 2017-03-29 18:24:10 +0900 (Wed, 29 Mar 2017) | 8 lines
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]
------------------------------------------------------------------------
r58206 | nobu | 2017-03-29 14:54:14 +0900 (Wed, 29 Mar 2017) | 4 lines
parse.y: dot_or_colon
* parse.y (dot_or_colon): use the default action without type
casts.
------------------------------------------------------------------------
r58205 | sorah | 2017-03-29 13:32:00 +0900 (Wed, 29 Mar 2017) | 9 lines
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]
------------------------------------------------------------------------
r58204 | nobu | 2017-03-29 12:00:50 +0900 (Wed, 29 Mar 2017) | 1 line
test_symbol.rb: switch to assert_not_equal
------------------------------------------------------------------------
r58201 | svn | 2017-03-29 02:14:50 +0900 (Wed, 29 Mar 2017) | 1 line
* 2017-03-29
------------------------------------------------------------------------
r58200 | normal | 2017-03-29 02:14:49 +0900 (Wed, 29 Mar 2017) | 8 lines
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]
------------------------------------------------------------------------
r58198 | kazu | 2017-03-28 22:47:45 +0900 (Tue, 28 Mar 2017) | 1 line
fix a typo [ci skip]
------------------------------------------------------------------------
r58197 | kazu | 2017-03-28 22:47:43 +0900 (Tue, 28 Mar 2017) | 1 line
Update assertion message [ci skip]
------------------------------------------------------------------------
r58195 | nobu | 2017-03-28 18:21:58 +0900 (Tue, 28 Mar 2017) | 4 lines
ostruct.rb: refine visibility failure message
* lib/ostruct.rb (method_missing): raise an exception with proper
visibility message.
------------------------------------------------------------------------
r58192 | nobu | 2017-03-28 11:30:14 +0900 (Tue, 28 Mar 2017) | 4 lines
numeric.c: improves Integer#round rdoc [ci skip]
* numeric.c (int_round): [DOC] improves Integer#round documentation
as well as Float#round.
------------------------------------------------------------------------
r58191 | svn | 2017-03-28 11:15:52 +0900 (Tue, 28 Mar 2017) | 1 line
* 2017-03-28
------------------------------------------------------------------------
r58190 | nobu | 2017-03-28 11:15:51 +0900 (Tue, 28 Mar 2017) | 6 lines
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>
------------------------------------------------------------------------
r58156 | nobu | 2017-03-27 23:57:08 +0900 (Mon, 27 Mar 2017) | 10 lines
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
------------------------------------------------------------------------
r58150 | nobu | 2017-03-27 22:15:48 +0900 (Mon, 27 Mar 2017) | 6 lines
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
------------------------------------------------------------------------
r58146 | nobu | 2017-03-27 19:44:32 +0900 (Mon, 27 Mar 2017) | 7 lines
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.
------------------------------------------------------------------------
r58145 | svn | 2017-03-27 15:12:38 +0900 (Mon, 27 Mar 2017) | 1 line
* 2017-03-27
------------------------------------------------------------------------
r58144 | normal | 2017-03-27 15:12:37 +0900 (Mon, 27 Mar 2017) | 14 lines
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
------------------------------------------------------------------------
r58142 | normal | 2017-03-26 19:21:45 +0900 (Sun, 26 Mar 2017) | 3 lines
NEWS: feature number for String#-@ compile-time optimization
[ruby-core:79971] [Feature #13295]
------------------------------------------------------------------------
r58138 | nobu | 2017-03-26 16:13:43 +0900 (Sun, 26 Mar 2017) | 5 lines
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]
------------------------------------------------------------------------
r58136 | nobu | 2017-03-26 10:21:57 +0900 (Sun, 26 Mar 2017) | 3 lines
gmake.mk: multi mspec
* defs/gmake.mk (MSPECOPT): enable multi exec if parallel make.
------------------------------------------------------------------------
r58135 | nobu | 2017-03-26 09:50:59 +0900 (Sun, 26 Mar 2017) | 3 lines
common.mk: test-rubyspec
* common.mk (yes-test-rubyspec): make jobserver ready.
------------------------------------------------------------------------
r58134 | svn | 2017-03-26 05:35:52 +0900 (Sun, 26 Mar 2017) | 1 line
* 2017-03-26
------------------------------------------------------------------------
r58133 | svn | 2017-03-26 05:35:52 +0900 (Sun, 26 Mar 2017) | 1 line
* properties.
------------------------------------------------------------------------
r58132 | usa | 2017-03-26 05:35:51 +0900 (Sun, 26 Mar 2017) | 4 lines
Add a tool for backporters.
* tool/generate-backport-changelog.rb: Generate ChangeLog entries from svn log.
------------------------------------------------------------------------
r58084 | nobu | 2017-03-25 16:46:12 +0900 (Sat, 25 Mar 2017) | 4 lines
configure.in: syscall is deprecated on macOS
* configure.in: syscall is no longer supported on macOS since
10.12. [ruby-core:80300] [Bug #13361]
------------------------------------------------------------------------
r58083 | nobu | 2017-03-25 12:23:43 +0900 (Sat, 25 Mar 2017) | 5 lines
class.c: prohibit refinement module
* class.c (ensure_includable): cannot include refinement
module, or the type and the class do not match.
[ruby-core:79632] [Bug #13236]
------------------------------------------------------------------------
r58082 | nobu | 2017-03-25 11:57:30 +0900 (Sat, 25 Mar 2017) | 4 lines
class.c: ensure_includable
* class.c (ensure_includable): extract checks to include and
prepend.
------------------------------------------------------------------------
r58081 | svn | 2017-03-25 10:07:36 +0900 (Sat, 25 Mar 2017) | 1 line
* 2017-03-25
------------------------------------------------------------------------
r58080 | nobu | 2017-03-25 10:07:35 +0900 (Sat, 25 Mar 2017) | 5 lines
keep line number after unterminated string literal
* parse.y (parser_parse_string): keep line number even after an
unterminated string literal. it does not matter in the parser,
ripper needs this value after this error.
------------------------------------------------------------------------
r58078 | naruse | 2017-03-24 23:05:50 +0900 (Fri, 24 Mar 2017) | 1 line
export_changelog must specify the branch's url
------------------------------------------------------------------------
r58077 | nobu | 2017-03-24 21:16:54 +0900 (Fri, 24 Mar 2017) | 5 lines
ostruct.rb: fix OpenStruct.allocate
* lib/ostruct.rb (OpenStruct.allocate): initialize an instance
variable directly, without calling `intialize` method which may
be overridden in a subclass. [ruby-core:80292] [Bug #13358]
------------------------------------------------------------------------
r58076 | normal | 2017-03-24 16:29:33 +0900 (Fri, 24 Mar 2017) | 5 lines
logger: remove redundant opt_str_freeze use
Strings in "when" statements are allocation-free, so there's
never any reason to uglify the code to use opt_str_freeze over
the normal putobject instructions, here.
------------------------------------------------------------------------
r58075 | nobu | 2017-03-24 13:37:28 +0900 (Fri, 24 Mar 2017) | 4 lines
Do not update Unicode headers
* common.mk (name2ctype.h, casefold.h): use as checked out unless
ALWAYS_UPDATE_UNICODE=yes.
------------------------------------------------------------------------
r58074 | nobu | 2017-03-24 12:42:28 +0900 (Fri, 24 Mar 2017) | 4 lines
Don't download from Unicode.org
* tool/make-snapshot: use checked out headers for Unicode, to get
rid of downloading data files from Unicode.org.
------------------------------------------------------------------------
r58073 | nobu | 2017-03-24 11:44:21 +0900 (Fri, 24 Mar 2017) | 1 line
common.mk: touch-unicode-files
------------------------------------------------------------------------
r58072 | nobu | 2017-03-24 10:10:46 +0900 (Fri, 24 Mar 2017) | 1 line
Make Unicode data directory
------------------------------------------------------------------------
r58071 | nobu | 2017-03-24 08:55:29 +0900 (Fri, 24 Mar 2017) | 4 lines
Don't download from Unicode.org
* .travis.yml, appveyor.yml: use checked out headers for Unicode,
to get rid of downloading data files from Unicode.org.
------------------------------------------------------------------------
r58070 | nobu | 2017-03-24 00:55:00 +0900 (Fri, 24 Mar 2017) | 4 lines
enc-unicode.rb: fix version matching
* tool/enc-unicode.rb (data_foreach): version comments do not
include sub directory names.
------------------------------------------------------------------------
r58069 | nobu | 2017-03-24 00:49:10 +0900 (Fri, 24 Mar 2017) | 6 lines
fix GraphemeBreakProperty.txt
* tool/downloader.rb: download to the file given in ARGV.
* tool/enc-unicode.rb (parse_GraphemeBreakProperty): fix data file
path as $(UNICODE_PROPERTY_FILES) in common.mk.
------------------------------------------------------------------------
r58068 | svn | 2017-03-24 00:47:27 +0900 (Fri, 24 Mar 2017) | 1 line
* 2017-03-24
------------------------------------------------------------------------
r58067 | nobu | 2017-03-24 00:47:26 +0900 (Fri, 24 Mar 2017) | 4 lines
common.mk: updating name2ctype.h
* common.mk (name2ctype.h): update if ALWAYS_UPDATE_UNICODE = yes,
as well as casefold.h.
------------------------------------------------------------------------
r58066 | nobu | 2017-03-23 16:59:57 +0900 (Thu, 23 Mar 2017) | 4 lines
enc-unicode.rb: ifdef blocks
* tool/enc-unicode.rb (Unifdef#ifdef): enclose conditional blocks
in blocks.
------------------------------------------------------------------------
r58065 | nobu | 2017-03-23 16:59:56 +0900 (Thu, 23 Mar 2017) | 1 line
enc-unicode.rb: uniname2ctype_offset
------------------------------------------------------------------------
r58064 | nobu | 2017-03-23 16:53:35 +0900 (Thu, 23 Mar 2017) | 4 lines
update name2ctype.h
* enc/unicode/9.0.0/name2ctype.h: update due to merger of Onigmo
6.0.0.
------------------------------------------------------------------------
r58063 | svn | 2017-03-23 05:23:42 +0900 (Thu, 23 Mar 2017) | 1 line
* 2017-03-23
------------------------------------------------------------------------
r58062 | stomar | 2017-03-23 05:23:42 +0900 (Thu, 23 Mar 2017) | 3 lines
io.c: [DOC] expand docs for IO#puts
[ruby-core:80081] [Bug #13306]
------------------------------------------------------------------------
r58059 | nobu | 2017-03-22 23:06:57 +0900 (Wed, 22 Mar 2017) | 4 lines
stringio.gemspec: requires ruby 2.2
* ext/stringio/stringio.gemspec: bump up required ruby version to
2.2, which exports rb_get_kwargs() first.
------------------------------------------------------------------------
r58057 | nobu | 2017-03-22 22:55:03 +0900 (Wed, 22 Mar 2017) | 4 lines
stringio.c: RB_INTEGER_TYPE_P
* ext/stringio/stringio.c (RB_INTEGER_TYPE_P): fallback definition
for 2.3 or earlier.
------------------------------------------------------------------------
r58055 | kazu | 2017-03-22 21:27:53 +0900 (Wed, 22 Mar 2017) | 1 line
Use https URL instead of http URL
------------------------------------------------------------------------
r58054 | shyouhei | 2017-03-22 15:00:18 +0900 (Wed, 22 Mar 2017) | 11 lines
ruby tool/update-deps --fix
Onigumo 6 (r57045) introduced new onigumo.h header file, which is
required from quite much everywhere. This commit adds necessary
dependencies.
Note: ruby/oniguruma.h now includes onigumo.h,
ruby/io.h includes oniguruma.h,
ruby/encoding.h also includes oniguruma.h,
and internal.h includes encoding.h.
------------------------------------------------------------------------
r58050 | svn | 2017-03-22 10:58:17 +0900 (Wed, 22 Mar 2017) | 1 line
* 2017-03-22
------------------------------------------------------------------------
r58049 | nobu | 2017-03-22 10:58:17 +0900 (Wed, 22 Mar 2017) | 1 line
gemify stringio
------------------------------------------------------------------------
r58044 | nobu | 2017-03-21 17:03:49 +0900 (Tue, 21 Mar 2017) | 1 line
Download Unicode data by appveyor [ci skip]
------------------------------------------------------------------------
r58043 | nobu | 2017-03-21 16:19:23 +0900 (Tue, 21 Mar 2017) | 1 line
tool/downloader.rb: dryrun option [ci skip]
------------------------------------------------------------------------
r58042 | nobu | 2017-03-21 14:28:38 +0900 (Tue, 21 Mar 2017) | 6 lines
string.c: use the usable size
* string.c (rb_str_change_terminator_length): when called after
the content has been copied, old terminator length no longer
makes sense. use the whole usable size instead of capacity
without terminator. [ruby-core:80257] [Bug #13339]
------------------------------------------------------------------------
r58041 | nobu | 2017-03-21 12:15:57 +0900 (Tue, 21 Mar 2017) | 4 lines
stringio.c: check range
* ext/stringio/stringio.c (strio_ungetc): raise RangeError instead
of TypeError at too big value, as well as IO#ungetc.
------------------------------------------------------------------------
r58040 | nobu | 2017-03-21 12:15:56 +0900 (Tue, 21 Mar 2017) | 5 lines
stringio.c: check character code
* ext/stringio/stringio.c (strio_ungetc): check if the character
code is valid in the encoding. reported by Ahmad Sherif
(ahmadsherif) at https://hackerone.com/reports/209593.
------------------------------------------------------------------------
r58039 | kazu | 2017-03-21 09:11:46 +0900 (Tue, 21 Mar 2017) | 4 lines
link to README.win32 instead of mentioning it in plain text
[Fix GH-1538][ci skip]
Author: Rouan Wilsenach <Rouan.Wilsenach@tesglobal.com>
------------------------------------------------------------------------
r58038 | svn | 2017-03-21 05:30:26 +0900 (Tue, 21 Mar 2017) | 1 line
* 2017-03-21
------------------------------------------------------------------------
r58037 | stomar | 2017-03-21 05:30:25 +0900 (Tue, 21 Mar 2017) | 4 lines
docs for creating arrays
* array.c: [DOC] add example for Array.new with block and index.
Reported by Don Cruickshank. [ruby-core:68442] [Bug #10944]
------------------------------------------------------------------------
r58035 | hsbt | 2017-03-20 16:07:49 +0900 (Mon, 20 Mar 2017) | 3 lines
Added initial gemspec for mathn.
[Feature #13335]
------------------------------------------------------------------------
r58034 | nobu | 2017-03-20 10:36:08 +0900 (Mon, 20 Mar 2017) | 3 lines
Avoid integer overflow in sprintf()
merged https://github.com/mruby/mruby/commit/ff03a9a61c62340cff62f8e0fdc1a1e8775b6f17
------------------------------------------------------------------------
r58033 | nobu | 2017-03-20 10:33:08 +0900 (Mon, 20 Mar 2017) | 4 lines
sprintf.c: string limits
* sprintf.c (ruby__sfvwrite): use long instead of size_t due to
string limits.
------------------------------------------------------------------------
r58024 | svn | 2017-03-20 00:01:06 +0900 (Mon, 20 Mar 2017) | 1 line
* 2017-03-20
------------------------------------------------------------------------
r58023 | stomar | 2017-03-20 00:01:05 +0900 (Mon, 20 Mar 2017) | 7 lines
improve docs for URI::Generic
* lib/uri/generic.rb: [DOC] expand docs for URI::Generic#normalize
to clarify what normalization means here.
Reported by Robert Gleeson. [ruby-core:58430] [Bug #9127]
* lib/uri/generic.rb: [DOC] fix indent for correct code block detection.
------------------------------------------------------------------------
r58021 | nobu | 2017-03-19 21:46:31 +0900 (Sun, 19 Mar 2017) | 4 lines
sprintf.c: use FILL
* sprintf.c (rb_str_format): use FILL and FILL_ macros instead of
while loop.
------------------------------------------------------------------------
r58020 | stomar | 2017-03-19 18:51:29 +0900 (Sun, 19 Mar 2017) | 7 lines
date_core.c: fix error in DateTime docs
* ext/date/date_core.c: [DOC] fix format string for DateTime#rfc3339.
Reported by Andreas Rayo Kniep. [ruby-core:68418] [Bug #10936]
* ext/date/date_core.c: [DOC] ditto for DateTime#iso8601 and
DateTime#xmlschema; other small improvements.
------------------------------------------------------------------------
r58019 | nobu | 2017-03-19 10:11:12 +0900 (Sun, 19 Mar 2017) | 9 lines
vm_args.c: arity check of lambda
* vm_eval.c (rb_yield_lambda): new function which yields an array
to a proc and splat to a lambda. mainly for Enumerable only.
* vm_args.c (setup_parameters_complex): remove special lambda
splatting for [Bug #9605]. [ruby-core:77065] [Bug #12705]
* vm_insnhelper.c (vm_callee_setup_block_arg): ditto.
------------------------------------------------------------------------
r58018 | nobu | 2017-03-19 00:58:13 +0900 (Sun, 19 Mar 2017) | 1 line
test_lambda.rb: remove duplcate tests
------------------------------------------------------------------------
r58017 | svn | 2017-03-19 00:30:15 +0900 (Sun, 19 Mar 2017) | 1 line
* 2017-03-19
------------------------------------------------------------------------
r58016 | nobu | 2017-03-19 00:30:14 +0900 (Sun, 19 Mar 2017) | 5 lines
test_lambda.rb: refine test
* test/ruby/test_lambda.rb (test_lambda_as_iterator): refine a
test for the intention of the original report.
[ruby-core:61340] [Bug #9605]
------------------------------------------------------------------------
r58015 | nobu | 2017-03-18 23:22:15 +0900 (Sat, 18 Mar 2017) | 4 lines
vm_args.c: pass block
* vm_args.c (refine_sym_proc_call): pass block to the method when
using refinements. [ruby-core:80219] [Bug #13325]
------------------------------------------------------------------------
r58014 | nobu | 2017-03-18 22:15:15 +0900 (Sat, 18 Mar 2017) | 3 lines
vm.c: fix up r58012
* vm.c (invoke_iseq_block_from_c): fix stack region length.
------------------------------------------------------------------------
r58012 | nobu | 2017-03-18 20:29:35 +0900 (Sat, 18 Mar 2017) | 4 lines
vm.c: guard arguments [EXPERIMENTAL]
* vm.c (invoke_iseq_block_from_c): guard arguments on stack, not
to be clobbered during splatting.
------------------------------------------------------------------------
r58011 | nobu | 2017-03-18 19:37:53 +0900 (Sat, 18 Mar 2017) | 4 lines
.gdbinit: suppress gdb message [ci skip]
* .gdbinit (rp): check number of instance variables to get rid of
"Invalid number 0 of repetitions." message at an empty object.
------------------------------------------------------------------------
r58010 | nobu | 2017-03-18 19:19:52 +0900 (Sat, 18 Mar 2017) | 4 lines
.gdbinit: RArray in history [ci skip]
* .gdbinit (rp): put the contents of RArray in value history, for
later use.
------------------------------------------------------------------------
r58009 | duerst | 2017-03-18 10:35:03 +0900 (Sat, 18 Mar 2017) | 1 line
fix accidental reversal of r57997 in r58000
------------------------------------------------------------------------
r58008 | stomar | 2017-03-18 05:48:51 +0900 (Sat, 18 Mar 2017) | 10 lines
io.c: improve docs
* io.c: [DOC] improve and harmonize docs for IO#read and ARGF#read;
fix invalid example code for IO#read to make it syntax highlighted.
* io.c: [DOC] various improvements for docs of IO, ARGF, and Kernel:
fix indent to ensure correct code block detection; sync "outbuf"
paragraph for {IO,ARGF}#read, {IO,ARGF}#readpartial, and IO#sysread;
fix formatting of call-seq's; improve Kernel#open example to use nil?;
fix RDoc markup and typos.
------------------------------------------------------------------------
r58007 | svn | 2017-03-18 04:59:57 +0900 (Sat, 18 Mar 2017) | 1 line
* 2017-03-18
------------------------------------------------------------------------
r58006 | normal | 2017-03-18 04:59:56 +0900 (Sat, 18 Mar 2017) | 14 lines
remove branches in dmark and dfree GC callbacks
dmark and dfree callbacks are never called in gc.c for NULL
DATA_PTR values, not even for zombie objects.
* compile.c (ibf_loader_mark): remove branch for pointer validity
* compile.c (ibf_loader_free): ditto
* cont.c (cont_free): ditto
* cont.c (fiber_free): ditto
* dir.c (dir_free): ditto
* ext/stringio/stringio.c (strio_mark): ditto
* proc.c (binding_free): ditto
* thread_sync.c (mutex_free): ditto
* vm.c (thread_free): ditto
------------------------------------------------------------------------
r58005 | kazu | 2017-03-17 22:24:14 +0900 (Fri, 17 Mar 2017) | 1 line
fix a typo [ci skip]
------------------------------------------------------------------------
r58004 | nobu | 2017-03-17 19:08:02 +0900 (Fri, 17 Mar 2017) | 4 lines
vm.c: check stack
* vm.c (invoke_iseq_block_from_c): check stack overflow before
pushing arguments.
------------------------------------------------------------------------
r58000 | duerst | 2017-03-17 11:24:53 +0900 (Fri, 17 Mar 2017) | 6 lines
clarifiy 'codepoint' in documentation of String#each_codepoint
Make sure it's clear that the returned values are not Unicode codepoints
for encodings other than UTF-8/UTF-16(BE|LE)/UTF-32(BE|LE).
[ci skip] [Bug #13321]
------------------------------------------------------------------------
r57999 | svn | 2017-03-17 10:29:24 +0900 (Fri, 17 Mar 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r57998 | hsbt | 2017-03-17 10:29:22 +0900 (Fri, 17 Mar 2017) | 7 lines
Merge rubygems-2.6.11
This version fixed regression of rubygems-2.6.10.
https://github.com/rubygems/rubygems/pull/1856
See details of changelogs for 2.6.11 release:
https://github.com/rubygems/rubygems/blob/adfcf40502716080bd9cdfdd2e43bd4296872784/History.txt#L3
------------------------------------------------------------------------
r57997 | normal | 2017-03-17 09:55:55 +0900 (Fri, 17 Mar 2017) | 8 lines
deduplicate static rb_str_format format strings
Anybody who hits these code paths can hit them again in the
future, so try deduplicating across multiple runs of these
methods to reduce garbage.
* string.c (str_upto_each): fstring on "%.*d"
* strftime.c (rb_strftime_with_timespec): fstring on "%0*d"
------------------------------------------------------------------------
r57996 | normal | 2017-03-17 09:55:50 +0900 (Fri, 17 Mar 2017) | 6 lines
deduplicate File::NULL string
"/dev/null" is a common sight for pre-1.9.3-compatible code
targeting *nix systems, so deduplicate it here, as well.
* file.c (Init_File): use fstring for File::NULL
------------------------------------------------------------------------
r57995 | normal | 2017-03-17 09:55:45 +0900 (Fri, 17 Mar 2017) | 7 lines
deduplicate "/", ":" and "\n" strings
"/" and ":" are always statically registered in symbol.c (Init_op_tbl),
and "\n" is a commonly seen in source code.
* file.c (Init_File): fstring on File::SEPARATOR and File::PATH_SEPARATOR
* io.c (Init_IO): fstring on rb_default_rs ("\n")
------------------------------------------------------------------------
r57994 | normal | 2017-03-17 08:17:14 +0900 (Fri, 17 Mar 2017) | 5 lines
NEWS: document shorter opt_str_freeze usage
Users do not read commit messages, but maybe they read NEWS.
r57828 ("compile.c: apply opt_str_freeze to String#-@ (uminus)")
------------------------------------------------------------------------
r57993 | svn | 2017-03-17 05:58:59 +0900 (Fri, 17 Mar 2017) | 1 line
* 2017-03-17
------------------------------------------------------------------------
r57992 | stomar | 2017-03-17 05:58:58 +0900 (Fri, 17 Mar 2017) | 1 line
bignum.c: [DOC] typos and grammar
------------------------------------------------------------------------
r57991 | nobu | 2017-03-16 15:51:24 +0900 (Thu, 16 Mar 2017) | 4 lines
rational.c: initialize n
* rational.c (read_num): `n` was used uninitialized when the
string started with a period.
------------------------------------------------------------------------
r57990 | nobu | 2017-03-16 12:35:29 +0900 (Thu, 16 Mar 2017) | 4 lines
rational.c: float denom
* rational.c (parse_rat): allow float as a denominator as well as
a numerator. [ruby-core:79104] [Bug #13134]
------------------------------------------------------------------------
r57989 | nobu | 2017-03-16 12:32:16 +0900 (Thu, 16 Mar 2017) | 5 lines
rational.c: read_num
* rational.c (read_num): use rb_int_parse_cstr to parse integer
parts, and make String#to_r consistent with #to_i and #to_f.
[ruby-core:80098] [Bug #13105]
------------------------------------------------------------------------
r57988 | nobu | 2017-03-16 12:21:12 +0900 (Thu, 16 Mar 2017) | 4 lines
bignum.c: rb_int_parse_cstr
* bignum.c (rb_int_parse_cstr): extend rb_cstr_parse_inum with
flags.
------------------------------------------------------------------------
r57987 | nobu | 2017-03-16 12:05:34 +0900 (Thu, 16 Mar 2017) | 4 lines
test_rational.rb: invalid exponent
* test/ruby/test_rational.rb (test_parse): more checks for invalid
exponent. [ruby-core:80098] [Bug #13105]
------------------------------------------------------------------------
r57986 | nobu | 2017-03-16 11:02:47 +0900 (Thu, 16 Mar 2017) | 4 lines
test_rational.rb: duplicate assertions
* test/ruby/test_rational.rb (test_parse): remove duplicate
assertions.
------------------------------------------------------------------------
r57985 | nobu | 2017-03-16 10:53:52 +0900 (Thu, 16 Mar 2017) | 4 lines
rational.c: zero division
* rational.c (read_rat_nos): denominator cannot be 0, raise zero
division in that case.
------------------------------------------------------------------------
r57984 | svn | 2017-03-16 09:43:08 +0900 (Thu, 16 Mar 2017) | 1 line
* 2017-03-16
------------------------------------------------------------------------
r57983 | nobu | 2017-03-16 09:43:07 +0900 (Thu, 16 Mar 2017) | 4 lines
test_rational.rb: shorten
* test/ruby/test_rational.rb (test_parse): reduce repeated
arguments.
------------------------------------------------------------------------
r57982 | nobu | 2017-03-15 21:41:56 +0900 (Wed, 15 Mar 2017) | 1 line
vm_insnhelper.c: adjust indent [ci skip]
------------------------------------------------------------------------
r57981 | svn | 2017-03-15 17:25:59 +0900 (Wed, 15 Mar 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r57980 | ko1 | 2017-03-15 17:25:58 +0900 (Wed, 15 Mar 2017) | 19 lines
add several counters to analyze ivar inline caches.
* debug_counter.h: add (and renamed) several counters:
ivar_get_ic_hit
ivar_get_ic_miss
ivar_get_ic_miss_serial
ivar_get_ic_miss_unset
ivar_get_ic_miss_noobject
ivar_set_ic_hit
ivar_set_ic_miss
ivar_set_ic_miss_serial
ivar_set_ic_miss_unset
ivar_set_ic_miss_oorange
ivar_set_ic_miss_noobject
ivar_get_base
ivar_set_base
See related source code to know what counters mean.
------------------------------------------------------------------------
r57979 | nobu | 2017-03-15 17:15:32 +0900 (Wed, 15 Mar 2017) | 7 lines
object.c: make String#to_f consistent with literal
* object.c (rb_cstr_to_dbl): stop at successive underscores, as
well as Float literals. [ruby-core:80098] [Bug #13105]
* `_` should be within digits
* only one `_` allowed between digits
------------------------------------------------------------------------
r57978 | nobu | 2017-03-15 16:57:11 +0900 (Wed, 15 Mar 2017) | 6 lines
string.c: shortcut argument check
* string.c (str_casecmp, str_casecmp_p): split to skip argument
check when it is a String certainly.
* string.c (sym_casecmp, sym_casecmp_p): shortcut argument checks.
------------------------------------------------------------------------
r57977 | kazu | 2017-03-15 09:59:32 +0900 (Wed, 15 Mar 2017) | 1 line
io.c: [DOC] add missing `$`
------------------------------------------------------------------------
r57976 | marcandre | 2017-03-15 05:09:30 +0900 (Wed, 15 Mar 2017) | 2 lines
* lib/matrix.rb: Add Vector.zero and Vector#zero?
Patch by Chia-sheng Chen [#13208]
------------------------------------------------------------------------
r57975 | svn | 2017-03-15 00:14:22 +0900 (Wed, 15 Mar 2017) | 1 line
* 2017-03-15
------------------------------------------------------------------------
r57974 | mame | 2017-03-15 00:14:21 +0900 (Wed, 15 Mar 2017) | 4 lines
Stop a global server of Rinda test
This server seemed to cause "leaked file descriptor" warnings.
Moved it into the setup/teardown framework.
------------------------------------------------------------------------
r57973 | kazu | 2017-03-14 23:46:10 +0900 (Tue, 14 Mar 2017) | 1 line
vm_insnhelper.c: undef BUILTIN_CLASS_P too
------------------------------------------------------------------------
r57972 | glass | 2017-03-14 21:53:32 +0900 (Tue, 14 Mar 2017) | 5 lines
Fix bug of Tempfile#size if nothing is written [Bug #13198]
* lib/tempfile.rb (Tempfile#size): Fix its behavior when nothing
is written. Tempfile#size should return 0 in this case.
The patch is from nobu <nobu@ruby-lang.org>.
------------------------------------------------------------------------
r57971 | mame | 2017-03-14 20:39:58 +0900 (Tue, 14 Mar 2017) | 6 lines
Fix a consistency bug of ISEQ_COVERAGE [Bug #13305]
There is an invariant that ISEQ_COVERAGE(iseq) must be Qnil if and only
if option->coverage_enabled is false. This invariant was broken by
NODE_PRELUDE which updates option->coverage_enabled but not
ISEQ_COVERAGE(iseq).
------------------------------------------------------------------------
r57970 | ko1 | 2017-03-14 15:52:44 +0900 (Tue, 14 Mar 2017) | 6 lines
Fiber also has same issue. [Bug #13313]
* thread.c (rb_vm_proc_local_ep): added.
* cont.c (rb_fiber_start): use rb_vm_proc_local_ep().
------------------------------------------------------------------------
r57969 | nobu | 2017-03-14 14:54:35 +0900 (Tue, 14 Mar 2017) | 5 lines
thread.c: Thread.start with Symbol
* thread.c (thread_do_start): fix segfault at start with Symbol.
proc created by Symbol#to_proc does not have environment unless
using refinements. [ruby-core:80147] [Bug #13313]
------------------------------------------------------------------------
r57968 | nobu | 2017-03-14 14:54:33 +0900 (Tue, 14 Mar 2017) | 4 lines
thread.c: thread_do_start
* thread.c (thread_do_start): extract from a macro in
thread_start_func_2 for debugger.
------------------------------------------------------------------------
r57967 | nobu | 2017-03-14 13:16:02 +0900 (Tue, 14 Mar 2017) | 4 lines
envutil.rb: basename for diagnostic_reports
* test/lib/envutil.rb (EnvUtil.diagnostic_reports): diagnostic
report file uses base name only. [ci skip]
------------------------------------------------------------------------
r57966 | nobu | 2017-03-14 13:03:48 +0900 (Tue, 14 Mar 2017) | 5 lines
vm_core.h: assertions for Proc
* vm_core.h (vm_proc_block): assert before accessing.
* vm_core.h (vm_proc_iseq): remove duplicate assertion.
------------------------------------------------------------------------
r57965 | nobu | 2017-03-14 12:42:43 +0900 (Tue, 14 Mar 2017) | 4 lines
string.c: use rb_check_string_type
* string.c (rb_str_cmp_m): use rb_check_string_type for check and
conversion, instead of calling the conversion method directly.
------------------------------------------------------------------------
r57964 | svn | 2017-03-14 05:20:40 +0900 (Tue, 14 Mar 2017) | 1 line
* 2017-03-14
------------------------------------------------------------------------
r57963 | stomar | 2017-03-14 05:20:40 +0900 (Tue, 14 Mar 2017) | 5 lines
docs for Symbol#casecmp and Symbol#casecmp?
* string.c: [DOC] improve docs of Symbol#casecmp and Symbol#casecmp?
according to the similar String methods; fix RDoc markup and typos;
fix call-seq's for Symbol#{upcase,downcase,capitalize,swapcase}.
------------------------------------------------------------------------
r57962 | nobu | 2017-03-13 23:59:08 +0900 (Mon, 13 Mar 2017) | 4 lines
sprintf.c: fix out-of-bound access
* sprintf.c (rb_str_format): get rid of out-of-bound access when
single % at the end.
------------------------------------------------------------------------
r57961 | nobu | 2017-03-13 20:47:45 +0900 (Mon, 13 Mar 2017) | 1 line
string.c (rb_str_set_len): pathological check
------------------------------------------------------------------------
r57960 | nobu | 2017-03-13 18:29:19 +0900 (Mon, 13 Mar 2017) | 4 lines
file.c: join with /
* file.c (rb_file_join): join using "/" always, not a constant.
and fix the document. [ruby-core:79579] [Bug #13223]
------------------------------------------------------------------------
r57958 | nobu | 2017-03-13 18:12:05 +0900 (Mon, 13 Mar 2017) | 4 lines
string.c: $; is a GC-root
* string.c (Init_String): $; must be a GC-root, not to be
collected. [ruby-core:79582]
------------------------------------------------------------------------
r57956 | naruse | 2017-03-13 18:05:35 +0900 (Mon, 13 Mar 2017) | 4 lines
Raise error if spec is nil
With parallel test-all, the spec is sometimes nil.
To debug it raise more detailed error.
------------------------------------------------------------------------
r57955 | nobu | 2017-03-13 17:38:12 +0900 (Mon, 13 Mar 2017) | 5 lines
parse.y: relax `&' warning
* parse.y (parser_yylex): disable "`&' interpreted as argument
prefix" warning when just followed by a symbol literal.
[ruby-core:79926] [Misc #13283]
------------------------------------------------------------------------
r57951 | mrkn | 2017-03-13 15:03:18 +0900 (Mon, 13 Mar 2017) | 7 lines
bigdecimal: version 1.3.2
Import bigdecimal version 1.3.2. The full commit log is here:
https://github.com/ruby/bigdecimal/compare/v1.3.1...v1.3.2
This fixes [ruby-core:79603] [Bug #13232]
------------------------------------------------------------------------
r57950 | nobu | 2017-03-13 14:30:44 +0900 (Mon, 13 Mar 2017) | 4 lines
thread.c: rb_thread_fd_close [ci skip]
* thread.c (rb_thread_fd_close): remove deprecated. a couple of
external libraries used it. [ruby-core:80078] [Bug #13304]
------------------------------------------------------------------------
r57949 | nobu | 2017-03-13 12:30:11 +0900 (Mon, 13 Mar 2017) | 1 line
thread.c: rb_thread_fd_close no longer returns
------------------------------------------------------------------------
r57948 | nobu | 2017-03-13 11:14:15 +0900 (Mon, 13 Mar 2017) | 4 lines
thread.c: rb_thread_fd_close [ci skip]
* thread.c (rb_thread_fd_close): re-define only for abi-check,
abort if called. [ruby-core:80078] [Bug #13304]
------------------------------------------------------------------------
r57947 | nobu | 2017-03-13 09:11:25 +0900 (Mon, 13 Mar 2017) | 3 lines
compile.c: compile flip-flop
* compile.c (iseq_compile_each0): compile flip-flop directly.
------------------------------------------------------------------------
r57946 | nobu | 2017-03-13 09:11:24 +0900 (Mon, 13 Mar 2017) | 4 lines
compile.c: omit newrange
* compile.c (iseq_compile_each): omit creating literal-only range
to be popped immediately.
------------------------------------------------------------------------
r57944 | naruse | 2017-03-13 03:40:07 +0900 (Mon, 13 Mar 2017) | 1 line
io.c: [DOC] IO#puts uses IO#write
------------------------------------------------------------------------
r57943 | svn | 2017-03-13 03:31:39 +0900 (Mon, 13 Mar 2017) | 1 line
* 2017-03-13
------------------------------------------------------------------------
r57942 | naruse | 2017-03-13 03:31:38 +0900 (Mon, 13 Mar 2017) | 1 line
Didn't work if backport field is empty
------------------------------------------------------------------------
r57908 | nobu | 2017-03-12 22:51:12 +0900 (Sun, 12 Mar 2017) | 4 lines
compile.c: compile_const_prefix
* compile.c (compile_const_prefix): rename, and check the result
of parts of the prefix.
------------------------------------------------------------------------
r57892 | nobu | 2017-03-12 14:52:42 +0900 (Sun, 12 Mar 2017) | 4 lines
compile.c: omit newhash
* compile.c (iseq_compile_each): omit creating literal-only hash
to be popped immediately.
------------------------------------------------------------------------
r57891 | nobu | 2017-03-12 14:48:58 +0900 (Sun, 12 Mar 2017) | 1 line
compile.c: NODE_VALUES must not be popped
------------------------------------------------------------------------
r57890 | nobu | 2017-03-12 07:44:26 +0900 (Sun, 12 Mar 2017) | 4 lines
compile.c: iseq_compile_each0
* compile.c (iseq_compile_each0): split from null node case to
constify line and type.
------------------------------------------------------------------------
r57889 | nobu | 2017-03-12 07:37:50 +0900 (Sun, 12 Mar 2017) | 3 lines
compile.c: compile_when
* compile.c (compile_when): extract from iseq_compile_each.
------------------------------------------------------------------------
r57888 | nobu | 2017-03-12 07:25:32 +0900 (Sun, 12 Mar 2017) | 3 lines
compile.c: compile_case
* compile.c (compile_case): extract from iseq_compile_each.
------------------------------------------------------------------------
r57887 | stomar | 2017-03-12 06:32:46 +0900 (Sun, 12 Mar 2017) | 17 lines
lib/ostruct.rb: [DOC] revise docs for OpenStruct
* update paragraph on implementation:
define_singleton_method is used, not define_method
* add call-seq with return values for each_pair
* adopt description of dig from Array and Hash
* fix description of the hash method
* :nodoc: initialize_copy, respond_to_missing?
* other small improvements, e.g. use the term `attribute' in the docs
(instead of `member'), which is clearer for users of the class
* improve code examples: e.g. use more consistent style (always use
double quotes, drop `p' and `puts', ...), update inspect output,
use example data that is not prone to change (like population)
* add more code examples
* fix some small errors and grammar
[ruby-core:79265] [Bug #13159]
------------------------------------------------------------------------
r57886 | stomar | 2017-03-12 05:01:55 +0900 (Sun, 12 Mar 2017) | 5 lines
docs for String#casecmp and String#casecmp?
* string.c: [DOC] specify when String#casecmp and String#casecmp?
return nil; modify examples to better show difference to <=>;
fix RDoc markup and typos.
------------------------------------------------------------------------
r57883 | naruse | 2017-03-12 04:03:11 +0900 (Sun, 12 Mar 2017) | 3 lines
Generate log from svn log
When there's multiple revisions, all svn logs should be used.
------------------------------------------------------------------------
r57852 | svn | 2017-03-12 01:08:55 +0900 (Sun, 12 Mar 2017) | 1 line
* 2017-03-12
------------------------------------------------------------------------
r57851 | naruse | 2017-03-12 01:08:54 +0900 (Sun, 12 Mar 2017) | 1 line
suppress warning: shadowing outer local variable - dir & opt
------------------------------------------------------------------------
r57842 | nobu | 2017-03-11 22:24:08 +0900 (Sat, 11 Mar 2017) | 1 line
defs/gmake.mk: update again after comit [ci skip]
------------------------------------------------------------------------
r57836 | nobu | 2017-03-11 21:26:00 +0900 (Sat, 11 Mar 2017) | 6 lines
compile.c: constify flags
* compile.c (compile_cpath): return `noscoped` bit flag, instead
of boolean flag.
* compile.c (iseq_compile_each): constify flags.
------------------------------------------------------------------------
r57835 | nobu | 2017-03-11 20:15:05 +0900 (Sat, 11 Mar 2017) | 1 line
test/ruby/test_require.rb: use squiggly heredocs
------------------------------------------------------------------------
r57829 | svn | 2017-03-11 05:09:07 +0900 (Sat, 11 Mar 2017) | 1 line
* 2017-03-11
------------------------------------------------------------------------
r57828 | normal | 2017-03-11 05:09:06 +0900 (Sat, 11 Mar 2017) | 5 lines
compile.c: apply opt_str_freeze to String#-@ (uminus)
The same optimization used for "literal string".freeze
can easily apply to uminus without introducing any
compatibility problems.
------------------------------------------------------------------------
r57827 | nobu | 2017-03-10 22:46:22 +0900 (Fri, 10 Mar 2017) | 4 lines
common.mk: ignore clean-rubyspec error [ci skip]
* common.mk (clean-rubyspec): nothing to clean before running
rubyspec.
------------------------------------------------------------------------
r57826 | nobu | 2017-03-10 16:18:03 +0900 (Fri, 10 Mar 2017) | 7 lines
debug_counter.c: debug_counter_names [ci skip]
* debug_counter.c (debug_counter_names): stringize debug counter
names by preprocessor.
* debug_counter.h (RB_DEBUG_COUNTER): define counter names outside
the include guard, to expand multiple times.
------------------------------------------------------------------------
r57825 | nobu | 2017-03-10 14:34:27 +0900 (Fri, 10 Mar 2017) | 7 lines
configure.in: RUBY_SO_NAME as --with-soname
* configure.in (RUBY_SO_NAME): [EXPERIMENTAL] use the given name
literally if --with-soname is specified.
[ruby-core:79972] [Misc #13296]
[ci skip]
------------------------------------------------------------------------
r57824 | svn | 2017-03-10 04:48:10 +0900 (Fri, 10 Mar 2017) | 1 line
* 2017-03-10
------------------------------------------------------------------------
r57823 | stomar | 2017-03-10 04:48:09 +0900 (Fri, 10 Mar 2017) | 1 line
object.c: [DOC] simplify Object#tap example
------------------------------------------------------------------------
r57822 | nobu | 2017-03-09 15:44:57 +0900 (Thu, 09 Mar 2017) | 3 lines
rbconfig/sizeof: remove VPATH
* ext/rbconfig/sizeof/depend: remove VPATH for `make dist`.
------------------------------------------------------------------------
r57821 | normal | 2017-03-09 12:49:47 +0900 (Thu, 09 Mar 2017) | 4 lines
ext/socket/raddrinfo.c (addrinfo_mark): avoid needless branch
gc.c (gc_mark_children, case T_DATA) does not use
the dmark function pointer if DATA_PTR is NULL
------------------------------------------------------------------------
r57820 | nobu | 2017-03-09 12:38:06 +0900 (Thu, 09 Mar 2017) | 3 lines
goruby.c: FD leak [ci skip]
* goruby.c (goruby_options): fix potential FD leak.
------------------------------------------------------------------------
r57819 | nobu | 2017-03-09 12:31:53 +0900 (Thu, 09 Mar 2017) | 4 lines
rbconfig/sizeof: nmake VPATH
* ext/rbconfig/sizeof/depend: prepend VPATH for out-of-place build
using nmake.
------------------------------------------------------------------------
r57818 | shyouhei | 2017-03-09 11:31:23 +0900 (Thu, 09 Mar 2017) | 6 lines
revert RB_FIXABLE related changesets [Bug #13288][Bug #13293][Bug #13294]
This commit is auto-generated using following command:
svn diff -r57807:57788 include internal.h bignum.c numeric.c compile.c insns.def object.c sprintf.c | patch -p0
------------------------------------------------------------------------
r57817 | nobu | 2017-03-09 11:10:27 +0900 (Thu, 09 Mar 2017) | 4 lines
fix UTF-32 valid_encoding?
* test/ruby/test_io_m17n.rb (TestIO_M17N#test_puts_widechar): do
not use invalid codepoint. [ruby-core:79966] [Bug #13292]
------------------------------------------------------------------------
r57816 | nobu | 2017-03-09 11:04:10 +0900 (Thu, 09 Mar 2017) | 9 lines
fix UTF-32 valid_encoding?
* enc/utf_32be.c (utf32be_mbc_enc_len): check arguments precisely.
[ruby-core:79966] [Bug #13292]
* enc/utf_32le.c (utf32le_mbc_enc_len): ditto.
* regenc.h (UNICODE_VALID_CODEPOINT_P): predicate for valid
Unicode codepoints.
------------------------------------------------------------------------
r57815 | nobu | 2017-03-09 10:55:43 +0900 (Thu, 09 Mar 2017) | 7 lines
test_utf16.rb: refine valid_encoding tests
* test/ruby/enc/test_utf16.rb (test_utf16be_valid_encoding):
assert all data and use assert_predicate.
* test/ruby/enc/test_utf16.rb (test_utf16le_valid_encoding):
ditto.
------------------------------------------------------------------------
r57814 | nobu | 2017-03-09 10:06:09 +0900 (Thu, 09 Mar 2017) | 1 line
make commit [ci skip]
------------------------------------------------------------------------
r57813 | normal | 2017-03-09 06:24:24 +0900 (Thu, 09 Mar 2017) | 3 lines
string.c (str_uminus): update doc for deduplication
As of r57698, String#-@ can return pre-existing strings.
------------------------------------------------------------------------
r57812 | svn | 2017-03-09 05:41:39 +0900 (Thu, 09 Mar 2017) | 1 line
* 2017-03-09
------------------------------------------------------------------------
r57811 | stomar | 2017-03-09 05:41:38 +0900 (Thu, 09 Mar 2017) | 9 lines
docs for FileUtils.ln methods
* lib/fileutils.rb: [DOC] add clarifying call-seq's for FileUtil.ln,
ln_s, and ln_sf, with better argument names for the created link and
link target. Reported by Mike Vastola. [ruby-core:62532] [Bug #9829]
* lib/fileutils.rb: [DOC] further improve descriptions of FileUtils.ln
and related methods; improve examples: relative links probably won't
work in other dir, avoid `include', use more generic homedir name.
------------------------------------------------------------------------
r57810 | nobu | 2017-03-08 22:52:32 +0900 (Wed, 08 Mar 2017) | 1 line
great love
------------------------------------------------------------------------
r57809 | nobu | 2017-03-08 17:19:56 +0900 (Wed, 08 Mar 2017) | 3 lines
fix paren
* string.c (str_byte_substr): fix misplaced parenthesis at r56155.
------------------------------------------------------------------------
r57808 | nobu | 2017-03-08 16:34:13 +0900 (Wed, 08 Mar 2017) | 1 line
proc.c: preserve class name encoding in Proc#to_s
------------------------------------------------------------------------
r57807 | shyouhei | 2017-03-08 13:50:22 +0900 (Wed, 08 Mar 2017) | 10 lines
re-introduce __builtin_add_overflow
r57789 (74cdd89) was gradually "improve"d by naruse through r57793 to
r57806, resulted in reverting the efect of r57789 while retaining its
complexity. I think the current situation is slightly worse than
before (same output complicated source code).
Here I introduce __builtin_add_overflow again, which (I think) is what
naruse wanted to do in r57793.
------------------------------------------------------------------------
r57806 | naruse | 2017-03-08 04:48:00 +0900 (Wed, 08 Mar 2017) | 1 line
Always use old RB_FIXABLE to allow double as argument
------------------------------------------------------------------------
r57805 | naruse | 2017-03-08 02:51:35 +0900 (Wed, 08 Mar 2017) | 3 lines
Revert r57803 "Avoid to cast the argument"
__builtin_add_overflow doesn't support double.
------------------------------------------------------------------------
r57804 | svn | 2017-03-08 02:46:55 +0900 (Wed, 08 Mar 2017) | 1 line
* 2017-03-08
------------------------------------------------------------------------
r57803 | naruse | 2017-03-08 02:46:54 +0900 (Wed, 08 Mar 2017) | 3 lines
Avoid to cast the argument
For 32bit environment and __int128 use cases.
------------------------------------------------------------------------
r57802 | kazu | 2017-03-07 22:04:39 +0900 (Tue, 07 Mar 2017) | 4 lines
string.c: [DOC] Fix a typo in String#dump
[Fix GH-1531][ci skip]
Author: Alex Semyonov <alex@semyonov.us>
------------------------------------------------------------------------
r57801 | nobu | 2017-03-07 19:56:22 +0900 (Tue, 07 Mar 2017) | 5 lines
parse.y: remove trace
* parse.y (reg_named_capture_assign_iter): do not insert trace
instructions before local variable assinments. putobject is
expected at first. [ruby-core:79940] [Bug #13287]
------------------------------------------------------------------------
r57800 | nobu | 2017-03-07 18:13:41 +0900 (Tue, 07 Mar 2017) | 4 lines
string.c: negation of LONG_MIN
* string.c (rb_str_update): do not use negation of LONG_MIN, which
is negative too.
------------------------------------------------------------------------
r57799 | nobu | 2017-03-07 18:07:57 +0900 (Tue, 07 Mar 2017) | 6 lines
string.c: fix integer overflow
* string.c (str_byte_substr): fix another integer overflow which
can happen only when SHARABLE_MIDDLE_SUBSTRING is enabled.
[ruby-core:79951] [Bug #13289]
------------------------------------------------------------------------
r57798 | naruse | 2017-03-07 15:33:49 +0900 (Tue, 07 Mar 2017) | 1 line
Use RB_POSFIXABLE and RB_NEGFIXABLE to avoid cast introduced at r57793
------------------------------------------------------------------------
r57797 | nobu | 2017-03-07 14:48:15 +0900 (Tue, 07 Mar 2017) | 5 lines
string.c: fix integer overflow
* string.c (rb_str_subpos): fix integer overflow which can happen
only when SHARABLE_MIDDLE_SUBSTRING is enabled. incorpolate
https://github.com/mruby/mruby/commit/7db0786abdd243ba031e24683f
------------------------------------------------------------------------
r57796 | naruse | 2017-03-07 14:19:00 +0900 (Tue, 07 Mar 2017) | 1 line
suppress warning: shadowing outer local variable - e
------------------------------------------------------------------------
r57795 | naruse | 2017-03-07 14:11:02 +0900 (Tue, 07 Mar 2017) | 1 line
Supress warning: instance variable @repeat_count not initialized
------------------------------------------------------------------------
r57794 | hsbt | 2017-03-07 13:46:46 +0900 (Tue, 07 Mar 2017) | 1 line
Fix up r57788, Function is removed at readline-6.3.
------------------------------------------------------------------------
r57793 | naruse | 2017-03-07 12:35:47 +0900 (Tue, 07 Mar 2017) | 13 lines
Use ADD instead of MUL
* On recent CPUs, 2-operand MUL's latency is 3 cycle but ADD is 1 cycle.
* clang Optimizes `MUL rax,2` into `ADD rax,rax` but gcc7 doesn't.
* LONG2FIX is compiled into `lea r14,[r15+r15*1+0x1]`; this is 1cycle
and run in parallel if the branch prediction is correct.
* Note that old (RB_POSFIXABLE(f) && RB_NEGFIXABLE(f)) is usually uses
following instructions.
* movabs rax,0x4000000000000000
* add rax,rdi
* js
It needs large immediate and Macro-Fusion is not applied.
ADD and JO is much smaller though it is also Macro-Fusion unfriendly.
------------------------------------------------------------------------
r57792 | nobu | 2017-03-07 10:07:03 +0900 (Tue, 07 Mar 2017) | 7 lines
fix macro name
* tool/instruction.rb (VmBodyGenerator#make_header_prepare_stack):
REG_CFP has been prefixed with VM_ at r56609. [Bug #12527]
* tool/instruction.rb (VmBodyGenerator#make_footer_stack_val):
ditto.
------------------------------------------------------------------------
r57791 | svn | 2017-03-07 04:42:37 +0900 (Tue, 07 Mar 2017) | 1 line
* 2017-03-07
------------------------------------------------------------------------
r57790 | stomar | 2017-03-07 04:42:36 +0900 (Tue, 07 Mar 2017) | 1 line
io.c: [DOC] open mode can be an integer; fix rdoc syntax
------------------------------------------------------------------------
r57789 | shyouhei | 2017-03-06 20:14:05 +0900 (Mon, 06 Mar 2017) | 9 lines
optimize FIXABLE macro
Looking at the source code, FIXABLE tends to be just before LOING2FIX
to check applicability of that operation. Why not try computing first
then check for overflow, which should be optimial.
I also tried the same thing for unsigned types but resulted in slower
execution. It seems RB_POSFIXABLE() is fast enough on modern CPUs.
------------------------------------------------------------------------
r57788 | hsbt | 2017-03-06 18:10:21 +0900 (Mon, 06 Mar 2017) | 1 line
Avoid to warning of clang with -Wincompatible-pointer-types.
------------------------------------------------------------------------
r57787 | nobu | 2017-03-06 17:10:20 +0900 (Mon, 06 Mar 2017) | 4 lines
readline.c: fix waiting fucntion
* ext/readline/readline.c (getc_body): use
rb_w32_wait_events_blocking in block region.
------------------------------------------------------------------------
r57786 | shyouhei | 2017-03-06 16:25:18 +0900 (Mon, 06 Mar 2017) | 6 lines
LONG_LONG_MAX not always available
I was not aware of cases when LONG_LONG_MAX is undefined. Sorry.
Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org>
------------------------------------------------------------------------
r57785 | nobu | 2017-03-06 15:44:11 +0900 (Mon, 06 Mar 2017) | 7 lines
opt_eq_func refactor
* vm_insnhelper.c (opt_eq_func): method to dispatch is resolved by
only the receiver's class, not including the argument class.
even if basic operation is redefined, other class conditions
never meet. optimize Float and non-Float case, delegate to
rb_float_equal directly.
------------------------------------------------------------------------
r57784 | shyouhei | 2017-03-06 15:04:52 +0900 (Mon, 06 Mar 2017) | 16 lines
use HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW
We already check for __builtin_mul_overflow in configure but never
actually referred it before. Why not call it if available, because
that should render supposedly-optimial assembly outputs.
Optionally if __builtin_mul_overflow_p is available, which is the case
for recent GCC, use that to detect fixnum overflow. This is much
faster than the previous. On my machine generated assembly of
numeric.c:int_pow reduces from 480 to 448 bytes, according to nm(1).
Also on my machine, following script boosts from 7.819 to 6.929 sec.
time ./miniruby -e 'i=0; while i < 30_000_000 do i += 1; 7 ** 23; end'
Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org>
------------------------------------------------------------------------
r57783 | nobu | 2017-03-06 08:36:44 +0900 (Mon, 06 Mar 2017) | 5 lines
compile.c: variable type
* compile.c (iseq_compile_each): fix variable type, use VALUE for
Symbol.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=57772&view=revision
------------------------------------------------------------------------
r57782 | svn | 2017-03-06 04:43:11 +0900 (Mon, 06 Mar 2017) | 1 line
* 2017-03-06
------------------------------------------------------------------------
r57781 | stomar | 2017-03-06 04:43:10 +0900 (Mon, 06 Mar 2017) | 9 lines
docs for IO.{write,read}
* io.c: [DOC] improve docs for IO
* IO.{write,read}: fix errors (:open_args is not an array of
strings, it might include a perm or options hash argument;
IO.write has no length argument, drop corresponding statement),
improve formatting, call-seq, grammar.
* IO#sync=: remove unnecessary "produces no output".
* other improvements.
------------------------------------------------------------------------
r57780 | stomar | 2017-03-05 21:36:09 +0900 (Sun, 05 Mar 2017) | 5 lines
docs for IO#print
* io.c: [DOC] split documentation for IO#print into smaller paragraphs,
delete duplicate sentence, fix call-seq.
Based on a patch by Dario Daic. [ruby-core:78291] [Bug #12975]
------------------------------------------------------------------------
r57779 | nobu | 2017-03-05 10:46:20 +0900 (Sun, 05 Mar 2017) | 4 lines
math.c: more accuracy
* math.c (math_log10): calculate log10(2) for more accuracy.
[ruby-core:79907] [Bug #13279]
------------------------------------------------------------------------
r57778 | stomar | 2017-03-05 05:08:04 +0900 (Sun, 05 Mar 2017) | 1 line
string.c: [DOC] fix doc formatting for String#==, #===
------------------------------------------------------------------------
r57777 | stomar | 2017-03-05 05:02:48 +0900 (Sun, 05 Mar 2017) | 4 lines
rdoc for String class
* lib/unicode_normalize.rb: [DOC] prevent a comment from
showing up in the class documentation for String.
------------------------------------------------------------------------
r57776 | svn | 2017-03-05 04:52:31 +0900 (Sun, 05 Mar 2017) | 1 line
* 2017-03-05
------------------------------------------------------------------------
r57775 | stomar | 2017-03-05 04:52:30 +0900 (Sun, 05 Mar 2017) | 5 lines
nodoc OptParse
* lib/optparse.rb: [DOC] nodoc OptParse, introduced with r46126,
to avoid leaking of its documentation (OptionParser's docs) into
the class documentation of Object. [ruby-core:79909] [Bug #13281]
------------------------------------------------------------------------
r57774 | nobu | 2017-03-04 23:44:05 +0900 (Sat, 04 Mar 2017) | 4 lines
compile.c: operand size check
* compile.c (ibf_load_code): raise an exception on invalid operand
size. should not use assert() to validate incoming data.
------------------------------------------------------------------------
r57773 | nobu | 2017-03-04 23:37:22 +0900 (Sat, 04 Mar 2017) | 4 lines
compile.c: memory leak
* compile.c (iseq_set_sequence): fix potential memory leaks on an
invalid instruction sequence.
------------------------------------------------------------------------
r57772 | nobu | 2017-03-04 23:21:57 +0900 (Sat, 04 Mar 2017) | 4 lines
compile.c: fix invalid label message
* compile.c (validate_label): fix invalid label message.
registered labels are Symbols, not IDs.
------------------------------------------------------------------------
r57771 | stomar | 2017-03-04 22:13:50 +0900 (Sat, 04 Mar 2017) | 5 lines
documentation for sort methods
* array.c: [DOC] fix grammar in Array#sort, #sort!, #sort_by!,
move references below the code example, add a missing reference.
* enum.c: [DOC] fix grammar in Enumerable#sort, #sort_by.
------------------------------------------------------------------------
r57770 | stomar | 2017-03-04 22:12:20 +0900 (Sat, 04 Mar 2017) | 5 lines
enum.c: documentation for Enumerable#sort_by
* enum.c: [DOC] improve structure of docs for Enumerable#sort_by,
adopt explanation of the comparison block from Array#sort_by,
drop mention of 1.8, fix typos.
------------------------------------------------------------------------
r57769 | nobu | 2017-03-04 14:13:18 +0900 (Sat, 04 Mar 2017) | 4 lines
readline.c: fix type
* ext/readline/readline.c (getc_body): fix variable type, and
extract _get_osfhandle.
------------------------------------------------------------------------
r57768 | svn | 2017-03-04 04:39:36 +0900 (Sat, 04 Mar 2017) | 1 line
* 2017-03-04
------------------------------------------------------------------------
r57767 | stomar | 2017-03-04 04:39:35 +0900 (Sat, 04 Mar 2017) | 5 lines
io.c: documentation for puts
* io.c: [DOC] clarify that the 'record separator' between
arguments passed to 'puts' is always a newline.
Based on a patch by Mark Amery. [ruby-core:65801] [Misc #10403]
------------------------------------------------------------------------
r57766 | nobu | 2017-03-03 18:27:27 +0900 (Fri, 03 Mar 2017) | 4 lines
zlib for mingw
* ext/zlib/extconf.rb: fix building zlib for mingw, and for
cross-compiling.
------------------------------------------------------------------------
r57765 | stomar | 2017-03-03 17:45:04 +0900 (Fri, 03 Mar 2017) | 11 lines
proc.c: documentation for Proc#{call,yield,[]}
* proc.c: [DOC] fix and improve docs for Proc#{call,yield,[]}:
* change order of Document-method directives as workaround for an
RDoc rendering problem where the documentation for Proc#call displays
a "Document-method: []" code block. [ruby-core:79887] [Bug #13273]
* add missing call-seq and example for Proc#yield
* remove pointless cross reference to Proc#yield
* update description for handling of extra or missing arguments,
improve examples and add cross reference to #lambda?
------------------------------------------------------------------------
r57764 | nobu | 2017-03-03 15:22:47 +0900 (Fri, 03 Mar 2017) | 4 lines
MINIRUBY for cross-compling
* template/configure-ext.mk.tmpl (EXTMK_ARGS): add MINIRUBY for
cross-compling, which is used in extmk.rb.
------------------------------------------------------------------------
r57763 | nobu | 2017-03-03 15:18:36 +0900 (Fri, 03 Mar 2017) | 4 lines
fix for mingw64
* util.c: define MINGW_HAS_SECURE_API for qsort_s on recent
mingw64.
------------------------------------------------------------------------
r57762 | nobu | 2017-03-03 13:51:34 +0900 (Fri, 03 Mar 2017) | 6 lines
broken mingw
* configure.in: check whether frexp and modf are broken.
* include/ruby/win32.h (frexp, modf): ignore bad declarations when
compiling as C++. [ruby-core:79859] [Bug #13267]
------------------------------------------------------------------------
r57761 | akr | 2017-03-03 08:36:13 +0900 (Fri, 03 Mar 2017) | 2 lines
[DOC] update doc.
------------------------------------------------------------------------
r57760 | svn | 2017-03-03 08:33:07 +0900 (Fri, 03 Mar 2017) | 1 line
* 2017-03-03
------------------------------------------------------------------------
r57759 | akr | 2017-03-03 08:33:06 +0900 (Fri, 03 Mar 2017) | 6 lines
refine a warning message.
The "n" option for regexp, /.../n, is historical.
It doesn't mean the regexp works as binary match since Ruby 1.9.
------------------------------------------------------------------------
r57758 | stomar | 2017-03-02 19:31:56 +0900 (Thu, 02 Mar 2017) | 5 lines
string.c: restore documentation for String#<<
* string.c: [DOC] restore documentation for String#<<
which became undocumented with r56021; fix a typo.
[ruby-core:79865] [Bug #13268]
------------------------------------------------------------------------
r57757 | nobu | 2017-03-02 13:54:19 +0900 (Thu, 02 Mar 2017) | 5 lines
test: use RbConfig::Limits
* test/lib/envutil.rb: rbconfig/sizeof may not be available when
cross-compiling. use RbConfig::Limits instead of calculating
limits of Fixnum with hard-coded CHAR_BIT.
------------------------------------------------------------------------
r57756 | nobu | 2017-03-02 13:54:18 +0900 (Thu, 02 Mar 2017) | 5 lines
fix for cross-compiling
* common.mk (test-rubyspec): add dependency for cross-compiling.
* defs/gmake.mk: ditto.
------------------------------------------------------------------------
r57755 | stomar | 2017-03-02 04:59:03 +0900 (Thu, 02 Mar 2017) | 5 lines
struct.c: improve rdoc for Struct
* struct.c: [DOC] improve examples for ::new, improve #dig example,
simplify #select example, use consistent style for return values,
fix typos and example code style, remove duplicate cross reference.
------------------------------------------------------------------------
r57754 | svn | 2017-03-02 04:57:15 +0900 (Thu, 02 Mar 2017) | 1 line
* 2017-03-02
------------------------------------------------------------------------
r57753 | stomar | 2017-03-02 04:57:14 +0900 (Thu, 02 Mar 2017) | 1 line
hash.c: [DOC] fix book title in example
------------------------------------------------------------------------
r57752 | kazu | 2017-03-01 20:37:30 +0900 (Wed, 01 Mar 2017) | 1 line
lib/e2mmap.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57751 | stomar | 2017-03-01 19:17:42 +0900 (Wed, 01 Mar 2017) | 5 lines
fileutils.rb: improve rdoc for FileUtils
* lib/fileutils.rb: [DOC] fix invalid example code to make it
syntax highlighted, fix rdoc for lists, nodoc internal methods,
avoid a dangerous example.
------------------------------------------------------------------------
r57750 | rhe | 2017-03-01 19:15:55 +0900 (Wed, 01 Mar 2017) | 7 lines
openssl: avoid segfault during running tests on Ubuntu trusty
Import the commit 6693a549d673 ("test/test_pkey_ec: do not use dummy 0
order", 2017-02-03) from upstream. Hopefully this will fix the segfault
on RubyCI icc16-x64:
http://rubyci.org/logs/rubyci.s3.amazonaws.com/icc-x64/ruby-trunk/log/20170301T050002Z.fail.html.gz
------------------------------------------------------------------------
r57749 | stomar | 2017-03-01 17:54:37 +0900 (Wed, 01 Mar 2017) | 6 lines
fileutils.rb: improve docs for FileUtils.compare_file
* lib/fileutils.rb (compare_file): [DOC] clarify documentation
by avoiding confusing return value of "maybe false".
[ruby-core:75431] [Misc #12365] reported by Robert A. Heiler.
------------------------------------------------------------------------
r57748 | nobu | 2017-03-01 16:53:15 +0900 (Wed, 01 Mar 2017) | 4 lines
common.mk: separate clean-ext
* common.mk (clean-ext): separate clean-up of makefiles and
timestamps, and clean-up of subdirectories under ext and gems.
------------------------------------------------------------------------
r57747 | nobu | 2017-03-01 14:44:37 +0900 (Wed, 01 Mar 2017) | 4 lines
zlib: clean zlib
* ext/zlib/extconf.rb: clean zlib libraries generated in the
place.
------------------------------------------------------------------------
r57746 | svn | 2017-03-01 10:16:27 +0900 (Wed, 01 Mar 2017) | 1 line
* 2017-03-01
------------------------------------------------------------------------
r57745 | normal | 2017-03-01 10:16:26 +0900 (Wed, 01 Mar 2017) | 9 lines
deduplicate strings sooner at load and compile
We can use rb_fstring_cstr in some places to prevent an
intermediate object from being created before deduplication
via rb_fstring.
* compile.c (iseq_compile_each): use rb_fstring_cstr
(rb_insns_name_array): ditto
* load.c (rb_load_internal0): ditto
------------------------------------------------------------------------
r57744 | stomar | 2017-02-28 19:41:03 +0900 (Tue, 28 Feb 2017) | 1 line
lib/mathn.rb: [DOC] nodoc internal Math.rsqrt
------------------------------------------------------------------------
r57743 | nobu | 2017-02-28 17:22:00 +0900 (Tue, 28 Feb 2017) | 3 lines
clean gems
* Makefile.in (clean-ext): clean gem directories too.
------------------------------------------------------------------------
r57742 | hsbt | 2017-02-28 16:45:54 +0900 (Tue, 28 Feb 2017) | 6 lines
Added initial gemspec for SDBM module.
[Feature #13261]
* doc/*.rdoc: Move SDBM entry to default gem section.
* ext/sdbm/sdbm.gemspec: first gemspec.
------------------------------------------------------------------------
r57741 | nobu | 2017-02-28 13:33:15 +0900 (Tue, 28 Feb 2017) | 5 lines
disable critical-error-handler
* win32/win32.c (rb_w32_sysinit): disable critical-error-handler
message box even on mswin, regardless of runtime DLL version.
[ruby-dev:49988] [Bug #13254]
------------------------------------------------------------------------
r57740 | nobu | 2017-02-28 11:58:12 +0900 (Tue, 28 Feb 2017) | 9 lines
Makefile.sub: ULL_TO_DOUBLE
* win32/Makefile.sub (config.h): define ULL_TO_DOUBLE for
conversion from unsigned __int64 to double, which is not
implemented in till Visual Studio.NET 2003, aka VC7.1.
* bignum.c (estimate_initial_sqrt): use ULL_TO_DOUBLE if defined.
* numeric.c (BDIGIT_DBL_TO_DOUBLE): ditto.
------------------------------------------------------------------------
r57739 | nobu | 2017-02-28 10:10:38 +0900 (Tue, 28 Feb 2017) | 4 lines
numeric.c: suppress warning
* numeric.c (DEFINE_INT_SQRT): suppress a type-limits warning
where int is always smaller than double.
------------------------------------------------------------------------
r57738 | nobu | 2017-02-28 09:00:33 +0900 (Tue, 28 Feb 2017) | 4 lines
Makefile.in: CHDIR to srcdir
* Makefile.in (update-mspec, update-rubyspec): use CHDIR, which may
use -P, to resolve symbolic links.
------------------------------------------------------------------------
r57737 | stomar | 2017-02-28 03:26:22 +0900 (Tue, 28 Feb 2017) | 9 lines
date_core.c: expand docs for Date shifting
* ext/date/date_core.c: [DOC] expand docs for Date shifting
* add examples for Date#>> and Date#<< that clarify some edge cases
* add examples for Date#next_year and Date#prev_year
* add cross references to Date#>> and Date#<<
[ruby-core:79584] [Bug #13225]
------------------------------------------------------------------------
r57736 | svn | 2017-02-28 03:07:12 +0900 (Tue, 28 Feb 2017) | 1 line
* 2017-02-28
------------------------------------------------------------------------
r57735 | stomar | 2017-02-28 03:07:11 +0900 (Tue, 28 Feb 2017) | 7 lines
Fix doc for Hash#dig and Struct#dig
* hash.c (rb_hash_dig): [DOC] correct argument name
in method description; fix formatting in examples.
* struct.c (rb_struct_dig): ditto.
[ruby-core:79221] [Bug #13148]
------------------------------------------------------------------------
r57734 | nobu | 2017-02-27 22:52:08 +0900 (Mon, 27 Feb 2017) | 4 lines
fix nd_ainfo->kw_rest_arg
[Fix GH-5129]
Author: fate0 <fate0@users.noreply.github.com>
------------------------------------------------------------------------
r57733 | nobu | 2017-02-27 22:52:07 +0900 (Mon, 27 Feb 2017) | 7 lines
kwrest arg name
* compile.c (iseq_set_arguments_keywords): make keyword rest
argument name nd_vid consistently, regardless of whether other
keyword arguments are present. [Fix GH-1529]
* parse.y (new_args_tail_gen): ditto.
------------------------------------------------------------------------
r57732 | shyouhei | 2017-02-27 22:41:38 +0900 (Mon, 27 Feb 2017) | 2 lines
add NEWS for Random.urandom [ci skip]
------------------------------------------------------------------------
r57731 | nobu | 2017-02-27 22:22:05 +0900 (Mon, 27 Feb 2017) | 1 line
common.mk (distclean): clean docs too
------------------------------------------------------------------------
r57730 | hsbt | 2017-02-27 18:20:39 +0900 (Mon, 27 Feb 2017) | 6 lines
Added initial gemspec for Etc module.
[Feature #13256]
* doc/*.rdoc: move Etc module to default gem section.
* ext/etc/etc.gemspec: first gemspec.
------------------------------------------------------------------------
r57729 | nobu | 2017-02-27 17:23:18 +0900 (Mon, 27 Feb 2017) | 3 lines
Makefile.in: by exts.mk
* Makefile.in (clean-ext): recurse by exts.mk in parallel first.
------------------------------------------------------------------------
r57728 | nobu | 2017-02-27 16:54:24 +0900 (Mon, 27 Feb 2017) | 4 lines
common.mk: clean-rubyspec
* common.mk (clean-rubyspec): remove OBJDIR for rubyspec C-API
tests.
------------------------------------------------------------------------
r57727 | nobu | 2017-02-27 16:37:55 +0900 (Mon, 27 Feb 2017) | 5 lines
mkmf.rb: get rid of error messages
* lib/mkmf.rb (create_makefile): add TARGET_SO to CLEANLIBS only
when the extension library will be build, to get rid of trying
to remove $(TARGET_SO_DIR).
------------------------------------------------------------------------
r57726 | nobu | 2017-02-27 15:39:28 +0900 (Mon, 27 Feb 2017) | 7 lines
clean more
* Makefile.in (clean-local): remove debug symbol directories on
Mac OS.
* common.mk (clean-ext): remove parent directories of timestamp
directory.
------------------------------------------------------------------------
r57725 | nobu | 2017-02-27 15:31:25 +0900 (Mon, 27 Feb 2017) | 4 lines
Makefile.in: clean exts.mk files
* Makefile.in (clean-ext): remove exts.mk files in subdirectories
underneath ext.
------------------------------------------------------------------------
r57724 | nobu | 2017-02-27 14:58:31 +0900 (Mon, 27 Feb 2017) | 1 line
ext/socket/extconf.rb: fix a typo
------------------------------------------------------------------------
r57723 | nobu | 2017-02-27 14:55:32 +0900 (Mon, 27 Feb 2017) | 4 lines
mkmf.rb: clean generated files
* lib/mkmf.rb (try_link0): remove generated files other than the
executable file.
------------------------------------------------------------------------
r57722 | nobu | 2017-02-27 14:14:30 +0900 (Mon, 27 Feb 2017) | 10 lines
Makefile.in: verify-static-library
* Makefile.in (verify-static-library): separate from LIBRUBY_A.
no check every times by default.
* lib/mkmf.rb (try_link): remove debugging symbol directory after
linking, instead of try_do.
* lib/mkmf.rb (try_link): bccwin32 support has been removed long
ago.
------------------------------------------------------------------------
r57721 | svn | 2017-02-27 09:53:27 +0900 (Mon, 27 Feb 2017) | 1 line
* 2017-02-27
------------------------------------------------------------------------
r57720 | nobu | 2017-02-27 09:53:26 +0900 (Mon, 27 Feb 2017) | 1 line
NEWS: Integer.sqrt [Feature #13219]
------------------------------------------------------------------------
r57719 | stomar | 2017-02-26 21:51:41 +0900 (Sun, 26 Feb 2017) | 4 lines
Add rdoc for Integer.sqrt
* numeric.c (rb_int_s_isqrt): [DOC] add rdoc for Integer.sqrt.
[ruby-core:79762] [Bug #13251]
------------------------------------------------------------------------
r57718 | nobu | 2017-02-26 18:33:17 +0900 (Sun, 26 Feb 2017) | 6 lines
node.c: fix NODE_OP_ASGN1
* node.c (dump_node): fix a typo, index and rvalue. fix
NODE_OP_ASGN1 operator to nd_mid. [Fix GH-1528]
Author: fate0 <fate0@users.noreply.github.com>
------------------------------------------------------------------------
r57717 | nobu | 2017-02-26 09:33:06 +0900 (Sun, 26 Feb 2017) | 5 lines
parse.y: indent at invalid identifier
* parse.y (parser_heredoc_identifier): set indent only when valid
identifier, not to dedent non-existent contents later.
[ruby-core:79772] [Bug #13253]
------------------------------------------------------------------------
r57716 | svn | 2017-02-26 07:28:23 +0900 (Sun, 26 Feb 2017) | 1 line
* 2017-02-26
------------------------------------------------------------------------
r57715 | suke | 2017-02-26 07:28:22 +0900 (Sun, 26 Feb 2017) | 3 lines
ext/win32ole/win32ole.c(ole_initialize): avoid to fail in Windows nano server.
This is experimental. Thanks to mwrock, Ethan Brown.
------------------------------------------------------------------------
r57714 | nobu | 2017-02-25 16:27:07 +0900 (Sat, 25 Feb 2017) | 1 line
bignum.c: use predefined IDs
------------------------------------------------------------------------
r57713 | nobu | 2017-02-25 14:44:39 +0900 (Sat, 25 Feb 2017) | 4 lines
bignum.c: improve estimate
* bignum.c (estimate_initial_sqrt, rb_big_isqrt): improve initial
estimate by sqrt(). [ruby-core:79754] [Feature #13250]
------------------------------------------------------------------------
r57712 | nobu | 2017-02-25 13:13:42 +0900 (Sat, 25 Feb 2017) | 1 line
bignum.c (bary_zero_p): constify
------------------------------------------------------------------------
r57711 | nobu | 2017-02-25 11:59:47 +0900 (Sat, 25 Feb 2017) | 3 lines
.gdbinit: rp_bignum
* .gdbinit (rp_bignum): print bignum from higher digits.
------------------------------------------------------------------------
r57710 | normal | 2017-02-25 11:31:03 +0900 (Sat, 25 Feb 2017) | 4 lines
NEWS: document String#-@ change
* test/ruby/test_string.rb (test_uplus_minus): test deduplication
[ruby-core:79747] [Feature #13077]
------------------------------------------------------------------------
r57709 | svn | 2017-02-25 08:31:08 +0900 (Sat, 25 Feb 2017) | 1 line
* 2017-02-25
------------------------------------------------------------------------
r57708 | nobu | 2017-02-25 08:31:07 +0900 (Sat, 25 Feb 2017) | 1 line
extract initial sqrt estimation [Feature #13219]
------------------------------------------------------------------------
r57707 | rhe | 2017-02-24 20:33:06 +0900 (Fri, 24 Feb 2017) | 4 lines
securerandom: fix up r57384
SecureRandom.gen_random_openssl still refers to Random.raw_seed, which
is renamed to Random.urandom by r57384. [Bug #9569]
------------------------------------------------------------------------
r57706 | nobu | 2017-02-24 18:39:17 +0900 (Fri, 24 Feb 2017) | 4 lines
Integer.sqrt argument check
* numeric.c (rb_int_s_isqrt): check if the argument is an integer.
[Feature #13219]
------------------------------------------------------------------------
r57705 | nobu | 2017-02-24 17:36:16 +0900 (Fri, 24 Feb 2017) | 1 line
Integer.sqrt [Feature #13219]
------------------------------------------------------------------------
r57704 | hsbt | 2017-02-24 16:55:50 +0900 (Fri, 24 Feb 2017) | 3 lines
Update maintainers and standard library docs for GDBM.
[Feature #13248][ruby-core:79742]
------------------------------------------------------------------------
r57703 | hsbt | 2017-02-24 16:39:37 +0900 (Fri, 24 Feb 2017) | 4 lines
Update rdoc-5.1.0
* Details of changes are following url.
https://github.com/rdoc/rdoc/blob/master/History.rdoc#510--2017-02-24
------------------------------------------------------------------------
r57702 | hsbt | 2017-02-24 15:50:43 +0900 (Fri, 24 Feb 2017) | 1 line
gem name should be the downcase.
------------------------------------------------------------------------
r57701 | hsbt | 2017-02-24 15:48:55 +0900 (Fri, 24 Feb 2017) | 1 line
Added initial gemspec for GDBM module.
------------------------------------------------------------------------
r57700 | hsbt | 2017-02-24 15:32:48 +0900 (Fri, 24 Feb 2017) | 3 lines
Update psych-2.2.3
* It's only typo fix for CRuby.
------------------------------------------------------------------------
r57699 | svn | 2017-02-24 10:01:24 +0900 (Fri, 24 Feb 2017) | 1 line
* 2017-02-24
------------------------------------------------------------------------
r57698 | normal | 2017-02-24 10:01:23 +0900 (Fri, 24 Feb 2017) | 59 lines
string.c (str_uminus): deduplicate strings
This exposes the rb_fstring internal function to return a
deduped and frozen string when a non-frozen string is given.
This is useful for writing all sorts of record processing key
values maybe stored, but certain keys and values are often
duplicated at a high frequency, so memory savings can
noticeable.
Use cases are many:
* email/NNTP header processing
There are some standard header keys everybody uses
(From/To/Cc/Date/Subject/Received/Message-ID/References/In-Reply-To),
as well as common ones specific to a certain lists:
(ruby-core has X-Redmine-* headers)
It is also useful to dedupe values, as most inboxes have
multiple messages from the same sender, or MUA.
* package management systems -
things like RubyGems stores identical strings for licenses,
dependency names, author names/emails, etc
* HTTP headers/trailers -
standard headers (Host/Accept/Accept-Encoding/User-Agent/...)
are common, but there are also uncommon ones.
Values may be deduped, as well, as it is likely a user
agent will make multiple/parallel requests to the same
server.
* version control systems -
this can be useful for deduplicating names of frequent
committers (like "nobu" :)
In linux.git and git.git, there are also common
trailers such as Signed-Off-By/Acked-by/Reviewed-by/Fixes/...
as well as less common ones.
* audio metadata -
There are commonly used tags (Artist/Album/Title/Tracknumber),
but Vorbis comments allows arbitrary key values to be stored.
Music collections contain songs by the same artist or mutiple
songs from the same album, so deduplicating values will be
helpful there, too.
* JSON, YAML, XML, HTML processing
Certain fields, tags and attributes are commonly used
across the same and multiple documents
There is no security concern in this being a DoS vector by
causing immortal strings. The fstring table is not a GC-root
and not walked during the mark phase. GC-able dynamic symbols
since Ruby 2.2 are handled in the same manner, and that
implementation also relies on the non-immortality of fstrings.
[Feature #13077] [ruby-core:79663]
------------------------------------------------------------------------
r57697 | nobu | 2017-02-23 16:14:29 +0900 (Thu, 23 Feb 2017) | 4 lines
appveyor.yaml: matrix
* appveyor.yaml: use build matrix for platforms and compilers.
resolve hard coded paths from these variables.
------------------------------------------------------------------------
r57696 | nobu | 2017-02-23 15:55:42 +0900 (Thu, 23 Feb 2017) | 4 lines
bignum.c: NAIVE_MUL_DIGITS
* bignum.c (NAIVE_MUL_DIGITS): share threshold for bary_sq_fast
between bary_mul and bigsq.
------------------------------------------------------------------------
r57695 | nobu | 2017-02-23 13:10:41 +0900 (Thu, 23 Feb 2017) | 4 lines
fix circular dependencies
* defs/gmake.mk (TEST_DEPENDS): remove targets expanded as
TEST_TARGETS, to get rid of circular dependencies.
------------------------------------------------------------------------
r57694 | nobu | 2017-02-23 11:40:17 +0900 (Thu, 23 Feb 2017) | 3 lines
Revert r57690 except for read_nonblock
https://github.com/ruby/ruby/pull/1527#issuecomment-281867551
------------------------------------------------------------------------
r57693 | nobu | 2017-02-23 11:11:16 +0900 (Thu, 23 Feb 2017) | 1 line
[DOC] mark up literals
------------------------------------------------------------------------
r57692 | nobu | 2017-02-23 11:00:28 +0900 (Thu, 23 Feb 2017) | 1 line
[DOC] keyword argument _exception_
------------------------------------------------------------------------
r57691 | nobu | 2017-02-23 10:54:13 +0900 (Thu, 23 Feb 2017) | 11 lines
socket.rb: [DOC] fix nonblock methods
* ext/socket/lib/socket.rb (BasicSocket#recv_nonblock): fix
exception class and symbol.
* ext/socket/lib/socket.rb (BasicSocket#recvmsg_nonblock): ditto.
* ext/socket/lib/socket.rb (Socket#recvfrom_nonblock): fix the
method name.
* ext/socket/lib/socket.rb (UDPSocket#recvfrom_nonblock): both.
------------------------------------------------------------------------
r57690 | nobu | 2017-02-23 10:15:27 +0900 (Thu, 23 Feb 2017) | 7 lines
[DOC] {read,write}_nonblock with exception: false
Update docs to reflect EOF behavior change of read_nonblock and
write_nonblock when using `exception: false`.
[Fix GH-1527]
Author: Russell Davis <russell-stripe@users.noreply.github.com>
------------------------------------------------------------------------
r57689 | nobu | 2017-02-23 08:49:40 +0900 (Thu, 23 Feb 2017) | 4 lines
rational.c: infinity in power
* rational.c (nurat_expt): return 0 due to overflow.
[ruby-core:79686] [Bug #13242]:
------------------------------------------------------------------------
r57688 | nobu | 2017-02-23 08:28:26 +0900 (Thu, 23 Feb 2017) | 4 lines
rational.c: infinity in power
* rational.c (nurat_expt): return Infinity due to overflow.
[ruby-core:79686] [Bug #13242]:
------------------------------------------------------------------------
r57687 | svn | 2017-02-23 00:46:43 +0900 (Thu, 23 Feb 2017) | 1 line
* 2017-02-23
------------------------------------------------------------------------
r57686 | kazu | 2017-02-23 00:46:43 +0900 (Thu, 23 Feb 2017) | 8 lines
rational.c: fix rdoc
* rational.c: [DOC] fix wrong indentations and comment out some lines
in code examples to make them valid Ruby code and syntax highlighted
on the rendered page.
[ci skip] [ruby-core:79607] [Bug #13233]
Author: Marcus Stollsteimer <sto.mar@web.de>
------------------------------------------------------------------------
r57685 | nobu | 2017-02-22 17:50:25 +0900 (Wed, 22 Feb 2017) | 5 lines
eval_error.c: backstrace in reverse order
* eval_error.c (rb_threadptr_error_print): print backtrace and
error message in reverse order if STDERR is unchanged and a tty.
[Feature #8661]
------------------------------------------------------------------------
r57684 | akr | 2017-02-22 16:31:25 +0900 (Wed, 22 Feb 2017) | 5 lines
refine warning message for binary regexp /.../n.
Reported by Herwin W. [ruby-core:78592] [Bug #13024]
------------------------------------------------------------------------
r57683 | nobu | 2017-02-22 16:16:13 +0900 (Wed, 22 Feb 2017) | 4 lines
Thread#fetch
* thread.c (rb_thread_fetch): add new method Thread#fetch.
[Feature #13009]
------------------------------------------------------------------------
r57682 | nobu | 2017-02-22 11:02:11 +0900 (Wed, 22 Feb 2017) | 8 lines
numeric.c: Numeric#clone and #dup
* numeric.c (num_clone, num_dup): no longer raises TypeError,
returns the receiver instead as well as Integer and Float.
[ruby-core:79636] [Bug #13237]
* object.c (rb_immutable_obj_clone): immutable object clone with
freeze optional keyword argument.
------------------------------------------------------------------------
r57681 | svn | 2017-02-22 10:55:11 +0900 (Wed, 22 Feb 2017) | 1 line
* 2017-02-22
------------------------------------------------------------------------
r57680 | nobu | 2017-02-22 10:55:10 +0900 (Wed, 22 Feb 2017) | 7 lines
object.c: refactor rb_obj_clone and rb_obj_clone2
* object.c (rb_obj_clone2): extract option for clone, and split by
whether the object is immutable or mutable.
* object.c (rb_obj_clone): no arguments, return immutable object
immediately.
------------------------------------------------------------------------
r57679 | nobu | 2017-02-21 23:51:22 +0900 (Tue, 21 Feb 2017) | 3 lines
object.c: message encoding
* object.c (rb_obj_clone2): preserve encoding in error messages.
------------------------------------------------------------------------
r57678 | nobu | 2017-02-21 23:42:02 +0900 (Tue, 21 Feb 2017) | 4 lines
backward.h: RClassDeprecated
* include/ruby/backward.h (RClassDeprecated): move from
ruby/ruby.h.
------------------------------------------------------------------------
r57677 | svn | 2017-02-21 17:18:16 +0900 (Tue, 21 Feb 2017) | 1 line
* properties.
------------------------------------------------------------------------
r57676 | ko1 | 2017-02-21 17:18:15 +0900 (Tue, 21 Feb 2017) | 38 lines
add performance counting mechanism for MRI debug/tuning purpose.
* How to enable this feature?
* define USE_DEBUG_COUNTER as 1.
* you can disable to output the result with
RUBY_DEBUG_COUNTER_DISABLE environment variable
even if USE_DEBUG_COUNTER == 1.
* How to add new counter?
* add COUNTER(<name>) line on debug_counter.h.
* include "debug_counter.h"
* insert RB_DEBUG_COUNTER_INC(<name>) line on your favorite place.
* counter output example:
[RUBY_DEBUG_COUNTER] mc_inline_hit 999
[RUBY_DEBUG_COUNTER] mc_inline_miss 3
[RUBY_DEBUG_COUNTER] mc_global_hit 23
[RUBY_DEBUG_COUNTER] mc_global_miss 273
[RUBY_DEBUG_COUNTER] mc_global_state_miss 3
[RUBY_DEBUG_COUNTER] mc_class_serial_miss 0
[RUBY_DEBUG_COUNTER] mc_cme_complement 0
[RUBY_DEBUG_COUNTER] mc_cme_complement_hit 0
[RUBY_DEBUG_COUNTER] mc_search_super 1384
[RUBY_DEBUG_COUNTER] ivar_get_hit 0
[RUBY_DEBUG_COUNTER] ivar_get_miss 0
[RUBY_DEBUG_COUNTER] ivar_set_hit 0
[RUBY_DEBUG_COUNTER] ivar_set_miss 0
[RUBY_DEBUG_COUNTER] ivar_get 431
[RUBY_DEBUG_COUNTER] ivar_set 465
* mc_... is related to method caching.
* ivar_... is related to instance variable accesses.
* compare with dtrace/system tap features, there are completely
no performacne penalties when it is disabled.
* This feature is supported only on __GNUC__ compilers.
------------------------------------------------------------------------
r57675 | nobu | 2017-02-21 15:16:50 +0900 (Tue, 21 Feb 2017) | 4 lines
backward.h: move deprecated declaration
* include/ruby/backward.h (rb_autoload): move declaration of
deprecated function.
------------------------------------------------------------------------
r57674 | nobu | 2017-02-21 15:16:49 +0900 (Tue, 21 Feb 2017) | 1 line
variable.c: remove deprecated internal feature
------------------------------------------------------------------------
r57673 | nobu | 2017-02-21 15:07:22 +0900 (Tue, 21 Feb 2017) | 1 line
error.c: remove deprecated internal features
------------------------------------------------------------------------
r57672 | nobu | 2017-02-21 15:07:21 +0900 (Tue, 21 Feb 2017) | 4 lines
complex.c: remove deprecated functions
* complex.c (rb_complex_set_real, rb_complex_set_imag): remove
functions deprecated at 2.2.
------------------------------------------------------------------------
r57671 | nobu | 2017-02-21 14:17:41 +0900 (Tue, 21 Feb 2017) | 4 lines
backward.h: 2.2 deprecated features
* include/ruby/backward.h (DECLARE_DEPRECATED_FEATURE): move
features deprecated at 2.2.
------------------------------------------------------------------------
r57670 | nobu | 2017-02-21 14:16:49 +0900 (Tue, 21 Feb 2017) | 4 lines
internal.h: removed function declaration
* internal.h (rb_compile_error_str): remove declaration of removed
internal function at r54189.
------------------------------------------------------------------------
r57669 | nobu | 2017-02-21 10:28:30 +0900 (Tue, 21 Feb 2017) | 4 lines
variable.c: noreturn in GCC
* variable.c (rb_generic_ivar_table): declare as noreturn only in
GCC, which does not err on different attributes.
------------------------------------------------------------------------
r57668 | svn | 2017-02-21 04:12:53 +0900 (Tue, 21 Feb 2017) | 1 line
* 2017-02-21
------------------------------------------------------------------------
r57667 | ko1 | 2017-02-21 04:12:52 +0900 (Tue, 21 Feb 2017) | 4 lines
remove harmful declaration.
* variable.c (gen_ivtbl_get): declaration conflict on VC++.
------------------------------------------------------------------------
r57666 | yui-knk | 2017-02-20 23:40:56 +0900 (Mon, 20 Feb 2017) | 4 lines
compile.c: Fix a typo
* compile.c (compile_branch_condition): NODE_LIT is
always true.
------------------------------------------------------------------------
r57665 | kazu | 2017-02-20 21:20:22 +0900 (Mon, 20 Feb 2017) | 12 lines
extension.rdoc: add document title
* doc/extension.rdoc, doc/extension.ja.rdoc: [DOC]
add title and adapt subheading levels.
* doc/extension.rdoc: [DOC] fix subheading level of section
about "Ruby Constants That Can Be Accessed From C".
* doc/extension.ja.rdoc: [DOC] add missing subheading.
[ruby-core:79590] [Bug #13229]
Author: Marcus Stollsteimer <sto.mar@web.de>
------------------------------------------------------------------------
r57664 | naruse | 2017-02-20 19:59:10 +0900 (Mon, 20 Feb 2017) | 3 lines
Supress warning: function might be candidate for attribute 'noreturn'
GCC7 shows it.
------------------------------------------------------------------------
r57663 | naruse | 2017-02-20 19:59:10 +0900 (Mon, 20 Feb 2017) | 1 line
Cast as VALUE to suppress type warnings
------------------------------------------------------------------------
r57662 | naruse | 2017-02-20 19:59:09 +0900 (Mon, 20 Feb 2017) | 1 line
They are enum yytokentype, need cast
------------------------------------------------------------------------
r57661 | nobu | 2017-02-20 19:10:08 +0900 (Mon, 20 Feb 2017) | 4 lines
assertions.rb: ignore exit in child
* test/lib/test/unit/assertions.rb (assert_separately): ignore
SystemExit. unsuccessful exit still fails an assertion later.
------------------------------------------------------------------------
r57660 | nobu | 2017-02-20 18:46:12 +0900 (Mon, 20 Feb 2017) | 5 lines
regparse.c: initialize return values
* regparse.c (parse_char_class): initialize return values before
depth limit check. returned values will be freed in callers
regardless the error. [ruby-core:79624] [Bug #13234]
------------------------------------------------------------------------
r57659 | nobu | 2017-02-20 14:35:57 +0900 (Mon, 20 Feb 2017) | 1 line
parse.y: new_qcall
------------------------------------------------------------------------
r57658 | nobu | 2017-02-20 14:35:56 +0900 (Mon, 20 Feb 2017) | 3 lines
parse.y: ID2VAL
* parse.y (ID2VAL): split from TOKEN2VAL.
------------------------------------------------------------------------
r57657 | svn | 2017-02-20 11:16:23 +0900 (Mon, 20 Feb 2017) | 1 line
* 2017-02-20
------------------------------------------------------------------------
r57656 | nobu | 2017-02-20 11:16:22 +0900 (Mon, 20 Feb 2017) | 4 lines
envutil.rb: diagnostic_reports for ruby-runner
* test/lib/envutil.rb (EnvUtil.diagnostic_reports): ruby-runner
execs "RUBY_INSTALL_NAME" file, so search by that name.
------------------------------------------------------------------------
r57655 | nobu | 2017-02-19 10:27:52 +0900 (Sun, 19 Feb 2017) | 5 lines
vm_insnhelper.c: super to module in refinement
* vm_insnhelper.c (vm_call_zsuper): method defined in module in
refinement is not callable as-is. dispatch again.
[ruby-core:79588] [Bug #13227]
------------------------------------------------------------------------
r57654 | svn | 2017-02-19 07:38:36 +0900 (Sun, 19 Feb 2017) | 1 line
* 2017-02-19
------------------------------------------------------------------------
r57653 | nobu | 2017-02-19 07:38:35 +0900 (Sun, 19 Feb 2017) | 5 lines
COPYING: expand tabs
* COPYING: expand tabs like as the rest lines. [Fix GH-1526]
Author: Philippe Ombredanne <pombredanne@gmail.com>
------------------------------------------------------------------------
r57652 | kazu | 2017-02-18 14:52:16 +0900 (Sat, 18 Feb 2017) | 1 line
{lib,test}/cgi: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57651 | nobu | 2017-02-18 13:23:20 +0900 (Sat, 18 Feb 2017) | 4 lines
array.c: check if numeric
* array.c (finish_exact_sum): add 0 and the initial value to check
if the latter is numeric. [ruby-core:79572] [Bug #13222]
------------------------------------------------------------------------
r57650 | svn | 2017-02-18 12:42:36 +0900 (Sat, 18 Feb 2017) | 1 line
* 2017-02-18
------------------------------------------------------------------------
r57649 | nobu | 2017-02-18 12:42:35 +0900 (Sat, 18 Feb 2017) | 4 lines
array.c: finish_exact_sum
* array.c (finish_exact_sum): extract duplicate code from
rb_ary_sum.
------------------------------------------------------------------------
r57648 | nobu | 2017-02-17 22:31:43 +0900 (Fri, 17 Feb 2017) | 5 lines
test_fileutils.rb: no broken symlinks on Cygwin
* test/fileutils/test_fileutils.rb (no_broken_symlink): exclude
test using broken symlinks on Cygwin, which are not allowed
because of the directory flag of Windows native symlink.
------------------------------------------------------------------------
r57647 | nobu | 2017-02-17 22:31:42 +0900 (Fri, 17 Feb 2017) | 5 lines
test_fileutils.rb: fix relative symlink path
* test/fileutils/test_fileutils.rb (test_rm_symlink): fix relative
symlink path, the target should be relative to the directory in
which the symlink gets created.
------------------------------------------------------------------------
r57646 | nobu | 2017-02-17 19:22:10 +0900 (Fri, 17 Feb 2017) | 4 lines
test_fileutils.rb: workaround for Cygwin
* test/fileutils/test_fileutils.rb (root_in_posix): seems Cygwin
has some different conditions for privilege.
------------------------------------------------------------------------
r57645 | nobu | 2017-02-17 19:22:09 +0900 (Fri, 17 Feb 2017) | 5 lines
test_fileutils.rb: cache distinct UIDs
* test/fileutils/test_fileutils.rb: cache distinct UIDs as
constants at initialization. assume no UIDs will be
added/removed during tests.
------------------------------------------------------------------------
r57644 | svn | 2017-02-17 14:45:45 +0900 (Fri, 17 Feb 2017) | 1 line
* 2017-02-17
------------------------------------------------------------------------
r57643 | nobu | 2017-02-17 14:45:44 +0900 (Fri, 17 Feb 2017) | 6 lines
DEPRECATED_INTERNAL_FEATURE
* error.c (ruby_deprecated_internal_feature): renamed, to
explicitly represent deprecation.
* internal.h (DEPRECATED_INTERNAL_FEATURE): ditto.
------------------------------------------------------------------------
r57642 | nobu | 2017-02-16 23:48:12 +0900 (Thu, 16 Feb 2017) | 3 lines
variable.c: fatal rb_generic_ivar_table
* variable.c (rb_generic_ivar_table): raise fatal error.
------------------------------------------------------------------------
r57641 | ko1 | 2017-02-16 18:15:26 +0900 (Thu, 16 Feb 2017) | 2 lines
use rb_iseq_check() for USE_LAZY_LOAD, too.
------------------------------------------------------------------------
r57640 | nobu | 2017-02-16 17:42:22 +0900 (Thu, 16 Feb 2017) | 6 lines
fileutils.rb: do not make root
* lib/fileutils.rb (FileUtils#mkdir_p): no need to make root
directory which should be exist and cannot be made with mkdir
recent Cygwin can make a directory contains a colon.
[Bug #13214]
------------------------------------------------------------------------
r57639 | ko1 | 2017-02-16 17:24:37 +0900 (Thu, 16 Feb 2017) | 2 lines
use rb_iseq_check() for USE_LAZY_LOAD.
------------------------------------------------------------------------
r57638 | svn | 2017-02-16 11:47:22 +0900 (Thu, 16 Feb 2017) | 1 line
* 2017-02-16
------------------------------------------------------------------------
r57637 | nobu | 2017-02-16 11:47:21 +0900 (Thu, 16 Feb 2017) | 6 lines
win32.c: memcpy instead of strlcpy
* win32/win32.c (cmdglob): memcpy the exact size instead of
strlcpy with +1.
* win32/win32.c (w32_cmdvector): ditto, with NUL-terminating.
------------------------------------------------------------------------
r57636 | nobu | 2017-02-15 20:17:53 +0900 (Wed, 15 Feb 2017) | 1 line
Update gems/bundled_gems
------------------------------------------------------------------------
r57635 | nobu | 2017-02-15 19:51:58 +0900 (Wed, 15 Feb 2017) | 4 lines
gmake.mk: mflags without -jN
* defs/gmake.mk (mflags): override the definition in common.mk
without -jN option.
------------------------------------------------------------------------
r57634 | nobu | 2017-02-15 17:38:01 +0900 (Wed, 15 Feb 2017) | 7 lines
marshal.c: revert r57631 partially
* marshal.c (rb_marshal_dump_limited): do not free dump_arg, which
may be dereferenced in check_dump_arg due to continuation, and
get rid of dangling pointers.
* marshal.c (rb_marshal_load_with_proc): ditto for load_arg.
------------------------------------------------------------------------
r57633 | nobu | 2017-02-15 14:53:01 +0900 (Wed, 15 Feb 2017) | 3 lines
thread.c: fix for VC
* thread.c (rb_fd_no_init): make void same as rb_fd_init_copy.
------------------------------------------------------------------------
r57632 | svn | 2017-02-15 09:42:52 +0900 (Wed, 15 Feb 2017) | 1 line
* 2017-02-15
------------------------------------------------------------------------
r57631 | normal | 2017-02-15 09:42:51 +0900 (Wed, 15 Feb 2017) | 11 lines
marshal.c: use hidden objects to allow recycling
Hidden objects (klass == 0) are not visible to Ruby code invoked
from other threads or signal handlers, so they can never be
accessed from other contexts. This makes it safe to call
rb_gc_force_recycle on the object slot after releasing malloc
memory.
* marshal.c (rb_marshal_dump_limited): hide dump_arg and recycle when done
(rb_marshal_load_with_proc): hide load_arg and recycle when done
[ruby-core:79518]
------------------------------------------------------------------------
r57630 | kou | 2017-02-14 22:29:13 +0900 (Tue, 14 Feb 2017) | 2 lines
Fix a typo
------------------------------------------------------------------------
r57629 | nobu | 2017-02-14 21:34:11 +0900 (Tue, 14 Feb 2017) | 4 lines
resolv9x.rb: fix typo
* ext/win32/lib/win32/resolv9x.rb (WsControl): fix missing close
parenthesis at r22724.
------------------------------------------------------------------------
r57628 | nobu | 2017-02-14 21:29:56 +0900 (Tue, 14 Feb 2017) | 4 lines
string.c: assertion
* string.c (str_shared_replace): use RUBY_ASSERT for
pre-condition.
------------------------------------------------------------------------
r57627 | hsbt | 2017-02-14 20:12:52 +0900 (Tue, 14 Feb 2017) | 3 lines
Added initial gemspec for Scanf module.
[Feature #13213]
------------------------------------------------------------------------
r57625 | nobu | 2017-02-14 16:52:30 +0900 (Tue, 14 Feb 2017) | 6 lines
initialize variables
* string.c (rb_str_enumerate_lines): initialize conditionally
used variable.
* thread.c (rb_fd_no_init): ditto.
------------------------------------------------------------------------
r57624 | nobu | 2017-02-14 00:28:25 +0900 (Tue, 14 Feb 2017) | 4 lines
gmake.mk: test-ruby
* defs/gmake.mk (ORDERED_TEST_TARGETS): add test-ruby target, test
for ruby core without bundled libraries.
------------------------------------------------------------------------
r57623 | svn | 2017-02-14 00:19:13 +0900 (Tue, 14 Feb 2017) | 1 line
* 2017-02-14
------------------------------------------------------------------------
r57622 | nobu | 2017-02-14 00:19:12 +0900 (Tue, 14 Feb 2017) | 4 lines
thread.c: use ASSUME only on gcc 5 or later
* thread.c (rb_fd_no_init): on gcc 4, ASSUME macro affects
something too much.
------------------------------------------------------------------------
r57621 | nobu | 2017-02-13 22:08:44 +0900 (Mon, 13 Feb 2017) | 4 lines
ruby.h: remove comment
* include/ruby/ruby.h (RB_GC_GUARD): remove comment unsupported by
Solaris AS.
------------------------------------------------------------------------
r57620 | kazu | 2017-02-13 21:16:26 +0900 (Mon, 13 Feb 2017) | 1 line
lib/find.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57619 | nobu | 2017-02-13 17:14:19 +0900 (Mon, 13 Feb 2017) | 4 lines
ruby.h: RB_GC_GUARD stronger than gcc7
* include/ruby/ruby.h (RB_GC_GUARD): prevent guarded pointer from
optimization by using as an input to inline asm.
------------------------------------------------------------------------
r57618 | nobu | 2017-02-13 14:44:15 +0900 (Mon, 13 Feb 2017) | 6 lines
suppress warnings
* string.c (rb_str_enumerate_lines): hint to suppress a
maybe-uninitialized warning by gcc.
* thread.c (rb_fd_no_init): ditto.
------------------------------------------------------------------------
r57617 | nobu | 2017-02-13 14:23:36 +0900 (Mon, 13 Feb 2017) | 4 lines
compile.c: suppress a warning
* compile.c (iseq_build_kw): suppress an alloc-size-larger-than
warning by gcc 7.
------------------------------------------------------------------------
r57616 | nobu | 2017-02-13 14:11:14 +0900 (Mon, 13 Feb 2017) | 3 lines
gmake.mk: tests step
* defs/gmake.mk (TEST_TARGETS): run tests step by step.
------------------------------------------------------------------------
r57615 | normal | 2017-02-13 11:04:26 +0900 (Mon, 13 Feb 2017) | 6 lines
array.c (ary_recycle_hash): use rb_gc_force_recycle
Hidden objects (RBASIC_CLASS(hash) == 0) can never become
visible to other threads or signal handlers via
ObjectSpace.each_object or similar means. Thus it is safe to
forcibly recycle the object slot for future use, here.
------------------------------------------------------------------------
r57614 | normal | 2017-02-13 10:05:23 +0900 (Mon, 13 Feb 2017) | 6 lines
cont.c: avoid needless branch for dmark callbacks
gc.c (gc_mark_children, case T_DATA) does not use
the dmark function pointer if DATA_PTR is NULL
* cont.c (cont_mark, fiber_mark): remove branch, ptr is never NULL
------------------------------------------------------------------------
r57613 | svn | 2017-02-13 08:37:29 +0900 (Mon, 13 Feb 2017) | 1 line
* 2017-02-13
------------------------------------------------------------------------
r57612 | nobu | 2017-02-13 08:37:28 +0900 (Mon, 13 Feb 2017) | 4 lines
gmake.mk: -n for tests
* defs/gmake.mk (gnumake_recursive): do not invoke tests if -n
option is given.
------------------------------------------------------------------------
r57611 | nobu | 2017-02-12 17:43:43 +0900 (Sun, 12 Feb 2017) | 1 line
parse.y: ripper_intern is no longer used
------------------------------------------------------------------------
r57610 | nobu | 2017-02-12 17:33:33 +0900 (Sun, 12 Feb 2017) | 6 lines
parse.y: logop
* defs/id.def (predefined): add keywords `and` and `or`.
* parse.y (log_op): unify parser and ripper, and use tokens
instead of node types and symbols.
------------------------------------------------------------------------
r57609 | kazu | 2017-02-12 13:31:25 +0900 (Sun, 12 Feb 2017) | 1 line
ext/objspace: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57608 | nobu | 2017-02-12 13:23:16 +0900 (Sun, 12 Feb 2017) | 4 lines
parse.y: call_bin_op
* parse.y (call_bin_op): unify parser and ripper, and use IDs
instead of tokens.
------------------------------------------------------------------------
r57607 | nobu | 2017-02-12 13:20:35 +0900 (Sun, 12 Feb 2017) | 6 lines
parse.y: call_uni_op
* defs/id.def (predefined): add keyword `not`.
* parse.y (call_uni_op): unify parser and ripper, and use IDs
instead of tokens.
------------------------------------------------------------------------
r57606 | nobu | 2017-02-12 12:15:34 +0900 (Sun, 12 Feb 2017) | 6 lines
ripper: fix %-op on_operator_ambiguous
* parse.y (ambiguous_operator): separate token and string
representation of operators, to fix %-operator argument. in a
warning message, needs to be escaped by '%' but the symbol
should not be.
------------------------------------------------------------------------
r57605 | nobu | 2017-02-12 11:48:28 +0900 (Sun, 12 Feb 2017) | 4 lines
symbol/init.c: ID value
* ext/-test-/symbol/init.c (sym_pinneddown_p): return ID value or
nil for debugging.
------------------------------------------------------------------------
r57604 | svn | 2017-02-12 00:08:34 +0900 (Sun, 12 Feb 2017) | 1 line
* 2017-02-12
------------------------------------------------------------------------
r57603 | naruse | 2017-02-12 00:08:33 +0900 (Sun, 12 Feb 2017) | 4 lines
Merge Onigmo 6.1.1
* Support absent operator https://github.com/k-takata/Onigmo/issues/82
* https://github.com/k-takata/Onigmo/blob/Onigmo-6.1.1/HISTORY
------------------------------------------------------------------------
r57602 | nobu | 2017-02-11 20:37:14 +0900 (Sat, 11 Feb 2017) | 1 line
appveyor.yml: extract zlib_version
------------------------------------------------------------------------
r57601 | nobu | 2017-02-11 19:33:05 +0900 (Sat, 11 Feb 2017) | 5 lines
fiddle/depend: build-libffi
* ext/fiddle/depend (build-libffi): get rid of making $(LIBFFI_A)
a sole target, which may be empty when installed libffi is
found.
------------------------------------------------------------------------
r57600 | kazu | 2017-02-11 12:12:59 +0900 (Sat, 11 Feb 2017) | 4 lines
appveyor.yml: Update zlib
* Update zlib to 1.2.11
* Use https instead of http
------------------------------------------------------------------------
r57599 | svn | 2017-02-11 11:14:07 +0900 (Sat, 11 Feb 2017) | 1 line
* 2017-02-11
------------------------------------------------------------------------
r57598 | nobu | 2017-02-11 11:14:06 +0900 (Sat, 11 Feb 2017) | 6 lines
parse.y: TOKEN2ID
* parse.y (TOKEN2ID): add macro which maps static tokens to IDs.
* template/id.h.tmpl (TOKEN2*ID, DEFINE_*ID_FROM_TOKEN): separate
into macros, token to ID mapping and enum definitions.
------------------------------------------------------------------------
r57597 | mrkn | 2017-02-10 22:23:58 +0900 (Fri, 10 Feb 2017) | 5 lines
bigdecimal: version 1.3.1
Import bigdecimal version 1.3.1. The full commit log is here:
https://github.com/ruby/bigdecimal/compare/v1.3.0...v1.3.1
------------------------------------------------------------------------
r57596 | hsbt | 2017-02-10 18:41:15 +0900 (Fri, 10 Feb 2017) | 7 lines
Added initial gemspec for Fcntl module.
[Feature #13206]
* ext/fcntl/fcntl.gemspec: initial commit.
* doc/maintainers.rdoc, doc/standard_library.rdoc: Move Fcntl module
to Default gems section.
------------------------------------------------------------------------
r57595 | ko1 | 2017-02-10 17:15:39 +0900 (Fri, 10 Feb 2017) | 2 lines
check thread deadness correctly.
------------------------------------------------------------------------
r57594 | nobu | 2017-02-10 15:12:22 +0900 (Fri, 10 Feb 2017) | 9 lines
MFLAGS for nmake
* common.mk (mflags): pass make flags to sub-makes, for nmake
which cannot pass them by the environment variable.
* defs/gmake.mk (mflags): filter out -j option for sub-makes.
* template/exts.mk.tmpl (MFLAGS): extract MFLAGS from sub extmk
files for nmake.
------------------------------------------------------------------------
r57593 | nobu | 2017-02-10 13:24:08 +0900 (Fri, 10 Feb 2017) | 5 lines
fiddle: fix $(SUBMAKE_PRE)
* ext/fiddle/extconf.rb: fix $(SUBMAKE_PRE) to chdir to
$(LIBFFI_DIR) instead of $(@D), since $(LIBFFI_A) is not
underneath libffi but under .libs.
------------------------------------------------------------------------
r57592 | nobu | 2017-02-10 12:59:55 +0900 (Fri, 10 Feb 2017) | 4 lines
openssl: fix broken openssl check
* ext/openssl/deprecation.rb: check for broken OpenSSL only on mac
OS. [ruby-core:79475] [Bug #13200]
------------------------------------------------------------------------
r57591 | nobu | 2017-02-10 12:58:02 +0900 (Fri, 10 Feb 2017) | 4 lines
openssl: fix broken openssl check
* ext/openssl/extconf.rb: check for broken OpenSSL only on mac OS.
[ruby-core:79475] [Bug #13200]
------------------------------------------------------------------------
r57590 | nobu | 2017-02-10 12:58:01 +0900 (Fri, 10 Feb 2017) | 4 lines
extmk.rb: split notes
* ext/extmk.rb: split notes and echo per lines, for multiple lines
messages. [ruby-core:79475] [Bug #13200]
------------------------------------------------------------------------
r57589 | nobu | 2017-02-10 10:13:22 +0900 (Fri, 10 Feb 2017) | 5 lines
parallel.rb: fix intervention
* test/lib/test/unit/parallel.rb (_report): send a response and a
newline atomically, to get rid of intervention with "p" which
runs in a separate thread.
------------------------------------------------------------------------
r57588 | kazu | 2017-02-10 09:58:47 +0900 (Fri, 10 Feb 2017) | 1 line
Use `unpack1` instead of `unpack` and `first`
------------------------------------------------------------------------
r57587 | kazu | 2017-02-10 09:58:45 +0900 (Fri, 10 Feb 2017) | 1 line
lib/base64.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57586 | svn | 2017-02-10 01:12:01 +0900 (Fri, 10 Feb 2017) | 1 line
* 2017-02-10
------------------------------------------------------------------------
r57585 | kazu | 2017-02-10 01:12:00 +0900 (Fri, 10 Feb 2017) | 1 line
lib/abbrev.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57584 | akr | 2017-02-09 23:28:27 +0900 (Thu, 09 Feb 2017) | 7 lines
[DOC] Update an obsolete example for slice_before.
The argument for Enumerable#slice_before is is removed at Ruby 2.3.
Reported by Shyouhei Urabe. [Bug #13202]
------------------------------------------------------------------------
r57583 | nobu | 2017-02-09 21:08:56 +0900 (Thu, 09 Feb 2017) | 4 lines
fiddle: jobserver for libffi
* ext/fiddle/depend (libffi): use $(MAKE) explicitly for recursive
make, so that jobserver works.
------------------------------------------------------------------------
r57582 | hsbt | 2017-02-09 20:46:32 +0900 (Thu, 09 Feb 2017) | 5 lines
Update maintainers list.
* Added Default gems section and move some libraries to it section.
* Added Bundled gems section and added upstream repositories of bundled gems.
* Added upstream repositories to some default gems.
------------------------------------------------------------------------
r57581 | hsbt | 2017-02-09 20:26:21 +0900 (Thu, 09 Feb 2017) | 5 lines
Update latest infomation of standard libraries.
* Added Bundled gems section.
* Added IO::console to Default gems.
* Move XMLRPC to Bundled gems section.
------------------------------------------------------------------------
r57580 | hsbt | 2017-02-09 19:49:08 +0900 (Thu, 09 Feb 2017) | 1 line
Separated default gems section.
------------------------------------------------------------------------
r57579 | svn | 2017-02-09 16:53:53 +0900 (Thu, 09 Feb 2017) | 1 line
* 2017-02-09
------------------------------------------------------------------------
r57578 | nobu | 2017-02-09 16:53:52 +0900 (Thu, 09 Feb 2017) | 5 lines
parse.y: fix idCOLON2
* defs/id.def: remove idDSTAR and idCOLON3.
* parse.y (tCOLON2): make same as id.h.
------------------------------------------------------------------------
r57577 | hsbt | 2017-02-08 19:05:13 +0900 (Wed, 08 Feb 2017) | 3 lines
Added initial gemspec for DBM module.
[Feature #13201]
------------------------------------------------------------------------
r57576 | nobu | 2017-02-08 16:06:37 +0900 (Wed, 08 Feb 2017) | 4 lines
parse.y: named caputre into match_op_gen
* parse.y (match_op_gen): move making named capture assignment
nodes. remove repeated conditions.
------------------------------------------------------------------------
r57575 | ko1 | 2017-02-08 12:59:53 +0900 (Wed, 08 Feb 2017) | 2 lines
remove warning about enum and int comparison.
------------------------------------------------------------------------
r57574 | svn | 2017-02-08 10:18:56 +0900 (Wed, 08 Feb 2017) | 1 line
* 2017-02-08
------------------------------------------------------------------------
r57573 | nobu | 2017-02-08 10:18:56 +0900 (Wed, 08 Feb 2017) | 4 lines
node.c: compress logop sequence
* node.c (dump_node): compress sequence of same logical binary
operators, NODE_AND/NODE_OR.
------------------------------------------------------------------------
r57564 | kazu | 2017-02-07 21:49:57 +0900 (Tue, 07 Feb 2017) | 1 line
{ext,test}/zlib: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57563 | nobu | 2017-02-07 17:16:50 +0900 (Tue, 07 Feb 2017) | 5 lines
test/unit.rb: old GNU make
* test/lib/test/unit.rb (Test::Unit::Parallel#non_options):
support old GNU make, which uses --jobserver-fds option instead
of --jobserver-auth.
------------------------------------------------------------------------
r57562 | nobu | 2017-02-07 17:09:23 +0900 (Tue, 07 Feb 2017) | 4 lines
test_parallel.rb: match the count
* test/testunit/test_parallel.rb (test_should_run_all_without_any_leaks):
match the final test count instead of progressing indicators.
------------------------------------------------------------------------
r57561 | hsbt | 2017-02-07 16:14:22 +0900 (Tue, 07 Feb 2017) | 1 line
Fix a required ruby version on gemspec of gemified libraries.
------------------------------------------------------------------------
r57560 | hsbt | 2017-02-07 16:14:21 +0900 (Tue, 07 Feb 2017) | 1 line
Added initial gemspec for StringScanner class.
------------------------------------------------------------------------
r57559 | nobu | 2017-02-07 14:19:29 +0900 (Tue, 07 Feb 2017) | 4 lines
test/unit.rb: most-asserted
* test/lib/test/unit.rb (Statistics#record): record most asserted
tests.
------------------------------------------------------------------------
r57558 | ko1 | 2017-02-07 13:24:44 +0900 (Tue, 07 Feb 2017) | 2 lines
TRUE is not defined here...
------------------------------------------------------------------------
r57557 | ko1 | 2017-02-07 13:14:25 +0900 (Tue, 07 Feb 2017) | 6 lines
remove compare with enum value.
* vm_core.h (vm_block_handler_verify): some compilers warn about comparison
with enum value and 0. Real assertion is in vm_block_handler_type() so
we only need to call vm_block_handler_type() and the value should be TRUE.
------------------------------------------------------------------------
r57556 | nobu | 2017-02-07 12:58:07 +0900 (Tue, 07 Feb 2017) | 4 lines
test/unit.rb: defined
* test/lib/test/unit.rb (Test::Unit::Statistics#record): check if
@longest is set first.
------------------------------------------------------------------------
r57555 | nobu | 2017-02-07 12:55:47 +0900 (Tue, 07 Feb 2017) | 7 lines
test/unit: record in parallel
* test/lib/test/unit.rb (Test::Unit::Parallel#deal): deal with
record.
* test/lib/test/unit/parallel.rb (Test::Unit::Worker#record):
report test records to the master.
------------------------------------------------------------------------
r57554 | nobu | 2017-02-07 11:49:04 +0900 (Tue, 07 Feb 2017) | 4 lines
test/unit.rb: statistics
* test/lib/test/unit.rb (Test::Unit::Statistics): show statistics.
only --longest option is implemented right now.
------------------------------------------------------------------------
r57553 | svn | 2017-02-07 11:49:03 +0900 (Tue, 07 Feb 2017) | 1 line
* 2017-02-07
------------------------------------------------------------------------
r57552 | nobu | 2017-02-07 11:49:02 +0900 (Tue, 07 Feb 2017) | 3 lines
rbinstall.rb: umask hack
* tool/rbinstall.rb (Gem::Installer#install): moved umask hack.
------------------------------------------------------------------------
r57551 | kazu | 2017-02-06 22:23:39 +0900 (Mon, 06 Feb 2017) | 1 line
{ext,test}/strscan: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57550 | hsbt | 2017-02-06 18:51:17 +0900 (Mon, 06 Feb 2017) | 3 lines
Added initial gemspec for FileUtils module.
[Feature #13197]
------------------------------------------------------------------------
r57549 | nobu | 2017-02-06 16:34:13 +0900 (Mon, 06 Feb 2017) | 13 lines
date_core.c: [DOC] revise docs [ci skip]
* fix malformed rdoc for Date#today, Date._strptime,
and DateTime._strptime
* add code examples for Date#<< and Date#>> to demonstrate
that different dates can result in the same return value
* use Date::ITALY in call-seq instead of only ITALY
* fix some copy/paste mistakes where Date should be DateTime
* fix various errors and grammar
* fix cross references and formatting
[ruby-core:79433] [Bug #13193]
Author: Marcus Stollsteimer <sto.mar@web.de>
------------------------------------------------------------------------
r57548 | nobu | 2017-02-06 11:35:48 +0900 (Mon, 06 Feb 2017) | 5 lines
rdoc: suppress warnings in eval
* lib/rdoc/markup/to_html.rb (RDoc::Markup::ToHtml): the argument
text may contain warnings, which are useless to check if
parseable. merge rdoc/rdoc#440.
------------------------------------------------------------------------
r57547 | nobu | 2017-02-06 11:35:47 +0900 (Mon, 06 Feb 2017) | 1 line
common.mk: suppress debugging messages
------------------------------------------------------------------------
r57546 | nobu | 2017-02-06 08:52:49 +0900 (Mon, 06 Feb 2017) | 4 lines
rbinstall.rb: Gem::Installer lacks dir_mode option
* tool/rbinstall.rb (bundle-gems): Gem::Installer does not support
directory permission option, set umask to owner writable.
------------------------------------------------------------------------
r57545 | nobu | 2017-02-06 08:52:48 +0900 (Mon, 06 Feb 2017) | 1 line
rbinstall.rb: rename tags
------------------------------------------------------------------------
r57544 | nobu | 2017-02-06 01:23:12 +0900 (Mon, 06 Feb 2017) | 1 line
tool/rbinstall.rb: add new tags
------------------------------------------------------------------------
r57543 | nobu | 2017-02-06 01:23:11 +0900 (Mon, 06 Feb 2017) | 6 lines
rbinstall.rb: default umask
* tool/rbinstall.rb: revert r49841 and default umask to just
prohibit all from writing. symlink(2) has no argument to set
permissions but is affected by umask.
[ruby-dev:49975] [Bug #13194]
------------------------------------------------------------------------
r57542 | svn | 2017-02-06 01:07:31 +0900 (Mon, 06 Feb 2017) | 1 line
* 2017-02-06
------------------------------------------------------------------------
r57541 | naruse | 2017-02-06 01:07:30 +0900 (Mon, 06 Feb 2017) | 1 line
@job_tokens is defined iff @jobserver is true
------------------------------------------------------------------------
r57540 | yui-knk | 2017-02-05 23:16:52 +0900 (Sun, 05 Feb 2017) | 3 lines
node.c: Fix a typo
* node.c (dump_node): Fix a typo of || operator example
------------------------------------------------------------------------
r57539 | nobu | 2017-02-05 20:15:49 +0900 (Sun, 05 Feb 2017) | 5 lines
rational.c: fix rdoc [ci skip]
* rational.c (rb_rational_plus): [DOC] fix an example.
A patch by Trygve Flathen <at.ruby-lang AT flathen.net> in
[ruby-core:71755]. [Bug #11752]
------------------------------------------------------------------------
r57538 | kazu | 2017-02-05 16:54:32 +0900 (Sun, 05 Feb 2017) | 1 line
{ext,test}/ripper: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57537 | nobu | 2017-02-05 10:26:27 +0900 (Sun, 05 Feb 2017) | 4 lines
pty/shl.rb: update [ci skip]
* sample/pty/shl.rb: leap exited child process.
[ruby-dev:49974] [Bug #13191]
------------------------------------------------------------------------
r57536 | normal | 2017-02-05 09:22:03 +0900 (Sun, 05 Feb 2017) | 9 lines
doc: Add example for Symbol#to_s
* string.c: add example for Symbol#to_s.
The docs for Symbol#to_s only include an example for
Symbol#id2name, but not for #to_s which is an alias;
the docs should include examples for both methods.
From: Marcus Stollsteimer <sto.mar@web.de>
------------------------------------------------------------------------
r57535 | svn | 2017-02-05 03:14:43 +0900 (Sun, 05 Feb 2017) | 1 line
* 2017-02-05
------------------------------------------------------------------------
r57534 | naruse | 2017-02-05 03:14:42 +0900 (Sun, 05 Feb 2017) | 1 line
fix description for current implementation
------------------------------------------------------------------------
r57533 | nobu | 2017-02-04 19:48:15 +0900 (Sat, 04 Feb 2017) | 4 lines
pty/shl.rb: update [ci skip]
* sample/pty/shl.rb: do not manage array length separately.
[ruby-dev:49974] [Bug #13191]
------------------------------------------------------------------------
r57532 | nobu | 2017-02-04 19:48:14 +0900 (Sat, 04 Feb 2017) | 4 lines
pty/shl.rb: update [ci skip]
* sample/pty/shl.rb: use io/console instead of stty.
[ruby-dev:49974] [Bug #13191]
------------------------------------------------------------------------
r57531 | nobu | 2017-02-04 19:48:13 +0900 (Sat, 04 Feb 2017) | 5 lines
pty/shl.rb: update [ci skip]
* sample/pty/shl.rb: stop writer loop when the child exited.
PTY::ChildExited no longer raises asynchronously since r20298.
[ruby-dev:49974] [Bug #13191]
------------------------------------------------------------------------
r57530 | kazu | 2017-02-04 15:49:07 +0900 (Sat, 04 Feb 2017) | 5 lines
sample/pty/shl.rb: update sample
* Specify frozen_string_literal: true.
* Fix TypeError of raise.
* Use a character literal instead of Integer.
------------------------------------------------------------------------
r57529 | kazu | 2017-02-04 15:49:06 +0900 (Sat, 04 Feb 2017) | 1 line
sample/pty/script.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57528 | kazu | 2017-02-04 15:49:04 +0900 (Sat, 04 Feb 2017) | 5 lines
sample/pty/expect_sample.rb: Update sample
* Fix regexp capture scope bug.
* Specify frozen_string_literal: true.
* Use passive mode.
------------------------------------------------------------------------
r57527 | kazu | 2017-02-04 15:49:00 +0900 (Sat, 04 Feb 2017) | 1 line
ext/pty: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57526 | nobu | 2017-02-04 14:23:48 +0900 (Sat, 04 Feb 2017) | 5 lines
test/unit.rb: jobserver for workers
* test/lib/test/unit.rb (Test::Unit::Parallel#process_args):
initialize @run_options to pass jobserver auth pipes to worker
processes.
------------------------------------------------------------------------
r57525 | nobu | 2017-02-04 12:28:17 +0900 (Sat, 04 Feb 2017) | 4 lines
test/unit.rb: job tokens
* test/lib/test/unit.rb (_run_parallel): deal with job tokens for
each workers.
------------------------------------------------------------------------
r57524 | nobu | 2017-02-04 11:17:35 +0900 (Sat, 04 Feb 2017) | 4 lines
test/unit.rb: initialize instance variable
* test/lib/test/unit.rb (Test::Unit::Parallel#non_options):
initialize @jobserver instance variable to suppress warnings.
------------------------------------------------------------------------
r57523 | nobu | 2017-02-04 10:04:14 +0900 (Sat, 04 Feb 2017) | 4 lines
test_gem.rb: exclude default gems
* test/rubygems/test_gem.rb: check difference to exclude default
gems from the expected results. [Feature #13186]
------------------------------------------------------------------------
r57522 | normal | 2017-02-04 08:58:18 +0900 (Sat, 04 Feb 2017) | 14 lines
doc: restore class documentation for Struct
* struct.c: restore class documentation for Struct
that disappeared with r46663.
Due to r46663, the class documentation for Struct disappeared.
(The revision inserted the definition of `InitVM_Struct` between
the rdoc and the definition of `Init_Struct`.)
The docs are rendered for 2.1: <https://docs.ruby-lang.org/en/2.1.0/Struct.html>,
but not for later versions, see: <https://docs.ruby-lang.org/en/2.2.0/Struct.html>
(Same for `ri` pages).
[ruby-core:79416] [Bug #13189]
------------------------------------------------------------------------
r57521 | normal | 2017-02-04 08:55:06 +0900 (Sat, 04 Feb 2017) | 8 lines
symbol.c (rb_id2str): eliminate branch to set class
Since the fstring table encompasses all strings in the
symbol table, we may reuse the fstring table walk to set
the class and eliminate the branch in rb_id2str.
* string.c (Init_String): use rb_cString immediately after definition
* symbol.c (rb_id2str): eliminate branch to set class
------------------------------------------------------------------------
r57520 | nobu | 2017-02-04 08:50:41 +0900 (Sat, 04 Feb 2017) | 5 lines
ruby.h: unused parameter
* include/ruby/ruby.h (rb_scan_args_set): remove unused parameter
for more pedantic extension libraries.
[ruby-core:79399] [Feature #13184]
------------------------------------------------------------------------
r57519 | normal | 2017-02-04 08:40:59 +0900 (Sat, 04 Feb 2017) | 1 line
.gitignore: add ext/rbconfig/sizeof/limits.c
------------------------------------------------------------------------
r57518 | normal | 2017-02-04 08:40:05 +0900 (Sat, 04 Feb 2017) | 3 lines
ext/rbconfig/sizeof: add limits.c to svn:ignore
------------------------------------------------------------------------
r57517 | normal | 2017-02-04 08:34:48 +0900 (Sat, 04 Feb 2017) | 8 lines
doc: Fix error for escape sequences in string literals
Backslash goes first in escape sequences, so it must be
"any other character following a backslash is interpreted as ...",
while the doc says "...followed by...".
Author: Marcus Stollsteimer <sto.mar@web.de>
[ruby-core:79418] [Bug #13190]
------------------------------------------------------------------------
r57516 | svn | 2017-02-04 03:25:29 +0900 (Sat, 04 Feb 2017) | 1 line
* 2017-02-04
------------------------------------------------------------------------
r57515 | marcandre | 2017-02-04 03:25:28 +0900 (Sat, 04 Feb 2017) | 3 lines
lib/ostruct.rb: Fix returned value of each_pair.
From a patch by Marcus Stollsteimer. [Fixes #13169]
------------------------------------------------------------------------
r57514 | nobu | 2017-02-03 21:52:09 +0900 (Fri, 03 Feb 2017) | 4 lines
test/unit.rb: share job slots
* test/lib/test/unit.rb (Test::Unit::Parallel#_run_parallel):
share job slots with GNU 'make'.
------------------------------------------------------------------------
r57513 | nobu | 2017-02-03 21:52:08 +0900 (Fri, 03 Feb 2017) | 4 lines
test/unit.rb: job testing flag
* test/lib/test/unit.rb (Parallel#non_options): split testing flag
and job count by OptionParser.
------------------------------------------------------------------------
r57512 | hsbt | 2017-02-03 21:39:04 +0900 (Fri, 03 Feb 2017) | 3 lines
Added initial gemspec for zlib module.
[Feature #13186]
------------------------------------------------------------------------
r57511 | nobu | 2017-02-03 15:48:02 +0900 (Fri, 03 Feb 2017) | 4 lines
ensured.c: fix conflict
* ext/-test-/exception/ensured.c (exc_raise): get rid of conflict
with raise(2) in the standard. [ruby-core:79371] [Bug #13176]
------------------------------------------------------------------------
r57510 | nobu | 2017-02-03 15:23:34 +0900 (Fri, 03 Feb 2017) | 4 lines
eval.c: hide internal objects
* eval.c (rb_ensure): veil internal exception objects not to leak
in ensure functions. [ruby-core:79371] [Bug #13176]
------------------------------------------------------------------------
r57509 | nobu | 2017-02-03 15:11:32 +0900 (Fri, 03 Feb 2017) | 4 lines
internal.h: fix r57507
* internal.h (rb_overflowed_fix_to_int): invert sign bit. should
not set LSB of fixnum value, which is always set, to MSB.
------------------------------------------------------------------------
r57508 | normal | 2017-02-03 03:59:40 +0900 (Fri, 03 Feb 2017) | 10 lines
io.c: remove rb_ensure usage for rb_str_tmp_frozen_* calls
Using rb_ensure pessimizes the common case and makes the code
more difficult to read and follow. If we hit an exceptions
during write, just let the GC handle cleanup as the exception
is already bad for garbage.
* io.c (io_fwrite): call rb_str_tmp_frozen{acquire,release} directly
(rb_io_syswrite): ditto
(fwrite_do, fwrite_end, swrite_do, swrite_end): remove
------------------------------------------------------------------------
r57507 | naruse | 2017-02-03 02:07:28 +0900 (Fri, 03 Feb 2017) | 1 line
fix typo and argument of r57506
------------------------------------------------------------------------
r57506 | naruse | 2017-02-03 00:54:51 +0900 (Fri, 03 Feb 2017) | 13 lines
Use carry flag to reduce instructions
NOTE:
(1) Fixnum's LSB is always 1.
It means you can always run `x - 1` without overflow.
(2) Of course `z = x + (y-1)` may overflow.
Now z's LSB is always 1, and the MSB of true result is also 1.
You can get true result in long as `(1<<63)|(z>>1)`,
and it equals to `(z<<63)|(z>>1)` == `ror(z)`.
GCC and Clang have __builtin_add_ovewflow:
* https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html
* https://clang.llvm.org/docs/LanguageExtensions.html#checked-arithmetic-builtins
------------------------------------------------------------------------
r57505 | svn | 2017-02-03 00:12:30 +0900 (Fri, 03 Feb 2017) | 1 line
* 2017-02-03
------------------------------------------------------------------------
r57504 | kazu | 2017-02-03 00:12:29 +0900 (Fri, 03 Feb 2017) | 1 line
ext/fcntl: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57503 | kazu | 2017-02-02 21:38:41 +0900 (Thu, 02 Feb 2017) | 1 line
Add class name to assert messages
------------------------------------------------------------------------
r57502 | hsbt | 2017-02-02 17:38:54 +0900 (Thu, 02 Feb 2017) | 3 lines
Added initial gemspec for Date module.
[Feature #13183]
------------------------------------------------------------------------
r57501 | nobu | 2017-02-02 17:02:36 +0900 (Thu, 02 Feb 2017) | 4 lines
escape.c: check argument
* ext/cgi/escape/escape.c (optimized_unescape): check
accept_charset encoding argument.
------------------------------------------------------------------------
r57500 | hsbt | 2017-02-02 16:49:19 +0900 (Thu, 02 Feb 2017) | 3 lines
Added initial gemspec for CMath module.
[Feature #13182]
------------------------------------------------------------------------
r57499 | nobu | 2017-02-02 16:03:59 +0900 (Thu, 02 Feb 2017) | 6 lines
test_cgi_util.rb: encoding tests
* test/cgi/test_cgi_util.rb (test_cgi_unescape): \u is useless on
old versions.
* test/cgi/test_cgi_util.rb (test_cgi_include_unescape): ditto.
------------------------------------------------------------------------
r57498 | nobu | 2017-02-02 14:56:06 +0900 (Thu, 02 Feb 2017) | 5 lines
compile.c: restore catch entry sp
* compile.c (iseq_build_from_ary_exception): restore stack depth
of catch entries. accurate stack depths cannot be calculated
from dumped array.
------------------------------------------------------------------------
r57497 | nobu | 2017-02-02 14:45:22 +0900 (Thu, 02 Feb 2017) | 4 lines
compile.c: restore misc params
* compile.c (rb_iseq_build_from_ary): restore misc params.
accurate stack depths cannot be calculated from dumped array.
------------------------------------------------------------------------
r57496 | nobu | 2017-02-02 14:45:21 +0900 (Thu, 02 Feb 2017) | 4 lines
compile.c: keyword table for required kwarg
* compile.c (iseq_build_kw): keyword table is necessary also when
required keyword argumetns only.
------------------------------------------------------------------------
r57495 | nobu | 2017-02-02 14:43:58 +0900 (Thu, 02 Feb 2017) | 6 lines
test_iseq_load.rb: refine test_require_integration
* test/-ext-/iseq_load/test_iseq_load.rb (test_require_integration):
assert with diff.
[ci skip]
------------------------------------------------------------------------
r57494 | nobu | 2017-02-02 07:18:28 +0900 (Thu, 02 Feb 2017) | 4 lines
test_time.rb: use UTC
* test/ruby/test_time.rb (test_strftime_no_hidden_garbage): fix
failure due to timezone offset.
------------------------------------------------------------------------
r57493 | svn | 2017-02-02 07:14:23 +0900 (Thu, 02 Feb 2017) | 1 line
* 2017-02-02
------------------------------------------------------------------------
r57492 | nobu | 2017-02-02 07:14:22 +0900 (Thu, 02 Feb 2017) | 5 lines
test_queue.rb: fix portability
* test/thread/test_queue.rb (test_queue_with_trap): fix
portability. use SIGINT instead of SIGUSR2 which is supported
on not all platforms.
------------------------------------------------------------------------
r57491 | hsbt | 2017-02-01 18:12:53 +0900 (Wed, 01 Feb 2017) | 6 lines
Prepare to make CSV module to default gem.
* lib/csv.gemspec: initial gemspec for csv gem.
* tool/rbinstall.rb: support gemspec located under lib direcotry like `lib/foo.gemspec`
[Feature #13177]
------------------------------------------------------------------------
r57490 | nobu | 2017-02-01 16:40:58 +0900 (Wed, 01 Feb 2017) | 5 lines
configure.in: use AC_SEARCH_LIBS
* configure.in (--with-gmp, --with-jemalloc): use AC_SEARCH_LIBS
to check if no library is required, instead of AC_CHECK_LIB.
[ruby-core:79368] [Bug #13175]
------------------------------------------------------------------------
r57489 | nobu | 2017-02-01 13:54:04 +0900 (Wed, 01 Feb 2017) | 7 lines
common.mk: remove explicit MFLAGS
It is unnecessary to pass MFLAGS to sub-makes, because it is
evaluated implicitly if set by make. GNU make 4.2 sets both of
-jN and --jobserver-auth (or --jobserver-fds in older versions)
options which conflict. And it is useless for command line macros
since Microsoft NMAKE does not set them.
------------------------------------------------------------------------
r57488 | nobu | 2017-02-01 13:54:03 +0900 (Wed, 01 Feb 2017) | 1 line
win32/setup.mak: reorder
------------------------------------------------------------------------
r57487 | svn | 2017-02-01 02:46:52 +0900 (Wed, 01 Feb 2017) | 1 line
* 2017-02-01
------------------------------------------------------------------------
r57486 | tenderlove | 2017-02-01 02:46:51 +0900 (Wed, 01 Feb 2017) | 6 lines
Add IMEMO type to heap dump output.
IMEMO objects have many types. Without this change, we cannot see what
types of IMEMO objects are being used when dumping the heap. Adding the
type to the IMEMO object will allow us to gather statistics about IMEMO
objects being used.
------------------------------------------------------------------------
r57485 | nobu | 2017-01-31 21:55:00 +0900 (Tue, 31 Jan 2017) | 4 lines
ruby.c: defining DATA
* ruby.c (load_file_internal): define DATA here instead of ensure
func.
------------------------------------------------------------------------
r57484 | nobu | 2017-01-31 21:54:59 +0900 (Tue, 31 Jan 2017) | 5 lines
ruby.c: forbid options
* ruby.c (forbid_setid): constified.
* ruby.c (process_options): forbid if setid earlier.
------------------------------------------------------------------------
r57483 | naruse | 2017-01-31 19:37:50 +0900 (Tue, 31 Jan 2017) | 4 lines
Describe about RUBY_CODESIGN
With RUBY_CODESIGN people can avoid pushing many OK button of firewall
dialogs on macOS through test-all.
------------------------------------------------------------------------
r57482 | rhe | 2017-01-31 19:08:22 +0900 (Tue, 31 Jan 2017) | 24 lines
openssl: import v2.0.3
Import Ruby/OpenSSL 2.0.3. Only bugfixes. The full commit log since
2.0.2 (imported at r57146) can be found at:
https://github.com/ruby/openssl/compare/v2.0.2...v2.0.3
----------------------------------------------------------------
Corey Bonnell (1):
Fix for ASN1::Constructive 'each' implementation
Kazuki Yamaguchi (10):
Fix build with static OpenSSL libraries on Windows
([ruby-core:78878] [Bug #13080])
Merge pull request #96 from CBonnell/master
Merge branch 'topic/windows-static-linking-without-pkg-config' into maint
appveyor.yml: update OpenSSL version to 1.0.2j
buffering: fix typo in doc
test/envutil: fix assert_raise_with_message
x509: fix OpenSSL::X509::Name#eql?
([ruby-core:79310] [Bug #13170])
ruby-openssl-docker: update versions of Ruby and OpenSSL
.travis.yml: test with Ruby 2.4
Ruby/OpenSSL 2.0.3
------------------------------------------------------------------------
r57481 | hsbt | 2017-01-31 17:48:14 +0900 (Tue, 31 Jan 2017) | 3 lines
Initial commit for gem release of webrick.
[Feature #13173]
------------------------------------------------------------------------
r57480 | nobu | 2017-01-31 17:03:08 +0900 (Tue, 31 Jan 2017) | 3 lines
mkmf.rb: message format string
* lib/mkmf.rb (checking_for): message needs format string.
------------------------------------------------------------------------
r57479 | ko1 | 2017-01-31 16:00:38 +0900 (Tue, 31 Jan 2017) | 7 lines
allow Queue operation in trap.
* thread_sync.c: allow spurious wakeup to check Queue status just after trap.
[Bug #12405]
* test/thread/test_queue.rb: add a test for it.
------------------------------------------------------------------------
r57478 | ko1 | 2017-01-31 15:39:01 +0900 (Tue, 31 Jan 2017) | 6 lines
define rb_thread_sleep_deadly_allow_spurious_wakeup().
* thread.c, thread_sync.c: define new function
rb_thread_sleep_deadly_allow_spurious_wakeup() and use it instead of
using sleep_forever() directly.
------------------------------------------------------------------------
r57477 | ko1 | 2017-01-31 15:31:06 +0900 (Tue, 31 Jan 2017) | 2 lines
use TRUE/FALSE.
------------------------------------------------------------------------
r57476 | normal | 2017-01-31 11:18:58 +0900 (Tue, 31 Jan 2017) | 7 lines
time.c (time_strftime): avoid garbage in common case
strftime format strings which are dynamically-generated will benefit
from avoiding garbage, here.
* time.c (time_strftime): use rb_str_tmp_frozen_{acquire,release}
* test/ruby/test_time.rb (test_strftime_no_hidden_garbage): new test
------------------------------------------------------------------------
r57475 | nobu | 2017-01-31 11:01:31 +0900 (Tue, 31 Jan 2017) | 4 lines
limits.c.tmpl: fallback ULLONG_MAX
* template/limits.c.tmpl (ULLONG_MAX): add a fallback definition.
On old CentOS lacks ULLONG_MAX.
------------------------------------------------------------------------
r57474 | nobu | 2017-01-31 10:18:10 +0900 (Tue, 31 Jan 2017) | 4 lines
test_io.rb: separate a test
* test/ruby/test_io.rb (test_closed_stream_in_rescue): run in a
separated process.
------------------------------------------------------------------------
r57473 | normal | 2017-01-31 09:41:56 +0900 (Tue, 31 Jan 2017) | 8 lines
sprintf.c: avoid garbage in common (no exception) case
Format strings which are dynamically-generated will benefit
from this. This won't cover exceptions, but exceptions for
sprintf should be too uncommon to care about (unlike IO)
* sprintf.c (rb_str_format): use rb_str_tmp_frozen_{acquire,release}
* test/ruby/test_sprintf.rb (test_no_hidden_garbage): new test
------------------------------------------------------------------------
r57472 | normal | 2017-01-31 07:03:57 +0900 (Tue, 31 Jan 2017) | 8 lines
io.c (rb_io_syswrite): avoid leaving garbage after write
As with IO#write, IO#syswrite also generates garbage which can
be harmful in hand-coded read-write loops.
* io.c (swrite_arg, swrite_do, swrite_end): new
(rb_io_syswrite): use new functions to cleanup garbage
[ruby-core:78898] [Bug #13085]
------------------------------------------------------------------------
r57471 | normal | 2017-01-31 06:54:32 +0900 (Tue, 31 Jan 2017) | 8 lines
string.c (rb_str_tmp_frozen_release): release embedded strings
Handle the embedded case first, since we may have an embedded
duplicate and non-embedded original string.
* string.c (rb_str_tmp_frozen_release): handled embedded strings
* test/ruby/test_io.rb (test_write_no_garbage): new test
[ruby-core:78898] [Bug #13085]
------------------------------------------------------------------------
r57470 | svn | 2017-01-31 05:40:19 +0900 (Tue, 31 Jan 2017) | 1 line
* 2017-01-31
------------------------------------------------------------------------
r57469 | normal | 2017-01-31 05:40:18 +0900 (Tue, 31 Jan 2017) | 37 lines
io.c: recycle garbage on write
* string.c (STR_IS_SHARED_M): new flag to mark shared mulitple times
(STR_SET_SHARED): set STR_IS_SHARED_M
(rb_str_tmp_frozen_acquire, rb_str_tmp_frozen_release): new functions
(str_new_frozen): set/unset STR_IS_SHARED_M as appropriate
* internal.h: declare new functions
* io.c (fwrite_arg, fwrite_do, fwrite_end): new
(io_fwrite): use new functions
Introduce rb_str_tmp_frozen_acquire and rb_str_tmp_frozen_release
to manage a hidden, frozen string. Reuse one bit of the embed
length for shared strings as STR_IS_SHARED_M to indicate a string
has been shared multiple times. In the common case, the string
is only shared once so the object slot can be reclaimed immediately.
minimum results in each 3 measurements. (time and size)
Execution time (sec)
name trunk built
io_copy_stream_write 0.682 0.254
io_copy_stream_write_socket 1.225 0.751
Speedup ratio: compare with the result of `trunk' (greater is better)
name built
io_copy_stream_write 2.680
io_copy_stream_write_socket 1.630
Memory usage (last size) (B)
name trunk built
io_copy_stream_write 95436800.000 6512640.000
io_copy_stream_write_socket 117628928.000 7127040.000
Memory consuming ratio (size) with the result of `trunk' (greater is better)
name built
io_copy_stream_write 14.654
io_copy_stream_write_socket 16.505
------------------------------------------------------------------------
r57468 | nobu | 2017-01-30 21:00:34 +0900 (Mon, 30 Jan 2017) | 6 lines
common.mk: limits.c
* common.mk (ext/rbconfig/sizeof/sizes.c): specify the target
explicitly.
* common.mk (ext/rbconfig/sizeof/limits.c): add the recipe.
------------------------------------------------------------------------
r57467 | nobu | 2017-01-30 20:45:00 +0900 (Mon, 30 Jan 2017) | 1 line
VC18 or later support stdbool.h
------------------------------------------------------------------------
r57466 | svn | 2017-01-30 19:12:19 +0900 (Mon, 30 Jan 2017) | 1 line
* properties.
------------------------------------------------------------------------
r57465 | shyouhei | 2017-01-30 19:12:18 +0900 (Mon, 30 Jan 2017) | 15 lines
make FIXNUM_MAX visible from Ruby
Because our tests now have several places where FIXNUM_MAX is needed,
we decided to provide it along with several other constants.
* template/limits.c.tmpl: new file, defining RbConfig::Limits
* ext/rbconfig/sizeof/depend (limits.c): rule to generate limits.c
* test/-ext-/num2int/test_num2int.rb: use RbConfig::Limits
* bootstraptest/test_insns.rb: ditto.
* .gitignore: ignore new generated file.
------------------------------------------------------------------------
r57464 | ko1 | 2017-01-30 16:39:27 +0900 (Mon, 30 Jan 2017) | 2 lines
add a ticket number.
------------------------------------------------------------------------
r57463 | nobu | 2017-01-30 14:09:13 +0900 (Mon, 30 Jan 2017) | 1 line
reduce iterations for slower machines
------------------------------------------------------------------------
r57462 | nobu | 2017-01-30 13:54:52 +0900 (Mon, 30 Jan 2017) | 4 lines
fix up r57461
* internal.h: Microsoft Visual C++ has never supported C99 yet,
even in 2017.
------------------------------------------------------------------------
r57461 | nobu | 2017-01-30 13:47:44 +0900 (Mon, 30 Jan 2017) | 4 lines
refine assertions
* test/irb/test_ruby-lex.rb (test_prompt): invert confinue flag by
FIXME comments. adjust line numbers.
------------------------------------------------------------------------
r57460 | shyouhei | 2017-01-30 13:42:04 +0900 (Mon, 30 Jan 2017) | 30 lines
#include <stdbool.h>
17+ years passed since standardized in ISO, 8 years since we added
AC_HEADER_STDBOOL to configure.in. I'm quite confident that it's
already safe to use <stdbool.h>.
I understand that when we introduced AC_HEADER_STDBOOL, <stdbool.h>
was remain not included because C standard and SVR4 curses conflicted
miserably back then (#1). Though I believe such situation has been
fixed already(#2), I'm afraid of your operating system might ship a
proprietary curses that still conflicts with the standard. So to avoid
potential problem, we limit the inclusion to our internal use only.
#1 : 1997 version of SUSv2 said bool is "defined though typedef" in
<curses.h>, while C99 said bool is a macro, plus in C++ bool is a
keyword. AFASIK the curses library has never been a part of
POSIX.
#2 : In reality ncurses and NetBSD curses both just follow C99 to
include <stdbool.h> from <curses.h>. I think C99 is now widely
adopted.
----
* internal.h: #include <stdbool.h> if present. That is
believed to be the case for 99.9% systems that lives today.
Non-C99, non-C++ situations are intentionally left
undefined, advised by Motohiro Kosaki. If you have such
compiler, please fill the definition appropriately.
------------------------------------------------------------------------
r57459 | nobu | 2017-01-30 12:57:46 +0900 (Mon, 30 Jan 2017) | 1 line
more checks for prompt
------------------------------------------------------------------------
r57458 | svn | 2017-01-30 12:21:16 +0900 (Mon, 30 Jan 2017) | 1 line
* 2017-01-30
------------------------------------------------------------------------
r57457 | nobu | 2017-01-30 12:21:15 +0900 (Mon, 30 Jan 2017) | 1 line
test for prompt
------------------------------------------------------------------------
r57456 | nobu | 2017-01-29 21:53:24 +0900 (Sun, 29 Jan 2017) | 1 line
test for immature statement
------------------------------------------------------------------------
r57455 | nobu | 2017-01-29 21:53:23 +0900 (Sun, 29 Jan 2017) | 1 line
test for top level statement
------------------------------------------------------------------------
r57454 | nobu | 2017-01-29 21:20:26 +0900 (Sun, 29 Jan 2017) | 1 line
test for comment
------------------------------------------------------------------------
r57453 | nobu | 2017-01-29 18:51:55 +0900 (Sun, 29 Jan 2017) | 1 line
tests for irb lexer
------------------------------------------------------------------------
r57452 | svn | 2017-01-29 10:35:24 +0900 (Sun, 29 Jan 2017) | 1 line
* 2017-01-29
------------------------------------------------------------------------
r57451 | kazu | 2017-01-29 10:35:23 +0900 (Sun, 29 Jan 2017) | 1 line
{ext,test}/etc: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57450 | nobu | 2017-01-28 20:27:32 +0900 (Sat, 28 Jan 2017) | 4 lines
test/unit.rb: minimum workers
* test/lib/test/unit.rb (_run_parallel): launch only necessary
workers.
------------------------------------------------------------------------
r57449 | nobu | 2017-01-28 14:31:25 +0900 (Sat, 28 Jan 2017) | 4 lines
extmk.rb: remove clean and install mode
* ext/extmk.rb (parse_args): remove clean and install mode, now
configure mode only.
------------------------------------------------------------------------
r57448 | nobu | 2017-01-28 14:23:39 +0900 (Sat, 28 Jan 2017) | 4 lines
extmk.rb: remove direct build mode
* ext/extmk.rb (parse_args): --command-output is now mandatory.
remove direct build mode.
------------------------------------------------------------------------
r57447 | nobu | 2017-01-28 14:02:41 +0900 (Sat, 28 Jan 2017) | 5 lines
extension gems in static-linked-exts
* template/configure-ext.mk.tmpl: --no-extstatic option to gems.
* template/exts.mk.tmpl: include extension gems.
------------------------------------------------------------------------
r57446 | nobu | 2017-01-28 14:02:39 +0900 (Sat, 28 Jan 2017) | 4 lines
mkmf.rb: fix script installation
* lib/mkmf.rb (MakeMakefile): fix condition to install script
files.
------------------------------------------------------------------------
r57445 | kazu | 2017-01-28 13:36:08 +0900 (Sat, 28 Jan 2017) | 1 line
{ext,test}/dbm: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57444 | nobu | 2017-01-28 10:43:29 +0900 (Sat, 28 Jan 2017) | 3 lines
exts.mk.tmpl: ruby names
* template/exts.mk.tmpl: extract configured ruby names.
------------------------------------------------------------------------
r57443 | svn | 2017-01-28 00:32:50 +0900 (Sat, 28 Jan 2017) | 1 line
* 2017-01-28
------------------------------------------------------------------------
r57442 | naruse | 2017-01-28 00:32:50 +0900 (Sat, 28 Jan 2017) | 1 line
fix typo
------------------------------------------------------------------------
r57441 | nobu | 2017-01-27 17:05:06 +0900 (Fri, 27 Jan 2017) | 5 lines
extmk.rb: fix for static-linked-ext
* ext/extmk.rb (extmake): fix up r57424 for static-linked-ext.
separate maybestatic argument from basedir which is given always
now.
------------------------------------------------------------------------
r57440 | nobu | 2017-01-27 16:51:58 +0900 (Fri, 27 Jan 2017) | 1 line
template/exts.mk.tmpl: fix missing dependencies
------------------------------------------------------------------------
r57439 | nobu | 2017-01-27 16:23:21 +0900 (Fri, 27 Jan 2017) | 1 line
template/exts.mk.tmpl: consider EXEEXT
------------------------------------------------------------------------
r57438 | nobu | 2017-01-27 16:16:36 +0900 (Fri, 27 Jan 2017) | 4 lines
exts.mk.tmpl: for not GNU makes
* template/exts.mk.tmpl: use `cd` then `make` instead of `make -C`
when not GNU make.
------------------------------------------------------------------------
r57437 | nobu | 2017-01-27 14:01:18 +0900 (Fri, 27 Jan 2017) | 5 lines
leakchecker.rb: get rid of uninitialized Tempfile
* test/lib/leakchecker.rb (LeakChecker#find_tempfiles): get rid of
errors on uninitialized Tempfile, which can be left when
Dir.tmpdir failed or by Tempfile.allocate.
------------------------------------------------------------------------
r57436 | nobu | 2017-01-27 12:24:45 +0900 (Fri, 27 Jan 2017) | 3 lines
enum.c: write barrier
* enum.c (rb_nmin_run): set the class with write barrier.
------------------------------------------------------------------------
r57435 | nobu | 2017-01-27 12:24:44 +0900 (Fri, 27 Jan 2017) | 1 line
enum.c (rb_nmin_run): adjust indent [ci skip]
------------------------------------------------------------------------
r57434 | nobu | 2017-01-27 12:24:43 +0900 (Fri, 27 Jan 2017) | 9 lines
Enumerable#{min,min_by,max,max_by} [ci skip]
* enum.c: [DOC] Enumerable#{min,min_by,max,max_by} return a sorted
array when +n+ argument is used.
* enum.c: Small typo : minimum -> maximum
[Bug #13161]
Author: Eric Duminil <eric.duminil@gmail.com>
------------------------------------------------------------------------
r57433 | nobu | 2017-01-27 11:55:02 +0900 (Fri, 27 Jan 2017) | 4 lines
configure-ext.mk.tmpl: fix ext build
* template/configure-ext.mk.tmpl: fixed inverted names of target
and directory, and chomp the last slash.
------------------------------------------------------------------------
r57432 | kazu | 2017-01-27 09:29:21 +0900 (Fri, 27 Jan 2017) | 1 line
{ext,test}/date: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57431 | kazu | 2017-01-27 00:14:02 +0900 (Fri, 27 Jan 2017) | 1 line
[DOC] Use Integer instead of Fixnum [ci skip]
------------------------------------------------------------------------
r57430 | svn | 2017-01-27 00:14:01 +0900 (Fri, 27 Jan 2017) | 1 line
* 2017-01-27
------------------------------------------------------------------------
r57429 | kazu | 2017-01-27 00:14:00 +0900 (Fri, 27 Jan 2017) | 1 line
lib/weakref.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57428 | kou | 2017-01-26 21:47:51 +0900 (Thu, 26 Jan 2017) | 6 lines
Add document for lib/rss/atom.rb
[fix GH-1520]
Patch by Tsehau Chao. Thanks!!!
------------------------------------------------------------------------
r57427 | ko1 | 2017-01-26 18:57:41 +0900 (Thu, 26 Jan 2017) | 5 lines
skip T_IMEMO for VMDEBUG
* vm_dump.c (vm_stack_dump_each): skip T_IMEMO object to display
for VMDEBUG=3. [Bug #13030]
------------------------------------------------------------------------
r57426 | ko1 | 2017-01-26 18:40:25 +0900 (Thu, 26 Jan 2017) | 2 lines
* vm_dump.c: enable to compile with VMDEBUG == 3.
------------------------------------------------------------------------
r57425 | svn | 2017-01-26 17:19:35 +0900 (Thu, 26 Jan 2017) | 1 line
* 2017-01-26
------------------------------------------------------------------------
r57424 | nobu | 2017-01-26 17:19:34 +0900 (Thu, 26 Jan 2017) | 1 line
Parallel gem configuration
------------------------------------------------------------------------
r57423 | hsbt | 2017-01-26 16:09:58 +0900 (Thu, 26 Jan 2017) | 4 lines
Fix function name for DBM on extension document.
Patch by Yuji Yaginuma, @y-yagi <yuuji.yaginuma@gmail.com>
[ci skip][fix GH-1519]
------------------------------------------------------------------------
r57422 | nobu | 2017-01-25 23:34:07 +0900 (Wed, 25 Jan 2017) | 4 lines
io.c: close before wait
* io.c (io_close_fptr): notify then close, and wait for other
threads before free fptr. [ruby-core:79262] [Bug #13158]
------------------------------------------------------------------------
r57421 | kazu | 2017-01-25 23:28:42 +0900 (Wed, 25 Jan 2017) | 3 lines
[DOC] Add empty example to enum.all? and any?
[ci skip]
------------------------------------------------------------------------
r57420 | nobu | 2017-01-25 15:08:16 +0900 (Wed, 25 Jan 2017) | 3 lines
regcomp.c: debug function [ci skip]
* regcomp.c (print_indent_tree): make a function for debug static.
------------------------------------------------------------------------
r57419 | nobu | 2017-01-25 15:05:51 +0900 (Wed, 25 Jan 2017) | 4 lines
.gdbinit: fix on empty strings [ci skip]
* .gdbinit (output_string): get rid of "Invalid number 0 of
repetitions" error on empty strings.
------------------------------------------------------------------------
r57418 | nobu | 2017-01-25 15:05:50 +0900 (Wed, 25 Jan 2017) | 3 lines
.gdbinit: op symbols [ci skip]
* .gdbinit (rp_id): add unhandled operator symbols.
------------------------------------------------------------------------
r57417 | svn | 2017-01-25 12:03:53 +0900 (Wed, 25 Jan 2017) | 1 line
* 2017-01-25
------------------------------------------------------------------------
r57416 | ko1 | 2017-01-25 12:03:52 +0900 (Wed, 25 Jan 2017) | 6 lines
swithc id_table data structure.
* id_table.c: swtich to "simple open addressing with quadratic probing"
by Yura Sokolov. For more detail measurements, see [Feature #12180]
* id_table.c: remove other algorithms to simplify the source code.
------------------------------------------------------------------------
r57415 | nobu | 2017-01-24 23:52:07 +0900 (Tue, 24 Jan 2017) | 4 lines
eval.c: copy special exception
* eval.c (setup_exception): make unfrozen copy of special
exception before setting up a cause.
------------------------------------------------------------------------
r57414 | nobu | 2017-01-24 16:52:41 +0900 (Tue, 24 Jan 2017) | 1 line
parse.y (parser_yylex): remove wrong warning
------------------------------------------------------------------------
r57413 | svn | 2017-01-24 11:38:58 +0900 (Tue, 24 Jan 2017) | 1 line
* remove trailing spaces.
------------------------------------------------------------------------
r57412 | hsbt | 2017-01-24 11:38:57 +0900 (Tue, 24 Jan 2017) | 4 lines
Update Rubygems 2.6.10
* https://github.com/rubygems/rubygems/commit/2ee5bf9fd3bd7649d3e244bc40107ff32070ef47
* https://github.com/rubygems/rubygems/commit/be510dd4097e65c6a256a6e173d6b724a3a96472
------------------------------------------------------------------------
r57411 | naruse | 2017-01-24 02:02:08 +0900 (Tue, 24 Jan 2017) | 3 lines
Fix typo of URI#escape [Bug #13147]
patched by Steve Hill <sghill.dev@gmail.com>
------------------------------------------------------------------------
r57410 | naruse | 2017-01-24 01:58:27 +0900 (Tue, 24 Jan 2017) | 5 lines
Prevent GC by volatile [Bug #13150]
test/ruby/test_marshal.rb test_context_switch (load) and test_gc (dump)
are failed on FreeBSD 10.3 and gcc7 (FreeBSD Ports Collection) 7.0.0
20170115 (experimental); RB_GC_GUARD looks not worked well.
------------------------------------------------------------------------
r57409 | svn | 2017-01-24 00:47:33 +0900 (Tue, 24 Jan 2017) | 1 line
* 2017-01-24
------------------------------------------------------------------------
r57408 | kazu | 2017-01-24 00:47:32 +0900 (Tue, 24 Jan 2017) | 1 line
test/test_tmpdir.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57407 | nobu | 2017-01-23 15:16:04 +0900 (Mon, 23 Jan 2017) | 5 lines
object.c: no TypeError at Symbol
* object.c (special_object_p): uninterned Symbol also should not
raise a TypeError but return itself instead, as well as interned
Symbols. [ruby-core:79216] [Bug #13145]
------------------------------------------------------------------------
r57406 | nobu | 2017-01-23 14:59:28 +0900 (Mon, 23 Jan 2017) | 4 lines
csv.rb: fix field_size_limit check
* lib/csv.rb (CSV#shift): the last column is an Array in extended
column since r55985. [ruby-dev:49964] [Bug #13149]
------------------------------------------------------------------------
r57405 | nobu | 2017-01-23 13:49:19 +0900 (Mon, 23 Jan 2017) | 6 lines
error.c: fixed doc [ci skip]
* error.c (exc_message): fixed doc regarding the presence of
to_str. [Fix GH-1517]
Author: Marc Gauthier <marcg.gauthier@gmail.com>
------------------------------------------------------------------------
r57404 | nobu | 2017-01-23 13:22:23 +0900 (Mon, 23 Jan 2017) | 4 lines
configure-ext.mk.tmpl: embed macros
* template/configure-ext.mk.tmpl: embed MINIRUBY and SCRIPT_ARGS
to get rid of quoting problems of nmake.
------------------------------------------------------------------------
r57403 | nobu | 2017-01-23 12:51:25 +0900 (Mon, 23 Jan 2017) | 11 lines
Fix for nmake
* common.mk (EXT_MK): use double-quotes and remove SCRIPT_ARGS
which contains both types of quotes.
* template/configure-ext.mk.tmpl (all): use single-quotes for MAKE
which is set by nmake and contains spaces in the path. do not
use SCRIPT_ARGS.
* template/exts.mk.tmpl (all, static): separate dependency lines,
not to become a default target unintentionally.
------------------------------------------------------------------------
r57402 | nobu | 2017-01-23 12:43:43 +0900 (Mon, 23 Jan 2017) | 4 lines
configure-ext.mk.tmpl: FORCE
* template/configure-ext.mk.tmpl (FORCE): add missing target for
BSD make.
------------------------------------------------------------------------
r57401 | nobu | 2017-01-23 11:50:23 +0900 (Mon, 23 Jan 2017) | 7 lines
Parallel ext configuration
* ext/configure-ext.mk: configure each directories underneath ext
in parallel.
* template/exts.mk.tmpl: then collect the results.
------------------------------------------------------------------------
r57400 | svn | 2017-01-23 11:47:17 +0900 (Mon, 23 Jan 2017) | 1 line
* properties.
------------------------------------------------------------------------
r57399 | shyouhei | 2017-01-23 11:47:16 +0900 (Mon, 23 Jan 2017) | 14 lines
improve C0 coverage of insns.def from 65.9% to 96.1%
While I was developing my private topic branch I found that the VM
itself is not tested very much in `make test` tests. Of course
`make test-all` covers vast majority of the VM but running that task
is not an immediately possible thing when we are touching the VM. In
order to boost development in a rapid cycle I decided to add some
tests to the bootstraptest. Here it is.
* test_insns.rb: new test that covers insns.def.
* runner.rb (#assert_equal): pass extra options to the target
so that we can test frozen_string_literal: true situation.
------------------------------------------------------------------------
r57398 | nobu | 2017-01-23 11:19:00 +0900 (Mon, 23 Jan 2017) | 4 lines
extinit.c.tmpl: drop after dot
* template/extinit.c.tmpl: drop rest from the first dot in the
base name of a feature is ignored since r30464.
------------------------------------------------------------------------
r57397 | svn | 2017-01-23 11:18:59 +0900 (Mon, 23 Jan 2017) | 1 line
* 2017-01-23
------------------------------------------------------------------------
r57396 | nobu | 2017-01-23 11:18:59 +0900 (Mon, 23 Jan 2017) | 5 lines
extmk.rb: EXTINITS to sub make
* ext/extmk.rb: pass EXTINITS to sub make. if the template for
extinit.c is modified after extinit.c got compiled, extinit.c
will be re-generated together with ruby.
------------------------------------------------------------------------
r57395 | nobu | 2017-01-22 21:50:36 +0900 (Sun, 22 Jan 2017) | 3 lines
template/extinit.c.tmpl
* template/extinit.c.tmpl: separate from ext/extmk.rb.
------------------------------------------------------------------------
r57394 | nobu | 2017-01-22 17:04:37 +0900 (Sun, 22 Jan 2017) | 5 lines
Makefile.sub: refine distclean-ext
* win32/Makefile.sub (distclean-ext, realclean-ext): remove
extinit.c and suppress error message when failed to remove ext
directory.
------------------------------------------------------------------------
r57393 | shyouhei | 2017-01-22 13:14:21 +0900 (Sun, 22 Jan 2017) | 2 lines
NEWS for SecureRandom's random source [ci skip]
------------------------------------------------------------------------
r57392 | shyouhei | 2017-01-22 13:02:42 +0900 (Sun, 22 Jan 2017) | 2 lines
NEWS for SipHash13 [ci skip]
------------------------------------------------------------------------
r57391 | svn | 2017-01-22 12:06:18 +0900 (Sun, 22 Jan 2017) | 1 line
* 2017-01-22
------------------------------------------------------------------------
r57390 | kazu | 2017-01-22 12:06:17 +0900 (Sun, 22 Jan 2017) | 4 lines
Hash#fetch: fix grammar in documentation.
[Fix GH-1515][ci skip]
Author: Alyssa Ross <hi+services.github@alyssa.is>
------------------------------------------------------------------------
r57389 | kazu | 2017-01-21 21:21:05 +0900 (Sat, 21 Jan 2017) | 1 line
lib/tempfile.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57388 | svn | 2017-01-21 15:17:08 +0900 (Sat, 21 Jan 2017) | 1 line
* 2017-01-21
------------------------------------------------------------------------
r57387 | nobu | 2017-01-21 15:17:07 +0900 (Sat, 21 Jan 2017) | 1 line
Makefile.in: clean ruby-runner [ci skip]
------------------------------------------------------------------------
r57386 | kazu | 2017-01-20 22:33:06 +0900 (Fri, 20 Jan 2017) | 5 lines
Remove deprecated rbconfig/datadir
This is deleted at
https://github.com/rubygems/rubygems/commit/0e3c2c1f04182990c4c7a0aa53435ad8427342fd
in upstream.
------------------------------------------------------------------------
r57385 | nobu | 2017-01-20 19:59:47 +0900 (Fri, 20 Jan 2017) | 4 lines
extmk.rb: ignore generated sources
* ext/extmk.rb (extract_makefile): ignore generated source files
not to reconfigure when in-place build.
------------------------------------------------------------------------
r57384 | shyouhei | 2017-01-20 17:00:00 +0900 (Fri, 20 Jan 2017) | 24 lines
SecureRandom should try /dev/urandom first [Bug #9569]
* random.c (InitVM_Random): rename Random.raw_seed to
Random.urandom. A quick search seems there are no practical use
of this method than securerandom.rb so I think it's OK to rename
but if there are users of it, this hunk is subject to revert.
* test/ruby/test_rand.rb (TestRand#test_urandom): test for it.
* lib/securerandom.rb (SecureRandom.gen_random): Prefer OS-
provided CSPRNG if available. Otherwise falls back to OpenSSL.
Current preference is:
1. CSPRNG routine that the OS has; one of
- getrandom(2),
- arc4random(3), or
- CryptGenRandom()
2. /dev/urandom device
3. OpenSSL's RAND_bytes(3)
If none of above random number generators are available, you
cannot use this module. An exception is raised that case.
------------------------------------------------------------------------
r57383 | nobu | 2017-01-20 16:45:10 +0900 (Fri, 20 Jan 2017) | 4 lines
Keep -jN option
* {cygwin,template}/GNUmakefile.in (MFLAGS, MAKEFLAGS): keep -jN
option.
------------------------------------------------------------------------
r57382 | shyouhei | 2017-01-20 15:01:23 +0900 (Fri, 20 Jan 2017) | 16 lines
switch SipHash from SipHash24 to SipHash13 variant
SipHash13 is secure enough to be used in hash-tables,
and SipHash's author confirms that.
Rust already considered switch to SipHash13:
https://github.com/rust-lang/rust/issues/29754#issue-116174313
Jean-Philippe Aumasson confirmation:
https://github.com/rust-lang/rust/issues/29754#issuecomment-156073946
Merged pull request:
https://github.com/rust-lang/rust/pull/33940
From: Sokolov Yura aka funny_falcon <funny.falcon@gmail.com>
Date: Thu, 8 Dec 2016 20:31:29 +0300
Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org>
Fixes: [Feature #13017]
------------------------------------------------------------------------
r57381 | nobu | 2017-01-20 13:27:55 +0900 (Fri, 20 Jan 2017) | 5 lines
compile.c: optimization of defined? in condition
* compile.c (compile_branch_condition): trivial optimization of
defined? expression in a branch condition, where a string is not
needed, but just a boolean.
------------------------------------------------------------------------
r57380 | nobu | 2017-01-20 11:39:27 +0900 (Fri, 20 Jan 2017) | 5 lines
array.c: improve Array#sample
* array.c (rb_ary_sample): improve performance when many samples
from a large array. based on the patch by tomoya ishida
<tomoyapenguin AT gmail.com> in [ruby-dev:49956]. [Bug #13136]
------------------------------------------------------------------------
r57379 | nobu | 2017-01-20 11:27:28 +0900 (Fri, 20 Jan 2017) | 1 line
benchmarks for Bug#13136
------------------------------------------------------------------------
r57378 | svn | 2017-01-20 10:02:38 +0900 (Fri, 20 Jan 2017) | 1 line
* 2017-01-20
------------------------------------------------------------------------
r57377 | nobu | 2017-01-20 10:02:37 +0900 (Fri, 20 Jan 2017) | 4 lines
error.c: print default RS
* error.c (rb_warn_m): print the default RS instead of an empty
string with a newline. [Feature #12944]
------------------------------------------------------------------------
r57376 | nobu | 2017-01-19 18:54:58 +0900 (Thu, 19 Jan 2017) | 4 lines
parse.y: rescue/else/ensure in do-end
* parse.y (do_body): allow rescue/else/ensure inside do/end
blocks. [Feature #12906]
------------------------------------------------------------------------
r57375 | naruse | 2017-01-19 18:34:30 +0900 (Thu, 19 Jan 2017) | 1 line
More description about the protected attribute of a method
------------------------------------------------------------------------
r57374 | shugo | 2017-01-19 17:13:03 +0900 (Thu, 19 Jan 2017) | 3 lines
string.c: rindex(//) should set $~.
This seems a bug introduced by r520 (1.4.0). [ruby-core:79110] [Bug #13135]
------------------------------------------------------------------------
r57373 | nobu | 2017-01-19 16:18:23 +0900 (Thu, 19 Jan 2017) | 4 lines
parse.y: chomp by -l
* parse.y (rb_parser_while_loop): should chomp but not chop by -l
option. [ruby-core:78099] [Bug #12926]
------------------------------------------------------------------------
r57372 | hsbt | 2017-01-19 16:07:17 +0900 (Thu, 19 Jan 2017) | 3 lines
Fix documentation of options for all of methods in FileUtils.
Patch by galia traub( @galiat ). [Fix GH-1510][ci skip]
------------------------------------------------------------------------
r57371 | nobu | 2017-01-19 15:39:44 +0900 (Thu, 19 Jan 2017) | 4 lines
ENV#fetch: fix documentation of raised exception
[Fix GH-1514]
Author: Misty De Meo <mistydemeo@github.com>
------------------------------------------------------------------------
r57370 | nobu | 2017-01-19 15:25:06 +0900 (Thu, 19 Jan 2017) | 15 lines
Change Kernel#warn to call Warning.warn
This allows Warning.warn to filter/process warning messages
generated by Kernel#warn. Currently, Warning.warn can only handle
messages generated by the rb_warn/rb_warning C functions.
The Kernel#warn API is different than the Warning.warn API, this
tries to get similar behavior, but there are probably corner cases
where the behavior is different.
This makes str_end_with_asciichar in io.c no longer static so it
can be called from error.c.
[Feature #12944]
Author: Jeremy Evans <code@jeremyevans.net>
------------------------------------------------------------------------
r57369 | nobu | 2017-01-19 14:24:34 +0900 (Thu, 19 Jan 2017) | 1 line
id_table.c: fix typo
------------------------------------------------------------------------
r57368 | nobu | 2017-01-19 12:42:07 +0900 (Thu, 19 Jan 2017) | 4 lines
compile.c: check err_info
* compile.c (iseq_setup): bail out if any errors found.
[ruby-core:76531] [Bug #12613]
------------------------------------------------------------------------
r57367 | nobu | 2017-01-19 10:38:59 +0900 (Thu, 19 Jan 2017) | 3 lines
parse.y: warn space
* parse.y (parser_yylex): warn parentheses after space.
------------------------------------------------------------------------
r57366 | svn | 2017-01-19 03:23:49 +0900 (Thu, 19 Jan 2017) | 1 line
* 2017-01-19
------------------------------------------------------------------------
r57365 | svn | 2017-01-19 03:23:49 +0900 (Thu, 19 Jan 2017) | 1 line
* properties.
------------------------------------------------------------------------
r57364 | normal | 2017-01-19 03:23:49 +0900 (Thu, 19 Jan 2017) | 4 lines
another benchmark for IO.copy_stream socket writing
For testing Linux socket-only workaround for
https://bugs.ruby-lang.org/issues/13085
------------------------------------------------------------------------
r57363 | kazu | 2017-01-18 21:35:10 +0900 (Wed, 18 Jan 2017) | 1 line
lib/profiler.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57362 | nobu | 2017-01-18 14:23:53 +0900 (Wed, 18 Jan 2017) | 4 lines
vm_method.c: resolve refined method to undef
* vm_method.c (rb_undef): resolve the method entry which refines a
prepended method entry. [ruby-core:78944] [Bug #13096]
------------------------------------------------------------------------
r57361 | svn | 2017-01-18 12:38:53 +0900 (Wed, 18 Jan 2017) | 1 line
* 2017-01-18
------------------------------------------------------------------------
r57360 | nobu | 2017-01-18 12:38:52 +0900 (Wed, 18 Jan 2017) | 4 lines
class.c: non-keyword hash class
* class.c (rb_extract_keywords): keep the class of non-keyword
elements hash as the original. [ruby-core:77813] [Bug #12884]
------------------------------------------------------------------------
r57359 | nobu | 2017-01-17 21:54:35 +0900 (Tue, 17 Jan 2017) | 4 lines
uri/generic.rb: fix exception on non-IP format
* lib/uri/generic.rb (URI::Generic#find_proxy): match IP address
no_proxy against resolved self IP address. [Fix GH-1513]
------------------------------------------------------------------------
r57358 | kazu | 2017-01-17 21:47:38 +0900 (Tue, 17 Jan 2017) | 1 line
lib/pstore.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57355 | normal | 2017-01-17 12:31:57 +0900 (Tue, 17 Jan 2017) | 4 lines
rinda/ring.rb (make_socket): do not keep socket on failures
This prevents leaked FD warnings on test/rinda/test_rinda.rb
when testing on a machine without multicast support.
------------------------------------------------------------------------
r57354 | normal | 2017-01-17 06:42:05 +0900 (Tue, 17 Jan 2017) | 4 lines
basicsocket (rsock_bsock_send): do not truncate return value
send(2) and sendto(2) syscalls return `ssize_t', use the
proper type and macro for converting to a Numeric VALUE.
------------------------------------------------------------------------
r57353 | svn | 2017-01-17 06:08:13 +0900 (Tue, 17 Jan 2017) | 1 line
* 2017-01-17
------------------------------------------------------------------------
r57352 | normal | 2017-01-17 06:08:12 +0900 (Tue, 17 Jan 2017) | 9 lines
doc: improve documentation for Binding [ci skip]
* remove explicit return from code examples
* grammar fixes
* other small fixes
Patch by: Marcus Stollsteimer <sto.mar@web.de>
[ruby-core:79082] [Bug #13132]
------------------------------------------------------------------------
r57339 | kazu | 2017-01-16 21:37:42 +0900 (Mon, 16 Jan 2017) | 1 line
Fix a typo [ci skip]
------------------------------------------------------------------------
r57338 | nobu | 2017-01-16 11:56:28 +0900 (Mon, 16 Jan 2017) | 4 lines
test_rational.rb: messages
* test/ruby/test_rational.rb (test_parse): add messages to
assertions.
------------------------------------------------------------------------
r57337 | svn | 2017-01-16 11:43:56 +0900 (Mon, 16 Jan 2017) | 1 line
* 2017-01-16
------------------------------------------------------------------------
r57336 | nobu | 2017-01-16 11:43:55 +0900 (Mon, 16 Jan 2017) | 4 lines
file.c: refine message
* file.c (rb_get_path_check_convert): refine the error message
when the path name contains null byte.
------------------------------------------------------------------------
r57335 | a_matsuda | 2017-01-15 22:45:12 +0900 (Sun, 15 Jan 2017) | 7 lines
s/SaveStringValue/SafeStringValue/
Fix a typo in extension.rdoc.
Signed-off-by: Akira Matsuda <ronnie@dio.jp>
closes #1512
------------------------------------------------------------------------
r57334 | nobu | 2017-01-15 15:08:09 +0900 (Sun, 15 Jan 2017) | 4 lines
.gdbinit: refine rp [ci skip]
* .gdbinit (rp, output_string, rp): show the contents after NUL
char.
------------------------------------------------------------------------
r57333 | nobu | 2017-01-15 14:50:41 +0900 (Sun, 15 Jan 2017) | 5 lines
rbinstall.rb: mimic rubygems wrapper script
* tool/rbinstall.rb (app_script_text): move shell script part
after comments generated by RubyGems. '#'-lines are comments in
both of ruby and shell script.
------------------------------------------------------------------------
r57332 | kazu | 2017-01-15 11:56:04 +0900 (Sun, 15 Jan 2017) | 1 line
lib/profile.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57331 | nobu | 2017-01-15 09:45:10 +0900 (Sun, 15 Jan 2017) | 6 lines
rbinstall.rb: do nothing if bin script is same
* tool/rbinstall.rb (check_executable_overwrite): do nothing if
the existing file equals to the wrapper script to be generated.
* tool/rbinstall.rb (generate_bin_script): ditto.
------------------------------------------------------------------------
r57330 | svn | 2017-01-15 08:09:56 +0900 (Sun, 15 Jan 2017) | 1 line
* 2017-01-15
------------------------------------------------------------------------
r57329 | normal | 2017-01-15 08:09:55 +0900 (Sun, 15 Jan 2017) | 28 lines
mention behavior of Array#join for nested arrays [ci skip]
The current documentation for Array#join does not mention the
special treatment of nested arrays.
It says:
> Returns a string created by converting each element of the
> array to a string, separated by the given separator.
Expected behavior according to the docs would be:
[ "a", [1, 2, [:x, :y]], "b" ].join("-") #=> "a-[1, 2, [:x, :y]]-b"
# because of:
[1, 2, [:x, :y]].to_s #=> "[1, 2, [:x, :y]]"
Actual behavior:
[ "a", [1, 2, [:x, :y]], "b" ].join("-") #=> "a-1-2-x-y-b"
because join is applied recursively for nested arrays.
The patch clarifies this behavior.
(Also: small markup and grammar fix.)
Patch by Marcus Stollsteimer <sto.mar@web.de>
[ruby-talk:437238] [ruby-core:79079] [Bug #13130]
------------------------------------------------------------------------
r57328 | nobu | 2017-01-14 18:38:56 +0900 (Sat, 14 Jan 2017) | 5 lines
revert r57323
StringIO.new makes the buffer IO.default_external, while
StringIO.new("".dup) makes source encoding which is defaulted to
UTF-8.
------------------------------------------------------------------------
r57327 | nobu | 2017-01-14 15:13:23 +0900 (Sat, 14 Jan 2017) | 3 lines
fix up r57322
* tool/rbinstall.rb: ruby_install_name is used too.
------------------------------------------------------------------------
r57326 | nobu | 2017-01-14 11:26:49 +0900 (Sat, 14 Jan 2017) | 4 lines
resolv.rb: byte buffer
* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder): treat the
data as a byte buffer.
------------------------------------------------------------------------
r57325 | nobu | 2017-01-14 11:26:48 +0900 (Sat, 14 Jan 2017) | 8 lines
Made #decode_rdata client to catch errors
* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder#get_rr):
re-raise an exception from decode_rdata as DecodeError, so it
can report them to the top in more informative way. It was not
reflecting on errors of data and thus breaking. Client code
expects `DecodeError` and knows how to handle broken messages.
[Fix GH-1511]
------------------------------------------------------------------------
r57324 | svn | 2017-01-14 11:06:23 +0900 (Sat, 14 Jan 2017) | 1 line
* 2017-01-14
------------------------------------------------------------------------
r57323 | nobu | 2017-01-14 11:06:22 +0900 (Sat, 14 Jan 2017) | 1 line
StringIO.new makes a RW buffer
------------------------------------------------------------------------
r57322 | nobu | 2017-01-13 23:15:00 +0900 (Fri, 13 Jan 2017) | 1 line
fix prolog in gem wrapper scripts
------------------------------------------------------------------------
r57321 | kazu | 2017-01-13 21:08:29 +0900 (Fri, 13 Jan 2017) | 1 line
lib/observer.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57320 | nobu | 2017-01-13 14:58:44 +0900 (Fri, 13 Jan 2017) | 4 lines
rbinstall.rb: LIBRUBY_RELATIVE
* tool/rbinstall.rb: see LIBRUBY_RELATIVE in CONFIG instead of
reading config.h.
------------------------------------------------------------------------
r57319 | nobu | 2017-01-13 14:49:43 +0900 (Fri, 13 Jan 2017) | 4 lines
insns.def: float comparison
* insns.def (opt_lt, opt_le, opt_gt, opt_ge): optimize flonum and
on-heap float comparison.
------------------------------------------------------------------------
r57318 | nobu | 2017-01-13 12:24:22 +0900 (Fri, 13 Jan 2017) | 4 lines
error.c: moved
* error.c (preface_dump, postscript_dump): CrashReporter directory
was used before Mac OS X 10.6.
------------------------------------------------------------------------
r57317 | nobu | 2017-01-13 11:57:45 +0900 (Fri, 13 Jan 2017) | 5 lines
error.c: moved
* error.c (preface_dump, postscript_dump): moved from
rb_vm_bugreport to place the last important message at the very
last after [NOTE].
------------------------------------------------------------------------
r57316 | svn | 2017-01-13 10:46:45 +0900 (Fri, 13 Jan 2017) | 1 line
* 2017-01-13
------------------------------------------------------------------------
r57315 | nobu | 2017-01-13 10:46:45 +0900 (Fri, 13 Jan 2017) | 4 lines
vm_dump.c: postscript_dump
* vm_dump.c (postscript_dump): mention crash report log twice
because important.
------------------------------------------------------------------------
r57314 | kazu | 2017-01-12 21:17:33 +0900 (Thu, 12 Jan 2017) | 1 line
lib/net/smtp.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57313 | nobu | 2017-01-12 16:41:35 +0900 (Thu, 12 Jan 2017) | 11 lines
immediate message mode of compile error
* compile.c (append_compile_error): set Qtrue for erred state with
showing the message immediately.
* iseq.c (prepare_iseq_build): make immediate message mode if main
or top level context, not to show the failed path twice in the
first line.
* iseq.c (cleanup_iseq_build): raise default message exception if
immediate message mode.
------------------------------------------------------------------------
r57312 | nobu | 2017-01-12 14:43:00 +0900 (Thu, 12 Jan 2017) | 4 lines
compile.c: invalid yield in main
* compile.c (iseq_compile_each): yield cannot be in the main
context as well as a top context.
------------------------------------------------------------------------
r57311 | shugo | 2017-01-12 11:19:17 +0900 (Thu, 12 Jan 2017) | 5 lines
lib/net/protocol.rb: preserve backtrace information
BufferedIO#rbuf_fill should preserve backtrace information when raising
EOFError. Otherwise, users get confused when EOFError is leaked out from
Net::SMTP etc. [ruby-core:78550] [Bug #13018]
------------------------------------------------------------------------
r57310 | normal | 2017-01-12 08:53:05 +0900 (Thu, 12 Jan 2017) | 5 lines
test/rinda/test_rinda: skip multicast tests for unsupported systems
This allows "test-all" to pass on systems without multicast
support. I leave CONFIG_IP_MULTICAST unset in my Linux kernel
.config, nowadays.
------------------------------------------------------------------------
r57309 | normal | 2017-01-12 08:46:05 +0900 (Thu, 12 Jan 2017) | 10 lines
test/fiddle/helper: remove special case for x86_64-linux
RUBY_PLATFORM is "x86_64-linux" on a 32-bit (x86) Ruby built and
running on a 64-bit Linux kernel. I also have a /lib64
directory nowadays because I just installed multi-arch support
in userspace. So, fall back to loading based in the size of a
packed "unsigned long" type instead of special-casing.
Tested with both x86 and x86_64 userspace on 64-bit Linux kernel,
as well as x86 with a 32-bit Linux kernel.
------------------------------------------------------------------------
r57308 | svn | 2017-01-12 07:38:51 +0900 (Thu, 12 Jan 2017) | 1 line
* 2017-01-12
------------------------------------------------------------------------
r57307 | normal | 2017-01-12 07:38:50 +0900 (Thu, 12 Jan 2017) | 10 lines
random.c (fill_random_bytes_syscall): use "__NR_" prefix on Linux
glibc still does not define the SYS_getrandom alias for
__NR_getrandom in the Linux kernel. However, installing
up-to-date Linux kernel headers (linux-libc-dev >= 3.17 package
on Debian) will get the __NR_getrandom syscall number defined
properly without relying on glibc.
This allows users with a modern kernel+headers to use the getrandom
syscall without waiting on glibc support.
------------------------------------------------------------------------
r57306 | kazu | 2017-01-11 23:48:51 +0900 (Wed, 11 Jan 2017) | 1 line
lib/net/protocol.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57305 | nobu | 2017-01-11 13:12:56 +0900 (Wed, 11 Jan 2017) | 5 lines
variable.c: fix the condition to cache
* variable.c (rb_const_set): fix the condition to cache the class
path and cache permanent or temporary path corresponding to the
outer klass. [ruby-core:79039] [Bug #13120]
------------------------------------------------------------------------
r57304 | nobu | 2017-01-11 11:31:02 +0900 (Wed, 11 Jan 2017) | 4 lines
string.c: replacement and block
* string.c (rb_enc_str_scrub): only one of replacement and block
is allowed. [ruby-core:79038] [Bug #13119]
------------------------------------------------------------------------
r57303 | nobu | 2017-01-11 11:18:45 +0900 (Wed, 11 Jan 2017) | 4 lines
string.c: yield invalid part
* string.c (rb_enc_str_scrub): yield the invalid part only with
ASCII-incompatible. [ruby-core:79039] [Bug #13120]
------------------------------------------------------------------------
r57302 | nobu | 2017-01-11 10:03:37 +0900 (Wed, 11 Jan 2017) | 4 lines
string.c: block for scrub with ASCII-incompatible
* string.c (rb_enc_str_scrub): honor the given block with
ASCII-incompatible encoding. [ruby-core:79039] [Bug #13120]
------------------------------------------------------------------------
r57301 | svn | 2017-01-11 00:28:12 +0900 (Wed, 11 Jan 2017) | 1 line
* 2017-01-11
------------------------------------------------------------------------
r57300 | nobu | 2017-01-11 00:28:11 +0900 (Wed, 11 Jan 2017) | 4 lines
compile.c: check compile
* compile.c (iseq_compile_each): check if sub nodes succeeded.
[ruby-core:76531] [Bug #12613]
------------------------------------------------------------------------
r57299 | nobu | 2017-01-10 22:41:18 +0900 (Tue, 10 Jan 2017) | 4 lines
rational.c: short circuit optimization
* rational.c (nurat_reduce): short circuit when arguments are ONE,
nothing is needed.
------------------------------------------------------------------------
r57298 | nobu | 2017-01-10 22:37:34 +0900 (Tue, 10 Jan 2017) | 3 lines
rational.c: f_idiv
* rational.c (f_idiv): call rb_int_idiv directly if possible.
------------------------------------------------------------------------
r57297 | kazu | 2017-01-10 21:32:56 +0900 (Tue, 10 Jan 2017) | 1 line
lib/net/pop.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57296 | nobu | 2017-01-10 21:18:21 +0900 (Tue, 10 Jan 2017) | 4 lines
numeric.c: short circuit optimization
* numeric.c (fix_mul): short circuit when multiplication of Bignum
and 0 or 1 not to make a Bignum unnecessarily.
------------------------------------------------------------------------
r57295 | svn | 2017-01-10 19:57:26 +0900 (Tue, 10 Jan 2017) | 1 line
* 2017-01-10
------------------------------------------------------------------------
r57294 | nobu | 2017-01-10 19:57:26 +0900 (Tue, 10 Jan 2017) | 4 lines
thread.c: fix todo
* thread.c (rb_threadptr_pending_interrupt_check_mask): traverse
the super class chain instead of making ancestors array.
------------------------------------------------------------------------
r57293 | nobu | 2017-01-09 11:55:39 +0900 (Mon, 09 Jan 2017) | 5 lines
vm_insnhelper.c: block argument at tailcall
* vm_insnhelper.c (vm_call_iseq_setup_tailcall): check interrupts
after set up the new frame, not the passed block to be clobbered
by invoked finalizers and so on. [ruby-core:78981] [Bug #13107]
------------------------------------------------------------------------
r57292 | svn | 2017-01-09 11:45:29 +0900 (Mon, 09 Jan 2017) | 1 line
* 2017-01-09
------------------------------------------------------------------------
r57291 | nobu | 2017-01-09 11:45:28 +0900 (Mon, 09 Jan 2017) | 4 lines
slex.rb: japanese comment [ci skip]
* lib/irb/slex.rb (postproc): translated a japanese comment in
ISO-2022-JP. [ruby-core:79017] [Misc #13117]
------------------------------------------------------------------------
r57290 | kazu | 2017-01-08 13:17:08 +0900 (Sun, 08 Jan 2017) | 1 line
lib/getoptlong.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57289 | nobu | 2017-01-08 13:04:29 +0900 (Sun, 08 Jan 2017) | 4 lines
test_io_console.rb: fix of old CentOS5
* test/io/console/test_io_console.rb (test_winsize): on old CentOS5
window size seems unable to be set across a pty.
------------------------------------------------------------------------
r57288 | nobu | 2017-01-08 12:51:35 +0900 (Sun, 08 Jan 2017) | 4 lines
driver.rb: measure_target option [ci skip]
* benchmark/driver.rb (BenchmarkDriver.load): restore
measure_target option from the loaded results.
------------------------------------------------------------------------
r57287 | nobu | 2017-01-08 12:50:32 +0900 (Sun, 08 Jan 2017) | 4 lines
driver.rb: out output file when loading [ci skip]
* benchmark/driver.rb: default output file is not used when
loading rawdata.
------------------------------------------------------------------------
r57286 | nobu | 2017-01-08 12:46:17 +0900 (Sun, 08 Jan 2017) | 4 lines
driver.rb: extract loop times [ci skip]
* benchmark/driver.rb (BenchmarkDriver.load): extract loop times
from the loaded results to adjust the results.
------------------------------------------------------------------------
r57285 | nobu | 2017-01-08 12:45:34 +0900 (Sun, 08 Jan 2017) | 4 lines
driver.rb: adjust name width [ci skip]
* benchmark/driver.rb (show_results): count adjusted result marks
as the name width.
------------------------------------------------------------------------
r57284 | nobu | 2017-01-08 10:59:54 +0900 (Sun, 08 Jan 2017) | 5 lines
variable.c: resolve permanent name only
* variable.c (rb_const_set): resolve and cache class name
immediately only if the outer class/module has the name,
otherwise just set the ID. [ruby-core:79007] [Bug #13113]
------------------------------------------------------------------------
r57283 | nobu | 2017-01-08 10:46:10 +0900 (Sun, 08 Jan 2017) | 1 line
benchmarks for [Bug #13113] [ci skip]
------------------------------------------------------------------------
r57282 | nobu | 2017-01-08 08:02:29 +0900 (Sun, 08 Jan 2017) | 4 lines
console.c: unpaired size
* ext/io/console/console.c (console_set_winsize): reject unpaired
pixel size.
------------------------------------------------------------------------
r57281 | svn | 2017-01-08 07:52:03 +0900 (Sun, 08 Jan 2017) | 1 line
* 2017-01-08
------------------------------------------------------------------------
r57280 | nobu | 2017-01-08 07:52:03 +0900 (Sun, 08 Jan 2017) | 4 lines
console.c: OOB access
* ext/io/console/console.c (console_set_winsize): fix
out-of-bounds access. [ruby-core:79004] [Bug #13112]
------------------------------------------------------------------------
r57279 | nobu | 2017-01-07 20:54:10 +0900 (Sat, 07 Jan 2017) | 1 line
adjust indent [ci skip]
------------------------------------------------------------------------
r57278 | eregon | 2017-01-07 20:31:53 +0900 (Sat, 07 Jan 2017) | 8 lines
fix optimization for hash aset/aref with fstring
Patch by Eric Wong [ruby-core:78797].
I don't like the idea of making insns.def any bigger to support
a corner case, and "test_hash_aref_fstring_identity" shows
how contrived this is.
[ruby-core:78783] [Bug #12855]
------------------------------------------------------------------------
r57277 | nobu | 2017-01-07 17:31:03 +0900 (Sat, 07 Jan 2017) | 4 lines
bignum.c: unnecessary check
* bignum.c (rb_cstr_parse_inum): remove unnecessary check.
successive sign is rejected by conv_digit.
------------------------------------------------------------------------
r57276 | svn | 2017-01-07 11:14:08 +0900 (Sat, 07 Jan 2017) | 1 line
* 2017-01-07
------------------------------------------------------------------------
r57275 | kazu | 2017-01-07 11:14:07 +0900 (Sat, 07 Jan 2017) | 1 line
lib/fileutils.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57274 | nobu | 2017-01-06 12:11:45 +0900 (Fri, 06 Jan 2017) | 4 lines
prelude.rb: Binding#irb [ci skip]
* prelude.rb (Binding#irb): [EXPERIMENTAL] automatically require
irb and run. [ruby-core:78960] [Bug #13099]
------------------------------------------------------------------------
r57273 | nobu | 2017-01-06 12:02:38 +0900 (Fri, 06 Jan 2017) | 4 lines
test_io.rb: squiggly heredoc
* test/ruby/test_io.rb (test_threaded_flush): use squiggly here
document to strip leading spaces.
------------------------------------------------------------------------
r57272 | svn | 2017-01-06 11:05:36 +0900 (Fri, 06 Jan 2017) | 1 line
* 2017-01-06
------------------------------------------------------------------------
r57271 | kazu | 2017-01-06 11:05:35 +0900 (Fri, 06 Jan 2017) | 1 line
lib/delegate.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57270 | nobu | 2017-01-05 16:27:19 +0900 (Thu, 05 Jan 2017) | 3 lines
numeric.c: short circuit
* numeric.c (int_pow): short circuit when y is 0, always return 1.
------------------------------------------------------------------------
r57269 | nobu | 2017-01-05 16:27:18 +0900 (Thu, 05 Jan 2017) | 4 lines
bignum.c: fix rb_cstr_parse_inum endp
* bignum.c (rb_cstr_parse_inum): stores the address of the first
invalid character when str is too big or contains an underscore.
------------------------------------------------------------------------
r57268 | svn | 2017-01-05 10:00:02 +0900 (Thu, 05 Jan 2017) | 1 line
* 2017-01-05
------------------------------------------------------------------------
r57267 | kazu | 2017-01-05 10:00:01 +0900 (Thu, 05 Jan 2017) | 1 line
lib/debug.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57266 | nobu | 2017-01-04 20:06:16 +0900 (Wed, 04 Jan 2017) | 4 lines
win32/registry.rb: registry type names
* ext/win32/lib/win32/registry.rb (Win32::Registry#read): show
registry type names instead of numeric values.
------------------------------------------------------------------------
r57265 | nobu | 2017-01-04 17:21:14 +0900 (Wed, 04 Jan 2017) | 7 lines
win32/resolv.rb: ad hoc workaround
* ext/win32/lib/win32/resolv.rb (Win32::Resolv::SZ): an ad hoc
workaround for broken registry. SearchList and other registry
values must be REG_SZ, or Windows ignores anything in those
values otherwise. [ruby-dev:49924] [Bug #13081]
https://github.com/rubygems/rubygems/issues/1700
------------------------------------------------------------------------
r57264 | kazu | 2017-01-04 14:47:52 +0900 (Wed, 04 Jan 2017) | 1 line
lib/cmath.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57262 | nobu | 2017-01-04 09:30:45 +0900 (Wed, 04 Jan 2017) | 1 line
adjust indent [ci skip]
------------------------------------------------------------------------
r57261 | svn | 2017-01-04 07:42:11 +0900 (Wed, 04 Jan 2017) | 1 line
* 2017-01-04
------------------------------------------------------------------------
r57260 | tenderlove | 2017-01-04 07:42:10 +0900 (Wed, 04 Jan 2017) | 16 lines
Add `full` option to `ObjectSpace.dump_all`
The `full` option includes all slots (even `T_NONE`) in the JSON output.
This is to help with debugging heap fragmentation.
Here is an example usage:
```ruby
File.open('heap.json', 'w') do |f|
ObjectSpace.dump_all(output: f, full: true)
end
```
The `heap.json` file contains all slots, including empty slots.
[Feature #13001] [ruby-core:78468]
------------------------------------------------------------------------
r57259 | nobu | 2017-01-03 19:49:12 +0900 (Tue, 03 Jan 2017) | 4 lines
compile.c: fallback nil
* compile.c (iseq_compile_each): push fallback nil only when
defined guard is added.
------------------------------------------------------------------------
r57258 | nobu | 2017-01-03 18:48:43 +0900 (Tue, 03 Jan 2017) | 4 lines
compile.c: omit unnecessary defined guard
* compile.c (defined_expr): omit unnecessary defined guard when
method call has no receiver and no arguments.
------------------------------------------------------------------------
r57257 | nobu | 2017-01-03 18:47:16 +0900 (Tue, 03 Jan 2017) | 4 lines
forwardable.rb: fix branches
* lib/forwardable.rb (instance_delegate, single_delegate): fix
inverted branches.
------------------------------------------------------------------------
r57256 | nobu | 2017-01-03 18:35:26 +0900 (Tue, 03 Jan 2017) | 5 lines
forwardable.rb: use defined?
* lib/forwardable.rb (_delegator_method): use defined? operator
instead of binding and calling unbound Kernel#respond_to?. a
remedy for an performance bottleneck.
------------------------------------------------------------------------
r57255 | nobu | 2017-01-03 17:40:51 +0900 (Tue, 03 Jan 2017) | 5 lines
forwardable.rb: use defined?
* lib/forwardable.rb (_delegator_method): use defined? operator
instead of binding and calling unbound Kernel#respond_to?. a
remedy for an performance bottleneck.
------------------------------------------------------------------------
r57254 | svn | 2017-01-03 11:00:02 +0900 (Tue, 03 Jan 2017) | 1 line
* 2017-01-03
------------------------------------------------------------------------
r57253 | kazu | 2017-01-03 11:00:01 +0900 (Tue, 03 Jan 2017) | 1 line
lib/benchmark.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57252 | kazu | 2017-01-02 21:20:09 +0900 (Mon, 02 Jan 2017) | 1 line
lib/English.rb: Specify frozen_string_literal: true.
------------------------------------------------------------------------
r57251 | duerst | 2017-01-02 10:40:12 +0900 (Mon, 02 Jan 2017) | 1 line
adjust spacing [ci skip]
------------------------------------------------------------------------
r57250 | nobu | 2017-01-02 09:22:46 +0900 (Mon, 02 Jan 2017) | 5 lines
object.c: rb_class_alloc
* object.c (rb_obj_alloc): add pathological check of klass for
extension libraries which do not check given arguments properly.
[ruby-core:78934] [Bug #13093]
------------------------------------------------------------------------
r57249 | nobu | 2017-01-02 09:03:28 +0900 (Mon, 02 Jan 2017) | 5 lines
object.c: rb_class_s_new
* object.c (rb_class_new_instance): add pathological check of
klass for extension libraries which do not check given arguments
properly. [ruby-core:78934] [Bug #13093]
------------------------------------------------------------------------
r57248 | nobu | 2017-01-02 07:20:38 +0900 (Mon, 02 Jan 2017) | 4 lines
dir.c: getattrlist on OSX 10.5
* dir.c (is_case_sensitive): use getattrlist() if fgetattrlist()
is unavailable, on OSX 10.5. [ruby-core:68829] [Bug #11054]
------------------------------------------------------------------------
r57247 | svn | 2017-01-02 01:42:44 +0900 (Mon, 02 Jan 2017) | 1 line
* 2017-01-02
------------------------------------------------------------------------
r57246 | naruse | 2017-01-02 01:42:43 +0900 (Mon, 02 Jan 2017) | 1 line
fix typo [Bug #13091]
------------------------------------------------------------------------
r57245 | nobu | 2017-01-01 18:17:10 +0900 (Sun, 01 Jan 2017) | 1 line
test for [Feature #11547]
------------------------------------------------------------------------
r57244 | nobu | 2017-01-01 18:07:56 +0900 (Sun, 01 Jan 2017) | 4 lines
variable.c: top-level constant look-up
* variable.c (rb_const_search): [EXPERIMENTAL] remove top-level
constant look-up. [Feature #11547]
------------------------------------------------------------------------
r57243 | nobu | 2017-01-01 17:22:02 +0900 (Sun, 01 Jan 2017) | 1 line
passed block should keep the lambda-ness
------------------------------------------------------------------------
r57242 | svn | 2017-01-01 07:44:32 +0900 (Sun, 01 Jan 2017) | 1 line
* 2017-01-01
------------------------------------------------------------------------
r57241 | hsbt | 2017-01-01 07:44:31 +0900 (Sun, 01 Jan 2017) | 1 line
Update submaintainer of default gems.
------------------------------------------------------------------------
r57240 | nobu | 2016-12-31 17:07:58 +0900 (Sat, 31 Dec 2016) | 6 lines
vm.c: fix return in lambda
* vm.c (invoke_block_from_c_splattable): pass lambda-ness.
* vm_eval.c (yield_under): invoke lambda proc properly.
[ruby-core:78917] [Bug #13090]
------------------------------------------------------------------------
r57239 | svn | 2016-12-31 09:41:15 +0900 (Sat, 31 Dec 2016) | 1 line
* 2016-12-31
------------------------------------------------------------------------
r57238 | svn | 2016-12-31 09:41:15 +0900 (Sat, 31 Dec 2016) | 1 line
* properties.
------------------------------------------------------------------------
r57237 | normal | 2016-12-31 09:41:14 +0900 (Sat, 31 Dec 2016) | 4 lines
add benchmark for IO.copy_stream IO#write case
I will attempt to reduce garbage in proposed fix
for https://bugs.ruby-lang.org/issues/13085
------------------------------------------------------------------------
r57236 | nobu | 2016-12-30 17:01:34 +0900 (Fri, 30 Dec 2016) | 5 lines
rational.c: memory leak in gcd
* rational.c (rb_gcd_gmp): fix memory leak. patched by KISHIMOTO,
Makoto <ksmakoto AT dd.iij4u.or.jp> in [ruby-dev:49934].
[Bug #13089]
------------------------------------------------------------------------
r57235 | svn | 2016-12-30 01:16:33 +0900 (Fri, 30 Dec 2016) | 1 line
* 2016-12-30
------------------------------------------------------------------------
r57234 | rhe | 2016-12-30 01:16:32 +0900 (Fri, 30 Dec 2016) | 9 lines
test/ruby/test_pack.rb: fix test case added by r57187
The test case for String#unpack added by r57187 is not properly testing
because the String will be filled after the block invocation.
[ruby-core:78841] [Bug #13075]
Thanks to nagachika for pointing this out:
http://d.hatena.ne.jp/nagachika/20161226/ruby_trunk_changes_57184_57194#r57187
------------------------------------------------------------------------
r57233 | nobu | 2016-12-29 19:32:48 +0900 (Thu, 29 Dec 2016) | 4 lines
rational.c: refactor to_r
* rational.c (read_num, read_rat_nos): refactor to curtail
creating Rational objects.
------------------------------------------------------------------------
r57232 | nobu | 2016-12-29 18:26:45 +0900 (Thu, 29 Dec 2016) | 4 lines
rational.c: fix for mathn
* rational.c (read_num, read_rat_nos): dispatch by the type of numerator, for
mathn. [ruby-core:78893] [Bug #13084]
------------------------------------------------------------------------
r57231 | svn | 2016-12-29 18:06:00 +0900 (Thu, 29 Dec 2016) | 1 line
* 2016-12-29
------------------------------------------------------------------------
r57230 | nobu | 2016-12-29 18:05:59 +0900 (Thu, 29 Dec 2016) | 4 lines
rational.c: canonicalization
* rational.c (canonicalization): define always regardless CANON,
and remove unnecessary ifdefs.
------------------------------------------------------------------------
r57228 | svn | 2016-12-28 13:40:59 +0900 (Wed, 28 Dec 2016) | 1 line
* 2016-12-28
------------------------------------------------------------------------
r57227 | nobu | 2016-12-28 13:40:58 +0900 (Wed, 28 Dec 2016) | 4 lines
numeric.c: reduce fdiv
* numeric.c (rb_int_fdiv_double): reduce first for more precise
result. [ruby-core:78886] [Bug #13078]
------------------------------------------------------------------------
r57224 | nobu | 2016-12-27 20:43:34 +0900 (Tue, 27 Dec 2016) | 5 lines
io.c: fix race between read and close
* io.c (io_fillbuf): fix race between read and close and bail out
in the case the IO gets closed before the reading thread achieve
the lock. [ruby-core:78845] [Bug #13076]
------------------------------------------------------------------------
r57206 | usa | 2016-12-27 18:07:02 +0900 (Tue, 27 Dec 2016) | 5 lines
revert a part of r57199
* io.c (io_fillbuf): revert a part of r57199 because it broke IO#getch.
see also [Bug #13076]
------------------------------------------------------------------------
r57205 | normal | 2016-12-27 17:52:32 +0900 (Tue, 27 Dec 2016) | 4 lines
cont.c: change fiber stack size doc [ci skip]
It's many years since we had tiny 4KB fiber stacks :<
point to the manpage instead for current, larger sizes.
------------------------------------------------------------------------
r57204 | nobu | 2016-12-27 16:39:29 +0900 (Tue, 27 Dec 2016) | 1 line
io.c: use io_close to close ARGF
------------------------------------------------------------------------
r57203 | nobu | 2016-12-27 16:18:27 +0900 (Tue, 27 Dec 2016) | 4 lines
io.c: ARGF fd leak
* io.c (argf_next_argv): fix leak of fd after breaking in #each
method.
------------------------------------------------------------------------
r57202 | nobu | 2016-12-27 16:10:11 +0900 (Tue, 27 Dec 2016) | 5 lines
thread.c: fix race between read and close
* thread.c (rb_thread_fd_close): wait until all threads using the
fd finish the operation, not to free the buffer in use.
[ruby-core:78845] [Bug #13076]
------------------------------------------------------------------------
r57201 | svn | 2016-12-27 10:40:40 +0900 (Tue, 27 Dec 2016) | 1 line
* 2016-12-27
------------------------------------------------------------------------
r57200 | hsbt | 2016-12-27 10:40:39 +0900 (Tue, 27 Dec 2016) | 1 line
Ignored extracted gem files.
------------------------------------------------------------------------
r57199 | nobu | 2016-12-26 23:14:18 +0900 (Mon, 26 Dec 2016) | 5 lines
io.c: fix race between read and close
* io.c (io_fillbuf): fix race between read and close, in the case
the IO gets closed before the reading thread achieve the lock.
[ruby-core:78845] [Bug #13076]
------------------------------------------------------------------------
r57198 | nobu | 2016-12-26 22:31:03 +0900 (Mon, 26 Dec 2016) | 4 lines
parse.y: preserve cmdarg stack
* parse.y (do_body): preserve cmdarg stack around do/end block.
[ruby-core:78837] [Bug #13073]
------------------------------------------------------------------------
r57197 | svn | 2016-12-26 21:00:03 +0900 (Mon, 26 Dec 2016) | 1 line
* properties.
------------------------------------------------------------------------
r57196 | kazu | 2016-12-26 21:00:02 +0900 (Mon, 26 Dec 2016) | 1 line
Add NEWS for Ruby 2.5.0
------------------------------------------------------------------------
r57195 | kazu | 2016-12-26 21:00:01 +0900 (Mon, 26 Dec 2016) | 1 line
Move from NEWS to doc/NEWS-2.4.0
------------------------------------------------------------------------
r57194 | nobu | 2016-12-26 19:00:36 +0900 (Mon, 26 Dec 2016) | 4 lines
vm_eval.c: Symbol#to_proc and instance_exec
* vm_eval.c (yield_under): should evaluate the proc on the first
argument. [ruby-core:78839] [Bug #13074]
------------------------------------------------------------------------
r57193 | nobu | 2016-12-26 19:00:34 +0900 (Mon, 26 Dec 2016) | 1 line
test/ruby/test_symbol.rb: use begin;end; hack
------------------------------------------------------------------------
r57192 | nobu | 2016-12-26 18:32:07 +0900 (Mon, 26 Dec 2016) | 1 line
[Bug #12705]
------------------------------------------------------------------------
r57191 | nobu | 2016-12-26 18:28:48 +0900 (Mon, 26 Dec 2016) | 3 lines
get rid of sprintf
* missing/strerror.c (strerror): use snprintf instead of sprintf.
------------------------------------------------------------------------
r57190 | nobu | 2016-12-26 18:28:47 +0900 (Mon, 26 Dec 2016) | 4 lines
get rid of strcat
* regerror.c (onig_vsnprintf_with_pattern): use memcpy with the
known length instead of strcat.
------------------------------------------------------------------------
r57189 | nobu | 2016-12-26 18:28:46 +0900 (Mon, 26 Dec 2016) | 10 lines
get rid of strcpy
* addr2line.c (follow_debuglink): insert global_debug_dir by using
memmove instead of copying to temporary buffer.
* dln.c (dln_load): use memcpy with the known length instead of
strcpy.
* gc.c (rb_gc_unprotect_logging): use strdup instead of malloc and
strcpy.
------------------------------------------------------------------------
r57188 | nobu | 2016-12-26 17:01:37 +0900 (Mon, 26 Dec 2016) | 5 lines
Makefile.sub: refine configuration check
* win32/Makefile.sub (config.status): check configured target by
reading from config.status, and remove version dependent values
from config.h.
------------------------------------------------------------------------
r57187 | rhe | 2016-12-26 15:32:00 +0900 (Mon, 26 Dec 2016) | 7 lines
pack.c: avoid returning uninitialized String
Fix unpacking with 'b', 'B', 'h' and 'H' format. Do not return an
uninitialized String to Ruby before filling the content bytes.
Fixes r11175 ("pack.c (pack_unpack): execute block if given with
unpacked value instead of creating an array", 2006-10-15).
[ruby-core:78841] [Bug #13075]
------------------------------------------------------------------------
r57186 | nobu | 2016-12-26 14:07:54 +0900 (Mon, 26 Dec 2016) | 4 lines
Makefile.sub: fix dependency of RUBYDEF
* win32/Makefile.sub (RUBYDEF): fix dependency, win32/mkexports.rb
requires rbconfig.rb.
------------------------------------------------------------------------
r57185 | nobu | 2016-12-26 08:56:55 +0900 (Mon, 26 Dec 2016) | 4 lines
string.c: CRLF in paragraph mode
* string.c (rb_str_enumerate_lines): allow CRLF to separate
paragraphs.
------------------------------------------------------------------------
r57184 | nobu | 2016-12-26 08:50:09 +0900 (Mon, 26 Dec 2016) | 5 lines
string.c: consistent paragraph mode with IO
* string.c (rb_str_enumerate_lines): in paragraph mode, do not
include newlines which separate paragraphs, so that it will be
consistent with IO#each_line.
------------------------------------------------------------------------
r57183 | matz | 2016-12-26 01:53:00 +0900 (Mon, 26 Dec 2016) | 2 lines
include/ruby/version.h: Update API version.
------------------------------------------------------------------------
r57182 | svn | 2016-12-26 01:35:52 +0900 (Mon, 26 Dec 2016) | 1 line
* 2016-12-26
------------------------------------------------------------------------
r57181 | matz | 2016-12-26 01:35:51 +0900 (Mon, 26 Dec 2016) | 2 lines
version.h (RUBY_VERSION): 2.5.0 development has started.
------------------------------------------------------------------------