Project

General

Profile

Activity

From 08/11/2018 to 08/17/2018

08/17/2018

11:54 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
@normalperson I added the specs in r64409.
However I just saw that the spec failed once on Ubuntu:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-trunk/log/20180817T213003Z.fail.html.gz
Any idea?
Eregon (Benoit Daloze)
11:51 PM Revision 91bea9db (git): * 2018-08-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
11:51 PM Revision a2d2a55d (git): Guard spec failing on Solaris
* https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11x/ruby-trunk/log/20180817T182406Z.fail.html.gz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
04:27 PM Bug #14638: [win32] File.expand_path("~") treats a relative path with a drive letter as an absolute path
ruby_2_5 r64421 merged revision(s) 62952. nagachika (Tomoyuki Chikanaga)
04:27 PM Revision d60a7d2e (git): 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-...
nagachika (Tomoyuki Chikanaga)
04:20 PM Bug #14750: [IMAP] `send_string_data` uses `send_literal` method with incorrect number of arguments
ruby_2_5 r64420 merged revision(s) 63396. nagachika (Tomoyuki Chikanaga)
04:20 PM Revision 34783456 (git): 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]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64420 b2dd03c8-3...
nagachika (Tomoyuki Chikanaga)
03:48 PM Bug #14708: argument stack underflow (-1) (SyntaxError)
ruby_2_5 r64419 merged revision(s) 63255. nagachika (Tomoyuki Chikanaga)
03:48 PM Revision 428db824 (git): 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 #14...
nagachika (Tomoyuki Chikanaga)
03:34 PM Bug #14693: Segfault calling super+[] from redefined #backtrace
ruby_2_5 r64418 merged revision(s) 61567. nagachika (Tomoyuki Chikanaga)
03:33 PM Revision a42b5184 (git): merge revision(s) 61567: [Backport #14693]
fix uninitialized variable
Likewise this can easily be noticed if you read the warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nagachika (Tomoyuki Chikanaga)
03:20 PM Bug #14654: Resurvey performance of RDoc by frozen_string_literal: true
Already backported at r63048. nagachika (Tomoyuki Chikanaga)
02:52 PM Revision fb01ef38 (git): Add guard for Solaris in Socket#connect_nonblock spec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
02:45 PM Misc #14981: DevelopersMeeting20180913Japan
* [Feature #8661] Add option to print backstrace in reverse order(stack frames first & error last)
* The current backtrace order is really annoying, and I'm not still used; is there any chance to revert?
mame (Yusuke Endoh)
02:41 PM Feature #8661: Add option to print backtrace in reverse order (stack frames first and error last)
Over one year has passed since the backtrace order was reversed. But I'm not still used to the new order.
I agree with Samuel's points. In addition, the old order was more useful because it shows the last debug output and the except...
mame (Yusuke Endoh)
01:07 PM Revision abd8880d (git): Guard connect_nonblock spec on FreeBSD
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
01:07 PM Revision 28ed3c0f (git): Guard with a :pktinfo feature specs relying on PKTINFO
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
01:07 PM Revision a48339c2 (git): Re-add specs
* This reverts commit 325fd389018897bd156837639675517ef3b7dea5.
* Platform guards in the next commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
11:22 AM Revision a88e5ccc (git): Add a note how to run specs under older Ruby versions
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
11:22 AM Revision 1630728e (git): Fix typo in version guard
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
11:22 AM Revision f3b347e1 (git): Add version guards for Enumerator::ArithmeticSequence
* And keep specs for older versions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
10:16 AM Feature #15004 (Closed): Run ruby/spec in TravisCI on older versions of MRI to make sure the specs keep working with older supported versions
ruby/spec is a single codebase supporting the latest minor versions of all supported MRI versions.
So currently, that's 2.3.7, 2.4.4, 2.5.1 and trunk.
I want to make MRI developers aware that ruby/spec must keep working with older (s...
Eregon (Benoit Daloze)
10:14 AM Revision 5032f637 (git): spec/README.md: add a note about version guards
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
09:51 AM Revision 3993cd80 (git): Integrate new specs for ConditionVariable#wait to prevent regressions
* See [Bug #14999].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
09:00 AM Bug #14972: Net::HTTP inconsistently raises EOFError when peer closes the connection
What is the ideal behavior you think? Just below?
```
diff --git a/lib/net/http/response.rb b/lib/net/http/response.rb
index 66132985d9..7c744d02f4 100644
--- a/lib/net/http/response.rb
+++ b/lib/net/http/response.rb
@@ -290,7 +2...
naruse (Yui NARUSE)
08:07 AM Feature #15002 (Closed): [PATCH] thread.c (sleep_*): reduce the effect of spurious interrupts
```
Spurious interrupts from SIGCHLD cause Mutex#sleep (via
ConditionVariable#wait) to return early and breaks some use
cases. Since these are outside the programs's control with
MJIT, we will only consider pending interrupts (e.g. ...
normalperson (Eric Wong)
07:47 AM Revision 30ad3429 (git): NEWS: clarify that we still use FD_CLOEXEC [ci skip]
[Misc #14907]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
05:59 AM Revision 3bd2d01f (git): process.c: dead code when no SIGCHLD
* process.c (ruby_waitpid_all): nothing to do unless SIGCHLD is
available.
* signal.c (ruby_nocldwait): used only if SIGCHLD is available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
04:01 AM Revision 59bbe8a9 (git): [DOC] Add ticket number [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
04:00 AM Revision 6cd8896b (git): [DOC] Update NEWS about close_others [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
03:36 AM Revision 6f63671f (git): vm.c: add a simple rdoc for RubyVM
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e mame (Yusuke Endoh)
02:06 AM Revision 8b6297e5 (git): thread_pthread.c (rb_sigwait_fd_get): skip getpid check
This is not called in signal handlers, so there's no reason for
it. glibc 2.25+ no longer caches getpid(), so it will cost a
syscall for those users.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64403 b2dd03c8-39d4-4d8f-98ff-823fe...
Eric Wong
01:39 AM Revision 028cda35 (git): signal.c: no SIGCHLD, no sigchld_hit
* signal.c (sigchld_hit): if SIGCHLD is not available, this variable
never sets.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
01:37 AM Revision e01afc3c (git): ast.c (rb_ast_node_type): return frozen strings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
01:14 AM Revision 05be3e89 (git): passing non-stdio fds is not supported on Windows
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
12:33 AM Feature #14844: Future of RubyVM::AST?
bozhidar (Bozhidar Batsov) wrote:
> I'm really curious what's the purpose of this module and why wasn't in developed in collaboration with the maintainers of libraries like https://github.com/whitequark/parser and https://github.com/whi...
mame (Yusuke Endoh)

08/16/2018

11:57 PM Misc #14907 (Closed): [PATCH] io.c: do not close inherited FDs by default
Applied in changeset trunk|r64399.
----------
process.c: defaults to close_others false
Arbitrarily closing file descriptors on exec breaks use cases
where a Ruby process sets up a descriptor for non-Ruby children
to use. For example,...
normalperson (Eric Wong)
11:32 PM Misc #14907: [PATCH] io.c: do not close inherited FDs by default
eregontp@gmail.com wrote:
> @normalperson FWIW, I'm not fond of the jobserver-related logic in spec/ruby/optional/capi/spec_helper.rb, it's too complex and seems to gain nothing (but does prevent a make warning IIRC).

It's fine, I g...
normalperson (Eric Wong)
12:20 PM Misc #14907: [PATCH] io.c: do not close inherited FDs by default
@normalperson FWIW, I'm not fond of the jobserver-related logic in spec/ruby/optional/capi/spec_helper.rb, it's too complex and seems to gain nothing (but does prevent a make warning IIRC).
If there is an easy way to ignore the warning ...
Eregon (Benoit Daloze)
11:57 PM Bug #14999 (Closed): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
Applied in changeset commit:ruby-git|2cf3bd5bb2a7c4724e528577d37a883fe80a1122.
----------
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...
Anonymous
08:12 PM Bug #14999: ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
eregontp@gmail.com wrote:
> Bug #14999: ConditionVariable doesn't require the Mutex if Thread#kill-ed
> https://bugs.ruby-lang.org/issues/14999

r64398

Thank you; it was actually a regression introduced while fixing
[Bug #14841]...
normalperson (Eric Wong)
12:59 PM Bug #14999 (Closed): ConditionVariable doesn't reacquire the Mutex if Thread#kill-ed
These specs reproduce the issue:
https://raw.githubusercontent.com/oracle/truffleruby/master/spec/ruby/library/conditionvariable/wait_spec.rb
I can commit them, but of course they will fail.
Feel free to just copy it to MRI's spec/r...
Eregon (Benoit Daloze)
11:56 PM Revision b53fadfd (git): process.c: defaults to close_others false
Arbitrarily closing file descriptors on exec breaks use cases
where a Ruby process sets up a descriptor for non-Ruby children
to use. For example, the "rake foo" target may spawn any number
of subprocesses (Ruby or not) which depends on...
Eric Wong
11:14 PM Bug #15001 (Closed): Peek causes cursor to advance when enumerating the lines of a file
When a call to peek is made on the enumerator for the lines of a file the cursor advances.
File:
~~~ text
1
2
3
~~~
Sample script:
~~~ ruby
e = File.open("f").each_line
e.peek
p e.each.to_a
~~~
The output is => ["2...
fletchto99 (Matthew Langlois)
09:02 PM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
Propose new syntax for https://bugs.ruby-lang.org/issues/14982#note-5 (The core idea is not changing)
``` ruby
# add 'isolate' keyword to describe an isolated binding scope
isolate
# .....
# can't access unimported names from ...
jjyr (Jinyang Jiang)
07:59 PM Revision 2cf3bd5b (git): 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-afte...
Eric Wong
04:11 PM Revision 4bf11e21 (git): Makefile.sub: remove -DRUBY_EXPORT overridden by -U option
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
04:11 PM Revision 75321976 (git): * 2018-08-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
04:11 PM Revision 9c827bd0 (git): appveyor.yml: run on all branches
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
01:21 PM Feature #15000 (Closed): Prevent to initialize MonitorMixin twice
Some libraries or tests unfortunately do something like:
~~~ ruby
require 'monitor'
class Foo
include MonitorMixin
def initialize(*args)
super()
mon_initialize
end
end
~~~
This unfortunately ends up initializ...
Eregon (Benoit Daloze)
12:51 PM Bug #14998 (Closed): Race conditions in MonitorMixin when interrupted
From https://bugs.ruby-lang.org/issues/14859#note-9
The code of MonitorMixin#wait is:
~~~ ruby
def wait(timeout = nil)
@monitor.__send__(:mon_check_owner)
count = @monitor.__send__(:mon_exit_for_cond)
begi...
Eregon (Benoit Daloze)
12:14 PM Revision 1f0f2ae2 (git): Remove outdated comment [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
10:50 AM Revision 250bf32f (git): skip examples failing on solaris
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
09:46 AM Bug #14992 (Closed): mkmf sets DYLD_LIBRARY_PATH on macOS which breaks pkg-config
Applied in changeset trunk|r64392.
----------
configure.ac: LIBPATHENV on macOS
* configure.ac (LIBPATHENV): use DYLD_FALLBACK_LIBRARY_PATH instead of
DYLD_LIBRARY_PATH on macOS, to honor runtime paths embedded in the
binaries. [r...
nobu (Nobuyoshi Nakada)
09:46 AM Revision 1961c786 (git): configure.ac: LIBPATHENV on macOS
* configure.ac (LIBPATHENV): use DYLD_FALLBACK_LIBRARY_PATH instead of
DYLD_LIBRARY_PATH on macOS, to honor runtime paths embedded in the
binaries. [ruby-core:88487] [Bug #14992]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64...
nobu (Nobuyoshi Nakada)
09:27 AM Revision ae59620b (git): Makefile.in: dependencies to config.status
* Makefile.in (ruby.pc, ruby-runner.h): fix missing dependencies.
config.status is needed to be up to date, to run it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
09:16 AM Revision e3f6429e (git): thread.c (consume_communication_pipe): disarm UBF_TIMER before consume
Same reasoning as the disarm in rb_sigwait_fd_get, the current
thread is already processing signals, so we do not need
UBF_TIMER to continually kick the process, anymore.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64390 b2dd03c8-...
Eric Wong
08:56 AM Bug #14997 (Closed): Socket connect timeout exceeds the timeout value for
Given a case, where a domain is being resolved to multiple IPs (4 in the following example):
```
dig debug-xyz.elb.us-east-1.amazonaws.com a
; <<>> DiG 9.10.3-P4-Ubuntu <<>> debug-xyz.elb.us-east-1.amazonaws.com a
;; global optio...
maciej.mensfeld (Maciej Mensfeld)
08:26 AM Revision 3872ea81 (git): thread_pthread.c: reduce ubf_timer arming for non-signal wakeups
We do not need to rely on SIGVTALRM for non-sighandler wakeups.
This will reduce spurious wakeups in cases where sigwait_fd
is not grabbed again, soon.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64389 b2dd03c8-39d4-4d8f-98ff-823f...
Eric Wong
08:26 AM Revision 960ef493 (git): thread_pthread.c: check signals from gvl.timer
For (rare) blocking functions which are not affected by signals,
we need to call the appropriate unblocking function via
`threadptr_trap_interrupt'
While we're at it, handling waitpid/SIGCHLD from gvl.timer isn't
harmful, here.
git-svn...
Eric Wong
03:37 AM Revision 0783fd93 (git): test/net/imap/test_imap.rb (test_exception_during_idle): kill infinite looper
It is possible for Mutex#sleep (via ConditionVariable#wait)
to prematurely wake up under MJIT (because Mutex#sleep can't
handle spurious wakeups). This affects @idle_done_cond in
Net::IMAP#idle and means the response handler may never
s...
Eric Wong
12:58 AM Feature #14994 (Closed): Enumerator::Lazy#uniq & Enumerator::Lazy#grep_v should use proc chaining
Applied in changeset trunk|r64385.
----------
Adding Enumerator::Lazy#uniq and Enumerator::Lazy#grep_v to proc chaining
[Feature #14994]
[Fix GH-1930]
From: Anmol Chopra <chopraanmol1@gmail.com>
nobu (Nobuyoshi Nakada)
12:58 AM Revision 6fc7f103 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
12:58 AM Revision 7d6a26f2 (git): Adding Enumerator::Lazy#uniq and Enumerator::Lazy#grep_v to proc chaining
[Feature #14994]
[Fix GH-1930]
From: Anmol Chopra <chopraanmol1@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
12:13 AM Revision 2c195f64 (git): enumerator.c: id_lazy is no longer used since r38923
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
12:05 AM Revision bb8b44b0 (git): apply r64239 to macOS too
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)

08/15/2018

07:03 PM Misc #14907: [PATCH] io.c: do not close inherited FDs by default
I wrote:
> OK, I'll commit 0001-process.c-close_others-defaults-to-false.patch

Nevermind, the version I uploaded here also introduces
compatibility problems around make jobserver FD inheritance with
rubyspec. So setting FD_CLOEXE...
normalperson (Eric Wong)
06:56 PM Revision 490898a0 (git): * 2018-08-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
06:56 PM Revision 309042d8 (git): test/ripper/test_parser_events.rb (test_block_variables): bump RLIMIT_AS again
I still seem to need more memory for parallel tests with MJIT...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
02:24 PM Revision 3d3ff9f3 (git): gmtimew_noleapsecond uses tables for mon and mday.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e akr (Akira Tanaka)
12:53 PM Revision 50ad0995 (git): spec/ruby/optional/capi/ext/io_spec.c: guard unreachable code
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
11:01 AM Revision 9071cd63 (git): spec/ruby/optional/capi/ext/io_spec.c: guard unreachable code
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
07:32 AM Misc #14937: [PATCH] thread_pthread: lazy-spawn timer-thread only on contention
Eric Wong wrote:
> ko1@atdot.net wrote:
> > Let me clear your commits.
> > Maybe "Description" of this ticket is obsolete.
>
> I guess, I will add doc or comments to thread_pthread.c

I think I addressed this in r64377 and made ...
normalperson (Eric Wong)
12:22 AM Misc #14937: [PATCH] thread_pthread: lazy-spawn timer-thread only on contention
ko1@atdot.net wrote:
> Let me clear your commits.
> Maybe "Description" of this ticket is obsolete.

I guess, I will add doc or comments to thread_pthread.c

> They are my understandings (fix me if they are wrong):
>
> * Your i...
normalperson (Eric Wong)
07:16 AM Revision 4610d36c (git): thread_pthread.c: hoist out do_gvl_timer and improve documentation
This hopefully clarifies the roles of UBF_TIMER and vm->gvl.timer
[ruby-core:88475] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
06:38 AM Feature #14994 (Closed): Enumerator::Lazy#uniq & Enumerator::Lazy#grep_v should use proc chaining
Proc chaining for Enumerator::Lazy was introduced in https://bugs.ruby-lang.org/issues/6183
Proc chaining improved the performance on chained lazy enum for adapted method.
Current implementation of proc chaining can be easily used...
chopraanmol1 (Anmol Chopra)
05:54 AM Revision 727a2d55 (git): vm_core.h (rb_thread_t): pack small fields together
On a 64-bit system, this reduces rb_thread_t from 536 to 520 bytes.
Depending on the allocation, this can reduce cacheline access
for checking the abort_on_exception, report_on_exception and
pending_interrupt_queue_checked flags.
git-sv...
Eric Wong
05:31 AM Revision 906ad167 (git): thread_pthread.h (native_thread_data): split list_node between ubf and gvl
Do not waste extra memory for each thread, but make
thread_pthread.c easier-to-follow as a result.
[ruby-core:88475] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
04:51 AM Revision 7815d7d7 (git): test_function.rb: skip running test
that times out with test-all w/ --jit-wait.
I'm running the following command on Wecker CI everyday:
```
make test-all TESTOPTS="--color=never --job-status=normal" RUN_OPTS="--disable-gems --jit-wait --jit-warnings" RUBY_FORCE_TEST_JIT=...
k0kubun (Takashi Kokubun)
04:32 AM Revision 3dcf85e0 (git): thread_pthread.c: rename rb_timer_* to ubf_timer_*
These functions will not be exported outside of thread_pthread.c
and we need to clarify the timer here is used for ubf and not
timeslice.
[ruby-core:88475] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64373 b2dd03c8-...
Eric Wong
04:32 AM Revision e4fd71d6 (git): thread_pthread.c: rename timer_thread_pipe to signal_self_pipe
This data structure has nothing to do with timers or threads.
[ruby-core:88475] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
04:32 AM Revision 5dca7d86 (git): thread_pthread.c: additional UBF_TIMER == UBF_TIMER_PTHREAD guards
Hopefully this makes the code easier-to-follow
[ruby-core:88475] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
04:10 AM Revision 425a820d (git): appveyor.yml: no MSYS path conversion
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
03:03 AM Revision 4940bbc7 (git): test_readline.rb: skip teardown failure
https://ci.appveyor.com/project/ruby/ruby/build/9271/job/e88212s136mr0dgr
I'll take a look at MSP-Greg's patch on readline later.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
02:15 AM Revision 5a149052 (git): appveyor.yml: get rid of msys sh as possible
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
02:05 AM Revision 438955ef (git): -Wsuggest-attribute=noreturn on io_spec_rb_io_wait_readable
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
01:55 AM Revision 36e41fd9 (git): test_env.rb: change mingw branch
https://github.com/MSP-Greg/ruby-loco/blob/e287cb739113da289271a017a1e7fa46cbfe47d9/patches/gte20600/test-ruby-test_env.rb_test_huge_value.patch
From: MSP-Greg (Greg L) <Greg.mpls@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/...
k0kubun (Takashi Kokubun)
01:40 AM Revision 0c95c744 (git): skip tests failing on AppVeyor MinGW
Let me skip this to make CI green first and take a look later...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
01:36 AM Feature #14989: Add Hash support for transient heap
Hello, thank you again for a response.
tacinight (Yimin Zhao) wrote:
> > Why you can say that a hash's size has something to do with its age?
> ...
OK. Looking forward to the measurement result. Even if this was a false assert, m...
shyouhei (Shyouhei Urabe)

08/14/2018

11:23 PM Revision 1684a1bd (git): appveyor.yml: remove broken --name option
Currently all tests are skipped by the --name option.
V=1 is for debugging this issue.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
11:00 PM Revision ab7e34e4 (git): webrick/httpauth/htgroup.rb (flush): avoid unnecessary unlink
Based on patch by akr [ruby-core:88477], use Tempfile.create
to avoid unnecessary unlink call. Unlike akr's original patch,
this does not change the return value of flush.
Thanks-to: Tanaka Akira <akr@fsij.org>
git-svn-id: svn+ssh://c...
Eric Wong
10:59 PM Revision 7d664ecc (git): Revert "test/lib/leakchecker.rb (find_tempfiles): don't warn for missing files"
This reverts commit 52102f6ff50eebf8c16667c9b49cef579d2057c1 (r64238).
It is no longer necessary if we use Tempfile.create in
WEBrick::HTTPAuth::Htgroup#flush (see next commit)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64362 b2...
Eric Wong
10:06 PM Revision 63529403 (git): Revert "thread_pthread.c: use UBF_TIMER_PTHREAD on Solaris"
This reverts commit 31bfe0fe86433beddfec2b2bdba69dfda1775f8d (r64357)
commit 17ed23bb6dfc942a8c51658b01135c3e2807ccf0 (r64359,
"fix fragile spec from unpredictable errno") is the correct fix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/...
Eric Wong
08:00 PM Bug #14992 (Closed): mkmf sets DYLD_LIBRARY_PATH on macOS which breaks pkg-config
When `mkmf` runs `pkg-config`, it sets `DYLD_LIBRARY_PATH` on macOS which causes `pkg-config` to not work. As an example, running
~~~
$ ruby2.5 -r mkmf -e 'pkg_config("libxml-2.0")'
~~~
writes the following to `mkmf.log`.
~~~
...
stevecheckoway (Stephen Checkoway)
06:32 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
danieldasilvaferreira@gmail.com wrote:
> normalperson@yhbt.net wrote:
>
> > I am thinking of adding preemption support to this feature for
> compatibility with 1.8
>
> non-preemptive vs preemptive.
> coroutines are non-preempti...
normalperson (Eric Wong)
05:52 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
Koichi Sasada <ko1@atdot.net> wrote:
> On 2018/08/14 9:42, Eric Wong wrote:
> > I am thinking of adding preemption support to this feature for
> > compatibility with 1.8
>
> So that "auto-fiber" proposal is to provide green thread...
normalperson (Eric Wong)
09:00 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
normalperson@yhbt.net wrote:
> I am thinking of adding preemption support to this feature for
compatibility with 1.8
non-preemptive vs preemptive.
coroutines are non-preemptive.
threads are preemptive.
Are we talking about havi...
dsferreira (Daniel Ferreira)
08:32 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
On 2018/08/14 9:42, Eric Wong wrote:
> I am thinking of adding preemption support to this feature for
> compatibility with 1.8

So that "auto-fiber" proposal is to provide green threads like Ruby 1.8?

Like:
```
model 1: Userlev...
ko1 (Koichi Sasada)
12:52 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
ko1@atdot.net wrote:
> Issue #13618 has been updated by ko1 (Koichi Sasada).
>
>
> We discussed about naming.
>
> ```
> X IoThread.new{}
> X GreenThread.new{}
> X Thread::Green.new{} #124 “most likely candidates”(vote: hsbt...
normalperson (Eric Wong)
05:48 PM Bug #14678: Segmentation fault in pg
I wanted to use ruby v2.5.1 instead v2.5.0
But I got this error.
With ruby v2.5.0, my rails project works great without any error.
I was using Rails v5.2.1 on macbook pro macos High Sierra 10.13.6 with Postgres.app v2.1.4
Ricochet (SeHoon Park)
05:07 PM Revision 81562d89 (git): * 2018-08-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
05:07 PM Revision 17ed23bb (git): spec/ruby/optional/capi/io_spec.rb: fix fragile spec from unpredictable errno
rb_io_wait_readable and rb_io_wait_writable depend on the TSD
errno value. Due to the recent changes in r64352-r64353 to
restructure GVL, errno could be set to EAGAIN from the signal
self-pipe and cause the rb_io_wait_readable spec to b...
Eric Wong
11:58 AM Revision 37279d15 (git): non-symbol keys in kwargs
* class.c (separate_symbol): [EXPERIMENTAL] non-symbol key in keyword
arguments hash causes an exception now.
c.f. https://twitter.com/yukihiro_matz/status/1022287578995646464
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64358 ...
nobu (Nobuyoshi Nakada)
11:23 AM Bug #14976 (Feedback): /usr/local/lib/ruby/gems/2.6.0/gems/fluentd-1.2.4/lib/fluent/event.rb:193: [BUG] Segmentation fault at 0x0000000000000000 ruby 2.6.0preview1 (2018-02-24 trunk 62554) [x86_64-linux]
Preview version of Ruby is provided for testing purpose.
If you want to use fluentd for production, please use Ruby 2.5 at this time.
naruse (Yui NARUSE)
10:44 AM Feature #14989: Add Hash support for transient heap
Nice introduction and explanation!
shevegen (Robert A. Heiler)
07:32 AM Feature #14989: Add Hash support for transient heap
Thanks for the quick response.

> Why you can say that a hash's size has something to do with its age?

Thanks for pointing it out, I admit that there are some problems with
this statement. I will go to measure it.

> > 1. We don...
tacinight (Yimin Zhao)
04:33 AM Feature #14989: Add Hash support for transient heap
Thank you for a great work.
tacinight (Yimin Zhao) wrote:
> 2. Transient heap is based on the hypothesis that most of objects die at a young age. To understand the issue with first need to survey the distribution of hash size.
W...
shyouhei (Shyouhei Urabe)
03:38 AM Feature #14989 (Closed): Add Hash support for transient heap
Hi, there
I am a GSoC student following @ko1 to do some work for Ruby, here I want to make a brief introduction for one of my work in this period.
## Transient Heap
The first discussion of transient heap was opened by @ko1 at [Intro...
tacinight (Yimin Zhao)
08:09 AM Misc #14937: [PATCH] thread_pthread: lazy-spawn timer-thread only on contention
Let me clear your commits.
Maybe "Description" of this ticket is obsolete.
They are my understandings (fix me if they are wrong):
* Your idea is using POSIX timer if possible.
```
#define UBF_TIMER_NONE 0
#define UBF_TIMER_PO...
ko1 (Koichi Sasada)
06:49 AM Revision 31bfe0fe (git): thread_pthread.c: use UBF_TIMER_PTHREAD on Solaris
I'm not sure what's causing this failure in Solaris and only
on rubyspec, since rb_io_wait_readable is a well-exercised
code path in other places. But maybe using a pthread for
timing (similar to old timer-thread) can solve the issue.
...
Eric Wong
05:43 AM Feature #14984: case when with splat operator performance
ko1 (Koichi Sasada) wrote:
> Could you give us your idea with examples in pseudo-code?
I'm not sure if I understand your question. In case if you are asking about implementation for this issue, then I created a pull request for that:...
chopraanmol1 (Anmol Chopra)
03:05 AM Feature #14984: case when with splat operator performance
Could you give us your idea with examples in pseudo-code?
ko1 (Koichi Sasada)
03:04 AM Feature #14955: [PATCH] gc.c: use MADV_FREE to release most of the heap page body
On 2018/08/11 13:48, Eric Wong wrote:
>> https://bugs.ruby-lang.org/issues/14955
>
> One major question to ask is: does object count during
> application lifetime vary enough to justify freeing
> "struct heap_page_body"?
>
> In...
ko1 (Koichi Sasada)
02:24 AM Revision 291afc96 (git): thread_pthread.c: use CLOCK_REALTIME on SunOS (Solaris)
timer_create does not seem to support CLOCK_MONOTONIC on Solaris,
and CLOCK_HIRES seems like it could fail with insufficient permissions:
https://docs.oracle.com/cd/E86824_01/html/E54766/timer-create-3c.html
(Only tested on Linux and F...
Eric Wong
12:31 AM Revision 1e769ce6 (git): test/fiddle/test_function.rb (test_nogvl_poll): stop timer hack
EINTR seems unavoidable in real programs (or MJIT), so maybe
it's not worth dealing with. r64353 relies on POSIX timers
to signal.
Switching pipes and sockets to non-blocking by default would let
us get rid of POSIX timers, timer pthre...
Eric Wong

08/13/2018

10:19 PM Revision 8da12db1 (git): thread_pthread (rb_timer_arm): ignore UBF_TIMER_POSIX state 2
It looks like I forgot to account for a situation involving 3
threads.
[ruby-core:88360] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
09:34 PM Revision 3dd6288d (git): thread_pthread: use POSIX timer or thread to get rid of races
This closes race condition where GVL is uncontended and a thread
receives a signal immediately before calling the blocking
function when releasing GVL:
1) check interrupts
2) release GVL
3) blocking function
If ...
Eric Wong
09:34 PM Revision 48b6bd74 (git): thread_pthread.c: eliminate timer thread by restructuring GVL
This reverts commit 194a6a2c68e9c8a3536b24db18ceac87535a6051 (r64203).
Race conditions which caused the original reversion will be fixed
in the subsequent commit.
[ruby-core:88360] [Misc #14937]
git-svn-id: svn+ssh://ci.ruby-lang.org/...
Eric Wong
07:12 PM Revision 4d2e0fff (git): FreeBSD 11.0 lacks ELFCOMPRESS_ZLIB
FreeBSD 11.0 unfortunately lacks ELF compression definitions in their
elf.h (sys/elf_common.h), and 11.1 introduced them.
https://github.com/freebsd/freebsd/commit/b9167d33a12b8a6c279be9cd1005874728e808c9
Though we can add workaround, w...
naruse (Yui NARUSE)
04:03 PM Revision 49083895 (git): appveyor.yml: install gdbm
which is missing on AppVeyor environment
https://github.com/ruby/ruby/commit/6a1e323ae88101cfed3fc4591d6e6a3bd8c05f02#commitcomment-30056791
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
03:29 PM Revision 2d313a29 (git): * 2018-08-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:29 PM Revision 6a1e323a (git): appveyor.yml: add MinGW build
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
03:10 PM Bug #14979: Invalid argument - ruby_setenv(SURVEY) (Errno::EINVAL)
shevegen (Robert A. Heiler) wrote:
> Interesting. My Linux-environment, in ruby via ENV, has 810 entries and
> ...
When you read my report carefully: the problem only occurs on windows. I was trying to recreate it on linux but without ...
tvw (Thomas Volkmar Worm)
02:54 PM Revision 7d2b70a9 (git): fix typos [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
02:33 PM Revision 4e87ee8d (git): mention about r64337
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e U.Nakamura
02:29 PM Revision f0d20684 (git): Add some tests for *method_defined?
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e U.Nakamura
01:50 PM Revision 0381ec51 (git): Fix test bug
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
01:48 PM Revision 67d87b19 (git): Fix problem about notimplemented case
Re-revert r64340, and take care about notimplemented case.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
U.Nakamura
01:46 PM Revision 74966729 (git): appveyor.yml: drop unnecessary 1.0. prefix
from version.
Also I fixed the wrong way of using `for:`.
Specifying `for` without `matrix.only` was just useless.
This fix is for adding MinGW matrix in the future.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64342 b2dd03c8-39d4...
k0kubun (Takashi Kokubun)
01:27 PM Revision 984ba3da (git): Add test for method_defined?(notimplement)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
01:27 PM Revision ee05c567 (git): Revert "Support optional inherit argument for Module#method_defined?"
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
12:42 PM Revision 5bf3db3e (git): get rid of an encode noncompatible error
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e U.Nakamura
12:42 PM Feature #14944 (Closed): Support optional inherit argument for Module#method_defined?
Applied in changeset trunk|r64337.
----------
Support optional inherit argument for Module#method_defined?
Module has many introspection methods for methods and constants that
either return an array or return true or false for whether ...
usa (Usaku NAKAMURA)
12:42 PM Revision efd5a574 (git): * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
12:42 PM Revision bccb24a8 (git): Support optional inherit argument for Module#method_defined?
Module has many introspection methods for methods and constants that
either return an array or return true or false for whether the method
or constant is defined. Most of these methods support an optional
argument that controls whether t...
U.Nakamura
12:22 PM Revision 50e41f4a (git): test/rinda/test_rinda.rb: Start keeper only on used tests
to reduce sleeping threads on unrelated tests
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)
12:07 PM Feature #14912: Introduce pattern matching syntax
> Btw, won't it better to introduce a new expression named `match` than to extend `case`?
I have exactly the opposite question: do we really need `in`, why not reuse `when`?.. For all reasonable explanations, case+when IS Ruby's "patt...
zverok (Victor Shepelev)
11:02 AM Revision 0ab6266c (git): Makefile.in: drop MJIT_DLDFLAGS_NOCOMPRESS
which is obsoleted by r64331
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
08:48 AM Revision 0ca50534 (git): Don't free allocated uncompressed_debug_line until backtrace is printed
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
07:55 AM Revision 0efd00bf (git): Re-apply wrongly reverted r64330
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
07:05 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
I can imagine how hard to implement the "requiring into isolated binding" correct in VM.
If we want to maintain the compatible we need to maintain the reference of the name cross different require/import.
Think of a situation:
`...
jjyr (Jinyang Jiang)
06:40 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
shyouhei (Shyouhei Urabe) wrote:
> I like this idea in general. I too want to have "requiring into isolated Binding".
> ...
Totally agreed!
jjyr (Jinyang Jiang)
03:34 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
In the Why? section, case 1 is just a programming error on the library developer's or library user's part, depending on how the library is documented.
In terms of case 2 (multiple gems define overlapping constants in the top level n...
jeremyevans0 (Jeremy Evans)
01:12 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
I like this idea in general. I too want to have "requiring into isolated Binding".
One thing I would like to add, "namespace" shall be a keyword rather than a normal method taking a block. Blocks can be passed around:
```ruby
nam...
shyouhei (Shyouhei Urabe)
06:31 AM Revision cc1c6059 (git): Define parse_compressed_debug_line() only ifdef SUPPORT_COMPRESSED_DEBUG_LINE
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
06:20 AM Revision bcf8f79d (git): support compressed debug_line
re-commit r64328
https://blogs.oracle.com/solaris/elf_section_compression-v2
https://gnu.wildebeest.org/blog/mjw/2016/01/13/elf-libelf-compressed-sections-and-elfutils/
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64331 b2dd03c8-39...
naruse (Yui NARUSE)
06:09 AM Revision 2132fb33 (git): configure.ac: use linker_flag to LIBRUBY_DLDFLAGS
* configure.ac: use a feature flag `linker_flag`, than checking if the
compiler is `GCC`.
* configure.ac: append to LIBRUBY_DLDFLAGS once after initialized with
DLDFLAGS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64330 b2dd...
nobu (Nobuyoshi Nakada)
06:05 AM Revision 843589a7 (git): Revert "support compressed debug_line"
This reverts commit r64328
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
naruse (Yui NARUSE)
02:56 AM Revision a20a2b00 (git): support compressed debug_line
https://blogs.oracle.com/solaris/elf_section_compression-v2
https://gnu.wildebeest.org/blog/mjw/2016/01/13/elf-libelf-compressed-sections-and-elfutils/
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64328 b2dd03c8-39d4-4d8f-98ff-823f...
naruse (Yui NARUSE)

08/12/2018

04:45 PM Revision 85079043 (git): timegm_noleapsecond uses calc_tm_yday.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e akr (Akira Tanaka)
03:16 PM Revision 25c79f44 (git): configure.ac: use the correct argument
for --compress-debug-sections. I thought "no" is the correct one because
configure.ac has `AS_IF([test "x$compress_debug_sections" != xno]`, but
it wasn't the case.
This commit is needed to resolve errors like:
/usr/bin/x86_64-linux-gnu...
k0kubun (Takashi Kokubun)
03:13 PM Revision 422f4e3e (git): configure.ac: MJIT_DLDFLAGS_NOCOMPRESS
is configured now, to force -Wl,--compress-debug-sections=no
for MJIT only when the option is used in MJIT_DLDFLAGS.
This needs to be done in configure.ac to resolve build failure like
https://travis-ci.org/ruby/ruby/builds/415120662.
...
k0kubun (Takashi Kokubun)
03:00 PM Revision a7775c4e (git): * 2018-08-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:00 PM Revision 7e478ba3 (git): mjit_worker.c: lazily delete so file
on ELF.
I need symbol name and line number to lazily create program counter for
optimization on ELF binary.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
02:42 PM Revision bd789fa5 (git): mjit_worker.c: allow showing line number
on addr2line.c, if --jit-save-temps is specified.
I'm going to use the line number to lazily create program counter to
improve the performance degraded in r64283.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64322 b2dd03c8-39d4-4d...
k0kubun (Takashi Kokubun)
12:59 PM Revision c55e10a9 (git): mjit.c: reduce the number of variables
in mark_ec_units() to simplify code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
11:51 AM Bug #14707: String#scan(/\K/) has changed its behavior in ruby 2.5
ruby_2_5 r64320 merged revision(s) 63252. nagachika (Tomoyuki Chikanaga)
11:51 AM Revision fa07823a (git): 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]
git-sv...
nagachika (Tomoyuki Chikanaga)
10:37 AM Bug #14566: `raise` in `Exception#message` causes infinite loop
ruby_2_5 r64319 merged revision(s) 63133. nagachika (Tomoyuki Chikanaga)
10:37 AM Revision 78e4b57c (git): 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]
git-svn-id: svn...
nagachika (Tomoyuki Chikanaga)
09:12 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
I believe namespace can reduce the complexity of organizing codes in large projects.
Recently I write rust code in a large project. Our code base is dependent on other several complex projects. With rust `use` syntax(https://doc.rust...
jjyr (Jinyang Jiang)
08:10 AM Feature #14984 (Closed): case when with splat operator performance
Applied in changeset trunk|r64318.
----------
Optimization for case when with splat operator
[Fix GH-1928] [Feature #14984]
From: chopraanmol1 <chopraanmol1@gmail.com>
nobu (Nobuyoshi Nakada)
08:10 AM Revision af2e98ae (git): Optimization for case when with splat operator
[Fix GH-1928] [Feature #14984]
From: chopraanmol1 <chopraanmol1@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
06:00 AM Revision 4fe8308e (git): tool/downloader.rb: increase retries
GitHub download failed on 13:50:36
https://ci.appveyor.com/project/ruby/ruby/build/1.0.9221 and it also
failed on 13:51:35 (all builds between them failed too).
It means that we need to expect GitHub 502 that continues 1 minute.
So I co...
k0kubun (Takashi Kokubun)
05:14 AM Feature #14912: Introduce pattern matching syntax
Btw, won't it better to introduce a new expression named `match` than to extend `case`? Seems to me this will make the use of patter matching clearer, and I assume it's also going to simplify the implementation. bozhidar (Bozhidar Batsov)
04:50 AM Revision fe781af3 (git): compile.c: use EXPECT_NODE macro
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
04:50 AM Revision e7f88ff6 (git): compile.c: check error in when_vals
* compile.c (when_vals): return a negative value on error.
* compile.c (compile_case): check error in when_vals().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
12:30 AM Revision 80769280 (git): vm_insnhelper.c: revert r64280
This commit caused test-all failure with --jit-wait.
I don't know the reason yet, but let me revert it to normalize CI.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
12:28 AM Revision aa6c02a5 (git): skip non-IP interfaces
* spec/ruby/library/socket/socket/getifaddrs_spec.rb: VirtualBox host
only adapter seems something different than ordinary interfaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)

08/11/2018

11:40 PM Revision c3b25464 (git): vm_insnhelper.c: drop duplicated inline
to resolve warning:
c:\projects\ruby\vm_insnhelper.c(1661) : warning C4141: 'inline' : used more than once
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
11:33 PM Revision b1ecbf8e (git): appveyor.yml: customize icon_url
We're using "x" sign as an icon for incoming webhook, but the success
notification by `on_build_status_changed` should not be an "x" asign.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
06:44 PM Feature #14984 (Closed): case when with splat operator performance
case when with splat operator use instructions like duparray, concatarray which result in creation of arrays.
Avoiding creation of array improves performance.
I've done following set of changes:
https://github.com/ruby/ruby/pul...
chopraanmol1 (Anmol Chopra)
04:25 PM Revision 61bef861 (git): * 2018-08-12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
04:25 PM Revision c7baa445 (git): fix r64296
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
02:50 PM Revision 3db5b211 (git): test_rubyvm_mjit.rb: skip testing MJIT if not supported
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
02:48 PM Revision 33d318a2 (git): mjit.c: stop defining alias for a very limited use
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
02:44 PM Revision 1bc2641b (git): mjit.c: drop obsoleted duplicated declaration
of mjit_worker(). It was needed when mjit_worker.c is separated from
mjit.c, but it's now just included.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
02:36 PM Revision 69bfb6d8 (git): mjit_worker.c: remove redundant cast for calloc/alloca
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
02:34 PM Revision 5cd84d24 (git): mjit_worker.c: handle calloc failure
Unlike ZALLOC, it's not automatically handled.
mjit.c: ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
02:32 PM Revision 3c1f1c33 (git): test_env.rb: a failure on appveyor
* test/ruby/test_env.rb (test_huge_value): Windows 8 seems having a
limit on single environment variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
02:27 PM Revision 1b157084 (git): mjit_worker.c: never trigger GC on MJIT worker
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e k0kubun (Takashi Kokubun)
02:18 PM Revision 004b8ad0 (git): mjit_worker.c: don't use ruby_strdup
on MJIT worker. That may trigger GC. And handled strdup failure instead.
mjit_compile.c: update comment about GC
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
02:15 PM Revision 591b2566 (git): appveyor.yml: show the OS version
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
02:09 PM Revision f219f785 (git): test_rubyvm_mjit.rb: dump output on test_pause
failure. It's failing on mswinci but it's hard to know the cause without
out/err.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
02:05 PM Revision d9260c5a (git): mjit_worker.c: share MJIT warning logic
as mjit_warning().
mjit.c: ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
01:43 PM Revision 8b1ff417 (git): Solaris 10 doesn't have getifaddrs
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
01:31 PM Revision 984986a0 (git): Solaris raises EAI_SERVICE if hints.ai_socktype=0
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
01:31 PM Revision 8ef27ac1 (git): test_iseq_load.rb: reduce timeout of test_stressful_roundtrip
We should increase RUBY_TEST_SUBPROCESS_TIMEOUT_SCALE for slow
environments, and we configured some CI machines.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
01:28 PM Revision 8b46df79 (git): upgrade the default WINNT version
* configure.ac: set the default target Windows NT version to 0x0600,
as well as mswin version since r50051. Windows XP has ended years
ago.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
01:19 PM Bug #14979 (Closed): Invalid argument - ruby_setenv(SURVEY) (Errno::EINVAL)
Applied in changeset trunk|r64293.
----------
hash.c: env block size limit on Windows
* hash.c (ruby_setenv): do not check environment block size.
c.f. https://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx
...
nobu (Nobuyoshi Nakada)
01:18 PM Revision 490fbc4c (git): hash.c: env block size limit on Windows
* hash.c (ruby_setenv): do not check environment block size.
c.f. https://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx
Starting with Windows Vista and Windows Server 2008, there is no
technical limitation...
nobu (Nobuyoshi Nakada)
12:41 PM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
I think this has come up before in other issue requests, at the least
in one variant or the other (if I recall correctly, Hiroshi Shibata
also suggested some variant that is a bit similar to your "import"
example, but I do not remembe...
shevegen (Robert A. Heiler)
04:26 AM Feature #14982 (Assigned): Improve namespace system in ruby to avoiding top-level names chaos
Updated: https://bugs.ruby-lang.org/issues/14982#note-5
## Why
Ruby has evaluation all class/module names in top-level context(aka TOPLEVEL_BINDING).
As a user we basically hard to know how many names in the current context, ...
jjyr (Jinyang Jiang)
10:05 AM Revision 3d2e7b61 (git): mjit_worker.c: resurrect more static declarations
and remove old mjit_ prefixes again.
mjit.c: ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
09:58 AM Revision cfe7f7ca (git): mjit_worker.c: reorder functions and variables
so that related things are placed closely.
Sorry for mixing them in previous commits...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
09:48 AM Revision 3c442229 (git): mjit.c: make some variables static again
and remove redundant mjit_ prefixes.
mjit_worker.c: ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
09:37 AM Revision a48d1d79 (git): mjit.c: include mjit_worker.c
instead of linking functions with mjit_worker.o.
In the r64285's structure, we needed to publish some variables with
mjit_ prefix. But ideally those variables should be completely private
in mjit.o (or old mjit_worker.o), and it was har...
k0kubun (Takashi Kokubun)
08:34 AM Revision 6306aa92 (git): mjit.c: exclude mjit_valid_class_serial_p
from mjit.c because it's executed only on MJIT worker thread.
Instead of that, `valid_class_serials` is shared with mjit_ prefix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
08:07 AM Revision b2e0d540 (git): mjit_worker.c: prefix mjit_ to pch_status
which was just forgotten.
mjit.c: ditto
mjit_internal.h: moved some macros only used by mjit_worker.c to it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
07:57 AM Revision 58de7684 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
07:57 AM Revision ddcb40f5 (git): mjit_worker.c: carve out worker-related code
The motivation of this change is to make sure rb_funcall or GC-related
functions are not called on worker-related code. Currently such
functions are used in some places and I believe it's partly because it's
hard to identify which part i...
k0kubun (Takashi Kokubun)
05:37 AM Revision c9a30858 (git): _mjit_compile_pc_and_sp.erb: update the comment
about the pc motion reason
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
05:33 AM Revision d5e27d7a (git): _mjit_compile_pc_and_sp.erb: always move pc
to fix the wrong line number on #caller_locations or rb_profile_frames.
Actually we would be able to move it only when method call (of
caller_locations) or C extension invocation (calling rb_profile_frames)
can happen.
This degrades pe...
k0kubun (Takashi Kokubun)
04:52 AM Feature #14955: [PATCH] gc.c: use MADV_FREE to release most of the heap page body
> https://bugs.ruby-lang.org/issues/14955

One major question to ask is: does object count during
application lifetime vary enough to justify freeing
"struct heap_page_body"?

In my experience, object count is relatively stable
o...
normalperson (Eric Wong)
04:27 AM Bug #11018: free(): invalid next size (normal)
kosaki (Motohiro KOSAKI) wrote:
> Please let us know if you can reproduce it with no gem, no rvm and no extension.
Hi,
We're seeing the same issue and although we've used GDB on the dumped core and also ran `strace` - still we can't...
icarito (Sebastian Silva)
04:22 AM Revision 92c03be8 (git): tool/downloader.rb: retry on 502 and 503 error
rubyci was failed by download 503
https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-trunk/log/20180811T021706Z.fail.html.gz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
03:50 AM Revision 0f0d7805 (git): vm_args.c: stop requiring `calling` in vm_caller_setup_arg_block
_mjit_compile_send.erb: simplify code using the change
insns.def: adapt to the interface change
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
03:38 AM Revision b4b012c5 (git): _mjit_compile_send.erb: refactor to share vm_call_iseq_setup_normal
implementation. This had no major performance impact by effort to keep
them inlined.
vm_insnhelper.c: ditto
mjit_compile.c: just update the comment about opt_pc=0 assumption
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64280 b2dd...
k0kubun (Takashi Kokubun)
03:29 AM Feature #14609: Let `Kernel#p` without an argument print the receiver
osyo (manga osyo) wrote:
> Good proposal.
> ...
You can use parentheses.
```ruby
p(name: "home", age: 14)
```
nobu (Nobuyoshi Nakada)
01:49 AM Feature #14609: Let `Kernel#p` without an argument print the receiver
Good proposal.
This can solve the following problem.
```ruby
# NG: syntax error, unexpected ':', expecting '}'
p { name: "homu", age: 14 }
# OK:
{ name: "homu", age: 14 }.p
# => {:name=>"homu", :age=>14}
```
osyo (manga osyo)
01:42 AM Misc #14907: [PATCH] io.c: do not close inherited FDs by default
akr@fsij.org wrote:
> We agree we can challenge to change the default.
> Then, we can see actual problem (FD leak) exist or not.

OK, I'll commit 0001-process.c-close_others-defaults-to-false.patch
early next week (won't have much ...
normalperson (Eric Wong)
 

Also available in: Atom