# 2.2.0 12/25/2014 * Bug #9645: [PATCH] variable.c: avoid memory leak on const redefinition * Bug #9939: segfault by modifying array during Array#combination * Feature #9362: Minimize cache misshit to gain optimal speed * Feature #10322: [PATCH] Improve doc for String#<=> * Feature #10323: [PATCH] Improving doc for Math.atan2 * Bug #10369: [PATCH] array.c: missing RB_GC_GUARDs * Bug #10100: Document usage of RB_GC_GUARD in README.EXT * Bug #10300: Encoding error in conversion from UTF-16LE to UTF-8 to CP850 * Bug #9562: Cannot install gems from gzip-compressing gem server * Bug #9547: TCPSocket.new causes an infinite loop when interrupted by a signal * Misc #9233: Update tooling for SemVer * Feature #9632: [PATCH 0/2] speedup IO#close with linked-list from ccan * Feature #8429: Options requests in net/http should be able to accept a response body * Bug #9546: TCPSocket.new causes an infinite loop when interrupted by a signal * Misc #9265: Meeting Guide * Bug #9267: Document configure options * Feature #8779: Binding#yourself * Bug #8789: File.expand_path(File.dirname(__FILE__)) return wrong encoded result * Bug #9498: undefined method 'ord' for nil:NilClass from Resolv methods when internet connection is lost * Misc #8835: Introducing a semantic versioning scheme and branching policy * Feature #8923: Frozen nil/true/false * Feature #9852: How to bundle test-unit2 and minitest5 * Bug #9533: ruby 2.1.0のHash#flattenが以前のバージョンと異なる挙動をする * Bug #9554: need read access for conout$ (io/console) * Bug #8984: ObjectSpace.memsize_of(obj) should return with sizeof(RVALUE) * Bug #9701: RDoc description for `String#<<` and `String#concat` * Bug #9300: YAML Regression Concerning Escaping of Strings * Bug #9332: win32/Makefile.sub malconfiguration * Bug #9276: "RUBY_FREE_MIN is obsolete. Use RUBY_GC_HEAP_FREE_SLOTS instead" warning should not be issued when both ENV vars are set. * Bug #9342: [PATCH] SizedQueue#clear does not notify waiting threads in Ruby 1.9.3 * Bug #9333: win32/Makefile.sub malconfiguration * Feature #9319: Add constant RUBY_KEYWORDS or a similar way to output which keywords exist at runtime * Misc #9331: Add examples to Set#intersect? and Set#disjoint? * Bug #9341: IMAPTest#test_imaps_with_ca_file test failed after 2014-01-01. * Bug #9374: [PATCH] ext/json: objects depend on $(ruby_headers) * Bug #9385: open-uri always uses proxy set as env var even if proxy flag is set to nil * Bug #7512: Test for HMAC signing with UTF-8 String * Misc #9219: Policy Announcement for All Versions * Misc #9215: Maintenance Policy for Future Releases (2.1.0 & beyond) * Bug #10049: RDoc bug for time format * Bug #9302: [PATCH] thread: fix deadlock/freeze on SizedQueue#push * Bug #9415: Strings#codepoints doesn't respect BOM on UTF-{16,32} pseudo encodings * Feature #8370: Constants MAX_MULTIPART_LENGTH in cgi/core.rb * Bug #9651: __dir__ returns nil in instance_eval/module_eval * Bug #9380: Enumerator does not work in timeout * Bug #9563: URI.parse error * Misc #9421: [PATCH] doc/contributing.rdoc: allow/encourage other git hosts * Bug #9124: TestSocket errors in test-all on Arch 64-bit * Feature #9439: Remove OpenSSL from stdlib * Bug #9570: Something wrong with Enumerator#size ? * Feature #9441: [PATCH] method.h: save 8 bytes in rb_method_definition_t on x86-64 * Misc #9446: DRb documentation should notice that start_service should be called at least once per process * Bug #9448: Assignment with overridden []= returns return value of method rather than new value * Feature #7918: Create Signal.in_trap?() * Misc #9307: Add expression for Zlib.adler32 documentation * Bug #9382: [patch] add opt_aref_str and opt_aset_str * Feature #2255: unicode parameters cannot be passed to ruby * Bug #7395: Negative numbers can't be primes by definition * Bug #8716: segmation fault 正規表現で大量のグループを利用時 * Bug #6756: FileUtils.rm_rf がアクセス権のない空ディレクトリを削除しない * Bug #9592: Fix segfault with old OpenSSL * Feature #9147: CSV.new option skip_lines should escape String before convert to Regexp * Feature #9469: BigDecimal support for yaml serialization * Feature #9427: [PATCH] io.c: remove socket check for sendfile * Bug #9430: [PATCH] benchmark/driver: avoid large alloc in driver process * Bug #9461: Segfault * Bug #9343: [PATCH] SizedQueue#max= wakes up waiters properly * Bug #9413: Object Metaclass Constants Array doesn't Include Singleton Constant * Misc #9438: Implementation naming * Bug #8945: Unmarshaling an Array containing a Bignum from a tainted String returns a frozen, tainted Bignum * Bug #9234: Documentation for upgrading to supported versions * Bug #10688: fix non-symbol keys hash. (fixed at r49088, 49089) * Bug #9729: Hash#each が無限ループする * Bug #9856: [PATCH] process.c (proc_getgroups, proc_setgroups): use ALLOCV_N * Feature #9634: [PATCH]Symbol GC * Feature #9633: [PATCH]Symbol GC * Bug #8358: TestSprintf#test_float test failure * Bug #9636: Fiddle::Importer で Segmentation fault が発生する * Feature #9857: Pathname#birthtime * Bug #9991: fd leak on WEBrick::Utils#create_listeners (fixed at r46598) * Bug #9652: Marshal doesn't dump/load Time#zone correctly with too many time object * Bug #9687: Make a cap for malloc_limit adjustment * Feature #9860: Extract Logger::Application from logger.rb * Bug #9656: check for -fno-defer-pop option in ext/dl/extconf.rb * Bug #9658: configure --with-opt-dir=dir と clang の組合せでビルドに失敗する * Bug #9740: super: no superclass method in Ruby 2.1.1 * Bug #9722: Failure with multiple keyword arguments * Bug #9654: Segmentation fault while printing out C level backtrace information * Bug #8344: Status of Psych and Syck * Bug #9665: Ruby 2.1.1 fails to build on PowerPC darwin, due to __builtin_unreachable * Bug #9720: [Doc] Proofreading of Net::IMAP docs * Misc #9801: Regexp documentation for Regexp::EXTENDED is incomplete * Bug #8405: CSV module - improper regexp for escaping special characters * Bug #8182: XMLRPC request fails with "Wrong size. Was 31564, should be 1501" * Feature #9711: Remove test-unit and minitest from stdlib. * Bug #9706: Date#<=> should use #< method(fixed at r45520) * Bug #9699: Cannot require .so file on Windows if the file path is unicode (Includes patch) * Bug #9721: super: no superclass method in Ruby 2.1.1 * Bug #9727: Array#reject aborts with callcc * Feature #9303: Add unit test for chown method in test_fileutils.rb to test that it does not chmod recursively * Feature #9383: Add unit test for FileUtils.chown_R * Feature #9924: Revisitting GC.stat keys * Misc #9741: Policy for Posting Security & General Announcements on www.ruby-lang.org * Bug #9749: r45589 introduced an incompatibility * Bug #9861: BSD_vfprintf precsion doesn't work at shorter string * Bug #9862: build failure on arm-linux-gnueabihf * Bug #9765: StringIO#putc is unnaware of encoding * Bug #9771: SYM2ID(Qnil) * Bug #9773: broken link in man/ruby.1 * Bug #9776: Ruby double-splat operator unexpectedly modifies hash * Bug #10075: URI#join needs documentation of its behavior * Bug #9787: r45698 causes a segv in Rails tests * Feature #9785: Feature Proposal: Dir.chdir Thread Safety * Bug #9811: Numeric#step ignores `to` silently by keyword arguments. * Bug #9789: Error in TestIO#test_seek_symwhence and TestIO#test_seek on systems without File::Statfs#type (e.g. Solaris) * Feature #7476: missing "IP_TRANSPARENT" constant for IP sockets. * Bug #9831: C99-like atan2 check test failure under MinGW-w64 * Bug #9814: Improving documentation example for Enumerator#peek * Bug #9825: Ruby option -Ke and -KE doesn't work well on Mac OSX 10.9.2 * Bug #9885: lib/net/imap.rb: FETCH-ed BODYSTRUCTURE with "MIXED" body type fails * Feature #8840: Yielder#state * Bug #9718: Segmentation fault is occurred on trunk and 2.1 * Bug #9849: gsub(String, String) doesn't work properly * Bug #9872: socket leak in Net::FTP#transfercmd (fixed at r46182) * Bug #9879: fix fd leaks in UNIXSocket.open (fixed at r46218) * Bug #9869: Rubygems tests fail in test-all * Bug #9881: stuck in test/openssl/test_ssl.rb on Windows * Bug #9688: Ruby's child process inherits parent's sockets (mswin) * Feature #9889: Hide Hash internal * Bug #9092: Update Unicode data to Unicode Version 7.0 * Bug #9961: TracePoint can skip c_return with rb_rescue() * Bug #9978: memory leak at ENV.select on Windows * Feature #9952: Optimize object allocations in CSV::Row * Bug #9985: Gems documenation is not generated when installing local gem with --ignore-dependencies option * Feature #10069: [PATCH] Implement monadic operator for Matrix * Feature #9923: Revisitting GC.stat keys * Bug #9607: Change the full GC timing * Feature #9863: Hide Float internal * Feature #9888: Hide Complex internal * Bug #9954: Unexpected Hash Modification and Segmentation Fault with Named Arguments * Feature #10319: [PATCH] zlib: TypedData conversion * Bug #9977: memory leak at ENV.[]= on Windows * Bug #9942: reduce memory allocation in Array#permutation (fixed at r46416) * Bug #9593: Keyword arguments default argument assignment behaviour not consistent with optional argument * Bug #9982: Kernel#sprintf: unmbered widht and precision with numbered argument * Bug #9599: Fiddle::Function#call leaks memory * Bug #9989: Docs give wrong information for sort block return values * Feature #9987: method Net::HTTP methods private * Bug #9983: memory leak at ENV.shift on Windows * Bug #9750: OpenSSL::SSL::SSLServer can not accept a Socket as it's first parameter * Bug #9847: Cannot create new String when using File.read(size, buffer) * Bug #9994: replace deprecated macro finite() with isfinite() (fixed at r44505) * Feature #7836: Need a way to get Method and UnboundMethod objects to methods overridden by prepended modules * Feature #10074: [PATCH] generalize Vector#cross_product * Feature #9997: Specifying non volatile registers for increase performence in ppc64 * Bug #10001: Binding#local_variables が返ってこない * Bug #9690: Better orror message for config.guess downloading * Feature #10068: [PATCH] Implement monadic operator for Vector * Feature #10083: String.to_i unexpected behavior * Feature #10081: [PATCH] Specifying MACRO for increase performence in ppc64 * Bug #9486: Multiple Kernel#local_variables entries with block local parameters * Bug #9646: Infinite loop at Hash#each * Bug #10010: Error in TestEnv#test_memory_leak_* on Solaris * Bug #10014: Do not expose no-pinned down IDs * Feature #10050: [PATCH 0/2] reduce rb_io_t to 192 bytes (from 216) on 64-bit * Feature #10034: [PATCH] (struct re_pattern_buffer): reduce by cache line * Bug #10461: lib/unicode_normalize/tables.rb not regenerated * Bug #10016: Destructuring block arguments with a Hashable last element * Bug #10092: singleton_method behaves inconsistent with singleton_methods on modules, extending self * Feature #10082: [PATCH] add ZALLOC* macros to reduce ALLOC + MEMZERO calls * Feature #10087: [PATCH] Specifying "target_cpu" for structure packing in ppc64 * Feature #10073: [PATCH] Implement Laplace expansion for matrix. * Feature #10072: [PATCH] Implement Vector.basis * Bug #10036: Time.parse raises NoMethodError: undefined method `<' for nil:NilClass when called with out of range arguments and a negative offset * Bug #10079: Warnings in definition of macro 'PACKED_STRUCT' * Bug #10299: alias_method :new_foo=, :"#{:foo}=" doesn't work properly on ruby 2.2.0preview1. * Feature #10094: Object#as * Bug #10093: SecureRandom.uuid is not valid v4 and/or RFC 4122 * Bug #10067: File.file? misleading semantics & documentation for symbolic links * Feature #9980: Create HashWithIndiferentAccess using new syntax {a: 1}i * Bug #10622: Bump bigdecimal version for releasing ruby 2.2 * Feature #10107: [PATCH] cleanup: rb_const_lookup helper function * Bug #10127: WIN32OLE segfaults * Bug #10112: NET::IMAP fails to parse uid_search/search response with MODSEQ search criteria * Bug #10063: [ruby_2_1] test-all abort due to undefined marshal_dump from test_queue.rb * Bug #10623: rb_hash_delete() can return Qundef in 2.2-rc1 * Bug #9660: test/unit, minitest & bundler * Feature #10134: [PATCH] thread_pthread: prefer native types/functions * Feature #10137: Introducing Incremental GC algorithm * Feature #5458: DL should be removed * Bug #10221: You may have encountered a bug in the Ruby interpreter or extension libraries. * Bug #10148: [TracePoint API] Extra block events generated * Bug #10144: [PATCH] time_timespec: fix tv_nsec overflow on float conversion * Bug #10150: Tiny URI.parse error incompatibility * Bug #10151: Weird result when % formatting a Rational value * Bug #10162: Error while installing ruby 2.1.2 on freebsd * Misc #10297: r47670 make benchmark/bm_vm_thread_create_join.rb slow * Bug #10157: Windowsにてエスケープシーケンスのunderscore指定が正常に動かない * Bug #10380: Make sure 'update-gems' is called in the make process * Bug #10158: Windowsにてエスケープシーケンスのreverse指定が正常に処理されない * Bug #9559: build failure with clang 3.4 * Bug #10281: r47683 (add GC guard in rb_ary_splice()) * Bug #10210: LDSHARED and LDSHAREDXX set to null ('') * Bug #10223: Stack level too deep in CSV when parsing long line * Bug #9946: [Win32] redirection doesn't support non-codepage * Feature #10185: [PATCH] iseq: free untranslated iseq->iseq at compile * Feature #10200: Symbol list/count API with Symbol GC * Bug #10206: garbage symbols crash symbol GC * Bug #9544: Ruby resolver not using autoport * Bug #10204: A little bit misleading warning message * Bug #10282: Reproducible segfault when inspecting this method * Misc #10207: [PATCH cleanup] compile.c: remove needless ID2SYM/SYM2ID conversions * Bug #10576: [DOC] Several fixes for the BigDecimal documentation * Bug #9940: Unexpected throw from TracePoint hooks with recursive checking * Bug #10690: Tempfile new ArgumentError wrong number of arguments * Bug #9957: TracePoint catch b_return at rescue/ensure * Bug #9964: TracePoint invoke unexpected b_call events with redo * Feature #10201: Dynamically changing GC tuning parameters * Feature #9880: Dir#fileno * Feature #10197: document RUBY_* stack size/GC params in ruby.1 manpage * Bug #9739: TestException#test_machine_stackoverflow(_by_define_method) failures on x64-mingw32 * Bug #9344: warning origin incorrect with instance_eval * Bug #9934: High memory usage from file_expand_path_* * Bug #10153: File.open block does not throw "No space left on device (Errno::ENOSPC)" if the data fits the buffer of IO.write * Bug #10231: Process.detach(pid) defines new singleton classes every call * Bug #10252: [PATCH] digest/rmd160 looks for wrong OpenSSL function * Bug #10258: conversion WIN32OLE_VARIANT and Time * Misc #10249: [PATCH] set rb_event_flag_t to uint32_t * Bug #9766: Add force_encoding option to csv * Bug #10241: Backport r47590 (fix a typo in fiddle/import.rb) * Bug #10242: Backport r47591 (Pathname#relative_path_from crash) * Bug #10317: JSON::State is not using the parameter space_before * Feature #10261: [PATCH] Fix improper test method * Bug #10294: Dir[] cannot be called with an array argument * Bug #10262: nmake love fails from tarball * Bug #10325: [PATCH] test_string (test_LSHIFT_neary_long_max): skip if low on memory * Feature #10227: array.include? is much slower than array.index * Bug #10315: Override policy for duplicated keywords * Bug #10277: Ampersand to_proc issues * Feature #10321: [PATCH] test st_foreach{,_check} for packed-to-unpack change * Bug #10283: Calling define_method with a dynamic symbol ending in = results in a NoMethodError when calling the method via assignment, until called via send * Bug #10309: Unexpected keyword parameters becomes an additional mandatory parameter * Bug #10310: Segmentation fault when trying to install bundle on Ruby 2.2.0dev * Bug #10324: [PATCH] do not link openssl to ext/digest/xxx when using --with-bundled-xxx * Bug #10621: no parent in rb_data_type_t * Feature #10329: [PATCH 2/1] optimize: foo == "literal string" * Feature #10468: URI::RFC2396_Parser#initialize: reduce from 2088 to 1332 bytes * Bug #10579: Segmentation fault at 0x00000000000000 * Bug #10511: fix for #9940 causes dramatic performance regression * Bug #10488: Consistency of Module#const_defined? and constant lookup * Bug #10367: Net::HTTP read_timeout value behaves unexpectedly. * Feature #10361: Support open_timeout option in open-uri * Bug #10372: Problem with relative paths in update-gems makefile rule (common.mk) * Bug #10373: add RB_GC_GUARD in rb_mod_define_method() (r47891) * Feature #10352: Give alias Vector#inner_product and Vector#cross_product * Bug #10409: Can't build Ruby checked out from official GitHub mirror * Bug #10430: Proc instead of String as error message doesn't work. * Bug #10713: Assigning default value for a Hash as an empty Array creating unpredictable results * Bug #10639: Unable to update/download gems (wrong number of arguments) * Bug #10389: SEGV after SEGV * Feature #10326: [PATCH] optimize: recv << "literal string" * Feature #10333: [PATCH 3/1] optimize: "yoda literal" == string * Bug #10415: Unicode data files (in enc/unicode/data) don't get updated even if ALWAYS_UPDATE_UNICODE = yes is uncommented * Feature #10396: Increase instance variable retrieval performance by removing -w/$VERBOSE warning * Bug #10405: syntax error inconsistency between ruby -c and ripper * Bug #10410: TestGc#test_latest_gc_info often fails * Bug #10414: makefile doesn't generate lib/unicode_normalize/tables.rb automatically * Bug #10413: Unexpected block invocation with unknown keywords * Feature #10501: [PATCH] insns.def (opt_succ): remove Time#succ optimization * Bug #9605: Chaining "each_with_index.detect &lambda" raises ArgumentError * Bug #10418: REXML's encoding is broken if reading UTF-16 XML and Encondig.default_internal is set * Bug #10647: fail install without zlib * Bug #10659: can't dup Fixnum (TypeError) * Bug #10656: mkmf have_func fails if Ruby is compiled with static libruby * Feature #10451: [PATCH 3/3] Implement Vector.independent? and Vector#independent? * Bug #9424: ruby 1.9 & 2.x has insecure SSL/TLS client defaults * Bug #10431: Can't sweep garbage object immediatly when GC_ENABLE_LAZY_SWEEP=0 * Feature #10440: Optimize keyword and splat argument * Feature #10444: [PATCH 3/3] Vector#[] returns new vector if argument is range. * Bug #10467: net/http reconnects without SNI * Bug #10476: String.strip remove characters different than pure whitespace * Feature #9638: [PATCH] limit IDs to 32-bits on 64-bit systems * Bug #10493: Wrong encoding for Etc.getlogin in Windows * Bug #10491: TestGc#test_latest_gc_info often fails on mswin CI * Bug #9907: Abbreviated method assignment with private attr_writer/attr_reader does not work. * Misc #10500: Improve Pathname.glob documentation * Bug #10509: [PATCH] vm_eval.c (rb_yield_splat): add missing GC guard * Bug #10525: SegFault with mysql2 gem * Bug #10555: '?' is not match to multibyte character at commandline globbing on Windows * Feature #10565: [cleanup] remove unused rb_iseq_new_with_bopt * Bug #10633: OpenSSL RangeError on update * Feature #10575: [RFC] struct: avoid all O(n) behavior on access * Bug #7995: RubyVM::InstructionSequence to_a not working for blocks * Feature #10590: GC.latest_gc_info returns GC state * Bug #10595: interrupts not handled while finalizers running * Bug #10593: Emoji is been considered as comment * Bug #10601: Unexpected behaviour changes for Struct class * Bug #10615: SIGKILL is not supported by signal() of some versions of MSVCRT * Bug #10657: 2.2: Generated binaries misses resource information (MinGW) * Bug #10660: [PATCH] unreverse Thread.*list order * Bug #10667: thread_variable_set/get doesn't work for dynamically created symbols * Bug #10671: Update documentation for literal syntax to reflect the fact that symbols are GC-ed * Bug #10662: fix to invoke correct function of tcllib. (fixed at r49034) * Bug #9129: Regression in support for IPv6 literals in URIs with Net::HTTP * Bug #9240: TestModule Test No Longer Valid * Bug #10685: Segfault from keyword rest arg when coercing an object that defines to_hash * Bug #10692: there is no response body with HEAD request (fixed at r49105) * Feature #10682: Add "excludes" support to test suite, for alternative implementations and platforms * Bug #10697: WIN32OLE: WIN32OLE_RECORD を使用したスクリプト終了時にruby.exe がクラッシュすることがある * Bug #10698: Time#local behaves differently during clock change * Bug #10719: empty splatting literal hash after other keywords causes SEGV * Bug #9855: nested hash with clone method , it act as a reference but object id are different * Bug #10640: build fail with mingw-w64 gcc 4.9.2 due to configure NET_LUID check * Feature #9781: Feature Proposal: Method#super_method * Bug #10677: Regression: Time#parse no longer automatically converts to localtime * Bug #10582: String#chomp strips off more newlines than its documentation states * Feature #10532: [PATCH] accept_nonblock supports "exception: false" * Bug #10563: system() call hangs if command is too long * Bug #10447: path name needs to be transcoded to OS path encoding. * Bug #10546: Bug Segmentation Fault when input prompt on cmder * Bug #10557: Block not given when the argument is a string * Bug #10478: WEBrick's server.rb contains a return that should be a break * Bug #9644: ssl hostname verification security bug: verify_certificate_identity wildcard matching allows to much * Bug #9742: Error when trying to debug line with "startDate = Time.parse('2014-Apr-01 12:00:30')" * Bug #7699: rubyspec failed: BigDecimal#divmod Can be reversed with * and + * Feature #9336: [PATCH (trivial)] remove rb_hash_keys from internal.h * Feature #9346: [PATCH] signal.c: avoid repeated disable/enable interrupt * Bug #9399: [PATCH] iseq: avoid potential memory leak in iseq_load * Feature #9893: [RFC] README.EXT: document rb_gc_register_mark_object * Feature #10030: [PATCH] reduce rb_iseq_struct to 296 bytes * Feature #9425: [PATCH] st: use power-of-two sizes to avoid slow modulo ops * Feature #3348: rubyspec: Kernel.spawn redirects both STDERR and STDOUT to the given name ERROR * Feature #5994: Dir.glob without wildcards returns pattern, not filename * Bug #9932: Permutation - Segment fault * Bug #10071: Documentation for time.c contains broken links * Bug #10135: Time.at is inaccurate * Feature #10219: [PATCH] time.c: DATA_PTR is never NULL * Misc #10178: refinements unactivated within refine block scope? * Feature #10182: [PATCH] string.c: move frozen_strings table to rb_vm_t * Feature #10186: configure の with-out-ext オプション * Feature #9345: [PATCH] signal.c: avoid repeated disable/enable interrupt * Misc #10502: Removing obsolete prot_tag comment * Bug #10504: Gracefully handle CSV IO file descriptor problems * Bug #10648: libffi can't build on mswin32 * Bug #9127: URI::Generic#normalize documentation is vague. * Bug #8012: Performance degradation in 2.0.0p0 * Bug #9891: infinite fibers crash Ruby * Feature #9278: Magic comment "immutable: string" makes "literal".freeze the default for that file * Feature #1482: Kernel.exec doesn't respect COMSPEC environment variable on Windows * Bug #8160: M17N test failure around String#rpartition * Bug #10397: gcc 4.1.2 for x86 can't build trunk * Feature #9549: Improvements to Time::strptime * Bug #9089: rb_fix2uint no longer raises a RangeError when given negative values * Bug #10272: miniruby hangs on Mac OS X 10.7