Project

General

Profile

Activity

From 07/01/2018 to 07/07/2018

07/07/2018

11:59 PM Revision 4719a454 (git): * 2018-07-08
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
11:59 PM Revision ac41c2c1 (git): process.c (rb_f_exec): pause MJIT before replacing process
Non-parallel "make test-spec" caused
spec/ruby/core/process/wait2_spec.rb failures because mspec
uses "exec" in single-process mode, so there's no chance
the post-exec state could know about the MJIT child process
from its pre-exec state...
Eric Wong
10:52 PM Bug #14867: Process.wait can wait for MJIT compiler process
takashikkbn@gmail.com wrote:
> Hi Eric. I fixed [Bug #14892] on r63875, but only the rubyspec check you added is failing with -DMJIT_FORCE_ENABLE like:
>
> ```
> $ make test-spec

Thanks, I think it's a bug of rb_f_exec and it se...
normalperson (Eric Wong)
02:58 PM Bug #14867 (Assigned): Process.wait can wait for MJIT compiler process
Hi Eric. I fixed [Bug #14892] on r63875, but only the rubyspec check you added is failing with -DMJIT_FORCE_ENABLE like:
```
$ make test-spec
$ /home/k0kubun/src/github.com/ruby/ruby-svn/.ruby-force/miniruby -I/home/k0kubun/src/gith...
k0kubun (Takashi Kokubun)
08:48 PM Bug #14900: Extra allocation in String#byteslice
Nice catch I will try to verify on my end too ioquatix (Samuel Williams)
09:47 AM Bug #14900 (Closed): Extra allocation in String#byteslice
When executing `String#byteslice` with a range, I noticed that sometimes the original string is allocated again. When I run the following script:
~~~ ruby
require "objspace"
string = "a" * 100_000
GC.start
GC.disable
generati...
janko (Janko Marohnić)
05:43 PM Feature #13620: Simplifying MRI's build system: always make install
normalperson (Eric Wong) wrote:
> Of course, there will be differences not detected before
> ...
There are many differences, and fundamental things like RbConfig.ruby pointing to the current ruby are broken (see the original descripti...
Eregon (Benoit Daloze)
05:07 PM Feature #14426: [PATCH] openssl: reduce memory allocation in OpenSSL::Buffering#do_write
The patch got outdated in the latest trunk, so I updated it again. It's a really small change with big impact on memory usage when uploading files. janko (Janko Marohnić)
04:16 PM Misc #14861: DevelopersMeeting20180718Japan
* [Bug #14878] Add command line argument to deactivate JIT (k0kubun)
* Please discuss the necessity of the flag and its name in the proposal.
k0kubun (Takashi Kokubun)
02:55 PM Revision a854e4dd (git): wait2_spec.rb: skip leak checker for now
This is not working with cppflags="-DMJIT_FORCE_ENABLE" on my machine.
```
$ make test-spec
$ /home/k0kubun/src/github.com/ruby/ruby-svn/.ruby-force/miniruby -I/home/k0kubun/src/github.com/ruby/ruby-svn/lib /home/k0kubun/src/github.com/...
k0kubun (Takashi Kokubun)
02:41 PM Bug #14892 (Closed): r63763 breaks -DMJIT_FORCE_ENABLE=1
Applied in changeset trunk|r63875.
----------
insns.def: stop pushing unnecessary keys for MJIT
[Bug #14892]
k0kubun (Takashi Kokubun)
02:41 PM Revision 8bec3e1f (git): insns.def: stop pushing unnecessary keys for MJIT
[Bug #14892]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
02:28 PM Revision c2df63d0 (git): _mjit_compile_insn_body: rollback pc correctly
for catch_except_p case
Partially solving Bug#14892
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
08:45 AM Bug #14899 (Closed): Pathname#glob Matching to the directory results in lack
Pathname.glob では問題ないのですが、
ruby 2.5 から追加された Pathname#glob で、スラッシュで終わる引数を渡すとディレクトリ名の最初の1文字がかけた状態で返ってきます
~~~
Pathname('/tmp/test').glob('**/*') => [#<Pathname:/tmp/test/abc>, #<Pathname:/tmp/test/123>]
Pathname.glob('/tmp/test/**/*/...
hazi (yuhei mukoyama)
05:52 AM Bug #14898: test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes
On 2018/07/07 14:36, Eric Wong wrote:
> Maybe r63872 can help by retrying send.

Great! Thank you.

--
// SASADA Koichi at atdot dot net
ko1 (Koichi Sasada)
05:42 AM Bug #14898: test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes
Koichi Sasada <ko1@atdot.net> wrote:
> On 2018/07/06 18:47, Eric Wong wrote:
> > I would not expect it to be (but am not sure), I think it's
> > possible the kernel could drop packets if under memory pressure.
>
> mmm. can we rewr...
normalperson (Eric Wong)
05:36 AM Bug #14898 (Closed): test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes
Applied in changeset trunk|r63872.
----------
test/socket/test_socket.rb (test_timestamp): retry send
I theorize there can be UDP packet loss even over loopback if
the kernel is under memory pressure. Retry sending periodically
until ...
normalperson (Eric Wong)
03:42 AM Bug #14898: test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes
On 2018/07/06 18:47, Eric Wong wrote:
> I've never seen it stuck myself.

Only a few times per thousands trial. I also never seen in manual trial.

> Is UDP over loopback supposed to be reliable?

Maybe yes because other tests pa...
ko1 (Koichi Sasada)
05:34 AM Revision 886cfe49 (git): * 2018-07-07
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
05:34 AM Revision eb78beda (git): test/socket/test_socket.rb (test_timestamp): retry send
I theorize there can be UDP packet loss even over loopback if
the kernel is under memory pressure. Retry sending periodically
until recvmsg succeeds.
i[ruby-core:87842] [Bug #14898]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63...
Eric Wong

07/06/2018

09:22 PM Feature #14851: [PATCH] thread_pthread.c: remove non-sleepy timer thread implementation
> https://bugs.ruby-lang.org/issues/14851

Maybe reject this feature. Keeping non-sleepy timer thread
implementation (I will call it "polling timer thread") since
manually enabling it can find bugs with thread_win32 platform.
normalperson (Eric Wong)
09:12 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
funny.falcon@gmail.com wrote:
> It is impossible to implement Thread migration between native
> threads. All other is possible.

It may be possible but we'd either lose performance and/or break
C extensions. So it won't happen soo...
normalperson (Eric Wong)
06:10 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> Yes, they are great, but it's probably impossible to implement in Ruby.
It is impossible to implement Thread migration between native threads. All other is possible.
> ...
Don't get me wrong: most of code is linear and thread-saf...
funny_falcon (Yura Sokolov)
09:16 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> But we have example of Go: goroutine is a really green thread, and they do really scale.
Yes, they are great, but it's probably impossible to implement in Ruby, and it still requires a lot of non-trivial synchronisation.
> ...
Ye...
ioquatix (Samuel Williams)
07:48 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> In my experience, threads simply don't scale as as well as fibers, there is too much overhead.
Native threads doesn't scale.
But we have example of Go: goroutine is a really green thread, and they do really scale.
And Ruby 1.8 ha...
funny_falcon (Yura Sokolov)
01:57 PM Feature #14328 (Closed): SIMD vectorization
nobu (Nobuyoshi Nakada)
01:56 PM Revision 7387c083 (git): const_missing on private constants
* variable.c (rb_const_search): call #const_missing method on
private constants, as well as uninitialized constants.
[Feature #14328]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
09:52 AM Bug #14898: test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes
ko1@atdot.net wrote:
> With parallel tests (`make test-all TESTS=-j4` with 4 parallelism) stuck sometimes.
>
> http://ci.rvm.jp/results/trunk-test@ruby-sky3/1087178
>
> We can see this stuck very old revisions but not sure how to...
normalperson (Eric Wong)
08:31 AM Bug #14898 (Closed): test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes
With parallel tests (`make test-all TESTS=-j4` with 4 parallelism) stuck sometimes.
http://ci.rvm.jp/results/trunk-test@ruby-sky3/1087178
We can see this stuck very old revisions but not sure how to solve...
Anyone help us?
ko1 (Koichi Sasada)
08:01 AM Revision 5e7167f8 (git): 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]
git-svn-id: svn+ssh://...
nobu (Nobuyoshi Nakada)
06:52 AM Bug #14867: Process.wait can wait for MJIT compiler process
Greg.mpls@gmail.com wrote:
> Well done. The build is 'green' (passing).

Thanks! Committed as r63869.
normalperson (Eric Wong)
06:50 AM Bug #14867 (Closed): Process.wait can wait for MJIT compiler process
Applied in changeset trunk|r63869.
----------
mjit.c: fix waitpid macro return value for win32
We started checking return value of waitpid, so it needs
to be correct for win32 platforms for MJIT to work.
Thanks-to: MSP-Greg (Greg L) <...
normalperson (Eric Wong)
04:38 AM Bug #14867: Process.wait can wait for MJIT compiler process
Eric,
Well done. The build is 'green' (passing). Script generated result summary is:
```
——————————————————————————————————————————————————————————————————————————————— Test Results
0 Total Failures/Errors ...
MSP-Greg (Greg L)
03:04 AM Bug #14867: Process.wait can wait for MJIT compiler process
Greg: oh, I think I finally spotted it. The waitpid() macro for
_WIN32 doesn't set a return value. The old code assumed waitpid
always succeeds, and the new code checks the return value.

So I think we need to fake the return valu...
normalperson (Eric Wong)
02:03 AM Bug #14867: Process.wait can wait for MJIT compiler process
@normalperson
> Were there any compiler warnings building process.c or mjit.c?
No. Only warning were for `warning: flip-flop is deprecated` in another file...
> ...
Yes, but it's a mess with STDOUT having the line(s) added by t...
MSP-Greg (Greg L)
01:22 AM Bug #14867: Process.wait can wait for MJIT compiler process
Greg.mpls@gmail.com wrote:
> Below is the out from `ruby --jit -e exit`
>
> ```
> C:\Greg\GitHub> ruby --jit -e exit
> process.c: sigchld=0 getpid.size=8 rb_pid_t.size=8
> mjit.c: sigchld=0 getpid.size=8 pid_t.size=8
> mjit.c: _...
normalperson (Eric Wong)
01:21 AM Bug #14867: Process.wait can wait for MJIT compiler process
@normalperson
Attached is the config portion of ruby-loco mingw build log.
Thanks, Greg
MSP-Greg (Greg L)
01:01 AM Bug #14867: Process.wait can wait for MJIT compiler process
@normalperson
Below is the out from `ruby --jit -e exit`
```
C:\Greg\GitHub> ruby --jit -e exit
process.c: sigchld=0 getpid.size=8 rb_pid_t.size=8
mjit.c: sigchld=0 getpid.size=8 pid_t.size=8
mjit.c: _WIN32 __MINGW32__ __MINGW6...
MSP-Greg (Greg L)
12:50 AM Bug #14867: Process.wait can wait for MJIT compiler process
@normalperson
I've got builds running both locally and on Appveyor, when they finish I'll have more info.
> Just to reiterate, "make test" (not "test-all") passes?
Actually, btest, test-basic, & test-spec all pass.
> ...
If t...
MSP-Greg (Greg L)
06:50 AM Revision 79f01d39 (git): mjit.c: fix waitpid macro return value for win32
We started checking return value of waitpid, so it needs
to be correct for win32 platforms for MJIT to work.
Thanks-to: MSP-Greg (Greg L) <Greg.mpls@gmail.com>
[ruby-core:87832] [Bug #14867]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby...
Eric Wong
04:53 AM Bug #14897: Unexpected behavior of `if` in specific code
Good catch. It was a bug of peephole optimization. Fixed. Thank you. mame (Yusuke Endoh)
04:52 AM Bug #14897 (Closed): Unexpected behavior of `if` in specific code
Applied in changeset trunk|r63868.
----------
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 optimizatio...
mame (Yusuke Endoh)
04:03 AM Bug #14897: Unexpected behavior of `if` in specific code
Seems `obj = obj` is (mistakenly) optimized out.
```
% ./miniruby --dump=i -v tmp.rb
ruby 2.6.0dev (2018-07-06 trunk 63854) [x86_64-darwin15]
== disasm: #<ISeq:<main>@tmp.rb:1 (1,0)-(10,16)> (catch: FALSE)
0000 putspecialobject ...
shyouhei (Shyouhei Urabe)
03:22 AM Bug #14897 (Closed): Unexpected behavior of `if` in specific code
I found a strange behavior of `if` in the following code.
~~~ ruby
def seems_bug(obj)
if obj || obj
obj = obj
else
raise obj.inspect
end
obj
end
seems_bug('foo')
#=> RuntimeError: "foo"
~~~
This code is...
peitetsu (teppei takeo)
04:52 AM Revision 727ceb2a (git): 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.
Fix...
mame (Yusuke Endoh)
02:15 AM Revision fcf8c622 (git): thread.c (ruby_ppoll): improve timespec to msec conversion
Round up non-zero <1ms timeouts to 1ms and use INT_MAX instead
of infinite (-1) for extremely large timeouts. All of our
ppoll/select callers are able to handle spurious wakeups,
anyways.
This avoids excessive CPU usage and busy waits ...
Eric Wong
02:15 AM Revision 24aa7a13 (git): thread.c: our fake ppoll implementation is static
Rename it to "ruby_ppoll" so it looks more obvious in debuggers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
01:53 AM Revision 043d22cb (git): Fixup r63864
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
01:40 AM Revision 33354d29 (git): Prefixed reset_leap_second_info
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
12:49 AM Bug #14892: r63763 breaks -DMJIT_FORCE_ENABLE=1
Many cases (including `a, b = nil`) go well after r63863.
Now I found that there remain 2 issues at least.
1. `pc` is set to `next_pos` when insn is `opt_xxx` and `body->catch_except_p` is falsy.
* ex. `1000.times { break if /a/ ...
wanabe (_ wanabe)

07/05/2018

09:54 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> They have their own IO scheduler because ruby had just native threads, which are bad as IO scheduler.
Thanks so much for your answer, it's very detailed and gives me a clear picture about what you are thinking.
In my experience, ...
ioquatix (Samuel Williams)
06:12 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> It's also going to be more useful for existing code bases like ActionCable, Puma, Async, etc which use their own IO scheduler.
They have their own IO scheduler because ruby had just native threads, which are bad as IO scheduler.
Ok...
funny_falcon (Yura Sokolov)
09:35 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
Thanks for your feedback.
> About "extendable api" vs "implicit behavior" (ie between your proposal
> ...
I don't see how that comparison applies to `Thread.scheduler` PR. Because it's completely transparent to higher level code.
...
ioquatix (Samuel Williams)
08:43 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
@ioquatix About "extendable api" vs "implicit behavior" (ie between your proposal
for "Thread.scheduler=' and replacing "Thread" with green implementation),
I'd prefer "implicit behavior".
Because, there were already EM::Synchrony, th...
funny_falcon (Yura Sokolov)
07:19 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
Looks like I was not exactly right: typical iteration over Enumerator doesn't use Fiber.yield.
But usage of Enumerator as external iterator does. And `zip` method does use external iterator.
```
> def aga; yield 1; Fiber.yield 4; yiel...
funny_falcon (Yura Sokolov)
09:22 PM Bug #14867: Process.wait can wait for MJIT compiler process
Greg.mpls@gmail.com wrote:
> @normalperson
>
> Thanks for the patch, I added it, and a build with r63859 locked/froze on test-all. I’m going to see if I can get any more info by building/testing locally. I’m surprised and wonderin...
normalperson (Eric Wong)
02:02 PM Bug #14867: Process.wait can wait for MJIT compiler process
@normalperson
Thanks for the patch, I added it, and a build with r63859 locked/froze on test-all. I’m going to see if I can get any more info by building/testing locally. I’m surprised and wondering if something reverted wasn’t re-a...
MSP-Greg (Greg L)
05:42 AM Bug #14867: Process.wait can wait for MJIT compiler process
Greg.mpls@gmail.com wrote:
>
> Importantly, mswin (ruby's vc12) passed r63856.

Good to know. I saw your message before
http://mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-trunk/recent.html
got updated, I guess there is a ...
normalperson (Eric Wong)
04:47 AM Bug #14867: Process.wait can wait for MJIT compiler process
Importantly, mswin (ruby's vc12) passed r63856.
Unfortunately, ruby-loco locked up on test-all. So, before the reversion (r63852), test-all completed, but all JIT tests failed. After the reversion, all JIT tests passed.
Ok, I'l...
MSP-Greg (Greg L)
03:32 AM Bug #14867: Process.wait can wait for MJIT compiler process
takashikkbn@gmail.com wrote:
> As it was reverted on r63852 by @naruse, assigning this back
> to Eric. I'm guessing it was reverted since it was not
> portable mainly for Windows. Whenever you commit things, you
> can check at least...
normalperson (Eric Wong)
03:12 AM Bug #14867: Process.wait can wait for MJIT compiler process
Greg.mpls@gmail.com wrote:
> I'm not sure what you look at on the web (GitHub, Appveyor), so briefly:

> 1. The mswin builds do not test MJIT, but mingw (ruby-loco)
> does. Note that mingw tests 3 time a day, so I may not know
> w...
normalperson (Eric Wong)
01:48 AM Bug #14867: Process.wait can wait for MJIT compiler process
@normalperson
I'm not sure what you look at on the web (GitHub, Appveyor), so briefly:
1. The mswin builds do not test MJIT, but mingw (ruby-loco) does. Note that mingw tests 3 time a day, so I may not know what revision caused wh...
MSP-Greg (Greg L)
09:10 PM Bug #14895: Inconsistent constant names when using const_set on a singleton class
This looks like a bug to me.
Here's a simplified example:
```
s = Object.new.singleton_class
a = s.const_set(:A, Module.new) # => #<Module:0x00007fed619915f0>
b = s.class_eval "module B; self end" # => #<Class:0x00007fed6...
marcandre (Marc-Andre Lafortune)
05:35 PM Bug #14895: Inconsistent constant names when using const_set on a singleton class
So, what you're saying is that the singleton class is being assigned to a constant when it creates module `A`, so modules are only named after this step?
Is this expected behavior then?
silver_phoenix (Pedro Pinto)
03:38 PM Bug #14895: Inconsistent constant names when using const_set on a singleton class
silver_phoenix (Pedro Pinto) wrote:
> Yes, I understand that, but why isn't `Z` named like `B` is?
> ...
Because they are not "fully-named" yet.
nobu (Nobuyoshi Nakada)
02:29 PM Bug #14895: Inconsistent constant names when using const_set on a singleton class
Yes, I understand that, but why isn't `Z` named like `B` is?
`Z` is `#<Module:...>` (unnamed)
`B` is `#<...>::B` (named)
There's something not being initialized on the singleton class, which is only triggered after adding a named ...
silver_phoenix (Pedro Pinto)
10:54 AM Bug #14895: Inconsistent constant names when using const_set on a singleton class
The names of `A`, `B`, and `Z` are temporary names at the moments of assignment.
Once you assign `x.singleton_class` to a constant, say `C`, they appear as `C::A`, `C::B`, and `C::Z`, respectively.
nobu (Nobuyoshi Nakada)
06:32 PM Feature #14887: Array#delete_if does not use #delete
marcandre (Marc-Andre Lafortune) wrote:
> You probably meant "... call #delete_at in the background".
Yes, Marc-André, that's what i want to mean...
> ...
I don't known ruby background. If it seems impossible, forget about that.
sdaubert (Sylvain Daubert)
07:28 AM Feature #14887: Array#delete_if does not use #delete
@shevegen : the problem is that:
* `delete_if` can't call `delete` for the given reason of duplicates. the example with `with_index` was only an example to show where it differ.
* `delete_if` can't call `delete_at` because it would cau...
Hanmac (Hans Mackowiak)
07:05 AM Feature #14887: Array#delete_if does not use #delete
This is actually a (to me) quite interesting discussion. I want to comment on
a very few things but of course I'll keep in mind that there is a specific
suggestion in the issue which should not be forgotten.
Sylvain suggested, essen...
shevegen (Robert A. Heiler)
03:56 PM Revision 7a0a5854 (git): revert r62655 for r63763
r63655 was tightly coupled to handle_frames and some assumptions seems
to have been broken by r63763.
To partially resolve Bug#14892, this reverts the optimization for now. I
want to make MJIT CI happy first and then I'll probably retry...
k0kubun (Takashi Kokubun)
03:20 PM Revision 96f1c663 (git): * 2018-07-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:20 PM Revision 0860921a (git): Make a prototype
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
12:48 PM Revision 1d74de37 (git): ruby tool/update-deps --fix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
12:22 PM Revision 61d5939c (git): Add missing prototype
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
11:53 AM Revision 7c87ee8a (git): Add missing file
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
11:43 AM Revision 6538f67d (git): Re-apply r63848 (Optimize Time.utc)
* Both timegmw and gmtimew ignores leap second if the timezone doesn't
have leap seconds on the first call of init_leap_second_info()
* Add Bug::Time.reset_leap_second_info for testing
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk...
naruse (Yui NARUSE)
10:59 AM Bug #14863 (Rejected): Array#join with empty array returns empty string always in US-ASCII encoding
duerst (Martin Dürst) wrote:
> On the other hand, if we change it to the source encoding, then the implementation gets more difficult (it has to somehow get the source encoding). Also, some programs that use this functionality in a setu...
nobu (Nobuyoshi Nakada)
08:36 AM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
Yes, I agree with what you say, and I agree with your conclusion, I was just giving an example where it failed with async which highlights the issue :) ioquatix (Samuel Williams)
08:33 AM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
I've shown `to_enum(:aga).to_a` to present the place where I wasn't right.
But if you look at your own second example, you will see that it doesn't do what it should do
(if `Fiber.yield` is replaced with yield point of your scheduler...
funny_falcon (Yura Sokolov)
07:48 AM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
For the first case, you naturally can't call Fiber.yield in that context... but this works:
```
#!/usr/bin/env ruby
require 'fiber'
fiber = Fiber.new do
def aga; yield 1; Fiber.yield 4; yield 8; end
puts to_enum(:aga).to_a
...
ioquatix (Samuel Williams)
07:25 AM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
Yes. While usually Enumerator doesn't call to Fiber.yield, it is called if Enumerator is used as external iterator:
```
> def aga; yield 1; Fiber.yield 4; yield 8; end
> ...
Traceback (most recent call last):
6: from /usr/bin...
funny_falcon (Yura Sokolov)
04:12 AM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
Are you saying that calling Fiber.yield is not valid within an enumerator? ioquatix (Samuel Williams)
07:36 AM Feature #14697 (Assigned): Introducing Range#% as an alias to Range#step
mrkn (Kenta Murata)
04:13 AM Feature #14844: Future of RubyVM::AST?
Here is what I made using RubyVM::AST. It was useful. https://github.com/ioquatix/covered
In the end I made a regular expression to match node type. It was better than I expected.
ioquatix (Samuel Williams)
03:42 AM Bug #14892: r63763 breaks -DMJIT_FORCE_ENABLE=1
And another one.
```
ruby --jit-wait --disable-gems -e '1000.times { break if /a/ =~ "ab" && !$~[0] }'
```
wanabe (_ wanabe)
12:02 AM Bug #14892: r63763 breaks -DMJIT_FORCE_ENABLE=1
A mini reproductive command is here.
```
ruby --jit-wait --disable=gems -e '1000.times { a, b = nil }'
```
wanabe (_ wanabe)
03:20 AM Revision 4c777ac9 (git): Revert "get rid of a compiler warning of VC"
Partially revert r63820. mjit.c seems to have different idea of
"pid" type/size than the rest of Ruby on win32.
As noted in [ruby-core:87794], this seems to break Greg's build.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63856 b...
Eric Wong
03:02 AM Revision 44fc3d08 (git): unrevert r63852 but keep SIGCHLD path disabled for win32
Reading win32/win32.c waitpid implementation, maybe waitpid(-1, ...)
on that platform will never conflict with mjit use of waitpid.
In any case, I've added WAITPID_USE_SIGCHLD macro to vm_core.h
so it can be easy for Linux/BSD users to ...
Eric Wong

07/04/2018

11:20 PM Bug #14884: msys2 mingw32 'rake' has unexpected text at top of file
> Try changing line 4 from `};{#` to `};{ #` (add a space before #). Worked for me in a Git bash shell running `rake --help`.
> ...
I'm using msys2's bash (with ruby installed via msys2's package manager). Putting a space there (or ind...
GardenTools (Garden Tools)
03:11 PM Bug #14884: msys2 mingw32 'rake' has unexpected text at top of file
GardenTools (Garden Tools) wrote:
> Error message is
> ...
Try changing line 4 from `};{#` to `};{ #` (add a space before #). Worked for me in a Git bash shell running `rake --help`.
I don't know what shells you and @nobu use...
MSP-Greg (Greg L)
06:50 AM Bug #14884: msys2 mingw32 'rake' has unexpected text at top of file
Error message is
/c/Ruby25/bin/rake: line 4: {#: command not found
GardenTools (Garden Tools)
10:54 PM Bug #14867: Process.wait can wait for MJIT compiler process
As it was reverted on r63852 by @naruse, assigning this back to Eric. I'm guessing it was reverted since it was not portable mainly for Windows. Whenever you commit things, you can check at least http://mswinci.japaneast.cloudapp.azure.c... k0kubun (Takashi Kokubun)
10:05 PM Feature #14896: Expose Net::HTTPResponse socket for integration with libraries expecting an IO
I have nothing useful to add to the issue at hand as I only very
rarely use Net:: directly (my use cases usually start and end with
open-uri which I think is great) - the reason I comment here is to
suggest to you to add your feature ...
shevegen (Robert A. Heiler)
08:43 PM Feature #14896 (Open): Expose Net::HTTPResponse socket for integration with libraries expecting an IO
As several stdlib libraries support reading from IO-compatible objects (e.g. Zlib::GzipReader, Gem::Package::TarReader), would you be open to making the socket of a Net::HTTPResponse public?
This would enable such use cases as streami...
mudge (Paul Mucur)
06:25 PM Bug #14895 (Closed): Inconsistent constant names when using const_set on a singleton class
Constants defined in the namespace of a class or a module are named on the fly:
```ruby
class X; end
X.const_set(:Y, Module.new) # => X::Y
module M; end
M.const_set(:N, Module.new) # => M::N
```
Constants defined on a singleto...
silver_phoenix (Pedro Pinto)
04:40 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
@ioquatix nothing prevents from adding new method:
`Thread.create(scheduler: :current, args: [block_arg1, block_arg2]){|arg1, arg2| ... }`
Just remark: make test example to use `Fiber.transfer` for the reason above.
funny_falcon (Yura Sokolov)
08:45 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
@funny_falcon I don't think it's easy to change `Thread.new(...)` because arguments are passed to the thread block.
However, if you want an API which doesn't introduce any new class, please check out https://bugs.ruby-lang.org/issues/...
ioquatix (Samuel Williams)
07:37 AM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
Considering implementation, `Fiber.transfer` should be used, not `Fiber.resume`+`Fiber.yield`,
ie exclusively use `fiber_switch(..., ..., ..., 0);` and never use `fiber_yield(..., ...)`+`fuber_resume(...,...,...)`.
Reason: to allow nes...
funny_falcon (Yura Sokolov)
04:39 PM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
Just remark: make test example to use `Fiber.transfer`.
If patch will be accepted, example will be copied, and usage of `Fiber.yield` is not composable with Enumerator.
funny_falcon (Yura Sokolov)
08:17 AM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
Some of the benefits of this PR are:
- Makes it possible to implement different models for concurrency.
- Easy to implement by other Ruby implementations.
- Baseline interface for implementing scheduling, on which other schedulers c...
ioquatix (Samuel Williams)
08:08 AM Feature #14736: Thread selector for flexible cooperative fiber based concurrency
@normalperson that's awesome, great effort! I really appreciate you taking these PRs seriously and the effort you are putting into it.
I'd love to have a systematic comparison. Honestly, the port scanner isn't a great benchmark becaus...
ioquatix (Samuel Williams)
04:10 PM Revision b3799b93 (git): signal.c: packed signals
* signal.c (signals): pack signal names instead of references.
* signal.c (signm2signo): also reject too long signal name.
[ruby-core:87767] [Bug #14893]
reapply r63841 and r63842, which are unrelated to r63758 but had been
wrongly r...
nobu (Nobuyoshi Nakada)
04:04 PM Bug #14890: test/ruby/test_time_tz.rb - Skip on Windows (mswin|mingw)?
@naruse
I'm sorry, maybe I should have been clearer. This isn't the same as r63839.
For platforms that don't support ENV['TZ'], the code in the test file doesn't yield to the blocks passed by all the tests, as you noticed with the...
MSP-Greg (Greg L)
03:45 PM Bug #14890 (Closed): test/ruby/test_time_tz.rb - Skip on Windows (mswin|mingw)?
Fixed by r 63839 naruse (Yui NARUSE)
03:08 PM Revision 36f3e5ec (git): * 2018-07-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:08 PM Revision df4a126d (git): Revert r63758 and related commits
The change is unstable on Windows. Please re-commit it when it correctly
supports Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
naruse (Yui NARUSE)
12:45 PM Revision 0f24cdec (git): Fallback to Digest::SHA512
`Gem::Package::TarWriter#add_file_signed` expects to fallback to
`Digest::SHA512`, and `digest.respond_to? :name` or not.
So lib/rubygems/security.rb should use same logic for
`Gem::Security::DIGEST_ALGORITHM` and `Gem::Security::DIGEST_...
znz (Kazuhiro NISHIYAMA)
12:45 PM Revision e4664efa (git): Skip more rubygems tests when openssl is missing
Some tests are already skipped, but some tests are not.
So latter should be skipped too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)
10:59 AM Revision bd9a78a0 (git): Revert "Optimize Time.utc"
This reverts commit r63848.
It breaks tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
naruse (Yui NARUSE)
10:06 AM Revision dda04838 (git): Optimize Time.utc
Time.utc uses timegmw() and it uses leap second information.
If the given time is larger than known_leap_seconds_limit, it calls
find_time_t, which uses localtime(3) and calls stat(2) in it.
This patch avoid it by setting known_leap_sec...
naruse (Yui NARUSE)
04:39 AM Bug #14863: Array#join with empty array returns empty string always in US-ASCII encoding
nobu (Nobuyoshi Nakada) wrote:
> May I close this?
Yes, please do.
I agree that US-ASCII is the greatest common denominator for source encodings, and there isn't any program that would fail (except if somebody checks for UTF-8 or ...
duerst (Martin Dürst)
01:26 AM Revision 4b20479f (git): internal.h (rb_warning_string): use PRINTF_ARGS
Let compilers do a little extra validation for us
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
01:26 AM Revision d9dac20b (git): thread_pthread.c: pass rb_vm_t to timer_thread_sleep
I love `container_of' for generic data structures, but
in this case it's unnecessary and slightly harder-to-read.
This will make "Timeout in VM" slightly easier-to-read:
https://bugs.ruby-lang.org/issues/14859
git-svn-id: svn+ssh://ci....
Eric Wong

07/03/2018

11:56 PM Revision aec14b33 (git): vm.c: simplified core#hash_merge_kwd
* vm.c (core_hash_merge_kwd): simplified to merge the second hash
into the first hash.
* compile.c (compile_array): call core#hash_merge_kwd with 2
hashes always, by passing an new empty hash to at the first
iteration.
git-svn-id...
nobu (Nobuyoshi Nakada)
11:53 PM Bug #14894 (Closed): Segfault loading iseqs
Follow up on https://github.com/Shopify/bootsnap/issues/172
In particular:
https://gist.githubusercontent.com/SamSaffron/1fe47b86374823fb620a6a29c83538ec/raw/c7e7b8f9bd605ab066bd66258ec76eab6df7fdff/dump.txt
Seeing a segfault...
sam.saffron (Sam Saffron)
11:07 PM Feature #13626: Add String#byteslice!
I support adding `String#byteslice!`. I've been using `String#byteslice` in custom IO-like objects that implement `IO#read` semantics, as the strings I work with don't necessarily have to be in binary encoding (otherwise I'd just use `St... janko (Janko Marohnić)
09:29 PM Revision 8d004ee5 (git): mjit.h: avoid signed pointer comparisons (fix for 32-bit)
ptrdiff_t is a signed type, use uintptr_t instead for unsigned
comparisons.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
03:25 PM Revision 1b812422 (git): * 2018-07-04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
03:25 PM Revision 60fa7d5f (git): Fix compile error
signal.c:69:10: error: variably modified ‘signm’ at file scope
char signm[LONGEST_SIGNAME + 1];
^
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)
01:35 PM Bug #14893 (Closed): Global buffer overflow in signm2signo of signal.c.
Applied in changeset trunk|r63841.
----------
signal.c: packed signals
* signal.c (signals): pack signal names instead of references.
* signal.c (signm2signo): also reject too long signal name.
[ruby-core:87767] [Bug #14893]
nobu (Nobuyoshi Nakada)
12:28 PM Bug #14893 (Closed): Global buffer overflow in signm2signo of signal.c.
Found some memory error with address sanitizer:
```
==29152==ERROR: AddressSanitizer: global-buffer-overflow on address 0x55fb96d91983 at pc 0x7f80615106c6 bp 0x7fff6ee86480 sp 0x7fff6ee85c28
#1 0x55fb96aee1e7 in signm983 thread...
take-cheeze (Takeshi Watanabe)
01:34 PM Revision a0e141b3 (git): signal.c: packed signals
* signal.c (signals): pack signal names instead of references.
* signal.c (signm2signo): also reject too long signal name.
[ruby-core:87767] [Bug #14893]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63841 b2dd03c8-39d4-4d8f-98ff...
nobu (Nobuyoshi Nakada)
01:25 PM Revision a982952e (git): adjust indent [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
12:57 PM Bug #14863: Array#join with empty array returns empty string always in US-ASCII encoding
May I close this? nobu (Nobuyoshi Nakada)
12:37 PM Misc #14861: DevelopersMeeting20180718Japan
* [Feature #13050] Readline: expose `rl_completion_quote_character` variable
* [Feature #14850] Add official API for setting timezone on `Time`
* [Feature #14869] Proposal to add `Hash#===`
* [Feature #14877] Calculate age in `Date` c...
nobu (Nobuyoshi Nakada)
12:35 PM Bug #14884 (Feedback): msys2 mingw32 'rake' has unexpected text at top of file
It's polyglot code for sh and cmd.exe.
What error do you have with it actually?
nobu (Nobuyoshi Nakada)
11:44 AM Bug #14892: r63763 breaks -DMJIT_FORCE_ENABLE=1
I recognize that. I'm currently taking time for RubyBench project but planning to take a look after that. Please ignore the -DMJIT_FORCE_ENABLE=1 until I fix it. k0kubun (Takashi Kokubun)
09:51 AM Bug #14892 (Closed): r63763 breaks -DMJIT_FORCE_ENABLE=1
r63763 ("give up insn attr handles_frame") breaks -DMJIT_FORCE_ENABLE=1
(commit 6b534134a78e3e43c344682c3585e1abab015216 in git)
Related [Bug #14809] [Bug #14834]
Is this being worked on? I mentioned it in [ruby-core:87674],
"mak...
normalperson (Eric Wong)
11:22 AM Feature #14869: Proposal to add Hash#===
> 空の場合は Enumerable#all? と類似の話なので、 true のほうがいいんじゃないでしょうか。
なるほど、参考になります。
> ...
あーこれは確かに問題になりそうですね。対策を考えてみたいと思います。
ありがとうございます。
osyo (manga osyo)
11:10 AM Revision 66bda182 (git): 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
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
naruse (Yui NARUSE)
11:01 AM Revision 6d57d87e (git): [DOC] Use https: instead of git: [ci skip]
ref r63801, r61199
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)
09:06 AM Revision 18c79781 (git): vm.c (rb_source_location): check for NULL cfp->iseq
rb_vm_get_sourceline returns zero if cfp->iseq is NULL,
so rb_iseq_path should not try to follow NULL cfp->iseq,
either.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
08:30 AM Revision 45cdc834 (git): thread_pthread.c (native_thread_destroy): clear native TSD pointer
mwrap <https://80x24.org/mwrap/> interposes malloc functions and
checks for GVL existence to determine Ruby source locations of
malloc calls. pthread_getattr_np (from get_stack) may call
realloc to get the CPU set size; so when using th...
Eric Wong
08:05 AM Bug #14891: Pathname#join has different behaviour to File.join

More examples:
~~~ ruby
Pathname.new('/a').join('c', 'b').to_s #=> "/a/c/b"
Pathname.new('/a').join('/c', 'b').to_s #=> "/c/b"
Pathname.new('/a').join('/c', '/b').to_s #=> "/b"
~~~
Why it does this?
because `"/c"` means star...
Hanmac (Hans Mackowiak)
07:24 AM Bug #14891: Pathname#join has different behaviour to File.join
This behaviour surprised me too. Is it expected that the information from "/a"
is lost? I have no idea but the documentation does not mention this; perhaps
the above could be added as an example OR the behaviour changed (or both).
I...
shevegen (Robert A. Heiler)
02:37 AM Bug #14891 (Closed): Pathname#join has different behaviour to File.join
~~~ ruby
Pathname.new('/a').join('/b').to_s
# => "/b"
File.join(Pathname.new('/a'), '/b').to_s
# => "/a/b"
~~~
in my case `'/b'` was in a variable and it wasn't immediately obvious why it wasn't working when I moved to use Pathna...
robotdana (Dana Sherson)
05:12 AM Revision 8fc203ba (git): cont.c: handle errors for getcontext()
It may raise an error in a certain security configuration.
It is very likely to trigger a segmentation fault if `getcontext()` failed silently
and we just let it keep going.
Related to https://bugs.ruby-lang.org/issues/14883
[Fix GH-190...
nobu (Nobuyoshi Nakada)
04:43 AM Revision b03c1d08 (git): fake.rb.in: duplicated RUBYOPT
* template/fake.rb.in: removed duplicated options in RUBYOPT.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
04:43 AM Revision 6e65c89d (git): rubyopt_spec.rb: skip -v in RUBYOPT examples
* spec/ruby/command_line/rubyopt_spec.rb: skip -v in RUBYOPT
examples when CROSS_COMPILING is set by fake.rb. the version
number by -v is printed before loading libraries by -r options,
so setting RUBY_DESCRIPTION in fake.rb has n...
nobu (Nobuyoshi Nakada)
12:49 AM Revision ef01bbcf (git): configure.ac: [DOC] refine help messages
cflags, cppflags, and cxxflags are additional flags to auto
configured flags, and ignored when the their respective autoconf
default variables are given.
[ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63832 b2dd03c8-39d4-4d...
nobu (Nobuyoshi Nakada)
12:29 AM Revision 54707221 (git): test/ruby/test_signal.rb: speedup some test by disabling RubyGems
test_signame_delivered is reduced from 1.0s to 0.1s
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong

07/02/2018

11:33 PM Bug #14867: Process.wait can wait for MJIT compiler process
nobu@ruby-lang.org wrote:
> Since r63758, `rb_waitpid()` hangs up frequently (not always) on macOS (darwin17).
> Seems `SIGCHLD` is not delivered.

I guess sigsetjmp in r63803 did not help? I don't think it
would, once a thread st...
normalperson (Eric Wong)
09:42 PM Bug #14867 (Assigned): Process.wait can wait for MJIT compiler process
k0kubun / usa / nobu: can you check the return value handling of
_WIN32 waitpid_sys/WaitForSingleObject in process.c as of r63797?
It needs to retry on the timeout==0 (WNOHANG) case.
Thanks.
normalperson (Eric Wong)
11:14 PM Revision a7b874b3 (git): * 2018-07-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
11:14 PM Revision ca37c5d4 (git): process.c (waitpid_nogvl): start timer thread polling for lossy SIGCHLD
For systems with lossy SIGCHLD, an infinitely sleeping timer
thread needs to be aware of rb_waitpid callers in the first
place before it can check and reset polling status.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63829 b2dd03c...
Eric Wong
09:27 PM Bug #14884: msys2 mingw32 'rake' has unexpected text at top of file
Hi Greg,
> Assuming you're running from a cmd/ps shell. Looking at the first few lines of the script, it may also run with a bash shell...
The difficulty is running from bash, which finds 'rake' (and becomes confused when it tries...
GardenTools (Garden Tools)
07:41 PM Feature #14887: Array#delete_if does not use #delete
You probably meant "... call #delete_at in the background".
I think there could be a performance issue for big arrays if calling `delete_at`. For example `delete_if{true}` would be moving `O(n^2)` elements (for no reason!) while `dele...
marcandre (Marc-Andre Lafortune)
06:03 PM Feature #14887: Array#delete_if does not use #delete
I didn't think to enumerators...
Yes, #delete_at is a better choice than #delete, didn't think to it neither...
But #delete and #delete_if methods seem to not call #delete_at neither. Please let me reword the proposal: may #delete ...
sdaubert (Sylvain Daubert)
10:17 AM Feature #14887: Array#delete_if does not use #delete
Do you mean delete_if and reject! should call *delete_at*?
Calling #delete doesn't make sense, as @Hanmac showed above.
In general, I would not recommend to inherit from Array, there are many pitfalls.
It is much simpler and bette...
Eregon (Benoit Daloze)
07:45 AM Feature #14887: Array#delete_if does not use #delete
I don't think there is a way:
~~~ ruby
a = [1,2,3,2,5]
a.delete_if {|x| x == 2}
a #=> [1,3,5]
~~~
this might call delete, but what about this?
~~~ ruby
a = [1,2,3,2,5]
a.delete_if.with_index { |x,i| x == 2 && i == 1 }
a #=...
Hanmac (Hans Mackowiak)
03:53 AM Feature #14887: Array#delete_if does not use #delete
Hmm, let me make it a feature request so that we can consult matz. shyouhei (Shyouhei Urabe)
07:21 PM Bug #14883: Ruby 2.5 Fails to Build on PowerPC 32-bit (BE)
Bingo. It is also an issue for the systemd-nspawn container indeed.
systemd-nspawn have used a libseccomp whitelist instead of a blacklist by default since last year.
`rt_sigprocmask()` & `sigprocmask()` are on the whitelist, but `sw...
lion (Daming Yang)
03:51 PM Bug #14883: Ruby 2.5 Fails to Build on PowerPC 32-bit (BE)
contd.
When it comes to a glibc function `getcontext()`, 'the root issue' of the bug, we can check it in this way:
~~~c
// cat lion_getcontext.c
#include <ucontext.h>
#include <errno.h>
int main() {
ucontext_t c;
if (...
lion (Daming Yang)
03:07 PM Bug #14883: Ruby 2.5 Fails to Build on PowerPC 32-bit (BE)
I did some further investigation. It is a little bit longer story than I thought.
Firstly, the callstacks in Ruby shows that:
~~~
...
/root/ruby/lib/rdoc/parser/ripper_state_lex.rb:594:in `parse'
/root/ruby/lib/rdoc/parser/ripper_...
lion (Daming Yang)
01:18 PM Bug #14883: Ruby 2.5 Fails to Build on PowerPC 32-bit (BE)
naruse (Yui NARUSE) wrote:
> Your build/SEGV log doesn't have the essential part of the crash log.
Bai's friend here. The missing part of the crash log: https://pastebin.aosc.io/paste/fBNM~Lr~C4vfsvHCpmPJOA
lion (Daming Yang)
07:25 AM Bug #14883 (Feedback): Ruby 2.5 Fails to Build on PowerPC 32-bit (BE)
Your build/SEGV log doesn't have the essential part of crash log. naruse (Yui NARUSE)
06:15 AM Bug #14883: Ruby 2.5 Fails to Build on PowerPC 32-bit (BE)
mingcongbai (Mingcong Bai) wrote:
> When building Ruby 2.5.1 on a PowerPC 32-bit (Big Endian) host, the build fails as it generates rdoc - segmentation fault. The build log is as follows:
> ...
This issue is introduced with the followi...
mingcongbai (Mingcong Bai)
05:04 PM Bug #14890 (Closed): test/ruby/test_time_tz.rb - Skip on Windows (mswin|mingw)?
Should the test file test/ruby/test_time_tz.rb be skipped on Windows?
ruby-loco has some additional reporting features, and until r63823, none of the asserts were actually running (see with_tz definition).
Since no asserts are run,...
MSP-Greg (Greg L)
03:49 PM Feature #14888: Add trace point for eval (and related functions)
You can already use `TracePoint` to "catch" the calls to eval:
```
TracePoint.trace(:c_call) do |tp|
if tp.callee_id == :eval
p "Eval called!"
end
end
```
This won't give you access to the arguments though. I'm not su...
marcandre (Marc-Andre Lafortune)
02:32 PM Bug #14882 (Third Party's Issue): OpenSSL::PKey::*.new does not resume after spurious signals
Thank you for the report. I made a GitHub PR that fixes the bug at the GitHub repo (add .patch to the URL for "git format-patch"-style diff):
https://github.com/ruby/openssl/pull/205
rhenium (Kazuki Yamaguchi)
01:51 PM Bug #14876 (Closed): /bin/sh: bad substitution since r63679 on Solaris
Applied in changeset trunk|r63828.
----------
Makefile.in: ARCH_FLAG may contain "-m64" etc.
* Makefile.in (mjit_config.h): ARCH_FLAG may contain "-m64", "-m32",
"-march=i486" and so on, but the change made with r63232 only
support...
ngoto (Naohisa Goto)
01:50 PM Revision 2c68033a (git): Makefile.in: ARCH_FLAG may contain "-m64" etc.
* Makefile.in (mjit_config.h): ARCH_FLAG may contain "-m64", "-m32",
"-march=i486" and so on, but the change made with r63232 only
supports "-arch AAA -arch BBB" mainly used on Mac OS X.
To solve the issue, ARCH_FLAG is parsed and ...
ngoto (Naohisa Goto)
12:32 PM Feature #14857: collect malloc info
ko1@atdot.net wrote:
> https://bugs.ruby-lang.org/issues/14857
> Collected information:
>
> * gen (GC count at allocation)
> * file (C file name)
> * line (C line number at the file)

Btw, I posted a complementary idea, "mwrap"...
normalperson (Eric Wong)
11:28 AM Bug #14846: Backport fixes for Kernel#warn(uplevel:)
Thanks! Eregon (Benoit Daloze)
12:31 AM Bug #14846: Backport fixes for Kernel#warn(uplevel:)
ruby_2_5 r63819 merged revision(s) 61525,61527,63062,63650. nagachika (Tomoyuki Chikanaga)
11:11 AM Revision ad016942 (git): Use PRI_PIDT_PREFIX for results of getpid()
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
10:22 AM Misc #14769 (Closed): DevelopersMeeting20180621Japan
naruse (Yui NARUSE)
09:15 AM Bug #14713: <internal:prelude>:132:in `__write_nonblock': Protocol wrong type for socket (Errno::EPROTOTYPE)
ruby_2_5 r63826 merged revision(s) 63304. nagachika (Tomoyuki Chikanaga)
09:15 AM Revision fcb4a3d8 (git): 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/in...
nagachika (Tomoyuki Chikanaga)
08:54 AM Bug #14862: Time.parse does not handle the time zone
mifrill (Aleksey Strizhak) wrote:
> but the problem is, the behavior is different for all three objects.
`Date` doesn't have time zone, and `Date#to_time` borrows the system timezone.
> ...
`Date` is a discrete library, but `Time`...
nobu (Nobuyoshi Nakada)
08:53 AM Bug #14853: [BACKPORT] NameError#receiver at private constant returns a hidden object
ruby_2_5 r63825 merged revision(s) 63696. nagachika (Tomoyuki Chikanaga)
08:53 AM Revision 4a625f83 (git): 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.
git-svn-id: svn+ssh:...
nagachika (Tomoyuki Chikanaga)
08:42 AM Feature #14869: Proposal to add Hash#===
空の場合は `Enumerable#all?` と類似の話なので、 `true` のほうがいいんじゃないでしょうか。
また、再帰的なハッシュに対して使用したときに無限再帰にならないようにする必要がありそうです。
nobu (Nobuyoshi Nakada)
08:30 AM Bug #14495 (Closed): Enumerator::Lazy#uniq invalid state
Applied in changeset ruby_2_5|r63824.
----------
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]
...
nagachika (Tomoyuki Chikanaga)
08:30 AM Bug #14495: Enumerator::Lazy#uniq invalid state
ruby_2_5 r63824 merged revision(s) 62731,62735. nagachika (Tomoyuki Chikanaga)
08:30 AM Revision bb853294 (git): 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...
nagachika (Tomoyuki Chikanaga)
07:46 AM Bug #14880 (Closed): Time#localtime doesn't always seem to respect TZ
Applied in changeset trunk|r63823.
----------
time.c: [DOC] Time#localtime
* time.c: state that Time#localtime does nothing when nothing
changes. [ruby-core:87675] [Bug #14880]
nobu (Nobuyoshi Nakada)
07:46 AM Revision 482bbde6 (git): time.c: [DOC] Time#localtime
* time.c: state that Time#localtime does nothing when nothing
changes. [ruby-core:87675] [Bug #14880]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
07:42 AM Revision b53114dd (git): set up mjit.on at initialization
* ruby.c (cmdline_options_init): set up mjit.on flag by
MJIT_FORCE_ENABLE in the initialization function.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
nobu (Nobuyoshi Nakada)
03:53 AM Misc #14861: DevelopersMeeting20180718Japan
- [Bug #14887] Array#delete_if does not use #delete (shyouhei)
- Is it by design, or a bug?
shyouhei (Shyouhei Urabe)
01:50 AM Revision e2b7363e (git): * 2018-07-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
01:50 AM Revision dea84229 (git): get rid of a compiler warning of VC
* mjit.c (exec_prcess): use PRI_PIDT_PREFIX for pid.
* win32/Makefile.sub (PRI_PIDT_PREFIX): force to "I".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
U.Nakamura
12:31 AM Revision 905189b2 (git): 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
...
nagachika (Tomoyuki Chikanaga)
12:17 AM Revision d5e44347 (git): bump up teeny version to 2.5.2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@63818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nagachika (Tomoyuki Chikanaga)
12:15 AM Bug #14655: new TestTimeTZ test failures
ruby_2_5 r63817 merged revision(s) 63054,63055,63056. nagachika (Tomoyuki Chikanaga)
12:14 AM Revision 4041a4ff (git): 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: Kiriti...
nagachika (Tomoyuki Chikanaga)
12:07 AM Feature #14844: Future of RubyVM::AST?
It would be nice to expose the class and method/function name if possible. In the case of code coverage, it would allow user to explicitly ignore functions, because we can traverse the AST and ignore every line of the function.
- NODE...
ioquatix (Samuel Williams)

07/01/2018

03:59 PM Bug #14889: TracePoint for :line never seems to trigger on argument list. Maybe by design?
I don't have anything overly helpful to the discussion to add; but I wanted
to add one thing to this:
> We usually write an optional argument in a line: def print_summary(out = $stdout)
While I concur in general, I myself have exp...
shevegen (Robert A. Heiler)
01:39 PM Bug #14889: TracePoint for :line never seems to trigger on argument list. Maybe by design?
I'm unsure about your assumption. If you can insert a newline freely, you may want to write the following code:
```
30 1| def print_summary(
31 | output = (
32 0| $stdout
33 | ...
mame (Yusuke Endoh)
12:13 PM Bug #14889: TracePoint for :line never seems to trigger on argument list. Maybe by design?
If this is by design, please feel free to close, but as it stands there is no way to check if optional argument evaluation occurred or not. For code coverage, this is a limitation. ioquatix (Samuel Williams)
12:12 PM Bug #14889 (Closed): TracePoint for :line never seems to trigger on argument list. Maybe by design?
I have the following code.
```
30 1| def print_summary(
31 0| output = $stdout
32 | )
```
In the margin is the line number followed by the number of hits according to `:line` trace point.
I feel like line 31 sh...
ioquatix (Samuel Williams)
08:12 AM Revision b3fb892d (git): NEWS: add NEWS entry about Kernel#then [Feature #14594]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e ktsj (Kazuki Tsujimoto)
08:12 AM Revision 32a7614d (git): lib/.document: add csv
lib/csv.rb was divided into lib/csv/*.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ktsj (Kazuki Tsujimoto)
01:38 AM Revision cede4ce9 (git): Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
01:38 AM Revision 52f269e0 (git): Remove unused variable
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e znz (Kazuhiro NISHIYAMA)
01:38 AM Revision fe398f87 (git): * 2018-07-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
01:38 AM Revision 36fa6af2 (git): [DOC] newer codes recommend to use spaces only
[Bug #14246]
[ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
znz (Kazuhiro NISHIYAMA)
12:46 AM Feature #14888 (Closed): Add trace point for eval (and related functions)
I'm working on an improved coverage library for Ruby which can compute coverage of things like ERB templates where the source file is not Ruby code but is translated to Ruby code using `eval`.
When using the line trace point, the path...
ioquatix (Samuel Williams)
 

Also available in: Atom