Jan 2016 Meeting

calendar_today January 18, 2016 confirmation_number 3 tickets discussed Source English

DevMeeting-2016-01-18

Date: 2016/01/18 (Mon) Time: 14:00- 18:00 (JST) Place: Tokyo, Japan

Attendees: Assuming active developers. Sign up is required. Please ask ko1 for details. Language: mostly Japanese (sorry for non native Japanese speakers)

Maybe this meeting will be discussion about Ruby 2.4 based on tickets. 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 very busy person, so we can ask him directly on this opportunity. If you can not attend there, then other attendees can ask instead you (if attendees can understand your issue).
    • We will write a log about discussion on a file or each tickets in English.
    • All of activities are best-effort (please remind that most of us are volunteer developers).
    • The date, time and place is when/where we can reserve Matz’s time.

Agenda

  • NOTE: Write at least “ticket number/title/link” and your name. Explain details on the ticket. If you can not attend meeting, short summary are welcome because we can understand easily (long discussion is difficult to read, especially in non-native languages). Your motivation is also welcome.

From Attendees

  • example: [Feature #10917] Add GC.stat[:total_time] when GC profiling enabled (ko1)
  • [Feature #11949] Allow @/$ prefix in Regexp’s named captures
  • [Feature #11987] daemons can’t show the backtrace of rb_bug
  • planning about maintenance branches (usa)

From non-attendees

(Additional explanation is welcome because we can’t ask about it immediately)

Log

Attendees: unak, mrkn, naruse, ayumin, ko1, sorah, zack, martin

Windows CI

  • Section

  • Azure

  • Low security risks (comapre with maintaining physical machines)
  • Periodical payment is not easy
  • Offering by Microsoft is best

  • Phisical machines

  • Easy to buy

  • Schedule

  • Negotiate with MS (wait for up to 6 months)
  • If no positive response, seek other sponsors

  • Negotiation

  • Ayumin
  • Takahashi-san
  • Shibata-san
  • Usa-san

[Feature #11949] Allow @/$ prefix in Regexp’s named captures (naruse)

/(?<@timestamp>[^ ]*): / =~

>> /(?<@a>.)/ =~ 'x'

SyntaxError: (irb):9: invalid char in group name <@a>: /(?<@a>.)/

>> /(?<a@b>.)/ =~ 'x'

=> 0

valid: > /(?<a@-あfoo>a)/.match("a")

=> #<MatchData "a" a@-あfoo:"a">

1.times{

 /(?<a@$b>.)/ =~ 'x'

 p [$~.names, binding.local_variables] #=> [["a@$b"], []]

}

1.times{

/(?.)/ =~ 'x'

p [$~.names, binding.local_variables] #=> [[“a@$b”], [:ab]]

}

  • use case: fluentd scans logs with regexp and convert MatchData into Hash, then send it receivers.
  • Meta characters are allowed in middle of names, but meta characters at the beggining of names are not allowed
  • Maybe it is because $foo is confusing inserting to global bariables, and so on.

  • $foo
  • @foo
  • #foo
  • >foo (NG)
  • \foo

  • Should not set values other than local variabls

Conclusion: acceptable confusion or not. Matz is positive to accept this feature

[Feature #11987] daemons can’t show the backtrace of rb_bug

Process.daemon closes STDERR (or redirect to /dev/null).

There’s no easy and foundamental way.

Conclusion: Use wrapper process to intercept stderr.

Planning about maintenance branches (usa)

  • Maintainance policy

  • two versions with one security version
  • Current living versions

  • 2.3 (maintained 2015/12-??)
  • 2.2 (maintained 2014/12-??)
  • 2.1 (maintained 2013/12-??)
  • 2.0.0 (security, 2013/02-2016/02)

  • Need to determin EOL.
  • Duplicated dates are useful.

  • Summary

  • 2.3 (chikanaga-san: maintained 2015/12-??)
  • 2.2 (usa: maintained 2014/12-2017/03, security phase 2017/04-2018/03)
  • 2.1 (usa: maintained 2013/12-2016/03, security phase 2016/04-2017/03)
  • naruse: want to maintain trunk, not stable branch
  • ask chikanaga-san to confirm his preference: -> he want to maintain younger branch.
  • -> will slide maintainers

2.3 Retrospective

2.4 Release Engineering

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

Announcement channel

We have only mailing lists and www.ruby-lang.org to annouce news. However, it is difficult to catch up latest news by such channels. Any other ideas?

Next release

  • 2.4 or 3.0?
  • 3.0 should contain:

  • concurrency
  • type check
  • performance

naruse’s note https://gist.github.com/nurse/4324519

Remove Fixnum and Bignum

Matz: Try it on 2.4

1 / 2 is Rational

Matz: Difficult to change later.

0.1 is Rational

naruse: use 0.1r

mrkn; 0.1f is required.

timezone name on Windows

naruse: It would be good if we can use IANA time zone name on Windows

rubypath

Path to executing ruby executable

Name issue.

idea: Etc.rubybin

naruse: On OS X, people make a bundle

nobu: To load libraries from relative path, –enable-load-relative

Threads dump on SEGV

ko1: i agree.

Unicode Data File Update

Files don’t get downloaded on a new install (or version update)

Various levels of downloading “urgency” (triggered by ‘make up’ or some subtarget):

Current: Don’t download at all

Ideal: Always check for updates (with If-Modified-Since); don’t actually download data if nothing new

Currently, there’s a flag (ALWAYS_UPDATE_UNICODE = yes at common.mk: 1002) that needs to be manually changed to do 2) but has a comment suggesting 1). If that flag isn’t activated, what happens is 5), but we need at least 4), and a reload when we change the version.

Conclusion: Change to update whenever ‘make up’ is activated

List each Unicode Data file only once

Currently, each file is listed twice (UNICODE_FILES at common.mk:1004 and ./.unicode-$(UNICODE_VERSION).time at common.mk:1021); it would be great if this could be reduced to list each file only once.

Conclusion: Nobu to try to find a solution to avoid duplication, but not make it too complicated, please!

Use of Unicode in Source Files

C source shouldn’t include non ASCII, because there may be some old compilers that bark on it (e.g. working in Shift_JIS and thus barking on UTF-8 input).

lib/unicode_normalize/tables.rb: is auto generated code; raw Unicode character is acceptable.

raw Unicode characters are also acceptable in test files

Next

2015/02/16 (Tue) 14:00-