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"] - objectify symbols - class variable (prefix @@) - rescue RuntimeError in err ?? * operator !! for rescue. ??? * 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 (use fork ???) * objectify interpreters ??? * remove rb_eval() recursions * syntax tree -> bytecode ??? * scrambled script, or script filter * setuid ruby * performance tune for in-block (dynamic) local variables. * generational GC ? * give warnings to assign magic variables. * export rb_io_{addstr,printf,puts,print} Standard Libraries - hash[key] = nil does 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..), \G - Struct::new([name,]member,...) - IO#reopen accepts path as well - Kernel#scan - call initialize for builtin classes too - performance tune for String's non-bang methods. - 'w' template for pack/unpack - alternative for interator? => block_given? - regex - /p (make obsolete), /m (new) * String#scanf(?) * Object#fmt(?) * Integer#{bin,oct,hex,heX} * Time::strptime * Integer[num], Float[num]; Fixnum[num]? * method to retrieve non-number trailer for to_i/to_f. * Stream or Port, abstract superclass of IO ? * String#{pred,prev}, String#downto * optional stepsize argument for succ() * Ruby module -- Ruby::Version, Ruby::Interpreter * introduce Boolean class; super of TrueClass, FalseClass Extension Libraries - FastCGI ruby * ptk.rb pTk wrapper that is compatible to tk.rb * Berkeley DB extension * BitVector Ruby Libraries - net/http.rb * add uri.rb * urllib.rb, nttplib.rb, etc. * format like perl's Tools - extension library maker using SWIG * freeze or undump to bundle everything Misc - publish Ruby books * publish Ruby books in English Things To Do Before 1.6 * fix spec. for the following: * alternative for $! (exception? in? =>? :?) * mkmf.rb - create_makefile("net/socket")