# 2.6 12/25/2018 Ruby 2.6.0 * Feature #1436: Please consider this addition to resolv.rb which adds methods for resolving LOC resources * Bug #1771: system()/popen()/popen3() & windows & unicode is not working * Bug #2154: filesystem encoding of UNIX * Feature #2542: URI lib should be updated to RFC 3986 * Feature #5373: SMTP - new method * Feature #2832: Vector#each and Enumerable * Feature #14396: public, protected and private should return their arguments instead of self * Feature #2837: Compile-time constant for HEAP_GROWTH_FACTOR (patch attached) * Bug #3270: BigMath.exp が絶対値が大きな引数で遅い * Feature #3620: Add Queue, SIzedQueue and ConditionVariable implementations in C in addition to ruby ones * Feature #3697: [PATCH] Allow build of dbm extension with Berkeley DB 5.0 series (for 1.9.2_rc2) * Bug #9897: Build fails for fiddle with libffi version 3.1 * Feature #5231: Allow to disable versioned paths * Feature #4195: option for Socket#sendmsg * Feature #3946: Array#packのqQ指定子に機種依存サイズフラグ!を追加 * Feature #4211: Converting the Ruby and C API documentation to YARD syntax * Feature #4269: command with && should execute as shell * Feature #4270: Resolv does not handle UTF8 domain names. * Bug #4285: Ruby don't have asynchrounous exception safe syntax and It should have. * Feature #4299: no warning: found = in conditional, should be == * Feature #4646: [PATCH] io/wait: add IO#wait_writable method * Feature #6074: Allow alias arguments to have a comma * Feature #4532: [PATCH] add IO#pread and IO#pwrite methods * Feature #4772: Hash#add_keys * Feature #4801: Shorthand Hash Syntax for Strings * Bug #4821: Random Segfaults (in start_thread?) * Feature #4976: Pathname#=~ が undef されている理由 * Bug #4964: open-uri failed to handle multiple "Set-Cookie" headers * Feature #4990: Proposal: Internal GC/memory subsystem API * Feature #5005: Provide convenient access to original methods * Feature #5281: Support for custom sitearch and vendorarch directories * Feature #5392: Symbol GC * Feature #7763: add Win32::Registry#values * Feature #5394: Anonymous Symbols, Anonymous Methods * Feature #5448: Singleton module's ::instance method should forward parameters * Feature #5534: Redefine Range class and introduce RelativeNumeric and RelativeRange * Feature #5630: Missing custom transfer modes in Net::FTP * Feature #5707: temporary file creation without finalizer and delegate. * Feature #5856: Feature: Raise any object * Feature #6023: Add "a ?= 2" support for meaning "a = a.nil? ? 2 : a" * Feature #7684: Net::HTTPHeader#set_form_data should accept a String * Feature #6065: Allow Bignum marshalling/unmarshalling from C API * Feature #6241: Module#method_defined? with inherited flag * Feature #6111: Request for making ruby multiarchable * Feature #6154: Eliminate extending WaitReadable/Writable at runtime * Feature #6225: Hash#+ * Feature #6321: Find and repair bad bytes in encodings, without transcoding * Bug #6479: ipaddr.rbの受け付ける書式が、プラットフォームによって異なる * Feature #6483: parametric map * Feature #6528: Add Pathname#write and Pathname#binwrite * Bug #6514: Abort trap: 6 running rspec on rdf.rb * Feature #6561: ?= operator * Feature #6583: Improve socket exception message when bind() fails * Feature #6588: Set#intersect? * Feature #6589: Set#rehash * Feature #6626: Readline.delete_text * Feature #6643: io.seek(off, :end) * Feature #6707: Remove checks for Ruby 1.9 in trunk * Feature #6752: Replacing ill-formed subsequencce * Feature #6710: new special binding specifier :isolated * Feature #14255: Deprecate $SAFE support in ERB * Bug #6862: BigMath.exp negative exponent * Feature #6824: StopIteration gets a source method * Feature #6847: Hash#extract * Bug #6928: SecureRandom.random_bytes: assume zero entropy for seed value * Feature #7022: add event hook for garbage collection * Feature #7075: const_get でトップレベルの定数を参照する時に警告 * Feature #7051: Extend caller_locations API to include klass and bindings. Allow caller_locations as a method hanging off Thread. * Feature #7145: Add string-based range support to IMAP library * Bug #7167: Segmentation Fault * Bug #7171: test-all failure on OS X (RubyCI) * Feature #7378: Adding Pathname#write * Bug #7183: Resolv::DNS::getresources throws Errno::EACCES: Permission denied - bind(2) on solaris * Bug #7190: warning: already initialized constant の書式 * Bug #7221: Unable to compile kgio under 1.9.3 with error: ruby-1.9.3-/lib/ruby/1.9.1/mkmf.rb:597:in `Integer': can't convert nil into Integer (TypeError) * Bug #7227: failed to build native extension for bcrypt-ruby gem under cygwin on windows xp * Bug #7267: Dir.glob on Mac OS X returns unexpected string encodings for unicode file names * Feature #7274: UnboundMethods should be bindable to any object that is_a?(owner of the UnboundMethod) * Feature #7292: Enumerable#to_h * Feature #7388: Object#embed * Feature #7336: Flexiable OPerator Precedence * Feature #7368: rb_str_each_line()のパフォーマンス向上とリファクタリング * Feature #7396: encode location header * Feature #7401: Pathname#cleanpath default consider_symlink to true * Feature #7434: Allow caller_locations and backtrace_locations to receive negative params * Feature #7435: Exceptions should have backtrace_locations * Bug #7458: Depending on value of BigDecimal::limit, addition can give inaccurate results * Bug #7539: Misleading error message "can't convert nil into string" * Bug #7489: Kernel.spawn sometimes executes string directly * Feature #7505: Mutex#owned? メソッドの新設 * Feature #7609: Class#singleton_class? * Feature #7849: Symbol#to_str * Bug #7648: GServer does not close cleanly from signal interrupt context * Bug #7811: SecureRandom::random_bytes Only use random bytes, not extra String * Bug #7662: Unable to define a method with bare `**` * Feature #7677: YAML load mode that does instantiate Ruby * Feature #7923: Queue#push and Queue#pop makes trap safe * Bug #15337: String#each_grapheme_cluster wrongly splits "\r\n" * Feature #7730: Top level variables aren't checked for assigned but unused behavior * Bug #7756: clang 4.2 sees through UNINITIALIZED_VAR macro, gives warning * Bug #7757: String#start_with? and end_with? should accept Regexp * Feature #7767: Tempfileで自動的にファイルを削除する * Bug #7778: Irb loading generates 17x more open/stat system calls when a locale is set * Bug #7808: [PATCH] Allow to install arch specific code into different location then nonarch * Feature #7791: Let symbols be garbage collected * Bug #7803: RDoc documentation: `Array#&` clarification * Bug #7837: IO.open with three arguments where third argument is bogus reports an arity problem instead of type problem * Feature #7872: `block_given?` does not work inside `define_method` * Bug #7821: FileUtils.mkdir_p fails on Windows Unicode paths (\\?\UNC\) if dir already exists * Bug #7829: Rounding error in Ruby Time * Feature #7839: Symbol.freeze_symbols * Bug #7856: The usage of try_run in extconf.rb is broken when crosscompiling * Bug #7867: enable-multiach installs pkgconfig file into wrong dir * Bug #7916: Callback Module.used is not used... * Bug #7944: 1.9.3 can't process and generate documentation for 2.0.0 (lib/profiler.rb) * Feature #8264: define struct under the given namespace * Feature #7978: boolean to_i * Feature #8572: Fiber should be a Enumerable * Feature #8053: Make coercion if #=== operator doesn't know what to do * Feature #8090: resolv.rb checks platform based on RUBY_PLATFORM, which is insufficient for JRuby * Feature #8217: OpenSSL::BN.new with integers * Bug #9340: Document order related behavior in Array#uniq * Bug #14958: rand(endless_range) raises TypeError (no implicit conversion of Range into Integer) * Feature #8600: Recognize variables declared in if modifier at end of line * Bug #8644: valgrind error in a readline test * Feature #8657: Make Find.find respect the encodings of arguments * Feature #8820: Speed up Array#index * Feature #8823: Run trap handler in an independent thread called "Signal thread" * Feature #6714: Code injection framework * Bug #9354: timeout() custom exception class cannot require argument * Feature #3714: Add getters for Enumerator * Feature #6003: test/unit/parallel.rb * Bug #9262: global_method_cache should be configurable or grow automatically * Feature #7854: New method Symbol[string] * Feature #2348: RBTree Should be Added to the Standard Library * Bug #9255: README -> README.md * Bug #7780: Marshal & YAML should deserialize only basic types by default. * Bug #9361: gem install --ignore-dependencies fails to install local gems * Bug #9472: rb_io_syswrite needs RB_GC_GUARD * Feature #9487: Add #dup?, #dup! and #clone? and #clone! * Bug #9308: def's return value causes errors * Feature #7309: HEREDOC end of line or similar * Bug #7805: ruby 2.0rc2 core on solaris * Bug #7398: Modify TestSSL#test_read_and_write to handle partial sysreads * Feature #9778: Bring shortcut methods to Hash * Bug #6573: Webrick test failures * Bug #1685: Some windows unicode path issues remain * Bug #9254: ./doc/contributing.rdoc -> CONTRIBUTING.md * Bug #4008: Rails 3::declarative_authorization::authorization_rules request => segvault ruby 1.9.2 * Feature #7399: Add tests for PKCS7#type= and add_data. * Feature #7226: Add Set#join method as a shortcut for to_a.join * Feature #5677: IO C API * Feature #6216: SystemStackError backtraces should not be reduced to one line * Feature #4788: resolv.rb refactoring * Bug #9886: [BUG] Segmentation fault ruby 2.0.0p481 (2014-05-08) [x64-mingw32] * Bug #7733: Segfault in ::JSON.parse(nil, :quirks_mode => true) * Feature #5138: Add nonblocking IO that does not use exceptions for EOF and EWOULDBLOCK * Bug #7755: JSON::Generate#configure's argument conversion * Bug #15329: Native implementation of coroutines - segfault * Feature #2509: Recursive freezing? * Bug #7707: FileUtils.mv fails to move symlink between filesystems * Bug #7760: "-\n2000-01-02 03:04:05".to_yaml raise ArgumentError * Feature #7998: "def" should return a value (the symbol of the method name) instead of nil * Bug #10156: Underquoted definition warning in configure.in * Bug #6592: test_call_double(DL::TestDL) fails on ARM HardFP * Bug #10232: Trivial change of IMMEDIATE VALUE bits layout * Bug #15358: Segfault in rb_transient_heap_mark when running Sequel's specs * Feature #4935: Quoted Label Form for 1.9 Hashes * Feature #9047: Alternate hash key syntax for symbols * Bug #10464: Bignum同士の乗算の不具合 * Feature #4276: Allow use of quotes in symbol syntactic sugar for hashes * Bug #10279: Syntax error on Hash with symbol syntax and nested expression: 2.1.3 regression * Misc #10469: Documented return value for Array#each * Feature #4978: forwardable: support for 'delegate :method => :accessor' * Feature #10480: Allow a catch-all approach to capture throws and rethrow them in a separate context * Feature #3067: complex.c : Question: why Complex#~ is disabled? It's in the doc * Feature #5809: Benchmark#bm: remove the label_width parameter * Feature #10490: A Proposal to add Method "factorial" to the Fixnum and Bignum Classes * Bug #10712: [PATCH] lib/resolv.rb: consider ENETUNREACH as ResolvTimeout * Feature #3163: SyntaxError when using variable which is also a method in current scope with a Symbol argument * Feature #4553: Add Set#pick and Set#pop * Feature #3219: assert now passes non-boolean result * Feature #3300: onig_number_of_captures に相当するメソッド Regexp#ncapture * Bug #10494: ioctl returns EINVAL instead of ENOTTY for pipes on older linux, breaking piped test suite * Feature #3328: Kernel#p outputs as default_internal encoding, and so on * Bug #6701: once literal doesn't care escape * Feature #4849: io/wait should have a way to avoid FIONREAD * Feature #3333: mkmf (have|find)_cxx_header * Bug #14674: New mismatched indentations warnings? * Bug #6653: 1.9.2/1.9.3 exhibit SEGV with many threads+tcp connections * Feature #2710: Kernel#load loads a relative path * Feature #2673: the length for an enumerator generated by Array#permutation and Array#combination * Bug #7847: gem release of io-console is broken on Windows * Bug #1341: pthread_cond_timedwait failing in 1.9.1-p0 thread tests on HP-UX 11i v2 * Bug #1342: signal handling on HP-UX * Bug #1388: cygwin-1.7, gcc4-4.3, and ruby-1.9. make btest #236 test_io.rb Segmentation fault * Bug #2008: test_io.rb: test 2 fails on FreeBSD * Feature #3719: open-uri should allow redirects from http to https * Bug #3600: HP-UX compilation * Feature #3685: Struct does not define #to_ary, needed for implicit-splat. * Bug #3434: Specs for coercion? * Feature #6693: Don't warn for unused variables starting with _ * Bug #7092: StringScanner start-of-line matches false positives, while lookbehind for a newline gives false negatives * Bug #7100: WEBrick::HTTPServer.new で BindAddress を指定しない場合に必ず警告が記録される * Bug #7310: URI::FTP API inconsistency * Feature #7712: Add .txt extensions to all plain-text documentation files for Windows users * Bug #8728: strio_substr can put invalid pointer into substring * Feature #9330: [PATCH 0/3] avoid redundant fcntl/fstat syscalls for cloexec sockets * Feature #7068: ability to deactivate Hash#compare_by_identity() * Feature #7596: Find::find should not silently ignores errors * Feature #5010: Add Slop(-like) in stdlib and deprecate current OptionParser API * Bug #10143: JSON module does not conform to RFC 7159 * Feature #3901: WIN32OLE_VARIANT.new method lacks consistency * Bug #15407: bundle, bundler, irb, rdoc, ri commands broken if --program-suffix configure option is used * Feature #4233: autoload Can't Require Gems * Feature #14930: sample/trick2018 * Feature #14316: Update Status Code classes * Feature #2080: Proc#to_source, Method#to_source * Feature #3809: allow multiple set_trace_func() calls * Feature #836: Patches for StringScanner, adding #size, #captures and #values_at * Feature #3450: Format Strings with Named Arguments & Hash#default * Feature #3653: Diferential behaviour of positives and negatives ranges as subindex of string or arrays. * Feature #3916: Add flag to ruby to make warnings fatal. * Feature #4052: File.lutime Patch * Feature #14318: Speedup `Proc#call` to mimic `yield` * Bug #14335: block.call should respect redefinition of Proc#call * Bug #6696: [PATCH] ERB::Util.url_encode should not escape unreserved characters * Feature #3269: BigMath.tan がない * Bug #15437: 正規表現の名前付きキャプチャでASCII以外の大文字で定義したクラスが上書きされる * Feature #2074: json の j や jj は module_function にするべき? * Feature #12912: An endless range `(1..)` * Bug #5240: Hang when using threads + forks on Debian GNU/kFreeBSD * Bug #3841: RubyVM::InstructionSequence.to_a() and disasm() do not work properly for "for in " * Bug #4379: [patch] eval(s, b, "(eval)", n) discards location * Bug #4492: Segfault on successive stack overflows * Feature #4589: add Queue#each() method and include Enumerable * Bug #4630: PROCDEBUG to non-zero values causes segmentation faults in check_env in trunk * Bug #5719: Hash::[] can't handle 100000+ args * Bug #7356: ruby-2.0.0-preview1 で adlint-2.6.10 が性能劣化 * Feature #7424: an embedded Ruby interpreter doesn't get the full Ruby environment unless it calls ruby_process_options() (which is not documented) * Feature #8639: Add Queue#each * Bug #10540: Yielded fibers do not execute ensure blocks * Feature #13784: Add Enumerable#filter as an alias of Enumerable#select * Bug #15332: coverage and InstructionSequence regression * Feature #6129: String#each_lineにおけるmemmem()の利用 * Feature #2968: 数値の正負を返すメソッド * Feature #614: instance_method(ancestor) * Feature #908: Should be an easy way of reading N characters from am I/O stream * Feature #3711: IPAddr must not make DNS lookups via IPSocket.getaddress * Feature #14043: Introduce Process.last_status as an alias for $? * Bug #14324: Should Exception#full_message include escape sequences? * Feature #7526: infinit loop in Registry::each_value * Feature #1873: MatchData#[]: Omits All But Last Captures Corresponding to the Same Named Group * Feature #14235: Merge MJIT infrastructure with conservative JIT compiler * Feature #5588: add negation flag (v) to Regexp * Bug #14229: An exception in eval has strange message * Bug #15440: Freeze hash literals embedded in duphash instructions * Feature #3072: Classes Inheriting from Data * Feature #14250: Make `$SAFE` process global state and allow to set 0 again * Feature #7280: How to set filesystem encoding * Bug #4673: URI::Generic registry is not properly set. * Bug #6121: [[Ruby 1.9:]] Etc.sysconfdir hides sysconfdir on windows * Bug #3337: MS-DOS device names are identified as readable_real * Bug #9258: Fix bugreport URL in error.c * Feature #855: HTTP/1.1 fixes and other enhancements to webrick * Feature #2034: Consider the ICU Library for Improving and Expanding Unicode Support * Bug #5468: IPSocket#valid_v6? in ipaddr.rb contains incorrect regexps * Feature #2152: Split functionality of Float#inspect and Float#to_s * Feature #4151: Enumerable#categorize * Feature #2740: Extend const_missing to pass in the nesting * Bug #7541: Can't use Ruby 2.0.0 as as BASERUBY * Bug #10630: ERB tags nested in escaped blocks are skipped * Feature #15287: New TracePoint events to support loading features * Feature #14329: Speedup `block.call` where `block` is passed block parameter. * Feature #14330: Speedup `block.call` where `block` is passed block parameter. * Bug #14420: [BUG] Unnormalized Fixnum value on Rational#hash.to_s * Bug #15288: RUBY_DEBUG=gc_stress dumps core * Bug #14439: build failed on NetBSD 7.1 with MJIT * Bug #14457: --jit outputs error when script changes $TMPDIR * Feature #14256: Deprecate $SAFE support in ERB and let ERB.new take keyword arguments for it * Bug #14552: Kernel#Integer can return a non-Integer object. * Feature #15022: Oneshot coverage * Bug #15343: String#each_grapheme_cluster wrongly splits some emoji (genie, zombie, wrestling) * Feature #14697: Introducing Range#% as an alias to Range#step * Feature #14575: Switch Range#=== to use cover? instead of include? * Feature #14857: collect malloc info * Feature #15341: Provide emoji version as RbConfig::CONFIG['UNICODE_EMOJI_VERSION'] * Bug #14858: Introduce 2nd GC heap named Transient heap * Feature #14739: Improve fiber yield/resume performance * Bug #14782: binding.eval("proc") with &:to_s dumps core * Bug #14847: `clone` can generate strange objects * Bug #14840: `warning: constant Net::ProtoServerError is deprecated` only via net/http * Feature #14802: Update Unicode data to Unicode Version 11.0.0 * Feature #14832: Net::ReadTimeout and Net::WriteTimeout should tell the cause socket * Bug #14699: Subtle behaviors with endless range * Feature #14878: Add command line argument to deactivate JIT * Feature #14830: RubyVM::MJIT.pause / RubyVM::MJIT.resume * Bug #14898: test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes * Feature #15182: Update extended grapheme cluster implementation for Unicode 11 * Bug #15362: [PATCH] Avoid GCing dead stack after switching away from a fiber * Feature #15317: How to deal with obsolete property values in Unicode 11.0.0 * Feature #15289: Accept "target" keyword on `TracePoint#enable` * Feature #3591: Adding Numeric#divisor? (Have working implementation) * Feature #7816: Don't invalidate method caches when defining a new method on a class without subclasses * Bug #7865: A required file is not added to $LOADED_FEATURES until after it has run