Jul 2017 Meeting

calendar_today July 14, 2017 confirmation_number 90 tickets discussed Source English

DevMeeting-2017-07-14

Date: 2017/07/14 (Fri) Time: 14:00- 18:00 (JST) Place: Cookpad, Inc. Sign-up: https://ruby.connpass.com/event/60055/ Attendees: 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 #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 #13512] System Threads (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 #13350] File.read :newline option not respected on Linux
    • [Feature #13389] [PATCH] POP3 support timeout for TLS handshake
    • [Bug #13404] Hash#any? yields arguments to lambdas with proc semantics
    • [Bug #13429] Net::SMTP has no read timeout when connexion over TLS
    • [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 #13521] [PATCH] Add fallback for DNS resolver registry key on Wine
    • [Bug #13557] there’s no way to pass backtrace locations as a massaged backtrace
    • [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

  • [Feature #13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid (shyouhei)
  • [Feature #13581] Syntax sugar for method reference (shyouhei)
  • [Feature #13583] Adding Hash#transform_keys method (shyouhei)
  • [Feature #13396] Net::HTTP has no write timeout (shyouhei)
  • [Feature #13587] Improve performance of string interpolation (shyouhei)
  • [Bug #13438] Fix heap overflow due to configure.in not being updated for HEAP_* -> HEAP_PAGE_* variable renaming (shyouhei)
  • [Misc #12529] LEGAL file covering all the license information within Ruby (shyouhei)
  • [Feature #13600] yield_self should be chainable/composable (shyouhei)
  • [Misc #13597] Does read_nonblock call remalloc for the buffer if does it just set the size attribute (shyouhei)
  • [Feature #13606] Enumerator equality and comparison (shyouhei)
  • [Feature #13604] Exposing alternative interface of readline (shyouhei)
  • [Feature #13608] Add TracePoint#thread (shyouhei)
  • [Feature #13602] Optimize instance variable access if $VERBOSE is not true when compiling (shyouhei)
  • [Feature #13613] Prefer that require/require_relative/load to tell us permission error if the target file is unreadable (shyouhei)
  • [Feature #13620] Simplifying MRI’s build system: always install (shyouhei)
  • [Feature #13630] :[] method should accept block in nice syntax (shyouhei)
  • [Feature #13639] Add “RTMIN” and “RTMAX” to Signal.list (shyouhei)
  • [Feature #11484] add output offset for readpartial/read_nonblock/etc (shyouhei)
  • [Feature #9001] Please package better standard library (shyouhei)
  • [Feature #13563] Implement Hash#choice method. (shyouhei)
  • [Feature #12533] Refinements: allow modules inclusion, in which the module can call internal methods which it defines. (shyouhei)
  • [Feature #13653] Bundled zlib helper (shyouhei)
  • [Feature #12589] VM performance improvement proposal (shyouhei)
  • [Feature #13626] Add String#byteslice! (shyouhei)
  • [Feature #13551] Add a method to alias class methods (shyouhei)
  • [Feature #13332] Forwardable#def_instance_delegator nil (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 #13676] to_s method is not overriden for Set (shyouhei)
  • [Feature #13677] Add more details to error “Name or service not known (SocketError)” (shyouhei)
  • [Feature #10771] An easy way to get the source location of a constant (shyouhei)
  • [Feature #13665] String#delete_suffix (shyouhei)
  • [Feature #9323] IO#writev (shyouhei)
  • [Feature #13686] Add states of scanner to tokens from Ripper.lex and Ripper::Filter#on_* (shyouhei)
  • [Feature #13693] Allow String#to_i and / or Kernel::Integer to parse e-notation (shyouhei)
  • [Feature #13434] better method definition in C API (shyouhei)
  • [Feature #13696] Add exchange and noreplace options to File.rename (shyouhei)
  • [Feature #13683] Add strict Enumerable#single (shyouhei)
  • [Misc #13704] Exclude Changelog files from documentation. (shyouhei)
  • [Feature #13666] Development: Writing test code for new features/bug fixes can be done as specs under spec/rubyspec instead of tests under test/ (shyouhei)
  • [Feature #13713] socketの便利メソッドのdatagramのUNIXSocket用対応 (shyouhei)
  • [Feature #13715] [PATCH] avoid garbage from Symbol#to_s in interpolation (shyouhei)
  • [Feature #13719] [PATCH] net/http: allow existing socket arg for Net::HTTP.start (shyouhei)
  • [Feature #13721] [PATCH] net/imap: dedupe attr keys in Net::IMAP::FetchData (shyouhei)
  • [Feature #13732] Precise Time.now on Windows (shyouhei)
  • [Feature #13733] Dump the delegator instead of the delegated object (shyouhei)
  • [Feature #13625] BigDecimal short form / shorthand (shyouhei)
  • [Feature #13712] String#start_with? with regexp (shyouhei)
  • bugs that are not assigned (shyouhei)
    • [Bug #13586] Ruby hangs when accessing array which is modified in instance_eval after Coverage.start
    • [Bug #13574] Method redefinition warning
    • [Bug #13616] Zlib::GzipReader#pos underflows after calling #ungetbyte or #ungetc at start of file
    • [Bug #13593] Addrinfo#== behaves oddly
    • [Bug #13631] Cannot disable site and vendor directories
    • [Bug #13647] Some weird behaviour with keyword arguments
    • [Bug #13649] Net::IMAP doesn’t support response from a Microsoft Exchange server (which is not compliant with RFC standards)
    • [Bug #13654] irb save-history extension is not concurrency-safe
    • [Bug #13655] external encoding named “-“ (doc issue or…?)
    • [Bug #13660] rb_str_hash_m discards bits from the hash
    • [Bug #13671] Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
    • [Bug #13674] BigDecimal comparison with Float::INFINITY is erroneous in 2.2.x and 2.3.x
    • [Bug #13675] Should Zlib::GzipReader#ungetc accept nil?
    • [Bug #13700] Enumerable#sum may not work for Ranges subclasses due to optimization
    • [Bug #13350] File.read :newline option not respected on Linux
    • [Bug #13705] [PATCH] `cfp consistency error’ occurs when raising exception in bmethod call event
    • [Bug #13716] Unexpected or undocumented (or maybe both) behaviour when mixing String#scan with named captures
    • [Bug #13670] [BUG] Bus Error at 0xefce7b (armv7l) (ruby 2.3.4p301)
    • [Bug #13731] inode for Windows on ReFS
    • [Bug #13735] Initialization-error of sortedset

From non-attendees

Write your name and your interest (what do you want to ask and to whom?) please.

  • [Feature #13666] Allow to write specs instead of tests (nobody wants to write test code twice). (eregon)
  • [Feature #13665] Before I added String#delete_prefix. For symmetry, is it okay to commit String#delete_suffix? (sonots)
  • [Feature #13743] Support linking of files opened with O_TMPFILE (mmasaki)

Log

Date: 2017/07/14 (Fri)

Time: 14:00- 18:00 (JST) Place: Cookpad, Inc. Headquarter Sign-up: https://ruby.connpass.com/event/60055/ log edit: Attendees: duerst (Martin Dürst) Language: mostly Japanese (sorry for non native Japanese speakers)

Agenda

  • next

  • 8/31
  • at Cookpad HQ, Yebisu

  • next asofter

  • 9/25
  • at Speee HQ, Roppongi.

About 2.5 timeframe

https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering25

  • naruse: I’ll release PR1 at the end of this month
  • naruse: I’d like to see k0kubun’s LLVM extension to be doable without patches.
  • shyouhei: what change?
  • naruse: exporting APIs that is internal right now.
  • ko1: we need to make APIs clean before doing so.

Carry-over from previous meeting(s)

[Feature #13512] System Threads (shyouhei)

  • ko1: I don’t like this idea.  I don’t want more states over a Thread.
  • matz: I feel needs of more explainations.

  • Previous bugs that were not assigned (shyouhei)

[Bug #13350] File.read :newline option not respected on Linux

  • nobu: on Linux we have to explicitly set text mode.
  • akr: text mode is the default mode when not specified.
  • nobu: then we should automatically assume text mode when newline: is specified.
  • matz: make it so,

[Feature #13389] [PATCH] POP3 support timeout for TLS handshake

  • hsbt: pop3 has no maintainer.
  • naruse: maybe shugo can review the patch?

[Bug #13404] Hash#any? yields arguments to lambdas with proc semantics

  • assign ko1
  • cf: #13391

[Bug #13429] Net::SMTP has no read timeout when connexion over TLS

  • should be closed so that usa can be aware of it.

[Bug #13513] Resolv::DNS::Message.decode hangs after detecting truncation in UDP messages

  • assign akr

[Bug #13501] Process.kill behaviour for negative pid is not documented and may be wrong

  • shyouhei: doc issue?
  • akr: we take negative signal or negative pids.  signal.c:rb_f_kill() has special codes for negative signals but not for negative pids.
  • akr: what happens both signal and pid are negative?

[Bug #13521] [PATCH] Add fallback for DNS resolver registry key on Wine

  • nobu: 3rd party issue?

[Bug #13557] there’s no way to pass backtrace locations as a massaged backtrace

  • nobu: I have to discuss this with ko1.

[Feature #10674] Net::HTTP retries idempotent requests once after a timeout, but its not configurable

  • assign naruse

[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


  • nobu: I cannot reproduce these problems.
  • shyouhei: It seems the reporter is not eligible to fix them.
  • hsbt: I made an environment so I’ll see if they reproduce.

[Bug #13564] Exception message management

  • matz I understand that it breaks encapsulation by theory, but in practice is it worth, for instance, duplicate every time?

From attendees

[Bug #13737] “can’t modify frozen String” when installing bundled gems (ko1)

  • should what happen for tainted string?
  • ko1: it seems there is string.c:fstring_cmp.  Can’t we change this function?

[Feature #13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid (shyouhei)

  • akr: Socket to DB would normally be pooled / shared among threads in normal web applications.  There shall be some locking mechanism to do so.

[Feature #13583] Adding Hash#transform_keys method (shyouhei)

  • matz: seems OK.

[Feature #12589] VM performance improvement proposal (shyouhei)

  • akr: is it OK for people to have C compilers in their production environment?
  • mrkn: normal people need compilers anyways because bundle install needs one.
  • ko1: I think scheme compilers tends to transpile into C.
  • matz: I like this idea itself.

[Feature #13676] to_s method is not overriden for Set (shyouhei)

  • assign knu
  • shyouhei: what is wanted?
  • akr: seems the intension is to call to_a internally
  • knu: is it OK to call inspect?
  • matz: OK.

[Feature #10771] An easy way to get the source location of a constant (shyouhei)

  • nobu: we already maintain constant source locations for redefinition warnings.

[Feature #13434] better method definition in C API (shyouhei)

  • ko1: is it convenient for you to show backtrace of C methods?
  • akr: do we have to know that info?
  • naruse: I have wanted C level stack trace for a long time.

  • bugs that are not assigned (shyouhei)

[Bug #13586] Ruby hangs when accessing array which is modified in instance_eval after Coverage.start

  • assign nobu
  • nobu: seems 2.5 is not affected.

[Bug #13574] Method redefinition warning

  • akira: is it OK that we say this is the right way to suppress warning?
  • matz: reject.

[Bug #13616] Zlib::GzipReader#pos underflows after calling #ungetbyte or #ungetc at start of file

  • naruse: I’ll merge this.

[Bug #13593] Addrinfo#== behaves oddly

  • akr: it’s difficult by theory.

[Bug #13631] Cannot disable site and vendor directories

  • assign nobu

[Bug #13647] Some weird behaviour with keyword arguments

  • nobu: we can explain this behaviour.

[Bug #13649] Net::IMAP doesn’t support response from a Microsoft Exchange server (which is not compliant with RFC standards)

  • assign shugo

[Bug #13654] irb save-history extension is not concurrency-safe

  • akr: it’s same as shells.
  • assign keiju

[Bug #13655] external encoding named “-“ (doc issue or…?)

  • naruse: doc issue.

[Bug #13660] rb_str_hash_m discards bits from the hash

  • akr: it’s intentional.

[Bug #13671] Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters

  • naruse: /(?<!ass)/iu is suffient to reproduce
  • martin:

  • irb(main):004:0> /ßs/i =~ “sß”
  • => 0
  • irb(main):005:0> /sß/i =~ “ßs”
  • => nil
  • But I don’t know the expected behavior.

[Bug #13735] Initialization-error of sortedset

  • assign knu

From non-attendees

Write your name and your interest (what do you want to ask and to whom?) please.

[Feature #13666] Allow to write specs instead of tests (nobody wants to write test code twice). (eregon)

  • Martin: Okay to me.
  • nobu: nobody disallows to write specs at the first place, do they?

[Feature #13665] Before I added String#delete_prefix. For symmetry, is it okay to commit String#delete_suffix? (sonots)

  • shyouhei: should we add it?
  • matz: no objection.

[Feature #13743] Support linking of files opened with O_TMPFILE (mmasaki)

  • nobu: File.link or File#link?
  • akr: what about support linkat(2) instead of a Linux-specific code in core?
  • matz: I think the proposed API is the simplest.  However platform specific.
  • Martin: what about making it as a gem?
  • akr: linkat(2) is at POSIX since 2008.
  • matz: reject this particular proposal.  Think linkat(2) request when such thing requested separatedly.