Граф коммитов

58512 Коммитов

Автор SHA1 Сообщение Дата
Nobuyoshi Nakada 8390057d1e
Benchmark for [Feature #16155] 2019-10-22 22:49:48 +09:00
NARUSE, Yui 99ca5705a2 tool/release.sh uses ruby-actions' result
https://github.com/ruby/actions
2019-10-22 22:15:52 +09:00
NARUSE, Yui d736511e42 Move format-release to tool and fix bugs 2019-10-22 21:44:19 +09:00
Nobuyoshi Nakada 04075305d3
Ignore timestamp file for the expected failure [ci skip] 2019-10-22 21:33:24 +09:00
NARUSE, Yui aec0a293a4 Add a tool to generate a patch for www from log
Receives an output of `tool/make-snapshot` and genarete
* Markdown format for release note
* a patch for branches.yml, downloads.yml, and releases.yml of w.r-l.o
2019-10-22 21:17:29 +09:00
Nobuyoshi Nakada ed3333f873
make-snapshot: Regexp#match raises on nil now 2019-10-22 21:05:52 +09:00
Yusuke Endoh 501b517dfb NEWS: add a URL about the performance improvement of CGI.escapeHTML 2019-10-22 20:06:07 +09:00
Yusuke Endoh 02aadf1032 NEWS: Fix the example of Lazy#eager 2019-10-22 19:46:44 +09:00
Yusuke Endoh fac4339a12 NEWS: add an example for Lazy#eager 2019-10-22 19:39:42 +09:00
Yusuke Endoh 0e735b218f NEWS: Make Net::FTP#features and #option more informative 2019-10-22 19:32:04 +09:00
MSP-Greg 22845176d7
test/ruby/test_exception typo fix 2019-10-22 14:06:45 +09:00
MSP-Greg 5e0d33a856
appveyor.yml - remove timezone & tzinfo gems from MSVC builds
Not compatible with concurrent-ruby dependency
2019-10-22 14:06:39 +09:00
Alan Wu 97a03a0356 Add a cron job to keep CPDEBUG working 2019-10-22 12:21:02 +09:00
Alan Wu 9c553139ae Fix build for CPDEBUG=1
The declarations went out-of-sync in dcfb7f6.
2019-10-22 12:21:02 +09:00
Jeremy Evans fa8ac91e95
Fix Fiber#transfer
Fiber#transfer previously made it impossible to resume the fiber
if it was transferred to (no resuming the target of Fiber#transfer).
However, the documentation specifies that you cannot resume a fiber
that has transferred to another fiber (no resuming the source of
Fiber#transfer), unless control is transferred back.

Fix the code by setting the transferred flag on the current/source
fiber, and unsetting the transferred flag on the target fiber.

Fixes [Bug #9664]
Fixes [Bug #12555]
2019-10-21 16:54:58 -07:00
Jeremy Evans f37cc1c719 Fallback to TCP in resolv if UDP bind raises EACCES
Original patch from Andy Grimm.

Fixes [Bug #10747]
2019-10-21 12:48:38 -07:00
Nobuyoshi Nakada 62d4382877 Arguments forwarding [Feature #16253] 2019-10-22 02:35:43 +09:00
Nobuyoshi Nakada 35f90bf1b9
NEWS: fixed method names [ci skip] 2019-10-22 01:27:49 +09:00
Nobuyoshi Nakada 6067c0a220
NEWS: fixed mark-up [ci skip] 2019-10-22 01:27:26 +09:00
git 349ad6178c * 2019-10-22 [ci skip] 2019-10-22 01:07:35 +09:00
Koichi Sasada ee302f54a0 add an NEWS entry about [Feature #15575] 2019-10-22 01:06:53 +09:00
Koichi Sasada 9bbc28340e add a NEWS entry about Proc#to_s change 2019-10-22 01:04:47 +09:00
Koichi Sasada 0f0d05a3b1 fix NEWS entry about unbundled gems 2019-10-22 01:04:47 +09:00
Nobuyoshi Nakada ec2da08e2b
NEWS: fixed indents [ci skip] 2019-10-21 21:32:40 +09:00
Yusuke Endoh 228ebdbf2f NEWS: fix a typo 2019-10-21 21:26:47 +09:00
Yusuke Endoh f364564e66 bignum.c (estimate_initial_sqrt): prevent integer overflow
`Integer.sqrt(0xffff_ffff_ffff_ffff ** 2)` caused assertion failure
because of integer overflow.  [ruby-core:95453] [Bug #16269]
2019-10-21 21:24:21 +09:00
Yusuke Endoh c8f97d1620 NEWS: structured the "Language changes" section
There were too many items in the section in somewhat random order.
This change creates the following five subsections:

* Pattern matching
* The spec of keyword arguments is changed towards 3.0
* Numbered parameter
* proc/lambda without no block is deprecated
* Other miscellaneous changes

Also it adds a handful of example code.
2019-10-21 18:46:54 +09:00
Nobuyoshi Nakada 5d63a9da40
[Bug #16121] adjusted indent [ci skip] 2019-10-21 17:45:27 +09:00
Dylan Thacker-Smith b970259044 Stop making a redundant hash copy in Hash#dup (#2489)
* Stop making a redundant hash copy in Hash#dup

It was making a copy of the hash without rehashing, then created an
extra copy of the hash to do the rehashing.  Since rehashing creates
a new copy already, this change just uses that rehashing to make
the copy.

[Bug #16121]

* Remove redundant Check_Type after to_hash

* Fix freeing and clearing destination hash in Hash#initialize_copy

The code was assuming the state of the destination hash based on the
source hash for clearing any existing table on it. If these don't match,
then that can cause the old table to be leaked. This can be seen by
compiling hash.c with `#define HASH_DEBUG 1` and running the following
script, which will crash from a debug assertion.

```ruby
h = 9.times.map { |i| [i, i] }.to_h
h.send(:initialize_copy, {})
```

* Remove dead code paths in rb_hash_initialize_copy

Given that `RHASH_ST_TABLE_P(h)` is defined as `(!RHASH_AR_TABLE_P(h))`
it shouldn't be possible for a hash to be neither of these, so there
is no need for the removed `else if` blocks.

* Share implementation between Hash#replace and Hash#initialize_copy

This also fixes key rehashing for small hashes backed by an array
table for Hash#replace.  This used to be done consistently in ruby
2.5.x, but stopped being done for small arrays in ruby 2.6.x.

This also bring optimization improvements that were done for
Hash#initialize_copy to Hash#replace.

* Add the Hash#dup benchmark
2019-10-21 17:29:21 +09:00
Koichi Sasada 8b8b9c1a1f add a NEWS entry about [Feature #15602] 2019-10-21 16:48:37 +09:00
Nobuyoshi Nakada 431132f037 Pass the called keyword arguments if `keyword_init` 2019-10-21 15:30:00 +09:00
git 215e4b8721 * expand tabs. [ci skip]
Tabs were expanded because previously the file did not have any tab indentation.
Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook.
2019-10-21 11:50:44 +09:00
Nobuyoshi Nakada 44da5a1c87
Look up event ID offsets by token as index 2019-10-21 11:45:54 +09:00
K.Takata 375124be51 st: Do error check only on non-Ruby 2019-10-21 11:14:36 +09:00
K.Takata e70e81b54e st: Add NULL checking
These are found by Coverity.
2019-10-21 11:14:36 +09:00
Nobuyoshi Nakada 263ee6639d
Make suggestions order stable [Bug #16263]
As the result order of `DidYouMean::SpellChecker#correct` is
undefined, keep the order of the original candidates.
2019-10-21 09:54:11 +09:00
MSP-Greg 71ffe40a44 test/optparse/test_did_you_mean.rb - fix suggestion order 2019-10-21 09:53:56 +09:00
Nobuyoshi Nakada 27261007eb
DidYouMean can be an empty stub module [Bug #16263] 2019-10-21 09:28:28 +09:00
git 1d29c9bd46 * 2019-10-21 [ci skip] 2019-10-21 09:11:47 +09:00
MSP-Greg 9223466752 test_exception - fix with & w/o did_you_mean
See Ruby issue 16263
2019-10-21 09:11:27 +09:00
Nobuyoshi Nakada ca7de0334d
Also BDOT2 and BDOT3 are operators 2019-10-20 20:45:56 +09:00
Koichi Sasada 9e07dfd253 show BASERUBY version at configure. 2019-10-20 16:16:54 +09:00
Koichi Sasada a236eaa762 Native MonitorMixin::ConditionVariable#wait
MonitorMixin::ConditionVariable#wait can be interrupted just after
Monitor#exit_for_cond. So implementation in C.
2019-10-20 15:45:30 +09:00
Koichi Sasada a0a3c70181 delegate synchronize method
Delegate MonitorMixin#synchronize body to Monitor#synchronize.
It makes guarantee interrupt safe (because Monitor#synchronize is
written in C). I thought Ruby implementation is also safe, but I
got stuck failure <http://ci.rvm.jp/results/trunk_test@P895/2327639>
so that I introduce this fix to guarantee interrupt safe.
2019-10-20 14:21:04 +09:00
Koichi Sasada caac5f777a
make monitor.so for performance. (#2576)
Recent monitor.rb has performance problem because of interrupt
handlers. 'Monitor#synchronize' is frequently used primitive
so the performance of this method is important.

This patch rewrite 'monitor.rb' with 'monitor.so' (C-extension)
and make it faster. See [Feature #16255] for details.

Monitor class objects are normal object which include MonitorMixin.
This patch introduce a Monitor class which is implemented on C
and MonitorMixin uses Monitor object as re-entrant (recursive)
Mutex. This technique improve performance because we don't need
to care atomicity and we don't need accesses to instance variables
any more on Monitor class.
2019-10-20 04:52:20 +09:00
git 434966bffd * 2019-10-20 [ci skip] 2019-10-20 02:58:58 +09:00
Nobuyoshi Nakada f2ed8466d3
Fixed a typo [ci skip] 2019-10-20 02:58:32 +09:00
Nobuyoshi Nakada 1d435bd51a
Extend Ripper DSL to set to pseudo variables other than `$$` 2019-10-19 17:19:27 +09:00
MSP-Greg 5c81e19b19 appveyor.yml - MinGW - update for MSYS2 / Mingw-w64 (#2573)
MSYS source code comes from both gcc.gnu.org & Mingw-w64.  Updates to the Mingw-w64 source broke the MinGW build step.

Fixes the issue until Mingw-w64 updates their source, then it should be reverted, see comments in code.
2019-10-18 11:03:54 -07:00
git 7dcc24fd81 * 2019-10-19 [ci skip] 2019-10-19 00:51:37 +09:00