DevelopersMeeting20140726Japan

[Feature #7797] Hash should be renamed to StrictHash and a new Hash should be created to behave like AS HashWithIndifferentAccess

matz: I have to reject, since it breaks compatibility

→ reject

[Feature #9980] Create HashWithIndiferentAccess using new syntax {a: 1}i

matz: Suffix `i` is used for complex (imaginary) numbers. It's bit confusing.

Maybe what you want can be gained by shorter/nicer name for Hash#compare_by_identity.

→ reject

[Feature #9064] Add support for packages, like in Java

Action: Matz  to write a few questions back to the proposer

[Feature #8631] Add a new method to ERB to allow assigning the local variables from a hash

Now it can be implemnted with Pure Ruby.

If hash is given, what will be `self` of ERB?

[Bug #8543] rb_iseq_load

Modify it (best effort).

[Feature #10084] Add Unicode String Normalization to String class

Proposed method names by Matz: unicode_normalize or normalize_kd,... (not too short)

How to deal with non-Unicode encodings: Matz: raise Exception

Other than UTF-8: UTF8-Mac: return type should be UTF-8, or deal with it as legacy (not really Unicode). UTF8-DoCoMo,..? Yui should decide. UTF-16/32: Needed data,... differs by whether implementation is internal ( C) or pure Ruby.

Todo (for eprun): measure load time, compare with unf, avoid Module Normalize

require “unicode_normalize”

method name: String#unicode_normalize(form)

form: :nfc, :nfd, :nfkc, :nfkd

encodng: UTF-32BE/LE, UTF-16BE/LE, UTF-8

allow UTF8-MAC is confusing.

[Feature #10085] Add non-ASCII case conversion to String#upcase/downcase/swapcase/capitalize

[Feature #4276] Allow use of quotes in symbol syntactic sugar for hashes

Compare with JSON, it is ambiguous (String or Symbol).

[Feature #9924] Revisitting GC.stat keys

no objection.

approval.

[Feature #9781] Feature Proposal: Method#super_method

super: ambiguous which is calling method or getting method object of super.

-> “super_method”

[Feature #10095] Object#as

many bike shedding.

current workaround:

(1+2+3+4).tap { |x| break x ** 2 }

(1 + 2 + 3 + 4).tap{|x| next x ** 2}

bike shed discussion

(1 + 2 + 3 + 4).with{|x| x ** 2}

alias as instance_exec

with(1 + 2 + 3 + 4){|x| x ** 2}

(1 + 2 + 3 + 4).as -> {|x| x ** 2}

(1 + 2 + 3 + 4).and {|x| x ** 2}

p (1 + 2 + 3 + 4).next{|x| x ** 2}

.once

(1+2+3*+4).break{|x| x**2}

(1 + 2 + 3 + 4).pat{|x| x ** 2}

pass

continue

(1 + 2 + 3 + 4).to{|x| x ** 2}

(1 + 2 + 3 + 4).tobe{|x| x ** 2}

(1 + 2 + 3 + 4).then{|x| x ** 2}

reverse_call

(1 + 2 + 3 + 4)._{|x| x ** 2}

(1 + 2 + 3 + 4) -> {|x| x ** 2}

(1 + 2 + 3 + 4).do{|x| x ** 2}

(1 + 2 + 3 + 4).・{|x| x ** 2}

(1+2+3+4).bind {|x| x ** 2 }

tappp

(1 + 2 + 3 + 4).return{|x|  x ** 2}.return{|x| x + 2}

(1 + 2 + 3 + 4).pass {|x|  x ** 2}

(1 + 2 + 3 + 4) => {|x|  x ** 2} => {|x| x + 2}

(1+2+3+4).= {|x| x ** 2 }

not concluded.