From 1e760c0be3ed35874204114e7454509f740c0fe2 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 22 Aug 2007 01:53:51 +0000 Subject: add tag v1_8_6_71 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_71@13189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_6/ToDo | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 ruby_1_8_6/ToDo (limited to 'ruby_1_8_6/ToDo') diff --git a/ruby_1_8_6/ToDo b/ruby_1_8_6/ToDo new file mode 100644 index 0000000000..b55e399edf --- /dev/null +++ b/ruby_1_8_6/ToDo @@ -0,0 +1,126 @@ +Language Spec. + +- Class#allocate - basicNew +- class Foo::Bar RubyGems? +* resumable Exception via Exception#resume. +* method combination, e.g. before, after, around, etc. +* .. or something like defadvice in Emacs. +* property - for methods, or for objects in general. +* "in" modifier, to annotate, or to encourage assertion. +* selector namespace - something like generic-flet in CLOS, to help RubyBehavior +* private instance variable (as in Python?) @_foo in class Foo => @_Foo_foo +* warn/error "bare word" method, like "foo", you should type "foo()" +* clarify evaluation order of operator argument (=~, .., ...) +* :symbol => value hash in the form of {symbol: value, ...} ?? + +Hacking Interpreter + +- generational GC +* 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. +* give warnings to assign magic variables. +* export rb_io_{addstr,printf,puts,print} +* autoload should work with threads [ruby-talk:4589] +* remove stdio dependency from IOs. +* warn for inconsistent local variable usage (lv m and method m at the same time). +* MicroRuby +* Built-in Interactive Ruby. +* Parser API +* trap every method invocation, which can be enabled by e.g. trap_call :method. +* unify Errno exceptions of same errno, or new exception comparison scheme. +* 2.times{|i| if i==0 then a = 15 else puts eval("a") end} should print nil. +* Thread#max_stack_size attribute (possible??) + +Standard Libraries + +- Module#define_method which takes a name and a body (block, proc or method). +- Enume#inject +- Array#fetch +- IO::for_fd +- Process::waitall [ruby-talk:4557] +- Process::Status +- File::lchown, File::lchmod; xxx - still need work for non existing platforms +- move Time::times to Process. +- Enumerable#sort_by for Schwartzian transformation +- fork_and_kill_other_threads. +- signal list (Signal::trap, Signal::list). +- move NameError under StandardError. +- Integer#to_s(base) +- Hash::new{default} +- hash etc. should handle self referenceing array/hash +- Array#select(n1,n2...) works like Array#indexes(n1,n2...) +- use Mersenne Twister RNG for random. +- deprecate Array#indexes, and Array#indices. +- remove dependency on MAXPATHLEN. +* String#scanf(?) +* Object#fmt(?) +* 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 +* synchronized method - synchronized{...}, synchronized :foo, :bar +* Array#&, Array#| to allow duplication. ??? +* way to specify immortal (fork endurance) thread; +* or raise ForkException to every thread but fork caller. +* new user-defined marshal scheme. _dump(dumper), _load(restorer) +* library to load per-user profile seeking .ruby_profile or ruby.ini file. +* warning framework (warn, warning for Ruby level) +* marshal should not depend on sprintf (works bad with locale). +* ternary arg pow: a.pow(b,c) == a**b%c +* new caller(), e.g. call_stack; needs better name. +* pointer share mechanism similar to one in String for Array. +* require "1.6" etc. by /usr/lib/ruby/1.6/1.6.rb ;-) +* save both "feature names" and "normalized path" in $" +* implement Mutex_m (or MutexMixin) using Mutex. + +Extension Libraries + +* ptk.rb pTk wrapper that is compatible to tk.rb +* Berkeley DB extension +* BitVector +* thread-safe fcgi + +Ruby Libraries + +* urllib.rb, nttplib.rb, etc. +* format like perl's + +Tools + +* freeze or undump to bundle everything +* bundle using zlib -- cgit v1.2.3