DevMeeting-2017-03-13
Date: 2017/03/13 (Wed) Time: 14:00- 19:00 (JST) Place: Money Forward inc. Headquarter Sign-up: https://ruby.connpass.com/event/51783/ Attendees: Yukihiro Matsumoto (matz), Koichi Sasada, Nobuyoshi Nakada, Yui Naruse, Shyouhei Urabe, Akira Tanaka, Hiroshi Shibata, Masaya Tarui, Martin Dürst (duerst) 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 #13110] Byte-based operations for String (shugo)
- [Bug #13105]
String#to_fandString#to_rdon’t stop successive underscores (nobu) - [Feature #13109]
usingin refinements is required to be physically placed before the refined method call (shyouhei) - [Bug #12705] yielding args to a lambda uses block/proc rather than lambda/method semantics (shyouhei) status?
- [Feature #13095] [PATCH] io.c (rb_f_syscall): remove deprecation notice (shyouhei)
- [Feature #13122] Special syntax for Hash#default_proc (shyouhei)
- [Feature #12650] Use UTF-8 encoding for ENV on Windows (duerst)
- [Feature #6284] Add composition for procs (shyouhei)
- [Feature #13137] Hash Shorthand (shyouhei)
- [Feature #13166] Feature Request: Byte Arrays for Ruby 3 (shyouhei)
- [Feature #9116] String#rsplit missing (shyouhei)
- [Feature #4532] [PATCH] add IO#pread and IO#pwrite methods (shyouhei)
- [Bug #13146] Float::NANs in Hashes are confusing (more than usual). (mrkn)
- [Bug #13134]
Rational()inconsistency (nobu)
From attendees
- [Bug #13257] Symbol#respond_to?(:singleton_class) should be false (naruse)
- [Misc #13163] Uncaught exceptions may not be reported when Thread#report_on_exception=true and Thread#abort_on_exception=true (naruse)
- [Bug #13181] Unexpected line in rescue backtrace (shyouhei) what’s this?
- this week’s “assign who?” section (shyouhei)
- [Bug #13271] Clarifications on refinement spec
- [Bug #13269] test/readline/test_readline.rb and mingw
- [Bug #13298] mingw SEGV TestEnumerable#test_callcc
- [Bug #13280] net/ftp: Putbinaryfile (on Windows) requires blocksize equal to file size
- [Bug #13276] Dir.glob returns empty array when OS has no more file handles (expected exception)
- [Bug #13284] IA64 ruby 2.4 miniruby segfault
- [Bug #13286] Segfault when using rb_debug_inspector_open / rb_debug_inspector_frame_binding_get with Fiddle, but not when directly from C extension
- [Bug #13305] Occasional segfaults after defining methods while running coverage
- [Bug #13307] Changing scheme from http to https for the URI does not change the port number
- [Bug #13282] opt_str_freeze does not always dedupe (shyouhei) seems OK to me
- [Feature #13295] [PATCH] compile.c: apply opt_str_freeze to String#-@ (uminus) (shyohei) seems OK to me as well
- [Feature #13179] Deep Hash Update Method (shyouhei)
- [Feature #8263] Support discovering yield state of individual Fibers (shyouhei)
- [Feature #8576] Add optimized method type for constant value methods (shyouhei)
- [Bug #13188] Reinitialize Ruby VM. (shyouhei) New C API …?
- [Feature #2740] Extend const_missing to pass in the nesting (shyouhei)
- [Feature #13211] Hash#delete taking a splat (shyouhei)
- [Bug #11567] Segmentation fault CFUNC :gets (shyouhei)
- [Feature #13172] Method that yields object to block and returns result (shyouhei) new name candicate
- [Feature #13224] Add FrozenError as a subclass of RuntimeError (shyouhei)
- [Misc #13230] Better Do … while structure (shyouhei)
- [Feature #13245] [PATCH] reject inter-thread TLS modification (shyouhei)
- [Feature #13252] C API for creating strings without copying (shyouhei)
- [Bug #13249] Access modifiers don’t have an effect inside class methods in Ruby >= 2.3 (shyouhei) design issue or bug?
- [Misc #13283] Disable `&’ interpreted as argument prefix warning when passing symbol to Enumerable#map (duerst)
- [Feature #13290] A method to use a hash like in a case construction (duerst)
- [Feature #13265] TracePoint for basic operation redefinition (shyouhei)
- [Bug #12834]
prependgetting prepended even if it already exists in the ancestors chain (shyouhei) - [Bug #7976] TracePoint call is at call point, not call site (shyouhei)
- [Bug #13257] Symbol#singleton_class should be undef (shyouhei)
- [Feature #12901] Anonymous functions without scope lookup overhead (shyouhei) status?
- [Feature #13166] Feature Request: Byte Arrays for Ruby 3 (shyouhei)
- [Feature #12573] Introduce a straightforward way to discover whether a process is running (shyouhei)
- [Feature #13263] Add companion integer nth-root method to recent Integer#isqrt (shyouhei)
- [Feature #12698] Method to delete a substring by regex match (shyouhei)
- [Feature #13290] A method to use a hash like in a case construction (shyouhei)
- [Feature #9453] Return symbols of defined methods for
attrand friends (shyouhei) look at the last comment - [Feature #13302] Provide a (force) –enable-openssl switch for ruby ./configure (or similar) (shyouhei)
- [Feature #13303] String#any? as !String#empty? (shyouhei)
- [Feature #13077] [PATCH] introduce String#fstring method (ko1) some discussions on twitter they don’t like
-'str'notation.
From non-attendees
Write your name and your interest (what do you want to ask and to whom?) please.
-
[Bug #13223] What should the behavior of
File.joinbe whenFile::SEPARATORis set? Can I apply this patch? (tenderlove) -
example: [Feature #10917] Add
GC.stat[:total_time]when GC profiling enabled (ko1)
Log
Date: 2017/03/13 (Mon)
Time: 14:00- 19:00 (JST)
Place: Money Forward inc. Headquarter
Sign-up: https://ruby.connpass.com/event/47745/
log edit: https://docs.google.com/document/d/1fZPbRMn2zjVAflvLz1IFWs3Kdijnm2Um4uNLammqURE/edit
log: TBD
Next meeting
-
4/17
-
at CookPad HQ, yiebisu
About 2.5 timeframe
https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering25
-
合宿
- hsbt: I asked shugo-san and he got budget for this.
-
next action: we have to send him a propsal.
- Jul - Spet?
-
Kanto or not?
- hsbt: I’ll handle.
Current status of Ruby 2.4
-
2.4.1?
-
naruse: working on it.
-
安定版保守事業
-
transition progress report
-
Apr. 1st thtough May 31th
- nobody here is on contract.
- ko1: should there be a ceremony for transition?
Carry-over from previous meeting(s)
-
[Feature #13110] Byte-based operations for String (shugo)
- matz: OK for byteoffset.
- akr: destructive modification using bytesplice may cause string rescan because it can break validity of the string.
- duerst: is byteindex needed? is it enough to add a method for MatchData?
- naruse: that is byteoffset here.
-
akr: byteindex may have problem for inter-codepoint index.
-
[Bug #13105] String#to_f and String#to_r don’t stop successive underscores (nobu)
- nobu: is this intentional?
- ko1: ignore all underscores?
- shyouhei: all? at the beginning?
- ko1: _ generates zero for to_i.
- akr: to_i once allowed multiple underscores but prohibits now.
- tal: ruby’s parser does not allow multiple undersocres as literals.
-
matz: these days other languages follow us like java, python.
- python: PEP-515, no multiple undersocres
-
java: no pre-post undersocres, but multiple inter-underscores allowed.
-
matz: OK, lets make it as we do as literals.
-
[Feature #13109] using in refinements is required to be physically placed before the refined method call (shyouhei)
-
matz: I don’t think it’s a bug. It’s intentional. But we may allow this as an extension.
-
[Bug #12705] yielding args to a lambda uses block/proc rather than lambda/method semantics (shyouhei) status?
- ko1: we should fix the interpreter
- ko1: we introduced ad-hoc change to lambda creation but that turned out to be a mistake, and observed here.
-
ko1: to be fixed in 2.5.
-
[Feature #13095] [PATCH] io.c (rb_f_syscall): remove deprecation notice (shyouhei)
- shyouhei: do we want to remove system calls?
- akr: yes.
- ko1: it is about foreign-function interface
- akr: syscall could be easier than libffi because syscall has only one entry point.
- matz: I think it’s safer to avoid using this feature so kind of reject in mood but …
- akr: current situation is too difficult to use properly, too easy to get used.
-
akr: my suggestion is to move it to ext/syscall.
-
[Feature #13122] Special syntax for Hash#default_proc (shyouhei)
- tal: not only default proc, but also there are default values.
-
matz: reject
-
[Feature #12650] Use UTF-8 encoding for ENV on Windows (duerst)
- nobu: ENV is about inter-process, we cannot change alone.
- shyouhei: seems they need something like “UTF-8 mode”
- nobu: that should be “-U”
- shyouhei: does that option change the encoding of ENV?
- naruse: it might be possible to use default internal.
- akr: is ENV in windows handled by kernel?
- nobu: yes
- akr: then what encoding?
- nobu: so-called wide character.
- duerst: when a PC is used by only one person ENV tends to remain single encoding but when people share a PC, ENV is shared across users. (cp437?)
-
nobu: system-wide.
-
[Feature #6284] Add composition for procs (shyouhei)
- ko1: is it a matter of speed?
- shyouhei: it seems composition is faster now
- nobu: notation seems also be the problem.
- duerst: notation is a point. (f ∘ g)(x) can be either f(g(x)) or g(f(x)).
- matz: I have no strong opinion on it.
-
matz: I’ll respond.
-
[Feature #13137] Hash Shorthand (shyouhei)
-
matz: reject
-
[Feature #13166] Feature Request: Byte Arrays for Ruby 3 (shyouhei)
- akr: I’m for this but I don’t think I can persuade matz.
- matz: exactly.
-
akr: so I proposed setbit/getbit, in order for the OP to create a dedicated class on top of it.
-
[Feature #9116] String#rsplit missing (shyouhei)
- akr: what’s this?
- shyouhei: they say python’s
- naruse: use case?
-
tal: rsplit(…,2) can be generally written using regexp. ohter cases when we cant do this using regexp?
-
[Feature #4532] [PATCH] add IO#pread and IO#pwrite methods (shyouhei)
- akr: portability concern? This is POSIX but added recently.
- shyouhei: POSIX issue 5
- akr: at least 2001 version has this.
-
matz: OK.
-
[Bug #13146] Float::NANs in Hashes are confusing (more than usual). (mrkn)
- nobu: prohibit inserting NaNs into hashs?
-
naruse: that’s nonsense.
-
[Bug #13134] Rational() inconsistency (nobu)
- matz: OK.
From attendees
-
[Bug #13304] public function rb_thread_fd_close is removed at r57422 (naruse)
- naruse: there are usages for this function.
- akr: why do you want to remove this?
- nobu: this is not a function to close a fd (bad naming). rb_io_close shall be used instead.
- ko1: then why not just let it an alias of rb_io_close?
- nobu: shuld we deprecate?
- naruse: no. you can’t deprecate without transition path.
-
conclusion: delete DEPRECATE
-
[Feature #12926] -l flag for line end processing should use chomp! instead of chop! (naruse)
- naruse: should we backport this?
-
matz: I don’t think so.
- [Bug #13181] Unexpected line in rescue backtrace (shyouhei) what’s this?
-
this week’s “assign whom?” section (shyouhei)
- [Bug #13271] Clarifications on refinement spec
- [Bug #13269] test/readline/test_readline.rb and mingw
- [Bug #13298] mingw SEGV TestEnumerable#test_callcc
- [Bug #13280] net/ftp: Putbinaryfile (on Windows) requires blocksize equal to file size
-
[Bug #13276] Dir.glob returns empty array when OS has no more file handles (expected exception)
- nobu: this one predates 1.0. should we backport?
-
matz: I don’t think so.
- [Bug #13284] IA64 ruby 2.4 miniruby segfault
- [Bug #13286] Segfault when using rb_debug_inspector_open / rb_debug_inspector_frame_binding_get with Fiddle, but not when directly from C extension
- [Bug #13305] Occasional segfaults after defining methods while running coverage
-
[Bug #13307] Changing scheme from http to https for the URI does not change the port number
-
[Bug #13282] opt_str_freeze does not always dedupe (shyouhei)
- shyouhei: this is about power_assert
- akr: what’s wrong with it?
- shyouhei: seems tracepoint?
-
ko1: don’t know the exact reason.
-
[Feature #13295] [PATCH] compile.c: apply opt_str_freeze to String#-@ (uminus) (shyohei) seems OK to me as well
-
ko1: this is buggy. Can’t redefine -@ in this patch.
-
[Feature #13179] Deep Hash Update Method (shyouhei)
-
nobu: #bury has already been rejected, no update since then.
-
[Misc #13283] Disable `&’ interpreted as argument prefix warning when passing symbol to Enumerable#map (duerst)
- duerst: the warning is older than Symbol#to_proc
- shyouhei: why not suppress the warning for symbol literals, not for variables
- nobu: lexer / parser gets complicated that case.
- nobu: is this a warning shown everywhere? -> only when -w
- matz: mruby won’t warn this case?
-
nobu: it does.
-
[Feature #13290] A method to use a hash like in a case construction (duerst)
-
matz: I don’t understand the usage. Let me ask the OP.
-
[Feature #13077] [PATCH] introduce String#fstring method (ko1) some discussions on twitter they don’t like -‘str’ notation.
- shyouhei: we can add other stylish names later. -@ is “for the time being”.
- matz: if you have opinions, have a separate issue.
From non-attendees
-
[Bug #13223] What should the behavior of File.join be when File::SEPARATOR is set? Can I apply this patch? (tenderlove)
- ko1: this is a bug.
- nobu: this is either we fix the document to allow other separators or not.
- akr: I’d like to refrain from adding new feature.
- nobu: File.split does not honor the constant.
- shyouhei: It seems jruby honors this constant.
- matz: OK, lets not use File::SEPARATOR, and explicitly state in document that we might ignore reassignments to that constant.