Project

General

Profile

Activity

From 08/24/2018 to 08/30/2018

08/30/2018

11:10 PM Feature #14183: "Real" keyword argument
To give an example of how much code this would break, let's use Redmine as an example, since it runs this bug tracker. For simplicity, let's limit our analysis to the use of a single method, ActiveRecord's `where` method. ActiveRecord'... jeremyevans0 (Jeremy Evans)
08:11 PM Feature #15049: [Request] Easily access all keyword arguments within a method
shevegen (Robert A. Heiler) wrote:
> I have had a somewhat related idea in that I wanted a way to access all
> ...
Tbh I hadn't thought too much about naming... Was just trying to get something mocked up quickly. Either way, glad to s...
bherms (Bradley Herman)
07:44 PM Feature #15049: [Request] Easily access all keyword arguments within a method
I have had a somewhat related idea in that I wanted a way to access all
parameters in a simple, short manner. A bit similar to $1 $2 etc... for
regexes, just that we could do so programmatically for the arguments
passed into a method ...
shevegen (Robert A. Heiler)
07:38 PM Feature #15049 (Feedback): [Request] Easily access all keyword arguments within a method
As a developer, I'd like to leverage the power of keyword arguments (requirements, defaults, etc) and then be able to access a hash of all the arguments supplied.
~~~ ruby
def foo(bar:, baz: 1, qux: 2...)
post('/', body: kargs)
e...
bherms (Bradley Herman)
08:03 PM Bug #15050: GC after forking with fibers crashes
normalperson@yhbt.net wrote:
> https://bugs.ruby-lang.org/issues/15050

This fixes the immediate bug, but I think there's other problems
with stack management

```
diff --git a/cont.c b/cont.c
index 7bc1724176..ab42dfb27a 100644...
normalperson (Eric Wong)
07:54 PM Bug #15050 (Closed): GC after forking with fibers crashes
Not sure when to work on this, so leaving this here for now...
The management of stacks for root fiber and regular
fibers is different and confusing. Perhaps unifying
thread and fiber stack cache is the best way to go.
Is a sepa...
normalperson (Eric Wong)
07:14 PM Revision cec21388 (git): * 2018-08-31
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
07:14 PM Revision 13f49235 (git): cont.c (rb_fiber_atfork): th->root_fiber may not exist
Otherwise, bootstraptest/test_fork.rb fails with -DVM_CHECK_MODE=2
[Bug #15041]
Fixes: r64589 "cont.c: set th->root_fiber to current fiber at fork"
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64593 b2dd03c8-39d4-4d8f-98ff-823fe6...
Eric Wong
05:09 PM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
normalperson (Eric Wong) wrote:
> lourens@bearmetal.eu wrote:
> ...
Yes, explains behaviour observed through smaps - correct, `MAP_HUGETLB` works. Will clean it up during the week and submit as a new issue.
methodmissing (Lourens Naudé)
10:52 AM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
lourens@bearmetal.eu wrote:
> * `MADV_HUGEPAGE` - fallback option, implicit request, kernel
> will map it implicit if not aligned to hugepage boundary, or
> right away if aligned to hugepage boundary (I implemented with
> the 2MB al...
normalperson (Eric Wong)
10:19 AM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
ko1 (Koichi Sasada) wrote:
> I agree to introduce COLD attribute.
> ...
Somewhat off topic, but fits with the general direction here.
I have a proof of concept going with mapping the text section to hugepages after a few evenings of...
methodmissing (Lourens Naudé)
01:48 PM Feature #15047: Documentation and more functions for Hash functions in C API
Can I submit the documentation for this as a GitHub PR? I just to make updates to README.EXT.
Also, thank you for the help I will make a note of that in my patch.
v0dro (Sameer Deshmukh)
12:57 PM Feature #15047: Documentation and more functions for Hash functions in C API
> Also, including more functionality like getting the size a Hash directly through
> ...
Use RHASH_SIZE macro.
mrkn (Kenta Murata)
12:46 PM Feature #15047: Documentation and more functions for Hash functions in C API
More documentation would always be very helpful. It makes "entry" into the
ruby world easier when there is good documentation. Perhaps after ruby 3x3
we could add a new meme - four times as good documentation. :D
shevegen (Robert A. Heiler)
09:08 AM Feature #15047 (Open): Documentation and more functions for Hash functions in C API
Currently the C API supports various Array functions like `rb_ary_new()` and String
functions like `rb_str_new2()` I could hardly find any documentation in the README.EXT
for working with hashes. Instead, I relied on this blog: http://...
v0dro (Sameer Deshmukh)
01:29 PM Bug #15039: Random.urandom and SecureRandom arc4random use
naruse (Yui NARUSE) wrote:
> Freaky (Thomas Hurst) wrote:
> ...
... but you've just described concerns over situations where such APIs are unavailable. If you have no /dev/urandom why would you have a /dev/random? If you have no non-...
Freaky (Thomas Hurst)
11:06 AM Bug #15039: Random.urandom and SecureRandom arc4random use
naruse (Yui NARUSE) wrote:
> > > On Darwin, there seems similar issue as OpenBSD.
> ...
As far as I investigated, it's implemented with CCRandomCopyBytes() and fork safe. We should use this.
https://stackoverflow.com/a/21736905/515572
naruse (Yui NARUSE)
07:49 AM Bug #15039: Random.urandom and SecureRandom arc4random use
Freaky (Thomas Hurst) wrote:
> naruse (Yui NARUSE) wrote:
> ...
There's /dev/random and getentropy.
But the size of those entropy is limited.
> > And as Jeremy already pointend, OpenBSD doesn't have urandom alternative syscall beca...
naruse (Yui NARUSE)
12:46 PM Feature #14097: Add union and difference to Array
I'm now for the addition. By the way, don't you need `Array#intersection`? mame (Yusuke Endoh)
08:51 AM Feature #14097: Add union and difference to Array
As @mame already said, I gave a talk at Euruko about this issue:
https://youtu.be/jUc8InwoA-E?t=2m54s
I did an standing up voting. As in the video you can not see the audience, here is the picture I took during the talk with the re...
ana06 (Ana Maria Martinez Gomez)
12:38 PM Misc #14981: DevelopersMeeting20180913Japan
* [Feature #14097] Add union and difference methods to Array (@ana06)
* Addition of two new methods in aim of readability, ease of use, efficiency and consistence. There are already PR for both methods.
* @matz told me to add this ...
ana06 (Ana Maria Martinez Gomez)
06:42 AM Bug #15041: [PATCH] cont.c: set th->root_fiber to current fiber at fork
On 2018/08/29 17:09, Eric Wong wrote:
> Shows me: `resume': fiber called across stack rewinding barrier (FiberError)

Yes, I tried similar code.
Not sure why...

Nobu?

--
// SASADA Koichi at atdot dot net
ko1 (Koichi Sasada)
03:24 AM Revision 3bcb4ff8 (git): hrtime.h: fix typo in non-builtin overflow check
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eric Wong

08/29/2018

11:37 PM Bug #15039: Random.urandom and SecureRandom arc4random use
naruse (Yui NARUSE) wrote:
> I agree with your fundamental concept: if there's more code, there's more bugs.
> ...
If the OS can't provide entropy to a process through urandom or an equivalent syscall, how is it going to safely seed a ...
Freaky (Thomas Hurst)
08:42 PM Bug #15039: Random.urandom and SecureRandom arc4random use
I agree with your fundamental concept: if there's more code, there's more bugs.
I don't fully agree with "userspace CSPRNG is harmful" because it's required.
For example, ruby can't read /dev/urandom if it runs in jail.
And as Jer...
naruse (Yui NARUSE)
04:34 PM Bug #15039: Random.urandom and SecureRandom arc4random use
shyouhei (Shyouhei Urabe) wrote:
> Freaky (Thomas Hurst) wrote:
> ...
Doesn't the name rather waggle its eyebrows at you while glancing pointedly at /dev/urandom? Why else call it that?
> My attempt when fixing #9569 was that arc4r...
Freaky (Thomas Hurst)
04:16 PM Bug #15039: Random.urandom and SecureRandom arc4random use
jeremyevans0 (Jeremy Evans) wrote:
> Freaky (Thomas Hurst) wrote:
> ...
Even if that were the case, it's storing its state in userspace, it's permuting that state in userspace. Where it comes from is beside the point, as is how often ...
Freaky (Thomas Hurst)
08:41 AM Bug #15039: Random.urandom and SecureRandom arc4random use
Freaky (Thomas Hurst) wrote:
> > Or is it not about the code quality in general? Maybe the problem here is that having _any_ bits of instructions in a userland?
> ...
Hmm, OK. I respect your feeling that the arc4random() in FreeBSD (...
shyouhei (Shyouhei Urabe)
05:55 AM Bug #15039: Random.urandom and SecureRandom arc4random use
Freaky (Thomas Hurst) wrote:
> Would rand() stop being a userspace PRNG if it automatically called srand() every 200,000 calls?
If it received the argument to srand() from the kernel, then maybe. :)
> ...
I think in general Secure...
jeremyevans0 (Jeremy Evans)
04:50 AM Bug #15039: Random.urandom and SecureRandom arc4random use
shyouhei (Shyouhei Urabe) wrote:
> Frankly, I'm not sure how less trustworthy FreeBSD libc is, compared to its kernel. They are developed by the same people in a same repository.
FreeBSD /dev/(u)random's seen a *lot* more attention ...
Freaky (Thomas Hurst)
04:19 AM Bug #15039: Random.urandom and SecureRandom arc4random use
jeremyevans0 (Jeremy Evans) wrote:
> Freaky (Thomas Hurst) wrote:
> ...
Would rand() stop being a userspace PRNG if it automatically called srand() every 200,000 calls?
> arc4random_buf(3) is basically like fread(3), where getentrop...
Freaky (Thomas Hurst)
03:53 AM Bug #15039: Random.urandom and SecureRandom arc4random use
Frankly, I'm not sure how less trustworthy FreeBSD libc is, compared to its kernel. They are developed by the same people in a same repository. Or is it not about the code quality in general? Maybe the problem here is that having _any... shyouhei (Shyouhei Urabe)
02:51 AM Bug #15039: Random.urandom and SecureRandom arc4random use
Freaky (Thomas Hurst) wrote:
> jeremyevans0 (Jeremy Evans) wrote:
> ...
srand/rand is the classic userspace PRNG, where all future output is based only on the initial input.
arc4random_buf(3) is basically like fread(3), where getent...
jeremyevans0 (Jeremy Evans)
12:31 AM Bug #15039: Random.urandom and SecureRandom arc4random use
jeremyevans0 (Jeremy Evans) wrote:
> On OpenBSD, arc4random is not really a userspace PRNG in the sense that it is reseeded on a regular basis using new entropy data from the kernel
It runs code in userspace to stretch a small amou...
Freaky (Thomas Hurst)
09:05 PM Bug #15043: MinGW intermittent test failure - TestIO#test_select_leak
@normalperson Eric,
Thanks for looking at it and also the patch. It passed test-all, but as mentioned, it's intermittent and I can't repo it with ruby-loco... Greg
MSP-Greg (Greg L)
07:52 PM Bug #15043: MinGW intermittent test failure - TestIO#test_select_leak
Greg.mpls@gmail.com wrote:
> Bug #15043: MinGW intermittent test failure - TestIO#test_select_leak
> https://bugs.ruby-lang.org/issues/15043

Thanks for the report. r64590 ought to fix it
normalperson (Eric Wong)
07:47 PM Bug #15043 (Closed): MinGW intermittent test failure - TestIO#test_select_leak
Applied in changeset trunk|r64590.
----------
test/ruby/test_io.rb (test_select_leak): use handle_interrupt
Interrupt timing is tricky and it's possible the target
thread is still stopped from the previous loop iteration.
[ruby-core:8...
normalperson (Eric Wong)
01:55 PM Bug #15043 (Closed): MinGW intermittent test failure - TestIO#test_select_leak
@normalperson Eric,
Thought I'd ping you on this, as the test is very new. The above test is not failing on Travis Ubuntu, nor Appveyor mswin or ruby-loco.
It is intermittently failing on the recently added Ruby Appveyor mingw j...
MSP-Greg (Greg L)
07:47 PM Revision 5ba404f4 (git): * 2018-08-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
07:47 PM Revision f1119509 (git): test/ruby/test_io.rb (test_select_leak): use handle_interrupt
Interrupt timing is tricky and it's possible the target
thread is still stopped from the previous loop iteration.
[ruby-core:88732] [Bug #15043]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
06:40 PM Bug #15044: ENV encoding not UTF-8 by default
If I put this into a .rb file:
puts 'secret'.encoding
ENV['PASS'] = 'secret'
puts ENV['PASS'].encoding
On my system I get these two Strings output:
UTF-8
ISO-8859-1
My environment is, aka my current loc...
shevegen (Robert A. Heiler)
02:44 PM Bug #15044 (Closed): ENV encoding not UTF-8 by default
~~~
$ irb
2.5.1 :001 > 'secret'.encoding
=> #<Encoding:UTF-8>
2.5.1 :002 > ENV['PASS'] = 'secret'; ENV['PASS'].encoding
=> #<Encoding:US-ASCII>
2.5.1 :009 > ENV['PASS'] = 'Ł'
=> "\u0141"
2.5.1 :010 > ENV['PASS'].encoding
=> ...
lowang (Przemyslaw Wroblewski)
04:16 PM Bug #15045 (Closed): Test suite fails/hangs with stronger cryptography enforcement
Testing in Fedora Rawhide with ```$ sudo update-crypto-policies --set NEXT``` [1] which sets a higher bar for cryptography algorithms, the test suite fails, several test cases timeouts or even hangs (the WEBrick test suite in particular ... vo.x (Vit Ondruch)
02:12 PM Bug #15027: When Struct#each method is overriden Struct#select and Struct#to_a use wrong collections
```diff
diff --git a/struct.c b/struct.c
index 7de46980aa..e4c875b5be 100644
--- a/struct.c
+++ b/struct.c
@@ -860,6 +860,9 @@ rb_struct_inspect(VALUE s)
static VALUE
rb_struct_to_a(VALUE s)
{
+ if (!rb_method_basic_defini...
nobu (Nobuyoshi Nakada)
11:22 AM Feature #14975: String#append without changing receiver's encoding
ioquatix (Samuel Williams) wrote:
> ```ruby
> ...
Didn't think about it, sorry. But it's only pseudocode. The non-block `#force_encoding` will definitely not work on frozen strings, but the version with a block could be made to work be...
duerst (Martin Dürst)
11:08 AM Feature #14975: String#append without changing receiver's encoding
```ruby
b = 'a'.force_encoding('BINARY')
u = "\u00ff".force_encoding('UTF-8') # aside: force_encoding here is a no-op,
# because \u automatically produces UTF-8
u.force_encoding('BINARY') do
...
ioquatix (Samuel Williams)
10:16 AM Feature #14975: String#append without changing receiver's encoding
As mentioned, the general idea of Ruby m17n is that strings that only contain ASCII bytes (8th bits are all 0) are treated as US-ASCII and can be combined with any ASCII-compatible encoding (taking on that encoding as a result).
The p...
duerst (Martin Dürst)
10:20 AM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
gotoken (Kentaro Goto) wrote:
> For example, `"ss"` and `"st"` are mapped `"ß"` (`"\u00DF"`) and `"st"` (`"\uFB06"`).
> ...
I still have to verify this, but currently I strongly suspect that the problem is NOT in SpecialCasing, but in...
duerst (Martin Dürst)
08:12 AM Bug #595: Fiber ignores ensure clause
Eric Wong wrote:
> It will be difficult/unsafe to use auto-fiber/Thread::Coro
> [Feature #13618] without this

I think I can get around this by making iom a GC root,
so all auto-yielded Fibers get marked.
normalperson (Eric Wong)
03:22 AM Bug #595: Fiber ignores ensure clause
Koichi Sasada wrote:
> Bug #595: Fiber ignores ensure clause
> http://redmine.ruby-lang.org/issues/595

What's the status of this? (I don't understand Japanese)

It will be difficult/unsafe to use auto-fiber/Thread::Coro
[Featur...
normalperson (Eric Wong)
08:12 AM Bug #15041: [PATCH] cont.c: set th->root_fiber to current fiber at fork
ko1@atdot.net wrote:
> (I'm not sure why fork removes other fibers, but)

fib = Fiber.new { puts " HI" }
fork { fib.resume }
Process.waitall

Shows me: `resume': fiber called across stack rewinding barrier (FiberError)

If w...
normalperson (Eric Wong)
08:04 AM Bug #15041 (Closed): [PATCH] cont.c: set th->root_fiber to current fiber at fork
Applied in changeset trunk|r64589.
----------
cont.c: set th->root_fiber to current fiber at fork
Otherwise, th->root_fiber can point to an invalid Fiber,
because Fibers do not live across fork. So consider
whatever Fiber is running t...
normalperson (Eric Wong)
07:20 AM Bug #15041: [PATCH] cont.c: set th->root_fiber to current fiber at fork
(I'm not sure why fork removes other fibers, but)
I think it is okay. let's try.
ko1 (Koichi Sasada)
06:59 AM Bug #15041 (Closed): [PATCH] cont.c: set th->root_fiber to current fiber at fork
cont.c: set th->root_fiber to current fiber at fork
Otherwise, th->root_fiber can point to an invalid Fiber,
because Fibers do not live across fork. So consider
whatever Fiber is running the root fiber.
normalperson (Eric Wong)
08:04 AM Revision ac543abe (git): cont.c: set th->root_fiber to current fiber at fork
Otherwise, th->root_fiber can point to an invalid Fiber,
because Fibers do not live across fork. So consider
whatever Fiber is running the root fiber.
[ruby-core:88723] [Bug #15041]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64...
Eric Wong
02:23 AM Revision 43d3f813 (git): * 2018-08-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
02:23 AM Revision 0b44744d (git): cont.c (rb_context_t): remove ensure_list
It is unused (we use rb_execution_context_t.ensure_list instead)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong

08/28/2018

07:46 PM Bug #15039: Random.urandom and SecureRandom arc4random use
On OpenBSD, arc4random is not really a userspace PRNG in the sense that it is reseeded on a regular basis using new entropy data from the kernel (arc4random_buf(3) -> _rs_random_buf -> _rs_stir_if_needed -> _rs_stir -> getentropy(2)). Se... jeremyevans0 (Jeremy Evans)
07:16 PM Bug #15039 (Closed): Random.urandom and SecureRandom arc4random use
Random.urandom defaults to arc4random() on a lot of platforms, including FreeBSD.
On all currently released versions of FreeBSD, arc4random() is, as the name suggests, a dubious ARC4-based userspace PRNG dating from circa 1997. Given...
Freaky (Thomas Hurst)
04:17 PM Bug #15038 (Closed): Appveyor MinGW - bundled gems missing?
I just noticed that the Appveyor MinGW build is not showing the installed bundled gems in the console output, although the mswin build is.
See r64585 test, [mswin](https://ci.appveyor.com/project/ruby/ruby/build/9494/job/ml60euv5uxa84...
MSP-Greg (Greg L)
02:55 PM Revision 8867f285 (git): Tag a couple specs failing on AIX
* The rest seems OS bugs, MRI bugs or incomplete IPv6 implementation:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/aix71_ppc/ruby-trunk/log/20180828T103302Z.fail.html.gz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64586 b2dd0...
Eregon (Benoit Daloze)
01:42 PM Revision 8a999649 (git): Fixed installation failure with mswin environment.
[ruby-core:88699][Bug #15035]
This patch was provided by MSP-Greg.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hsbt (Hiroshi SHIBATA)
09:41 AM Revision d36cd0b0 (git): Update to ruby/spec@6fd9472
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
08:22 AM Feature #14097: Add union and difference to Array
[@Student](https://bugs.ruby-lang.org/users/6774) as I just answered in the [PR](https://github.com/ruby/ruby/pull/1747#issuecomment-416494207) about the same concern, I'll answer here to:
> I think there are some uses of case. First,...
ana06 (Ana Maria Martinez Gomez)
08:19 AM Feature #15036 (Closed): after upgrade when run apt upgrade metasploit
bennylangston (benny langston)
07:06 AM Feature #15010 (Closed): Reduce allocation for rest parameters
Applied in changeset trunk|r64583.
----------
rest parameter optimization [Feature #15010]
* vm_args.c: rb_ary_dup(args->rest) to be used at most once during
parameter setup. [Feature #15010]
A patch by chopraanmol1 (Anmol Chopra) ...
ko1 (Koichi Sasada)
06:53 AM Feature #15010: Reduce allocation for rest parameters
It seems fine.
I'll commit it.
ko1 (Koichi Sasada)
07:06 AM Revision 1f4efb9a (git): rest parameter optimization [Feature #15010]
* vm_args.c: rb_ary_dup(args->rest) to be used at most once during
parameter setup. [Feature #15010]
A patch by chopraanmol1 (Anmol Chopra) <chopraanmol1@gmail.com>.
* array.c (rb_ary_behead): added to remove first n elements.
git...
ko1 (Koichi Sasada)
06:49 AM Feature #15030: Have T_INTEGER constant for checking Integer types in C API
Eregon (Benoit Daloze) wrote:
> There are certainly cases where a C extension wants to check the argument is an Integer, and its range doesn't matter, isn't it?
For example?
ko1 (Koichi Sasada)
03:58 AM Bug #15035: Windows make install failures
@MSP-Greg
Thanks for your patches. I will merge a patch of `tool/rbinstall.rb` after confirming with my windows environment.
hsbt (Hiroshi SHIBATA)
03:53 AM Bug #15035: Windows make install failures
@hsbt
Thanks for applying the patch. I should have been clearer, as the patch fixes two issues, both involving RubyGems, but one of the patched files (tool/rbinstall.rb) is patched for the parameter passed to a RubyGems method. That...
MSP-Greg (Greg L)
02:39 AM Bug #15035 (Closed): Windows make install failures
Applied in changeset trunk|r64582.
----------
Fixed test failures in mswin environment at r64555.
[ruby-core:88699][Bug #15035]
This patch was provided by MSP-Greg.
hsbt (Hiroshi SHIBATA)
12:41 AM Bug #15035 (Closed): Windows make install failures
@hsbt
Windows has been failing on install, seems due to a combination of RubyGems changes.
ruby-loco is passing with the patch, and the ruby/ruby mswin is completing make install (but failing on some recent spec changes). See GH P...
MSP-Greg (Greg L)
02:39 AM Revision 715666cc (git): Fixed test failures in mswin environment at r64555.
[ruby-core:88699][Bug #15035]
This patch was provided by MSP-Greg.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hsbt (Hiroshi SHIBATA)
02:04 AM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
On 2018/08/27 18:17, Eric Wong wrote:
>>> A joke; at least as far as we know it is a joke :>
>>
>> I'm not sure why uint64_t doesn't solve time machine problem and uint128_t
>> solves it. Any RFC arguing it? (time machines should no...
ko1 (Koichi Sasada)
01:00 AM Feature #14844: Future of RubyVM::AST?
I hope this is relevant.
I found an interesting article here: http://www.oilshell.org/blog/2016/12/11.html
It describes the process Python uses.
It looks like it's standardised in a way that might be a useful goal for `RubyVM::A...
ioquatix (Samuel Williams)
12:24 AM Revision 4d9c2377 (git): thread_pthread.h: rename `gvl.acquired' to `gvl.owner' and document
`acquired' was an old boolean variable, but nowadays it is a
rb_thread_t pointer; "gvl.owner" seems like a more appropriate
name. And document the contended path including waitq, timer,
and timer_err.
git-svn-id: svn+ssh://ci.ruby-lan...
Eric Wong
12:12 AM Bug #15034 (Feedback): Crash in Opensuse Software management
Thank you for your report.
This is a issue tracker for ruby development, and I'm not at all familiar with Yast2 package manager. I just searched by the error message and found:
https://lists.opensuse.org/opensuse-factory/2018-08/m...
mame (Yusuke Endoh)

08/27/2018

11:39 PM Revision fcaf8745 (git): thread_pthread.c: document sigwait_th and sigwait_fd [ci skip]
This is an important concept to document, I think.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
11:29 PM Revision 1b1274f7 (git): thread_pthread.c: fix deadlock on test_thread.rb::test_signal_at_join
Fixes: r64575 ("avoid lock ping-pong in do_gvl_timer & ubf_select")
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
09:37 PM Bug #15034 (Closed): Crash in Opensuse Software management
Hi,
the problem appears when starting the Software Management component of Open Suse's Yast2 package manager.
The software management component starts up for some while, then crashes. The problem has appeared several times in the pa...
martin.strecker@irit.fr (Martin Strecker)
09:19 PM Bug #15033 (Closed): Encoding fallback uses wrong character when multiple conversions are required
When converting a string from one encoding to another that involves multiple conversions, the proc passed to `encode` will be called with the incorrect value if the conversion fails in the middle of the conversion.
For example,
```...
stevecheckoway (Stephen Checkoway)
08:32 PM Feature #13618: [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
> https://bugs.ruby-lang.org/issues/13618

Btw, many of my recent changes ([Misc #15014] (rb_hrtime_t)),
and process.c/thread*.c cleanups in r64542, r64575, r64576,
r64577 are preparatory work for this feature that were
beneficial ...
normalperson (Eric Wong)
07:08 PM Revision 8500714a (git): Rewrite Etc.sysconf spec to allow nil or Integer for all variables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
06:37 PM Revision e61e6ae5 (git): process.c: fix potential missed wakeups in r64576
Oddly, all existing test cases passed multiple times
before this patch (even with --jit-wait), so this seems
like a difficult failure to prove.
Fixes: r64576 ("process.c: simplify SIGCHLD-based waitpid")
git-svn-id: svn+ssh://ci.ruby-l...
Eric Wong
06:34 PM Feature #14912: Introduce pattern matching syntax
"The patterns are run in sequence until the first one that matches."
This means O(n) time for matching. If we are adding this with changes to compiler, we should try to compile it to hash lookup O(1) time
Does this allow nesting of...
dsisnero (Dominic Sisneros)
05:17 PM Revision 9d4027b5 (git): process.c: simplify SIGCHLD-based waitpid
Introduce a new rb_thread_sleep_interruptible that does not
execute interrupts before sleeping. Skipping the interrupt
check before sleep is required for out-of-GVL ruby_waitpid_all
to function properly when setting waitpid_state.ret
N...
Eric Wong
05:17 PM Revision 943bf37b (git): thread_pthread.c: avoid lock ping-pong in do_gvl_timer & ubf_select
This simplifies the locking logic somewhat.
While we're at it, designate_timer_thread is worthless in
ubf_select because gvl_acquire_common already guarantees there
is a gvl.timer if gvl->waitq is populated.
In the future (for auto-fib...
Eric Wong
04:38 PM Revision cda13d8c (git): * 2018-08-28
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
04:38 PM Revision 5ffa775f (git): SC_TZNAME_MAX can also be infinite
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
04:22 PM Revision 293ed16e (git): * append newline at EOF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
04:22 PM Revision 2dca35b9 (git): Update to ruby/spec@007e908
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
04:07 PM Bug #14920: Backport r63857 to fix performance problem on Time class in MacOs systems
Hi @usa.
63994 alone doesn't fix the issue. I just cloned ruby_2_4 with r64560 and run the same benchmark script and got the same result. Only r63857 fix the issue. Can you backport r63857 too?
```
"Main Process: 0.100000 0.0...
rafaelfranca (Rafael França)
01:59 PM Bug #14920: Backport r63857 to fix performance problem on Time class in MacOs systems
ruby_2_4 r64560 merged revision(s) 63994. usa (Usaku NAKAMURA)
02:49 PM Revision 58689fa7 (git): * append newline at EOF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
02:49 PM Revision 85d1a8ba (git): Update to ruby/spec@a89819d
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
02:33 PM Revision 35f2b71c (git): Fix template/fake.rb.in if ENV["RUBYOPT"] is nil
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
02:25 PM Revision 5e9cd520 (git): Fix template/fake.rb.in when external and internal encodings are set
* To be able to run spec/ruby/command_line/dash_encoding_spec.rb
with the in-repo build.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eregon (Benoit Daloze)
02:25 PM Revision cea7d047 (git): * append newline at EOF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
02:25 PM Revision 8180b5bf (git): Update to ruby/spec@09fa86c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
02:19 PM Bug #14942: Windows7でコンソールに長い文字列を出力できない
ruby_2_4 r64564 merged revision(s) 64092. usa (Usaku NAKAMURA)
02:18 PM Revision cccbcd17 (git): merge revision(s) 64092: [Backport #14942]
win32.c: limit write size on console
* win32/win32.c (constat_parse): split long buffer and limit write
size on a console, as well as rb_w32_write.
[ruby-dev:50597] [Bug #14942]
git-svn-id: svn+ssh://ci.ruby...
U.Nakamura
02:15 PM Bug #14941: WindowsでARGVの文字列に汚染マークが付いてない
ruby_2_4 r64563 merged revision(s) 64071. usa (Usaku NAKAMURA)
02:15 PM Revision 94e65989 (git): merge revision(s) 64071: [Backport #14941]
ruby.c: taint ARGV on Windows
* ruby.c (external_str_new_cstr): strings come from the external
should be tainted. [ruby-dev:50596] [Bug #14941]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@64563 b2dd...
U.Nakamura
02:11 PM Bug #14926: Different results between Enumerable#sum and #reduce when Float::INFINITY present
ruby_2_4 r64562 merged revision(s) 64014. usa (Usaku NAKAMURA)
02:11 PM Revision ba757763 (git): merge revision(s) 64014: [Backport #14926]
fix sum on infinity
* array.c (rb_ary_sum): consider non-finite floats.
[ruby-core:88024] [Bug #14926]
* enum.c (sum_iter): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@64562 b2dd03c8-...
U.Nakamura
02:08 PM Bug #14929: [PATCH] thread.c (do_select): fix leak on exception
ruby_2_4 r64561 merged revision(s) 64007,64019,64020. usa (Usaku NAKAMURA)
02:08 PM Revision 95abe79e (git): merge revision(s) 64007,64019,64020: [Backport #14929]
thread.c (do_select): fix leak on exception
When do_select is interrupted and raise happens from
RUBY_VM_CHECK_INTS_BLOCKING, the original FD sets we copied
do not get freed, leading to a memory leak. Wrap up al...
U.Nakamura
01:59 PM Revision 1bbf7789 (git): merge revision(s) 63994: [Backport #14920]
reduce tzset
* time.c (rb_localtime_r): call tzset() only after TZ environment
variable is changed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@64560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
U.Nakamura
01:48 PM Bug #14853: [BACKPORT] NameError#receiver at private constant returns a hidden object
ruby_2_4 r64559 merged revision(s) 63696. usa (Usaku NAKAMURA)
01:48 PM Revision 4941bba3 (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:...
U.Nakamura
01:47 PM Bug #14495: Enumerator::Lazy#uniq invalid state
ruby_2_4 r64558 merged revision(s) 62731,62735. usa (Usaku NAKAMURA)
01:47 PM Revision 7d957281 (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...
U.Nakamura
12:03 PM Feature #15030: Have T_INTEGER constant for checking Integer types in C API
eregontp@gmail.com wrote:
> There are certainly cases where a C extension wants to check the argument is an Integer, and its range doesn't matter, isn't it?
> ...
Not currently, just two calls to `RB_TYPE_P` but that's a trivial
stati...
normalperson (Eric Wong)
10:02 AM Feature #15030: Have T_INTEGER constant for checking Integer types in C API
There are certainly cases where a C extension wants to check the argument is an `Integer`, and its range doesn't matter, isn't it?
Is there a macro to check for that easily?
Eregon (Benoit Daloze)
06:05 AM Feature #15030 (Rejected): Have T_INTEGER constant for checking Integer types in C API
+1 for Hanmac.
C extension writers should check `T_FIXNUM` or `T_BIGNUM` explicitly.
ko1 (Koichi Sasada)
05:49 AM Feature #15030: Have T_INTEGER constant for checking Integer types in C API
hm that is not that easy, while `Fixnum` and `Bignum` are deprecated on the ruby side,
on the C side they still exist
thats why a single `T_INTEGER` check might not work that way you want
Hanmac (Hans Mackowiak)
05:12 AM Feature #15030 (Rejected): Have T_INTEGER constant for checking Integer types in C API
After Integer unification in Ruby 2.4, I think it makes sense to introduce a T_INTEGER
type that helps in directly testing if a Ruby object is an Integer in C API.
For example, currently we need to write `RB_TYPE_P(obj, T_FIXNUM)` f...
v0dro (Sameer Deshmukh)
11:45 AM Feature #15031: T_RANGE for testing whether object is a Range
ko1 (Koichi Sasada) wrote:
> `rb_obj_is_range()` can be accepted like `rb_obj_is_proc` and so on.
> ...
Sure :)
v0dro (Sameer Deshmukh)
06:06 AM Feature #15031: T_RANGE for testing whether object is a Range
`rb_obj_is_range()` can be accepted like `rb_obj_is_proc` and so on.
`T_xxx` shows data layout of `RVALUE`.
ko1 (Koichi Sasada)
05:28 AM Feature #15031 (Open): T_RANGE for testing whether object is a Range
Range is an in-built type of Ruby and it would be better for C extension
writers if there existed a constant `T_RANGE` that could be directly used
for checking whether a `VALUE` is a `Range`.
Currently we need to write `CLASS_OF(obj...
v0dro (Sameer Deshmukh)
10:54 AM Feature #14975: String#append without changing receiver's encoding
> Is there a use-case for using this new method with non-binary strings?
Yes, predictably appending strings without changing receiver encoding. If I make a buffer with a specific encoding, I'd prefer not to have it change encoding wit...
ioquatix (Samuel Williams)
09:46 AM Feature #14975: String#append without changing receiver's encoding
I agree the current behavior for appending with binary strings is surprising.
Especially since the result of the operation depends on whether the receiver and argument are 7-bit or not.
However, it makes sense to me to change the rec...
Eregon (Benoit Daloze)
10:12 AM Revision a6413848 (git): Simplify guards, the behavior seems Linux-specific
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eregon (Benoit Daloze)
10:08 AM Feature #15010: Reduce allocation for rest parameters
@ko1, I've added new field rest_dupped to args_info.
Updated patch https://bugs.ruby-lang.org/attachments/7344/Reduce-allocation-for-rest-parameters-v1.patch
chopraanmol1 (Anmol Chopra)
07:41 AM Feature #15010: Reduce allocation for rest parameters
ko1 (Koichi Sasada) wrote:
> # Idea (as my understanding)
> ...
Yes, and once a rest parameter is duped it mutates the array in case if rest_index is modified (Previously, only args_setup_post_parameters used to mutate rest parameter)....
chopraanmol1 (Anmol Chopra)
06:33 AM Feature #15010: Reduce allocation for rest parameters
Sorry for late response.
# Idea (as my understanding)
~a rest parameter" is dup multiple times because of current implementation. Only 1 "dup" is needed. They should be eliminate.
The patch try to manage "dup'ed or not" by passing...
ko1 (Koichi Sasada)
05:26 AM Feature #15010: Reduce allocation for rest parameters
@ko1, It would be great if you could review https://bugs.ruby-lang.org/attachments/7343/Reduce-allocation-for-rest-parameters-v1.patch chopraanmol1 (Anmol Chopra)
10:05 AM Revision 73c8b1ea (git): * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
10:05 AM Revision 85d46145 (git): Merge master branch from rubygems upstream.
* It's preparation to release RubyGems 3.0.0.beta2 and Ruby 2.6.0
preview 3.
* https://github.com/rubygems/rubygems/compare/v3.0.0.beta1...fad2eb15a282b19dfcb4b48bc95b8b39ebb4511f
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@...
hsbt (Hiroshi SHIBATA)
09:22 AM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
Koichi Sasada <ko1@atdot.net> wrote:
> On 2018/08/27 16:16, Eric Wong wrote:
> > Yep. Maybe some small systems can benefit with
> > usec/msec resolution and uint32_t, though.
>
> My comment is, if it assumes uint64_t, it is worth...
normalperson (Eric Wong)
07:42 AM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
On 2018/08/27 16:16, Eric Wong wrote:
> Yep. Maybe some small systems can benefit with
> usec/msec resolution and uint32_t, though.

My comment is, if it assumes uint64_t, it is worth to write it
explicitly (I verified this years...
ko1 (Koichi Sasada)
07:22 AM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
ko1@atdot.net wrote:
> Thanks!
>
> > + * Hi-res monotonic clock. It is currently nsec resolution, which has over 500 years of range (unsigned).
>
> uint64?

You're welcome. Yep. Maybe some small systems can benefit with
use...
normalperson (Eric Wong)
06:55 AM Misc #15014: thread.c: use rb_hrtime_scalar for high-resolution time operations
Thanks!
> + * Hi-res monotonic clock. It is currently nsec resolution, which has over 500 years of range (unsigned).
uint64?
> ...
what is this?
ko1 (Koichi Sasada)
08:48 AM Revision 3a83ba90 (git): hrtime.h: add note explaining current use of uint64_t [ci skip]
[ruby-core:88678]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
06:31 AM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
Thanks shyouhei for your pointing out.
I imagine another Rexexp option, say `//I`, which is almost the same as `//i` except for never-applying SpecialCasing mapping.
This change extends Unicode matching indeed but does not introduc...
gotoken (Kentaro Goto)
06:02 AM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
gotoken (Kentaro Goto) wrote:
> By the way, this expansion by `//i` option looks over kill for me.
> ...
I know how you feel. Too bad we are just doing what Unicode specifies to do.
See also http://unicode.org/faq/casemap_charpro...
shyouhei (Shyouhei Urabe)
05:44 AM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
Thanks znz. The workaround is helpful. And I understood what was happened.
https://github.com/k-takata/Onigmo/issues/92#issuecomment-373981492 shows how some combinations of letters are variable length.
For example, `"ss"` and `"st"`...
gotoken (Kentaro Goto)
03:46 AM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
You can use `(?:s)` instead of `s` for workaround.
```
$ ruby -ve '/(?<=ast)/iu'
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
-e:1: invalid pattern in look-behind: /(?<=ast)/i
-e:1: warning: possibly useless use of ...
znz (Kazuhiro NISHIYAMA)
02:35 AM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
I encountered a non `ss` case. Is this a same problem?
```
% ruby -ve '"".match(/(?<=ast)/ui)'
ruby 2.6.0dev (2018-08-27 trunk 64549) [x86_64-linux]
-e:1: invalid pattern in look-behind: /(?<=ast)/i
```
It was reproduced in ve...
gotoken (Kentaro Goto)
05:49 AM Revision 50840311 (git): hrtime.h: missing paren
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
05:48 AM Revision 995bc923 (git): hrtime.h: explicit casts to time_t
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
05:39 AM Revision 762f44cf (git): configure.ac: printf prifix for int64_t
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e nobu (Nobuyoshi Nakada)
05:32 AM Revision 49a55f28 (git): thread.c: check interrupts explicitly in select/ppoll blocking regions
The logic around blocking_region_begin is confusing to me,
but the goal of this patch is to ensure rb_sigwait_fd_get
and rb_sigwait_fd_put are matched.
In other words, we don't want a thread to hold sigwait_fd
forever if an exception is...
Eric Wong
04:41 AM Bug #13593: Addrinfo#== behaves oddly
ioquatix (Samuel Williams) wrote:
> Doing a binary comparison would be acceptable.
I don't think so. As Akira already pointed out,
- Addrinfo have "padding" bits which are not stable. Binary comparison might fail at that point.
...
shyouhei (Shyouhei Urabe)
04:33 AM Bug #13593: Addrinfo#== behaves oddly
Doing a binary comparison would be acceptable. ioquatix (Samuel Williams)
04:29 AM Bug #14880: Time#localtime doesn't always seem to respect TZ
@nobu Isn't changing TZ enough that `#localtime` should do something? ioquatix (Samuel Williams)
04:25 AM Feature #14888: Add trace point for eval (and related functions)
@marcandre I already added support for coverage of templates and it works pretty well. You need to be careful with template code generation, but for the most part it's fairly straight forward. Thanks for your detailed reply - if we could... ioquatix (Samuel Williams)
04:23 AM Feature #15022: Oneshot coverage
Did you take a look at https://github.com/ioquatix/covered - I'd be interested in your feedback. Can we discuss further, and also how to improve performance? There is some more discussion here: https://bugs.ruby-lang.org/issues/14888 ioquatix (Samuel Williams)
04:22 AM Feature #15022: Oneshot coverage
What about using trace points? ioquatix (Samuel Williams)
04:19 AM Misc #14981: DevelopersMeeting20180913Japan
* [Feature #14975] String#append without changing receiver's encoding (ioquatix)
* Can we review this PR? We need to decide functionality (i.e. not changing receivers encoding, rejecting encoding if it's not same, unless receiver is b...
ioquatix (Samuel Williams)
01:30 AM Revision bab586e7 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
01:30 AM Revision 6a052fcd (git): * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
01:30 AM Revision 95e213d3 (git): Merge rdoc-6.1.0.beta1.
* https://github.com/ruby/rdoc/compare/v6.0.4...v6.1.0.beta1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hsbt (Hiroshi SHIBATA)
12:44 AM Revision 41fb2436 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
12:44 AM Revision 56ac079e (git): * 2018-08-27
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
12:44 AM Revision 867581dd (git): Merge psych-3.1.0.pre1.
* Update bundled libyaml-0.2.1 from 0.1.7.
https://github.com/ruby/psych/pull/368
* Unify Psych's API: To use keyword arguments with method call.
https://github.com/ruby/psych/pull/358
git-svn-id: svn+ssh://ci.ruby-lang.org/ru...
hsbt (Hiroshi SHIBATA)

08/26/2018

11:49 PM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
naruse (Yui NARUSE) wrote:
> methodmissing (Lourens Naudé) wrote:
> ...
Thanks for clarifying the context there. I looked @ MSVC attributes / annotations and `cold` (or anything similar) is not supported, thus for `cold` and `hot` attr...
methodmissing (Lourens Naudé)
12:41 PM Revision e0311eb8 (git): test/ruby/test_io.rb (test_recycled_fd_close): Linux workaround
Arch Linux CI still seems to timeout on this test...
Note, I can't reproduce the failures in these tests on a
FreeBSD 11.1 VM while infinite-looping, even without the
"th.join(0.001)". It doesn't seem related to the use of
rb_wait_for_...
Eric Wong
12:41 PM Revision 70d6c1a1 (git): thread_sync.c: common wakeup_{one,all} implementation
This let us avoid looping in rb_szqueue_max_set, saves us
some lines of code and reduces binary size slightly
(numbers from 32-bit x86):
text data bss dec hex filename
before: 91272 392 156 91820 ...
Eric Wong
12:36 PM Bug #15027: When Struct#each method is overriden Struct#select and Struct#to_a use wrong collections
as a middle way, can't we just do the "is overwritten by user" check?
i think i have seen it on other classes like Array or Hash
so it checks if the `each` method is overwritten, in that case, call the `Enumerable` method,
if not, c...
Hanmac (Hans Mackowiak)
06:53 AM Bug #15027: When Struct#each method is overriden Struct#select and Struct#to_a use wrong collections
Since matz asked for feedback, just a comment - I have no particular pro or con opinion
per se, mostly because I very rarely use the Struct/OpenStruct family; I usually just end
up writing a "real" class instead and adapt it to what is...
shevegen (Robert A. Heiler)
02:46 AM Bug #15027: When Struct#each method is overriden Struct#select and Struct#to_a use wrong collections
I'm against changing the current behavior. If you can override `each`, you can override other methods. If we wanted to be consistent about making this change, we would probably need to remove most the following additional core methods ... jeremyevans0 (Jeremy Evans)
01:56 AM Bug #15027 (Feedback): When Struct#each method is overriden Struct#select and Struct#to_a use wrong collections
The proposed behavior is more consistent but slower. I am not sure it's a good idea to hinder performance by supporting consistency in the rare case. Any opinion?
Matz.
matz (Yukihiro Matsumoto)
09:08 AM Feature #14097 (Assigned): Add union and difference to Array
Thank you for the answer. I'm assigning this ticket to matz. mame (Yusuke Endoh)
08:52 AM Feature #14097: Add union and difference to Array
@mame
> However, I'm now getting confused. I thought you agreed that Array#union should be non-destructive, but in your talk you explained it was a destructive union operator. What are you driving at?
In the talk I wanted to focus ...
ana06 (Ana Maria Martinez Gomez)
06:03 AM Bug #15019 (Assigned): Documentation for Net::HTTP claims that multipart/form-data is not supported
hsbt (Hiroshi SHIBATA)
04:29 AM Revision 84859fd2 (git): process.c: remove worthless waitpid_sys macro
It is identical to do_waitpid, and the win32 version will not
be needed for MJIT (since win32 does not suffer from the
waitpid(-1, ...) conflict where waits can get stolen.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64541 b2dd03c...
Eric Wong

08/25/2018

10:32 PM Revision 32910b87 (git): test/io/wait/test_io_wait_uncommon.rb: relax /dev/random check
Too many machines lack entropy to have a usable /dev/random. I
had similar problems on my system until I started using
haveged(8), but we can't require that for CI.
cf. https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian/ruby-trunk/...
Eric Wong
10:14 PM Revision 894847a5 (git): thread_pthread.c (ubf_wakeup_thread): `th' is never NULL
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Eric Wong
09:59 PM Revision 70a8a6d3 (git): thread_pthread.c: main thread always gets hit by signals
We need to ensure Signal.trap handlers can function if the main
thread is sleeping after a subthread has grabbed sigwait_fd,
but later exited.
Consider the following timeline:
main_thread sub-thread
------------------------...
Eric Wong
09:33 PM Revision 49309733 (git): * 2018-08-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
09:33 PM Revision b4084d7c (git): thread.c: quiet down -Wmaybe-uninitialized on gcc 7.[2-3]
Haven't tested gcc 8, yet; but gcc 6 seems fine....
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
05:40 PM Misc #15007: Let all Init_xxx and extension APIs frequently called from init code paths be considered cold
methodmissing (Lourens Naudé) wrote:
> ko1 (Koichi Sasada) wrote:
> ...
It uses function style macro because some function attribute of MSVC are valid only if written as suffix.
Therefore about coldfunc, just constant style is ok.
...
naruse (Yui NARUSE)
05:29 PM Bug #15027 (Rejected): When Struct#each method is overriden Struct#select and Struct#to_a use wrong collections
### Bug
Here's the code snippet that should reproduce the problem:
~~~ ruby
class Foo < Struct.new(:bar)
def each(&block)
[:baz, :qux].each(&block)
end
end
foo = Foo.new(:foo)
foo.map(&:itself) # => [:baz, :qux] #...
bruno (Bruno Sutic)
03:13 PM Feature #14097: Add union and difference to Array
Ana, I watched the video of [your EuRuKo talk](https://www.youtube.com/watch?v=jUc8InwoA-E). I could understand the background of your proposal.
However, I'm now getting confused. I thought you agreed that `Array#union` should be no...
mame (Yusuke Endoh)
09:02 AM Revision 95abea43 (git): hrtime.h: add documentation
I updated the patch with documentation but forgot about it,
earlier :x
[ruby-core:88616] [Misc #15014]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
06:58 AM Misc #15014 (Closed): thread.c: use rb_hrtime_scalar for high-resolution time operations
Applied in changeset trunk|r64533.
----------
thread.c: use rb_hrtime_t scalar for high-resolution time operations
Relying on "struct timespec" was too annoying API-wise and
used more stack space. "double" was a bit wacky w.r.t roundi...
normalperson (Eric Wong)
06:58 AM Revision 0e063601 (git): * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
06:58 AM Revision b0253a75 (git): thread.c: use rb_hrtime_t scalar for high-resolution time operations
Relying on "struct timespec" was too annoying API-wise and
used more stack space. "double" was a bit wacky w.r.t rounding
in the past, so now we'll switch to using a 64-bit type.
Unsigned 64-bit integer is able to give us over nearly 5...
Eric Wong
05:05 AM Feature #15024: Support block in Array#join
I'd like somewhat to agree with the motivation. Indeed, I sometimes feel I want to insert separators between each pair of elements. However, I cannot remember the concrete situation, and how often I have encountered the situation. The... mame (Yusuke Endoh)
03:23 AM Feature #15024: Support block in Array#join
`Array#join` concatenates array elements recursively.
What do you expect as the index between different level elements?
nobu (Nobuyoshi Nakada)
02:32 AM Revision 7c31c273 (git): drb: close graceful shutdown pipe before socket
Closing a listen socket while entering select(2) may
trigger IOError or even deadlock because another thread
may give the file descriptor to another file description;
meaning the kernel can wait on the wrong description.
git-svn-id: svn...
Eric Wong
02:32 AM Revision a4802248 (git): drb: simplify shutdown pipe close logic
IO#close is idempotent, so we don't need to waste bytecode
to check or nil it at shutdown time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
01:13 AM Bug #15025 (Closed): Encountered a bug in interpreter or extension libraries
Seems an already fixed bug. nobu (Nobuyoshi Nakada)

08/24/2018

10:32 PM Revision 7710bdd1 (git): Add AIX guards
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e naruse (Yui NARUSE)
08:55 PM Feature #15024: Support block in Array#join
For `%{a b c d}.join { |_,_,i| i.to_s } == "a0b1c2d"`, you could do:
~~~ ruby
*a, l = %w{a b c d}; a.each.with_object('').with_index{|(v, str), i| str << v << i.to_s} << l
~~~
That definitely isn't as nice looking. I can see the...
jeremyevans0 (Jeremy Evans)
07:54 PM Feature #15024: Support block in Array#join
Doesn't `#each_slice` create temporary array for each pair? Doesn't seem very efficient. But assuming that does not matter, can I use something similar to produce `%{a b c d}.join { |_,_,i| i.to_s } == "a0b1c2d"`, is there oneliner for t... graywolf (Gray Wolf)
05:45 PM Feature #15024: Support block in Array#join
Your examples are both possible to implement using existing Array methods:
~~~ ruby
puts %w{a b c d}.each_slice(2).map{|a| a.join(", ")}.join("\n")
a, b
c, d
%w{a b c d}.each_cons(2).with_index.each{|a, i| puts (a << i).join(":"...
jeremyevans0 (Jeremy Evans)
05:11 PM Feature #15024 (Open): Support block in Array#join
I think it could be handy to have block support in Array#join.
For example
```ruby
> puts %w{a b c d}.join { |_, _, i| i % 2 == 1 ? "\n" : ', ' }
a, b
c, d
```
not sure what arguments exactly the block should take, atm I'm t...
graywolf (Gray Wolf)
08:28 PM Revision 6277b924 (git): test/ruby/test_io.rb (test_recycled_fd_close): use IO#read to avoid ppoll call
IO#sysread calls rb_wait_for_single_fd for compatibility, and
perhaps something is amiss with that (unrelated to timer-thread
elimination)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Eric Wong
08:03 PM Bug #15025 (Closed): Encountered a bug in interpreter or extension libraries
/Users/suyesh/.rbenv/versions/2.6.0-preview2/lib/ruby/gems/2.6.0/gems/bootsnap-1.3.1/lib/bootsnap/compile_cache/iseq.rb:18: [BUG] Segmentation fault at 0x000000000001cfa0
ruby 2.6.0preview2 (2018-05-31 trunk 63539) [x86_64-darwin17]
...
suyesh (suyesh bhandari)
07:19 PM Misc #15011 (Closed): [PATCH] thread_pthread.c: use eventfd instead of pipe on Linux
Applied in changeset trunk|r64527.
----------
thread_pthread.c: use eventfd instead of pipe on Linux
Based on r64478, any regular user creating more than 1024 pipes
on Linux will end up with tiny pipes with only a single page
capacity....
normalperson (Eric Wong)
07:19 PM Revision 72af13f3 (git): * 2018-08-25
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e svn[bot]
07:19 PM Revision 0a77fd04 (git): thread_pthread.c: use eventfd instead of pipe on Linux
Based on r64478, any regular user creating more than 1024 pipes
on Linux will end up with tiny pipes with only a single page
capacity. So avoid wasting user resources and use lighter
eventfd on Linux.
[ruby-core:88563] [Misc #15011]
g...
Eric Wong
04:04 PM Bug #15023: Time precision (in microsecond) inaccurate after performing strftime
`Time.at` supports `Rational` numbers too.
```ruby
puts Time.at(1486525793.995r).strftime("%s.%6N") #=> 1486525793.995000
```
nobu (Nobuyoshi Nakada)
03:58 PM Bug #15023 (Rejected): Time precision (in microsecond) inaccurate after performing strftime
IEEE 754 floating point numbers are inexact, and cannot represent that value exactly.
```ruby
printf("%.20f\n", 1486525793.995) #=> 1486525793.99499988555908203125
```
You can use the second argument to `Time.at` if you have accu...
nobu (Nobuyoshi Nakada)
03:41 PM Bug #15023 (Rejected): Time precision (in microsecond) inaccurate after performing strftime
Please see the example below. I think we should expect the result to be "1486525793.995". Right?
OS version: MacOS High Sierra 10.13.6
Ruby version: 2.5.1
~~~ ruby
2.5.1 :005 > Time.at(1486525793.995).strftime("%s.%6N")
=> "1...
calvinchso (Calvin So)
02:47 PM Bug #14997: Socket connect timeout exceeds the timeout value for
If anyone is actually willing to confirm, that it is indeed an unwanted / unexpected behavior, I offer to fix it.
It could be fixed by tracking how much of the time "pool" has been used and lowering the timeout value appropriate for t...
maciej.mensfeld (Maciej Mensfeld)
02:47 PM Bug #15021: Segfault when compiling certain code on Ruby 2.5.1
I think this is duplicate of https://bugs.ruby-lang.org/issues/14897 which contain the fix and the backport request tags. rafaelfranca (Rafael França)
09:56 AM Bug #15021: Segfault when compiling certain code on Ruby 2.5.1
Can reproduce this on 2.5, but not on trunk. Seems 2.5 needs a backport?
Not sure which is the exact revision though.
shyouhei (Shyouhei Urabe)
09:44 AM Bug #15021: Segfault when compiling certain code on Ruby 2.5.1
Sorry there's a small typo. The command to run the script is `ruby code.rb` not `ruby foo.rb` st0012 (Stan Lo)
09:40 AM Bug #15021 (Closed): Segfault when compiling certain code on Ruby 2.5.1

## Steps to reproduce
save the following code to `code.rb`
```
code =<<CODE
if false
new(arg: $arg)
end
CODE
RubyVM::InstructionSequence.compile(code).to_binary
```
and simply run `ruby foo.rb` then you'll get
```
c...
st0012 (Stan Lo)
01:32 PM Misc #14981: DevelopersMeeting20180913Japan
* [Feature #15022] Oneshot coverage
* I'd like to introduce a new kind of coverage to record whether each line is executed or not. It provides less but still useful information compared to the traditional line coverage, and the measu...
mame (Yusuke Endoh)
01:28 PM Feature #15022 (Closed): Oneshot coverage
I'd like to introduce a new feature to the coverage library, namely, "oneshot coverage".
## Synopsis
The following is a sample target program "test-cov.rb":
```
1: def foo
2: :foo
3: end
4:
5: def bar
6: :bar
7: end
...
mame (Yusuke Endoh)
10:25 AM Bug #15020 (Closed): [PATCH] Add 'guards' for mswin, mingw, update test_readline.rb
Applied in changeset trunk|r64526.
----------
ext/readline/extconf.rb: try using more readline APIs
on MinGW.
[Bug #15020]
From: MSP-Greg <Greg.mpls@gmail.com>
k0kubun (Takashi Kokubun)
01:58 AM Bug #15020: [PATCH] Add 'guards' for mswin, mingw, update test_readline.rb
@k0kubun,
I forgot one patch that I have on `ext/readline/extconf.rb`, at [ruby-loco/patches/ext-readline-extconf.rb.patch](
https://github.com/MSP-Greg/ruby-loco/blob/d41930447c93079a51a8bbbe200aa23cdffc808d/patches/ext-readline-ext...
MSP-Greg (Greg L)
10:25 AM Revision 5bd4283f (git): ext/readline/extconf.rb: try using more readline APIs
on MinGW.
[Bug #15020]
From: MSP-Greg <Greg.mpls@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
k0kubun (Takashi Kokubun)
08:26 AM Feature #14989: Add Hash support for transient heap
~~~
Hello, I took a look at add-hash-support-for-transient-heap.patch.
It seems lines are copy & pasted from st.c to hash.c. This is in fact
a wise idea to avoid common pitfalls. I have almost no comments on
that part.
> --- a...
shyouhei (Shyouhei Urabe)
05:55 AM Feature #15009 (Assigned): Add negotiated SSL protocol and cipher to Net::HTTP debug output
znz (Kazuhiro NISHIYAMA)
 

Also available in: Atom