
1: Language Spec. 2: 3: - Class#allocate - basicNew 4: - class Foo::Bar<Baz .. end, module Boo::Bar .. end 5: - raise exception by `` error 6: - a +1 to be a+1, not a(+1). 7: - clarify evaluation order of operator argument (=~, .., ...) 8: - :symbol => value hash in the form of {symbol: value, ...} ?? 9: * operator !! for rescue. ??? 10: * objectify characters 11: * ../... outside condition invokes operator method too. 12: * ... inside condition turns off just before right condition.??? 13: * package or access control for global variables?? 14: * named arguments like foo(nation:="german") or foo(nation: "german"). 15: * method to retrieve argument information (needs new C API) 16: * multiple return values, yield values. maybe incompatible ??? 17: * cascading method invocation ??? 18: * def Class#method .. end ?? 19: * def Foo::Bar::baz() .. end ?? 20: * I18N (or M17N) script/string/regexp 21: * discourage use of symbol variables (e.g. $/, etc.) in manual 22: * discourage use of Perlish features by giving warnings. 23: * non confusing in-block local variable (is it possible?) 24: + remove scope by block 25: + variables appears within block may have independent values. 26: * Regexp: make /o thread safe. 27: * decide whether begin with rescue or ensure make do..while loop. 28: * unify == and eql? again 29: * to_i returns nil if str contains no digit. 30: * jar like combined library package. -> RubyGems? 31: * method combination, e.g. before, after, around, etc. 32: * .. or something like defadvice in Emacs. 33: * property - for methods, or for objects in general. 34: * "in" modifier, to annotate, or to encourage assertion. 35: * selector namespace - something like generic-flet in CLOS, to help RubyBehavior 36: * private instance variable (as in Python?) @_foo in class Foo => @_Foo_foo 37: * warn/error "bare word" method, like "foo", you should type "foo()" 38: 39: Hacking Interpreter 40: 41: - generational GC 42: * non-blocking open (e.g. for named pipe) for thread 43: * avoid blocking with gethostbyname/gethostbyaddr (use fork ???) 44: * objectify interpreters ??? 45: * remove rb_eval() recursions 46: * syntax tree -> bytecode ??? 47: * scrambled script, or script filter 48: * setuid ruby 49: * performance tune for in-block (dynamic) local variables. 50: * give warnings to assign magic variables. 51: * export rb_io_{addstr,printf,puts,print} 52: * autoload should work with threads [ruby-talk:4589] 53: * remove stdio dependency from IOs. 54: * warn for inconsistent local variable usage (lv m and method m at the same time). 55: * MicroRuby 56: * Built-in Interactive Ruby. 57: * Parser API 58: * trap every method invocation, which can be enabled by e.g. trap_call :method. 59: * unify Errno exceptions of same errno, or new exception comparison scheme. 60: * 2.times{|i| if i==0 then a = 15 else puts eval("a") end} should print nil. 61: * Thread#max_stack_size attribute (possible??) 62: 63: Standard Libraries 64: 65: - Module#define_method which takes a name and a body (block, proc or method). 66: - Enume#inject 67: - Array#fetch 68: - IO::for_fd 69: - Process::waitall [ruby-talk:4557] 70: - Process::Status 71: - File::lchown, File::lchmod; xxx - still need work for non existing platforms 72: - move Time::times to Process. 73: - Enumerable#sort_by for Schwartzian transformation 74: - fork_and_kill_other_threads. 75: - signal list (Signal::trap, Signal::list). 76: - move NameError under StandardError. 77: - Integer#to_s(base) 78: - Hash::new{default} 79: - hash etc. should handle self referenceing array/hash 80: - Array#select(n1,n2...) works like Array#indexes(n1,n2...) 81: - use Mersenne Twister RNG for random. 82: - deprecate Array#indexes, and Array#indices. 83: - remove dependency on MAXPATHLEN. 84: - String#scanf(?) 85: * Object#fmt(?) 86: * Time::strptime 87: * Integer[num], Float[num]; Fixnum[num]? 88: * method to retrieve non-number trailer for to_i/to_f. 89: * Stream or Port, abstract superclass of IO ? 90: * String#{pred,prev}, String#downto 91: * optional stepsize argument for succ() 92: * Ruby module -- Ruby::Version, Ruby::Interpreter 93: * introduce Boolean class; super of TrueClass, FalseClass 94: * synchronized method - synchronized{...}, synchronized :foo, :bar 95: * Array#&, Array#| to allow duplication. ??? 96: * way to specify immortal (fork endurance) thread; 97: * or raise ForkException to every thread but fork caller. 98: * new user-defined marshal scheme. _dump(dumper), _load(restorer) 99: * library to load per-user profile seeking .ruby_profile or ruby.ini file. 100: * warning framework (warn, warning for Ruby level) 101: * marshal should not depend on sprintf (works bad with locale). 102: * ternary arg pow: a.pow(b,c) == a**b%c 103: * new caller(), e.g. call_stack; needs better name. 104: * pointer share mechanism similar to one in String for Array. 105: * require "1.6" etc. by /usr/lib/ruby/1.6/1.6.rb ;-) 106: * save both "feature names" and "normalized path" in $" 107: * implement Mutex_m (or MutexMixin) using Mutex. 108: 109: Extension Libraries 110: 111: * ptk.rb pTk wrapper that is compatible to tk.rb 112: * Berkeley DB extension 113: * BitVector 114: * thread-safe fcgi 115: 116: Ruby Libraries 117: 118: - urllib.rb, nttplib.rb, etc. 119: * format like perl's 120: 121: Tools 122: 123: * freeze or undump to bundle everything 124: * bundle using zlib