This is part of my wishlist for Ruby 2.0. Some serious and some less
serious ideas.

* identify obsolete functionality. emulate in pure Ruby. remove the C
code. put the emulation in "ruby/2.0/ruby1-compat.rb"; this would be a
long-term policy that would allow some design mistakes to get phased out
at little cost.

* add Thread.granularity=(v:Float),.granularity->Float, for setting and
getting the scheduler's default timeslice.

* add Thread#max_stack_size=(v:Fixnum),#max_stack_size->Fixnum.

* make Array include Comparable, simply because it defines #<=>.

* add argument to load/require to specify the context of
evaluation, and add to load/require/eval a way to override the default
line-numbering.

* remove Module.constants, which currently calls Object.constants as
Module#constants on the Object object; doing that would uncover the other
Module.constants, that is, Module#constants on the Module object.

* Module#included_modules(recurse=true) where
included_modules(false) would give a list of only _direct_ inclusions.
This is consistent with Module#instance_methods, except for the default
value.

* Module#instance_methods(recurse=true,visibility=:default) where
visibility can also take values :public, :protected and :private.
Object.methods(recurse=true,visibility=:default) like the above, plus
recurse=false would fetch only singleton methods. remove all methods
obsoleted by those two extensions and make them emulated by
"ruby1-compat.rb".

* syntax: make foo.bar(2,3,5)=7 mean foo.bar=(2,3,5,7)

* syntax: make "end" optional before ")".

* add File#open, that does like File.open, but on an existing file
handle. On open file, could raise exception or just close the file
automatically. change File.new so that with 0 arguments it creates a
closed File.

________________________________________________________________
Mathieu Bouchard                   http://hostname.2y.net/~matju