Welcome to RCRchive

RCRchive is... the home of the RCR (Ruby Change Request) process
There is also... a large type version (NB: CSS work still in progress)
And there is some... more extensive help
picture
You can browse and read all the... pending RCRs
If you want to add comments to them, you must... subscribe to RCRchive
You can also browse the archives of... accepted, rejected, withdrawn, superseded, and legacy RCRs
picture
Once you've subscribed you can... submit an RCR
You may also... edit any RCRs you have submitted

Pending RCRs

Note: The RCRs from Ruby Garden have been moved to their own category, "legacy".More information is available here.

#281: Add String#chars (submitted by flgr)

#280: Unified type conversion framework (submitted by grenzi)

#279: User defined % literals (submitted by petertje)

#278: Hash#collect_to_hash method (submitted by Zallus)

#277: Make def return something useful (submitted by djberg96)

#276: Make String#scan, #gsub, and #sub yield MatchData objects (submitted by austin)

#273: Enumerable#inject_with (submitted by ummaycoc)

#272: ignoring raise exceptions (supressing all errors) (submitted by mig)

Supersedes RCR 271 ("ignoring raise exceptions (supressing all errors)")

#270: Add clamp(), modulo(), rand() methods to Range (submitted by Nick Johnson)

#268: String.natcmp (submitted by patsplat)

#265: Readable/Writeable modules IO, StringIO etc. (submitted by mneumann)

#262: more enumerator functionality (submitted by Kristof Bastiaensen)

#261: introducing Hash-like mixin (submitted by grenzi)

#260: Make 'Rational' a built-in class (submitted by Gavin Sinclair)

#259: add begin= and end= to Range (submitted by tobi)

#258: supply hash to Regexp.new (submitted by neoneye)

#257: String#concat should be String#concat! (submitted by Evan Miller)

#256: Rename Kernel#binding (submitted by batkins)

#255: Add trace info to Kernel#p (submitted by batkins)

#254: Latent object instantiation (submitted by mig)

#252: Reverting the change in lookup of constants (submitted by chneukirchen)

#250: absolute __FILE__ (submitted by neoneye)

#249: Object#self (submitted by itsme213)

#248: 'once' operator to evaluate an expression only once (submitted by Eludias)

#246: Rename singleton.rb (submitted by austin)

#245: zip's broken metaphor (submitted by neoneye)

#244: Limit recursion depth of Array#flatten (submitted by matthias_georgi)

#241: in operator (submitted by hal9000)

#240: avoid asymmetry of extend_object/append_features (submitted by neoneye)

#239: Module#not_redefining, #redefining, #not_redefinable (submitted by itsme213)

#238: Remove set methods from Array (submitted by kgergely)

#237: named capture with assignment in regexp (submitted by akr)

#236: anArray.rekursive_index (submitted by Icekiss)

#234: Uniform meta-access while parsing Ruby code (replaces RCR 228) (submitted by itsme213)

#233: pathname literal and builtin pathname class (submitted by akr)

#232: string interpolation without concatination (submitted by akr)

#231: Kernel#singleton_class (submitted by dblack)

#230: 'for' for multiple arrays (submitted by mchase)

#227: Make blocks default to zero arguments (submitted by eeklund)

#226: Named Return Arguments (submitted by chemdog)

#222: Add bitwise AND/XOR/OR/NOT for String (submitted by David Garamond)

#219: add Kernel.warn!() for warnings with backtraces (submitted by discordantus)

#218: kind_of class'es (submitted by neoneye)

#215: Object#pretty (submitted by ahoward)

Supersedes RCR 214 ("Object#pretty")

#213: Extended Access to the DATA Pseudo-File (submitted by austin)

#211: Normalize filenames before requiring them (submitted by Paul Brannan)

#209: Add find_header to mkmf (submitted by chemdog)

#208: Introduce freeze levels (submitted by Phil Tomson)

#207: --freeze commandline option (submitted by Phil Tomson)

#206: Make popen3 raise an exception on failure (submitted by Paul Brannan)

#205: Put base64.rb methods under their own module (submitted by djberg96)

#204: Negative arg for Array#first and (submitted by flgr)

#203: Make debug mode easier to find (submitted by robertc)

#202: Attach arbitrary data to methods defined in extensions (submitted by Paul Brannan)

#198: Publish/Subscribe Method Visibility (submitted by minam)

Supersedes RCR 189 ("Publish/Subscribe Method Visibility")

#197: ri should be accesible thru irb (submitted by gga)

#196: Add trace_func accessor to ruby (submitted by Paul Brannan)

#195: built-in complex math (submitted by discordantus)

#194: adding notation for complex numbers (submitted by discordantus)

#188: Remove whitespace before here doc contents (submitted by Paul Brannan)

#180: Warning framework (submitted by Paul Brannan)

#179: Create a 'NoMatchData' object on Regex match failing. (submitted by cyent)

#178: Add Enum type to Ruby (submitted by Paul Brannan)

#177: linking object : mapping on object from an other (submitted by bille2)

#176: Extend resolv.rb (submitted by danielhobe)

#175: Provide Ruby interface to error_print() (submitted by Paul Brannan)


Accepted RCRs

(See also the archive of Accepted RCRs from Ruby Garden.)

#251: Add Binding#eval (submitted by batkins)


Rejected RCRs

(See also the archive of Rejected RCRs from Ruby Garden.)

#275: Allow instance variables as method parameters (submitted by cyent)

#266: until_eof (submitted by Malte)

#229: Mixf-fix syntax, if-then-else etc. as methods, fewer keywords (submitted by itsme213)

#223: require a directory (submitted by mgarriss)

#200: block range - signs (submitted by daniel)

#184: Thread safe (submitted by daniel)


Withdrawn RCRs

#274: Required Block Argument (submitted by transami)

#269: Add Thread.atomic (submitted by Robert)

#267: "original" keyword in method redefinition (like "super") (submitted by tunah)

#263: Metaclass initialize method (submitted by Zallus)

#253: Implicit binding from method def (submitted by Zallus)

#247: Multi-class definition (submitted by itsme213)

#243: Add a basic iterator method to Object (submitted by dzsekijo)

#242: Add collect_flatten and collect_flatten! to Array (submitted by NickJohnson)

#228: Uniform meta-access while parsing Ruby code (submitted by itsme213)

#225: Named Return Arguments (submitted by chemdog)

#224: temporary enabled global variable (submitted by neoneye)

#221: Automatic completion of Namespace (submitted by rolo)

Supersedes RCR 220 ("Automatic completion of Namespace")

#217: Make for..end return something useful (submitted by grenzi)

#216: Provide private methods for changing a Time instance. (submitted by RabYak)

#212: cat fileutil. (submitted by cyent)

#210: event keyword for ruby (submitted by sanatg)

#201: Method named with string *and* [ ] => def foo[](x) (submitted by RabYak)

#199: add Object#identical? and change behaviour of Object#equal? (submitted by coreywangler)

#193: built-in complex numbers (submitted by discordantus)

#192: New variable declaration syntax in blocks (submitted by grenzi)

#191: add TrueClass#not and FalseClass#not (submitted by coreywangler)

#190: Disallow @classInstanceVar in class body (submitted by coreywangler)

#187: Advanced Method Visibility (submitted by minam)

#186: @@_@classInstanceVar and @_restrictedInstanceVar (submitted by coreywangler)

Supersedes RCR 185 ("@@_classInstanceVar and @_restrictedInstanceVar")

#183: Allow parens around a single target variable in multiple value assignment (submitted by coreywangler)


Superseded RCRs

#271: ignoring raise exceptions (supressing all errors) (submitted by mig)

Superseded by RCR 272 ("ignoring raise exceptions (supressing all errors)")

#264: Unifying dot (.) and colon (::) operators (submitted by Malte)

Superseded by RCR 267 (""original" keyword in method redefinition (like "super")")

#235: anArray.rekursive_index (submitted by Icekiss)

Superseded by RCR 236 ("anArray.rekursive_index")

#220: Automatic completion of Namespace (submitted by rolo)

Superseded by RCR 221 ("Automatic completion of Namespace")

#214: Object#pretty (submitted by ahoward)

Superseded by RCR 215 ("Object#pretty")

#189: Publish/Subscribe Method Visibility (submitted by minam)

Superseded by RCR 198 ("Publish/Subscribe Method Visibility")

#185: @@_classInstanceVar and @_restrictedInstanceVar (submitted by coreywangler)

Superseded by RCR 186 ("@@_@classInstanceVar and @_restrictedInstanceVar")

#182: Allow parens around a single target variable in multiple value assignment (submitted by coreywangler)

Superseded by RCR 183 ("Allow parens around a single target variable in multiple value assignment")

#181: Allow parens around a single target variable in multiple value assignment (submitted by coreywangler)

Superseded by RCR 182 ("Allow parens around a single target variable in multiple value assignment")


Legacy RCRs

These are RCRs from Ruby Garden. Matz has asked that they be placed in this separate category, and that their authors resubmit them in the new format.

#174: Allow #p to pass through its argument(s) (submitted by transami)

#173: Advanced Feature Visibility (submitted by minam)

#172: Some way to precompile classes in extensions (submitted by dmiceman)

#171: All language constructs to return something useful (submitted by dmiceman)

#170: 'require' load path relative to the currently executing file (submitted by laza)

#168: Interface Checking (submitted by sodell)

#167: Add "no match expecting 'c'" to MatchData (submitted by cyent)

#164: New interpreter switch (submitted by martindemello)

#163: Another sorting algorithm (submitted by ch00k)

#162: Binary search (submitted by ch00k)

#161: include Matrix and Vector []= (submitted by ch00k)

#160: Move base64 methods into their own module (submitted by djberg96)

#159: Default arg names for closures (submitted by volty)

#158: There should be an ios-specific record separator (submitted by grady)

#157: obj.foo(x) = y (submitted by flgr)

#156: Enumerable#zip(an_enumerable) (submitted by flgr)

#155: Include CONFIG::Config['rubydocdir'] in rbconfig.rb (submitted by Gavin)

#154: Observable objects always share observers after dup (submitted by DaleFarnsworth)

#153: const_missing should be invoked before toplevel scope is searched (submitted by pong)

#152: all() and any() like in Perl6 (submitted by anonymous)

#151: Dir.recurse (submitted by anonymous)

#150: String#start_with? / #end_with? (submitted by anonymous)

#149: require files that aren't .rb or .so (submitted by patsplat)

#148: Enumerable#make_hash to simplify hash generation (submitted by Gavin)

#138: Make def return something useful (submitted by anonymous)

#136: String#chomp(/regexp/) (submitted by anonymous)

#130: Provide a common ancestor for GetoptLong error classes (submitted by anonymous)

#126: Enhanced Readline ? (submitted by anonymous)

#123: Suggest String#to_n to encompass to_i and to_f (submitted by HughSasse)

#115: Allow *array expansion anywhere in list (submitted by jcg)

#111: IO subclass for string (submitted by anonymous)

#98: ruby_run() calls exit? (submitted by Warden)

#89: xx: yy as a shorter :xx => yy + m( x:, y:) keyword arg (submitted by anonymous)

#67: unify cgi handling of normal and multipart forms (submitted by patsplat)

#62: Kernel::rand to accept Range (submitted by anonymous)

#30: Add the ability of Ruby to load extensions (.rb, .so, etc) from .zip files (submitted by Rich_Kilmer)

#15: Replace 'caller' with 'call_stack' (submitted by dave)


RCRchive credits and acknowledgements