Ruby developers meeting at RubyKaigi2018

Ruby Committers vs the World

2018/06/01

Attendees: many

Next Meeting

Ruby 2.6.0 preview 2 was released

Notable features (since 2.5)

Notable incompatibility (since 2.5)

AST

Language tooling support

Refinements

autoload

[Feature #14594] Rethink yield_self's name => `then’ (usa)

[Feature #13581] Syntax sugar for method reference (ko1)

result = `cmd` # = %x`cmd`

m =

m = obj.foo

m = obj.foo

m = obj.foo

m = obj.foo

m = obj➡️foo

m = obj👉foo

m = %m{ obj.foo }

m = obj.$foo

m = obj

m = obj.`foo`

m = obj.foo (do not use this feature :D)

m = objλfoo or obj.λfoo (eregon)

[Feature #14799] Startless range (mame)

[Feature #6394] Support SO_ORIGINAL_DST socket option (akr)

[Feature#14696] add optname SO_ORIGINAL_DST

while” with “else” keyword like Python (ko1)

while cond

  body

else

  when_condition_is_over

  # skipped if break’ed

end

similar to

begin

  # body where exceptions are rescued

rescue

  # If exception

else

  # Only if no exception, no exceptions rescued here

end

begin

  raise

rescue

 

else

end

if cond

  raise

resuce

else

  ??

end

def foo

else

   

end

(warns: -:4: else without rescue is useless)

% all-ruby -e 'def foo
else
end'
...

ruby-1.4.6            /tmp/rbonG6Uo:2: syntax error
                 #<Process::Status: pid 17002 exit 1>
ruby-1.6.0            
...
ruby-1.8.7-p374      
ruby-1.9.0-0          -e:3: warning: else without rescue is useless
...
ruby-2.6.0-preview1   -e:3: warning: else without rescue is useless
ruby-2.6.0-preview2   -e:2: else without rescue is useless
                 #<Process::Status: pid 17323 exit 1>