Language Spec. - def foo; .. rescue .. end - compile time string concatenation, "hello" "world" => "helloworld" - rescue modifier; a rescue b => begin a rescue; b end - %w(a\ b\ c abc) => ["a b c", "abc"] * class variable (prefix @@?) ?? * operator !! for rescue. ??? * objectify symbols * objectify characters * ../... outside condition invokes operator method too. * ... inside condition turns off just before right condition.??? * package or access control for global variables?? * named arguments like foo(nation:="german") or foo(nation: "german"). * method to retrieve argument information (needs new C API) * multiple return values, yield values. maybe incompatible ??? * cascading method invocation ??? * def Class#method .. end ?? * class Foo::Bar - retrieve STACK_LEVEL_MAX from users' limit. - remove end_proc registered out of require only - all object made freezable * non-blocking open (e.g. for named pipe) for thread * avoid blocking with gethostbyname/gethostbyaddr * objectify interpreters * remove rb_eval() recursions * syntax tree -> bytecode ??? * scrambled script, or script filter * setuid ruby Standard Libraries - hash[key] = nil may not remove entry; hashes may have nil as the value. - hash.fetch(key) raises exception if key is not found. - Array#{first,last,at} - Dir.glob(pat){|f|...} - sprintf/printf's $ to specify argument order - Dir.glob("**/*.c") ala zsh - Remove Enumerable#{size,length} - Array#slice, Array#slice! - String#slice, String#slice! - Marshal should handle generic instance variables. - debugger for thread programming - SyntaxError, NameError, LoadError and NotImplementError are subclasses of ScriptError