DevMeeting-2017-06-16
Date: 2017/06/16 (Fri) Time: 14:00- 18:00 (JST) Place: Money Forward inc. Headquarter Sign-up: https://ruby.connpass.com/event/57968/ Attendees: duerst (Martin Dürst) Language: mostly Japanese (sorry for non native Japanese speakers)
Please add your favorite ticket numbers you want to ask to discuss.
- NOTE
- Dev meeting IS NOT a decision making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and other developers directly. Matz is a very busy person. Take this opportunity to ask him. If you can not attend, other attendees can ask instead of you (if attendees can understand your issue).
- We will write a log about discussion to a file or to each ticket in English.
- All activities are best-effort (keep in mind that most of us are volunteer developers).
- The date, time and place is scheduled according to when/where we can reserve Matz’s time.
Agenda
- NOTE: Write at least “ticket number/title/link” and your name (see example below). Explain details on the ticket. If you cannot attend the meeting, we appreciate a short summary because we can understand it more easily (long discussion is difficult to read, especially in a non-native language). Your motivation is also welcome.
About 2.5 timeframe
- https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering25
Carry-over from previous meeting(s)
- [Feature #12733] Bundle bundler to ruby core (shyouhei) updates?
- [Feature #13332] Forwardable#def_instance_delegator nil (shyouhei)
- [Feature #13333] block to yield (shyouhei)
- [Feature #13378] Eliminate 4 of 8 syscalls when requiring file by absolute path (shyouhei)
- [Feature #13381] [PATCH] Expose rb_fstring and its family to C extensions (shyouhei)
- [Feature #13385] [PATCH] Make Resolv::DNS::Name validation similar to host and dig commands (shyouhei)
- [Feature #13383] [PATCH] Module#source_location (shyouhei)
- [Feature #12063] KeyError#receiver and KeyError#name (shyouhei) status?
- [Bug #13397] #object_id should not be signed (shyouhei)
- [Feature #13396] Net::HTTP has no write timeout (shyouhei)
- [Bug #13407] We have recv_nonblock but not send_nonblock… can we add it? (shyouhei)
- [Feature #13395] Add a method to check for not nil (shyouhei)
- [Feature #13383] [PATCH] Module#source_location (shyouhei)
- [Feature #13434] better method definition in C API (shyouhei)
- [Feature #13512] System Threads (shyouhei)
- [Feature #13518] Indented multiline comments (shyouhei)
- [Feature #13516] Improve the text of the circular require warning (shyouhei)
- [Feature #13532] Enable :encoding key or open-uri (open()) similar as to how File.read() and File.readlines() already allow for (shyouhei)
- [Bug #13535] Installing Ruby2.4.1 on Solaris 10 (shyouhei) response?
- [Feature #13568] File#path for O_TMPFILE fds are unmeaning (sorah)
- [Feature #13563] Implement Hash#choice method. (shyouhei)
- Previous bugs that were not assigned (shyouhei)
- [Bug #13196] Improve keyword argument errors when non-keyword arguments given
- [Bug #13320] rescue blocks get an entry in backtrace locations
- [Bug #13336] Default Parameters don’t work
- [Bug #13337] Eval and Later Defined Local Variables
- [Bug #13350] File.read :newline option not respected on Linux
- [Bug #13373] FileUtils methods for copy, move and remove directories is not providing a decent error trace for letting know if it was success or fail
- [Bug #13101] Date#rfc2822 and Time#rfc2822 don’t return the same format
- [Bug #12684] Delegator#eql? missing
- [Feature #13389] [PATCH] POP3 support timeout for TLS handshake
- [Bug #13404] Hash#any? yields arguments to lambdas with proc semantics
- [Bug #13413] –with-static-linked-ext doesn’t install extension files on
make install - [Bug #13429] Net::SMTP has no read timeout when connexion over TLS
- [Bug #13432] set_trace_funcにproc->is_from_method = TRUEのオブジェクトを渡し、SystemStackErrorを発生させるとRubyVMが停止する
- [Bug #13446] refinements with prepend for module has strange behavior
- [Bug #13498] Weakref, Weakmap and define_finalizer don’t work on frozen objects
- [Bug #13513] Resolv::DNS::Message.decode hangs after detecting truncation in UDP messages
- [Bug #13501] Process.kill behaviour for negative pid is not documented and may be wrong
- [Bug #13515] Pathname#join doesn’t add separator on UNC paths
- [Bug #13521] [PATCH] Add fallback for DNS resolver registry key on Wine
- [Bug #13537] ruby crash in rb_gc_mark
- [Bug #13548] miniruby SEGV while building with non-default CFLAGS (caused by __builtin_setjmp)
- [Bug #13555] Disable TestTrace#test_trace_stackoverflow
- [Bug #13557] there’s no way to pass backtrace locations as a massaged backtrace
- [Bug #10290] segfault when calling a lambda recursively after rescuing SystemStackError
- Fix confirmed?
- [Feature #10674] Net::HTTP retries idempotent requests once after a timeout, but its not configurable
- [Bug #13542] MinGW trunk Builds - Summary of Issues
- [Bug #13549] MinGW / Windows encoding - Two issues
- [Bug #13556] MinGW readline Alt / Meta keys
- [Bug #13569] Windows - TestRubyOptions#test_search - append to paths instead of replacing
- [Bug #13564] Exception message management
From attendees
- [Bug #12159] Thread::Backtrace::Location#path returns absolute path for files loaded by require_relative (ko1)
- [Bug #13576] File#to_path shall be deleted (shyouhei)
From non-attendees
Write your name and your interest (what do you want to ask and to whom?) please.
- [Feature #13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid (normalperson, ko1)
- [Feature #12694] Want a String method to remove heading substr.
- (sonots) I implemented with a name
String#remove_prefix. If the name is ok, I want to merge it. Matz, could you decide? There were other candidates such as lchomp, trim_prefix. I dropped trim_prefix because trim is used to remove a list of characters rather than a substring in some languages, so I felt trim_prefix would raise confusion. I dropped lchomp because I just had never heard.
- (sonots) I implemented with a name
Log
Date: 2017/06/16 (Fri)
Time: 14:00- 18:00 (JST) Place: Money Forward inc. Headquarter Sign-up: https://ruby.connpass.com/event/57968/ log edit: https://docs.google.com/document/d/1z19pKt8jlpiEUR3RnWWBCfs3OR_hbiAZMwpQ6ZTllP0/edit# Attendees: duerst (Martin Dürst) Language: mostly Japanese (sorry for non native Japanese speakers)
Agenda
-
next
- 7/14, 14:00~
-
at Cookpad HQ, Yebisu
-
next after
- 8/31
- at Cookpad HQ, Yebisu
About 2.5 timeframe
https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering25
Carry-over from previous meeting(s)
[Feature #12733] Bundle bundler to ruby core (shyouhei) updates?
-
hsbt: rubygems/rubygems 2.7 requires bundler. After it is released, when ruby-core merges that version, we have to take care.
- import bundler for test then?
-
if so why only for test?
- ko1: is there any blocker?
- hsbt: rspec.
[Feature #13332] Forwardable#def_instance_delegator nil (shyouhei)
- assign nobu
[Feature #13333] block to yield (shyouhei)
- ko1: we need more use cases.
- martin: nobu: add them to the ticket.
[Feature #13378] Eliminate 4 of 8 syscalls when requiring file by absolute path (shyouhei)
- nobu: I don’t want to handle fds this way because we can’t close properly on exceptions. I think we should wrap them using IOs.
[Feature #13381] [PATCH] Expose rb_fstring and its family to C extensions (shyouhei)
- ko1: how about it? I don’t like “f”string naming.
- nobu: other languages call it “intern”
- ko1: true but we already have rb_intern().
- ko1: nobody has idea. so that nobu and ko1 will decide it. nobody against exposing this functionality.
[Feature #13385] [PATCH] Make Resolv::DNS::Name validation similar to host and dig commands (shyouhei)
- akr: I can’t say if this is valid until I fully understand the RFC.
- akira: what about using domain_name gem?
- assign akr.
[Feature #13383] [PATCH] Module#source_location (shyouhei)
- akira: needs?
- shyouhei: I think source_locations makes more sense than source_location.
- akira: I started to confuse. Is it useful? We can already get Method#source_location.
[Feature #12063] KeyError#receiver and KeyError#name (shyouhei) status?
- matz: I take KeyError#key.
[Bug #13397] #object_id should not be signed (shyouhei)
- akr: isn’t it possible to somehow calculate so that we can avoid negative object_id? Because pointers are 8 byte aligned, while positive fixnums are of 262 space.
- nobu: it’s true we can avoid negative numbers on some environment, but not always.
- reject this specific issue and request for new issue that address the inspect helper.
[Feature #13396] Net::HTTP has no write timeout (shyouhei)
[Bug #13407] We have recv_nonblock but not send_nonblock… can we add it? (shyouhei)
[Feature #13395] Add a method to check for not nil (shyouhei)
[Feature #13434] better method definition in C API (shyouhei)
- nobu: I think parsing string is not a good idea.
[Feature #13512] System Threads (shyouhei)
[Feature #13518] Indented multiline comments (shyouhei)
[Feature #13516] Improve the text of the circular require warning (shyouhei)
[Feature #13532] Enable :encoding key or open-uri (open()) similar as to how File.read() and File.readlines() already allow for (shyouhei)
[Bug #13535] Installing Ruby2.4.1 on Solaris 10 (shyouhei) response?
[Feature #13568] File#path for O_TMPFILE fds are unmeaning (sorah)
[Feature #13563] Implement Hash#choice method. (shyouhei)
- Previous bugs that were not assigned (shyouhei)
[Bug #13196] Improve keyword argument errors when non-keyword arguments given
[Bug #13320] rescue blocks get an entry in backtrace locations
[Bug #13336] Default Parameters don’t work
[Bug #13337] Eval and Later Defined Local Variables
[Bug #13350] File.read :newline option not respected on Linux
[Bug #13373] FileUtils methods for copy, move and remove directories is not providing a decent error trace for letting know if it was success or fail
[Bug #13101] Date#rfc2822 and Time#rfc2822 don’t return the same format
[Bug #12684] Delegator#eql? missing
[Feature #13389] [PATCH] POP3 support timeout for TLS handshake
[Bug #13404] Hash#any? yields arguments to lambdas with proc semantics
[Bug #13413] –with-static-linked-ext doesn’t install extension files on make install
[Bug #13429] Net::SMTP has no read timeout when connexion over TLS
[Bug #13432] set_trace_funcにproc->is_from_method = TRUEのオブジェクトを渡し、SystemStackErrorを発生させるとRubyVMが停止する
[Bug #13446] refinements with prepend for module has strange behavior
[Bug #13498] Weakref, Weakmap and define_finalizer don’t work on frozen objects
[Bug #13513] Resolv::DNS::Message.decode hangs after detecting truncation in UDP messages
[Bug #13501] Process.kill behaviour for negative pid is not documented and may be wrong
[Bug #13515] Pathname#join doesn’t add separator on UNC paths
[Bug #13521] [PATCH] Add fallback for DNS resolver registry key on Wine
[Bug #13537] ruby crash in rb_gc_mark
[Bug #13548] miniruby SEGV while building with non-default CFLAGS (caused by __builtin_setjmp)
[Bug #13555] Disable TestTrace#test_trace_stackoverflow
[Bug #13557] there’s no way to pass backtrace locations as a massaged backtrace
[Bug #10290] segfault when calling a lambda recursively after rescuing SystemStackError
-
Fix confirmed?
-
nobu: the variant of setjmp seems to be the root cause. The proposed workaround works, but may impact performance. We have to measure before changing the default.
[Feature #10674] Net::HTTP retries idempotent requests once after a timeout, but its not configurable
[Bug #13542] MinGW trunk Builds - Summary of Issues
[Bug #13549] MinGW / Windows encoding - Two issues
[Bug #13556] MinGW readline Alt / Meta keys
[Bug #13569] Windows - TestRubyOptions#test_search - append to paths instead of replacing
[Bug #13564] Exception message management
From attendees
[Bug #12159] Thread::Backtrace::Location#path returns absolute path for files loaded by require_relative (ko1)
- ko1: I want to add Thread::Backtrace::Location#realpath to deprecate #absplute_path instead.
- matz: no objection.
[Feature #13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid (ko1)
-
[Bug #13576] File#to_path shall be deleted (shyouhei)
- akr: did you try deleting this method?
- shyouhei: no, but I should.
- akr: we must start from adding warnings.
From non-attendees
Write your name and your interest (what do you want to ask and to whom?) please.
[Feature #13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid (normalperson)
- ko1: programmers transfer execution of fibers by hand. Eric proposes to introduce “auto”-Fiber which are OK to transfer each other on blocking situations. His implementation is great. rb_wait_for_single_fd is the ponit of switching. matz wanted this feature, too.
- shyouhei: can auto Fibers be a subject to transfer or an object?
- ko1: transfer happens only from an auto fiber to another and nothing else, AFAIK.
- ko1: This is essentially a re-introduction of Ruby 1.8 threads (without time-tick). I’m concerning about thread difficulties like locking.
- akr: is locking OK for auto Fibers?
- ko1: Fibers has not needed locking because so far, Fiber.yield has been the only mechanism to transfer execution so it was very explicit. auto-Fiber changes that so there can be unintended transfers.
- matz: do you want to reject this?
- ko1: I don’t want to accept until we introduce a way to explicitly state where we can transfer, like async/await.
- ko1: I think it’s NG to call routines that are not Fiber-aware from proposed auto-Fiber. I don’t think people can insert appropriate Thread.exclusive calls because if they could, we could never have experienced resource contentions.
- matz: I think it’s hard to tag every and all of fiber-aware routines to be async. That sounds too big.
- matz: show us your counter-proposal.
- ko1: is it OK for you to accept Eric’s proposal as-is?
- matz: I’m positive, but I know your concern so I won’t accept right now.
[Feature #12694] Want a String method to remove heading substr.
-
(sonots) I implemented with a name String#remove_prefix. If the name is ok, I want to merge it. Matz, could you decide? There were other candidates such as lchomp, trim_prefix. I dropped trim_prefix because trim is used to remove a list of characters rather than a substring in some languages, so I felt trim_prefix would raise confusion. I dropped lchomp because I just had never heard.
-
candidates discussed:
- lchomp
- chompl
- guilotine
-
ltrim / rtrim
-
NG because PHP behaves differently
-
delete_prefix
- amatsuda: remove_prefix sounds strange if it doesn’t change the receiver.
- nobu: facets has lchomp.
- akr: I don’t want chomp’s complex newline handling for this requested method.
- ko1: remove_prefix seems has no downsides.
- matz: accept delete_prefix.