summaryrefslogtreecommitdiff
path: root/ext/win32ole/depend
blob: c8445ad5fa550d3fcfb56a3dbf5102a1dd496c71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
WIN32OLE_HEADERS = $(HDRS) $(ruby_headers)
win32ole.o : win32ole.c $(WIN32OLE_HEADERS)
win32ole_variant_m.o : win32ole_variant_m.c $(WIN32OLE_HEADERS)
win32ole_typelib.o : win32ole_typelib.c $(WIN32OLE_HEADERS)
win32ole_type.o : win32ole_type.c $(WIN32OLE_HEADERS)
win32ole_variable.o : win32ole_variable.c $(WIN32OLE_HEADERS)
win32ole_method.o : win32ole_method.c $(WIN32OLE_HEADERS)
win32ole_param.o : win32ole_param.c $(WIN32OLE_HEADERS)
win32ole_variant.o : win32ole_variant.c $(WIN32OLE_HEADERS)
win32ole_event.o : win32ole_event.c $(WIN32OLE_HEADERS)
win32ole_record.o : win32ole_record.c $(WIN32OLE_HEADERS)
win32ole_error.o : win32ole_error.c $(WIN32OLE_HEADERS)
summary='file diffstat' width='100%'> -rw-r--r--.gitignore22
-rw-r--r--.travis.yml36
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--ChangeLog24133
-rw-r--r--LEGAL75
-rw-r--r--Makefile.in114
-rw-r--r--NEWS553
-rw-r--r--README166
-rw-r--r--README.EXT224
-rw-r--r--README.EXT.ja148
-rw-r--r--README.ja192
-rw-r--r--README.ja.md163
-rw-r--r--README.md161
-rw-r--r--addr2line.c426
-rw-r--r--addr2line.h2
-rw-r--r--array.c478
-rw-r--r--benchmark/bm_app_aobench.rb5
-rw-r--r--benchmark/bm_app_lc_fizzbuzz.rb52
-rw-r--r--benchmark/bm_hash_aref_flo.rb4
-rw-r--r--benchmark/bm_hash_aref_miss.rb5
-rw-r--r--benchmark/bm_hash_aref_str.rb4
-rw-r--r--benchmark/bm_hash_aref_sym.rb9
-rw-r--r--benchmark/bm_hash_aref_sym_long.rb13
-rw-r--r--benchmark/bm_hash_ident_flo.rb4
-rw-r--r--benchmark/bm_hash_ident_num.rb4
-rw-r--r--benchmark/bm_hash_ident_obj.rb4
-rw-r--r--benchmark/bm_hash_ident_str.rb4
-rw-r--r--benchmark/bm_hash_ident_sym.rb4
-rw-r--r--benchmark/bm_marshal_dump_flo.rb2
-rw-r--r--benchmark/bm_securerandom.rb5
-rw-r--r--benchmark/bm_so_meteor_contest.rb12
-rw-r--r--benchmark/bm_vm2_newlambda.rb5
-rw-r--r--benchmark/bm_vm2_struct_big_aref_hi.rb7
-rw-r--r--benchmark/bm_vm2_struct_big_aref_lo.rb7
-rw-r--r--benchmark/bm_vm2_struct_big_aset.rb7
-rw-r--r--benchmark/bm_vm2_struct_small_aref.rb7
-rw-r--r--benchmark/bm_vm2_struct_small_aset.rb7
-rw-r--r--benchmark/bm_vm_thread_close.rb6
-rw-r--r--benchmark/driver.rb24
-rw-r--r--benchmark/prepare_so_k_nucleotide.rb2
-rw-r--r--benchmark/prepare_so_reverse_complement.rb2
-rw-r--r--bignum.c669
-rwxr-xr-xbin/erb32
-rwxr-xr-xbin/testrb3
-rwxr-xr-xbootstraptest/runner.rb44
-rw-r--r--bootstraptest/test_block.rb14
-rw-r--r--bootstraptest/test_fork.rb28
-rw-r--r--bootstraptest/test_io.rb14
-rw-r--r--bootstraptest/test_literal.rb2
-rw-r--r--bootstraptest/test_string.rb3
-rw-r--r--bootstraptest/test_thread.rb58
-rw-r--r--ccan/build_assert/build_assert.h40
-rw-r--r--ccan/check_type/check_type.h63
-rw-r--r--ccan/container_of/container_of.h142
-rw-r--r--ccan/licenses/BSD-MIT17
-rw-r--r--ccan/licenses/CC028
-rw-r--r--ccan/list/list.h635
-rw-r--r--ccan/str/str.h16
-rw-r--r--class.c232
-rw-r--r--common.mk1889
-rw-r--r--compar.c17
-rw-r--r--compile.c1557
-rw-r--r--complex.c60
-rw-r--r--configure.in677
-rw-r--r--constant.h15
-rw-r--r--cont.c395
-rw-r--r--coverage/README17
-rw-r--r--cygwin/GNUmakefile.in2
-rw-r--r--debug.c23
-rw-r--r--defs/default_gems3
-rw-r--r--defs/gmake.mk42
-rw-r--r--defs/id.def21
-rw-r--r--defs/keywords4
-rw-r--r--defs/known_errors.def3
-rw-r--r--defs/lex.c.src4
-rw-r--r--defs/opt_operand.def2
-rw-r--r--dir.c451
-rw-r--r--dln.c88
-rw-r--r--dln_find.c11
-rw-r--r--dmyenc.c10
-rw-r--r--dmyext.c5
-rw-r--r--doc/ChangeLog-1.8.06
-rw-r--r--doc/ChangeLog-1.9.338
-rw-r--r--doc/ChangeLog-2.1.018060
-rw-r--r--doc/ChangeLog-YARV10
-rw-r--r--doc/NEWS-1.8.74
-rw-r--r--doc/NEWS-2.0.02
-rw-r--r--doc/NEWS-2.1.0376
-rw-r--r--doc/contributing.rdoc13
-rw-r--r--doc/etc.rd.ja2
-rw-r--r--doc/forwardable.rd.ja6
-rw-r--r--doc/globals.rdoc1
-rw-r--r--doc/irb/irb-tools.rd.ja10
-rw-r--r--doc/keywords.rdoc158
-rw-r--r--doc/pty/README.ja2
-rw-r--r--doc/regexp.rdoc12
-rw-r--r--doc/shell.rd.ja8
-rw-r--r--doc/standard_library.rdoc1
-rw-r--r--doc/syntax/assignment.rdoc12
-rw-r--r--doc/syntax/literals.rdoc52
-rw-r--r--doc/syntax/methods.rdoc78
-rw-r--r--doc/syntax/refinements.rdoc7
-rw-r--r--enc/big5.c6
-rw-r--r--enc/depend420
-rw-r--r--enc/encdb.c9
-rw-r--r--enc/encinit.c.erb17
-rw-r--r--enc/euc_jp.c47
-rw-r--r--enc/iso_8859_1.c12
-rw-r--r--enc/iso_8859_10.c4
-rw-r--r--enc/iso_8859_13.c8
-rw-r--r--enc/iso_8859_14.c4
-rw-r--r--enc/iso_8859_15.c4
-rw-r--r--enc/iso_8859_16.c4
-rw-r--r--enc/iso_8859_2.c12
-rw-r--r--enc/iso_8859_3.c4
-rw-r--r--enc/iso_8859_4.c5
-rw-r--r--enc/iso_8859_5.c4
-rw-r--r--enc/iso_8859_7.c4
-rw-r--r--enc/iso_8859_9.c4
-rw-r--r--enc/jis/props.h227
-rw-r--r--enc/jis/props.h.blt227
-rw-r--r--enc/jis/props.kwd52
-rw-r--r--enc/jis/props.src52
-rw-r--r--enc/koi8_r.c4
-rw-r--r--enc/koi8_u.c4
-rwxr-xr-xenc/make_encmake.rb5
-rw-r--r--enc/prelude.rb8
-rw-r--r--enc/shift_jis.c45
-rw-r--r--enc/trans/JIS/JISX0201-KANA%UCS.src51
-rw-r--r--enc/trans/JIS/JISX0208@1990%UCS.src54
-rw-r--r--enc/trans/JIS/JISX0212%UCS.src62
-rw-r--r--enc/trans/JIS/UCS%JISX0201-KANA.src52
-rw-r--r--enc/trans/JIS/UCS%JISX0208@1990.src53
-rw-r--r--enc/trans/JIS/UCS%JISX0212.src61
-rw-r--r--enc/trans/escape.trans6
-rw-r--r--enc/trans/gb18030.trans8
-rw-r--r--enc/unicode.c185
-rwxr-xr-xenc/unicode/case-folding.rb196
-rw-r--r--enc/unicode/casefold.h7831
-rw-r--r--enc/unicode/name2ctype.h9915
-rw-r--r--enc/us_ascii.c6
-rw-r--r--enc/utf_16be.c4
-rw-r--r--enc/utf_16le.c4
-rw-r--r--enc/utf_32be.c18
-rw-r--r--enc/utf_32le.c18
-rw-r--r--enc/utf_8.c4
-rw-r--r--enc/windows_1250.c220
-rw-r--r--enc/windows_1251.c4
-rw-r--r--enc/windows_1252.c211
-rw-r--r--encoding.c116
-rw-r--r--enum.c730
-rw-r--r--enumerator.c37
-rw-r--r--error.c288
-rw-r--r--eval.c208
-rw-r--r--eval_error.c68
-rw-r--r--eval_intern.h29
-rw-r--r--eval_jump.c9
-rw-r--r--ext/-test-/bignum/big2str.c1
-rw-r--r--ext/-test-/bignum/bigzero.c6
-rw-r--r--ext/-test-/bignum/depend107
-rw-r--r--ext/-test-/bignum/div.c1
-rw-r--r--ext/-test-/bignum/intpack.c5
-rw-r--r--ext/-test-/bignum/mul.c5
-rw-r--r--ext/-test-/bignum/str2big.c1
-rw-r--r--ext/-test-/debug/depend35
-rw-r--r--ext/-test-/dln/empty/extconf.rb1
-rw-r--r--ext/-test-/exception/depend46
-rw-r--r--ext/-test-/file/depend38
-rw-r--r--ext/-test-/file/extconf.rb15
-rw-r--r--ext/-test-/file/fs.c105
-rw-r--r--ext/-test-/float/depend3
-rw-r--r--ext/-test-/float/extconf.rb7
-rw-r--r--ext/-test-/float/init.c11
-rw-r--r--ext/-test-/float/nextafter.c36
-rw-r--r--ext/-test-/hash/delete.c16
-rw-r--r--ext/-test-/hash/extconf.rb7
-rw-r--r--ext/-test-/hash/init.c11
-rw-r--r--ext/-test-/iseq_load/extconf.rb1
-rw-r--r--ext/-test-/iseq_load/iseq_load.c21
-rw-r--r--ext/-test-/marshal/usr/usrmarshal.c21
-rw-r--r--ext/-test-/old_thread_select/depend4
-rw-r--r--ext/-test-/old_thread_select/extconf.rb4
-rw-r--r--ext/-test-/old_thread_select/old_thread_select.c75
-rw-r--r--ext/-test-/printf/printf.c19
-rw-r--r--ext/-test-/proc/extconf.rb7
-rw-r--r--ext/-test-/proc/init.c11
-rw-r--r--ext/-test-/proc/receiver.c21
-rw-r--r--ext/-test-/proc/super.c27
-rw-r--r--ext/-test-/rational/depend17
-rw-r--r--ext/-test-/rational/rat.c1
-rw-r--r--ext/-test-/st/foreach/extconf.rb1
-rw-r--r--ext/-test-/st/foreach/foreach.c175
-rw-r--r--ext/-test-/st/numhash/numhash.c34
-rw-r--r--ext/-test-/string/coderange.c21
-rw-r--r--ext/-test-/string/cstr.c31
-rw-r--r--ext/-test-/string/depend118
-rw-r--r--ext/-test-/string/nofree.c13
-rw-r--r--ext/-test-/string/normalize.c1
-rw-r--r--ext/-test-/struct/duplicate.c24
-rw-r--r--ext/-test-/symbol/extconf.rb1
-rw-r--r--ext/-test-/symbol/init.c14
-rw-r--r--ext/-test-/symbol/intern.c14
-rw-r--r--ext/-test-/symbol/type.c30
-rw-r--r--ext/-test-/tracepoint/depend23
-rw-r--r--ext/-test-/vm/at_exit.c44
-rw-r--r--ext/-test-/vm/extconf.rb1
-rw-r--r--ext/-test-/wait_for_single_fd/depend18
-rw-r--r--ext/-test-/win32/console/attribute.c56
-rw-r--r--ext/-test-/win32/console/depend1
-rw-r--r--ext/-test-/win32/console/extconf.rb8
-rw-r--r--ext/-test-/win32/console/init.c11
-rw-r--r--ext/-test-/win32/dln/empty/empty.c (renamed from ext/-test-/dln/empty/empty.c)0
-rw-r--r--ext/-test-/win32/dln/empty/extconf.rb3
-rw-r--r--ext/-test-/win32/dln/libdlntest.c2
-rw-r--r--ext/-test-/win32/fd_setsize/depend3
-rw-r--r--ext/.document4
-rw-r--r--ext/Setup1
-rw-r--r--ext/Setup.atheos1
-rw-r--r--ext/Setup.emx1
-rw-r--r--ext/Setup.nacl5
-rw-r--r--ext/Setup.nt1
-rw-r--r--ext/bigdecimal/README60
-rw-r--r--ext/bigdecimal/bigdecimal.c100
-rw-r--r--ext/bigdecimal/bigdecimal.gemspec6
-rw-r--r--ext/bigdecimal/bigdecimal.h11
-rw-r--r--ext/bigdecimal/depend14
-rw-r--r--ext/bigdecimal/lib/bigdecimal/jacobian.rb2
-rw-r--r--ext/bigdecimal/lib/bigdecimal/math.rb16
-rw-r--r--ext/bigdecimal/sample/linear.rb20
-rw-r--r--ext/bigdecimal/sample/nlsolve.rb21
-rw-r--r--ext/continuation/continuation.c5
-rw-r--r--ext/coverage/coverage.c1
-rw-r--r--ext/coverage/depend32
-rw-r--r--ext/date/date_core.c750
-rw-r--r--ext/date/date_parse.c6
-rw-r--r--ext/date/date_strftime.c9
-rw-r--r--ext/date/date_strptime.c10
-rw-r--r--ext/date/depend58
-rw-r--r--ext/date/extconf.rb3
-rw-r--r--ext/date/lib/date.rb17
-rw-r--r--ext/date/lib/date/format.rb1
-rw-r--r--ext/dbm/dbm.c49
-rw-r--r--ext/dbm/extconf.rb17
-rw-r--r--ext/digest/bubblebabble/bubblebabble.c4
-rw-r--r--ext/digest/bubblebabble/depend14
-rw-r--r--ext/digest/bubblebabble/extconf.rb1
-rw-r--r--ext/digest/depend14
-rw-r--r--ext/digest/digest.c39
-rw-r--r--ext/digest/digest.h6
-rw-r--r--ext/digest/lib/digest.rb24
-rw-r--r--ext/digest/lib/digest/hmac.rb302
-rw-r--r--ext/digest/md5/depend17
-rw-r--r--ext/digest/md5/extconf.rb12
-rw-r--r--ext/digest/md5/md5.c10
-rw-r--r--ext/digest/md5/md5.h6
-rw-r--r--ext/digest/md5/md5init.c9
-rw-r--r--ext/digest/rmd160/depend29
-rw-r--r--ext/digest/rmd160/extconf.rb11
-rw-r--r--ext/digest/rmd160/rmd160.c6
-rw-r--r--ext/digest/rmd160/rmd160.h6
-rw-r--r--ext/digest/rmd160/rmd160init.c9
-rw-r--r--ext/digest/rmd160/rmd160ossl.c2
-rw-r--r--ext/digest/sha1/depend29
-rw-r--r--ext/digest/sha1/extconf.rb11
-rw-r--r--ext/digest/sha1/sha1.c6
-rw-r--r--ext/digest/sha1/sha1.h6
-rw-r--r--ext/digest/sha1/sha1init.c9
-rw-r--r--ext/digest/sha1/sha1ossl.c2
-rw-r--r--ext/digest/sha2/depend29
-rw-r--r--ext/digest/sha2/extconf.rb14
-rw-r--r--ext/digest/sha2/sha2.c26
-rw-r--r--ext/digest/sha2/sha2.h30
-rw-r--r--ext/digest/sha2/sha2init.c9
-rw-r--r--ext/digest/sha2/sha2ossl.c2
-rw-r--r--ext/dl/callback/depend15
-rw-r--r--ext/dl/callback/extconf.rb14
-rw-r--r--ext/dl/callback/mkcallback.rb242
-rw-r--r--ext/dl/cfunc.c677
-rw-r--r--ext/dl/cptr.c669
-rw-r--r--ext/dl/depend14
-rw-r--r--ext/dl/dl.c569
-rw-r--r--ext/dl/dl.h217
-rw-r--r--ext/dl/extconf.rb48
-rw-r--r--ext/dl/handle.c431
-rw-r--r--ext/dl/lib/dl.rb15
-rw-r--r--ext/dl/lib/dl/callback.rb112
-rw-r--r--ext/dl/lib/dl/cparser.rb156
-rw-r--r--ext/dl/lib/dl/func.rb251
-rw-r--r--ext/dl/lib/dl/import.rb268
-rw-r--r--ext/dl/lib/dl/pack.rb128
-rw-r--r--ext/dl/lib/dl/stack.rb116
-rw-r--r--ext/dl/lib/dl/struct.rb236
-rw-r--r--ext/dl/lib/dl/types.rb71
-rw-r--r--ext/dl/lib/dl/value.rb114
-rw-r--r--ext/etc/depend8
-rw-r--r--ext/etc/etc.c404
-rw-r--r--ext/etc/extconf.rb59
-rw-r--r--ext/etc/mkconstants.rb331
-rwxr-xr-xext/extmk.rb70
-rw-r--r--ext/fcntl/fcntl.c2
-rw-r--r--ext/fiddle/closure.c2
-rw-r--r--ext/fiddle/closure.h2
-rw-r--r--ext/fiddle/depend51
-rw-r--r--ext/fiddle/extconf.rb136
-rw-r--r--ext/fiddle/extlibs2
-rw-r--r--ext/fiddle/fiddle.c4
-rw-r--r--ext/fiddle/fiddle.h5
-rw-r--r--ext/fiddle/function.c47
-rw-r--r--ext/fiddle/function.h2
-rw-r--r--ext/fiddle/handle.c20
-rw-r--r--ext/fiddle/lib/fiddle/import.rb2
-rw-r--r--ext/fiddle/pointer.c11
-rwxr-xr-xext/fiddle/win32/fficonfig.h29
-rw-r--r--ext/fiddle/win32/libffi-3.2.1-mswin.patch132
-rwxr-xr-xext/fiddle/win32/libffi-config.rb47
-rwxr-xr-xext/fiddle/win32/libffi.mk.tmpl96
-rw-r--r--ext/gdbm/extconf.rb11
-rw-r--r--ext/gdbm/gdbm.c42
-rw-r--r--ext/io/console/console.c94
-rw-r--r--ext/io/console/extconf.rb13
-rw-r--r--ext/io/console/io-console.gemspec4
-rw-r--r--ext/io/nonblock/nonblock.c5
-rw-r--r--ext/io/wait/wait.c4
-rw-r--r--ext/json/fbuffer/fbuffer.h11
-rw-r--r--ext/json/generator/depend19
-rw-r--r--ext/json/generator/generator.c54
-rw-r--r--ext/json/generator/generator.h13
-rw-r--r--ext/json/lib/json/add/date.rb1
-rw-r--r--ext/json/lib/json/add/date_time.rb1
-rw-r--r--ext/json/lib/json/add/exception.rb1
-rw-r--r--ext/json/lib/json/add/ostruct.rb1
-rw-r--r--ext/json/lib/json/add/range.rb1
-rw-r--r--ext/json/lib/json/add/regexp.rb1
-rw-r--r--ext/json/lib/json/add/struct.rb1
-rw-r--r--ext/json/lib/json/add/symbol.rb1
-rw-r--r--ext/json/lib/json/add/time.rb1
-rw-r--r--ext/json/lib/json/version.rb2
-rw-r--r--ext/json/parser/depend18
-rw-r--r--ext/json/parser/extconf.rb2
-rw-r--r--ext/json/parser/parser.c259
-rw-r--r--ext/json/parser/parser.h9
-rw-r--r--ext/json/parser/parser.rl93
-rw-r--r--ext/nkf/depend28
-rw-r--r--ext/nkf/nkf-utf8/nkf.c28
-rw-r--r--ext/nkf/nkf.c2
-rw-r--r--ext/objspace/depend80
-rw-r--r--ext/objspace/extconf.rb1
-rw-r--r--ext/objspace/object_tracing.c8
-rw-r--r--ext/objspace/objspace.c10
-rw-r--r--ext/objspace/objspace_dump.c20
-rw-r--r--ext/openssl/depend1097
-rw-r--r--ext/openssl/extconf.rb6
-rw-r--r--ext/openssl/lib/openssl/bn.rb7
-rw-r--r--ext/openssl/lib/openssl/ssl.rb86
-rw-r--r--ext/openssl/lib/openssl/x509.rb22
-rw-r--r--ext/openssl/openssl_missing.c14
-rw-r--r--ext/openssl/openssl_missing.h9
-rw-r--r--ext/openssl/ossl.c46
-rw-r--r--ext/openssl/ossl.h7
-rw-r--r--ext/openssl/ossl_asn1.c28
-rw-r--r--ext/openssl/ossl_bio.c2
-rw-r--r--ext/openssl/ossl_bn.c140
-rw-r--r--ext/openssl/ossl_cipher.c75
-rw-r--r--ext/openssl/ossl_config.c4
-rw-r--r--ext/openssl/ossl_digest.c22
-rw-r--r--ext/openssl/ossl_engine.c39
-rw-r--r--ext/openssl/ossl_hmac.c20
-rw-r--r--ext/openssl/ossl_ns_spki.c21
-rw-r--r--ext/openssl/ossl_ocsp.c576
-rw-r--r--ext/openssl/ossl_pkcs12.c20
-rw-r--r--ext/openssl/ossl_pkcs5.c2
-rw-r--r--ext/openssl/ossl_pkcs7.c72
-rw-r--r--ext/openssl/ossl_pkey.c21
-rw-r--r--ext/openssl/ossl_pkey.h5
-rw-r--r--ext/openssl/ossl_pkey_dh.c6
-rw-r--r--ext/openssl/ossl_pkey_dsa.c11
-rw-r--r--ext/openssl/ossl_pkey_ec.c44
-rw-r--r--ext/openssl/ossl_pkey_rsa.c22
-rw-r--r--ext/openssl/ossl_rand.c94
-rw-r--r--ext/openssl/ossl_ssl.c199
-rw-r--r--ext/openssl/ossl_ssl.h8
-rw-r--r--ext/openssl/ossl_ssl_session.c31
-rw-r--r--ext/openssl/ossl_x509.c2
-rw-r--r--ext/openssl/ossl_x509attr.c20
-rw-r--r--ext/openssl/ossl_x509cert.c58
-rw-r--r--ext/openssl/ossl_x509crl.c20
-rw-r--r--ext/openssl/ossl_x509ext.c34
-rw-r--r--ext/openssl/ossl_x509name.c25
-rw-r--r--ext/openssl/ossl_x509req.c20
-rw-r--r--ext/openssl/ossl_x509revoked.c20
-rw-r--r--ext/openssl/ossl_x509store.c43
-rw-r--r--ext/pathname/extconf.rb1
-rw-r--r--ext/pathname/lib/pathname.rb17
-rw-r--r--ext/pathname/pathname.c23
-rw-r--r--ext/psych/lib/psych.rb6
-rw-r--r--ext/psych/lib/psych/nodes/sequence.rb2
-rw-r--r--ext/psych/lib/psych/scalar_scanner.rb2
-rw-r--r--ext/psych/lib/psych/visitors/to_ruby.rb25
-rw-r--r--ext/psych/lib/psych/visitors/yaml_tree.rb46
-rw-r--r--ext/psych/psych.c2
-rw-r--r--ext/psych/psych.gemspec12
-rw-r--r--ext/psych/psych_emitter.c56
-rw-r--r--ext/psych/psych_emitter.h2
-rw-r--r--ext/psych/psych_parser.c26
-rw-r--r--ext/psych/psych_parser.h2
-rw-r--r--ext/psych/yaml/api.c57
-rw-r--r--ext/psych/yaml/config.h12
-rw-r--r--ext/psych/yaml/emitter.c16
-rw-r--r--ext/psych/yaml/loader.c25
-rw-r--r--ext/psych/yaml/parser.c12
-rw-r--r--ext/psych/yaml/scanner.c53
-rw-r--r--ext/psych/yaml/yaml_private.h4
-rw-r--r--ext/pty/depend23
-rw-r--r--ext/pty/pty.c20
-rw-r--r--ext/racc/cparse/cparse.c54
-rw-r--r--ext/rbconfig/sizeof/depend12
-rw-r--r--ext/rbconfig/sizeof/extconf.rb1
-rw-r--r--ext/readline/depend22
-rw-r--r--ext/readline/extconf.rb5
-rw-r--r--ext/readline/readline.c58
-rw-r--r--ext/ripper/depend45
-rw-r--r--ext/ripper/eventids2.c522
-rw-r--r--ext/ripper/lib/ripper/sexp.rb8
-rwxr-xr-xext/ripper/tools/generate.rb33
-rw-r--r--ext/sdbm/_sdbm.c5
-rw-r--r--ext/sdbm/depend21
-rw-r--r--ext/sdbm/init.c46
-rw-r--r--ext/socket/ancdata.c20
-rw-r--r--ext/socket/basicsocket.c11
-rw-r--r--ext/socket/depend312
-rw-r--r--ext/socket/extconf.rb59
-rw-r--r--ext/socket/getaddrinfo.c1
-rw-r--r--ext/socket/getnameinfo.c18
-rw-r--r--ext/socket/ifaddr.c4
-rw-r--r--ext/socket/init.c276
-rw-r--r--ext/socket/ipsocket.c8
-rw-r--r--ext/socket/mkconstants.rb59
-rw-r--r--ext/socket/option.c454
-rw-r--r--ext/socket/raddrinfo.c15
-rw-r--r--ext/socket/rubysocket.h30
-rw-r--r--ext/socket/socket.c111
-rw-r--r--ext/socket/sockssocket.c3
-rw-r--r--ext/socket/udpsocket.c2
-rw-r--r--ext/socket/unixsocket.c21
-rw-r--r--ext/stringio/stringio.c30
-rw-r--r--ext/strscan/depend24
-rw-r--r--ext/strscan/strscan.c29
-rw-r--r--ext/syslog/depend14
-rw-r--r--ext/syslog/lib/syslog/logger.rb2
-rw-r--r--ext/syslog/syslog.c8
-rw-r--r--ext/thread/thread.c73
-rw-r--r--ext/tk/README.tcltklib2
-rw-r--r--ext/tk/extconf.rb20
-rw-r--r--ext/tk/lib/multi-tk.rb8
-rw-r--r--ext/tk/lib/tcltk.rb4
-rw-r--r--ext/tk/lib/tk.rb22
-rw-r--r--ext/tk/lib/tk/autoload.rb2
-rw-r--r--ext/tk/lib/tk/fontchooser.rb4
-rw-r--r--ext/tk/lib/tk/menubar.rb2
-rw-r--r--ext/tk/lib/tk/tk_mac.rb158
-rw-r--r--ext/tk/lib/tkextlib/SUPPORT_STATUS2
-rw-r--r--ext/tk/lib/tkextlib/blt/tree.rb2
-rw-r--r--ext/tk/lib/tkextlib/tcllib/plotchart.rb6
-rw-r--r--ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb2
-rw-r--r--ext/tk/lib/tkextlib/tcllib/toolbar.rb2
-rw-r--r--ext/tk/lib/tkextlib/tcllib/validator.rb65
-rw-r--r--ext/tk/lib/tkextlib/tile/treeview.rb30
-rw-r--r--ext/tk/lib/tkextlib/tkDND/tkdnd.rb2
-rw-r--r--ext/tk/lib/tkextlib/tkimg/dted.rb33
-rw-r--r--ext/tk/lib/tkextlib/tkimg/raw.rb33
-rw-r--r--ext/tk/sample/demos-en/combo.rb2
-rw-r--r--ext/tk/sample/demos-en/rolodex2
-rw-r--r--ext/tk/sample/demos-jp/rolodex2
-rw-r--r--ext/tk/sample/menubar1.rb2
-rw-r--r--ext/tk/sample/menubar2.rb4
-rw-r--r--ext/tk/sample/menubar3.rb2
-rw-r--r--ext/tk/sample/tkextlib/blt/pareto.rb2
-rw-r--r--ext/tk/sample/tkextlib/tkHTML/page4/index.html2
-rw-r--r--ext/tk/stubs.c36
-rw-r--r--ext/tk/stubs.h10
-rw-r--r--ext/tk/tcltklib.c302
-rw-r--r--ext/tk/tkutil/extconf.rb7
-rw-r--r--ext/tk/tkutil/tkutil.c128
-rw-r--r--ext/win32/extconf.rb2
-rw-r--r--ext/win32/lib/Win32API.rb22
-rw-r--r--ext/win32/lib/win32/importer.rb10
-rw-r--r--ext/win32/lib/win32/registry.rb43
-rw-r--r--ext/win32/lib/win32/resolv.rb15
-rw-r--r--ext/win32ole/depend13
-rw-r--r--ext/win32ole/sample/excel1.rb5
-rw-r--r--ext/win32ole/sample/excel2.rb10
-rw-r--r--ext/win32ole/sample/excel3.rb7
-rw-r--r--ext/win32ole/win32ole.c6160
-rw-r--r--ext/win32ole/win32ole.h155
-rw-r--r--ext/win32ole/win32ole_error.c83
-rw-r--r--ext/win32ole/win32ole_error.h8
-rw-r--r--ext/win32ole/win32ole_event.c1275
-rw-r--r--ext/win32ole/win32ole_event.h6
-rw-r--r--ext/win32ole/win32ole_method.c950
-rw-r--r--ext/win32ole/win32ole_method.h16
-rw-r--r--ext/win32ole/win32ole_param.c438
-rw-r--r--ext/win32ole/win32ole_param.h8
-rw-r--r--ext/win32ole/win32ole_record.c604
-rw-r--r--ext/win32ole/win32ole_record.h10
-rw-r--r--ext/win32ole/win32ole_type.c915
-rw-r--r--ext/win32ole/win32ole_type.h8
-rw-r--r--ext/win32ole/win32ole_typelib.c846
-rw-r--r--ext/win32ole/win32ole_typelib.h11
-rw-r--r--ext/win32ole/win32ole_variable.c380
-rw-r--r--ext/win32ole/win32ole_variable.h8
-rw-r--r--ext/win32ole/win32ole_variant.c734
-rw-r--r--ext/win32ole/win32ole_variant.h9
-rw-r--r--ext/win32ole/win32ole_variant_m.c149
-rw-r--r--ext/win32ole/win32ole_variant_m.h7
-rw-r--r--ext/zlib/zlib.c131
-rw-r--r--file.c368
-rw-r--r--gc.c4794
-rw-r--r--gc.h6
-rw-r--r--gems/bundled_gems3
-rw-r--r--goruby.c6
-rw-r--r--hash.c428
-rw-r--r--include/ruby/backward/rubysig.h5
-rw-r--r--include/ruby/defines.h85
-rw-r--r--include/ruby/encoding.h42
-rw-r--r--include/ruby/intern.h197
-rw-r--r--include/ruby/io.h56
-rw-r--r--include/ruby/missing.h14
-rw-r--r--include/ruby/oniguruma.h52
-rw-r--r--include/ruby/re.h1
-rw-r--r--include/ruby/ruby.h413
-rw-r--r--include/ruby/st.h3
-rw-r--r--include/ruby/thread_native.h56
-rw-r--r--include/ruby/util.h7
-rw-r--r--include/ruby/version.h4
-rw-r--r--include/ruby/win32.h32
-rw-r--r--inits.c4
-rw-r--r--insns.def189
-rw-r--r--internal.h386
-rw-r--r--io.c1062
-rw-r--r--iseq.c495
-rw-r--r--iseq.h38
-rw-r--r--lex.c.blt4
-rw-r--r--lib/English.rb4
-rwxr-xr-x[-rw-r--r--]lib/abbrev.rb95
-rw-r--r--lib/benchmark.rb37
-rw-r--r--lib/cgi.rb2
-rw-r--r--lib/cgi/core.rb45
-rw-r--r--lib/cgi/html.rb2
-rw-r--r--lib/cgi/session.rb2
-rw-r--r--lib/cgi/session/pstore.rb13
-rw-r--r--lib/cgi/util.rb16
-rw-r--r--lib/cmath.rb180
-rw-r--r--lib/complex.rb28
-rw-r--r--lib/csv.rb32
-rw-r--r--lib/delegate.rb42
-rw-r--r--lib/drb/acl.rb20
-rw-r--r--lib/drb/drb.rb63
-rw-r--r--lib/drb/extserv.rb30
-rw-r--r--lib/drb/ssl.rb5
-rw-r--r--lib/drb/timeridconv.rb40
-rw-r--r--lib/drb/unix.rb4
-rw-r--r--lib/e2mmap.rb4
-rw-r--r--lib/erb.rb27
-rw-r--r--lib/fileutils.rb154
-rw-r--r--lib/find.rb6
-rw-r--r--lib/forwardable.rb62
-rw-r--r--lib/gserver.rb310
-rw-r--r--lib/ipaddr.rb281
-rw-r--r--lib/irb.rb35
-rw-r--r--lib/irb/cmd/chws.rb6
-rw-r--r--lib/irb/cmd/fork.rb29
-rw-r--r--lib/irb/cmd/load.rb48
-rw-r--r--lib/irb/cmd/nop.rb11
-rw-r--r--lib/irb/cmd/pushws.rb10
-rw-r--r--lib/irb/cmd/subirb.rb8
-rw-r--r--lib/irb/completion.rb264
-rw-r--r--lib/irb/context.rb175
-rw-r--r--lib/irb/ext/change-ws.rb34
-rw-r--r--lib/irb/ext/history.rb58
-rw-r--r--lib/irb/ext/loader.rb118
-rw-r--r--lib/irb/ext/math-mode.rb8
-rw-r--r--lib/irb/ext/multi-irb.rb175
-rw-r--r--lib/irb/ext/save-history.rb67
-rw-r--r--lib/irb/ext/tracer.rb26
-rw-r--r--lib/irb/ext/use-loader.rb28
-rw-r--r--lib/irb/ext/workspaces.rb26
-rw-r--r--lib/irb/extend-command.rb218
-rw-r--r--lib/irb/frame.rb4
-rw-r--r--lib/irb/help.rb18
-rw-r--r--lib/irb/init.rb212
-rw-r--r--lib/irb/input-method.rb36
-rw-r--r--lib/irb/inspector.rb14
-rw-r--r--lib/irb/locale.rb71
-rw-r--r--lib/irb/notifier.rb80
-rw-r--r--lib/irb/output-method.rb6
-rw-r--r--lib/irb/ruby-lex.rb701
-rw-r--r--lib/irb/ruby-token.rb29
-rw-r--r--lib/irb/slex.rb261
-rw-r--r--lib/irb/workspace.rb114
-rw-r--r--lib/irb/xmp.rb38
-rw-r--r--lib/logger.rb201
-rw-r--r--lib/mathn.rb151
-rw-r--r--lib/matrix.rb332
-rw-r--r--lib/matrix/eigenvalue_decomposition.rb6
-rw-r--r--lib/minitest/.document2
-rw-r--r--lib/minitest/README.txt (renamed from test/lib/minitest/README.txt)0
-rw-r--r--lib/minitest/autorun.rb19
-rw-r--r--lib/minitest/benchmark.rb (renamed from test/lib/minitest/benchmark.rb)6
-rw-r--r--lib/minitest/hell.rb20
-rw-r--r--lib/minitest/mock.rb (renamed from test/lib/minitest/mock.rb)5
-rw-r--r--lib/minitest/parallel_each.rb80
-rw-r--r--lib/minitest/pride.rb119
-rw-r--r--lib/minitest/spec.rb551
-rw-r--r--lib/minitest/unit.rb (renamed from test/lib/minitest/unit.rb)43
-rw-r--r--lib/mkmf.rb136
-rw-r--r--lib/net/ftp.rb32
-rw-r--r--lib/net/http.rb31
-rw-r--r--lib/net/http/generic_request.rb66
-rw-r--r--lib/net/http/requests.rb2
-rw-r--r--lib/net/http/response.rb19
-rw-r--r--lib/net/http/responses.rb4
-rw-r--r--lib/net/imap.rb508
-rw-r--r--lib/net/smtp.rb15
-rw-r--r--lib/net/telnet.rb2
-rw-r--r--lib/observer.rb2
-rw-r--r--lib/open-uri.rb28
-rw-r--r--lib/open3.rb54
-rw-r--r--lib/optionparser.rb1
-rw-r--r--lib/optparse.rb58
-rw-r--r--lib/optparse/version.rb2
-rw-r--r--lib/ostruct.rb152
-rw-r--r--lib/pp.rb6
-rw-r--r--lib/prettyprint.rb22
-rw-r--r--lib/prime.rb37
-rw-r--r--lib/pstore.rb22
-rw-r--r--lib/racc/parser.rb2
-rw-r--r--lib/rake.rb8
-rw-r--r--lib/rake/alt_system.rb8
-rw-r--r--lib/rake/application.rb190
-rw-r--r--lib/rake/backtrace.rb7
-rw-r--r--lib/rake/clean.rb23
-rw-r--r--lib/rake/cloneable.rb8
-rw-r--r--lib/rake/contrib/.document1
-rw-r--r--lib/rake/contrib/ftptools.rb8
-rw-r--r--lib/rake/contrib/publisher.rb16
-rw-r--r--lib/rake/contrib/rubyforgepublisher.rb4
-rw-r--r--lib/rake/contrib/sshpublisher.rb23
-rw-r--r--lib/rake/contrib/sys.rb2
-rw-r--r--lib/rake/cpu_counter.rb125
-rw-r--r--lib/rake/default_loader.rb4
-rw-r--r--lib/rake/dsl_definition.rb80
-rw-r--r--lib/rake/early_time.rb5
-rw-r--r--lib/rake/ext/core.rb7
-rw-r--r--lib/rake/ext/module.rb1
-rw-r--r--lib/rake/ext/pathname.rb25
-rw-r--r--lib/rake/ext/string.rb65
-rw-r--r--lib/rake/ext/time.rb7
-rw-r--r--lib/rake/file_list.rb38
-rw-r--r--lib/rake/file_task.rb8
-rw-r--r--lib/rake/file_utils.rb20
-rw-r--r--lib/rake/gempackagetask.rb4
-rw-r--r--lib/rake/invocation_chain.rb3
-rw-r--r--lib/rake/late_time.rb17
-rw-r--r--lib/rake/lib/.document1
-rw-r--r--lib/rake/lib/project.rake21
-rw-r--r--lib/rake/linked_list.rb4
-rw-r--r--lib/rake/name_space.rb59
-rw-r--r--lib/rake/packagetask.rb35
-rw-r--r--lib/rake/pathmap.rb2
-rw-r--r--lib/rake/pseudo_status.rb4
-rw-r--r--lib/rake/rake_module.rb11
-rw-r--r--lib/rake/rdoctask.rb2
-rw-r--r--lib/rake/ruby182_test_unit_fix.rb2
-rw-r--r--lib/rake/runtest.rb7
-rw-r--r--lib/rake/scope.rb2
-rw-r--r--lib/rake/task.rb23
-rw-r--r--lib/rake/task_arguments.rb29
-rw-r--r--lib/rake/task_manager.rb33
-rw-r--r--lib/rake/tasklib.rb2
-rw-r--r--lib/rake/testtask.rb29
-rw-r--r--lib/rake/thread_pool.rb23
-rw-r--r--lib/rake/trace_output.rb2
-rw-r--r--lib/rake/version.rb2
-rw-r--r--lib/rake/win32.rb2
-rw-r--r--lib/rational.rb23
-rw-r--r--lib/rbconfig/obsolete.rb38
-rw-r--r--lib/rdoc.rb4
-rw-r--r--lib/rdoc/any_method.rb10
-rw-r--r--lib/rdoc/context.rb11
-rw-r--r--lib/rdoc/encoding.rb4
-rw-r--r--lib/rdoc/generator.rb1
-rw-r--r--lib/rdoc/generator/darkfish.rb5
-rw-r--r--lib/rdoc/generator/json_index.rb44
-rw-r--r--lib/rdoc/generator/pot.rb97
-rw-r--r--lib/rdoc/generator/pot/message_extractor.rb67
-rw-r--r--lib/rdoc/generator/pot/po.rb83
-rw-r--r--lib/rdoc/generator/pot/po_entry.rb140
-rw-r--r--lib/rdoc/generator/template/darkfish/_footer.rhtml4
-rw-r--r--lib/rdoc/generator/template/darkfish/_head.rhtml21
-rw-r--r--lib/rdoc/generator/template/darkfish/fonts.css (renamed from lib/rdoc/generator/template/darkfish/css/fonts.css)0
-rwxr-xr-x[-rw-r--r--]lib/rdoc/generator/template/darkfish/images/add.pngbin733 -> 733 bytes-rwxr-xr-x[-rw-r--r--]lib/rdoc/generator/template/darkfish/images/arrow_up.pngbin372 -> 372 bytes-rwxr-xr-x[-rw-r--r--]lib/rdoc/generator/template/darkfish/images/delete.pngbin715 -> 715 bytes-rwxr-xr-x[-rw-r--r--]lib/rdoc/generator/template/darkfish/images/tag_blue.pngbin1880 -> 1880 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/js/darkfish.js43
-rw-r--r--lib/rdoc/generator/template/darkfish/rdoc.css (renamed from lib/rdoc/generator/template/darkfish/css/rdoc.css)12
-rw-r--r--lib/rdoc/i18n.rb9
-rw-r--r--lib/rdoc/i18n/locale.rb101
-rw-r--r--lib/rdoc/i18n/text.rb125
-rw-r--r--lib/rdoc/known_classes.rb1
-rw-r--r--lib/rdoc/markdown.rb176
-rw-r--r--lib/rdoc/markup.rb4
-rw-r--r--lib/rdoc/markup/attribute_manager.rb2
-rw-r--r--lib/rdoc/markup/to_html.rb9
-rw-r--r--lib/rdoc/markup/to_label.rb2
-rw-r--r--lib/rdoc/method_attr.rb14
-rw-r--r--lib/rdoc/options.rb58
-rw-r--r--lib/rdoc/parser.rb2
-rw-r--r--lib/rdoc/parser/c.rb18
-rw-r--r--lib/rdoc/parser/changelog.rb10
-rw-r--r--lib/rdoc/parser/ruby.rb24
-rw-r--r--lib/rdoc/rd/block_parser.rb6
-rw-r--r--lib/rdoc/rd/inline_parser.rb2
-rw-r--r--lib/rdoc/rdoc.rb8
-rw-r--r--lib/rdoc/ri/task.rb71
-rw-r--r--lib/rdoc/ruby_lex.rb6
-rw-r--r--lib/rdoc/ruby_token.rb14
-rw-r--r--lib/rdoc/rubygems_hook.rb8
-rw-r--r--lib/rdoc/single_class.rb4
-rw-r--r--lib/rdoc/stats.rb4
-rw-r--r--lib/rdoc/stats/normal.rb33
-rw-r--r--lib/rdoc/task.rb2
-rw-r--r--lib/rdoc/test_case.rb2
-rw-r--r--lib/rdoc/text.rb13
-rw-r--r--lib/rdoc/token_stream.rb2
-rw-r--r--lib/resolv.rb66
-rw-r--r--lib/rexml/attribute.rb4
-rw-r--r--lib/rexml/comment.rb1
-rw-r--r--lib/rexml/document.rb6
-rw-r--r--lib/rexml/dtd/dtd.rb5
-rw-r--r--lib/rexml/dtd/elementdecl.rb4
-rw-r--r--lib/rexml/element.rb6
-rw-r--r--lib/rexml/entity.rb1
-rw-r--r--lib/rexml/functions.rb2
-rw-r--r--lib/rexml/parent.rb2
-rw-r--r--lib/rexml/parsers/sax2parser.rb1
-rw-r--r--lib/rexml/parsers/xpathparser.rb43
-rw-r--r--lib/rexml/source.rb4
-rw-r--r--lib/rexml/streamlistener.rb2
-rw-r--r--lib/rexml/validation/relaxng.rb21
-rw-r--r--lib/rexml/validation/validation.rb12
-rw-r--r--lib/rexml/xmltokens.rb76
-rw-r--r--lib/rexml/xpath_parser.rb108
-rw-r--r--lib/rinda/ring.rb56
-rw-r--r--lib/rss/maker/base.rb2
-rw-r--r--lib/rss/rss.rb6
-rw-r--r--lib/rss/utils.rb2
-rw-r--r--lib/rss/xmlparser.rb2
-rw-r--r--lib/rubygems.rb56
-rw-r--r--lib/rubygems/available_set.rb2
-rw-r--r--lib/rubygems/basic_specification.rb80
-rw-r--r--lib/rubygems/command.rb5
-rw-r--r--lib/rubygems/command_manager.rb3
-rw-r--r--lib/rubygems/commands/cert_command.rb24
-rw-r--r--lib/rubygems/commands/cleanup_command.rb4
-rw-r--r--lib/rubygems/commands/contents_command.rb28
-rw-r--r--lib/rubygems/commands/dependency_command.rb4
-rw-r--r--lib/rubygems/commands/environment_command.rb7
-rw-r--r--lib/rubygems/commands/help_command.rb219
-rw-r--r--lib/rubygems/commands/install_command.rb58
-rw-r--r--lib/rubygems/commands/list_command.rb4
-rw-r--r--lib/rubygems/commands/mirror_command.rb32
-rw-r--r--lib/rubygems/commands/open_command.rb74
-rw-r--r--lib/rubygems/commands/owner_command.rb4
-rw-r--r--lib/rubygems/commands/pristine_command.rb16
-rw-r--r--lib/rubygems/commands/query_command.rb5
-rw-r--r--lib/rubygems/commands/search_command.rb10
-rw-r--r--lib/rubygems/commands/setup_command.rb2
-rw-r--r--lib/rubygems/commands/uninstall_command.rb16
-rw-r--r--lib/rubygems/commands/update_command.rb28
-rw-r--r--lib/rubygems/commands/yank_command.rb21
-rw-r--r--lib/rubygems/compatibility.rb3
-rw-r--r--lib/rubygems/config_file.rb17
-rw-r--r--lib/rubygems/core_ext/kernel_gem.rb18
-rwxr-xr-xlib/rubygems/core_ext/kernel_require.rb36
-rw-r--r--lib/rubygems/defaults.rb24
-rw-r--r--lib/rubygems/dependency.rb59
-rw-r--r--lib/rubygems/dependency_installer.rb59
-rw-r--r--lib/rubygems/dependency_list.rb6
-rw-r--r--lib/rubygems/doctor.rb2
-rw-r--r--lib/rubygems/errors.rb30
-rw-r--r--lib/rubygems/exceptions.rb24
-rw-r--r--lib/rubygems/ext/builder.rb2
-rw-r--r--lib/rubygems/ext/ext_conf_builder.rb26
-rw-r--r--lib/rubygems/gemcutter_utilities.rb2
-rw-r--r--lib/rubygems/indexer.rb2
-rw-r--r--lib/rubygems/install_update_options.rb17
-rw-r--r--lib/rubygems/installer.rb84
-rw-r--r--lib/rubygems/installer_test_case.rb2
-rw-r--r--lib/rubygems/local_remote_options.rb4
-rw-r--r--lib/rubygems/name_tuple.rb6
-rw-r--r--lib/rubygems/package.rb44
-rw-r--r--lib/rubygems/package/file_source.rb33
-rw-r--r--lib/rubygems/package/io_source.rb45
-rw-r--r--lib/rubygems/package/old.rb14
-rw-r--r--lib/rubygems/package/source.rb3
-rw-r--r--lib/rubygems/package/tar_reader/entry.rb2
-rw-r--r--lib/rubygems/package/tar_writer.rb12
-rw-r--r--lib/rubygems/platform.rb3
-rw-r--r--lib/rubygems/rdoc.rb3
-rw-r--r--lib/rubygems/remote_fetcher.rb83
-rw-r--r--lib/rubygems/request.rb172
-rw-r--r--lib/rubygems/request/connection_pools.rb83
-rw-r--r--lib/rubygems/request/http_pool.rb47
-rw-r--r--lib/rubygems/request/https_pool.rb10
-rw-r--r--lib/rubygems/request_set.rb153
-rw-r--r--lib/rubygems/request_set/gem_dependency_api.rb328
-rw-r--r--lib/rubygems/request_set/lockfile.rb136
-rw-r--r--lib/rubygems/requirement.rb3
-rw-r--r--lib/rubygems/resolver.rb65
-rw-r--r--lib/rubygems/resolver/activation_request.rb7
-rw-r--r--lib/rubygems/resolver/api_set.rb14
-rw-r--r--lib/rubygems/resolver/api_specification.rb8
-rw-r--r--lib/rubygems/resolver/best_set.rb28
-rw-r--r--lib/rubygems/resolver/composed_set.rb16
-rw-r--r--lib/rubygems/resolver/conflict.rb52
-rw-r--r--lib/rubygems/resolver/dependency_request.rb21
-rw-r--r--lib/rubygems/resolver/git_set.rb2
-rw-r--r--lib/rubygems/resolver/git_specification.rb26
-rw-r--r--lib/rubygems/resolver/index_set.rb6
-rw-r--r--lib/rubygems/resolver/installed_specification.rb20
-rw-r--r--lib/rubygems/resolver/installer_set.rb94
-rw-r--r--lib/rubygems/resolver/local_specification.rb25
-rw-r--r--lib/rubygems/resolver/lock_set.rb22
-rw-r--r--lib/rubygems/resolver/lock_specification.rb28
-rw-r--r--lib/rubygems/resolver/set.rb14
-rw-r--r--lib/rubygems/resolver/spec_specification.rb2
-rw-r--r--lib/rubygems/resolver/specification.rb25
-rw-r--r--lib/rubygems/resolver/vendor_set.rb4
-rw-r--r--lib/rubygems/resolver/vendor_specification.rb2
-rw-r--r--lib/rubygems/security/policy.rb1
-rw-r--r--lib/rubygems/server.rb37
-rw-r--r--lib/rubygems/source.rb20
-rw-r--r--lib/rubygems/source/git.rb16
-rw-r--r--lib/rubygems/source/installed.rb7
-rw-r--r--lib/rubygems/source/specific_file.rb7
-rw-r--r--lib/rubygems/spec_fetcher.rb19
-rw-r--r--lib/rubygems/specification.rb237
-rw-r--r--lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem25
-rw-r--r--lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem32
-rw-r--r--lib/rubygems/ssl_certs/GlobalSignRootCA.pem21
-rw-r--r--lib/rubygems/stub_specification.rb24
-rw-r--r--lib/rubygems/test_case.rb62
-rw-r--r--lib/rubygems/test_utilities.rb2
-rw-r--r--lib/rubygems/text.rb35
-rw-r--r--lib/rubygems/uninstaller.rb5
-rw-r--r--lib/rubygems/user_interaction.rb19
-rw-r--r--lib/rubygems/util.rb15
-rw-r--r--lib/rubygems/version.rb6
-rw-r--r--lib/scanf.rb2
-rw-r--r--lib/securerandom.rb157
-rw-r--r--lib/set.rb34
-rw-r--r--lib/shell.rb47
-rw-r--r--lib/shell/builtin-command.rb14
-rw-r--r--lib/shell/command-processor.rb5
-rw-r--r--lib/shell/process-controller.rb9
-rw-r--r--lib/shell/system-command.rb1
-rw-r--r--lib/shellwords.rb18
-rw-r--r--lib/tempfile.rb56
-rw-r--r--lib/test/unit.rb (renamed from test/lib/test/unit.rb)26
-rw-r--r--lib/test/unit/assertions.rb (renamed from test/lib/test/unit/assertions.rb)112
-rw-r--r--lib/test/unit/parallel.rb (renamed from test/lib/test/unit/parallel.rb)10
-rw-r--r--lib/test/unit/test-unit.gemspec14
-rw-r--r--lib/test/unit/testcase.rb (renamed from test/lib/test/unit/testcase.rb)0
-rw-r--r--lib/thwait.rb4
-rw-r--r--lib/time.rb100
-rw-r--r--lib/timeout.rb11
-rw-r--r--lib/tmpdir.rb41
-rw-r--r--lib/tsort.rb14
-rw-r--r--lib/unicode_normalize.rb78
-rw-r--r--lib/unicode_normalize/normalize.rb168
-rw-r--r--lib/unicode_normalize/tables.rb1163
-rw-r--r--lib/uri.rb2
-rw-r--r--lib/uri/common.rb555
-rw-r--r--lib/uri/ftp.rb21
-rw-r--r--lib/uri/generic.rb282
-rw-r--r--lib/uri/http.rb16
-rw-r--r--lib/uri/mailto.rb143
-rw-r--r--lib/uri/rfc2396_parser.rb543
-rw-r--r--lib/uri/rfc3986_parser.rb124
-rw-r--r--lib/weakref.rb11
-rw-r--r--lib/webrick/httpproxy.rb4
-rw-r--r--lib/webrick/httprequest.rb2
-rw-r--r--lib/webrick/httpresponse.rb2
-rw-r--r--lib/webrick/httpserver.rb4
-rw-r--r--lib/webrick/httpservlet/cgihandler.rb4
-rw-r--r--lib/webrick/httpservlet/erbhandler.rb2
-rw-r--r--lib/webrick/httpservlet/filehandler.rb3
-rw-r--r--lib/webrick/httpstatus.rb6
-rw-r--r--lib/webrick/log.rb4
-rw-r--r--lib/webrick/server.rb82
-rw-r--r--lib/webrick/ssl.rb3
-rw-r--r--lib/webrick/utils.rb11
-rw-r--r--lib/xmlrpc/client.rb26
-rw-r--r--lib/xmlrpc/config.rb1
-rw-r--r--lib/xmlrpc/httpserver.rb173
-rw-r--r--lib/xmlrpc/parser.rb34
-rw-r--r--lib/yaml.rb40
-rw-r--r--load.c108
-rw-r--r--localeinit.c15
-rw-r--r--man/irb.14
-rw-r--r--man/rake.1334
-rw-r--r--man/ruby.1135
-rw-r--r--marshal.c470
-rw-r--r--math.c90
-rw-r--r--method.h6
-rw-r--r--misc/README2
-rw-r--r--misc/rdoc-mode.el40
-rw-r--r--misc/ruby-additional.el13
-rw-r--r--missing/crypt.c91
-rw-r--r--missing/lgamma_r.c2
-rw-r--r--missing/nextafter.c77
-rw-r--r--missing/setproctitle.c7
-rw-r--r--nacl/GNUmakefile.in49
-rw-r--r--nacl/README.nacl23
-rw-r--r--nacl/ioctl.h7
-rw-r--r--[-rwxr-xr-x]nacl/nacl-config.rb16
-rw-r--r--nacl/package.rb6
-rw-r--r--nacl/pepper_main.c248
-rw-r--r--node.c210
-rw-r--r--node.h9
-rw-r--r--numeric.c295
-rw-r--r--object.c442
-rw-r--r--pack.c380
-rw-r--r--parse.y3244
-rw-r--r--prelude.rb6
-rw-r--r--probes_helper.h2
-rw-r--r--proc.c574
-rw-r--r--process.c1027
-rw-r--r--random.c24
-rw-r--r--range.c57
-rw-r--r--rational.c77
-rw-r--r--re.c209
-rw-r--r--regcomp.c246
-rw-r--r--regenc.c66
-rw-r--r--regenc.h28
-rw-r--r--regerror.c26
-rw-r--r--regexec.c49
-rw-r--r--regint.h83
-rw-r--r--regparse.c467
-rw-r--r--regparse.h4
-rw-r--r--ruby.c301
-rw-r--r--ruby_atomic.h6
-rw-r--r--safe.c18
-rw-r--r--sample/benchmark.rb19
-rw-r--r--sample/cgi-session-pstore.rb11
-rw-r--r--sample/delegate.rb31
-rw-r--r--sample/drb/acl.rb15
-rw-r--r--sample/drb/ring_place.rb6
-rw-r--r--sample/net-imap.rb167
-rw-r--r--sample/open3.rb12
-rw-r--r--sample/pstore.rb19
-rw-r--r--sample/rinda-ring.rb22
-rw-r--r--sample/simple-bench.rb140
-rw-r--r--sample/tempfile.rb8
-rwxr-xr-xsample/test.rb2
-rw-r--r--sample/timeout.rb2
-rw-r--r--sample/trick2013/kinaba/entry.rb2
-rw-r--r--sample/trick2013/mame/entry.rb2
-rw-r--r--sample/weakref.rb9
-rw-r--r--signal.c311
-rw-r--r--siphash.c1
-rw-r--r--spec/default.mspec5
-rw-r--r--sprintf.c273
-rw-r--r--st.c289
-rw-r--r--string.c2024
-rw-r--r--struct.c173
-rw-r--r--symbian/README.SYMBIAN93
-rw-r--r--symbian/configure.bat123
-rw-r--r--symbian/missing-aeabi.c18
-rw-r--r--symbian/missing-pips.c65
-rw-r--r--symbian/pre-build83
-rw-r--r--symbian/setup440
-rw-r--r--symbol.c1128
-rw-r--r--symbol.h88
-rw-r--r--template/Doxyfile.tmpl2
-rw-r--r--template/fake.rb.in43
-rw-r--r--template/id.h.tmpl27
-rw-r--r--template/insns.inc.tmpl2
-rw-r--r--template/insns_info.inc.tmpl2
-rw-r--r--template/known_errors.inc.tmpl2
-rw-r--r--template/minsns.inc.tmpl2
-rw-r--r--template/opt_sc.inc.tmpl2
-rw-r--r--template/optinsn.inc.tmpl2
-rw-r--r--template/optunifs.inc.tmpl2
-rw-r--r--template/unicode_norm_gen.tmpl225
-rw-r--r--template/verconf.h.in (renamed from template/verconf.h.tmpl)2
-rw-r--r--template/vm.inc.tmpl2
-rw-r--r--test/-ext-/bignum/test_big2str.rb2
-rw-r--r--test/-ext-/bignum/test_div.rb2
-rw-r--r--test/-ext-/bignum/test_mul.rb2
-rw-r--r--test/-ext-/bignum/test_pack.rb24
-rw-r--r--test/-ext-/bignum/test_str2big.rb2
-rw-r--r--test/-ext-/bug_reporter/test_bug_reporter.rb22
-rw-r--r--test/-ext-/exception/test_data_error.rb1
-rw-r--r--test/-ext-/exception/test_ensured.rb1
-rw-r--r--test/-ext-/float/test_nextafter.rb64
-rw-r--r--test/-ext-/hash/test_delete.rb19
-rw-r--r--test/-ext-/iseq_load/test_iseq_load.rb104
-rw-r--r--test/-ext-/marshal/test_usrmarshal.rb1
-rw-r--r--test/-ext-/old_thread_select/test_old_thread_select.rb103
-rw-r--r--test/-ext-/proc/test_bmethod.rb37
-rw-r--r--test/-ext-/st/test_foreach.rb15
-rw-r--r--test/-ext-/string/test_coderange.rb59
-rw-r--r--test/-ext-/string/test_cstr.rb83
-rw-r--r--test/-ext-/string/test_modify_expand.rb14
-rw-r--r--test/-ext-/string/test_nofree.rb10
-rw-r--r--test/-ext-/struct/test_duplicate.rb22
-rw-r--r--test/-ext-/struct/test_member.rb1
-rw-r--r--test/-ext-/symbol/test_inadvertent_creation.rb225
-rw-r--r--test/-ext-/symbol/test_type.rb4
-rw-r--r--test/-ext-/test_bug-3571.rb1
-rw-r--r--test/-ext-/test_printf.rb4
-rw-r--r--test/-ext-/test_recursion.rb1
-rw-r--r--test/-ext-/tracepoint/test_tracepoint.rb5
-rw-r--r--test/-ext-/vm/test_at_exit.rb19
-rw-r--r--test/-ext-/win32/test_console_attr.rb43
-rw-r--r--test/-ext-/win32/test_dln.rb3
-rw-r--r--test/-ext-/win32/test_fd_setsize.rb1
-rw-r--r--test/benchmark/test_benchmark.rb136
-rw-r--r--test/bigdecimal/test_bigdecimal.rb19
-rw-r--r--test/bigdecimal/test_bigmath.rb17
-rw-r--r--test/cgi/test_cgi_core.rb65
-rw-r--r--test/cgi/test_cgi_header.rb8
-rw-r--r--test/cgi/test_cgi_multipart.rb60
-rw-r--r--test/cgi/test_cgi_tag_helper.rb12
-rw-r--r--test/cgi/test_cgi_util.rb23
-rw-r--r--test/coverage/test_coverage.rb11
-rw-r--r--test/csv/base.rb2
-rwxr-xr-xtest/csv/test_data_converters.rb4
-rwxr-xr-xtest/csv/test_encodings.rb30
-rwxr-xr-xtest/csv/test_features.rb46
-rwxr-xr-xtest/csv/test_headers.rb34
-rwxr-xr-xtest/csv/test_interface.rb12
-rwxr-xr-xtest/csv/test_row.rb44
-rwxr-xr-xtest/csv/test_table.rb24
-rw-r--r--test/date/test_date.rb3
-rw-r--r--test/date/test_date_arith.rb30
-rw-r--r--test/date/test_date_attr.rb9
-rw-r--r--test/date/test_date_parse.rb13
-rw-r--r--test/date/test_date_strftime.rb8
-rw-r--r--test/date/test_date_strptime.rb22
-rw-r--r--test/dbm/test_dbm.rb18
-rw-r--r--test/digest/digest/foo.rb10
-rwxr-xr-x[-rw-r--r--]test/digest/test_digest.rb75
-rw-r--r--test/digest/test_digest_extend.rb2
-rw-r--r--test/digest/test_digest_hmac.rb2
-rw-r--r--test/dl/test_base.rb146
-rw-r--r--test/dl/test_c_struct_entry.rb55
-rw-r--r--test/dl/test_c_union_entity.rb31
-rw-r--r--test/dl/test_callback.rb72
-rw-r--r--test/dl/test_cfunc.rb80
-rw-r--r--test/dl/test_cparser.rb33
-rw-r--r--test/dl/test_cptr.rb226
-rw-r--r--test/dl/test_dl2.rb140
-rw-r--r--test/dl/test_func.rb184
-rw-r--r--test/dl/test_handle.rb191
-rw-r--r--test/dl/test_import.rb165
-rw-r--r--test/dl/test_win32.rb54
-rw-r--r--test/drb/drbtest.rb16
-rw-r--r--test/drb/ignore_test_drb.rb3
-rw-r--r--test/drb/test_acl.rb4
-rw-r--r--test/drb/test_drb.rb37
-rw-r--r--test/drb/test_drbssl.rb14
-rw-r--r--test/drb/test_drbunix.rb13
-rw-r--r--test/drb/ut_array.rb1
-rw-r--r--test/drb/ut_array_drbssl.rb11
-rw-r--r--test/drb/ut_array_drbunix.rb1
-rw-r--r--test/drb/ut_drb.rb6
-rw-r--r--test/drb/ut_drb_drbssl.rb13
-rw-r--r--test/drb/ut_drb_drbunix.rb3
-rw-r--r--test/drb/ut_eq.rb8
-rw-r--r--test/drb/ut_eval.rb7
-rw-r--r--test/drb/ut_large.rb7
-rw-r--r--test/drb/ut_port.rb1
-rw-r--r--test/drb/ut_safe1.rb1
-rw-r--r--test/drb/ut_timerholder.rb74
-rw-r--r--test/dtrace/helper.rb1
-rw-r--r--test/erb/test_erb.rb19
-rw-r--r--test/erb/test_erb_command.rb11
-rw-r--r--test/erb/test_erb_m17n.rb2
-rw-r--r--test/etc/test_etc.rb56
-rw-r--r--test/fiddle/helper.rb1
-rw-r--r--test/fiddle/test_function.rb10
-rw-r--r--test/fiddle/test_handle.rb28
-rw-r--r--test/fiddle/test_import.rb1
-rw-r--r--test/fiddle/test_pointer.rb7
-rw-r--r--test/fileutils/fileasserts.rb18
-rw-r--r--test/fileutils/test_fileutils.rb438
-rw-r--r--test/gdbm/test_gdbm.rb17
-rw-r--r--test/inlinetest.rb55
-rw-r--r--test/io/console/test_io_console.rb78
-rw-r--r--test/io/nonblock/test_flush.rb14
-rw-r--r--test/io/wait/test_io_wait.rb10
-rw-r--r--test/irb/test_completion.rb1
-rw-r--r--test/irb/test_option.rb1
-rw-r--r--test/irb/test_raise_no_backtrace_exception.rb13
-rwxr-xr-xtest/json/test_json.rb12
-rwxr-xr-xtest/json/test_json_generate.rb1
-rw-r--r--test/lib/find_executable.rb21
-rw-r--r--test/lib/leakchecker.rb167
-rw-r--r--test/lib/minitest/autorun.rb13
-rw-r--r--test/lib/tracepointchecker.rb118
-rw-r--r--test/logger/test_logdevice.rb511
-rw-r--r--test/logger/test_logger.rb404
-rw-r--r--test/logger/test_severity.rb15
-rw-r--r--test/matrix/test_matrix.rb153
-rw-r--r--test/matrix/test_vector.rb61
-rw-r--r--test/minitest/metametameta.rb5
-rw-r--r--test/minitest/test_minitest_benchmark.rb5
-rw-r--r--test/minitest/test_minitest_mock.rb9
-rw-r--r--test/minitest/test_minitest_spec.rb811
-rw-r--r--test/minitest/test_minitest_unit.rb64
-rw-r--r--test/misc/test_ruby_mode.rb11
-rw-r--r--test/mkmf/base.rb12
-rw-r--r--test/mkmf/test_config.rb1
-rw-r--r--test/mkmf/test_flags.rb21
-rw-r--r--test/mkmf/test_framework.rb6
-rw-r--r--test/monitor/test_monitor.rb131
-rw-r--r--test/net/ftp/test_ftp.rb97
-rw-r--r--test/net/http/test_http.rb87
-rw-r--r--test/net/http/test_httpresponse.rb140
-rw-r--r--test/net/http/test_https.rb45
-rw-r--r--test/net/http/test_https_proxy.rb31
-rw-r--r--test/net/http/utils.rb21
-rw-r--r--test/net/imap/test_imap.rb414
-rw-r--r--test/net/imap/test_imap_response_parser.rb43
-rw-r--r--test/net/pop/test_pop.rb30
-rw-r--r--test/objspace/test_objspace.rb19
-rw-r--r--test/open-uri/test_open-uri.rb200
-rw-r--r--test/open-uri/test_ssl.rb143
-rw-r--r--test/openssl/ssl_server.rb81
-rw-r--r--test/openssl/test_asn1.rb25
-rw-r--r--test/openssl/test_bn.rb18
-rw-r--r--test/openssl/test_buffering.rb2
-rw-r--r--test/openssl/test_cipher.rb9
-rw-r--r--test/openssl/test_config.rb6
-rw-r--r--test/openssl/test_digest.rb15
-rw-r--r--test/openssl/test_engine.rb2
-rw-r--r--test/openssl/test_fips.rb2
-rw-r--r--test/openssl/test_hmac.rb11
-rw-r--r--test/openssl/test_ns_spki.rb2
-rw-r--r--test/openssl/test_ocsp.rb2
-rw-r--r--test/openssl/test_pair.rb54
-rw-r--r--test/openssl/test_partial_record_read.rb34
-rw-r--r--test/openssl/test_pkcs12.rb2
-rw-r--r--test/openssl/test_pkcs5.rb2
-rw-r--r--test/openssl/test_pkcs7.rb143
-rw-r--r--test/openssl/test_pkey_dh.rb2
-rw-r--r--test/openssl/test_pkey_dsa.rb2
-rw-r--r--test/openssl/test_pkey_ec.rb2
-rw-r--r--test/openssl/test_pkey_rsa.rb2
-rw-r--r--test/openssl/test_ssl.rb368
-rw-r--r--test/openssl/test_ssl_session.rb128
-rw-r--r--test/openssl/test_x509cert.rb6
-rw-r--r--test/openssl/test_x509crl.rb2
-rw-r--r--test/openssl/test_x509ext.rb2
-rw-r--r--test/openssl/test_x509name.rb2
-rw-r--r--test/openssl/test_x509req.rb2
-rw-r--r--test/openssl/test_x509store.rb3
-rw-r--r--test/openssl/utils.rb128
-rw-r--r--test/optparse/test_cclass.rb18
-rw-r--r--test/ostruct/test_ostruct.rb1
-rw-r--r--test/pathname/test_pathname.rb55
-rw-r--r--test/profile_test_all.rb (renamed from test/lib/profile_test_all.rb)0
-rw-r--r--test/psych/json/test_stream.rb2
-rw-r--r--test/psych/test_emitter.rb3
-rw-r--r--test/psych/test_engine_manager.rb47
-rw-r--r--test/psych/test_exception.rb6
-rw-r--r--test/psych/test_hash.rb5
-rw-r--r--test/psych/test_json_tree.rb2
-rw-r--r--test/psych/test_marshalable.rb54
-rw-r--r--test/psych/test_merge_keys.rb30
-rw-r--r--test/psych/test_object_references.rb4
-rw-r--r--test/psych/test_string.rb6
-rw-r--r--test/psych/test_symbol.rb8
-rw-r--r--test/psych/test_yaml.rb3
-rw-r--r--test/psych/test_yamldbm.rb4
-rw-r--r--test/psych/test_yamlstore.rb2
-rw-r--r--test/rake/helper.rb13
-rw-r--r--test/rake/support/rakefile_definitions.rb36
-rw-r--r--test/rake/support/ruby_runner.rb11
-rw-r--r--test/rake/test_rake_application.rb192
-rw-r--r--test/rake/test_rake_application_options.rb19
-rw-r--r--test/rake/test_rake_backtrace.rb8
-rw-r--r--test/rake/test_rake_clean.rb15
-rw-r--r--test/rake/test_rake_cpu_counter.rb68
-rw-r--r--test/rake/test_rake_definitions.rb5
-rw-r--r--test/rake/test_rake_directory_task.rb19
-rw-r--r--test/rake/test_rake_file_list.rb28
-rw-r--r--test/rake/test_rake_file_task.rb91
-rw-r--r--test/rake/test_rake_functional.rb18
-rw-r--r--test/rake/test_rake_late_time.rb18
-rw-r--r--test/rake/test_rake_multi_task.rb6
-rw-r--r--test/rake/test_rake_name_space.rb14
-rw-r--r--test/rake/test_rake_path_map.rb4
-rw-r--r--test/rake/test_rake_pathname_extensions.rb15
-rw-r--r--test/rake/test_rake_rules.rb26
-rw-r--r--test/rake/test_rake_task.rb19
-rw-r--r--test/rake/test_rake_task_argument_parsing.rb16
-rw-r--r--test/rake/test_rake_task_arguments.rb6
-rw-r--r--test/rake/test_rake_task_manager.rb20
-rw-r--r--test/rake/test_rake_task_with_arguments.rb1
-rw-r--r--test/rake/test_rake_test_task.rb29
-rw-r--r--test/rake/test_rake_thread_pool.rb5
-rw-r--r--test/rdoc/test.ja.large.rdoc3
-rw-r--r--test/rdoc/test_attribute_manager.rb120
-rw-r--r--test/rdoc/test_rdoc_any_method.rb29
-rw-r--r--test/rdoc/test_rdoc_constant.rb30
-rw-r--r--test/rdoc/test_rdoc_context.rb2
-rw-r--r--test/rdoc/test_rdoc_encoding.rb23
-rw-r--r--test/rdoc/test_rdoc_generator_darkfish.rb4
-rw-r--r--test/rdoc/test_rdoc_generator_json_index.rb56
-rw-r--r--test/rdoc/test_rdoc_generator_markup.rb2
-rw-r--r--test/rdoc/test_rdoc_generator_pot.rb91
-rw-r--r--test/rdoc/test_rdoc_generator_pot_po.rb51
-rw-r--r--test/rdoc/test_rdoc_generator_pot_po_entry.rb139
-rw-r--r--test/rdoc/test_rdoc_i18n_locale.rb73
-rw-r--r--test/rdoc/test_rdoc_i18n_text.rb123
-rw-r--r--test/rdoc/test_rdoc_markup_attribute_manager.rb6
-rw-r--r--test/rdoc/test_rdoc_markup_heading.rb8
-rw-r--r--test/rdoc/test_rdoc_markup_pre_process.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_html.rb72
-rw-r--r--test/rdoc/test_rdoc_markup_to_html_snippet.rb15
-rw-r--r--test/rdoc/test_rdoc_markup_to_label.rb8
-rw-r--r--test/rdoc/test_rdoc_method_attr.rb32
-rw-r--r--test/rdoc/test_rdoc_normal_class.rb8
-rw-r--r--test/rdoc/test_rdoc_options.rb19
-rw-r--r--test/rdoc/test_rdoc_parser.rb17
-rw-r--r--test/rdoc/test_rdoc_parser_c.rb73
-rw-r--r--test/rdoc/test_rdoc_parser_changelog.rb2
-rw-r--r--test/rdoc/test_rdoc_parser_markdown.rb2
-rw-r--r--test/rdoc/test_rdoc_parser_rd.rb2
-rw-r--r--test/rdoc/test_rdoc_parser_ruby.rb62
-rw-r--r--test/rdoc/test_rdoc_parser_simple.rb2
-rw-r--r--test/rdoc/test_rdoc_rd_block_parser.rb4
-rw-r--r--test/rdoc/test_rdoc_rdoc.rb27
-rw-r--r--test/rdoc/test_rdoc_ruby_lex.rb11
-rw-r--r--test/rdoc/test_rdoc_rubygems_hook.rb3
-rw-r--r--test/rdoc/test_rdoc_single_class.rb18
-rw-r--r--test/rdoc/test_rdoc_stats.rb55
-rw-r--r--test/rdoc/test_rdoc_task.rb50
-rw-r--r--test/rdoc/test_rdoc_text.rb3
-rw-r--r--test/readline/test_readline.rb14
-rw-r--r--test/resolv/test_addr.rb3
-rw-r--r--test/resolv/test_dns.rb172
-rw-r--r--test/resolv/test_resource.rb21
-rw-r--r--test/rexml/data/ticket_110_utf16.xml (renamed from test/rexml/data/utf16.xml)bin207464 -> 207464 bytes-rw-r--r--test/rexml/listener.rb94
-rw-r--r--test/rexml/parse/test_document_type_declaration.rb56
-rw-r--r--test/rexml/parse/test_notation_declaration.rb118
-rw-r--r--test/rexml/parser/test_sax2.rb2
-rw-r--r--test/rexml/parser/test_tree.rb2
-rw-r--r--test/rexml/parser/test_ultra_light.rb2
-rw-r--r--test/rexml/test_attributes.rb342
-rw-r--r--test/rexml/test_attributes_mixin.rb48
-rw-r--r--test/rexml/test_changing_encoding.rb67
-rw-r--r--test/rexml/test_comment.rb2
-rw-r--r--test/rexml/test_contrib.rb881
-rw-r--r--test/rexml/test_core.rb2457
-rw-r--r--test/rexml/test_doctype.rb190
-rw-r--r--test/rexml/test_document.rb503
-rw-r--r--test/rexml/test_elements.rb196
-rw-r--r--test/rexml/test_encoding.rb161
-rw-r--r--test/rexml/test_encoding_2.rb59
-rw-r--r--test/rexml/test_entity.rb336
-rw-r--r--test/rexml/test_functions.rb401
-rw-r--r--test/rexml/test_functions_number.rb52
-rw-r--r--test/rexml/test_jaxen.rb209
-rw-r--r--test/rexml/test_light.rb170
-rw-r--r--test/rexml/test_lightparser.rb17
-rw-r--r--test/rexml/test_listener.rb201
-rw-r--r--test/rexml/test_martin_fowler.rb40
-rw-r--r--test/rexml/test_namespace.rb54
-rw-r--r--test/rexml/test_order.rb174
-rw-r--r--test/rexml/test_preceding_sibling.rb56
-rw-r--r--test/rexml/test_pullparser.rb160
-rw-r--r--test/rexml/test_rexml_issuezilla.rb20
-rw-r--r--test/rexml/test_sax.rb483
-rw-r--r--test/rexml/test_stream.rb194
-rw-r--r--test/rexml/test_text.rb28
-rw-r--r--test/rexml/test_ticket_80.rb46
-rw-r--r--test/rexml/test_validation_rng.rb616
-rw-r--r--test/rexml/test_xml_declaration.rb42
-rw-r--r--test/rexml/test_xpath.rb1079
-rw-r--r--test/rexml/test_xpath_attribute_query.rb89
-rw-r--r--test/rexml/test_xpath_msw.rb38
-rw-r--r--test/rexml/test_xpath_pred.rb80
-rw-r--r--test/rexml/test_xpathtext.rb72
-rw-r--r--test/rexml/xpath/test_attribute.rb29
-rw-r--r--test/rexml/xpath/test_axis_preceding_sibling.rb39
-rw-r--r--test/rexml/xpath/test_base.rb1089
-rw-r--r--test/rexml/xpath/test_node.rb42
-rw-r--r--test/rexml/xpath/test_predicate.rb82
-rw-r--r--test/rexml/xpath/test_text.rb74
-rw-r--r--test/rinda/test_rinda.rb88
-rw-r--r--test/ripper/dummyparser.rb8
-rw-r--r--test/ripper/test_files.rb9
-rw-r--r--test/ripper/test_parser_events.rb74
-rw-r--r--test/ripper/test_ripper.rb33
-rw-r--r--test/ripper/test_scanner_events.rb17
-rw-r--r--test/ripper/test_sexp.rb49
-rw-r--r--test/rss/rss-assertions.rb2
-rw-r--r--test/rss/test_maker_itunes.rb4
-rw-r--r--test/rss/test_setup_maker_itunes.rb1
-rw-r--r--test/rss/test_to_s.rb6
-rw-r--r--test/ruby/enc/test_utf32.rb68
-rw-r--r--test/ruby/enc/test_windows_1252.rb25
-rw-r--r--test/ruby/envutil.rb (renamed from test/lib/envutil.rb)172
-rw-r--r--test/ruby/memory_status.rb (renamed from test/lib/memory_status.rb)34
-rw-r--r--test/ruby/test_alias.rb1
-rw-r--r--test/ruby/test_argf.rb27
-rw-r--r--test/ruby/test_array.rb106
-rw-r--r--test/ruby/test_assignment.rb73
-rw-r--r--test/ruby/test_autoload.rb87
-rw-r--r--test/ruby/test_backtrace.rb22
-rw-r--r--test/ruby/test_beginendblock.rb24
-rw-r--r--test/ruby/test_call.rb8
-rw-r--r--test/ruby/test_case.rb1
-rw-r--r--test/ruby/test_class.rb42
-rw-r--r--test/ruby/test_comparable.rb12
-rw-r--r--test/ruby/test_complex.rb385
-rw-r--r--test/ruby/test_const.rb18
-rw-r--r--test/ruby/test_continuation.rb3
-rw-r--r--test/ruby/test_defined.rb28
-rw-r--r--test/ruby/test_dir.rb59
-rw-r--r--test/ruby/test_dir_m17n.rb68
-rw-r--r--test/ruby/test_econv.rb5
-rw-r--r--test/ruby/test_encoding.rb8
-rw-r--r--test/ruby/test_enum.rb292
-rw-r--r--test/ruby/test_enumerator.rb3
-rw-r--r--test/ruby/test_env.rb91
-rw-r--r--test/ruby/test_eval.rb24
-rw-r--r--test/ruby/test_exception.rb352
-rw-r--r--test/ruby/test_fiber.rb11
-rw-r--r--test/ruby/test_file.rb43
-rw-r--r--test/ruby/test_file_exhaustive.rb327
-rw-r--r--test/ruby/test_fixnum.rb7
-rw-r--r--test/ruby/test_flip.rb1
-rw-r--r--test/ruby/test_float.rb75
-rw-r--r--test/ruby/test_fnmatch.rb1
-rw-r--r--test/ruby/test_gc.rb124
-rw-r--r--test/ruby/test_hash.rb74
-rw-r--r--test/ruby/test_io.rb470
-rw-r--r--test/ruby/test_io_m17n.rb130
-rw-r--r--test/ruby/test_iseq.rb53
-rw-r--r--test/ruby/test_keyword.rb127
-rw-r--r--test/ruby/test_lambda.rb50
-rw-r--r--test/ruby/test_lazy_enumerator.rb11
-rw-r--r--test/ruby/test_literal.rb35
-rw-r--r--test/ruby/test_m17n.rb87
-rw-r--r--test/ruby/test_m17n_comb.rb82
-rw-r--r--test/ruby/test_marshal.rb104
-rw-r--r--test/ruby/test_math.rb29
-rw-r--r--test/ruby/test_method.rb154
-rw-r--r--test/ruby/test_module.rb61
-rw-r--r--test/ruby/test_numeric.rb42
-rw-r--r--test/ruby/test_object.rb56
-rw-r--r--test/ruby/test_objectspace.rb13
-rw-r--r--test/ruby/test_optimization.rb244
-rw-r--r--test/ruby/test_pack.rb27
-rw-r--r--test/ruby/test_parse.rb29
-rw-r--r--test/ruby/test_proc.rb46
-rw-r--r--test/ruby/test_process.rb372
-rw-r--r--test/ruby/test_rand.rb6
-rw-r--r--test/ruby/test_range.rb27
-rw-r--r--test/ruby/test_rational.rb378
-rw-r--r--test/ruby/test_readpartial.rb4
-rw-r--r--test/ruby/test_refinement.rb300
-rw-r--r--test/ruby/test_regexp.rb65
-rw-r--r--test/ruby/test_require.rb71
-rw-r--r--test/ruby/test_rubyoptions.rb259
-rw-r--r--test/ruby/test_rubyvm.rb1
-rw-r--r--test/ruby/test_settracefunc.rb311
-rw-r--r--test/ruby/test_signal.rb50
-rw-r--r--test/ruby/test_sleep.rb14
-rw-r--r--test/ruby/test_sprintf.rb105
-rw-r--r--test/ruby/test_string.rb82
-rw-r--r--test/ruby/test_struct.rb58
-rw-r--r--test/ruby/test_super.rb22
-rw-r--r--test/ruby/test_symbol.rb80
-rw-r--r--test/ruby/test_syntax.rb287
-rw-r--r--test/ruby/test_system.rb3
-rw-r--r--test/ruby/test_thread.rb72
-rw-r--r--test/ruby/test_threadgroup.rb10
-rw-r--r--test/ruby/test_time.rb39
-rw-r--r--test/ruby/test_time_tz.rb26
-rw-r--r--test/ruby/test_transcode.rb32
-rw-r--r--test/ruby/test_unicode_escape.rb1
-rw-r--r--test/ruby/test_variable.rb35
-rw-r--r--test/ruby/test_weakmap.rb9
-rw-r--r--test/ruby/test_whileuntil.rb1
-rw-r--r--test/ruby/test_yield.rb28
-rw-r--r--test/rubygems/test_gem.rb227
-rw-r--r--test/rubygems/test_gem_available_set.rb19
-rw-r--r--test/rubygems/test_gem_command.rb55
-rw-r--r--test/rubygems/test_gem_commands_cert_command.rb1
-rw-r--r--test/rubygems/test_gem_commands_contents_command.rb57
-rw-r--r--test/rubygems/test_gem_commands_environment_command.rb1
-rw-r--r--test/rubygems/test_gem_commands_help_command.rb7
-rw-r--r--test/rubygems/test_gem_commands_install_command.rb107
-rw-r--r--test/rubygems/test_gem_commands_open_command.rb46
-rw-r--r--test/rubygems/test_gem_commands_pristine_command.rb92
-rw-r--r--test/rubygems/test_gem_commands_query_command.rb80
-rw-r--r--test/rubygems/test_gem_commands_setup_command.rb23
-rw-r--r--test/rubygems/test_gem_commands_uninstall_command.rb36
-rw-r--r--test/rubygems/test_gem_commands_update_command.rb76
-rw-r--r--test/rubygems/test_gem_commands_yank_command.rb4
-rw-r--r--test/rubygems/test_gem_config_file.rb26
-rw-r--r--test/rubygems/test_gem_dependency.rb138
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb238
-rw-r--r--test/rubygems/test_gem_ext_builder.rb15
-rw-r--r--test/rubygems/test_gem_ext_cmake_builder.rb2
-rw-r--r--test/rubygems/test_gem_ext_ext_conf_builder.rb4
-rw-r--r--test/rubygems/test_gem_gemcutter_utilities.rb9
-rw-r--r--test/rubygems/test_gem_impossible_dependencies_error.rb32
-rw-r--r--test/rubygems/test_gem_install_update_options.rb34
-rw-r--r--test/rubygems/test_gem_installer.rb115
-rw-r--r--test/rubygems/test_gem_local_remote_options.rb13
-rw-r--r--test/rubygems/test_gem_name_tuple.rb7
-rw-r--r--test/rubygems/test_gem_package.rb21
-rw-r--r--test/rubygems/test_gem_package_tar_header.rb2
-rw-r--r--test/rubygems/test_gem_package_tar_reader.rb12
-rw-r--r--test/rubygems/test_gem_package_tar_reader_entry.rb19
-rw-r--r--test/rubygems/test_gem_package_tar_writer.rb17
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb181
-rw-r--r--test/rubygems/test_gem_request.rb136
-rw-r--r--test/rubygems/test_gem_request_connection_pools.rb120
-rw-r--r--test/rubygems/test_gem_request_set.rb254
-rw-r--r--test/rubygems/test_gem_request_set_gem_dependency_api.rb203
-rw-r--r--test/rubygems/test_gem_request_set_lockfile.rb421
-rw-r--r--test/rubygems/test_gem_requirement.rb13
-rw-r--r--test/rubygems/test_gem_resolver.rb132
-rw-r--r--test/rubygems/test_gem_resolver_activation_request.rb10
-rw-r--r--test/rubygems/test_gem_resolver_api_set.rb4
-rw-r--r--test/rubygems/test_gem_resolver_api_specification.rb44
-rw-r--r--test/rubygems/test_gem_resolver_best_set.rb57
-rw-r--r--test/rubygems/test_gem_resolver_composed_set.rb27
-rw-r--r--test/rubygems/test_gem_resolver_conflict.rb32
-rw-r--r--test/rubygems/test_gem_resolver_dependency_request.rb64
-rw-r--r--test/rubygems/test_gem_resolver_git_set.rb26
-rw-r--r--test/rubygems/test_gem_resolver_git_specification.rb12
-rw-r--r--test/rubygems/test_gem_resolver_index_set.rb30
-rw-r--r--test/rubygems/test_gem_resolver_installer_set.rb169
-rw-r--r--test/rubygems/test_gem_resolver_lock_set.rb18
-rw-r--r--test/rubygems/test_gem_resolver_lock_specification.rb13
-rw-r--r--test/rubygems/test_gem_resolver_specification.rb32
-rw-r--r--test/rubygems/test_gem_resolver_vendor_set.rb18
-rw-r--r--test/rubygems/test_gem_security_policy.rb4
-rw-r--r--test/rubygems/test_gem_server.rb73
-rw-r--r--test/rubygems/test_gem_silent_ui.rb5
-rw-r--r--test/rubygems/test_gem_source.rb32
-rw-r--r--test/rubygems/test_gem_source_git.rb38
-rw-r--r--test/rubygems/test_gem_source_installed.rb8
-rw-r--r--test/rubygems/test_gem_source_lock.rb4
-rw-r--r--test/rubygems/test_gem_source_specific_file.rb4
-rw-r--r--test/rubygems/test_gem_source_vendor.rb4
-rw-r--r--test/rubygems/test_gem_specification.rb234
-rw-r--r--test/rubygems/test_gem_stub_specification.rb102
-rw-r--r--test/rubygems/test_gem_text.rb27
-rw-r--r--test/rubygems/test_gem_uninstaller.rb23
-rw-r--r--test/rubygems/test_gem_unsatisfiable_dependency_error.rb32
-rw-r--r--test/rubygems/test_kernel.rb30
-rw-r--r--test/rubygems/test_require.rb60
-rw-r--r--test/runner.rb16
-rw-r--r--test/scanf/test_scanf.rb38
-rw-r--r--test/sdbm/test_sdbm.rb3
-rw-r--r--test/shell/test_command_processor.rb1
-rw-r--r--test/socket/test_addrinfo.rb20
-rw-r--r--test/socket/test_basicsocket.rb39
-rw-r--r--test/socket/test_socket.rb22
-rw-r--r--test/socket/test_sockopt.rb27
-rw-r--r--test/socket/test_tcp.rb51
-rw-r--r--test/socket/test_unix.rb179
-rw-r--r--test/stringio/test_stringio.rb10
-rw-r--r--test/strscan/test_stringscanner.rb3
-rw-r--r--test/test_find.rb47
-rw-r--r--test/test_forwardable.rb296
-rw-r--r--test/test_ipaddr.rb276
-rw-r--r--test/test_mathn.rb17
-rw-r--r--test/test_open3.rb27
-rw-r--r--test/test_pp.rb8
-rw-r--r--test/test_prime.rb4
-rw-r--r--test/test_pstore.rb21
-rw-r--r--test/test_pty.rb45
-rw-r--r--test/test_securerandom.rb2
-rw-r--r--test/test_set.rb77
-rw-r--r--test/test_syslog.rb106
-rw-r--r--test/test_tempfile.rb2
-rw-r--r--test/test_time.rb286
-rw-r--r--test/test_timeout.rb23
-rw-r--r--test/test_tmpdir.rb6
-rw-r--r--test/test_tracer.rb3
-rw-r--r--test/test_tsort.rb13
-rw-r--r--test/test_unicode_normalize.rb184
-rw-r--r--test/test_weakref.rb9
-rw-r--r--test/test_win32api.rb23
-rw-r--r--test/testunit/test4test_hideskip.rb2
-rw-r--r--test/testunit/test4test_redefinition.rb2
-rw-r--r--test/testunit/test4test_sorting.rb2
-rw-r--r--test/testunit/test_hideskip.rb2
-rw-r--r--test/testunit/test_parallel.rb6
-rw-r--r--test/testunit/test_rake_integration.rb2
-rw-r--r--test/testunit/test_redefinition.rb4
-rw-r--r--test/testunit/test_sorting.rb2
-rw-r--r--test/testunit/tests_for_parallel/runner.rb3
-rw-r--r--test/thread/test_cv.rb15
-rw-r--r--test/thread/test_queue.rb59
-rw-r--r--test/thread/test_sync.rb6
-rw-r--r--test/uri/test_common.rb59
-rw-r--r--test/uri/test_generic.rb58
-rw-r--r--test/uri/test_mailto.rb17
-rw-r--r--test/uri/test_parser.rb6
-rw-r--r--test/webrick/test_cgi.rb35
-rw-r--r--test/webrick/test_filehandler.rb50
-rw-r--r--test/webrick/test_httpauth.rb71
-rw-r--r--test/webrick/test_httpproxy.rb6
-rw-r--r--test/webrick/test_httprequest.rb2
-rw-r--r--test/webrick/test_httpresponse.rb90
-rw-r--r--test/webrick/test_httpserver.rb97
-rw-r--r--test/webrick/test_server.rb81
-rw-r--r--test/webrick/utils.rb54
-rw-r--r--test/webrick/webrick.cgi6
-rw-r--r--test/webrick/webrick_long_filename.cgi2
-rw-r--r--test/win32ole/test_err_in_callback.rb4
-rw-r--r--test/win32ole/test_win32ole.rb44
-rw-r--r--test/win32ole/test_win32ole_event.rb159
-rw-r--r--test/win32ole/test_win32ole_method.rb8
-rw-r--r--test/win32ole/test_win32ole_record.rb313
-rw-r--r--test/win32ole/test_win32ole_typelib.rb2
-rw-r--r--test/win32ole/test_win32ole_variant.rb77
-rw-r--r--test/win32ole/test_win32ole_variant_outarg.rb2
-rw-r--r--test/win32ole/test_word.rb1
-rw-r--r--test/with_different_ofs.rb (renamed from test/lib/with_different_ofs.rb)0
-rw-r--r--test/xmlrpc/test_client.rb10
-rw-r--r--test/xmlrpc/test_cookie.rb21
-rw-r--r--test/xmlrpc/test_webrick_server.rb34
-rw-r--r--test/xmlrpc/webrick_testing.rb35
-rw-r--r--test/zlib/test_zlib.rb12
-rw-r--r--thread.c742
-rw-r--r--thread_native.h23
-rw-r--r--thread_pthread.c237
-rw-r--r--thread_pthread.h10
-rw-r--r--thread_win32.c42
-rw-r--r--thread_win32.h9
-rw-r--r--time.c262
-rw-r--r--timev.h20
-rw-r--r--tool/compile_prelude.rb (renamed from template/prelude.c.tmpl)82
-rw-r--r--tool/config_files.rb8
-rw-r--r--tool/downloader.rb178
-rwxr-xr-xtool/enc-unicode.rb6
-rwxr-xr-xtool/expand-config.rb7
-rwxr-xr-xtool/extlibs.rb143
-rw-r--r--tool/fake.rb32
-rw-r--r--tool/generic_erb.rb4
-rwxr-xr-xtool/get-config_files7
-rwxr-xr-xtool/instruction.rb12
-rwxr-xr-xtool/make-snapshot189
-rwxr-xr-xtool/merger.rb49
-rwxr-xr-xtool/mkconfig.rb25
-rwxr-xr-xtool/mkrunnable.rb8
-rwxr-xr-xtool/rbinstall.rb88
-rwxr-xr-xtool/redmine-backporter.rb416
-rwxr-xr-xtool/release.sh38
-rwxr-xr-xtool/runruby.rb1
-rw-r--r--tool/transcode-tblgen.rb2
-rwxr-xr-xtool/update-deps542
-rw-r--r--tool/vcs.rb184
-rw-r--r--tool/vpath.rb5
-rw-r--r--transcode.c101
-rw-r--r--util.c43
-rw-r--r--variable.c194
-rw-r--r--version.c3
-rw-r--r--version.h12
-rw-r--r--vm.c566
-rw-r--r--vm_args.c813
-rw-r--r--vm_backtrace.c80
-rw-r--r--vm_core.h292
-rw-r--r--vm_dump.c289
-rw-r--r--vm_eval.c445
-rw-r--r--vm_exec.c14
-rw-r--r--vm_insnhelper.c1005
-rw-r--r--vm_insnhelper.h40
-rw-r--r--vm_method.c182
-rw-r--r--vm_trace.c95
-rw-r--r--vsnprintf.c22
-rw-r--r--win32/Makefile.sub95
-rwxr-xr-xwin32/configure.bat56
-rw-r--r--win32/file.c206
-rwxr-xr-xwin32/rmall.bat6
-rw-r--r--win32/setup.mak66
-rw-r--r--win32/win32.c370
1603 files changed, 68925 insertions, 123524 deletions
diff --git a/.gdbinit b/.gdbinit
index d1279ea046..17be7d8779 100644
--- a/.gdbinit
+++ b/.gdbinit
@@ -50,7 +50,7 @@ define rp
end
else
set $flags = ((struct RBasic*)($arg0))->flags
- if ($flags & RUBY_FL_PROMOTED) == RUBY_FL_PROMOTED
+ if ($flags & RUBY_FL_PROMOTED)
printf "[PROMOTED] "
end
if ($flags & RUBY_T_MASK) == RUBY_T_NONE
@@ -211,35 +211,7 @@ define rp
else
if ($flags & RUBY_T_MASK) == RUBY_T_SYMBOL
printf "%sT_SYMBOL%s: ", $color_type, $color_end
- print (struct RSymbol *)($arg0)
- set $id_type = ((struct RSymbol *)($arg0))->id & RUBY_ID_SCOPE_MASK
- if $id_type == RUBY_ID_LOCAL
- printf "l"
- else
- if $id_type == RUBY_ID_INSTANCE
- printf "i"
- else
- if $id_type == RUBY_ID_GLOBAL
- printf "G"
- else
- if $id_type == RUBY_ID_ATTRSET
- printf "a"
- else
- if $id_type == RUBY_ID_CONST
- printf "C"
- else
- if $id_type == RUBY_ID_CLASS
- printf "c"
- else
- printf "j"
- end
- end
- end
- end
- end
- end
- set $id_fstr = ((struct RSymbol *)($arg0))->fstr
- rp_string $id_fstr
+ print (struct RBasic *)($arg0)
else
if ($flags & RUBY_T_MASK) == RUBY_T_UNDEF
printf "%sT_UNDEF%s: ", $color_type, $color_end
@@ -378,9 +350,9 @@ define rp_id
end
end
printf "(%ld): ", $id
- set $str = lookup_id_str($id)
- if $str
- rp_string $str
+ rb_numtable_entry global_symbols.id_str $id
+ if $rb_numtable_rec
+ rp_string $rb_numtable_rec
else
echo undef\n
end
@@ -738,12 +710,6 @@ define nd_tval
rp ($arg0).u2.value
end
-define nd_tree
- set $buf = (struct RString *)rb_str_buf_new(0)
- call dump_node((VALUE)($buf), rb_str_new(0, 0), 0, ($arg0))
- printf "%s\n", $buf->as.heap.ptr
-end
-
define rb_p
call rb_p($arg0)
end
@@ -765,7 +731,7 @@ define rb_numtable_entry
end
end
else
- set $rb_numtable_p = $rb_numtable_tbl->as.big.bins[st_numhash($rb_numtable_id) % $rb_numtable_tbl->num_bins]
+ set $rb_numtable_p = $rb_numtable_tbl->as.big.bins[$rb_numtable_id % $rb_numtable_tbl->num_bins]
while $rb_numtable_p
if $rb_numtable_p->key == $rb_numtable_id
set $rb_numtable_key = $rb_numtable_p->key
@@ -795,7 +761,7 @@ define rb_method_entry
rb_numtable_entry $rb_method_entry_klass->m_tbl_wrapper->tbl $rb_method_entry_id
set $rb_method_entry_me = (rb_method_entry_t *)$rb_numtable_rec
if !$rb_method_entry_me
- set $rb_method_entry_klass = (struct RClass *)RCLASS_SUPER($rb_method_entry_klass)
+ set $rb_method_entry_klass = (struct RClass *)$rb_method_entry_klass->ptr->super
end
end
if $rb_method_entry_me
@@ -824,7 +790,7 @@ define rb_ancestors
set $rb_ancestors_module = $arg0
while $rb_ancestors_module
rp_class $rb_ancestors_module
- set $rb_ancestors_module = RCLASS_SUPER($rb_ancestors_module)
+ set $rb_ancestors_module = ((struct RClass *)($rb_ancestors_module))->ptr.super
end
end
document rb_ancestors
diff --git a/.gitignore b/.gitignore
index a9104e9ed5..dee365b3c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,11 +29,10 @@ y.output
y.tab.c
# /
-/*-fake.rb
/*.pc
/*_prelude.c
/COPYING.LIB
-/ChangeLog-*
+/ChangeLog-1.8.0
/ChangeLog.pre-alpha
/ChangeLog.pre1_1
/Doxyfile
@@ -47,7 +46,6 @@ y.tab.c
/autom4te*.cache
/automake
/beos
-/bmlog-*
/breakpoints.gdb
/config.cache
/config.h
@@ -55,11 +53,6 @@ y.tab.c
/config.status
/config.status.lineno
/configure
-/coverage/simplecov
-/coverage/.last_run.json
-/coverage/.resultset.json*
-/coverage/assets
-/coverage/index.html
/doc/capi
/enc.mk
/encdb.h
@@ -102,10 +95,6 @@ y.tab.c
# /benchmark/
/benchmark/bmx_*.rb
-/benchmark/fasta.output.*
-/benchmark/wc.input
-
-/enc/unicode/data
# /enc/trans/
/enc/trans/*.c
@@ -117,12 +106,6 @@ y.tab.c
/ext/dl/callback/callback-*.c
/ext/dl/callback/callback.c
-# /ext/etc/
-/ext/etc/constdefs.h
-
-# /ext/fiddle/
-/ext/fiddle/libffi-*
-
# /ext/rbconfig/
/ext/rbconfig/sizeof/sizes.c
@@ -141,9 +124,6 @@ y.tab.c
# /ext/tk/
/ext/tk/config_list
-# /gems
-/gems/*.gem
-
# /spec/
/spec/mspec
/spec/rubyspec
diff --git a/.travis.yml b/.travis.yml
index 0052fdfc41..8db00587d6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,57 +18,45 @@
# Language specification.
language: c
-sudo: false
# Compilers. Several compilers are provided in Travis, so we try them all.
# The value set here is visible via $CC environment variable.
compiler:
- gcc
-
-os:
- - linux
+ - clang
# Dependencies. Some header files are missing in a Travis' worker VM, so we
# have to install them. The "1.9.1" here is OK. It is the most adopted
# version string for Debian/Ubuntu, and no dependencies have been changed so
# far since the 1.9.1 release.
before_install:
- - "CONFIG_FLAG="
- - "JOBS='-j 4'"
+ - "sudo apt-get -qq update"
+ - "sudo apt-get -qq install $CC" # upgrade if any
+install: "sudo apt-get -qq build-dep ruby1.9.1 2>/dev/null"
# Script is where the test runs. Note we just do "make test", not other tests
# like test-all, test-rubyspec. This is because they take too much time,
# enough for Travis to shut down the VM as being stalled.
before_script:
- - "uname -a"
- - "uname -r"
- - "rm -fr .ext autom4te.cache"
- - "echo $TERM"
- - "make -f common.mk BASERUBY=ruby MAKEDIRS='mkdir -p' srcdir=. update-config_files"
+ - "make -f common.mk BASERUBY=ruby srcdir=. update-config_files"
- "autoconf"
- "mkdir config_1st config_2nd"
- - "./configure -C --disable-install-doc --with-gcc=$CC $CONFIG_FLAG"
+ - "./configure -C --with-gcc=$CC"
- "cp -pr config.status .ext/include config_1st"
- "make reconfig"
- "cp -pr config.status .ext/include config_2nd"
- "diff -ru config_1st config_2nd"
- - "make after-update BASERUBY=ruby"
- - "make -s $JOBS"
- - "make update-rubyspec"
+ - "make -sj encs"
+ - "make -sj exts"
script:
- - "make test TESTOPTS=--color=never"
- - "make test-all TESTOPTS='-q -j3 --color=never --job-status=normal'"
- - "make test-rubyspec MSPECOPT=-fm"
+ - "make test OPTS=-v"
+# - "make test-all TESTS='-v'"
# Branch matrix. Not all branches are Travis-ready so we limit branches here.
branches:
only:
- trunk
- - ruby_2_1
- - ruby_2_2
- - ruby_2_3
- - /^feature\//
- - /^bug\//
+ - ruby_1_9_3
# We want to be notified when something happens.
notifications:
@@ -77,7 +65,7 @@ notifications:
- "irc.freenode.org#ruby-core"
- "irc.freenode.org#ruby-ja"
on_success: change # [always|never|change] # default: always
- on_failure: always # [always|never|change] # default: always
+ on_failure: change # [always|never|change] # default: always
template:
- "%{message} by @%{author}: See %{build_url}"
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index ffdf2dd4b8..0000000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Please see the [official issue tracker] and wiki [HowToContribute].
-
-[official issue tracker]: https://bugs.ruby-lang.org
-[HowToContribute]: https://bugs.ruby-lang.org/projects/ruby/wiki/HowToContribute
diff --git a/ChangeLog b/ChangeLog
index 65f2d6bc08..19dbbd025e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,15514 +1,20023 @@
-Thu Sep 14 20:44:26 2017 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+Mon Oct 27 20:20:14 2014 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/json: bump to version 1.8.1.1. [Backport #13853]
+ * lib/rexml/entity.rb: keep the entity size within the limitation.
+ reported by Willis Vandevanter <will@silentrobots.com> and
+ patched by nahi.
-Thu Sep 14 20:39:39 2017 Kazuki Yamaguchi <k@rhe.jp>
+Sun Oct 26 03:31:46 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- asn1: fix out-of-bounds read in decoding constructed objects
+ * vm_method.c (rb_method_entry_make): warn redefinition only for
+ already defined methods, but not for undefined methods.
+ [ruby-dev:48691] [Bug #10421]
- * OpenSSL::ASN1.{decode,decode_all,traverse}: have a bug of
- out-of-bounds read. int_ossl_asn1_decode0_cons() does not give the
- correct available length to ossl_asn1_decode() when decoding the
- inner components of a constructed object. This can cause
- out-of-bounds read if a crafted input given.
+Sun Oct 26 03:21:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- Reference: https://hackerone.com/reports/170316
- https://github.com/ruby/openssl/commit/1648afef33c1d97fb203c82291b8a61269e85d3b
+ * class.c (unknown_keyword_error): delete expected keywords
+ directly from raw table, so that the given block is not called.
+ [ruby-core:65837] [Bug #10413]
-Thu Sep 14 20:36:54 2017 Yusuke Endoh <mame@ruby-lang.org>
+Wed Oct 22 23:02:49 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
- lib/webrick/log.rb: sanitize any type of logs
+ * ext/openssl/lib/openssl/ssl.rb (DEFAULT_PARAMS): override
+ options even if OpenSSL::SSL::OP_NO_SSLv3 is not defined.
+ this is pointed out by Stephen Touset. [ruby-core:65711] [Bug #9424]
- It had failed to sanitize some type of exception messages. Reported and
- patched by Yusuke Endoh (mame) at https://hackerone.com/reports/223363
+Wed Oct 22 23:02:49 2014 Martin Bosslet <Martin.Bosslet@gmail.com>
-Thu Sep 14 20:33:52 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/openssl/test_ssl.rb: Reuse TLS default options from
+ OpenSSL::SSL::SSLContext::DEFAULT_PARAMS.
- Fix space flag when Inf/NaN and width==3
+Wed Oct 22 23:02:49 2014 Martin Bosslet <Martin.Bosslet@gmail.com>
- * sprintf.c (rb_str_format): while "% 2f" and "% 4f" result in " Inf"
- and " Inf" respectively, "% 3f" results in "Inf" (no space).
+ * lib/openssl/ssl.rb: Explicitly whitelist the default
+ SSL/TLS ciphers. Forbid SSLv2 and SSLv3, disable
+ compression by default.
+ Reported by Jeff Hodges.
+ [ruby-core:59829] [Bug #9424]
- Refactor "%f" % Inf/NaN
+Sun Oct 19 03:22:53 2014 Kazuki Tsujimoto <kazuki@callcc.net>
- * sprintf.c (rb_str_format): as for non-finite float, calculate the
- exact needed size with the space flag.
+ * vm_core.h, vm.c, proc.c: fix GC mark miss on bindings.
+ [ruby-dev:48616] [Bug #10368]
-Sun Sep 10 10:10:05 2017 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * test/ruby/test_eval.rb: add a test code.
- * lib/rubygems: fix several vulnerabilities in RubyGems; bump to version
- 2.4.5.3. [Backport #13842]
+Sun Oct 19 03:13:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Sep 9 21:08:24 2017 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * parse.y (parser_here_document): do not append already appended
+ and disposed code fragment. [ruby-dev:48647] [Bug #10392]
- * ext/psych/yaml: update libyaml to 0.1.7.
+Thu Oct 16 22:10:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/psych/psych.gemspec: bump version to 2.0.8.1.
+ * ext/stringio/stringio.c (strio_write): ASCII-8BIT StringIO
+ should be writable any encoding strings, without conversion.
+ [ruby-core:65240] [Bug #10285]
-Tue Mar 28 15:39:26 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 16 22:06:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- configure.in: syscall is deprecated on macOS
+ * vm_eval.c (eval_string_with_cref): fix super from eval with
+ scope. set klass in the current control frame to the class of
+ the receiver in the context to be evaluated, this class/module
+ must match the actual receiver to call super.
+ [ruby-core:65122] [Bug #10263]
- * configure.in: syscall is no longer supported on macOS since 10.12.
- [Bug #13361]
+Thu Oct 16 00:30:30 2014 Tanaka Akira <akr@fsij.org>
-Mon Mar 27 01:41:37 2017 NARUSE, Yui <naruse@ruby-lang.org>
+ * lib/find.rb (Find.find): Call to_path for arguments to obtain
+ strings.
+ [ruby-core:63713] [Bug #10035] Reported by Herwin.
- * configure.in: improve ICC (Intel C Compiler) support.
+Thu Oct 16 00:20:12 2014 Eric Wong <e@80x24.org>
- * configure.in (CXX): The name of icc's c++ compiler is `icpc`.
+ * object.c (rb_class_real): do not dereference 0 VALUE
- * configure.in (warnings): Add `-diag-disable=2259` to suppress
- noisy warnings: "non-pointer conversion from "..." to "..." may
- lose significant bits".
+ * test/ruby/test_module.rb (test_inspect_segfault):
+ Test case and bug report by Thomas Stratmann.
+ [ruby-core:65214] [Bug #10282]
- * configure.in (optflags): Add `-fp-model precise` like -fno-fast-math.
+Thu Oct 16 00:10:45 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/mkmf.rb: icc supports -Werror=division-by-zero
- and -Werror=deprecated-declarations, but doesn't support
- -Wdivision-by-zero and -Wdeprecated-declarations.
+ * signal.c (rb_f_kill): get rid of deadlock as unhandled and
+ discarded signals do not make interrupt_cond signaled.
+ based on the patch by Kazuki Tsujimoto at [ruby-dev:48606].
+ [Bug #9820]
-Sun Mar 26 17:24:02 2017 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Oct 16 00:10:45 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * thread.c (rb_thread_fd_close): unintentionally removed at r58094.
+ * signal.c (rb_f_kill): should not ignore signal unless the
+ default handler is registered. [ruby-dev:48592] [Bug #9820]
-Sun Mar 26 16:24:02 2017 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Oct 15 23:58:13 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
- * test/ruby/test_thread.rb (test_thread_interrupt_for_killed_thread):
- may fix the test failure on some platforms introduced at r58108.
+ merge r47598 partially. extracted commits are as follows. [Bug #9728]
+ https://github.com/k-takata/Onigmo/commit/15ddec6d18e27fdc1988236764e766fd5892ecf5
-Sun Mar 26 16:22:03 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Oct 15 23:50:33 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
- envutil.rb: timeout_error argument to invoke_ruby
+ * lib/fileutils.rb: handle ENOENT error with symlink targeted to
+ non-exists file. [ruby-dev:45933] [Bug #6716]
- * test/lib/envutil.rb (invoke_ruby): add `timeout_error` optional
- keyword argument, the exception class to be raised if the target
- process timed out. if it is nil, no exception will be raised at
- timeout but the terminated output, error, and status will be
- returned. defaulted to Timeout::Error.
+Wed Oct 15 23:25:24 2014 NARUSE, Yui <naruse@ruby-lang.org>
- * test/lib/envutil.rb (assert_separately): check outputs and
- status (including diagnostic reports) of timed-out process.
+ * configure.in: NetBSD's ksh, used by configure, needs escapes.
-Sun Mar 26 13:07:21 2017 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Oct 15 23:13:43 2014 Eric Wong <e@80x24.org>
- * thread.c (rb_thread_sleep_deadly_allow_spurious_wakeup): need to
- mark as exported. this may fix the load error introduced at r58115.
+ * array.c (ary_recycle_hash): add RB_GC_GUARD
+ (rb_ary_diff): remove volatile
+ [Bug #10369]
-Sun Mar 26 03:55:45 2017 Marcus Stollsteimer <sto.mar@web.de>
+Wed Oct 15 23:10:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- docs for creating arrays
+ * dir.c (dir_s_aref): fix rdoc. `Dir.glob` allows an array but
+ `Dir[]` not. the former accepts an optional parameter `flags`,
+ while the latter accepts arbitrary number of arguments but no
+ `flags`. [ruby-core:65265] [Bug #10294]
- * array.c: [DOC] add example for Array.new with block and index.
- Reported by Don Cruickshank. [ruby-core:68442] [Bug #10944]
+Wed Oct 15 23:08:02 2014 Rei Odaira <Rei.Odaira@gmail.com>
-Sun Mar 26 03:55:01 2017 Marcus Stollsteimer <sto.mar@web.de>
+ * configure.in: Fix typo. [Bug #9914]
- date_core.c: fix error in DateTime docs
+Wed Oct 15 22:46:52 2014 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/date/date_core.c: [DOC] fix format string for DateTime#rfc3339.
- Reported by Andreas Rayo Kniep. [ruby-core:68418] [Bug #10936]
+ * error.c: update exception tree. [DOC]
+ reported by @hemge via twitter.
- * ext/date/date_core.c: [DOC] ditto for DateTime#iso8601 and
- DateTime#xmlschema; other small improvements.
+Wed Sep 24 02:30:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 03:54:16 2017 Marcus Stollsteimer <sto.mar@web.de>
+ * parse.y (parse_ident): just after a label, new expression should
+ start, cannot be a modifier. [ruby-core:65211] [Bug #10279]
- io.c: improve docs
+Wed Sep 24 02:21:41 2014 NAKAMURA Usaku <usa@ruby-lang.org>
- * io.c: [DOC] improve and harmonize docs for IO#read and ARGF#read;
- fix invalid example code for IO#read to make it syntax highlighted.
+ * win32/Makefile.sub (VCSUP): nothing to do if this worktree is not
+ under any VCS (it means that the worktree may be from the release
+ package).
- * io.c: [DOC] various improvements for docs of IO, ARGF, and Kernel:
- fix indent to ensure correct code block detection; sync "outbuf"
- paragraph for {IO,ARGF}#read, {IO,ARGF}#readpartial, and IO#sysread;
- fix formatting of call-seq's; improve Kernel#open example to use nil?;
- fix RDoc markup and typos.
+Wed Sep 24 02:06:33 2014 Tanaka Akira <akr@fsij.org>
-Sun Mar 26 03:42:37 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_time_tz.rb: Fix test error with tzdata-2014g.
+ [ruby-core:65058] [Bug #10245] Reported by Vit Ondruch.
- vm_method.c: resolve refined method to undef
+Wed Sep 24 02:06:33 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
- * vm_method.c (rb_undef): resolve the method entry which refines a
- prepended method entry. [ruby-core:78944] [Bug #13096]
+ * test/minitest/test_minitest_unit.rb: removed obsoleted condition
+ for Ruby 1.8.
+ * test/ruby/test_time_tz.rb: ditto.
-Sun Mar 26 03:36:29 2017 Marcus Stollsteimer <sto.mar@web.de>
+Wed Sep 24 01:43:13 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
- date_core.c: expand docs for Date shifting
+ * version.h (RUBY_VERSION): bump RUBY_VERSION to 2.1.4.
- * ext/date/date_core.c: [DOC] expand docs for Date shifting
+Fri Sep 19 00:58:34 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
- * add examples for Date#>> and Date#<< that clarify some edge cases
- * add examples for Date#next_year and Date#prev_year
- * add cross references to Date#>> and Date#<<
+ * version.h (RUBY_VERSION): bump RUBY_VERSION to 2.1.3.
- [ruby-core:79584] [Bug #13225]
+Mon Sep 15 23:12:47 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 03:35:09 2017 Marcus Stollsteimer <sto.mar@web.de>
+ * signal.c (check_stack_overflow): drop the last tag too close to
+ the fault page, to get rid of stack overflow deadlock.
+ [Bug #9971]
- lib/ostruct.rb: [DOC] revise docs for OpenStruct
+Mon Sep 15 22:34:39 2014 Natalie Weizenbaum <nweiz@google.com>
- * update paragraph on implementation:
- define_singleton_method is used, not define_method
- * add call-seq with return values for each_pair
- * adopt description of dig from Array and Hash
- * fix description of the hash method
- * :nodoc: initialize_copy, respond_to_missing?
- * other small improvements, e.g. use the term `attribute' in the docs
- (instead of `member'), which is clearer for users of the class
- * improve code examples: e.g. use more consistent style (always use
- double quotes, drop `p' and `puts', ...), update inspect output,
- use example data that is not prone to change (like population)
- * add more code examples
- * fix some small errors and grammar
+ * ext/pathname/lib/pathname.rb (SAME_PATHS):
+ Pathname#relative_path_from uses String#casecmp to compare strings
+ on case-insensitive filesystem platforms (e.g., Windows). This can
+ return nil for strings with different encodings, and the code
+ previously assumed that it always returned a Fixnum. [Fix GH-713]
- [ruby-core:79265] [Bug #13159]
+Mon Sep 15 22:31:33 2014 Sho Hashimoto <sho.hsmt@gmail.com>
-Sun Mar 26 03:31:18 2017 Eric Wong <normalperson@yhbt.net>
+ * ext/fiddle/lib/fiddle/import.rb (Fiddle::Importer#sizeof): fix typo,
+ SIZEOF_LONG_LON. [Fix GH-714]
- doc: improve documentation for Binding [ci skip]
+Mon Sep 15 11:08:23 2014 Shota Fukumori <her@sorah.jp>
- * remove explicit return from code examples
- * grammar fixes
- * other small fixes
+ * lib/mkmf.rb (configuration): Make CXXFLAGS customizable.
+ Patch by Kohei Suzuki (eagletmt). [Fixes GH-492]
- Patch by: Marcus Stollsteimer <sto.mar@web.de>
+Mon Sep 15 01:06:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- [ruby-core:79082] [Bug #13132]
+ * lib/mkmf.rb (MakeMakefile#pkg_config): append --cflags to also
+ $CXXFLAGS, as they are often used by C++ compiler.
+ [ruby-core:54532] [Bug #8315]
-Sun Mar 26 03:28:27 2017 Marcus Stollsteimer <sto.mar@web.de>
+Mon Sep 15 00:02:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- nodoc OptParse
+ * lib/csv.rb (CSV#<<): honor explicitly given encoding. based on
+ the patch by DAISUKE TANIWAKI <daisuketaniwaki AT gmail.com> at
+ [ruby-core:62113]. [Bug #9766]
- * lib/optparse.rb: [DOC] nodoc OptParse, introduced with r46126,
- to avoid leaking of its documentation (OptionParser's docs) into
- the class documentation of Object. [ruby-core:79909] [Bug #13281]
+Wed Sep 10 23:36:38 2014 Koichi Sasada <ko1@atdot.net>
-Sun Mar 26 03:26:56 2017 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * test/ruby/test_object.rb: extend timeout.
- rational.c: fix rdoc
+Wed Sep 10 23:36:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * rational.c: [DOC] fix wrong indentations and comment out some lines
- in code examples to make them valid Ruby code and syntax highlighted
- on the rendered page.
+ * object.c (rb_obj_copy_ivar): allocate no memory for empty
+ instance variables. [ruby-core:64700] [Bug #10191]
- [ci skip] [ruby-core:79607] [Bug #13233]
- Author: Marcus Stollsteimer <sto.mar@web.de>
+Wed Sep 10 23:36:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 03:24:28 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * object.c (rb_obj_copy_ivar): extract function to copy instance
+ variables only for T_OBJECT from init_copy.
- fileutils.rb: do not make root
+Wed Sep 10 23:14:42 2014 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/fileutils.rb (FileUtils#mkdir_p): no need to make root
- directory which should be exist and cannot be made with mkdir
- recent Cygwin can make a directory contains a colon.
- [Bug #13214]
+ merge r46831 partially. extracted commits are as follows. [Bug #9344]
+ https://github.com/k-takata/Onigmo/commit/bdfc1997aa15b6baddaf9a482c6610b32504bd86
-Sun Mar 26 03:22:34 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * regcomp.c: Merge Onigmo 5.14.1 25a8a69fc05ae3b56a09.
+ this includes Support for Unicode 7.0 [Bug #9092].
- win32/resolv.rb: ad hoc workaround
+Wed Sep 10 22:58:25 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/win32/lib/win32/resolv.rb (Win32::Resolv::SZ): an ad hoc
- workaround for broken registry. SearchList and other registry
- values must be REG_SZ, or Windows ignores anything in those
- values otherwise. [ruby-dev:49924] [Bug #13081]
- https://github.com/rubygems/rubygems/issues/1700
- win32/registry.rb: registry type names
+ * common.mk (Doxyfile): revert r43888, not to require preinstalled
+ ruby. [ruby-core:64488] [Bug #10161]
- * ext/win32/lib/win32/registry.rb (Win32::Registry#read): show
- registry type names instead of numeric values.
+Wed Sep 10 03:29:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 03:19:17 2017 Eric Wong <normalperson@yhbt.net>
+ * io.c (io_close): ignore only "closed stream" IOError and
+ NoMethodError, do not swallow other exceptions at the end of
+ block. [ruby-core:64463] [Bug #10153]
- doc: Add example for Symbol#to_s
+Wed Sep 10 03:17:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c: add example for Symbol#to_s.
+ * enc/trans/euckr-tbl.rb (EUCKR_TO_UCS_TBL): add missing euro and
+ registered signs. [ruby-core:64452] [Bug #10149]
- The docs for Symbol#to_s only include an example for
- Symbol#id2name, but not for #to_s which is an alias;
- the docs should include examples for both methods.
+Wed Sep 10 03:01:31 2014 Eric Wong <e@80x24.org>
- From: Marcus Stollsteimer <sto.mar@web.de>
+ * time.c (time_timespec): fix tv_nsec overflow
+ [Bug #10144]
-Sun Mar 26 03:16:16 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Sep 10 02:51:38 2014 Koichi Sasada <ko1@atdot.net>
- rational.c: infinity in power
+ * iseq.c (rb_iseq_clone): Should not insert write barrier from
+ non-RVALUE data (to non-RVALUE data, of course).
- * rational.c (nurat_expt): return Infinity due to overflow.
- [ruby-core:79686] [Bug #13242]:
- rational.c: infinity in power
+ Ruby 2.1 also has a same problem.
- * rational.c (nurat_expt): return 0 due to overflow.
- [ruby-core:79686] [Bug #13242]:
+Wed Sep 10 02:33:08 2014 Koichi Sasada <ko1@atdot.net>
-Sun Mar 26 03:13:17 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * parse.y (setup_fake_str): fake strings should not set class by
+ RBASIC_SET_CLASS() because it insert write barriers to fake
+ (non-RVALUE) structure.
- vm.c: check type of hash to merge
+ It can cause unexpected behaviour.
- * vm.c (core_hash_merge): check the type of the target hash to
- merge. [ruby-core:78536] [Bug #13015]
+Fri Sep 5 17:01:38 2014 Zachary Scott <e@zzak.io>
-Sun Mar 26 03:07:08 2017 Koichi Sasada <ko1@atdot.net>
+ * lib/rdoc/generator/template/darkfish/js/jquery.js: Backport
+ rdoc/rdoc@74f60fcb04fee1778fe2694d1a0ea6513f8e67b7
- use TRUE/FALSE.
+Sat Sep 6 00:57:07 2014 Eric Wong <e@80x24.org>
- define rb_thread_sleep_deadly_allow_spurious_wakeup().
+ * ext/zlib/zlib.c (gzfile_reset): preserve ZSTREAM_FLAG_GZFILE
+ [Bug #10101]
- * thread.c, thread_sync.c: define new function
- rb_thread_sleep_deadly_allow_spurious_wakeup() and use it instead of
- using sleep_forever() directly.
+ * test/zlib/test_zlib.rb (test_rewind): test each_byte
- allow Queue operation in trap.
+Sat Sep 6 00:47:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * thread_sync.c: allow spurious wakeup to check Queue status just after trap.
- [Bug #12405]
+ * configure.in (rb_cv_broken_backtrace): exit with failure
+ normally, no needs to abort. [ruby-core:63678] [Bug #10008]
- * test/thread/test_queue.rb: add a test for it.
+Sat Sep 6 00:05:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- test_queue.rb: fix portability
+ * include/ruby/win32.h, win32/win32.c (rb_w32_inet_pton): add a
+ wrapper function for inet_pton minimum supported client is
+ Vista, as well as inet_ntop.
- * test/thread/test_queue.rb (test_queue_with_trap): fix
- portability. use SIGINT instead of SIGUSR2 which is supported
- on not all platforms.
+Sat Sep 6 00:05:02 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Sun Mar 26 02:44:16 2017 Akinori MUSHA <knu@iDaemons.org>
+ * ext/socket/raddrinfo.c (rb_getaddrinfo): second argument of
+ MEMZERO is type. Coverity Scan found this bug.
- * doc/syntax/literals.rdoc (Strings): [DOC] Revise the character
- literal part.
+Sat Sep 6 00:05:02 2014 Tanaka Akira <akr@fsij.org>
-Sun Mar 26 02:44:16 2017 Akinori MUSHA <knu@iDaemons.org>
+ * ext/socket/raddrinfo.c (numeric_getaddrinfo): Use xcalloc.
+ Suggested by Eric Wong.
+ https://bugs.ruby-lang.org/issues/9525#note-14
- * doc/syntax/literals.rdoc (Strings): [DOC] Document the full list
- of supported escape sequences in string literals.
+Sat Sep 6 00:05:02 2014 Tanaka Akira <akr@fsij.org>
-Sun Mar 26 02:44:16 2017 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/socket: Bypass getaddrinfo() if node and serv are numeric.
+ Reporeted by Naotoshi Seo. [ruby-core:60801] [Bug #9525]
- * doc/syntax/literals.rdoc (Strings): mention about ?a literal.
+ * ext/socket/extconf.rb: Detect struct sockaddr_in6.sin6_len.
-Sun Mar 26 02:37:23 2017 Eric Wong <normalperson@yhbt.net>
+ * ext/socket/sockport.h (SET_SIN6_LEN): New macro.
+ (INIT_SOCKADDR_IN6): Ditto.
- doc: restore class documentation for Struct
+ * ext/socket/rubysocket.h (struct rb_addrinfo): Add
+ allocated_by_malloc field.
- * struct.c: restore class documentation for Struct
- that disappeared with r46663.
+ * ext/socket/raddrinfo.c (numeric_getaddrinfo): New function.
+ (rb_getaddrinfo): Call numeric_getaddrinfo at first.
+ (rb_freeaddrinfo): Free struct addrinfo properly when it is
+ allocated by numeric_getaddrinfo.
- Due to r46663, the class documentation for Struct disappeared.
- (The revision inserted the definition of `InitVM_Struct` between
- the rdoc and the definition of `Init_Struct`.)
+Sat Sep 6 00:05:02 2014 Tanaka Akira <akr@fsij.org>
- The docs are rendered for 2.1: <https://docs.ruby-lang.org/en/2.1.0/Struct.html>,
- but not for later versions, see: <https://docs.ruby-lang.org/en/2.2.0/Struct.html>
- (Same for `ri` pages).
+ * ext/socket: Wrap struct addrinfo by struct rb_addrinfo.
- [ruby-core:79416] [Bug #13189]
+Thu Sep 4 00:31:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 02:36:34 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/thread/thread.c (get_array): check instance variables are
+ initialized properly. [ruby-core:63826][Bug #10062]
- Enumerable#{min,min_by,max,max_by} [ci skip]
+Thu Sep 4 00:29:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * enum.c: [DOC] Enumerable#{min,min_by,max,max_by} return a sorted
- array when +n+ argument is used.
+ * io.c (rb_io_initialize): [DOC] fix rdoc of append mode. it does
+ not move the pointer at open. [ruby-core:63747] [Bug #10039]
- * enum.c: Small typo : minimum -> maximum
+Thu Sep 4 00:23:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- [Bug #13161]
- Author: Eric Duminil <eric.duminil@gmail.com>
+ * sprintf.c (GETASTER): should not use the numbered argument to be
+ formatted, raise ArgumentError instead.
+ [ruby-dev:48330] [Bug #9982]
-Sun Mar 26 02:35:17 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Sep 4 00:21:05 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
- * ruby.c (process_options): convert -e script to the encoding
- given by a command line option on Windows. assume it is the
- expected encoding. [ruby-dev:49461] [Bug #11900]
+ * test/openssl/test_pkey_rsa.rb (OpenSSL#test_sign_verify_memory_leak):
+ added timeout into testcase for low performance environment.
+ [Bug #9984][ruby-core:63367]
-Sun Mar 26 02:34:13 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Sep 2 02:21:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- rational.c: fix rdoc [ci skip]
+ * hash.c (env_aset, env_has_key, env_assoc, env_has_value),
+ (env_rassoc, env_key): prohibit tainted strings if $SAFE is
+ non-zero. [Bug #9976]
- * rational.c (rb_rational_plus): [DOC] fix an example.
- A patch by Trygve Flathen <at.ruby-lang AT flathen.net> in
- [ruby-core:71755]. [Bug #11752]
+Tue Sep 2 02:08:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 02:32:12 2017 NAKAMURA Usaku <usa@ruby-lang.org>
+ * signal.c (rb_f_kill): directly enqueue an ignored signal to self,
+ except for SIGSEGV and SIGBUS. [ruby-dev:48203] [Bug #9820]
- * win32/win32.c (poll_child_status): rb_w32_wait_events_blocking() sets
- errno internally, then should not set it here.
+Sun Aug 31 01:13:21 2014 Koichi Sasada <ko1@atdot.net>
-Sun Mar 26 02:27:37 2017 Koichi Sasada <ko1@atdot.net>
+ * gc.c: change full GC timing to keep lower memory usage.
- check thread deadness correctly.
+ Extend heap only at
+ (1) after major GC
+ or
+ (2) after several (two times, at current) minor GC
-Sun Mar 26 02:13:04 2017 Koichi Sasada <ko1@atdot.net>
+ Details in https://bugs.ruby-lang.org/issues/9607#note-9
+ [Bug #9607]
- * test/ruby/test_exception.rb: fix thread issues.
- * use Queue instead of a local variable for synchronization.
- * join created thread to soleve leaking threads warning.
+Sun Aug 31 01:07:05 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
-Sun Mar 26 02:13:04 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/win32ole/win32ole.c (ole_create_dcom): use the converted
+ result if the argument can be converted to a string, to get rid
+ of invalid access. Thanks to nobu. [ruby-dev:48467] [Bug #10127]
- * thread.c (rb_threadptr_raise): set cause from the called thread,
- but not from the thread to be interrupted.
- [ruby-core:77222] [Bug #12741]
+Sun Aug 31 00:54:47 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 02:11:47 2017 Marcus Stollsteimer <sto.mar@web.de>
+ * process.c (open): use UTF-8 version function to support
+ non-ascii path properly. [ruby-core:63185] [Bug #9946]
- io.c: documentation for puts
+Tue Aug 26 00:08:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c: [DOC] clarify that the 'record separator' between
- arguments passed to 'puts' is always a newline.
- Based on a patch by Mark Amery. [ruby-core:65801] [Misc #10403]
- * 2017-03-13
+ * configure.in (RUBY_SETJMP_TYPE): check for setjmp type after
+ CCDLFLAGS is appended to CFLAGS, since __builtin_setjmp can be
+ affected. [ruby-core:62469] [Bug #9818]
-Sun Mar 26 02:08:06 2017 Marcus Stollsteimer <sto.mar@web.de>
+Tue Aug 26 00:07:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- proc.c: documentation for Proc#{call,yield,[]}
+ * configure.in: get rid of __builtin_setjmp/__builtin_longjmp on
+ x64-mingw, which causes SEGV with callcc.
+ [ruby-core:61887] [Bug #9710]
- * proc.c: [DOC] fix and improve docs for Proc#{call,yield,[]}:
+Tue Aug 26 00:06:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * change order of Document-method directives as workaround for an
- RDoc rendering problem where the documentation for Proc#call displays
- a "Document-method: []" code block. [ruby-core:79887] [Bug #13273]
- * add missing call-seq and example for Proc#yield
- * remove pointless cross reference to Proc#yield
- * update description for handling of extra or missing arguments,
- improve examples and add cross reference to #lambda?
+ * configure.in (ac_cv_func___builtin_setjmp): should not skip
+ flags restoration in RUBY_WERROR_FLAG by `break`.
+ [ruby-dev:48086] [Bug #9698]
-Sun Mar 26 02:03:06 2017 Marcus Stollsteimer <sto.mar@web.de>
+Tue Aug 26 00:02:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- docs for IO#print
+ * configure.in (ac_cv_func___builtin_setjmp): __builtin_longjmp()
+ in Apple LLVM 5.1 (LLVM 3.4svn) uses `void**`, not `jmp_buf`.
+ [Bug #9692]
- * io.c: [DOC] split documentation for IO#print into smaller paragraphs,
- delete duplicate sentence, fix call-seq.
- Based on a patch by Dario Daic. [ruby-core:78291] [Bug #12975]
+Tue Aug 26 00:02:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 02:01:54 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (ac_cv_func___builtin_setjmp): gcc 4.9 disallows a
+ variable as the second argument of __builtin_longjmp().
+ [ruby-core:61800] [Bug #9692]
- fix UTF-32 valid_encoding?
+Mon Aug 25 00:36:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * enc/utf_32be.c (utf32be_mbc_enc_len): check arguments precisely.
- [ruby-core:79966] [Bug #13292]
+ * parse.y (parser_yylex): fix invalid char in eval, should raise
+ an syntax error too, as well as directly coded.
+ [ruby-core:64243] [Bug #10117]
- * enc/utf_32le.c (utf32le_mbc_enc_len): ditto.
+Mon Aug 25 00:26:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * regenc.h (UNICODE_VALID_CODEPOINT_P): predicate for valid
- Unicode codepoints.
- fix UTF-32 valid_encoding?
+ * parse.y (parser_yyerror): preserve source code encoding in
+ syntax error messages. [ruby-core:64228] [Bug #10114]
- * test/ruby/test_io_m17n.rb (TestIO_M17N#test_puts_widechar): do
- not use invalid codepoint. [ruby-core:79966] [Bug #13292]
+Sat Aug 23 02:39:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 01:58:03 2017 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm_insnhelper.c (vm_call_method): unusable super class should cause
+ method missing when BasicObject is refined but not been using.
+ [ruby-core:64166] [Bug #10106]
- * regcomp.c (set_bm_skip): Need to check the end of the string.
- this patch is from https://github.com/k-takata/Onigmo/commit/e5c0e6c36187898bb27960cd66d591f172558848 .
- [Backport #12997]
+Sat Aug 23 02:22:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 01:48:05 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c (rb_str_count): fix wrong single-byte optimization.
+ 7bit ascii can be a trailing byte in Shift_JIS.
+ [ruby-dev:48442] [Bug #10078]
- date_core.c: [DOC] revise docs [ci skip]
+Thu Aug 21 01:44:46 2014 Tanaka Akira <akr@fsij.org>
- * fix malformed rdoc for Date#today, Date._strptime,
- and DateTime._strptime
- * add code examples for Date#<< and Date#>> to demonstrate
- that different dates can result in the same return value
- * use Date::ITALY in call-seq instead of only ITALY
- * fix some copy/paste mistakes where Date should be DateTime
- * fix various errors and grammar
- * fix cross references and formatting
+ * gc.c (mark_current_machine_context): Call SET_STACK_END.
+ This reverts a hunk of r40703 by ko1.
+ This fixes [ruby-dev:48098] [Bug #9717].
- [ruby-core:79433] [Bug #13193]
- Author: Marcus Stollsteimer <sto.mar@web.de>
+Thu Aug 21 01:41:09 2014 Tanaka Akira <akr@fsij.org>
-Sun Mar 26 01:35:25 2017 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * lib/time.rb (Time.parse): [DOC] Fix an example in the documentation
+ to use EST.
+ Reported by Marcus Stollsteimer.
+ [ruby-core:60778] [Bug #9521] and [ruby-core:61718] [Bug #9682]
- lib/ostruct.rb: Fix returned value of each_pair.
+Thu Aug 21 01:41:09 2014 Zachary Scott <e@zzak.io>
- From a patch by Marcus Stollsteimer. [Fixes #13169]
+ * lib/time.rb: [DOC] Fix timezone in example of Time.parse [Bug #9521]
+ Based on patch by @stomar
-Sun Mar 26 01:31:54 2017 Benoit Daloze <eregontp@gmail.com>
+Tue Aug 19 23:31:48 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
- fix optimization for hash aset/aref with fstring
+ merge r46831 partially. extracted commits are as follows.
+ https://github.com/k-takata/Onigmo/commit/b9fba1dc63ccb42a86e934011b468e6022fabb74
+ https://github.com/k-takata/Onigmo/commit/c1fc76b9bd463948ffc5058bc352bf93732f0314
+ https://github.com/k-takata/Onigmo/commit/a0efc0a200f7108ca3d5ac3039c8f952e0051619
+ https://github.com/k-takata/Onigmo/commit/c7cda4ed5676167b0d01bb5555724f6164fbdb13
+ [Bug #8716]
- Patch by Eric Wong [ruby-core:78797].
- I don't like the idea of making insns.def any bigger to support
- a corner case, and "test_hash_aref_fstring_identity" shows
- how contrived this is.
+ * include/ruby/oniguruma.h (ONIG_MAX_CAPTURE_GROUP_NUM,
+ ONIGERR_TOO_MANY_CAPTURE_GROUPS): add cheking the number of capture
+ groups.
- [ruby-core:78783] [Bug #12855]
- adjust indent [ci skip]
+ * regerror.c (onig_error_code_to_format): ditto.
-Sun Mar 26 01:29:17 2017 Shugo Maeda <shugo@ruby-lang.org>
+ * regparse.c (scan_env_add_mem_entry): ditto.
- string.c: rindex(//) should set $~.
+ * regexec.c (onig_region_copy, match_at): fix: segmation fault occurs
+ when many groups are used.
- This seems a bug introduced by r520 (1.4.0). [ruby-core:79110] [Bug #13135]
+Mon Aug 18 23:38:21 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 01:15:34 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * encoding.c (enc_find): [DOC] never accepted a symbol.
+ [ruby-dev:48308] [Bug #9966]
- disable critical-error-handler
+Mon Aug 18 23:22:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * win32/win32.c (rb_w32_sysinit): disable critical-error-handler
- message box even on mswin, regardless of runtime DLL version.
- [ruby-dev:49988] [Bug #13254]
+ * string.c (rb_str_resize): update capa only when buffer get
+ reallocated.
+ http://d.hatena.ne.jp/nagachika/20140613/ruby_trunk_changes_46413_46420#r46413
-Sun Mar 26 01:14:19 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 18 23:22:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- broken mingw
+ * string.c (rb_str_resize): should consider the capacity instead
+ of the old length, as pointed out by nagachika.
- * configure.in: check whether frexp and modf are broken.
+Mon Aug 18 23:22:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * include/ruby/win32.h (frexp, modf): ignore bad declarations when
- compiling as C++. [ruby-core:79859] [Bug #13267]
+ * file.c (expand_path): shrink expanded path which no longer needs
+ rooms to append. [ruby-core:63114] [Bug #9934]
-Sun Mar 26 01:13:11 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 11 23:55:32 2014 Mark Lorenz <mlorenz@covermymeds.com>
- parallel.rb: fix intervention
+ * lib/erb.rb (result): [DOC] no longer accepts a Proc, as
+ Kernel.eval does not. [fix GH-619]
- * test/lib/test/unit/parallel.rb (_report): send a response and a
- newline atomically, to get rid of intervention with "p" which
- runs in a separate thread.
+Mon Aug 11 23:38:20 2014 Tanaka Akira <akr@fsij.org>
-Sun Mar 26 01:03:27 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * io.c (rb_io_autoclose_p): Don't raise on frozen IO.
- io.c: close before wait
+Mon Aug 11 23:38:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (io_close_fptr): notify then close, and wait for other
- threads before free fptr. [ruby-core:79262] [Bug #13158]
+ * io.c (rb_io_fileno, rb_io_inspect): non-modification does not
+ error on frozen IO. [ruby-dev:48241] [Bug #9865]
-Sun Mar 26 00:47:52 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 11 22:34:47 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- io.c: fix race between read and close
+ * configure.in (posix_fadvise): disable use of posix_fadvise
+ itself on 32-bit AIX. [ruby-core:62968] [Bug #9914]
- * io.c (io_fillbuf): fix race between read and close, in the case
- the IO gets closed before the reading thread achieve the lock.
- [ruby-core:78845] [Bug #13076]
- thread.c: fix race between read and close
+Mon Aug 11 22:34:47 2014 <kanemoto@ruby-lang.org>
- * thread.c (rb_thread_fd_close): wait until all threads using the
- fd finish the operation, not to free the buffer in use.
- [ruby-core:78845] [Bug #13076]
- revert a part of r57199
+ * io.c (rb_io_advise): AIX currently does not support a 32-bit call to
+ posix_fadvise() if _LARGE_FILES is defined. Patch by Rei Odaira.
+ [ruby-core:62968] [Bug #9914]
- * io.c (io_fillbuf): revert a part of r57199 because it broke IO#getch.
- see also [Bug #13076]
+Mon Aug 11 22:14:28 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- io.c: fix race between read and close
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg): adjust VM stack
+ pointer to get rid of overwriting splat arguments by arguments
+ for `to_hash` conversion. [ruby-core:63593] [Bug #10016]
- * io.c (io_fillbuf): fix race between read and close and bail out
- in the case the IO gets closed before the reading thread achieve
- the lock. [ruby-core:78845] [Bug #13076]
+Fri Aug 8 23:36:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 00:39:40 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/stringio/stringio.c (strio_write): use rb_str_append to
+ reuse coderange bits other than ASCII-8BIT, and keep
+ taintedness. [ruby-dev:48118] [Bug #9769]
- class.c: non-keyword hash class
+Mon Aug 4 01:29:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * class.c (rb_extract_keywords): keep the class of non-keyword
- elements hash as the original. [ruby-core:77813] [Bug #12884]
+ * hash.c (env_shift): fix memory leak on Windows, free environment
+ strings block always. [ruby-dev:48332] [Bug #9983]
-Sun Mar 26 00:36:01 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 4 01:26:46 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- string.c: block for scrub with ASCII-incompatible
+ * hash.c (env_select): fix memory leak and crash on Windows, make
+ keys array first instead of iterating on environ directly.
+ [ruby-dev:48325] [Bug #9978]
- * string.c (rb_enc_str_scrub): honor the given block with
- ASCII-incompatible encoding. [ruby-core:79039] [Bug #13120]
- string.c: yield invalid part
+Mon Aug 4 01:24:09 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_enc_str_scrub): yield the invalid part only with
- ASCII-incompatible. [ruby-core:79039] [Bug #13120]
- string.c: replacement and block
+ * hash.c (ruby_setenv): fix memory leak on Windows, free
+ environment strings block after check for the size.
+ [ruby-dev:48323] [Bug #9977]
- * string.c (rb_enc_str_scrub): only one of replacement and block
- is allowed. [ruby-core:79038] [Bug #13119]
+Mon Aug 4 01:11:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 26 00:30:36 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * re.c (match_aref, rb_reg_regsub): consider encoding of captured
+ names, encoding-incompatible should not match.
+ [ruby-dev:48278] [Bug #9903]
- compile.c: check err_info
+Mon Aug 4 00:52:42 2014 Koichi Sasada <ko1@atdot.net>
- * compile.c (iseq_setup): bail out if any errors found.
- [ruby-core:76531] [Bug #12613]
+ * vm_eval.c (rb_catch_protect): fix same problem of [Bug #9961].
-Sun Mar 26 00:19:09 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_eval.c (rb_iterate): ditto.
- rational.c: memory leak in gcd
+Mon Aug 4 00:52:42 2014 Koichi Sasada <ko1@atdot.net>
- * rational.c (rb_gcd_gmp): fix memory leak. patched by KISHIMOTO,
- Makoto <ksmakoto AT dd.iij4u.or.jp> in [ruby-dev:49934].
- [Bug #13089]
+ * vm.c (rb_vm_rewind_cfp): add new function to rewind specified cfp
+ with invoking RUBY_EVENT_C_RETURN.
+ [Bug #9961]
-Sun Mar 26 00:16:04 2017 Kazuki Yamaguchi <k@rhe.jp>
+ * vm_core.h: ditto.
- pack.c: avoid returning uninitialized String
+ * eval.c (rb_protect): use it.
- Fix unpacking with 'b', 'B', 'h' and 'H' format. Do not return an
- uninitialized String to Ruby before filling the content bytes.
- Fixes r11175 ("pack.c (pack_unpack): execute block if given with
- unpacked value instead of creating an array", 2006-10-15).
- [ruby-core:78841] [Bug #13075]
- test/ruby/test_pack.rb: fix test case added by r57187
+ * eval.c (rb_rescue2): ditto.
- The test case for String#unpack added by r57187 is not properly testing
- because the String will be filled after the block invocation.
- [ruby-core:78841] [Bug #13075]
+ * vm_eval.c (rb_iterate): ditto.
- Thanks to nagachika for pointing this out:
+ * test/ruby/test_settracefunc.rb: add a test.
- http://d.hatena.ne.jp/nagachika/20161226/ruby_trunk_changes_57184_57194#r57187
+ * vm_core.h (rb_vm_rewind_cfp): add the prototype declaration.
-Sun Mar 26 00:09:48 2017 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Aug 3 00:06:10 2014 Charlie Somerville <charliesome@ruby-lang.org>
- ruby-lex.rb: fix for label
+ * node.c (dump_node): handle nd_value == (NODE *)-1 to mean this
+ keyword argument is required
- * lib/irb/ruby-lex.rb (identify_identifier): treat identifier just
- followed by a colon as a lable. this is not a precise solution
- but enough for the time being. [ruby-core:78526] [Bug #13012]
+Thu Jul 31 01:56:11 2014 Koichi Sasada <ko1@atdot.net>
-Tue Dec 27 20:43:54 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (rb_iseq_compile_node): put start label of block after
+ trace (b_call).
+ [Bug #9964]
- * time.c (usec2subsecx): fix return type, which is a numeric object but
- not a long int. [Bug #13066]
+ * test/ruby/test_settracefunc.rb: add a test.
-Tue Dec 27 20:13:12 2016 Kazuki Yamaguchi <k@rhe.jp>
+ added assert_consistent_call_return() method check call/return
+ consistency.
- * re.c (match_{names,hash,equal}): consider the case of RMatch::regexp
- is nil.
+Thu Jul 31 01:22:43 2014 Koichi Sasada <ko1@atdot.net>
- Don't assume RMatch::regexp always contains a valid Regexp instance;
- it will be Qnil if the MatchData is created by
- rb_backref_set_string(). [Bug #13054]
+ * vm.c (invoke_block_from_c): move call/return event timing for
+ bmethod. It can invoke inconsistent call event if this call raises
+ argument error.
+ [Bug #9959]
-Tue Dec 27 20:02:43 2016 Kazuki Yamaguchi <k@rhe.jp>
+ * vm_insnhelper.c (vm_call_bmethod_body): ditto.
- * array.c (rb_ary_{repeated_,}combination): check array length every
- time after yielding.
+ * test/ruby/test_settracefunc.rb: add a test.
- Since the Array may be modified during rb_yield(), the length before
- invoking the block can't be trusted. Fix possible out-of-bounds read
- in Array#combination and Array#repeated_combination.
+Thu Jul 31 01:12:55 2014 Koichi Sasada <ko1@atdot.net>
- It may better to make a defensive copy of the Array, but for now let's
- follow what Array#permutation does. [Bug #13052]
+ * vm_core.h: add VM_FRAME_MAGIC_RESCUE to recognize normal block or
+ rescue clause.
-Tue Dec 27 19:57:51 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm.c (vm_exec): use VM_FRAME_MAGIC_RESCUE on at rescue/ensure.
- * sprintf.c (rb_str_format): fix memory corruption by width underflow.
- https://github.com/mruby/mruby/issues/3347
+ * test/ruby/test_settracefunc.rb: should not invoke b_return at rescue
+ clause.
+ [Bug #9957]
-Tue Dec 27 19:55:10 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_dump.c (control_frame_dump): check VM_FRAME_MAGIC_RESCUE.
- * re.c (rb_reg_regsub): other than regexp has no name references.
- [Bug #13042]
+ * vm_dump.c (vm_stack_dump_each): ditto.
-Tue Dec 27 19:51:43 2016 Kazuki Yamaguchi <k@rhe.jp>
+Thu Jul 31 00:44:34 2014 Koichi Sasada <ko1@atdot.net>
- * encoding.c (rb_enc_ascget): handle needmore error from
- rb_enc_precise_mbclen().
+ * vm_trace.c: clear and restore recursive checking thread local data
+ to avoid unexpected throw from TracePoint.
+ [Bug #9940]
- rb_enc_ascget() erroneously reports success even if the given byte
- sequence is incomplete, for non-ASCII compatible encoding strings.
+ * test/ruby/test_settracefunc.rb: add a test.
- rb_enc_precise_mbclen() may return a negative value on error, and thus
- rb_enc_ascget() must not store the return value in 'unsigned int';
- otherwise the subsequent MBCLEN_CHARFOUND_P() check won't catch the
- error. [Bug #13034]
+ * thread.c: added
+ * rb_threadptr_reset_recursive_data(rb_thread_t *th);
+ * rb_threadptr_restore_recursive_data(rb_thread_t *th, VALUE old);
-Tue Dec 27 19:49:01 2016 Shugo Maeda <shugo@ruby-lang.org>
+ * vm_core.h: ditto.
- * cont.c, eval.c, eval_error.c, thread.c, vm_eval.c, vm_trace.c: add
- clang volatile fixes from FreeBSD and NetBSD.
+Wed Jul 23 23:49:59 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- Use volatile instead of optnone to avoid optimization which causes
- segmentation faults.
- Patch by Dimitry Andric. [Bug #13014]
+ * lib/test/unit/parallel.rb: fix test-all parallel failure if a test
+ is skipped after raise.
+ DL::TestFunc#test_sinf is skipped after raise on mingw ruby.
+ But it causes Marshal.load failure due to undefined class/module
+ DL::DLError when doing test-all parallel and test-all doesn't
+ complete. We create new MiniTest::Skip object to avoid Marshal.load
+ failure.
+ [ruby-core:62133] [Bug #9767]
-Tue Dec 27 19:40:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/testunit/test_parallel.rb (TestParallel): add a test.
- * README.EXT{.ja,}: [DOC] optional keyword arguments are defaulted to
- Qundef. ignored keys are kept in the hash but a new Hash is not
- created. [Bug #13004]
+ * test/testunit/tests_for_parallel/ptest_forth.rb: ditto.
- * class.c (rb_get_kwargs): when values are stored, corresponding keys
- have been remove from the keyword hash, and the hash should be empty
- in that case. [Bug #13004]
+Wed Jul 23 23:11:28 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
-Tue Dec 27 19:34:47 2016 Aaron Patterson <tenderlove@ruby-lang.org>
+ * test/socket/test_socket.rb: unix socket is required by test case.
- * variable.c (rb_ivar_count): stop reading past the end of ivptr array.
- [Bug #12988]
+Wed Jul 23 23:11:28 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
-Tue Dec 27 19:32:03 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/socket/test_addrinfo.rb: remove unused variables.
+ * test/socket/test_nonblock.rb: ditto.
+ * test/socket/test_socket.rb: ditto.
+ * test/socket/test_unix.rb: ditto.
+ * test/testunit/test_parallel.rb: ditto.
+ * test/webrick/test_filehandler.rb: ditto.
+ * test/xmlrpc/test_features.rb: ditto.
+ * test/zlib/test_zlib.rb: ditto.
- * thread.c (rb_thread_s_abort_exc, rb_thread_s_abort_exc_set):
- [DOC] the raised exception will be re-raised in the main thread,
- and then follows the ordinary exception sequence, exit status is
- not 0. [Bug #12991]
+Wed Jul 23 23:05:19 2014 Tanaka Akira <akr@fsij.org>
- * thread.c (rb_thread_abort_exc_set): ditto.
+ * ext/pathname/lib/pathname.rb (cleanpath_aggressive): make all
+ separators File::SEPARATOR from File::ALT_SEPARATOR.
+ Reported by Daniel Rikowski.
+ Fixed by Nobuyoshi Nakada. [Bug #9618]
-Tue Dec 27 19:29:54 2016 Akinori MUSHA <knu@iDaemons.org>
+ * ext/pathname/lib/pathname.rb (cleanpath_conservative): ditto.
- * configure.in: reverse compatibility_version and current_version for
- Darwin.
+Wed Jul 23 22:51:34 2014 Naohisa Goto <ngotogenome@gmail.com>
-Tue Dec 27 19:10:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/fileutils.rb (rmdir): rescue Errno::EEXIST in addition to
+ ENOTEMPTY (and ENOENT), because SUSv3 describes that "If the
+ directory is not an empty directory, rmdir() shall fail and set
+ errno to [EEXIST] or [ENOTEMPTY]" and Solaris uses EEXIST.
+ [Bug #9571] [ruby-dev:48017]
- * marshal.c (dump_funcall, dump_check_funcall, load_funcall):
- function calls with reentrant check. always show names
- corresponding to the called methods.
+Wed Jul 23 22:43:50 2014 Tanaka Akira <akr@fsij.org>
- * marshal.c (check_userdump_arg): marshal_dump should not return an
- instance of the same class, otherwise it causes infinite recursion.
- [Bug #12974]
+ * lib/resolv.rb (bind_random_port): Rescue EPERM for FreeBSD which
+ security.mac.portacl.port_high is changed.
+ See mac_portacl(4) for details.
+ Reported by Jakub Szafranski. [ruby-core:60917] [Bug #9544]
-Tue Dec 27 18:34:04 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jul 23 22:24:26 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
- * compile.c (setup_args): duplicate splatting array if more
- arguments present to obey left-to-right execution order.
- [ruby-core:77701] [Bug# 12860]
+ * test/openssl/test_x509cert.rb: split assertions into algorithms.
+ CentOS 7 seems finish MD5 support
+ http://chkbuild005.hsbt.org/chkbuild/ruby-trunk/log/20140722T140010Z.fail.html.gz
-Tue Dec 27 18:28:20 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/openssl/test_x509req.rb: ditto.
- * dln.c (dln_load): raise LoadError instead of fatal error on
- recent OSX, dlclose seems fixed in El Capitan or later.
- [ruby-core:78200] [Bug #12956]
+Sat Jul 19 01:44:34 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Dec 27 18:17:23 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * re.c (match_aref): should not ignore name after NUL byte.
+ [ruby-dev:48275] [Bug #9902]
- * test/misc/test_ruby_mode.rb (assert_indent): since write-region
- in Emacs 25.1 no longer displays the "Wrote file" message, shows
- the explicit message to check if successfully finished.
- [ruby-core:77355] [Bug #12785]
+Sun Jul 13 23:28:41 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
-Tue Nov 15 15:29:36 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * test/test_timeout.rb (test_timeout): inverted test condition.
+ [Bug #8523]
- * ext/openssl/ossl_ssl.c (ssl_npn_select_cb_common): fix parsing
- protocol list.
- The protocol list from OpenSSL is not null-terminated.
- patched by Kazuki Yamaguchi [Bug #11810] [ruby-core:72082]
+Sun Jul 13 23:18:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Nov 15 03:55:45 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/digest/digest.c (rb_digest_instance_equal): no need to call
+ `to_s` twice. [Bug #9913]
- * ext/-test/file/fs.c (get_atime_p): Updating of file access times
- is enabled or not.
+Sun Jul 13 23:18:11 2014 Benoit Daloze <eregontp@gmail.com>
-Tue Nov 15 03:55:45 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/digest/digest.c (rb_digest_instance_equal):
+ fix #== for non-string arguments. [ruby-core:62967] [Bug #9913]
- * test/ruby/test_file.rb (TestFile#test_stat): fix noatime case.
- [ruby-core:77943] [Bug #12903]
+ * test/digest/test_digest.rb: add test for above.
-Tue Nov 15 03:54:14 2016 Shugo Maeda <shugo@ruby-lang.org>
+Sun Jul 13 23:10:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast,
- test_make_socket_ipv6_multicast_hops): skip if IPv6 multicast
- address is not available.
+ * array.c (yield_indexed_values): extract from permute0(),
+ rpermute0(), and rcombinate0().
-Tue Nov 15 03:39:07 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Sun Jul 13 23:02:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/net/http.rb (transport_request): other than HTTPContinue
- in 1xx (HTTPInformation) also needs to continue. [Bug #12890]
+ * array.c (rb_ary_permutation): `p` is the array of size `r`, as
+ commented at permute0(). since `n >= r` here, buffer overflow
+ never happened, just reduce unnecessary allocation though.
-Sat Nov 12 07:48:07 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jul 13 22:52:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * proc.c (mnew_internal): follow the original class, not to loop
- the prepended module. [ruby-core:77591] [Bug #12832]
+ * pack.c (encodes): fix buffer overrun by tail_lf. Thanks to
+ Mamoru Tasaka and Tomas Hoger. [ruby-core:63604] [Bug #10019]
-Sat Nov 12 07:47:19 2016 Shugo Maeda <shugo@ruby-lang.org>
+Sun Jul 13 22:44:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * cont.c (cont_new): disable optimization if clang's version is
- 3.8.0. [ruby-core:77894] [Bug #12893]
+ * ext/thread/thread.c (undumpable): ConditionVariable and Queue
+ are not dumpable. [ruby-core:61677] [Bug #9674]
-Sat Nov 12 07:37:30 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jul 11 23:07:09 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * sprintf.c (rb_str_format): format exact number more exactly.
+ * lib/matrix.rb: Fix sign for cross_product [#9499]
-Sat Nov 12 07:34:03 2016 Kazuki Yamaguchi <k@rhe.jp>
+Sun Jul 6 23:16:30 2014 Masaya Tarui <tarui@ruby-lang.org>
- * ext/openssl/ossl.c (Init_openssl): register an ex_data index for
- X509_STORE and X509_STORE_CTX respectively. Since they don't share
- the ex_data index registry, we can't use the same index.
- (ossl_verify_cb): use the the correct index.
+ * st.c (st_foreach_check): change start point of search at check
+ from top to current. [ruby-dev:48047] [Bug #9646]
- * ext/openssl/ossl_ssl.c (ossl_ssl_verify_callback): ditto.
+Sun Jul 6 22:56:03 2014 Zachary Scott <e@zzak.io>
- * ext/openssl/ossl_x509store.c (ossl_x509store_set_vfy_cb): ditto.
- (ossl_x509stctx_verify): ditto.
+ * lib/gserver.rb: [DOC] Fixed typo in example by @stomar [Bug #9543]
- * ext/openssl/ossl.h (void ossl_clear_error): add extern declarations
- of ossl_store_{ctx_,}ex_verify_cb_idx.
+Fri Jul 4 00:46:03 2014 Zachary Scott <e@zzak.io>
- * ext/openssl/openssl_missing.c: remove X509_STORE_set_ex_data and
- X509_STORE_get_ex_data.
+ * enumerator.c: [DOC] Fix example to show Enumerator#peek behavior
+ Patch by Erik Hollembeak [Bug #9814]
- * ext/openssl/openssl_missing.h: implement X509_STORE_get_ex_data,
- X509_STORE_set_ex_data and X509_STORE_get_ex_new_index as macros.
+Fri Jul 4 00:44:43 2014 Zachary Scott <e@zzak.io>
-Sat Nov 12 07:32:23 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * enum.c: [DOC] Use #find in example to clarify alias by @rachellogie
+ Patch submitted via documenting-ruby/ruby#34
- * thread.c (rb_thread_pending_interrupt_p): no pending interrupt
- before initialization.
+Fri Jul 4 00:42:57 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
- * thread.c (thread_raise_m, rb_thread_kill): uninitialized thread
- cannot interrupt. [ruby-core:72732] [Bug #11959]
+ * man/ruby.1: remove deadlink. [ruby-core:62145][Bug #9773]
-Thu Oct 27 16:47:57 2016 Kazuki Yamaguchi <k@rhe.jp>
+Fri Jul 4 00:25:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval_intern.h (TH_PUSH_TAG): Initialize struct rb_vm_tag::tag with
- Qundef rather than 0 which is equal to Qfalse. Since Kernel#throw(obj)
- searches a tag with rb_vm_tag::tag == obj, throw(false) can
- accidentally find an unrelated tag which is not created by
- Kernel#catch. [ruby-core:77229] [Bug #12743]
+ * struct.c (not_a_member): extract name error and use same error
+ messages. based on the patch by Marcus Stollsteimer <sto.mar AT
+ web.de> at [ruby-core:61721]. [Bug #9684]
- * test/ruby/test_exception.rb (test_throw_false): Add a test case for
- this.
+Thu Jul 3 01:19:50 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
-Thu Oct 27 16:39:56 2016 Aurelien Jacobs <aurel@gnuage.org>
+ * numeric.c (num_step_scan_args): table argument of rb_get_kwargs() is
+ array of IDs, not Symbols. [ruby-dev:48353] [Bug #9811]
- * lib/logger.rb (Logger::Period#next_rotate_time): fix monthly log
- rotate when DST is applied during a month of 31 days.
- [Fix GH-1458]
+Thu Jul 3 01:19:50 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Oct 27 16:27:06 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * numeric.c (num_step_scan_args): check keyword arguments and fail
+ if they conflict with positional arguments.
+ [ruby-dev:48177] [Bug #9811]
- * object.c: Improve documentation for Float conversion.
- [ruby-core:71661][Bug #11736][ci skip]
+Tue Jul 1 03:05:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Oct 7 02:44:57 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+ * io.c (read_all): truncate the buffer before appending read data,
+ instead of truncating before reading.
+ [ruby-core:55951] [Bug #8625]
- * lib/rubygems/ssl_certs/GlobalSignRootCA.pem: add for RubyGems.org.
+Tue Jul 1 03:05:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 1 01:02:22 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * io.c (io_setstrbuf, io_read): should not shorten the given buffer until
+ read succeeds. [ruby-core:55951] [Bug #8625]
- * variable.c (rb_const_search): raise with the actual class/module
- name which defines the private constant.
+Mon Jun 30 03:15:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 1 00:57:54 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * vm.c (core_hash_merge_kwd): should return the result hash, which
+ may be converted from and differ from the given argument.
+ [ruby-core:62921] [Bug #9898]
- * vm_dump.c (backtrace): use rip in the saved context for the case
- the SIGSEGV is received when the process is in userland.
- Note that ip in the stack should be used if the signal is received
- when it is in kernel (when it is calling syscall) [Bug #12711]
+Mon Jun 30 03:07:22 2014 Shugo Maeda <shugo@ruby-lang.org>
-Sat Oct 1 00:56:19 2016 Aaron Patterson <tenderlove@ruby-lang.org>
+ * lib/net/ftp.rb (gets, readline): read lines without LF properly.
+ [ruby-core:63205] [Bug #9949]
- * lib/uri/generic.rb (def check_password): don't include bad password
- in URI exception output
+ * test/net/ftp/test_buffered_socket.rb: related test.
- * test/uri/test_generic.rb (def test_set_component): test for behavior
+Mon Jun 30 02:59:08 2014 Shugo Maeda <shugo@ruby-lang.org>
-Sat Oct 1 00:55:19 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+ * lib/net/imap.rb (body_type_1part): Gmail IMAP reports a body
+ type as "MIXED" followed immediately by params
+ [ruby-core:62864] [Bug #9885]
+ Patch by @rayners (David Raynes). [Fixes GH-622]
+ https://github.com/ruby/ruby/pull/622
- * io.c (nogvl_fsync, nogvl_fdatasync): on Windows, just ignore if the
- fd is associated to non-disk device. if call fsync and/or fdatasync
- with such fds, it causes Errno::EBADF exception and the behavior is
- incompatible with ruby 2.1 and earlier unintentionally introduced.
+Mon Jun 30 02:46:44 2014 Rei Odaira <Rei.Odaira@gmail.com>
-Sat Oct 1 00:53:28 2016 Kazuki Tsujimoto <kazuki@callcc.net>
+ * signal.c (ruby_signal): should return either `old.sa_sigaction`
+ or `old.sa_handler`, depending on whether `SA_SIGINFO` is set in
+ `old.sa_flags`, because they may not be a union.
+ [ruby-core:62836] [Bug #9878]
- * array.c (flatten): use rb_obj_class instead of rb_class_of
- because rb_class_of may return a singleton class.
- [ruby-dev:49781] [Bug #12738]
+Mon Jun 30 02:36:08 2014 Eric Wong <e@80x24.org>
-Sat Oct 1 00:52:34 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (proc_getgroups, proc_setgroups): use ALLOCV_N
+ [Bug #9856]
- * man/irb.1: remove useless -width option.
- [ruby-dev:49767] [Bug #12692]
+Mon Jun 30 02:28:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 1 00:49:40 2016 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * io.c (io_setstrbuf): always check if the buffer is modifiable.
+ [ruby-core:62643] [Bug #9847]
- * ext/win32ole/win32ole.c (Init_win32ole): should not use atexit to
- free allocated hash table to avoid error on Cygwin.
+Mon Jun 30 02:25:00 2014 Tanaka Akira <akr@fsij.org>
-Sat Oct 1 00:43:11 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#accept):
+ Consider Socket#accept as well as TCPServer#accept.
+ Reported by Sam Stelfox. [ruby-core:62064] [Bug #9750]
- * test/fiddle/test_pointer.rb (test_to_str, test_to_s, test_aref_aset):
- Attempt to use independent strings for destructive tests that
- directly modify values on memory by using Fiddle::Pointer.
- [Bug #12537] [ruby-dev:49700]
+Mon Jun 30 02:18:47 2014 Eric Wong <e@80x24.org>
-Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * complex.c (parse_comp): replace ALLOCA_N with ALLOCV_N/ALLOCV_END
+ [Bug #9608]
+ * rational.c (read_digits): ditto
- * string.c (str_buf_cat): Fix capa size for embed string.
- Fix bug in r55547. [Bug #12536]
+Mon Jun 30 02:10:34 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * vsnprintf.c (BSD_vfprintf): fix string width when precision is
+ given. as the result of `memchr` is NULL or its offset from the
+ start cannot exceed the size, the comparison was always false.
+ [ruby-core:62737] [Bug #9861]
- * string.c (rb_str_change_terminator_length): New function to change
- termlen and resize heap for the terminator. This is split from
- rb_str_fill_terminator (str_fill_term) because filling terminator
- and changing terminator length are different things. [Bug #12536]
+Mon Jun 30 01:46:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * internal.h: declaration for rb_str_change_terminator_length.
+ * ext/fiddle/extconf.rb: supply 0 to fill RUBY_LIBFFI_MODVERSION
+ with 3-digit. libffi 3.1 returns just 2-digit.
+ [ruby-core:62920] [Bug #9897]
- * string.c (str_fill_term): Simplify only to zero-fill the terminator.
- For non-shared strings, it assumes that (capa + termlen) bytes of
- heap is allocated. This partially reverts r55557.
+Mon Jun 30 00:57:05 2014 Koichi Sasada <ko1@atdot.net>
- * encoding.c (rb_enc_associate_index): rb_str_change_terminator_length
- is used, and it should be called whenever the termlen is changed.
+ * vm.c (rb_vm_pop_cfunc_frame): added. It cares c_return event.
+ The patch base by drkaes (Stefan Kaes).
+ [Bug #9321]
- * string.c (str_capacity): New static function to return capacity
- of a string with the given termlen, because the termlen may
- sometimes be different from TERM_LEN(str) especially during
- changing termlen or filling terminator with specific termlen.
+ * variable.c (rb_mod_const_missing): use rb_vm_pop_cfunc_frame()
+ instead of rb_frame_pop().
- * string.c (rb_str_capacity): Use str_capacity.
+ * vm_eval.c (raise_method_missing): ditto.
-Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * vm_eval.c (rb_iterate): ditto.
- * string.c: Partially reverts r55547 and r55555.
- ChangeLog about the reverted changes are also deleted in this file.
- [Bug #12536] [ruby-dev:49699] [ruby-dev:49702]
+ * internal.h (rb_vm_pop_cfunc_frame): add decl.
-Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * test/ruby/test_settracefunc.rb: add tests.
+ provided by drkaes (Stefan Kaes).
- * string.c (str_fill_term): When termlen increases, re-allocation
- of memory for termlen should always be needed.
- In this fix, if possible, decrease capa instead of realloc.
- [Bug #12536] [ruby-dev:49699]
+ * vm.c, eval.c, include/ruby/intern.h (rb_frame_pop):
+ move definition of rb_frame_pop() and deprecate it.
+ It doesn't care about `return' events.
-Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>
+Sun Jun 29 01:34:06 2014 Tanaka Akira <akr@fsij.org>
- * string.c: Specify termlen as far as possible.
- Additional fix for [Bug #12536] [ruby-dev:49699].
+ * lib/webrick/utils.rb (create_listeners): Close socket objects.
- * string.c (str_new_static): Specify termlen from the given encoding
- when creating a new String object is needed.
+Sat Jun 28 16:35:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_tainted_str_new_with_enc): New function to create a
- tainted String object with the given encoding. This means that
- the termlen is correctly specified. Currently static function.
- The function name might be renamed to rb_tainted_enc_str_new
- or rb_enc_tainted_str_new.
+ * string.c (rb_str_substr): need to reset code range for shared
+ string too, not only copied string.
+ [ruby-core:62842] [Bug #9882]
- * string.c (rb_external_str_new_with_enc): Use encoding by using the
- above rb_tainted_str_new_with_enc().
+Sat Jun 28 14:37:17 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * parse.y (local_tbl_gen): remove local variables duplicated with
+ arguments.
+ [ruby-core:60501] [Bug #9486]
- * string.c (rb_str_subseq, str_substr): When RSTRING_EMBED_LEN_MAX
- is used, TERM_LEN(str) should be considered with it because
- embedded strings are also processed by TERM_FILL.
- Additional fix for [Bug #12536] [ruby-dev:49699].
+Tue Jun 24 00:21:58 2014 Koichi Sasada <ko1@atdot.net>
-Sat Oct 1 00:06:03 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * eval.c (rb_using_refinement): add write-barriers for
+ cref->nd_refinements.
- * string.c: Fix memory corruptions when using UTF-16/32 strings.
- [Bug #12536] [ruby-dev:49699]
+Tue Jun 24 00:14:20 2014 Tanaka Akira <akr@fsij.org>
- * string.c (rb_str_new_with_class): Use TERM_LEN of the "obj".
+ * lib/net/ftp.rb (transfercmd): Close TCP server socket even if an
+ exception occur.
- * string.c (rb_str_plus, rb_str_justify): Use str_new0 which is aware
- of termlen.
+Tue Jun 24 00:06:41 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * string.c (str_shared_replace): Copy +termlen bytes instead of +1.
+ * thread_win32.c (rb_w32_stack_overflow_handler): use Structured
+ Exception Handling by AddVectoredExceptionHandler() for machine
+ stack overflow on mingw.
+ This would be equivalent to the handling using __try and __except
+ on mswin introduced by r43748.
- * string.c (rb_str_times): termlen should not be included in capa.
+Mon Jun 23 23:56:54 2014 Eric Wong <e@80x24.org>
- * string.c (RESIZE_CAPA_TERM): When using RSTRING_EMBED_LEN_MAX,
- termlen should be counted with it because embedded strings are
- also processed by TERM_FILL.
+ * signal.c (signal_exec): ignore immediate cmd for SIG_IGN
+ * signal.c (trap_handler): set cmd to true for SIG_IGN
+ * signal.c (trap): handle nil and true values for oldcmd
+ [Bug #9835]
- * string.c (rb_str_capacity, str_shared_replace, str_buf_cat): ditto.
+Mon Jun 23 02:46:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_str_drop_bytes, rb_str_setbyte, str_byte_substr): ditto.
+ * class.c (rb_mod_init_copy): always clear instance variable,
+ constant and method tables first, regardless the source tables.
+ [ruby-dev:48182] [Bug #9813]
-Sat Oct 1 00:00:13 2016 Eric Wong <e@80x24.org>
+Mon Jun 23 02:36:04 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_ssl.c (ossl_ssl_write_internal):
- avoid undefined behavior
- * test/openssl/test_pair.rb (test_write_zero): new test
- [ruby-core:76751] [Bug #12660]
+ * thread.c (thread_start_func_2): stop if forked in a sub-thread,
+ the thread has become the main thread.
+ [ruby-core:62070] [Bug #9751]
-Tue Aug 16 21:12:07 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 23 01:53:18 2014 Josh Goebel <dreamer3@gmail.com>
- * compile.c (ADD_TRACE): ignore trace instruction on non-positive
- line.
+ * net/protocol.rb (using_each_crlf_line): fix SMTP dot-stuffing
+ for messages not ending with a new-line.
+ [ruby-core:61441] [Bug #9627] [fix GH-616]
- * parse.y (coverage): get rid of ArgumentError when the starting
- line number is not positive. [ruby-core:76141] [Bug #12517]
+Fri Jun 20 00:40:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 16 21:12:07 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * thread_pthread.c (ruby_init_stack, ruby_stack_overflowed_p):
+ place get_stack above others to get stack boundary information.
+ [ruby-core:60113] [Bug #9454]
- * test/coverage/test_coverage.rb: ignored test when enabled to coverage.
- It lead to crash with `make test-all`.
+Fri Jun 20 00:40:06 2014 NARUSE, Yui <naruse@ruby-lang.org>
-Tue Aug 16 21:01:55 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * thread_pthread.c: rlimit is only available on Linux.
+ At least r44712 breaks FreeBSD.
+ [ruby-core:60113] [Bug #9454]
- * lib/uri/mailto.rb (initialize): RFC3986_Parser#split sets opaque
- only if the URI has path-rootless, not path-empty.
- [ruby-core:76055] [Bug #12498]
- patched by Chris Heisterkamp <cheister@squareup.com>
+Fri Jun 20 00:40:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 16 20:59:35 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread_pthread.c: get current main thread stack size, which may
+ be expanded than allocated size at initialization, by rlimit().
+ [ruby-core:60113] [Bug #9454]
- * ext/date/date_strftime.c (date_strftime_with_tmx): reject too
- large precision to get rid of buffer overflow.
- reported by Guido Vranken <guido AT guidovranken.nl>.
+Fri Jun 20 00:20:02 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
-Tue Aug 16 20:58:11 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * configure.in: enable SSE2 on mingw. target='i386-pc-mingw32'.
+ [ruby-core:62095] [Bug #8358]
- * regcomp.c (noname_disable_map): don't optimize out group 0
- Ruby's Regexp doesn't allow normal numbered groups if the regexp
- has named groups. On such case it optimizes out related NT_ENCLOSE.
- But even on the case it can use \g<0>.
- This fix not to remove NT_ENCLOSE whose regnum is 0.
- [ruby-core:75828] [Bug #12454]
+Tue Jun 17 00:45:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 16 20:56:30 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (compile_array_): make copy a first hash not to modify
+ the argument itself. keyword splat should be non-destructive.
+ [ruby-core:62161] [Bug #9776]
- * missing/crypt.c: fix size macros to use configured values
- for platforms long is larger than 32bit.
- [ruby-core:75792] [Bug #12446]
+Tue Jun 17 00:37:15 2014 Bugra Barin <bugrabarin@hotmail.com>
-Tue Aug 16 20:40:36 2016 Kazuki Yamaguchi <k@rhe.jp>
+ * dln.c (dln_load): use wchar version to load a library in
+ non-ascii path on Windows. based on the patch by Bugra Barin
+ <bugrabarin AT hotmail.com> in [ruby-core:61845]. [Bug #9699]
- * ext/openssl/ossl_bn.c (try_convert_to_bnptr): Extracted from
- GetBNPtr(). This doesn't raise exception but returns NULL on error.
- (GetBNPtr): Raise TypeError if conversion fails.
- (ossl_bn_eq): Implement BN#==.
- (ossl_bn_eql): #eql? should not raise TypeError even if the argument
- is not compatible with BN.
- (ossl_bn_hash): Implement BN#hash.
+Tue Jun 17 00:26:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_bn.c (Init_ossl_bn): Define #== and #hash.
+ * process.c (obj2uid, obj2gid): now getpwnam_r() and getgrnam_r()
+ may need larger buffers than sysconf values, so retry with
+ expanding the buffer when ERANGE is returned.
+ [ruby-core:61325] [Bug #9600]
- * test/openssl/test_bn.rb: Test BN#eql?, #== and #hash
+Wed Jun 11 22:58:30 2014 Eric Wong <e@80x24.org>
-Tue Aug 16 20:34:22 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (ruby_gc_set_params): simplify condition
- * transcode.c (str_transcode0): scrub in the given encoding when
- the source encoding is given, not in the encoding of the
- receiver. [ruby-core:75732] [Bug #12431]
+Wed Jun 11 22:58:30 2014 Eric Wong <e@80x24.org>
-Tue Aug 16 20:30:53 2016 Kazuki Yamaguchi <k@rhe.jp>
+ * gc.c (ruby_gc_set_params): fix building without RGenGC
- * ext/openssl/ossl_pkey_dh.c (ossl_dh_compute_key): Check that the DH
- has 'p' (the prime) before calling DH_size(). We can create a DH with
- no parameter but DH_size() does not check and dereferences NULL.
- [ruby-core:75720] [Bug #12428]
+Wed Jun 11 02:43:32 2014 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/openssl/ossl_pkey_dsa.c (ossl_dsa_sign): Ditto. DSA_size() does
- not check dsa->q.
+ * test/objspace/test_objspace.rb (TestObjSpace#test_dump_uninitialized_file):
+ remove dependency on json library.
- * ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,
- ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,
- ossl_rsa_private_decrypt): Ditto. RSA_size() does not check rsa->n.
+Wed Jun 11 02:43:32 2014 Scott Francis <scott.francis@shopify.com>
-Tue Aug 16 20:28:24 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/objspace_dump.c: Check fptr before trying to dump RFILE
+ object fd. [GH-562]
- * transcode.c (enc_arg, str_transcode_enc_args, econv_args):
- remove volatile, and add GC guards in callers.
- [ruby-core:75664] [Bug #12411]
+ * test/objspace/test_objspace.rb: add test
-Tue Aug 16 14:58:50 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 11 02:27:55 2014 Akinori MUSHA <knu@iDaemons.org>
- * common.mk (build-ext), ext/extmk.rb: use variable EXTENCS
- different than ENCOBJS, to get rid of circular dependency.
- build libencs when linking encodings statically.
- [ruby-core:75618] [Bug #12401]
+ * configure.in: Fix a build problem with clang and --with-opt-dir.
+ If ruby is configured with --with-opt-dir=dir when using clang
+ as compiler, a warning `clang: warning: argument unused during
+ compilation: '-I dir'` is emitted almost every time clang
+ compiles a file. Unfortunately, RUBY_CHECK_PRINTF_PREFIX takes
+ any output from the compiler as fatal error, and the check thus
+ fails due to the warning. This is an attempt to fix the problem
+ by adding a flag -Qunused-arguments to CFLAGS locally in the
+ function to suppress the warning. [ruby-dev:48062] [Bug #9658]
+ [Fixes GH-571] https://github.com/ruby/ruby/pull/571
-Tue Aug 16 14:54:14 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 11 02:18:34 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * variable.c (rb_local_constants_i): exclude private constants
- when excluding inherited constants too. [Bug #12345]
+ * numeric.c: Fix Numeric#step with 0 unit [Bug #9575]
-Tue Aug 16 14:43:00 2016 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Wed Jun 11 00:36:05 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
- * lib/drb/timeridconv.rb: don't use keeper thread. [Bug #12342]
+ * test/ruby/test_string (test_LSHIFT_neary_long_max): extend timeout.
+ this test fails on some CI environment by timeout.
- * test/drb/ut_timerholder.rb: ditto.
+Sat Jun 7 01:17:16 2014 Tanaka Akira <akr@fsij.org>
-Tue Aug 16 14:07:18 2016 Marcus Stollsteimer <sto.mar@web.de>
+ * signal.c (check_stack_overflow): Don't use ucontext_t if ucontext.h
+ is not available.
+ Fixes build on Android (x86).
- * ext/json/lib/*.rb: Removed some comments. Because these are unnecessary
- class description. [ci skip][Bug #12255][ruby-core:74835]
+Tue Jun 3 00:38:33 2014 Eric Wong <e@80x24.org>
-Tue Aug 16 14:06:04 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * class.c (rb_class_subclass_add): use xmalloc
+ * class.c (rb_module_add_to_subclasses_list): ditto
+ * class.c (rb_class_remove_from_super_subclasses): use xfree
+ * class.c (rb_class_remove_from_module_subclasses): ditto
+ [Bug #9616]
- * pack.c (pack_pack): use union instead of bare variable to ease
- optimizations and avoid assigning x87 floating point number.
- [ruby-core:74496] [Bug #12209]
+Mon Jun 2 02:19:30 2014 NAKAMURA Usaku <usa@ruby-lang.org>
- * pack.c (pack_unpack): ditto.
+ * win32/win32.c (rb_w32_accept, open_ifs_socket, socketpair_internal):
+ reset inherit flag of socket to avoid unintentional inheritance of
+ socket. note that the return value of SetHandleInformation() is not
+ verified intentionally because old Windows may return an error.
+ [Bug #9688] [ruby-core:61754]
-Tue Aug 16 13:59:34 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 2 02:12:10 2014 Eric Wong <e@80x24.org>
- * ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share
- the fallback definition. [ruby-core:76646] [Bug #12645]
+ * time.c (time_mload): freeze and preserve marshal-loaded time zone
+ * test/ruby/test_time.rb: add test for GC on loaded object
+ [Bug #9652]
-Tue Aug 16 13:52:42 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 2 01:57:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c (vm_set_main_stack): remove unnecessary check. toplevel
- binding must be initialized. [Bug #12611] (N1)
+ * vm_insnhelper.c (vm_callee_setup_arg): turn a macro into an
+ inline function.
- * string.c (rb_str_split_m): simplify the condition.
- [Bug #12611](N4)
+Mon Jun 2 01:46:43 2014 Eric Wong <e@80x24.org>
-Tue Aug 16 13:42:42 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * variable.c (rb_const_set): delete existing entry on redefinition
+ [Bug #9645]
+ * test/ruby/test_const.rb (test_redefinition): test for leak
- * thread.c (rb_wait_for_single_fd): Clean up fds.revents every time
- before calling ppoll(2). [Bug #12575] [ruby-dev:49725]
+Fri May 30 00:13:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 16 13:40:26 2016 Eric Wong <e@80x24.org>
+ * eval.c (setup_exception): preserve errinfo across calling #to_s
+ method on the exception. [ruby-core:61091] [Bug #9568]
- * lib/webrick/httpservlet/cgihandler.rb (do_GET): delete HTTP_PROXY
- * test/webrick/test_cgi.rb (test_cgi_env): new test
- * test/webrick/webrick.cgi (do_GET): new endpoint to dump env
- [ruby-core:76511] [Bug #12610]
+Thu May 29 20:57:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 16 13:38:36 2016 Kouhei Sutou <kou@cozmixng.org>
+ * numeric.c (ruby_num_interval_step_size): check signs and get rid
+ of implementation dependent behavior of negative division.
+ [ruby-core:61106] [Bug #9570]
- * lib/rexml/attribute.rb (REXML::Attribute#to_string): Fix wrong
- entry reference name of double quote.
- [Bug #12609][ruby-core:76509]
- Patch by Joseph Marrero. Thanks!!!
+Wed May 28 23:47:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 16 13:36:00 2016 Koichi Sasada <ko1@atdot.net>
+ * configure.in (rb_cv_func___builtin_unreachable): try with an
+ external variable not only by a warning, which might not be
+ shown due to the optimization. [ruby-core:61647] [Bug #9665]
- * gc.c (gc_mark_roots): should mark the VM object itself to mark
- singleton class of the VM object.
- Before this patch, we only set mark bit for the VM object and
- invoke mark function separately.
- [Bug #12583]
+Wed May 28 23:40:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_gc.rb: add a test.
+ * ext/openssl/ossl_asn1.c (ossl_asn1_initialize): SYMID on a value
+ other than Symbol is an undefined behavior. fix up r31699.
+ [ruby-core:62142] [Bug #9771]
+
+Wed May 28 23:37:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/stringio/stringio.c (strio_putc): fix for non-ascii
+ encoding, like as IO#putc. [ruby-dev:48114] [Bug #9765]
-Tue Aug 16 13:29:25 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed May 28 01:05:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rubygems/package.rb: Fixed potential perms issue unpacking of
- gems on NFS. [Backport #12579]
+ * lib/fileutils.rb (FileUtils#copy_entry): update rdoc about
+ preserve option and permissions, following r31123.
+ [ruby-core:62065] [Bug #9748]
+
+Wed May 28 00:57:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * proc.c (umethod_bind): use the ancestor iclass instead of new
+ iclass to get rid of infinite recursion, if the defined module
+ is already included. [ruby-core:62014] [Bug #9721]
- * lib/rubygems.rb: bump version.
+Wed May 28 00:57:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Aug 12 11:48:27 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * proc.c (rb_method_call_with_block, umethod_bind): call with
+ IClass including the module for a module instance method.
+ [ruby-core:61936] [Bug #9721]
+
+ * vm_insnhelper.c (vm_search_super_method): allow bound
+ UnboundMethod case.
- * vm_args.c (setup_parameters_complex): don't raise ArgumentError
- if an array is given for instance_exec with optional argument.
- [ruby-core:76300] [Bug #12568]
- https://github.com/rails/rails/pull/25699
+Wed May 28 00:38:37 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * array.c (ary_reject): may be turned into a shared array during
+ the given block. [ruby-dev:48101] [Bug #9727]
+
+Wed May 28 00:29:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * string.c (str_buf_cat): should round up the capacity by 4KiB,
+ but not number of rooms. [ruby-core:61886] [Bug #9709]
+
+Wed May 28 00:23:11 2014 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * lib/xmlrpc/client.rb (do_rpc): don't check body length.
+ If HTTP content-encoding is used, the length may be different.
+ [Bug #8182] [ruby-core:53811]
+
+Wed May 28 00:18:29 2014 Tadayoshi Funaba <tadf@dotrb.org>
+
+ * ext/date/date_core.c (d_lite_cmp): should compare with #<.
+
+Fri May 23 00:04:13 2014 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/socket.c (sock_s_getnameinfo): Save errno for EAI_SYSTEM.
+ Reported by Saravana kumar. [ruby-core:61820] [Bug #9697]
+ Fixed by Heesob Park. [ruby-core:61868]
+
+Fri May 23 00:04:13 2014 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket: Wrap struct addrinfo by struct rb_addrinfo.
+
+Fri May 23 00:04:13 2014 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/ipsocket.c (ip_s_getaddress): Don't access freed memory.
+
+Mon May 19 00:47:00 2014 Koichi Sasada <ko1@atdot.net>
+
+ * test/ruby/test_array.rb: remove useless `assert'.
+
+Mon May 19 00:47:00 2014 Koichi Sasada <ko1@atdot.net>
+
+ * array.c (rb_ary_modify): remember shared array owner if a shared
+ array owner is promoted and a shared array is not promoted.
+
+ Now, shared array is WB-unprotected so that shared arrays are not
+ promoted. All objects referred from shared array should be marked
+ correctly.
+
+ [ruby-core:61919] [ruby-trunk - Bug #9718]
+
+ * test/ruby/test_array.rb: add a test for above.
+
+Mon May 19 00:26:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (parser_yylex): only a newline after label should be
+ significant. [ruby-core:61658] [Bug #9669]
+
+Mon May 19 00:26:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (lex_state_e, parser_params, f_arglist, parser_yylex):
+ separate EXPR_LABELARG from EXPR_BEG and let newline significant,
+ so that required keyword argument can place at the end of
+ argument list without parentheses. [ruby-core:61658] [Bug #9669]
+
+Fri May 16 00:27:02 2014 James Edward Gray II <james@graysoftinc.com>
+
+ * lib/csv.rb: Fixed a broken regular expression that was causing
+ CSV to miss escaping some special meaning characters when used
+ in parsing.
+ Reported by David Unric
+ [ruby-core:54986] [Bug #8405]
-Fri Aug 12 11:45:02 2016 Shugo Maeda <shugo@ruby-lang.org>
+Fri May 16 00:14:25 2014 Kohei Suzuki <eagletmt@gmail.com>
- * lib/net/http/generic_rquest.rb (write_header): A Request-Line must
- not contain CR or LF.
+ * vm_method.c (rb_method_entry_get_without_cache): me->klass is 0
+ for a method aliased in a module. [ruby-core:61636] [Bug #9663]
-Fri Aug 12 11:41:41 2016 Shugo Maeda <shugo@ruby-lang.org>
+Fri May 16 00:14:25 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/net/ftp.rb (putline): raise an ArgumentError when
- CR or LF is included in a line.
+ * vm_method.c (rb_method_entry_get_without_cache): get rid of
+ infinite recursion at aliases in a subclass and a superclass.
+ return actually defined class for other than singleton class.
+ [ruby-core:60431] [Bug #9475]
-Fri Aug 12 11:21:24 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 12 22:53:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (tr_trans): consider terminator length and fix heap
- overflow. reported by Guido Vranken <guido AT guidovranken.nl>.
+ * parse.y (primary): flush cmdarg flags inside left-paren in a
+ command argument, to allow parenthesed do-block as an argument
+ without arguments parentheses. [ruby-core:61950] [Bug #9726]
-Tue Jul 12 00:17:36 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon May 12 22:22:43 2014 Koichi Sasada <ko1@atdot.net>
- * tool/fake.rb: don't fake libdir. use libdirname instead.
+ * vm.c (invoke_block_from_c): add VM_FRAME_FLAG_BMETHOD to record
+ it is bmethod frame.
-Thu Jul 7 00:05:00 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm.c (vm_exec): invoke RUBY_EVENT_RETURN event if rollbacked frame
+ is VM_FRAME_FLAG_BMETHOD.
+ [Bug #9759]
- * bignum.c (Init_Bignum): revert a part of previous commit (r55598),
- because the implementation of Object#hash is a little difference from
- trunk. cf. [Backport #12391]
+ * test/ruby/test_settracefunc.rb: add a test for TracePoint/set_trace_func.
-Wed Jul 6 23:02:03 2016 Kenta Murata <mrkn@mrkn.jp>
+ * vm_core.h: rename rb_thread_t::passed_me to
+ rb_thread_t::passed_bmethod_me to clarify the usage.
- * bignum.c (rb_big_hash): make it public function to be available in
- other source files, and remove documentation comment for Bignum#hash.
+ * vm_insnhelper.c (vm_call_bmethod_body): use renamed member.
- * bignum.c (Bignum#hash): remove its definition because it is unified
- with Object#hash.
+Mon May 12 22:11:47 2014 Shota Fukumori <her@sorah.jp>
- * include/ruby/intern.h (rb_big_hash): add a prototype declaration.
+ * vm_eval.c (eval_string_with_cref): Unify to use NIL_P.
- * hash.c (any_hash): treat Bignum values directly.
+Mon May 12 22:11:47 2014 Shota Fukumori <her@sorah.jp>
-Fri Jun 10 17:48:51 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_eval.c (eval_string_with_cref): Use file path even if scope is
+ given. Related to [ruby-core:56099] [Bug #8662] and r42103.
- * lib/optparse.rb (OptionParser::Completion.candidate): get rid of
- nil as key names. [ruby-core:75773] [Bug #12438]
+Thu May 8 01:13:10 2014 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/optparse.rb (OptionParser#make_switch): char class option
- cannot be NoArgument, default to RequiredArgument.
+ * configure.in: correct pthread_setname_np's prototype on NetBSD.
+ [Bug #9586]
-Fri Jun 10 17:44:59 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Tue May 6 00:54:56 2014 Narihiro Nakamura <authornari@gmail.com>
- * re.c (unescape_nonascii): scan hex up to only 3 characters.
- [Bug #12420] [Bug #12423]
+ * gc.c (gc_after_sweep): suppress unnecessary expanding heap.
+ Tomb heap pages are freed pages here, so expanding heap is
+ not required.
-Fri Jun 10 17:44:59 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Mon May 5 02:35:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * regparse.c (fetch_token_in_cc): raise error if given octal escaped
- character is too big. [Bug #12420] [Bug #12423]
+ * ext/openssl/ossl_pkey.c (ossl_pkey_verify): as EVP_VerifyFinal()
+ finalizes only a copy of the digest context, the context must be
+ cleaned up after initialization by EVP_MD_CTX_cleanup() or a
+ memory leak will occur. [ruby-core:62038] [Bug #9743]
-Fri Jun 10 17:34:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 5 02:21:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * process.c (rb_exec_getargs): honor the expected argument types
- over the conversion method. the basic language functionality
- should be robust. [ruby-core:75388] [Bug #12355]
+ * ext/dl/cptr.c (dlptr_free), ext/dl/handle.c (dlhandle_free),
+ ext/fiddle/handle.c (fiddle_handle_free),
+ ext/fiddle/pointer.c (fiddle_ptr_free): fix memory leak.
+ based on the patch Heesob Park at [ruby-dev:48021] [Bug #9599].
-Fri Jun 10 16:30:16 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 5 01:20:27 2014 Eric Wong <e@80x24.org>
- * parse.y (new_if_gen): set newline flag to NODE_IF to trace all
- if/elsif statements. [ruby-core:67720] [Bug #10763]
+ * gc.c (rb_gc_writebarrier): drop special case for big hash/array
+ [Bug #9518]
-Fri Jun 10 16:24:29 2016 Marcus Stollsteimer <sto.mar@web.de>
+Mon May 5 01:13:00 2014 Koichi Sasada <ko1@atdot.net>
- * ext/date/date_core.c (Init_date_core): [DOC] Convert DateTime
- documentation to RDoc from Markdown.
- [ruby-core:75136] [Bug #12311]
+ * gc.c (gc_before_sweep): cap `malloc_limit' to
+ gc_params.malloc_limit_max. It can grow and grow with such case:
+ `loop{"a" * (1024 ** 2)}'
+ [Bug #9687]
-Fri Jun 10 16:12:58 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ This issue is pointed by Tim Robertson.
+ http://www.omniref.com/blog/blog/2014/03/27/ruby-garbage-collection-still-not-ready-for-production/
- * variable.c (rb_local_constants_i): exclude hidden constants.
- [ruby-core:75575] [Bug #12389]
+Mon May 5 00:52:18 2014 Kenta Murata <mrkn@mrkn.jp>
-Fri Jun 10 16:10:23 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_initialize): Insert GC guard.
- * regcomp.c (compile_length_tree): return error code immediately
- if compile_length_tree raised error [Bug #12418]
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_global_new): ditto.
-Fri Jun 10 16:06:25 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 5 00:42:35 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
- * include/ruby/missing.h (isfinite): move from numeric.c.
+ * ext/psych/psych.gemspec: update gemspec for psych-2.0.5
-Fri Jun 10 16:06:25 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon May 5 00:42:35 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
- * ext/bigdecimal/bigdecimal.c (isfinite): get rid of a warning on
- cygwin. [Bug #12417][ruby-core:75691]
+ * ext/psych/lib/psych.rb: Merge psych-2.0.5. bump version to
+ libyaml-0.1.6 for CVE-2014-2525.
+ * ext/psych/yaml/config.h: ditto.
+ * ext/psych/yaml/scanner.c: ditto.
+ * ext/psych/yaml/yaml_private.h: ditto.
-Fri Jun 10 16:06:25 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon May 5 00:35:20 2014 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/bigdecimal/bigdecimal.c (isfinite): isfinite does not always
- exist. fixed build error on Windows introduced at r55123.
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: support dumping Encoding
+ objects.
-Fri Jun 10 16:06:25 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/psych/lib/psych/visitors/to_ruby.rb: support loading Encoding
+ objects.
- * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): consider
- non-finite float values not to raise FloatDomainError.
- [ruby-core:75682] [Bug #12414]
+ * test/psych/test_encoding.rb: add test
-Fri Jun 10 16:00:27 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/psych/lib/psych.rb: add version
- * thread.c (recursive_list_access): a object id may be a Bignum. so,
- the list must be a objhash, instead of a identhash.
- this fixes many test errors on mswin64 CI.
+Mon May 5 00:16:35 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
-Fri Jun 10 15:56:24 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: Fix up default GC params by @csfrancis [fix GH-556]
- * string.c (rb_str_modify_expand): check integer overflow.
- [ruby-core:75592] [Bug #12390]
+Fri May 2 00:19:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Jun 10 15:54:05 2016 Benoit Daloze <eregontp@gmail.com>
+ * ext/openssl/ossl.c (ossl_make_error): check NULL for unknown
+ error reasons with old OpenSSL, and insert a colon iff formatted
+ message is not empty.
- * insns.def (defineclass): Also raise an error when redeclaring the
- superclass of a class as Object and it has another superclass.
- [Bug #12367] [ruby-core:75446]
+Thu May 1 20:56:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_class.rb: test for above.
+ * ext/readline/extconf.rb (rl_hook_func_t): check pointer type.
+ [ruby-dev:48089] [Bug #9702]
-Fri Jun 10 15:46:24 2016 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Thu May 1 20:47:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * bignum.c: [DOC] Update result of 123456789 ** -2.
- [ruby-dev:49606] [Bug #12339]
+ * ext/readline/extconf.rb: fix typo, `$defs` not `$DEFS`.
+ [ruby-core:61756] [Bug #9578]
-Fri Jun 10 15:37:25 2016 Yuichiro Kaneko <yui-knk@ruby-lang.org>
+Thu May 1 20:47:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * internal.h (RCOMPLEX_SET_IMAG): undef RCOMPLEX_SET_IMAG
- instead of duplicated undef RCOMPLEX_SET_REAL.
+ * ext/readline/extconf.rb (rl_hook_func_t): define as Function for
+ very old readline versions. [ruby-core:61209] [Bug #9578]
-Fri Jun 10 15:37:25 2016 Yuichiro Kaneko <yui-knk@ruby-lang.org>
+Thu May 1 20:47:08 2014 Tanaka Akira <akr@fsij.org>
- * complex.c (rb_complex_set_imag): Fix to properly set imag
- of complex.
+ * ext/readline/readline.c (Init_readline): Use rl_hook_func_t instead
+ of Function to support readline-6.3. (rl_hook_func_t is available
+ since readline-4.2.)
+ Reported by Dmitry Medvinsky. [ruby-core:61141] [Bug #9578]
-Fri Jun 10 15:05:41 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+Sat Mar 1 21:00:27 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * win32/win32.c, include/ruby/win32.h (rb_w32_utruncate): implements new
- truncate alternative which accepts UTF-8 path.
+ * proc.c: Having optional keyword arguments makes maximum arity +1,
+ not unlimited [#8072]
- * file.c (truncate): use above function.
- [Bug #12340]
+Sat Mar 1 17:25:12 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
-Fri Apr 29 20:11:38 2016 Tanaka Akira <akr@fsij.org>
+ * proc.c: Having any mandatory keyword argument increases min arity
+ [#9299]
- * test/ruby/test_time_tz.rb: Tests depends on Europe/Moscow removed
- to avoid test failures due to the tzdata change.
- https://github.com/eggert/tz/commit/8ee11a301cf173afb0c76e0315b9f9ec8ebb9d95
- Found by naruse.
+Mon Feb 24 14:56:41 2014 WATANABE Hirofumi <eban@ruby-lang.org>
-Wed Apr 27 22:16:04 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+ * tool/make-snapshot: needs CXXFLAGS. [ruby-core:59393][Bug #9320]
- * compile.c (new_label_body): missed backporting r54548 in r54698.
- this fixes randomly test failure introduced by r54698.
- cf. [Bug #12082]
+Mon Feb 24 14:56:41 2014 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Apr 26 13:38:31 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+ * tool/make-snapshot: support new version scheme.
- * README.EXT{,.ja}: `nul` should be uppercase.
- change 'nul' => 'NUL'. [Fix GH-1172]
- derived from a patch by craft4coder <yooobuntu@163.com>
+Mon Feb 24 13:05:48 2014 Aaron Patterson <aaron@tenderlovemaking.com>
- * doc/extension.rdoc: Improvements to english grammers.
- [Bug #12246][ruby-core:74792][ci skip]
- derived from a patch by Marcus Stollsteimer <sto.mar@web.de>
+ * ext/psych/lib/psych.rb: New release of psych.
+ * ext/psych/psych.gemspec: ditto
-Tue Apr 26 13:25:25 2016 Marcus Stollsteimer <sto.mar@web.de>
+Mon Feb 24 13:05:48 2014 Aaron Patterson <aaron@tenderlovemaking.com>
- * encoding.c: Fix return value of `Encoding::ISO8859_1.name`
- [Bug #12313][ruby-core:75147][ci skip]
- * ext/bigdecimal/bigdecimal.c: Fix code sample of `BigDecimal.new`
+ * ext/psych/yaml/emitter.c: merge libyaml 0.1.5
+ * ext/psych/yaml/loader.c: ditto
+ * ext/psych/yaml/parser.c: ditto
+ * ext/psych/yaml/reader.c: ditto
+ * ext/psych/yaml/scanner.c: ditto
+ * ext/psych/yaml/writer.c: ditto
+ * ext/psych/yaml/yaml_private.h: ditto
-Tue Apr 26 13:22:45 2016 Rei Odaira <Rei.Odaira@gmail.com>
+Sat Feb 22 22:26:43 2014 NAKAMURA Usaku <usa@ruby-lang.org>
- * configure.in: add missing -lm for AIX.
+ * ext/io/console/console.c (console_dev): need read access for conout$
+ because some functions need it. [Bug#9554]
-Tue Apr 26 13:22:45 2016 Rei Odaira <Rei.Odaira@gmail.com>
+Sat Feb 22 21:56:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in: don't use the system-provided round(3) on AIX.
- In AIX, round(0.49999999999999994) returns 1.0.
- Use round() in numeric.c instead.
+ * compile.c (iseq_set_arguments): set arg_keyword_check from
+ nd_cflag, which is set by parser. internal ID is used for
+ unnamed keyword rest argument, which should be separated from no
+ keyword check.
-Tue Apr 26 13:18:59 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * iseq.c (rb_iseq_parameters): if no keyword check, keyword rest is
+ present.
- * ruby.c: cygwin does not use w32_cmdvector, command line can be
- other than UTF-8. [ruby-dev:49519] [Bug #12184]
+ * parse.y (new_args_tail_gen): set keywords check to nd_cflag, which
+ equals to that keyword rest is not present.
-Tue Apr 26 13:16:41 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Feb 22 21:56:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval_jump.c (exec_end_procs_chain): restore previous error info
- for each end procs. [ruby-core:75038] [Bug #12302]
+ * iseq.c (rb_iseq_parameters): push argument type symbol only for
+ unnamed rest keywords argument.
-Fri Apr 22 18:36:15 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Feb 22 21:56:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * compile.c (new_label_body): initialize bit fields, since
- compile_data_alloc does not clear the memory. [Bug #12082]
+ * proc.c (rb_iseq_min_max_arity): maximum argument is unlimited if
+ having rest keywords argument. [ruby-core:53298] [Bug #8072]
-Fri Apr 22 18:36:15 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Feb 22 18:55:08 2014 Shugo Maeda <shugo@ruby-lang.org>
- * compile.c (iseq_optimize): disable tail call optimization in
- rescued, rescue, and ensure blocks.
- [ruby-core:73871] [Bug #12082]
+ * ext/socket/init.c (wait_connectable): break if the socket is
+ writable to avoid infinite loops on FreeBSD and other platforms
+ which conforms to SUSv3. This problem cannot be reproduced with
+ loopback interfaces, so it's hard to write test code.
+ rsock_connect() and wait_connectable() are overly complicated, so
+ they should be refactored, but I commit this fix as a workaround
+ for the release of Ruby 1.9.3 scheduled on Feb 24.
+ [ruby-core:60940] [Bug #9547]
-Fri Apr 22 18:34:31 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Feb 22 18:48:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * doc/regexp.rdoc (comments): [DOC] terminators cannot appear in
- comments. [ruby-core:74838] [Bug #12256]
+ * class.c (rb_mod_init_copy): do nothing if copying self.
+ [ruby-dev:47989] [Bug #9535]
-Fri Apr 22 18:30:50 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+ * hash.c (rb_hash_initialize_copy): ditto.
- * extension.rdoc, extension.ja.rdoc: [DOC] Fix some errors.
- Renamed files, wrong method names or argument types; the example
- GetDBM macro is now updated to the current version of the actual
- code.
- patches are derived from Marcus Stollsteimer in [ruby-core:74690].
- [Bug #12228]
+Sat Feb 22 18:20:58 2014 Masaki Matsushita <glass.saga@gmail.com>
-Fri Apr 22 18:22:15 2016 NARUSE, Yui <naruse@ruby-lang.org>
+ * hash.c (rb_hash_flatten): fix behavior of flatten(-1).
+ [ruby-dev:47988] [Bug #9533]
- * ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
- [Bug #12202] [ruby-core:74802]
+ * test/ruby/test_array.rb: test for above.
-Fri Apr 22 18:22:15 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Sat Feb 22 17:46:32 2014 Tanaka Akira <akr@fsij.org>
- * ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
- patched by Anton Sivakov [Bug #12201] [Bug #12202]
+ * lib/open-uri.rb: Make proxy disabling working again.
+ Fixed by Christophe Philemotte. [ruby-core:59650] [Bug #9385]
-Fri Apr 22 18:16:51 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Sat Feb 22 17:33:39 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/securerandom.rb (gen_random): to avoid blocking on Windows.
- On Windows OpenSSL RAND_bytes (underlying implementation is
- RAND_poll in crypto/rand/rand_win.c) may be blocked at
- NetStatisticsGet.
- https://wiki.openssl.org/index.php/Random_Numbers#Windows_Issues
- Instead of this, use Random.raw_seed directory (whose implementation
- CryptGenRandom is one of the source of
- entropy of RAND_poll on Windows).
- https://wiki.openssl.org/index.php/Random_Numbers
- Note: CryptGenRandom function is PRNG and doesn't check its entropy,
- so it won't block. [Bug #12139]
- https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa379942.aspx
- https://tools.ietf.org/html/rfc4086#section-7.1.3
- https://eprint.iacr.org/2007/419.pdf
- http://www.cs.huji.ac.il/~dolev/pubs/thesis/msc-thesis-leo.pdf
+ * eval.c (rb_mod_s_constants): return its own constants for other
+ than Module itself. [ruby-core:59763] [Bug #9413]
-Fri Apr 22 18:13:22 2016 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+Sat Feb 22 16:51:36 2014 Eric Wong <e@80x24.org>
- * lib/rubygems/test_case.rb: Fix test on Windows for inconsistent temp path.
- https://github.com/rubygems/rubygems/pull/1554
- [Bug #12193][ruby-core:74431]
+ * ext/json/generator/depend: add build dependencies for json extension
+ [Bug #9374] [ruby-core:59609]
+ * ext/json/parser/depend: ditto
-Fri Apr 22 16:37:14 2016 multisnow <infinity.blick.winkel@gmail.com>
+Sat Feb 22 16:34:12 2014 Yusuke Endoh <mame@tsg.ne.jp>
- * ext/openssl/extconf.rb: check RAND_edg to support libressl.
+ * ext/fiddle/closure.c: use sizeof(*pcl) for correct sizeof value.
+ [ruby-core:57599] [Bug #8978].
- * ext/openssl/ossl_rand.c (ossl_rand_egd): define only if RAND_edg
- is available. [Fix GH-829]
+Sat Feb 22 16:34:12 2014 Aaron Patterson <aaron@tenderlovemaking.com>
-Fri Apr 22 16:24:00 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/fiddle/closure.c: use sizeof(*pcl) for correct sizeof value.
+ [ruby-core:57599] [Bug #8978]. Thanks mame!
- * configure.in (rb_cv_lgamma_r_m0): fix the condition for
- lgamma_r(-0.0). [Bug #12249]
+Sat Feb 22 16:17:54 2014 Eric Wong <e@80x24.org>
-Fri Apr 22 16:24:00 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/ancdata.c (bsock_sendmsg_internal): only retry on error
+ (bsock_recvmsg_internal): ditto
+ * test/socket/test_unix.rb: test above for infinite loop
+
+Sat Feb 22 15:56:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * thread_pthread.c (rb_thread_create_timer_thread): fix for platforms
+ where PTHREAD_STACK_MIN is a dynamic value and not a compile-time
+ constant. [ruby-dev:47911] [Bug #9436]
- * configure.in (rb_cv_lgamma_r_m0): check if lgamma_r(-0.0)
- returns negative infinity. [Bug #12249]
+Sat Feb 22 15:56:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * math.c (ruby_lgamma_r): define by the configured result.
+ * thread_pthread.c (rb_thread_create_timer_thread): expand timer
+ thread stack size to get rid of segfault on FreeBSD/powerpc64.
+ based on the patch by Steve Wills at [ruby-core:59923].
+ [ruby-core:56590] [Bug #8783]
-Fri Apr 22 16:24:00 2016 cremno phobia <cremno@mail.ru>
+Sat Feb 22 15:13:38 2014 Benoit Daloze <eregontp@gmail.com>
+
+ * range.c (Range#size): [DOC] improve description and add examples.
+ Patch by @skade. [Fixes GH-501]
- * math.c (ruby_lgamma_r): missing/lgamma_r.c is used on Windows,
- since msvcrt does not provide it.
+Sat Feb 22 15:07:58 2014 Zachary Scott <e@zzak.io>
- * missing/lgamma_r.c (lgamma_r): fix lgamma(-0.0).
- [ruby-core:74823] [Bug #12249]
+ * lib/racc/rdoc/grammar.en.rdoc: [DOC] Correct grammar and typos
+ Patch by Giorgos Tsiftsis [Bug #9429] [ci skip]
+
+Sat Feb 22 15:06:32 2014 Zachary Scott <e@zzak.io>
+
+ * lib/open-uri.rb: [DOC] use lower case version of core classes, same
+ as commit r44878, based on patch by Jonathan Jackson [Bug #9483]
+
+Sat Feb 22 15:06:32 2014 Zachary Scott <e@zzak.io>
+
+ * ext/ripper/lib/ripper/lexer.rb: [DOC] use lower case version of core
+ classes when referring to return value, since we aren't directly
+ talking about the class. Patch by Jonathan Jackson [Bug #9483]
+
+Sat Feb 22 15:03:05 2014 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+
+ * variable.c: adding extra example in docs.
+ patched by Steve Klabnik. [Bug #9210]
+
+Sat Feb 22 15:01:21 2014 Tanaka Akira <akr@fsij.org>
+
+ * lib/resolv.rb (Resolv::DNS::Resource::TXT#data): Return concatenated
+ string.
+ Patch by Ryan Brunner. [ruby-core:58220] [Bug #9093]
+
+Sat Feb 22 14:52:55 2014 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/ossl_pkey_dh.c: Fixed typo by Sandor Szuecs [Bug #9243]
+
+Sat Feb 22 14:45:36 2014 Zachary Scott <e@zzak.io>
+
+ * lib/xmlrpc/client.rb: [DOC] Remove note about SSL package on RAA
+ Since RAA has been deprecated, and the SSL package has been replaced
+ with net/https this statement is entirely false and should be
+ deleted. [Bug #9152]
-Fri Apr 22 16:24:00 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+Sat Feb 22 14:31:23 2014 Zachary Scott <e@zzak.io>
+
+ * lib/net/smtp.rb: [DOC] Remove dead link to RAA by Giorgos Tsiftsis
+ Fixes the following bugs: [Bug #9152] [Bug #9268] [Bug #9394]
+ * lib/open-uri.rb: ditto
+
+Sat Feb 22 14:18:35 2014 Tanaka Akira <akr@fsij.org>
+
+ * lib/resolv.rb: Ignore name servers which cause EAFNOSUPPORT on
+ socket creation.
+ Reported by Bjoern Rennhak. [ruby-core:60442] [Bug #9477]
+
+Sat Feb 22 14:07:04 2014 Tanaka Akira <akr@fsij.org>
+
+ * lib/resolv.rb (Resolv::DNS::Message::MessageDecoder): Raise
+ DecodeError if no data before the limit.
+ Reported by Will Bryant. [ruby-core:60557] [Bug #9498]
+
+Sat Feb 22 13:49:30 2014 Shugo Maeda <shugo@ruby-lang.org>
+
+ * vm_insnhelper.c (vm_call_method): should check ci->me->flag of
+ a refining method in case the method is private.
+ [ruby-core:60111] [Bug #9452]
+
+ * vm_method.c (make_method_entry_refined): set me->flag of a refined
+ method entry to NOEX_PUBLIC in case the original method is private
+ and it is refined as a public method. The original flag is stored
+ in me->def->body.orig_me, so it's OK to make a refined method
+ entry public. [ruby-core:60111] [Bug #9452]
+
+ * test/ruby/test_refinement.rb: related tests.
+
+Sat Feb 22 13:26:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * iseq.c (iseq_load): keep type_map to get rid of memory leak.
+ based on a patch by Eric Wong at [ruby-core:59699]. [Bug #9399]
+
+Sat Feb 22 13:17:32 2014 Masaki Matsushita <glass.saga@gmail.com>
+
+ * ext/thread/thread.c (rb_szqueue_clear): notify SZQUEUE_WAITERS
+ on SizedQueue#clear. [ruby-core:59462] [Bug #9342]
+
+ * test/thread/test_queue.rb: add test. the patch is from
+ Justin Collins.
+
+Sat Feb 22 01:35:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in: check if pthread_setname_np is available.
+
+ * thread_pthread.c: pthread_setname_np is not available on old
+ Darwins. [ruby-core:60524] [Bug #9492]
+
+Sat Feb 22 00:21:50 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (local_push_gen, local_pop_gen): save cmdarg_stack to
+ isolate command argument state from outer scope.
+ [ruby-core:59342] [Bug #9308]
+
+Fri Feb 21 23:51:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * encoding.c (must_encindex, rb_enc_from_index, rb_obj_encoding): mask
+ encoding index and ignore dummy flags. [ruby-core:59354] [Bug #9314]
+
+Fri Feb 21 23:10:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (RbConfig): expand RUBY_SO_NAME for extensions
+ backward compatibility. [ruby-core:59426] [Bug #9329]
- * math.c (ruby_lgamma_r): mswin's lgamma_r also seems to be wrong.
- cf. [Bug #12249]
+Fri Feb 21 23:07:56 2014 Akio Tajima <artonx@yahoo.co.jp>
-Fri Apr 22 16:24:00 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/Makefile.sub: remove HAVE_FSEEKO because fseeko removed from win32/win32.c
+ Fixed [Bug #9333].
- * math.c (ruby_tgamma): fix tgamma(-0.0) on mingw.
- [ruby-core:74817] [Bug #12249]
+Fri Feb 21 23:00:34 2014 Aaron Patterson <aaron@tenderlovemaking.com>
-Fri Apr 22 16:00:50 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: dumping strings with
+ quotes should not have changed. [ruby-core:59316] [Bug #9300]
- * defs/keywords (alias, undef): symbol literals are allowed.
+ * ext/psych/lib/psych.rb: fixed missing require.
- * parse.y (parse_percent): should parse symbol literals for alias
- and undef. [ruby-dev:47681] [Bug #8851]
+ * test/psych/test_string.rb: test
-Fri Apr 22 15:47:58 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Feb 2 05:48:42 2014 Eric Wong <e@80x24.org>
- * struct.c (struct_make_members_list): extract making member name
- list from char* va_list, with creating symbols without
- intermediate IDs.
+ * io.c (rb_io_syswrite): add RB_GC_GUARD
+ [Bug #9472][ruby-core:60407]
-Fri Apr 22 15:19:01 2016 Joe Swatosh <joe.swatosh@gmail.com>
+Fri Feb 21 17:42:42 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/win32/lib/win32/registry.rb (DeleteValue, DeleteKey): fix
- API names. [ruby-core:74863] [Bug #12264]
+ * lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not
+ consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
-Fri Apr 22 15:13:39 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.
- * vm_core.h (rb_vm_struct): make at_exit a single linked list but
- not RArray, not to mark the registered functions by the write
- barrier. based on the patches by Evan Phoenix.
- [ruby-core:73908] [Bug #12095]
+Fri Feb 21 16:47:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Apr 22 15:08:27 2016 Benoit Daloze <eregontp@gmail.com>
+ * string.c (get_encoding): respect BOM on pseudo encodings.
+ [ruby-dev:47895] [Bug #9415]
- * thread.c (update_coverage): Do not track coverage in loaded files
- after Coverage.result. Avoids out-of-bounds access. [Bug #12237]
+Fri Feb 21 16:47:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/coverage/coverage.c (coverage_clear_result_i): document.
+ * string.c (get_actual_encoding): get actual encoding according to
+ the BOM if exists.
-Fri Apr 22 14:56:46 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c (rb_str_inspect): use according encoding, instead of
+ pseudo encodings, UTF-{16,32}. [ruby-core:59757] [Bug #8940]
- * ext/date/date_core.c (Init_date_core): [DOC] fix misplaced doc
- of DateTime. [ruby-core:74729] [Bug #12233]
+Fri Feb 21 13:39:21 2014 Charlie Somerville <charliesome@ruby-lang.org>
-Fri Apr 22 14:48:09 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (iseq_build_from_ary_body): Use :blockptr instead of :block
+ as hash key when loading serialized instruction sequences from arrays.
+ [Bug #9455] [ruby-core:60146]
- * parse.y (parse_ident): allow keyword arguments just after a
- method where the same name local variable is defined.
- [ruby-core:73816] [Bug#12073]
+Thu Feb 20 12:58:45 2014 Tanaka Akira <akr@fsij.org>
-Fri Apr 22 14:34:27 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (READ_FROM_CHILD): Apply the last hunk of
+ 0001-process.c-avoid-EINTR-from-Process.spawn.patch written by
+ Eric Wong in [Bug #8770].
- * eval.c (setup_exception): set the cause only if it is explicitly
- given or not set yet. [Bug #12068]
+Thu Feb 20 12:58:45 2014 Eric Wong <normalperson@yhbt.net>
-Fri Apr 22 14:13:28 2016 sorah (Shota Fukumori) <her@sorah.jp>
+ * process.c (send_child_error): retry write on EINTR to fix
+ occasional Errno::EINTR from Process.spawn.
- * lib/forwardable.rb: Convert given accessors to String.
+ * process.c (recv_child_error): retry read on EINTR to fix
+ occasional Errno::EINTR from Process.spawn.
- r53381 changed to accept only Symbol or String for accessors, but
- there are several rubygems that pass classes (e.g. Array,
- Hash, ...) as accessors. Prior r53381, it was accepted because Class#to_s
- returns its class name. After r53381 given accessors are checked
- with define_method, but it accepts only Symbol or String, otherwise
- raises TypeError.
+Thu Feb 20 12:24:59 2014 Eric Hodel <drbrain@segment7.net>
- def_delegator Foo, :some_method
+ * lib/rinda/ring.rb (Rinda::RingFinger#make_socket): Use
+ ipv4_multicast_ttl option for portability.
- This change is to revert unexpected incompatibility. But this behavior
- may change in the future.
+Thu Feb 20 10:19:40 2014 Tanaka Akira <akr@fsij.org>
-Fri Apr 22 14:13:28 2016 Elliot Winkler <elliot.winkler@gmail.com>
+ * ext/socket/option.c: IP_MULTICAST_LOOP and IP_MULTICAST_TTL socket
+ option takes a byte on OpenBSD.
+ Fixed by Jeremy Evans. [ruby-core:59496] [Bug #9350]
- * lib/forwardable.rb (def_instance_delegator) fix delegating to
- 'args' and 'block', clashing with local variables in generated
- methods. [ruby-core:72579] [Bug #11916]
+Wed Feb 19 15:25:13 2014 Koichi Sasada <ko1@atdot.net>
- * lib/forwardable.rb (def_single_delegator): ditto.
+ * gc.c (ruby_gc_set_params): don't show obsolete warnings for
+ RUBY_FREE_MIN/RUBY_HEAP_MIN_SLOTS if
+ RUBY_GC_HEAP_FREE_SLOTS/RUBY_GC_HEAP_INIT_SLOTS are given.
+ [Bug #9276]
-Fri Apr 22 13:41:38 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Feb 19 14:25:55 2014 Koichi Sasada <ko1@atdot.net>
- * compile.c (compile_massign_lhs): when index ends with splat,
- append rhs value to it like POSTARG, since VM_CALL_ARGS_SPLAT
- splats the last argument only. [ruby-core:72777] [Bug #11970]
+ * test/ruby/test_gc.rb: ignore warning messages for running with -w
+ option such as chkbuild.
-Thu Mar 31 05:06:02 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Feb 19 14:25:55 2014 Koichi Sasada <ko1@atdot.net>
- * sprintf.c (rb_str_format): fix buffer overflow, length must be
- greater than precision. reported by William Bowling <will AT
- wbowling.info>.
+ * gc.c (get_envparam_double): fix a warning message.
-Thu Mar 31 04:49:05 2016 Kimura Wataru <kimuraw@i.nifty.jp>
+Wed Feb 19 14:25:55 2014 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_io.rb: handled rlimit value same as r52277
- [Bug #11852][ruby-dev:49446]
+ * gc.c: introduce new environment variable
+ "RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR" to control major/minor GC
+ frequency.
-Wed Mar 30 06:37:56 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ Do full GC when the number of old objects is more than R * N
+ where R is this factor and
+ N is the number of old objects just after last full GC.
- * tool/extlibs.rb (do_patch): let "patch" command change the
- working directory and open the patch file there, instead of
- spawn options, so that proper error message will be shown by the
- command not just "chdir" or "open".
+ * test/ruby/test_gc.rb: add a test.
-Wed Mar 30 06:11:36 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Feb 19 07:51:02 2014 Eric Hodel <drbrain@segment7.net>
- * thread_pthread.c (reserve_stack): fix reserving position where
- the stack growing bottom to top. [Bug #12118]
+ * lib/rinda/ring.rb (Rinda::RingFinger#make_socket): Use
+ ipv4_multicast_loop option for portability. Patch by Jeremy Evans.
+ [ruby-trunk - Bug #9351]
-Wed Mar 30 06:04:18 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+Mon Feb 17 05:43:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * .travis.yml: removed commented-out code.
+ * configure.in: reset LDFLAGS and DLDFLAGS for opt-dir again after
+ LIBPATHFLAG and RPATHFLAG are set. [ruby-dev:47868] [Bug #9317]
-Wed Mar 30 06:04:18 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+Sun Feb 16 07:13:36 2014 Tanaka Akira <akr@fsij.org>
- * .travis.yml: removed osx code. follow up with r53517
+ * configure.in: Fix compilation error.
+ https://bugs.ruby-lang.org/issues/8358#note-16
-Wed Mar 30 06:04:18 2016 Aaron Patterson <tenderlove@ruby-lang.org>
+Sun Feb 16 07:13:36 2014 Vit Ondruch <vondruch@redhat.com>
- * .travis.yml: update libssl before running tests.
- Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for figuring out the
- travis settings!
+ * configure.in: add qouting brackets and append wildcard for the
+ rest after target_cpu, to properly detect platform for SSE2
+ instructions. [ruby-core:60576] [Bug #8358]
-Wed Mar 30 06:04:18 2016 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sun Feb 16 07:13:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * .travis.yml: removed Ruby 1.9.3 build on Travis CI
+ * configure.in: -mstackrealign is necessary for -msse2 working.
+ [ruby-core:54716] [Bug #8349]
-Wed Mar 30 06:04:18 2016 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sun Feb 16 07:13:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * .travis.yml: Remove redundant configuration option.
- [fix GH-809] Patch by @gxworld
+ * configure.in: -mstackrealign is necessary for -msse2 working.
+ [ruby-core:54716] [Bug #8349]
-Wed Mar 30 05:15:04 2016 Kazuki Yamaguchi <k@rhe.jp>
+ * configure.in: use SSE2 instructions to drop unexpected precisions on
+ other than mingw. [ruby-core:59472] [Bug #8358]
- * ext/openssl/extconf.rb: check SSL_CTX_set_next_proto_select_cb
- function rather than OPENSSL_NPN_NEGOTIATED macro. it exists
- even if it is disabled by OpenSSL configuration.
- [ruby-core:74384] [Bug #12182]
+Sun Feb 16 07:13:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_ssl.c: update #ifdef(s) as above.
+ * configure.in: use SSE2 instructions for drop unexpected
+ precisions. [ruby-core:54738] [Bug #8358]
- * test/openssl/test_ssl.rb: skip NPN tests if NPN is disabled.
+Fri Feb 7 04:19:19 2014 Koichi Sasada <ko1@atdot.net>
-Wed Mar 30 05:13:25 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (get_envparam_int): correct warning messsages.
- * lib/uri/http.rb (URI::HTTP#initialize): [DOC] fix example,
- missing mandatory arguments. [ruby-core:74540] [Bug #12215]
+ * gc.c (get_envparam_double): ditto.
-Tue Mar 29 02:22:35 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
+Fri Feb 7 04:19:19 2014 Koichi Sasada <ko1@atdot.net>
- * lib/uri/mailto.rb: raising URI::InvalidComponentError instead
- of failing with undefined method `split' for nil:NilClass for
- mailto: URIs without opaque part. [Bug #10738]
- * test/uri/testuri.rb: Test for above
+ * gc.c (get_envparam_int): don't accept a value equals to lowerbound
+ (changed by last commit) because "" or "foo" (not a number) strings
+ are parsed as 0. They should be rejected.
-Tue Mar 29 02:08:40 2016 Koichi Sasada <ko1@atdot.net>
+ * gc.c (get_envparam_double): ditto.
- * signal.c: should also clear ruby_disable_gc.
- [Bug #11692]
+Thu Feb 6 08:23:28 2014 Eric Wong <e@80x24.org>
-Tue Mar 29 02:04:18 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/thread/thread.c (rb_szqueue_max_set): use correct queue and
+ limit wakeups. [Bug #9343][ruby-core:60517]
+ * test/thread/test_queue.rb (test_sized_queue_assign_max):
+ test for bug
- * vm_eval.c (rb_f_catch): [DOC] fix malformed RDoc syntax, "+...+"
- cannot enclose non-identifier characters.
- a patch by Sebastian S in [ruby-core:74278]. [Bug#12170]
+Thu Feb 6 11:27:39 2014 Eric Hodel <drbrain@segment7.net>
-Tue Mar 29 02:02:53 2016 Rei Odaira <Rei.Odaira@gmail.com>
+ * lib/rubygems: RubyGems 2.2.2 which contains the following bug fixes:
+ http://rubygems.rubyforge.org/rubygems-update/History_txt.html#label-2.2.2+%2F+2014-02-05
+ https://bugs.ruby-lang.org/issues/9489
- * test/-ext-/float/test_nextafter.rb: In AIX,
- nextafter(+0.0,-0.0)=+0.0, and nextafter(-0.0,+0.0)=-0.0,
- but they should return -0.0 and +0.0, respectively. This is
- a known bug in nextafter(3) on AIX, so skip related tests.
+Thu Feb 6 11:23:59 2014 Koichi Sasada <ko1@atdot.net>
-Tue Mar 29 01:56:24 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * gc.c (ruby_gc_set_params): if RUBY_GC_OLDMALLOC_LIMIT is provided,
+ then set objspace->rgengc.oldmalloc_increase_limit.
+ Without this fix, the env variable RUBY_GC_OLDMALLOC_LIMIT
+ does not work.
- * lib/rubygems/installer.rb: merge partially r49511.
- cherry picking https://github.com/rubygems/rubygems/commit/f9232680
- [Bug #12066]
+ * gc.c (get_envparam_int): accept a value equals to lowerbound.
-Tue Mar 29 01:41:10 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (get_envparam_double): ditto.
- * string.c (enc_succ_alnum_char): try to skip an invalid character
- gap between GREEK CAPITAL RHO and SIGMA.
- [ruby-core:74478] [Bug #12204]
+Wed Feb 5 23:57:05 2014 Charlie Somerville <charliesome@ruby-lang.org>
-Tue Mar 29 01:27:52 2016 Victor Nawothnig <Victor.Nawothnig@gmail.com>
+ * ext/thread/thread.c (rb_szqueue_push): check GET_SZQUEUE_WAITERS
+ instead of GET_QUEUE_WAITERS to prevent deadlock. Patch by Eric Wong.
+ [Bug #9302] [ruby-core:59324]
- * parse.y (parse_numvar): NTH_REF must be less than a half of
- INT_MAX, as it is left-shifted to be ORed with back-ref flag.
- [ruby-core:74444] [Bug#12192] [Fix GH-1296]
+ * test/thread/test_queue.rb: add test
-Tue Mar 29 01:24:55 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Feb 5 23:43:30 2014 NAKAMURA Usaku <usa@ruby-lang.org>
- * enc/trans/JIS: update Unicode's notice. [Bug #11844]
+ * hash.c (rb_objid_hash): should return `long'. brushup r44534.
-Tue Mar 29 01:22:39 2016 Eric Hodel <drbrain@segment7.net>
+ * object.c (rb_obj_hash): follow above change.
- * marshal.c (r_object0): raise ArgumentError when linking to undefined
- object.
+Wed Feb 5 23:43:30 2014 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Mar 29 01:22:39 2016 Eric Hodel <drbrain@segment7.net>
+ * hash.c (rb_any_hash): should treat the return value of rb_objid_hash()
+ as `long', because ruby assumes the hash value of the object id of
+ an object is `long'.
+ this fixes test failures on mswin64 introduced at r44525.
- * marshal.c (r_object0): Fix Marshal crash for corrupt extended object.
+Wed Feb 5 23:43:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Mar 29 01:20:37 2016 Eric Wong <e@80x24.org>
+ * hash.c (rb_objid_hash): return hash value from object ID with a
+ salt, extract from rb_any_hash().
- * ext/openssl/ossl_ssl.c (ossl_sslctx_setup): document as MT-unsafe
- [ruby-core:73803] [Bug #12069]
+ * object.c (rb_obj_hash): return same value as rb_any_hash().
+ fix r44125. [ruby-core:59638] [Bug #9381]
-Tue Mar 29 01:07:36 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Feb 5 22:28:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * insns.def (opt_mod): show its method name on ZeroDivisionError.
- [Bug #12158]
+ * vm_insnhelper.c (vm_search_super_method): allow bound method from a
+ module, yet another method transplanting.
-Tue Mar 29 01:05:28 2016 Anthony Dmitriyev <antstorm@gmail.com>
+Wed Feb 5 22:28:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * net/ftp.rb: add NullSocket#closed? to fix closing not opened
- connection. [Fix GH-1232]
+ * vm_insnhelper.c (vm_search_super_method): when super called in a
+ bound UnboundMethod generated from a module, no superclass is
+ found since the current defined class is the module, then call
+ method_missing in that case. [ruby-core:59619] [Bug #9377]
-Tue Mar 29 01:02:49 2016 Koichi ITO <koic.ito@gmail.com>
+Wed Feb 5 21:57:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * variable.c: Added documentation about order of `Module#constants`
- [ci skip][Bug #12121][ruby-dev:49505][fix GH-1301]
+ * ext/socket/socket.c (rsock_syserr_fail_host_port): add errno
+ argument version anduse rb_syserr_fail_str() instead of
+ rb_sys_fail_str() with restoring errno.
-Tue Mar 29 00:56:10 2016 Rei Odaira <Rei.Odaira@gmail.com>
+ * ext/socket/socket.c (rsock_syserr_fail_path): ditto, and
+ rb_syserr_fail().
- * test/ruby/test_process.rb (test_execopts_gid): Skip a test
- that is known to fail on AIX. AIX allows setgid to
- a supplementary group, but Ruby does not allow the "-e"
- option when setgid'ed, so the test does not work as intended.
+ * ext/socket/socket.c (rsock_sys_fail_sockaddr): ditto, use
+ rsock_syserr_fail_raddrinfo().
-Tue Mar 29 00:53:26 2016 Rei Odaira <Rei.Odaira@gmail.com>
+ * ext/socket/socket.c (rsock_sys_fail_raddrinfo): ditto.
- * test/socket/test_addrinfo.rb (test_ipv6_address_predicates):
- IN6_IS_ADDR_V4COMPAT and IN6_IS_ADDR_V4MAPPED are broken
- on AIX, so skip related tests.
+ * ext/socket/socket.c (setup_domain_and_type): ditto.
-Tue Mar 29 00:44:55 2016 Rei Odaira <Rei.Odaira@gmail.com>
+Wed Feb 5 21:57:40 2014 Eric Wong <normalperson@yhbt.net>
- * test/rinda/test_rinda.rb (test_make_socket_ipv4_multicast):
- The fifth argument to getsockopt(2) should be modified to
- indicate the actual size of the value on return,
- but not in AIX. This is a know bug. Skip related tests.
- * test/rinda/test_rinda.rb (test_ring_server_ipv4_multicast):
- ditto.
- * test/rinda/test_rinda.rb (test_make_socket_unicast): ditto.
- * test/socket/test_basicsocket.rb (test_getsockopt): ditto.
- * test/socket/test_sockopt.rb (test_bool): ditto.
+ * ext/socket/socket.c (rsock_sys_fail_host_port): save and restore errno
+ before calling rb_sys_fail_str to prevent [BUG] errno == 0.
+ Patch by Eric Wong. [ruby-core:59498] [Bug #9352]
-Tue Mar 29 00:43:40 2016 Rei Odaira <Rei.Odaira@gmail.com>
+ * ext/socket/socket.c (rsock_sys_fail_path): ditto
+ * ext/socket/socket.c (rsock_sys_fail_sockaddr): ditto
+ * ext/socket/socket.c (rsock_sys_fail_raddrinfo): ditto
+ * ext/socket/socket.c (rsock_sys_fail_raddrinfo_or_sockaddr): ditto
- * test/zlib/test_zlib.rb (test_adler32_combine, test_crc32_combine):
- Skip two tests on AIX because zconf.h in zlib does not correctly
- recognize _LARGE_FILES in AIX. The problem was already reported
- to zlib, and skip these tests until it is fixed.
+Wed Feb 5 21:12:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Mar 29 00:42:10 2016 Rei Odaira <Rei.Odaira@gmail.com>
+ * lib/timeout.rb (Timeout::ExitException.catch): pass arguments
+ for new instance.
- * test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_lock): skip
- this test on AIX. The issue is the same as on Solaris.
- [ruby-dev:47631]
+ * lib/timeout.rb (Timeout::ExitException#exception): fallback to
+ Timeout::Error if couldn't throw. [ruby-dev:47872] [Bug #9380]
-Tue Mar 29 00:33:06 2016 Rei Odaira <Rei.Odaira@gmail.com>
+ * lib/timeout.rb (Timeout#timeout): initialize ExitException with
+ message for the fallback case.
- * thread_pthread.c (getstack): __pi_stacksize returned by
- pthread_getthrds_np() is wrong on AIX. Use
- __pi_stackend - __pi_stackaddr instead.
+Wed Feb 5 21:12:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Mar 29 00:06:58 2016 Alex Boyd <alex@opengroove.org>
+ * lib/timeout.rb (Timeout#timeout): should not rescue ordinarily
+ raised ExitException, which should not be thrown.
- * lib/irb.rb: avoid to needless truncation when using back_trace_limit option.
- [fix GH-1205][ruby-core:72773][Bug #11969]
+ * lib/timeout.rb (Timeout::ExitException.catch): set @thread only if
+ it ought to be caught.
-Tue Mar 29 00:00:27 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * lib/timeout.rb (Timeout#timeout): when a custom exception is given,
+ no instance is needed to be caught, so defer creating new instance
+ until it is raised. [ruby-core:59511] [Bug #9354]
- * ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb: fix method name typo.
- [ruby-core:72513] [Bug #11893] The patch provided by Akira Matsuda.
+Wed Feb 5 17:55:28 2014 Aman Gupta <ruby@tmm1.net>
+ * array.c (ary_add_hash): Fix consistency issue between Array#uniq and
+ Array#uniq! [Bug #9340] [ruby-core:59457]
+ * test/ruby/test_array.rb (class TestArray): regression test for above.
-Mon Mar 28 23:58:27 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+Wed Feb 5 11:48:42 2014 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/tk/lib/tkextlib/tcllib/toolbar.rb: fix method name typo.
- [ruby-core:72511] [Bug #11891] The patch provided by Akira Matsuda.
+ * struct.c (rb_struct_set): return assigned value from setter method
+ rather than struct object. [Bug #9353] [ruby-core:59509]
+ * test/ruby/test_struct.rb (test_setter_method_returns_value): add test
-Mon Mar 28 23:57:33 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+Wed Feb 5 11:13:21 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tkextlib/blt/tree.rb: fix method name typo.
- [ruby-core:72510] [Bug #11890] The patch provided by Akira Matsuda.
+ * string.c (rb_str_modify_expand): enable capacity and disable
+ assocation with packed objects when setting capa, so that
+ pack("p") string fails to unpack properly after modified.
+Sun Feb 2 22:39:28 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Mar 28 23:56:17 2016 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * lib/delegate.rb (Delegator): keep source information methods
+ which start and end with '__'. [ruby-core:59718] [Bug #9403]
- * ext/tk/lib/tk/menubar.rb: fix a typo in font name. [ruby-core:72505]
- [Bug #11886] The patch provided by Akira Matsuda.
+Fri Jan 31 12:10:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/sample/*.rb: ditto.
+ * proc.c (mnew_from_me): keep iclass as-is, to make inheritance
+ chain consistent. [ruby-core:59358] [Bug #9315]
-Mon Mar 28 23:20:12 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * proc.c (method_owner): return the original defined_class from
+ prepended iclass, instead.
- * test/fiddle/test_handle.rb (test_NEXT): use -test-/dln/empty
- which is always a shared object and is not used by others.
- [ruby-dev:48629] [Bug #10384]
+Fri Jan 31 12:05:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Mar 28 23:15:54 2016 Kenta Murata <mrkn@mrkn.jp>
+ * configure.in: let mingw do something black-magic, and check if
+ _gmtime64_s() is available actually.
- * ruby.h: undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P
- and HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P on C++.
- [ruby-core:72736] [Bug #11962]
+ * win32/win32.c (gmtime_s, localtime_s): use _gmtime64_s() and
+ _localtime64_s() if available, not depending on very confusing
+ mingw variants macros. based on the patch by phasis68 (Heesob
+ Park) at [ruby-core:58764]. [ruby-core:58391] [Bug #9119]
-Thu Mar 24 20:39:58 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jan 30 15:02:35 2014 Shugo Maeda <shugo@ruby-lang.org>
- * ext/socket/option.c (inspect_tcpi_msec): more accurate condition
- for TCPI msec member inspection function.
- [ruby-core:74388] [Bug #12185]
+ * configure.in: use $@ instead of $(.TARGET) because .TARGET is not
+ supported by GNU make.
-Thu Mar 10 00:22:25 2016 Naotoshi Seo <sonots@gmail.com>
+Mon Jan 27 16:49:52 2014 Kenta Murata <mrkn@mrkn.jp>
- * lib/logger.rb: Remove block from Logger.add as it's not needed
- patch provided by Daniel Lobato Garcia [fix GH-1240] [Bug #12054]
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_divide): Add an additional
+ digit for the quotient to be compatible with bigdecimal 1.2.1 and
+ the former. [ruby-core:59365] [#9316] [#9305]
-Thu Mar 10 00:17:57 2016 Zachary Scott <zzak@ruby-lang.org>
+ * test/bigdecimal/test_bigdecimal.rb: tests for the above change.
- * re.c: Remove deprecated kcode argument from Regexp.new and compile
- patch provided by Dylan Pulliam [Bug #11495]
+ * ext/bigdecimal/bigdecimal.gemspec: bigdecimal version 1.2.4.
-Thu Mar 10 00:17:57 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+Mon Jan 27 16:45:34 2014 Yamashita Yuu <yamashita@geishatokyo.com>
- * re.c: Update documentation for Regexp class.
- [fix GH-937][ci skip] Patch by @davydovanton
+ * ext/openssl/ossl_ssl.c (Init_ossl_ssl): Declare a constant
+ `OP_MSIE_SSLV2_RSA_PADDING` only if the macro is defined. The
+ `SSL_OP_MSIE_SSLV2_RSA_PADDING` has been removed from latest
+ snapshot of OpenSSL 1.0.1. [Fixes GH-488]
-Thu Mar 10 00:04:34 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jan 23 10:37:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/socket/socket.c (sock_gethostname): support unlimited size
- hostname.
+ * hash.c (HAS_EXTRA_STATES): warn extra states only when something
+ differ. [ruby-core:59254] [Bug #9275]
-Wed Mar 9 22:59:43 2016 Kouhei Sutou <kou@cozmixng.org>
+Thu Jan 9 14:05:24 2014 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/xmlrpc/client.rb: Support SSL options in async methods of
- XMLRPC::Client.
- [Bug #11489]
- Reported by Aleksandar Kostadinov. Thanks!!!
+ * win32/{setup.mak,Makefile.sub}: update fake.rb like
+ template/fake.rb.in.
-Wed Mar 9 22:46:56 2016 NARUSE, Yui <naruse@ruby-lang.org>
+Thu Jan 9 14:05:24 2014 NAKAMURA Usaku <usa@ruby-lang.org>
- * marshal.c (r_object0): honor Marshal.load post proc
- value for TYPE_LINK. by Hiroshi Nakamura <nahi@ruby-lang.org>
- https://github.com/ruby/ruby/pull/1204 fix GH-1204
+ * win32/Makefile.sub (fake.rb): should depend on version.h because
+ if RUBY_VERSION is updated, fake.rb need to say the new version
+ to avoid install error in rbconfig.rb.
-Wed Mar 9 22:26:38 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jan 9 08:21:00 2014 Aman Gupta <ruby@tmm1.net>
- * ext/socket/option.c (sockopt_bool): relax boolean size to be one
- too not only sizeof(int). Winsock getsockopt() returns a single
- byte as a boolean socket option. [ruby-core:72730] [Bug #11958]
+ * test/net/imap/cacert.pem: generate new CA cert, since the last one
+ expired. [Bug #9341] [ruby-core:59459]
+ * test/net/imap/server.crt: new server cert signed with updated CA.
+ * test/net/imap/Makefile: add `make regen_certs` to automate this
+ process.
-Wed Mar 9 05:14:20 2016 Eric Wong <e@80x24.org>
+Thu Dec 26 03:28:11 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (io_getpartial): remove unused kwarg from template
- * test/ruby/test_io.rb (test_readpartial_bad_args): new
- [Bug #11885]
+ * vm_insnhelper.c (argument_error): insert dummy frame to make
+ a backtrace object intead of modify backtrace string array.
+ [Bug #9295]
-Wed Mar 9 05:14:20 2016 Eric Wong <e@80x24.org>
+ * test/ruby/test_backtrace.rb: add a test for this patch.
+ fix test to compare a result of Exception#backtrace with
+ a result of Exception#backtrace_locations.
- * ext/openssl/ossl_ssl.c (ossl_ssl_read_internal):
- do not process kwargs in blocking mode
- * test/openssl/test_ssl.rb: test sysread
+Wed Dec 25 16:58:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Mar 9 04:21:02 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+ * proc.c (rb_mod_define_method): consider visibility only if self
+ in the caller is same as the receiver, otherwise make public as
+ well as old behavior. [ruby-core:57747] [Bug #9005]
+ [ruby-core:58497] [Bug #9141]
- * process.c (rb_execarg_parent_start1): need to convert the encoding to
- ospath's one.
+ * vm.c (rb_vm_cref_in_context): return ruby level cref if self is
+ same.
-Wed Mar 9 04:21:02 2016 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Dec 25 16:35:34 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * process.c: use rb_w32_uchdir() instead of plain chdir() on Windows.
- reported by naruse via twitter.
+ * sample/trick2013/: added the award-winning entries of TRICK 2013.
+ See https://github.com/tric/trick2013 for the contest outline.
+ (Matz has approved the attachment.)
- * process.c (rb_execarg_addopt): need to convert the encoding to
- ospath's one.
+Tue Dec 24 23:47:50 2013 Koichi Sasada <ko1@atdot.net>
-Wed Mar 9 04:15:20 2016 Eric Wong <e@80x24.org>
+ * README.EXT: add a refer to URL.
- * ext/stringio/stringio.c (strio_binmode): implement to set encoding
- * test/stringio/test_stringio.rb (test_binmode): new test
- [ruby-core:72699] [Bug #11945]
+Tue Dec 24 23:47:50 2013 Koichi Sasada <ko1@atdot.net>
-Wed Mar 9 03:53:37 2016 Tadashi Saito <tad.a.digger@gmail.com>
+ * README.EXT: add a document about RGenGC.
+ Reviewed by havenwood.
+ [misc #8962]
- * compile.c, cont.c, doc, man: fix common misspelling.
- [ruby-core:72466] [Bug #11870]
+ * README.EXT.ja: ditto.
-Wed Mar 9 03:51:48 2016 Eric Wong <e@80x24.org>
+Mon Dec 23 19:00:00 2013 Eric Hodel <drbrain@segment7.net>
- * ext/socket/init.c (rsock_init_sock): reject reserved FDs
- [ruby-core:72445] [Bug #11862]
+ * test/rubygems/test_gem_ext_builder.rb: Fix warning due to ambiguous
+ expression.
-Wed Mar 9 03:41:27 2016 Eric Wong <e@80x24.org>
+Mon Dec 23 16:13:10 2013 Eric Hodel <drbrain@segment7.net>
- * ext/socket/init.c (rsock_init_sock): check FD after validating
- * test/socket/test_basicsocket.rb (test_for_fd): new
- [ruby-core:72418] [Bug #11854]
+ * lib/rubygems/commands/install_command.rb: Restore gem install
+ --ignore-dependencies for remote gems
+ * test/rubygems/test_gem_commands_install_command.rb: Test for the
+ above.
-Wed Mar 9 03:34:54 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Dec 23 16:12:24 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * re.c (reg_names_iter): should consider encoding of regexp.
- [ruby-core:72185] [Bug #11825]
+ * array.c: Have to_h raise on elements that are not key-value pairs
+ [#9239]
-Wed Feb 24 08:18:18 2016 Naohisa Goto <ngotogenome@gmail.com>
+ * enum.c: ditto
- * enc/windows_1250.c: Should not use C++ style comments (C99 feature).
- [Bug #11843]
+Sun Dec 22 19:22:52 2013 Eric Hodel <drbrain@segment7.net>
-Tue Feb 23 03:43:23 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * lib/rdoc.rb: Set RDoc to release version.
- * enc/iso_8859_2.c, enc/windows_1250.c: separate Windows-1250
- from ISO-8859-2 to fix 0x80..0x9e range (from Kimihito Matsui)
+Sun Dec 22 19:22:31 2013 Eric Hodel <drbrain@segment7.net>
-Tue Feb 23 03:43:23 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems.rb: Set RubyGems to release version.
- * enc/windows_1252.c: separate from ISO-8859-1 to fix 0x80..0x9e
- range. [ruby-core:64049] [Bug #10097]
+Sun Dec 22 19:22:01 2013 Eric Hodel <drbrain@segment7.net>
-Tue Feb 23 03:43:23 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * lib/rubygems.rb (module Gem): Fix comment for
+ Gem::load_path_insert_index.
- * enc/iso_8859_13.c: Added three missing lower/upper-case
- character pairs (from Kimihito Matsui)
+Sun Dec 22 18:08:42 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Feb 23 03:43:23 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * win32/Makefile.sub (fake.rb): fixed wrong RUBY_PLATFORM, to correctly
+ install win32.h.
+ [ruby-core:58801][Bug #9199] reported by arton.
- * enc/iso_8859_4.c: Added missing lower/upper-case character
- pair (U+014A and U+014B, LATIN CAPITAL/SMALL LETTER ENG)
- (from Kimihito Matsui)
+Fri Dec 20 17:52:50 2013 Koichi Sasada <ko1@atdot.net>
-Mon Feb 15 02:05:13 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_method.c: check definition of
+ GLOBAL_METHOD_CACHE_SIZE and GLOBAL_METHOD_CACHE_MASK.
- * string.c (rb_str_scrub): the result should be infected by the
- original string.
+Fri Dec 20 17:03:10 2013 Koichi Sasada <ko1@atdot.net>
-Mon Feb 15 02:05:13 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/ruby.h: rename OBJ_WRITE and OBJ_WRITTEN into
+ RB_OBJ_WRITE and RB_OBJ_WRITTEN.
- * transcode.c (rb_econv_substr_append, econv_primitive_convert):
- the result should be infected by the original string.
+ * array.c, class.c, compile.c, hash.c, internal.h, iseq.c,
+ proc.c, process.c, re.c, string.c, variable.c, vm.c,
+ vm_eval.c, vm_insnhelper.c, vm_insnhelper.h,
+ vm_method.c: catch up this change.
-Mon Feb 15 02:05:13 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Dec 20 16:01:35 2013 Koichi Sasada <ko1@atdot.net>
- * include/ruby/ruby.h: add raw FL macros, which assume always the
- argument object is not a special constant.
+ * include/ruby/ruby.h: add a comment for WB interfaces.
- * internal.h (STR_EMBED_P, STR_SHARED_P): valid only for T_STRING.
+Fri Dec 20 16:00:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c: deal with taint flags directly across String instances.
+ * configure.in: DLDFLAGS is defined in --with-opt-dir handler, so
+ ${DLDFLAGS=} does not work now. use RUBY_APPEND_OPTIONS instead.
+ [ruby-dev:47855] [Bug #9256]
-Mon Feb 15 01:20:08 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Dec 20 14:19:12 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * parse.y (regexp): set_yylval_num sets u1, should use nd_tag
- instead of nd_state. [ruby-core:72638] [Bug #11932]
+ * configure.in (AC_ARG_WITH): use withval directly.
+ fix failure on FreeBSD.
+ http://fb32.rubyci.org/~chkbuild/ruby-trunk/log/20131217T070301Z.diff.html.gz
-Tue Jan 26 21:52:16 2016 Joseph Tibbertsma <josephtibbertsma@gmail.com>
+Fri Dec 20 14:00:01 2013 Aman Gupta <ruby@tmm1.net>
- * gc.c (RVALUE_PAGE_WB_UNPROTECTED): fix a typo of argument name.
- [Fix GH-1221]
+ * include/ruby/ruby.h (struct RClass): add super, remove iv_index_tbl.
+ since RCLASS_SUPER() is commonly used inside while loops, we move it
+ back inside struct RClass to improve cache hits. this provides a
+ small improvement (1%) in hotspots like rb_obj_is_kind_of()
+ * internal.h (struct rb_classext_struct): remove super, add
+ iv_index_table
+ * internal.h (RCLASS_SUPER): update for new location
+ * internal.h (RCLASS_SET_SUPER): ditto
+ * internal.h (RCLASS_IV_INDEX_TBL): ditto
+ * object.c (rb_class_get_superclass): ditto
+ * include/ruby/backward/classext.h (RCLASS_SUPER): ditto
-Mon Jan 18 00:34:41 2016 Koichi Sasada <ko1@atdot.net>
+Fri Dec 20 07:07:35 2013 Eric Hodel <drbrain@segment7.net>
- * vm_insnhelper.c (vm_call_method): should not set fastpath
- with keyword arguments for VM_METHOD_TYPE_ATTRSET type methods.
+ * lib/rubygems: Update to RubyGems master 03d6ae7. Changes include:
- Normally, we can not use keyword arguments for this kind of methods,
- (obj.foo = 1), but we can set alias names for them.
- [Bug #11657]
+ * Fixed typos.
- * test/ruby/test_keyword.rb: add a test for this fix.
+ * Relaxed Gem.ruby test for ruby packagers that do not use `ruby`.
-Wed Dec 23 06:05:50 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems: ditto.
- * parse.y (parser_yylex): allow here documents in labeled
- argument. [ruby-core:72396] [Bug #11849]
+Thu Dec 19 14:03:04 2013 Koichi Sasada <ko1@atdot.net>
-Wed Dec 23 05:52:06 2015 Yuki Yugui Sonoda <yugui@yugui.jp>
+ * gc.c (heap_get_freeobj): improve hot path performance.
- * test/ruby/test_syntax.rb: fix typo in test
+ * gc.c (heap_get_freeobj_from_next_freepage): replace with
+ heap_get_freepage(). It returns freeobj instead of freepage.
+ This is not on hot path.
-Wed Dec 23 05:52:06 2015 Yuki Yugui Sonoda <yugui@yugui.jp>
+Thu Dec 19 12:05:17 2013 Eric Hodel <drbrain@segment7.net>
- * parse.y (parse_percent): Allow %-literals in labeled arg as
- r51624 did for parentheses.
- Fixes [ruby-core:72084] [Bug #11812].
+ * lib/rubygems: Update to RubyGems master af60443. Changes include:
-Mon Dec 21 05:05:54 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * Improved speed of `gem install --ignore-dependencies`.
- * cont.c: fix a double word typo.
- [Bug #11313][ruby-core:69749]
+ * Open read-write for exclusive flock. [ruby-trunk - Bug #9257]
-Mon Dec 21 05:04:18 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * Remove specification before install to prevent infinite loop.
- * ext/tk/lib/multi-tk.rb: fix typos.
- [Bug #11764][ruby-core:71800]
+Thu Dec 19 11:23:49 2013 Aman Gupta <ruby@tmm1.net>
-Wed Dec 16 21:10:19 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * vm_insnhelper.c (vm_call_iseq_setup_normal): simple for loop
+ condition optimization. this area shows up as a hotspot in VM
+ profiles.
- * ext/fiddle/handle.c: check tainted string arguments.
- Patch provided by tenderlove and nobu.
+Thu Dec 19 10:50:13 2013 Koichi Sasada <ko1@atdot.net>
- * test/fiddle/test_handle.rb (class TestHandle): add test for above.
+ * gc.c (newobj_of): don't need to RBASIC_SET_CLASS() which includes WB
+ here because created obj is always YOUNG/INFANT.
-Wed Dec 16 02:38:19 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Dec 19 10:48:37 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (parse_mode_enc): fix buffer overflow.
+ * benchmark/gc/gcbench.rb: check GC::OPTS availability
+ for not MRI 2.1.0.
-Sat Dec 12 17:19:27 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+Thu Dec 19 03:10:30 2013 Aman Gupta <ruby@tmm1.net>
- * doc/NEWS-0.2.2: add description about incompatible change in Hash
- duplicated key overriding policy. [Bug #10315] [Bug #11501]
+ * gc.c (heap_get_freeobj): remove redundant assignment. heap->freelist
+ is set after the while() loop already.
-Fri Dec 11 22:41:15 2015 Eric Wong <e@80x24.org>
+Thu Dec 19 01:54:30 2013 Koichi Sasada <ko1@atdot.net>
- * insns.def (opt_case_dispatch): avoid converting Infinity
- * test/ruby/test_optimization.rb (test_opt_case_dispatch_inf): new
- [ruby-dev:49423] [Bug #11804]'
+ * test/runner.rb: fix commit miss on r44278.
-Thu Dec 10 00:23:07 2015 Rei Odaira <Rei.Odaira@gmail.com>
+Thu Dec 19 00:26:11 2013 Koichi Sasada <ko1@atdot.net>
- * configure.in: pthread_getattr_np is broken on AIX.
- More specifically, the stack address and size returned are
- not correct.
+ * gc.c (garbage_collect_body): lazy_sweep setting should work
+ without USE_RGENGC.
-Thu Dec 10 00:19:18 2015 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Dec 18 23:31:04 2013 Koichi Sasada <ko1@atdot.net>
- * common.mk (update-gems): use BASERUBY instead of RUNRUBY.
+ * gc.c (gc_profile_dump_major_reason): fix this function because major_reason
+ can be OR of multiple reasons.
-Wed Dec 9 01:49:13 2015 Eric Wong <e@80x24.org>
+ * gc.c (gc_profile_dump_on): ditto.
- * insns.def (opt_case_dispatch): check Float#=== redefinition
- * test/ruby/test_optimization.rb (test_opt_case_dispatch): new
- [ruby-core:71920] [Bug #11784]
+Wed Dec 18 17:03:00 2013 Koichi Sasada <ko1@atdot.net>
-Wed Dec 9 01:46:23 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_profile_record_get): should return an empty array
+ when profiling is active.
- * ruby_atomic.h (ATOMIC_SIZE_CAS): fix the argument order of
- InterlockedCompareExchange64. new value and then old value is
- the last.
+Wed Dec 18 16:49:40 2013 Koichi Sasada <ko1@atdot.net>
-Wed Dec 9 01:28:54 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_profile_clear, gc_profile_enable): remove rest_sweep().
- * encoding.c (enc_m_loader): defer finding encoding object not to
- be infected by marshal source. [ruby-core:71793] [Bug #11760]
+ * gc.c: check objspace->profile.current_record before inserting
+ profiling record by new macro gc_prof_enabled().
- * marshal.c (r_object0): enable compatible loader on USERDEF
- class. the loader function is called with the class itself,
- instead of an allocated object, and the loaded data.
+Wed Dec 18 14:32:06 2013 Koichi Sasada <ko1@atdot.net>
- * marshal.c (compat_allocator_table): initialize
- compat_allocator_tbl on demand.
+ * vm_exec.h (VM_DEBUG_STACKOVERFLOW): added.
+ disable stack overflow check for every stack pushing as default.
- * object.c (rb_undefined_alloc): extract from rb_obj_alloc.
+ * vm_exec.c (vm_stack_overflow_for_insn): ditto.
-Wed Dec 9 01:24:57 2015 Rei Odaira <Rei.Odaira@gmail.com>
+Wed Dec 18 10:00:22 2013 Eric Hodel <drbrain@segment7.net>
- * ext/-test-/file/fs.c: need to include sys/statvfs.h
- to use statvfs().
+ * lib/rubygems: Update to RubyGems master d8f12e2. This increases the
+ speed of `gem install --ignore-dependencies` which helps bundler
+ tests.
+ * test/rubygems: ditto.
- * ext/-test-/file/extconf.rb: check the existence of
- sys/statvfs.h
+Wed Dec 18 09:00:17 2013 Koichi Sasada <ko1@atdot.net>
-Fri Dec 4 04:46:33 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_gc.rb (test_expand_heap): allow +/-1 diff.
- * sprintf.c (rb_str_format): fix wrong shifting position in
- Rational conversion when not at the beginning of the result.
- [ruby-core:71806] [Bug #11766]
+Tue Dec 17 23:44:15 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Fri Dec 4 02:42:37 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_io.rb: fix duplicated test name.
- * range.c (range_to_s): should be infected by the receiver.
- str2 infects by appending. [ruby-core:71811] [Bug #11767]
+Tue Dec 17 20:15:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 2 03:17:01 2015 NARUSE, Yui <naruse@ruby-lang.org>
+ * hash.c (rb_hash_reject): revert to deprecated behavior, with
+ warnings, due to compatibility for HashWithDifferentAccess.
+ [ruby-core:59154] [Bug #9223]
- * ext/readline/extconf.rb: call dir_config("libedit")
- if --enable-libedit is spcified. [Bug #11751]
- patched by John Hein
+Tue Dec 17 17:30:56 2013 Akinori MUSHA <knu@iDaemons.org>
-Wed Dec 2 02:59:42 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * misc/ruby-electric.el: Import version 2.1.1 from
+ https://github.com/knu/ruby-electric.el.
- * parse.y (parser_here_document): store dispatched result of
- on_tstring_content at the last fragment of a here document.
+ * ruby-electric-delete-backward-char: Enable support for number
+ prefix.
-Tue Dec 1 02:52:17 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * ruby-electric-curlies: Fix electric operation after an open
+ curly.
- * test/ruby/test_gc.rb: merge partially r52391 to get rid of CI error.
+Tue Dec 17 16:19:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Dec 1 02:27:41 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_trace.c (rb_postponed_job_flush): isolate exceptions in
+ postponed jobs and restore outer ones. based on a patch by
+ tarui. [ruby-core:58652] [Bug #9168]
- * io.c (rb_io_each_codepoint): raise an exception at incomplete
- character before EOF when conversion takes place. [Bug #11444]
+Tue Dec 17 10:48:04 2013 Aman Gupta <ruby@tmm1.net>
-Sun Nov 29 18:02:44 2015 Shugo Maeda <shugo@ruby-lang.org>
+ * configure.in (RUBY_DTRACE_POSTPROCESS): Fix compatibility with
+ systemtap on linux. stap requires `dtrace -G` post-processing, but
+ the dtrace compatibility wrapper is very strict about probes.d
+ syntax.
- * io.c (argf_getpartial): should not resize str if the second
- argument is not given.
- [ruby-core:71668] [Bug #11738]
+Tue Dec 17 05:18:17 2013 Eric Hodel <drbrain@segment7.net>
-Sun Nov 29 17:48:39 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 1c5f4b3. Allows rubygems
+ repackagers to disable backward-compatible shared gem directory
+ behavior.
+ * test/rubygems: ditto.
- * vm_eval.c (local_var_list_add): skip internal local variable
- name by its type but not if it has a name. internal local
- variable names are just unique per frame, not globally.
- [ruby-core:71437] [Bug #11674]
+Tue Dec 17 05:14:35 2013 Eric Hodel <drbrain@segment7.net>
-Sun Nov 29 17:13:16 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * NEWS (RDoc): Update version number so I don't have to change it
+ for the final release.
- * io.c (rb_io_each_codepoint): read more data when read partially.
- [ruby-core:70379] [Bug #11444]
+Mon Dec 16 19:19:19 2013 Koichi Sasada <ko1@atdot.net>
-Sun Nov 29 16:46:25 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * gc.c (rb_objspace_markable_object_p): should check special_const_p
+ first (by is_markable_object()).
- * lib/net/http.rb: set hostname before call ossl_ssl_set_session.
- [Bug #11401][ruby-core:70152][fix GH-964] Patch by @mkarnebeek
+Mon Dec 16 19:12:54 2013 Koichi Sasada <ko1@atdot.net>
-Sun Nov 29 16:33:30 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/objspace.c (reachable_object_from_root_i): use
+ compare_by_identity hash to avoid hash modify problem
+ during iteration.
+ [Bug #9252]
- * transcode.c (rb_econv_open0): rb_econv_t::source_encoding_name
- and rb_econv_t::destination_encoding_name should refer static
- strings always or NULL. [ruby-core:70247] [Bug #11416]
+ * ext/objspace/objspace.c (reachable_objects_from_root): ditto.
-Sun Nov 29 16:11:32 2015 Eric Wong <e@80x24.org>
+Mon Dec 16 18:16:28 2013 Koichi Sasada <ko1@atdot.net>
- * iseq.c (iseq_data_to_ary): dump kw_arg as symbol
- * test/-ext-/iseq_load/test_iseq_load.rb: test kw_arg roundtrip
- [ruby-core:69891] [Bug #11338]
+ * gc.c (gc_verify_internal_consistency): should not use
+ rb_objspace_each_objects() because it call rest_sweep().
-Sun Nov 29 02:55:56 2015 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Mon Dec 16 18:07:30 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (__has_feature): move into internal.h.
+ * gc.c (rb_objspace_markable_object_p): fix last commit (build error).
- * internal.h (__has_feature): ditto.
+Mon Dec 16 18:04:28 2013 Koichi Sasada <ko1@atdot.net>
- * internal.h (__has_extension): new macro.
+ * gc.c (rb_objspace_markable_object_p): it should be live objects.
- * internal.h (STATIC_ASSERT): use _Static_assert with
- clang. [ruby-core:69931] [Bug #11343]
+Mon Dec 16 18:00:51 2013 Koichi Sasada <ko1@atdot.net>
-Sat Nov 28 06:28:55 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (rb_objspace_each_objects): should not clear dont_lazy_sweep
+ flag in nested case.
- * parse.y (literal_concat_gen, evstr2dstr_gen): keep literal
- encoding beginning with an interpolation same as the source file
- encoding. [ruby-core:70703] [Bug #11519]
+Mon Dec 16 16:40:35 2013 Koichi Sasada <ko1@atdot.net>
-Sat Nov 28 06:12:32 2015 NARUSE, Yui <naruse@ruby-lang.org>
+ * vm_method.c (rb_method_entry_make): fix WB miss.
+ Note that rb_method_entry_t::klass is not constified.
+ We may constify this field.
- * ext/openssl/ossl_ssl.c (ssl_npn_select_cb): explicitly raise error
- in ext/openssl instead of OpenSSL itself because LibreSSL
- silently truncate the selected protocol name by casting the length
- from int to unsigned char. [Bug #11369]
- Patch by Jeremy Evans <merch-redmine@jeremyevans.net>
+ * test/ruby/test_alias.rb: add a test.
-Sat Nov 28 05:50:58 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Dec 16 14:14:22 2013 Koichi Sasada <ko1@atdot.net>
- * vm_eval.c (send_internal): set method_missing_reason before
- invoking overriding method_missing method so that the default
- method_missing can achieve it properly.
- [ruby-core:68515] [Bug #10969]
+ * gc.c: use gc_verify_internal_consistency() instead of
+ gc_check_before_marks_i() for check consistency
+ on RGENGC_CHECK_MODE >= 2.
-Sat Nov 28 05:47:27 2015 Rei Odaira <Rei.Odaira@gmail.com>
+Mon Dec 16 14:01:48 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/ruby/test_symbol.rb (test_symbol_fstr_leak): add a warm-up
- code and check RSS to avoid false positive on AIX and false
- negative on Mac OS X. [Bug #10686]
+ * process.c (make_clock_result): add :second as a unit for
+ Process.clock_gettime.
-Sat Nov 28 05:47:27 2015 Rei Odaira <Rei.Odaira@gmail.com>
+Mon Dec 16 13:10:54 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_symbol.rb: avoid a false positive in AIX.
+ * gc.c: introduce GC.verify_internal_consistency method to verify GC
+ internal data structure.
-Sat Nov 28 05:35:28 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ Now this method only checks generation (old/young) consistency.
- * test/objspace/test_objspace.rb
- (test_trace_object_allocations_start_stop_clear): clear object
- allocation table first to get rid of erroneous detection for obj3.
- [ruby-dev:49095] [Bug #11271]
+Mon Dec 16 11:49:26 2013 Aman Gupta <ruby@tmm1.net>
-Sat Nov 28 05:21:06 2015 Koichi Sasada <ko1@atdot.net>
+ * gc.c (gc_info_decode): Fix build errors when compiled with
+ RGENGC_ESTIMATE_OLDMALLOC=0
+ * gc.c (objspace_malloc_increase): ditto
- * insns.def (defined): skip respond_to_missing? when
- a method is available.
- [Bug #11211]
+Sun Dec 15 13:38:29 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_defined.rb: add a test for this fix.
+ * ext/objspace/objspace.c (reachable_object_from_root_i):
+ reachable objects should not include categories and
+ category_objects because it is noisy information.
-Wed Nov 25 01:05:29 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ In fact, objects created after calling
+ ObjectSpace.reachable_objects_from_root should not be included
+ as a returning hash objects. Currently, mswin64 platform has a
+ problem because of this behavior. Should we trace new objects?
- * ext/digest/sha1/sha1ossl.c: fix defs.h path to catch up changes in
- r52739.[Bug #3231]
+Sun Dec 15 07:09:28 2013 Eric Hodel <drbrain@segment7.net>
- * ext/digest/rmd160/rmd160ossl.c: ditto.
+ * lib/rdoc: Update to RDoc master 263a9e5. This improves the
+ accessibility of the search box.
-Wed Nov 25 00:54:15 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Dec 14 17:39:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (kwd_append): fix segv after invalid keyword argument,
- preceding keyword list is NULL when syntax error is there.
- [ruby-core:71356] [Bug #11663]
+ * vm_insnhelper.c (vm_callee_setup_arg_complex): count post
+ arguments as mandatory arguments. [ruby-core:57706] [Bug #8993]
-Wed Nov 25 00:47:07 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * vm_insnhelper.c (vm_yield_setup_block_args): ditto.
- * lib/ipaddr.rb, test/test_ipaddr.rb: Reject invalid address contained
- EOL string. Patch by @kachick [fix GH-942][Bug #11513]
+Sat Dec 14 16:26:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Nov 25 00:32:44 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (rubylibprefix): replace exec_prefix as well as
+ bindir and libdir. a patch by kimuraw (Wataru Kimura) at
+ [ruby-dev:47852]. [Bug #9160]
- * compile.c (iseq_build_from_ary_body): register cdhash to the
- iseq constant body instead of compile time mark array, not to
- get GCed. [ruby-core:70708] [Feature #8543]
+Sat Dec 14 14:42:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Nov 25 00:14:28 2015 NARUSE, Yui <naruse@ruby-lang.org>
+ * lib/logger.rb (lock_shift_log): no need to rotate the log file
+ if it has been rotated by another process. based on the patch
+ by no6v (Nobuhiro IMAI) in [ruby-core:58620]. [Bug #9133]
- * ext/digest/*/*.[ch]: include ruby.h before digest.h to avoid
- includeing ext/digest/extconf.h. [Bug #3231]
- https://msdn.microsoft.com/library/36k2cdd4.aspx
+Sat Dec 14 13:01:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/digest/*/extconf.rb: remove ext/digest from include search path
- to avoid confusion of cl.exe.
+ * proc.c (mnew_from_me): method by respond_to_missing? should be
+ owned by the original class.
- * ext/digest/*/*.[ch]: explicitly specify def.h's path.
+Sat Dec 14 11:55:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Nov 25 00:03:42 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * lib/scanf.rb (IO#scanf): fix mistaken use of rescue modifier.
+ a patch by Mon_Ouie at [ruby-core:52813]. [Bug #7940]
- * Added missing reference of GitHub
+Sat Dec 14 11:44:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Nov 25 00:03:42 2015 Trevor Rowe <trevorrowe@gmail.com>
+ * util.c (ruby_qsort): fix potential stack overflow on a large
+ machine. based on the patch by Conrad Irwin <conrad.irwin AT
+ gmail.com> at [ruby-core:51816]. [Bug #7772]
- * lib/net/http.rb: Fixed regression for Net::HTTP::PUT with "Expect-100"
- header. [fix GH-949]
- * test/net/http/test_http.rb: added test.
+Sat Dec 14 11:25:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Nov 23 00:19:51 2015 Koichi Sasada <ko1@atdot.net>
+ * object.c (rb_mod_const_defined): support nested class path as
+ well as const_get. [Feature #7414]
- * vm_insnhelper.c (vm_invoke_block): we should not expect ci->argc is
- stable after invoking a block. [Bug #11451]
+Sat Dec 14 01:31:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_yield.rb: add a test. This test script is given by
- Alex Dowad.
+ * eval.c (rb_rescue2): reuse tags pushed for body proc to protect
+ rescue proc too.
-Thu Nov 19 01:06:07 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Dec 14 01:15:51 2013 Masaya Tarui <tarui@ruby-lang.org>
- * load.c (rb_load_internal0): stop separating exits at loading
- from exits from execution. TAG_FATAL is the only case that
- `errinfo` is a Fixnum, and should continue to exit by JUMP_TAG
- but not raising as an ordinary exception.
- [ruby-core:70169] [Bug #11404]
+ * gc.c (wmap_final_func): Bugfix. Should update *value to new pointer.
-Thu Nov 19 01:06:07 2015 Alex Dowad <alexinbeijing@gmail.com>
+Sat Dec 14 01:05:46 2013 Tanaka Akira <akr@fsij.org>
- * load.c (rb_load_internal0): extra check before returning
- TAG_RAISE when a non-local transfer of control happens while
- loading and parsing a Ruby source file.
- [ruby-core:70169] [Bug #11404]
+ * ext/socket/lib/socket.rb: Don't test $! in "ensure" clause because
+ it may be set before the body.
+ Reported by ko1 and mrkn. [ruby-core:59088] [Bug #9247]
-Thu Nov 19 01:06:07 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/cgi/core.rb: Ditto.
- * load.c (rb_load_internal0): do not raise any exceptions but
- return the result tag state.
+ * lib/drb/ssl.rb: Ditto.
- * load.c (rb_load_protect): reduce nested EXEC_TAGs.
+Sat Dec 14 00:34:31 2013 Naohisa Goto <ngotogenome@gmail.com>
-Thu Nov 19 00:41:09 2015 NARUSE, Yui <naruse@ruby-lang.org>
+ * internal.h (ruby_sized_xrealloc2): fix typo introduced in r44117,
+ which cause compile error on Solaris.
- * enc/euc_jp.c (mbc_case_fold): check given string is valid or not,
- and if invalid, return 1. [Bug #11486]
+Sat Dec 14 00:22:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 19 00:15:23 2015 Zachary Scott <zzak@ruby-lang.org>
+ * thread.c: (exec_recursive): use rb_catch_protect() instead of
+ rb_catch_obj() and PUSH_TAG(), and reduce pushing tags and
+ machine stack usage.
- * ext/openssl/ossl_pkey.c: Merge ruby/openssl@b9ea8ef [Bug #10735]
+Sat Dec 14 00:18:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 19 00:01:14 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * proc.c (mnew_from_me): achieve the original defined_class from
+ prepended iclass, to fix inherited owner.
- * io.c (argf_next_argv): check ARGV element type, and try
- conversion if necessary. [ruby-core:71140] [Bug #11610]
+ * proc.c (method_owner): return the defined class, but not the
+ class which the method object is created from.
-Wed Nov 18 23:29:32 2015 Aaron Patterson <tenderlove@ruby-lang.org>
+Fri Dec 13 22:29:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_ssl.c (ossl_ssl_method_tab): Only add SSLv3 support
- if the SSL library supports it. Thanks Kurt Roeckx <kurt@roeckx.be>
- [Bug #11376]
+ * proc.c (method_owner): return the class where alias is defined, not
+ the class original method is defined.
- * ext/openssl/extconf.rb: check for SSLv3 support in the SSL
- implementation.
+ * vm_method.c (rb_method_entry_make, rb_alias): store the originally
+ defined class in me. [Bug #7993] [Bug #7842] [Bug #9236]
- * test/openssl/test_ssl.rb (class OpenSSL): Skip tests that need SSLv3
- if there is no support.
+ * vm_method.c (rb_method_entry_get_without_cache): cache included
+ module but not iclass.
-Mon Nov 16 03:39:59 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+Fri Dec 13 16:27:17 2013 Aman Gupta <ruby@tmm1.net>
- * tool/runruby.rb: rubyspec now requires other FDs not to be closed
- since 7b6ce1fee.
+ * gc.c (gc_info_decode): Use :major_by=>:nofree as fallback reason
+ when other trigger conditions are present.
-Sun Nov 8 23:30:56 2015 Koichi Sasada <ko1@atdot.net>
+Fri Dec 13 13:25:30 2013 Koichi Sasada <ko1@atdot.net>
- * vm_trace.c (rb_threadptr_exec_event_hooks_orig):
- maintain trace_running counter on internal events.
+ * error.c: add Exception#backtrace_locations.
+ Now, there are no setter and independent from Exception#backtrace.
+ [Feature #8960]
- This patch is made by Takashi Kokubun <takashikkbn@gmail.com>.
- [Bug #11603] https://github.com/ruby/ruby/pull/1059
+ * eval.c (setup_exception): set backtrace locations for `bt_location'
+ special attribute.
-Sun Nov 1 03:52:41 2015 Aaron Patterson <tenderlove@ruby-lang.org>
+ * vm_backtrace.c (rb_backtrace_to_location_ary): added.
- * test/openssl/test_ssl_session.rb: Fix tests so that they take in to
- account OpenSSL installations that have SSLv3 disabled by default.
- Thanks Jeremy Evans <code@jeremyevans.net> for the patches.
- [Bug #11366] [Bug #11367]
+ * internal.h: ditto.
-Sun Nov 1 03:40:43 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * test/ruby/test_backtrace.rb: add a test for
+ Exception#backtrace_locations.
- * test/openssl/test_ssl_session.rb (OpenSSL#test_ctx_client_session_cb):
- fix test failure with OpenSSL disabled SSLv3 protocol.
- [ruby-core:63772] [Bug #10046]
+Fri Dec 13 12:01:07 2013 Koichi Sasada <ko1@atdot.net>
-Tue Oct 27 23:58:32 2015 Koichi Sasada <ko1@atdot.net>
+ * gc.c (garbage_collect_body): use rb_bug() and explicit error message
+ instead of using assert().
+ [Bug #9222]
- * vm.c (hook_before_rewind): prevent kicking :return event while
- finishing vm_exec func because invoke_block_from_c() kick a :return
- event for bmethods.
- [Bug #11492]
+Fri Dec 13 11:52:41 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_settracefunc.rb: add a test.
+ * array.c: fix comment to remove the word "shady".
-Tue Oct 27 23:38:26 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * variable.c: ditto.
- * configure.in: check for libunwind.h, which is not available in
- very old OS X SDK. [ruby-core:71080] [Bug #11591]
+Fri Dec 13 11:33:55 2013 Koichi Sasada <ko1@atdot.net>
-Tue Oct 27 23:32:51 2015 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * gc.c: rename *shady* func/macros.
+ * RVALUE_RAW_SHADY() -> RVALUE_WB_PROTECTED_RAW()
+ * RVALUE_SHADY() -> RVALUE_RAW_SHADY()
+ * rgengc_check_shady() -> rgengc_check_relation().
+ And fix some messages using "shady" to "non-WB-protected".
- * test/drb/test_drb.rb: Run Rinda/DRb tests on localhost. [Fix GH-1027]
- patch by voxik.
+Fri Dec 13 10:04:23 2013 Eric Hodel <drbrain@segment7.net>
- * test/rinda/test_rinda.rb: ditto
+ * lib/rubygems/request_set/lockfile.rb: Import RubyGems master a8d0669
+ with a 1.8.7 compatibility fix.
+ * test/rubygems/test_gem_request_set_lockfile.rb: ditto.
-Tue Oct 6 01:29:02 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Dec 13 09:50:49 2013 Eric Hodel <drbrain@segment7.net>
- * parse.y (IS_BEG): include labeled argument state, which was
- EXPR_LABELARG. [ruby-dev:49221] [Bug #11456]
+ * lib/rubygems: Update to RubyGems master ddac51f. Changes:
-Tue Oct 6 01:29:02 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * Allow override for the shared gem installation directory for
+ rubygems packagers.
- * parse.y: fix syntax error at do-block after a conditional
- operator. separate label-allowed and after-a-label states from
- others as bit flags. [ruby-dev:48790] [Bug #10653]
+ * Lock gem cache files for read and write to improve thread safety.
-Mon Oct 5 03:29:23 2015 Tanaka Akira <akr@fsij.org>
+ * Use io/console when available.
- * enum.c (nmin_filter): Fix limit value.
- patch by Helder Pereira.
- [Bug #11471] [ruby-core:70477]
+ * Minor cleanup.
-Wed Sep 30 03:44:36 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems: ditto.
- * lib/rss/rss.rb (Time#w3cdtf): fix zero-trimmed width of fraction
- digits. [ruby-core:70667] [Bug #11509]
+Fri Dec 13 08:15:31 2013 Aman Gupta <ruby@tmm1.net>
-Wed Sep 30 03:34:25 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * class.c (include_modules_at): use RCLASS_M_TBL_WRAPPER for
+ equality checks. this avoids an unnecessary deference inside a tight
+ loop, fixing a performance regression from r43973.
+ * object.c (rb_obj_is_kind_of): ditto.
+ * object.c (rb_class_inherited_p): ditto.
- * re.c (rb_memsearch_wchar, rb_memsearch_qchar): test matching
- till the end of string. [ruby-core:70592] [Bug #11488]
+Wed Dec 13 02:00:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * test/ruby/test_m17n.rb (test_include?, test_index): add tests by
- Tom Stuart.
+ * ext/bigdecimal/bigdecimal.c (VpSetPTR): fix for limitation of the resulting
+ precision.
+ [ruby-core:50269] [Bug #7458]
-Wed Sep 30 03:24:29 2015 NARUSE, Yui <naruse@ruby-lang.org>
+ * test/bigdecimal/test_bigdecimal.rb (test_limit): add tests for the above
+ change.
- * thread_pthread.c (reserve_stack): ensure the memory is really
- allocated. [Bug #11457]
+Wed Dec 13 01:56:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Tue Aug 25 01:01:01 2015 Koichi Sasada <ko1@atdot.net>
+ * ext/bigdecimal/bigdecimal.c (VpAddAbs): put out a conditional branch from
+ the inside of while-loop.
- * insns.def (defineclass): introduce an ad-hoc patch to avoid
- an issue reported on [Bug #10871].
+ * ext/bigdecimal/bigdecimal.c (VpSubAbs): ditto.
- This patch does not fix completely. For example, method definition
- in a block (like 1.times{def ...; end}) still causes same issue.
- To solve all, we need a huge patch and it seems difficult for
- stable branch.
+Wed Dec 13 01:53:00 2013 Kenta Murata <mrkn@mrkn.jp>
- Use Ruby 2.3 and later to solve this issue completely.
- (See [Bug #10943])
+ * ext/bigdecimal/bigdecimal.c (VPrint): be a static function, support another
+ dump formats, and add more information of the given bigdecimal.
-Tue Aug 18 22:52:50 2015 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.h: ditto.
- * tool/downloader.rb: support old versions of ruby.
+Wed Dec 11 16:45:58 2013 Koichi Sasada <ko1@atdot.net>
- * tool/downloader.rb: now can download gems by http if openssl is not
- available (this may be danger!)
+ * eval.c (rb_raise_jump): call c_return hook immediately after
+ popping `raise' frame.
+ Patches by deivid (David Rodriguez). [Bug #8886]
-Tue Aug 18 20:10:13 2015 Tanaka Akira <akr@fsij.org>
+ * test/ruby/test_settracefunc.rb: catch up this fix.
- * numeric.c (Init_Numeric): Fix document for Float::MIN and
- Float::EPSILON.
+Wed Dec 11 16:01:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Aug 17 23:07:47 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * hash.c (rb_hash_reject): return a plain hash, without copying
+ the class, default value, instance variables, and taintedness.
+ they had been copied just by accident.
+ [ruby-core:59045] [Bug #9223]
- * lib/rubygems.rb: bump version to 2.4.5.1. this version fixed
- CVE-2015-3900.
- * lib/rubygems/remote_fetcher.rb: ditto.
- * test/rubygems/test_gem_remote_fetcher.rb: added testcase for CVE-2015-3900
+Wed Dec 11 15:36:15 2013 Aman Gupta <ruby@tmm1.net>
-Mon Aug 17 23:00:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (iseq_specialized_instruction): emit opt_aset instruction
+ to optimize Hash#[]= and Array#[]= when called with Fixnum argument.
+ [Bug #9227] [ruby-core:58956]
- * ext/win32/lib/win32/registry.rb (API#SetValue): data size should
- be in bytes, not in chars. [ruby-core:70365] [Bug #11439]
+Wed Dec 11 04:54:03 2013 Eric Hodel <drbrain@segment7.net>
-Mon Aug 17 23:00:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master ec8ed22. Notable changes
+ include:
- * ext/win32/lib/win32/registry.rb (API#SetValue): add terminator
- size, not 1 byte. [ruby-core:70365] [Bug #11439]
+ * Renamed extension_install_dir to extension_dir (backwards
+ compatible).
-Sun Aug 16 03:14:04 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * Fixed creation of gem.deps.rb.lock file from
+ TestGemRequestSet#test_install_from_gemdeps_install_dir
- * re.c (rb_memsearch): should match only char boundaries in wide
- character encodings. [ruby-core:70220] [Bug #11413]
+ * Fixed a typo and some documentation.
-Sun Aug 16 03:00:44 2015 Eric Wong <e@80x24.org>
+ * test/rubygems: ditto.
- * symbol.h (struct RSymbol): add hashval field
- * symbol.c (dsymbol_alloc): setup hashval field once
- * hash.c (rb_any_hash): return RSymbol->hashval directly
- * common.mk: hash.o depends on symbol.h
- Thanks to Bruno Escherl <bruno@escherl.net> for the bug report
- [ruby-core:70129] [Bug #11396]
+Wed Dec 11 03:18:08 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
-Fri Aug 14 16:30:43 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * insns.def: Fix optimization bug of Float#/ [Bug #9238]
- * transcode.c (rb_econv_set_replacement): target encoding name can
- be empty now. [ruby-core:69841] [Bug #11324]
+Tue Dec 10 23:58:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Aug 14 15:24:12 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/date/date_strptime.c (date__strptime_internal): unset
+ case-insensitive flag for [:alpha:], which already implies both
+ cases, to get rid of backtrack explosion. [ruby-core:58984]
+ [Bug #9221]
- * hash.c (rb_any_hash): fix Float hash. rb_dbl_hash() returns a
- Fixnum, but not a long. [Bug #9381]
+Tue Dec 10 23:44:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Aug 14 15:09:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (rb_ary_hash): add salt to differentiate false and empty
+ array. [ruby-core:58993] [Bug #9231]
- * ext/json/parser/parser.rl: raise with messages in UTF-8
- encoding. [ruby-core:67386] [Bug #10705]
+ * hash.c (rb_any_hash, rb_hash_hash): ditto.
-Fri Aug 14 00:44:34 2015 Eric Wong <e@80x24.org>
+Tue Dec 10 18:16:09 2013 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
- * io.c (rb_io_oflags_modestr): handle O_TRUNC correctly
- * test/ruby/test_io.rb (test_reopen_stdio): new test
- Patch-by: cremno phobia <cremno@mail.ru>
- [ruby-core:69779] [Bug #11319]
+ * man/ruby.1: [DOC] Use www.ruby-toolbox.com instead of RAA.
-Thu Aug 13 01:25:26 2015 Benoit Daloze <eregontp@gmail.com>
+Tue Dec 10 17:21:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/net/ftp.rb (makeport): close the TCPServer
- when sending the port fails.
+ * gc.c (wmap_finalize, wmap_aset_update): use simple malloced array
+ instead of T_ARRAY, to reduce GC pressure.
- * test/net/ftp/test_ftp.rb: test for above.
+Tue Dec 10 15:56:48 2013 Aman Gupta <ruby@tmm1.net>
-Thu Aug 13 01:03:13 2015 Kazuki Tsujimoto <kazuki@callcc.net>
+ * gc.c (reflist_add): revert changes from r44109. it is unnecessary
+ after r44113
+ * gc.c (allrefs_i): fix whitespace
+ * gc.c (allrefs_roots_i): fix whitespace
- * lib/net/http/response.rb (Net::HTTPResponse::Inflater#finish):
- fix a bug that empty gzipped response body causes Zlib::BufError.
- [ruby-core:68846] [Bug #11058]
+Tue Dec 10 15:46:03 2013 Koichi Sasada <ko1@atdot.net>
- * test/net/http/test_httpresponse.rb: tests for the above.
+ * gc.c (allrefs_add): push obj only if allrefs table doesn't have
+ obj.
-Thu Aug 13 01:03:13 2015 Kazuki Tsujimoto <kazuki@callcc.net>
+ * gc.c (allrefs_roots_i): ditto.
- * lib/net/http/response.rb (Net::HTTPResponse#inflater):
- fix TypeError. An exception object might be nil.
- [ruby-core:68846] [Bug #11058]
+Tue Dec 10 15:28:10 2013 Koichi Sasada <ko1@atdot.net>
-Thu Aug 13 00:03:24 2015 Aaron Patterson <tenderlove@ruby-lang.org>
+ * gc.c (RGENGC_CHECK_MODE): separate checkers to different modes.
+ * 2: enable generational bits check (for debugging)
+ * 3: enable livness check
+ * 4: show all references
- * .travis.yml: update libssl before running tests.
- Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for figuring out the
- travis settings!
+Tue Dec 10 15:15:37 2013 Koichi Sasada <ko1@atdot.net>
-Thu Aug 13 00:03:24 2015 Aaron Patterson <tenderlove@ruby-lang.org>
+ * gc.c (gc_marks_check): disable GC during checking and
+ restore malloc_increase info.
- * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): raise a more
- helpful exception when verifying the peer connection and an
- anonymous cipher has been selected. [ruby-core:68330] [Bug #10910]
- Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for the patch.
+Tue Dec 10 14:41:53 2013 Aman Gupta <ruby@tmm1.net>
- * test/openssl/test_ssl.rb (class OpenSSL): test for change
+ * gc.c (reflist_add): return 0 if reference already exists
+ * gc.c (allrefs_add): return 1 on newly added references
+ * gc.c (allrefs_i): follow references to construct complete object
+ graph. before this patch, RGENGC_CHECK could fail to verify some WB
+ miss issues. [Bug #9226] [ruby-core:58959]
-Wed Aug 12 23:57:01 2015 NARUSE, Yui <naruse@ruby-lang.org>
+Tue Dec 10 11:20:56 2013 Aman Gupta <ruby@tmm1.net>
- * ext/date/extconf.rb: try_cflags("-std=iso9899:1999") [Bug #10906]
- ruby itself (including numeric.c) is built with strict compile
- options including -std=iso9899:1999, but ext/date is not.
- By the way -std=iso9899:1999 is not only a warning option but also
- changes behavior like MACRO definitions for example INFINITY.
- gcc on Solaris affect this.
+ * ext/objspace/objspace_dump.c (dump_object): include fstring flag on
+ strings. include gc flags (old, remembered, wb_protected) on all objects.
+ * ext/objspace/objspace_dump.c (Init_objspace_dump): initialize lazy
+ IDs before first use.
+ * gc.c (rb_obj_gc_flags): new function to retrieve object flags
+ * internal.h (RB_OBJ_GC_FLAGS_MAX): maximum flags allowed for one obj
+ * test/objspace/test_objspace.rb (test_dump_flags): test for above
+ * test/objspace/test_objspace.rb (test_trace_object_allocations):
+ resolve name before dump (for rb_class_path_cached)
-Wed Aug 12 23:53:39 2015 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Dec 10 07:48:29 2013 Aman Gupta <ruby@tmm1.net>
- * win32/win32.c (waitpid): return immediately if interrupted.
- reported by <takkanm AT gmail.com> [ruby-dev:49176] [Bug #11340]
+ * vm_method.c (rb_clear_method_cache_by_class): fire
+ ruby::method-cache-clear probe on global or klass-level method cache
+ clear [Bug #9190]
+ * probes.d (provider ruby): new dtrace probe
+ * doc/dtrace_probes.rdoc: docs for new probe
+ * test/dtrace/test_method_cache.rb: test for new probe
-Wed Aug 12 01:05:58 2015 Jeremy Evans <merch-redmine@jeremyevans.net>
+Tue Dec 10 06:14:11 2013 Eric Hodel <drbrain@segment7.net>
- * test/openssl/test_ssl.rb: Fix LocalJumpErrors being raised
- in OpenSSL tests. [ruby-core:70020][Bug #11368]
+ * ext/.document: Remove curses from documentable directories.
-Wed Aug 12 00:54:29 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Dec 10 04:55:36 2013 Zachary Scott <e@zzak.io>
- * array.c (rb_ary_repeated_permutation): fix buffer size, ALLOCV_N
- already multiplies element size.
+ * ext/openssl/lib/openssl/digest.rb: Deprecate OpenSSL::Digest::Digest
+ [Fixes GH-446] https://github.com/ruby/ruby/pull/446
-Tue Aug 11 01:51:53 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+Tue Dec 10 00:41:42 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * lib/timeout.rb (ExitException): leave Timeout::ExitException as an
- alias of Timeout::Error for backward compatibility in stable branch.
- [ruby-dev:49179] [Bug #11344]
+ * ext/thread/thread.c: [DOC] add call-seq alias for Queue#enq, #<<, etc.
-Tue Aug 11 01:51:53 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/thread/thread.c (Init_thread): use rb_define_alias instead of
+ rb_alias to document alias.
- * lib/timeout.rb (ExitException): removed internal exception class
- and use Timeout::Error instead, as using throw/catch to isolate
- each timeouts now. [ruby-dev:49179] [Bug #11344]
+Mon Dec 9 20:00:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Tue Aug 11 01:37:28 2015 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * internal.h (RCLASS_SERIAL): Add RCLASS_SERIAL as a convenience
+ accessor for RCLASS_EXT(klass)->class_serial.
- * test/net/http/test_httpresponse.rb
- (HTTPResponseTest#test_read_body_content_encoding_deflate_uppercase):
- fix a failure without zlib.
+ * class.c, vm_insnhelper.c, vm_method.c: Use RCLASS_SERIAL
-Tue Aug 11 01:37:28 2015 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Dec 9 19:50:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * lib/net/http/response.rb (inflater): CONTENT_ENCODING can be upper
- case. [ruby-core:69670] [Bug #11285] patched by Andy Chu
+ * compile.c, insns.def, test/ruby/test_rubyvm.rb, vm.c, vm_core.h,
+ vm_insnhelper.c, vm_insnhelper.h, vm_method.c: Rename method_serial
+ to global_method_state and constant_serial to global_constant_state
+ after discussion with ko1.
-Tue Aug 11 01:21:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Dec 9 18:50:43 2013 Aman Gupta <ruby@tmm1.net>
- * vm.c (m_core_hash_merge_ptr): copy the arguments to the machine
- stack before rewinding the control frame pointer and leaving the
- arguments outside valid region of the value stack.
- [ruby-core:69969] [Bug #11352]
+ * hash.c (rb_hash_replace): fix segv on `{}.replace({})` introduced
+ in r44060 [Bug #9230] [ruby-core:58991]
+ * test/ruby/test_hash.rb: regression test for above
- * vm.c (REWIND_CFP): keep the arguments region inside the valid
- value stack. [ruby-core:69969] [Bug #11352]
+Mon Dec 9 18:10:10 2013 Koichi Sasada <ko1@atdot.net>
-Tue Aug 11 01:11:02 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm.c (vm_stat): renamed from ruby_vm_stat.
+ Should not use ruby_ prefix here.
- * string.c (rb_str_reverse): reversed string is not a substring,
- and should not set coderange of the original string.
- [ruby-dev:49189] [Bug #11387]
+Mon Dec 9 16:13:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 11 00:42:53 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (wmap_size): add ObjectSpace::WeakMap#size and #length.
- * parse.y (lambda_body): pop cmdarg stack for lookahead
- token. [ruby-core:70067] [Bug #11380]
+Mon Dec 9 15:26:17 2013 Shugo Maeda <shugo@ruby-lang.org>
-Tue Aug 11 00:21:56 2015 NARUSE, Yui <naruse@ruby-lang.org>
+ * test/test_curses.rb: removed.
- * ext/socket/extconf.rb: Solaris 11 has struct tcp_info.tcpi_ca_state,
- but it is a dummy.
+Mon Dec 9 13:36:55 2013 Shugo Maeda <shugo@ruby-lang.org>
- * ext/socket/option.c: Solaris 11 doesn't have u_intN_t.
+ * ext/curses, sample/curses: removed curses.
- * ext/socket/option.c: Solaris 11 needs inspect_tcpi_msec.
+ * NEWS: added an entry for the above change.
- * ext/socket/raddrinfo.c: Solaris 11 has AF_PACKET but doesn't have
- related macros.
+Mon Dec 9 12:26:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 4 04:11:34 2015 Tanaka Akira <akr@fsij.org>
+ * ext/objspace/object_tracing.c (newobj_i): use cached class path
+ only to get rid object allocation during NEWOBJ hook.
+ [ruby-core:58853] [Bug #9212]
- * lib/time.rb (strptime): Support %s.%N.
- [ruby-core:68301] [Bug #10904] Patch by Sadayuki Furuhashi.
+ * variable.c (rb_class_path_cached): returns cached class path
+ only, without searching and allocating new class path string.
-Tue Aug 4 03:43:15 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Dec 9 11:14:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * transcode.c (load_transcoder_entry): fix transcoder loading race
- condition, by waiting in require. [ruby-dev:49106] [Bug #11277]
+ * ext/date/date_parse.c (parse_time): unset case-insensitive flag
+ for [:alpha:], which already implies both cases, to get rid of
+ backtrack explosion. [ruby-core:58876] [Bug #9221]
-Tue Aug 4 03:13:59 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Dec 9 08:40:40 2013 Eric Hodel <drbrain@segment7.net>
- * array.c (ary_ensure_room_for_push): check if array size will
- exceed maximum size to get rid of buffer overflow.
- [ruby-dev:49043] [Bug #11235]
+ * lib/rubygems: Update to RubyGems master bf37240. Fixes useless
+ error message with `gem install -g` with no gem dependencies file.
+ * test/rubygems: ditto.
- * array.c (ary_ensure_room_for_unshift, rb_ary_splice): ditto.
+Mon Dec 9 04:52:25 2013 Eric Hodel <drbrain@segment7.net>
-Sat Jul 4 23:08:32 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * NEWS: Update RubyGems entry with notable features.
- * file.c (rb_file_load_ok): try opening file without gvl not to
- lock entire process. [Bug #11060]
+Mon Dec 9 04:43:54 2013 Eric Hodel <drbrain@segment7.net>
-Sat Jul 4 05:00:48 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/.document: Add syslog/lib and thread/thread.c to documentable
+ items. [ruby-trunk - Bug #9228]
- * lib/mkmf.rb (pkg_config): split --libs if --libs-only-l option
- is not available. patch in [ruby-core:69428] by Hans Mackowiak.
- [ruby-core:69421] [Bug #11201]
+Mon Dec 9 04:28:50 2013 Eric Hodel <drbrain@segment7.net>
-Sat Jul 4 04:46:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 096db36. Changes include
+ support for PATH in Gemfile.lock and a typo fix from Akira Matsuda.
+ * test/rubygems: ditto.
- * compile.c (iseq_compile_each): out of range NTH_REF is always
- nil.
+Mon Dec 9 02:10:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * parse.y (parse_numvar): check overflow of NTH_REF and range.
- [ruby-core:69393] [Bug #11192]
+ * lib/net/http/responses.rb:
+ Add `HTTPIMUsed`, as it is also supported by rack/rails.
+ RFC - http://tools.ietf.org/html/rfc3229
+ by Vipul A M <vipulnsward@gmail.com>
+ https://github.com/ruby/ruby/pull/447 fix GH-447
- * util.c (ruby_scan_digits): make public and add length parameter.
+Sun Dec 8 20:47:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Jul 4 04:35:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * class.c (rb_get_kwargs): when values is non-null, remove
+ extracted keywords from the rest keyword argument.
- * vm_eval.c (rb_method_call_status): resolve refined method entry
- to check if undefined. [ruby-core:69064] [Bug #11117]
+Sun Dec 8 20:26:54 2013 Yutaka Kanemoto <kanemoto@ruby-lang.org>
-Sat Jul 4 04:35:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * common.mk (ruby.imp): avoid circular dependency on AIX
- * vm_eval.c (rb_method_call_status): undefined refined method is
- not callable unless using. [ruby-core:69064] [Bug #11117]
+Sun Dec 8 20:21:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Wed Jul 1 04:16:56 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * bigdecimal.c (BigDecimal_coerce): convert a Float to a BigDecimal instead
+ of converting the receiver to a Float. The reason is there are BigDecimal
+ instances with precisions that is smaller than the Float's precision.
+ [ruby-core:58756] [Bug #9192]
- * ext/bigdecimal/bigdecimal.gemspec: Fix require paths for released gem.
- [fix GH-929] Patch by @voxik
- * ext/io/console/io-console.gemspec: ditto.
+ * test/bigdecimal/test_bigdecimal.rb: add tests for the above change.
-Wed Jul 1 04:15:38 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+Sun Dec 8 18:28:20 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/zlib/zlib.c: Fix indentation for rdoc.
- [Bug #11221][ruby-core:69465]
+ * NEWS: [DOC] update NEWS about GC.
-Sat Jun 27 22:51:59 2015 Shota Fukumori <her@sorah.jp>
+Sun Dec 8 17:52:24 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/objspace/objspace_dump.c(dump_object): Return empty JSON object when
- passed object is a special const, instead of SEGV.
- Based patch by Kohei Suzuki (eagletmt). [ruby-core:69692] [Bug #11291]
+ * object.c: [DOC] document Module#singleton_class?.
- * test/objspace/test_objspace.rb(test_dump_special_consts): Test for above fix.
+Sun Dec 8 16:19:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * class.c (rb_get_kwargs): if optional is negative, unknown
+ keywords are allowed.
-Wed Jun 17 02:53:59 2015 Koichi Sasada <ko1@atdot.net>
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg): check unknown
+ keywords.
- * test/objspace/test_objspace.rb (test_dump_flags): relax pattern
- because long_lived flag and marked flag can be false at major GC.
- [Bug #10852]
+Sun Dec 8 14:55:12 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Mon Jun 15 03:24:23 2015 Koichi Sasada <ko1@atdot.net>
+ * array.c (rb_ary_shuffle_bang, rb_ary_sample): rename local variables.
- * vm_insnhelper.c (lep_svar_set): add WBs.
+Sun Dec 8 13:59:38 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Fri Jun 12 01:39:49 2015 Eric Wong <e@80x24.org>
+ * array.c (rb_ary_shuffle_bang, rb_ary_sample): check
+ unknown keywords.
- * ext/socket/ancdata.c: use RB_GC_GUARD instead of volatile
- [ruby-core:69419] [Feature #11198]
+ * test/ruby/test_array.rb (test_shuffle, test_sample): tests for
+ the above.
-Fri Jun 12 01:16:13 2015 Eric Wong <e@80x24.org>
+Sun Dec 8 13:01:11 2013 Aman Gupta <ruby@tmm1.net>
- * ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
- ossl_asn1_decode_all): use RB_GC_GUARD instead of volatile
- [ruby-core:69371] [Bug #11185]
+ * vm.c (ruby_vm_stat): add RubyVM.stat() for access to internal cache
+ counters. this methods behaves like GC.stat, accepting an optional
+ hash or symbol argument. [Bug #9190] [ruby-core:58750]
+ * test/ruby/test_rubyvm.rb: test for new method
-Fri Jun 12 01:14:00 2015 NARUSE, Yui <naruse@ruby-lang.org>
+Sun Dec 8 11:59:40 2013 Aman Gupta <ruby@tmm1.net>
- * win32/win32.c (setup_overlapped): seek to the file end only when
- writing (mode:a), not reading (mode:a+, read).
+ * hash.c (rb_hash_replace): add a write barrier to fix GC mark miss on
+ hashes using Hash#replace [Bug #9226] [ruby-core:58948]
-Fri Jun 12 01:11:52 2015 Aaron Patterson <tenderlove@ruby-lang.org>
+Sun Dec 8 11:21:00 2013 Aman Gupta <ruby@tmm1.net>
- * load.c (loaded_feature_path): stop returning false negatives for
- filenames which are trailing substrings of file extensions. For
- example, 'b', which a trailing substring of ".rb" should not return
- false. [Bug #11155][ruby-core:69206]
+ * include/ruby/ruby.h: add RGENGC_WB_PROTECTED_NODE_CREF setting
+ In a large app, this reduces the size of
+ remembered_shady_object_count by 80%. [Bug #9225] [ruby-core:58947]
+ * gc.c (rb_node_newnode): add FL_WB_PROTECTED flag to NODE_CREF
+ * class.c (rewrite_cref_stack): insert OBJ_WRITE for NODE_CREF
+ * iseq.c (set_relation): ditto
+ * iseq.c (rb_iseq_clone): ditto
+ * vm_eval.c (rb_yield_refine_block): ditto
+ * vm_insnhelper.c (vm_cref_push): ditto
+ * vm_insnhelper.h (COPY_CREF): ditto
- * test/ruby/test_autoload.rb: test for fix
+Sun Dec 8 10:45:05 2013 Aman Gupta <ruby@tmm1.net>
-Sun May 24 03:56:27 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (hash_aset_str): revert r43870 due to performance issue
+ [Bug #9188] [ruby-core:58730]
+ * parse.y (assoc): convert literal string hash keys to fstrings
+ * test/ruby/test_hash.rb (class TestHash): expand test
- * marshal.c (r_symreal): register symbol names as strings first so
- that r_symlink always returns valid names.
- [ruby-core:68587] [Bug #10991]
+Sun Dec 8 10:22:38 2013 Aman Gupta <ruby@tmm1.net>
- * marshal.c (r_ivar, r_object0): now need to intern symbol names.
+ * parse.y (register_symid_str): use fstrings in symbol table
+ [Bug #9171] [ruby-core:58656]
+ * parse.y (rb_id2str): ditto
+ * string.c (rb_fstring): create frozen_strings on first usage. this
+ allows rb_fstring() calls from the parser (before cString is created)
+ * string.c (fstring_set_class_i): set klass on fstrings generated
+ before cString was defined
+ * string.c (Init_String): convert frozen_strings table to String
+ objects after boot
+ * ext/-test-/symbol/type.c (bug_sym_id2str): expose rb_id2str()
+ * test/-ext-/symbol/test_type.rb (module Test_Symbol): verify symbol
+ table entries are fstrings
- * marshal.c (r_object0): compare with symbol names.
+Sun Dec 8 10:24:20 2013 Eric Hodel <drbrain@segment7.net>
-Sun May 24 03:53:07 2015 Eric Wong <e@80x24.org>
+ * lib/rubygems.rb: Update version for upcoming ruby 2.1.0 RC.
- * ext/socket/ancdata.c (bsock_recvmsg_internal): GC guard
- [Bug #11123]
+Sun Dec 8 10:21:36 2013 Eric Hodel <drbrain@segment7.net>
-Sun May 24 03:44:42 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 14749ce. This fixes bugs
+ handling of gem dependencies lockfiles (Gemfile.lock).
- * range.c (linear_object_p, range_include): test if covered for
- linear objects. [ruby-core:69052] [Bug #11113]
+ * test/rubygems: ditto.
-Sun May 24 03:41:45 2015 Shugo Maeda <shugo@ruby-lang.org>
+Sun Dec 8 09:40:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * lib/net/imap.rb (body_ext_mpart): should work even if body-fld-dsp
- is omitted. [ruby-core:69093] [Bug #11128]
+ * array.c (rb_ary_or): use RHASH_TBL_RAW instead of RHASH_TBL
-Sun May 24 03:37:14 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * process.c (rb_execarg_fixup): use RHASH_TBL_RAW and insert write
+ barriers where appropriate
- * string.c: added documentation for character sequence \' with String#sub
- [Bug #11132][ruby-core:69121][fix GH-900][ci skip] Patch by @shishir127
+ * vm.c (kwmerge_i): use RHASH_TBL_RAW
-Sun May 24 03:32:53 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+ * vm.c (HASH_ASET): use rb_hash_aset instead of calling directly into
+ st_insert
- * rational.c: Added documentation for rational literal.
- [Bug #11075][fix GH-885][ci skip] Patch by @shishir127
+Sat Dec 7 11:15:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun May 24 03:06:20 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (rb_hash_reject): copy unrejected elements only to new hash,
+ so that the change on the original receiver can affect.
+ [ruby-core:58914] [Bug #9223]
- * ext/socket/ipsocket.c (init_inetsock_internal): preserve errno
- before other library calls and use rb_syserr_fail.
- [ruby-core:68531] [Bug #10975]
+Sat Dec 7 08:25:00 2013 Richo Healey <richo@psych0tik.net>
-Sun May 24 03:01:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_struct.rb: Add regression test for question marks and
+ bangs in struct members. [Closes GH-468]
- * ext/-test-/printf/printf.c (uint_to_str): renamed to get rid of
- conflict on cygwin. [ruby-core:68877] [Bug #11065]
+Fri Dec 6 19:33:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun May 24 02:44:53 2015 Koichi Sasada <ko1@atdot.net>
+ * class.c (rb_extract_keywords, rb_get_kwargs): move from
+ vm_insnhelper.c.
- * vm.c (vm_exec): check other events when RETURN is thrown.
- [Bug #10724]
+Fri Dec 6 19:18:02 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_settracefunc.rb: add a test.
+ * gc.c: change oldmalloc meaning.
+ Increase oldmalloc_increase with malloc_increase
+ instead of using obj_memsize_of().
-Sun May 24 02:21:47 2015 Masahiro Tomita <tommy@tmtm.org>
+ This change will avoid the danger of memory full without major GC.
- * ext/socket/raddrinfo.c (addrinfo_mload): fix memory leak of
- addrinfo. [ruby-dev:48923] [Bug #11051]
+Fri Dec 6 19:08:48 2013 Koichi Sasada <ko1@atdot.net>
-Sun May 24 02:17:05 2015 Kenta Murata <mrkn@cookpad.com>
+ * gc.c (atomic_sub_nounderflow): not 0 but val itself.
- * bigdecimal: conform to ruby's license. [ruby-core:68466] [Bug #10952]
+Fri Dec 6 18:37:11 2013 Koichi Sasada <ko1@atdot.net>
-Sun May 24 02:06:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (rb_objspace_alloc, Init_heap): initialize
+ oldmalloc_increase_limit at Init_heap.
- * ext/-test-/file/fs.c (get_fsname): try magic number only if
- f_type is included. [ruby-dev:48913] [Bug #11000]
+ rb_objspace_alloc() is not called on some platforms.
-Sun May 24 02:06:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Dec 6 18:33:39 2013 Koichi Sasada <ko1@atdot.net>
- * ext/-test-/file/fs.c (get_fsname): return filesystem name by
- statfs/statvfs. [ruby-core:68624] [Bug #10998]
+ * gc.c (garbage_collect_body): bug fix.
+ initialize after recording.
-Sun May 24 02:02:00 2015 Koichi Sasada <ko1@atdot.net>
+Fri Dec 6 17:49:46 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_symbol.rb: fix syntax error.
+ * gc.c (atomic_sub_nounderflow): added to simplify atomic sub with
+ care about underflow.
-Sun May 24 02:02:00 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (objspace_malloc_increase): use it.
- * hash.c (rb_any_hash): Symbols are compared by the identities
- always. [ruby-core:68767] [Bug #11035]
+Fri Dec 6 17:10:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun May 24 02:01:07 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_insnhelper.c (rb_get_kwargs): get keyword argument values from an
+ option hash, not only checking keys.
- * hash.c (rb_any_hash): use same hash values with Float#hash so
- that -0.0 and +0.0 will be identical.
- [ruby-core:68541] [Bug #10979]
+ * dir.c (dir_initialize): use rb_get_kwargs.
-Thu May 21 01:34:48 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_start_internal): ditto.
- * gc.c (id2ref): prohibit from accessing internal objects.
- [ruby-core:68348] [Bug #10918]
+Fri Dec 6 16:47:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu May 21 01:32:02 2015 Rei Odaira <Rei.Odaira@gmail.com>
+ * misc/ruby-mode.el (ruby-brace-to-do-end): split single line block.
- * ext/pty/pty.c: AIX supports autopush.
- Patch by Perry Smith [ruby-core:58539] [Bug #9144]
+ * misc/ruby-mode.el (ruby-do-end-to-brace): shrink single line block
+ to one line.
-Thu May 21 01:07:41 2015 Misumi Rize <r@ayase-e.li>
+Fri Dec 6 16:16:30 2013 Koichi Sasada <ko1@atdot.net>
- * vm_insnhelper.c (vm_throw_start): search the target to break
- from a block with nested rescue, from the nested blocks.
- [ruby-core:67765] [Bug #10775] [Fix GH-820]
+ * gc.c (gc_start_internal): do not use rb_gc_start() and rb_gc().
-Thu May 21 00:55:45 2015 Koichi Sasada <ko1@atdot.net>
+Fri Dec 6 15:24:30 2013 Koichi Sasada <ko1@atdot.net>
- * vm_args.c: protect value stack from calling other methods
- during complex parameter setting process (splat, kw, and so on).
- [Bug #11027]
+ * gc.c (gc_start_internal, rb_gc): do not need
+ heap_pages_free_unused_pages() here.
+ It was done in after_sweep().
- * vm_core.h: remove rb_thead_t::mark_stack_len.
- With this modification, we don't need to use th->mark_stack_len.
+ * gc.c (rb_gc): The reason is now GPR_FLAG_CAPI.
- * test/ruby/test_keyword.rb: add a test.
+Fri Dec 6 14:05:19 2013 Aman Gupta <ruby@tmm1.net>
- * cont.c (cont_capture): catch up this fix.
+ * gc.c (gc_start_internal): GC.start() now accepts two optional
+ keyword arguments. These can be used to disable full_mark (minor
+ mark only) or disable immediate_sweep (use lazy sweep). These new
+ options are useful for benchmarking GC behavior, or performing minor
+ GC out-of-band.
+ * test/ruby/test_gc.rb (class TestGc): tests for new options.
- * vm.c (rb_thread_mark): ditto.
+Fri Dec 6 11:51:28 2013 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
-Thu May 21 00:07:54 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/erb.rb: [DOC] fix broken link, Use rubygems.org and www.ruby-toolbox.com instead of RAA.
+ [Bug #9197]
- * vm_eval.c (rb_obj_instance_eval, rb_obj_instance_exec): allow
- symbols to just instance_eval/exec, except for definition of
- singletons. [ruby-core:68961] [Bug #11086]
+Fri Dec 6 10:50:54 2013 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
-Wed May 20 04:33:50 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/webrick/httprequest.rb: [DOC] Fix broken link of CGI specification by @udzura [fix GH-466]
- * string.c (STR_SET_EMBED): clear NOFREE flag at embedding as
- embedded strings no longer refer static strings.
- [ruby-core:68436] [Bug #10942]
+Thu Dec 6 01:27:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Wed May 20 03:46:11 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec):
+ treat 0.0 and -0.0 of floating-point numbers specially for an optimization
+ and to correctly propagate its signbit to the result.
+ [Bug #9214] [ruby-core:58858]
- * dir.c (need_normalization): use getattrlist() if fgetattrlist()
- is unavailable, on OSX 10.5. [ruby-core:68829] [Bug #11054]
+ * test/bigdecimal/test_bigdecimal.rb: add tests case for the above change.
-Wed May 20 03:25:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/bigdecimal/test_bigdecimal_util.rb: ditto.
- * proc.c (proc_binding): replicate env from method object, and
- allocate the local variable area for the iseq local table.
- [ruby-core:68673] [Bug #11012]
+Thu Dec 5 22:18:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed May 20 03:25:34 2015 Koichi Sasada <ko1@atdot.net>
+ * lib/mkmf.rb (configuration): strip destdir part from prefix to get
+ rid of duplication. a patch by arton at [ruby-core:58859].
+ [ruby-core:58856] [Bug #9213]
- * proc.c: use RUBY_VM_IFUNC_P() to recognize IFUNC or not.
+Thu Dec 5 21:53:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c: ditto.
+ * array.c (rb_ary_or): lhs elements are preferred, so should not
+ replace with rhs elements.
- * vm_dump.c: ditto.
+ * test/ruby/test_array.rb (test_OR_in_order): import the test failed
+ by r43969 from rubyspec/core/array/union_spec.rb.
- * vm_insnhelper.c: ditto.
+Thu Dec 5 21:05:42 2013 Koichi Sasada <ko1@atdot.net>
- * vm_core.h: use RB_TYPE_P() instead of BUILTIN_TYPE().
+ * gc.c (gc_info_decode): fix to avoid syntax error on VS2012.
-Wed May 20 03:10:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Dec 5 19:35:35 2013 Martin Duerst <duerst@it.aoyama.ac.jp>
- * benchmark/bm_hash_aref_flo.rb: make more realistic data.
- [ruby-core:68632] [[Bug #10999]
+ * st.c: tweaked comment
-Wed May 20 02:49:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Dec 5 19:21:10 2013 Aman Gupta <ruby@tmm1.net>
- * proc.c (respond_to_missing_p): check if the receiver responds to
- the given method by respond_to_missing?.
+ * gc.c (struct rb_objspace): rename internal last_collection_flags to
+ latest_gc_info
+ * gc.c (gc_latest_collection_info): add GC.latest_gc_info() with similar
+ behavior to GC.stat()
+ * gc.c (rb_gc_latest_gc_info): new c-api for above
+ * gc.c (gc_stat_internal): remove :last_collection_flags from GC.stat
+ * gc.c (gc_profile_decode_flags): remove GC::Profiler.decode_flags
+ * include/ruby/intern.h (rb_gc_latest_gc_info): export new c-api
+ * test/ruby/test_gc.rb (class TestGc): test for new behavior
+ * NEWS: note about new api
- * proc.c (mnew_missing): create Method object for method_missing.
- [ruby-core:68564] [Bug #10985]
+ * gc.c (gc_stat_internal): raise TypeError on wrong type
+ * gc.c (gc_stat): fix error message
-Wed May 20 02:16:05 2015 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Dec 5 18:18:08 2013 Aman Gupta <ruby@tmm1.net>
- * dir.c (replace_real_basename): need to check the return value of
- GLOB_REALLOC().
+ * ext/objspace/gc_hook.c: remove this file
+ * ext/-test-/tracepoint/gc_hook.c: new filename for above
+ * ext/objspace/objspace.c: remove ObjectSpace.after_gc_start_hook=
+ * test/objspace/test_objspace.rb: remove test
+ * test/-ext-/tracepoint/test_tracepoint.rb: add above test for
+ tracepoint re-entry
-Wed May 20 02:16:05 2015 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Dec 5 17:44:53 2013 Koichi Sasada <ko1@atdot.net>
- * dir.c (replace_real_basename): shouldn't create Ruby object before
- the object system is loaded.
- [ruby-core:68430] [Bug #10941]
+ * gc.c: change function names vm_ prefix to objspace_ prefix.
+ They are objspace_ functionality.
-Wed May 20 01:58:12 2015 Tanaka Akira <akr@fsij.org>
+Thu Dec 5 16:11:04 2013 Aman Gupta <ruby@tmm1.net>
- * lib/resolv.rb (Resolv::DNS::Label::Str#==): Check class equality.
- (Resolv::DNS::Name#initialize): Normalize labels as
- Resolv::DNS::Label::Str objects.
+ * include/ruby/intern.h: add rb_gc_stat() for access to GC.stat
+ variables from c-api
+ * gc.c (rb_gc_stat): new c-api method. accepts either VALUE hash like
+ GC.stat, or VALUE symbol key and returns size_t directly. the second
+ form is useful to avoid allocations, i.e. for usage inside
+ INTERNAL_EVENT_GC tracepoints.
+ * gc.c (gc_stat): add GC.stat(:key) to return single value instead of hash
+ * gc.c (gc_stat_internal): helper method to retrieve single or all stat values
+ * test/ruby/test_gc.rb (class TestGc): test for new behavior
+ * NEWS: note about this new api
-Wed May 20 01:47:23 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Dec 5 14:40:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * iseq.c (rb_iseq_compile_with_option): check source type, must be
- an IO or a String. [ruby-core:69219] [Bug #11159]
+ * hash.c (rb_hash): revert r43981 and bail out to the outermost frame
+ when recursion is detected.
-Fri May 15 05:01:25 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Dec 5 13:47:15 2013 Koichi Sasada <ko1@atdot.net>
- * symbol.c (Init_sym): make dsym_fstrs a hash compared by identity
- as the keys are unique fstrings, to get rid of running hash and
- compare methods and causing new object allocation during garbage
- collection phase. [ruby-dev:48891] [Bug #10933]
+ * gc.c (vm_malloc_size): added.
+ return malloc_usable_size() if possible.
-Thu May 14 00:50:40 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (MALLOC_ALLOCATED_SIZE): add new setting macro to enable
+ GC.allocated_size.
+ If platform supports `malloc_usable_size()' (or similar one),
+ GC.allocated_size can be implemented with this function.
+ Default is 0.
- * parse.y (lambda): push and reset cmdarg_stack in lambda body.
- [ruby-core:69017] [Bug #11107]
+ * gc.c (vm_xmalloc, vm_xrealloc, vm_xfree): use vm_malloc_size()
+ to detect collect allocated size.
-Thu May 14 00:39:29 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (vm_malloc_increase): refactoring.
- * dln.c (dln_load): check if a different libruby is loaded by the
- extension library, and then bail out to get rid of very frequent
- reported stale bug reports.
+Thu Dec 5 13:19:03 2013 Aman Gupta <ruby@tmm1.net>
-Thu May 14 00:29:44 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/ruby.h: remove INTERNAL_EVENT_GC_END and replace with
+ two new events: GC_END_MARK and GC_END_SWEEP
+ * gc.c (gc_after_sweep): emit GC_END_SWEEP after lazy sweep is done
+ * gc.c (gc_marks_body): emit GC_END_MARK at end of minor/major mark
+ * ext/-test-/tracepoint/tracepoint.c (struct tracepoint_track): tests
+ for new events.
+ * test/-ext-/tracepoint/test_tracepoint.rb (class TestTracepointObj):
+ ditto.
+ * NEWS: remove ObjectSpace.after_gc_*_hook. These are only a sample,
+ and will be removed before ruby 2.1.
+ * ext/objspace/gc_hook.c: remove ObjectSpace.after_gc_end_hook=
- * lib/fileutils.rb (FileUtils#mv): show the exact target path in
- the error message instead of the destination parent directory
- name. patched by Joao Britto <jabcalves AT gmail.com> at
- [ruby-core:68706]. [Bug #11021]
+Thu Dec 5 10:47:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu May 14 00:19:04 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ruby_atomic.h (ATOMIC_PTR_EXCHANGE): atomic exchange function for
+ a generic pointer.
- * thread_pthread.c (reserve_stack): keep sp safe zone to get rid
- of crash by -fstack-check. [ruby-core:68740] [Bug #11030]
+Thu Dec 5 10:47:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Apr 14 23:33:39 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (finalize_deferred): flush all deferred finalizers while other
+ finalizers can get ready to run newly by lazy sweep.
+ [ruby-core:58833] [Bug #9205]
- * configure.in: check also procstat_getvmmap, which is not
- available on FreeBSD 9. [ruby-core:68468] [Bug #10954]
+Thu Dec 5 09:07:59 2013 Aman Gupta <ruby@tmm1.net>
- * vm_dump.c (procstat_vm): use kinfo_getvmmap instead if
- procstat_getvmmap is not available.
+ * gc.c (ruby_gc_set_params): Accept safe_level argument so GC tuning
+ settings can be applied before rb_safe_level() is available.
+ * internal.h (rb_gc_set_params): ditto.
+ * ruby.c (process_options): Apply GC tuning early during boot process
+ so boot-time allocations can benefit. This also benefits any code
+ loaded in via `ruby -r`.
-Mon Apr 13 22:11:21 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+Wed Dec 4 13:02:13 2013 Aman Gupta <ruby@tmm1.net>
- * ext/openssl/lib/openssl/ssl.rb: stricter hostname verification
- following RFC 6125. with the patch provided by Tony Arcieri and
- Hiroshi Nakamura [ruby-core:61545] [Bug #9644]
- * test/openssl/test_ssl.rb: add tests for above.
+ * vm_trace.c (rb_suppress_tracing): Fix initialization of stack
+ allocated rb_trace_arg_t structure. Without this patch, sometimes
+ INTERNAL_EVENT_GC would be skipped accidentally inside
+ rb_threadptr_exec_event_hooks_orig().
-Mon Apr 13 13:03:33 2015 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+Wed Dec 4 12:57:24 2013 Aman Gupta <ruby@tmm1.net>
- * lib/securerandom.rb: skip Win32 libraries in SecureRandom if
- OpenSSL::Random is available.
- https://github.com/ruby/ruby/pull/848 [Bug #10948] [Bug #10995]
+ * string.c (fstr_update_callback): Improve implementation in r43968
+ based on feedback from @nagachika. In the existing case, we can
+ return ST_STOP to prevent any hash modification. In the !existing
+ case, set both key and value to the fstr.
-Mon Apr 13 00:49:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Dec 4 12:47:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (arg): fix segfault by null caused by syntax error.
- [ruby-core:68851] [Bug #10957]
+ * lib/delegate.rb (Delegator#method_missing): ignore the target if not
+ set, and delegate to global methods. [ruby-core:58572] [Bug #9155]
-Mon Apr 13 00:49:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/delegate.rb (Delegator#respond_to_missing): ditto.
- * parse.y (primary): empty parentheses at cmdarg can be null.
- [ruby-core:68477] [Bug #10957]
+ * lib/delegate.rb (SimpleDelegator#__getobj__): yield and return if
+ not delegated but a block is given, like as Hash#fetch.
-Mon Apr 13 00:44:12 2015 Eric Wong <e@80x24.org>
+ * lib/delegate.rb (DelegateClass#__getobj__): ditto.
- * ext/io/wait/wait.c (io_nread): wrap return value with INT2FIX
- Thanks to Yura Sokolov <funny.falcon@gmail.com>
- [ruby-core:68369] [Bug#10923]
- * test/io/wait/test_io_wait.rb (test_nread_buffered):
- fix broken test
+Tue Dec 3 23:48:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Apr 13 00:16:32 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: check malloc_size() availability.
- * vm_eval.c (vm_call_super): search next super class from the
- original class, to get rid of infinite recursion with
- prepending. a patch by Seiei Higa <hanachin AT gmail.com> at
- [ruby-core:68434]. [ruby-core:68093] [Bug #10847]
+ * gc.c: use malloc_size() with malloc/malloc.h if available.
-Mon Apr 13 00:09:48 2015 Koichi Sasada <ko1@atdot.net>
+Tue Dec 3 23:06:20 2013 Narihiro Nakamura <authornari@gmail.com>
- * class.c (rb_prepend_module): need a WB for klass -> origin.
+ * object.c (rb_obj_clone): don't copy FL_WB_PROTECTED of a
+ original object.
-Sun Apr 12 23:53:33 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Dec 3 22:32:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/fiddle/extconf.rb: needs --enable-shared when linked to
- libruby or fiddle.so. since --with-static-linked-ext does no
- longer link extensions to ruby program with --enable-shared, the
- only combination needs --enable-static is --disable-shared and
- --with-static-linked-ext. [ruby-dev:48901] [Bug #10960]
+ * hash.c (rb_hash_recursive): make similar (recursive) constructs
+ return same hash value. execute recursively, and rewind to the
+ topmost frame with an object which .eql? to the recursive
+ object, if recursion is detected.
-Sun Apr 12 23:53:33 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (rb_hash): detect recursion for all `hash' methods. each
+ `hash' methods no longer need to use rb_exec_recursive().
- * ext/fiddle/extconf.rb: make PIC objects if it will be linked as
- a shared object eventually. [ruby-core:67128]
+Tue Dec 3 21:53:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 22 12:39:17 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * vm_eval.c (rb_catch_protect): new function similar to
+ rb_catch_obj(), but protect from all global jumps like as
+ rb_load_protect(), rb_protect(), etc.
- * spec/default.mspec: use default configuration file name.
- https://github.com/ruby/rubyspec/commit/cc69f337b06362e5607ffa3e3ad40ef7494960cf
+Tue Dec 3 20:18:46 2013 Narihiro Nakamura <authornari@gmail.com>
-Sun Mar 22 12:39:17 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * object.c (rb_obj_clone): Protect FL_PROMOTED and FL_WB_PROTECTED
+ flags of a destination object.
- * spec/default.mspec: remove specific version number.
- https://github.com/ruby/rubyspec/commit/7a909e925c1baa9c700bd44af9241aef6e596714
+Tue Dec 3 20:16:38 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sun Mar 22 12:39:17 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * array.c (rb_hash_rehash): use hash_alloc() instead of rb_hash_new(),
+ to hide temporary object from ObjectSpace. [Bug #9187]
- * common.mk: use ruby organization for rubyspec.
+Tue Dec 3 17:11:47 2013 Aman Gupta <ruby@tmm1.net>
-Thu Feb 26 15:48:41 2015 NAKAMURA Usaku <usa@ruby-lang.org>
+ * load.c (features_index_add_single): Move loaded_features_index array values off
+ the ruby heap. [Bug #9201] [ruby-core:58805]
+ * load.c (loaded_features_index_clear_i): Clean up off-heap array structure.
+ * vm.c (rb_vm_mark): Remove unnecessary mark_tbl for loaded_features_index.
+ This improves minor GC time by 15% in a large application.
- * ext/win32/Win32API.rb (initialize): accept both a string and an array
- for the arguments of the imported function.
- reported by Aaron Stone [ruby-core:68208] [Bug #10876] [Fixes GH-835]
+Tue Dec 3 17:01:45 2013 Aman Gupta <ruby@tmm1.net>
-Wed Feb 25 15:36:26 2015 NARUSE, Yui <naruse@ruby-lang.org>
+ * include/ruby/ruby.h (struct RClass): Add wrapper struct around
+ RClass->m_tbl with serial. This prevents double marking method
+ tables, since many classes/modules can share the same method table.
+ This improves minor mark time in a large application by 30%.
+ * internal.h (struct method_table_wrapper): Define new
+ wrapper struct with additional serial.
+ * internal.h (RCLASS_M_TBL_INIT): New macro for initializing method
+ table wrapper and st_table.
+ * method.h (void rb_sweep_method_entry): Rename rb_free_m_table to
+ rb_free_m_tbl for consistency
+ * .gdbinit (define rb_method_entry): Update rb_method_entry gdb helper
+ for new method table structure.
+ * class.c: Use RCLASS_M_TBL_WRAPPER and
+ RCLASS_M_TBL_INIT macros.
+ * class.c (rb_include_class_new): Share WRAPPER between module and
+ iclass, so serial can prevent double marking.
+ * eval.c (rb_prepend_module): ditto.
+ * eval.c (rb_using_refinement): ditto.
+ * gc.c: Mark and free new wrapper struct.
+ * gc.c (obj_memsize_of): Count size of additional wrapper struct.
- * tool/merger.rb: support 2.1+ versioning scheme.
+Tue Dec 3 14:05:49 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Feb 24 17:41:27 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (rb_ary_uniq_bang): remove duplicate code.
- * time.c (time_zone_name): should be US-ASCII only if all 7-bits,
- otherwise locale encoding. [ruby-core:68230] [Bug #10887]
+Tue Dec 3 13:40:42 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Feb 24 17:41:27 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (ary_add_hash): set and return values because string keys
+ will be frozen. [ruby-core:58809] [Bug #9202]
- * time.c (time_zone_name): should be US-ASCII only if all 7-bits,
- otherwise locale encoding. [ruby-core:68230] [Bug #10887]
+ * array.c (rb_ary_uniq_bang): ditto.
-Tue Feb 24 17:41:27 2015 Benoit Daloze <eregontp@gmail.com>
+ * array.c (rb_ary_or): ditto.
- * time.c: Zone encoding should be US-ASCII if all 7-bits. Fix r46907.
+ * array.c (rb_ary_uniq): ditto.
- * test/ruby/test_time.rb, test/ruby/test_time_tz.rb: Update tests.
+ * test/ruby/test_array.rb: tests for above.
-Tue Feb 24 16:37:26 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ The patch is from normalperson (Eric Wong).
- * string.c (chompped_length): enable smart chomp for all non-dummy
- encoding strings, not only default_rs.
- [ruby-core:68258] [Bug #10893]
+Tue Dec 3 12:20:21 2013 Aman Gupta <ruby@tmm1.net>
-Tue Feb 24 16:31:53 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c (rb_fstring): Use st_update instead of st_lookup +
+ st_insert.
+ * string.c (fstr_update_callback): New callback for st_update.
- * string.c (rb_str_split_m): raise ArgumentError at broken string
- not RegexpError, as Regexp is not involved in.
- [ruby-core:68229] [Bug #10886]
+Tue Dec 3 12:17:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Feb 24 14:00:46 2015 Koichi Sasada <ko1@atdot.net>
+ * lib/rdoc/constant.rb (RDoc::Constant#documented?): workaround for
+ NoMethodError when the original of alias is not found.
- * gc.c (rb_objspace_call_finalizer): control GC execution during
- force firnalizations at the end of interpreter process.
- [Bug #10768]
+Tue Dec 3 10:43:58 2013 Eric Hodel <drbrain@segment7.net>
- 1) Prohibit incremental GC while running Ruby-level finalizers
- to avoid any danger.
- 2) Prohibit GC while invoking T_DATA/T_FILE data structure
- because these operations break object relations consistency.
+ * ext/openssl/lib/openssl/buffering.rb: Return ASCII-8BIT strings from
+ SSLSocket methods. [ruby-trunk - Bug #9028]
+ * test/openssl/test_ssl.rb: Test for the above.
- This patch can introduce another memory consuming issue because
- Ruby-level finalizers can run after (2), GC is disabled.
- However, basically object consistency was broken at (2) as I
- described above. So that running Ruby-level finalizers contains
- danger originally. Because of this point, I need to suggest to
- remove these 3 lines (invoking remaining finalizers). And add a
- rule to add that finalizers should not add new finalizers, or
- say there is no guarantee to invoke finalizers that added by
- another finalizer.
+Tue Dec 3 09:42:27 2013 Eric Hodel <drbrain@segment7.net>
-Tue Feb 24 14:00:46 2015 Aman Gupta <ruby@tmm1.net>
+ * lib/rdoc: Update to RDoc master 900de99. Changes include:
- * gc.c (rb_objspace_free): cause rb_bug if lazy sweep is in progress
- during rb_objspace_free. Adds extra protection for r46340.
- Patch by Vicent Marti. [Bug #10768] [ruby-core:67734]
- * gc.c (rb_objspace_call_finalizer): Ensure GC is completed after
- finalizers have run. We already call gc_rest() before invoking
- finalizers, but finalizer can allocate new objects and start new GC
- cycle, so we call gc_rest() again after finalizers are complete.
+ Fixed documentation display of constants
-Tue Feb 24 10:30:59 2015 Kazuki Tsujimoto <kazuki@callcc.net>
+ Fixed handling of unknown parsers
- * vm_insnhelper.c (rb_vm_rewrite_cref_stack): copy nd_refinements
- of original crefs. It fixes segmentation fault when calling
- refined method in duplicate module. [ruby-dev:48878] [Bug #10885]
+ * test/rdoc: ditto.
- * vm_core.h, class.c: change accordingly.
+Mon Dec 2 22:30:10 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * test/ruby/test_refinement.rb: add a test for above.
+ * hash.c (getenv): fixed test failures introduced by r43950.
+ [ruby-core:58774] [Bug #9195] reported by phasis68 (Heesob Park).
-Sun Feb 22 21:20:37 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Dec 2 21:49:19 2013 Masaki Matsushita <glass.saga@gmail.com>
- * re.c (match_aref): RMatch::regexp is Qnil after matching by a
- string since r45451. [ruby-core:68209] [Bug #10877]
+ * hash.c (rb_hash_rehash): make temporary st_table under the control
+ of GC. [Bug #9187]
-Sun Feb 22 17:11:25 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_hash.rb: add a test for above.
- * Makefile.in (probes.stamp): rebuild dtrace dependent objects
- only when `dtrace -G` modifies its input files.
+Mon Dec 2 17:23:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Sun Feb 22 17:11:25 2015 Naohisa Goto <ngotogenome@gmail.com>
+ * variable.c (rb_mod_constants): when calling Module#constants with
+ inherit=false, there is no need to use a hashtable to deduplicate
+ constant names. [Feature #9196] [ruby-core:58786]
- * common.mk (ruby-glommed.o): dependency on $(OBJ) should be written
- in common.mk (in which OBJ is defined) because of Makefile include
- and parse order. This partly reverts r49419.
- [ruby-dev:48849] [Bug #10808]
+Mon Dec 2 14:16:52 2013 Eric Hodel <drbrain@segment7.net>
- * Makefile.in (ruby-glommed.o): ditto.
+ * lib/net/smtp.rb (Net::SMTP#critical): Always return a
+ Net::SMTP::Response. Patch by Pawel Veselov.
+ [ruby-trunk - Bug #9125]
+ * test/net/smtp/test_smtp.rb: Test for the above.
- * Makefile.in (ruby-glommed.o): remove excess $(DTRACE_OBJ) because
- it is included in $(OBJS) since r49451.
+Mon Dec 2 05:52:33 2013 Eric Hodel <drbrain@segment7.net>
- * Makefile.in (probes.o): should depend on $(DTRACE_DEPENDENT_OBJS)
+ * lib/rubygems: Update to RubyGems master baa965b. Notable changes:
-Sun Feb 22 02:16:40 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ Copy directories to lib/ when installing extensions. This completes
+ the fix for [ruby-trunk - Bug #9106]
- * file.c (rb_file_identical_p): fix handle leak, ensure to close
- the handle of the first argument.
+ * test/rubygems: ditto.
-Sat Feb 21 13:48:11 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Dec 2 02:03:47 2013 Shota Fukumori <her@sorah.jp>
- * win32/win32.c (different_device_p): compare by volume serial
- numbers, not by path names. [ruby-core:68162] [Bug #10865]
+ * test/ruby/test_case.rb (test_nomethoderror):
+ Add test related to r43913, r43914
-Sat Feb 21 13:48:11 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Dec 2 00:53:01 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * win32/win32.c (wrename): return EXDEV if moving a directory to
- another drive, since MoveFileExW does not set proper error code.
- [ruby-core:68162] [Bug #10865]
+ * hash.c (getenv): use ANSI codepage version of getenv() for miniruby
+ on Windows.
+ [ruby-core:58732] [Bug #9189] reported by phasis68 (Heesob Park).
-Sat Feb 21 12:46:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Dec 1 22:14:27 2013 Zachary Scott <e@zzak.io>
- * win32/file.c (rb_file_expand_path_internal): neither the drive
- of base directory nor the current drive are involved in the
- result if different than the drive of path.
- [ruby-core:68130] [Bug #10858]
+ * doc/contributors.rdoc: [DOC] Import contributors from redmine wiki
+ Many wiki pages have become outdated and spam-ridden, we will import
+ these to trunk and begin maintaining them in ruby-trunk. This will
+ also allow new contributors to easily contribute patches to update
+ these pages, where previously a redmine account with wiki access was
+ required. Another bonus is having a contributors file to show thanks
+ to all of the people who have submitted a patch to Ruby.
-Sat Feb 21 12:46:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Dec 1 18:03:26 2013 Zachary Scott <e@zzak.io>
- * win32/file.c (rb_file_expand_path_internal): do not make invalid
- (or ADS) path if the path has a drive letter, the result also
- should have be under it. [ruby-core:68130] [Bug #10858]
+ * doc/maintainers.rdoc: [DOC] Current maintainers of Ruby
-Sat Feb 21 12:45:54 2015 Matt Hoyle <matt@deployable.co>
+Sun Dec 1 17:17:36 2013 Zachary Scott <e@zzak.io>
- * ext/bigdecimal/bigdecimal.c (VpSetPTR): fix a typo, 'expoennt'
- to 'exponent'. [ruby-core:67980] [Bug #10823] [Fix GH-825]
+ * doc/contributing.rdoc: [DOC] Current branch maintainers
-Fri Feb 20 17:47:20 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Dec 1 17:16:36 2013 Zachary Scott <e@zzak.io>
- * vm_core.h (rb_call_info_kw_arg_struct): make keywords a symbols
- list to get rid of inadvertent creation by variable keyword
- arguments. [ruby-core:68031] [Bug #10831]
+ * doc/contributing.rdoc: [DOC] Reporting other (ruby-lang.org) issues
-Fri Feb 20 15:08:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Dec 1 17:15:51 2013 Zachary Scott <e@zzak.io>
- * dir.c (has_magic): always get long path name on Windows even if
- no tilde is there. [ruby-core:68011] [Bug #10819]
+ * doc/contributing.rdoc: [DOC] Current platform maintainers
- * dir.c (replace_real_basename): FindFirstFile ignore redirection
- character, check if exists before call it. cf. [Bug #8597]
+Sun Dec 1 17:14:55 2013 Zachary Scott <e@zzak.io>
-Fri Feb 20 15:08:17 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * doc/contributing.rdoc: [DOC] Reporting downstream distro issues
- * dir.c (glob_helper): obtain real name with FindFirstFile API
- instead of matchin all entries, on Windows.
- [ruby-core:67954] [Bug #10819]
+Sun Dec 1 14:37:20 2013 Masaki Matsushita <glass.saga@gmail.com>
-Fri Feb 20 14:32:14 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (rb_hash_to_a): specify array capa.
- * dir.c (dir_initialize): workaround of opendir failure at symlink
- directories on Windows via CIFS.
+Sun Dec 1 14:15:36 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Feb 19 17:05:47 2015 Shugo Maeda <shugo@ruby-lang.org>
+ * hash.c (rb_hash_rehash): fix to free new st_table when exception
+ is raised in do_hash(). [Bug #9187]
- * class.c (rb_obj_singleton_methods): should use RTEST() to convert
- VALUE to int.
+Sun Dec 1 11:57:59 2013 Zachary Scott <e@zzak.io>
-Thu Feb 19 16:14:04 2015 Shugo Maeda <shugo@ruby-lang.org>
+ * ext/openssl/lib/openssl/buffering.rb: Fix warning in copyright
- * class.c (method_entry_i, class_instance_method_list,
- rb_obj_singleton_methods): should not include methods of
- superclasses if recur is false. [ruby-dev:48854] [Bug #10826]
+Sun Dec 1 08:27:28 2013 Eric Hodel <drbrain@segment7.net>
-Thu Feb 19 16:14:04 2015 Shugo Maeda <shugo@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 66e5c39. Notable changes:
- * vm_method.c (remove_method): When remove refined
- method, raise a NameError if the method is not
- defined in refined class.
+ Implement gem.deps.rb (Gemfile) .lock support
- But if the method is defined in refined class,
- it should keep refined method and remove original
- method.
+ Fixed `gem uninstall` for a relative directory in GEM_HOME.
- Patch by Seiei Higa. [ruby-core:67722] [Bug #10765]
+ * test/rubygems: ditto.
-Thu Feb 19 16:07:03 2015 Seiei Higa <hanachin@gmail.com>
+Sun Dec 1 06:00:49 2013 Aman Gupta <ruby@tmm1.net>
- * proc.c (rb_obj_singleton_method): Kernel#singleton_method should
- not use refinements, as well as Kernel#method.
- [ruby-core:67603] [Bug #10744]
+ * test/ruby/test_gc.rb (test_gc_reason): Force minor GC by consuming
+ free slots to fix test.
-Thu Feb 19 15:32:26 2015 Dave Stevens <dave@crowdlab.com>
+Sat Nov 30 21:22:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (str_make_independent_expand): terminate String when
- moved from heap to embedded. [Fix GH-821].
+ * dir.c (dir_initialize): check unknown keywords. [ruby-dev:47152]
+ [Bug #8060]
-Thu Feb 19 13:35:21 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 30 18:05:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/sdbm/_sdbm.c: include ruby/ruby.h for PRIdPTRDIFF when a
- macro `DEBUG` is defined. based on the patch by Owen Rodley in
- [ruby-core:67987]. [Bug #10825]
+ * ext/win32ole/win32ole.c (hash2named_arg): correct declaration to fix
+ build failure. a patch by phasis68 (Heesob Park) at
+ [ruby-core:58710]. [Bug #9184]
-Tue Feb 17 18:57:13 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 30 17:46:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/resolv.rb (Resolv::DNS::Resource#==, #hash): elements
- returned by Kernel#instance_variables are Symbols now.
- [ruby-core:68128] [Bug #10857]
+ * eval.c (ruby_cleanup): determine exit status and signal to terminate
+ before finalization, to get rid of access destroyed T_DATA exception
+ object. [ruby-core:58643] [Bug #9167]
-Tue Feb 17 15:39:01 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 30 16:25:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/win32/lib/win32/registry.rb (Win32::Registry::API): use wide
- versions of RegDeleteValue and RegDeleteKey.
- [ruby-core:67958] [Bug #10820]
+ * enumerator.c (enumerator_with_index): should not store local variable
+ address to memoize the arguments. it is invalidated after the return.
+ [ruby-core:58692] [Bug #9178]
-Tue Feb 17 11:50:06 2015 Yusuke Endoh <mame@tsg.ne.jp>
+Sat Nov 30 13:28:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (str_discard): does not free for STR_NOFREE string.
- [Bug #10853][ruby-core:68110]
+ * siphash.c (sip_hash24): fix for aligned word access little endian
+ platforms. [ruby-core:58658] [Bug #9172]
- * bootstraptest/test_string.rb: test for above.
+Sat Nov 30 13:21:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Feb 15 13:15:46 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_eval.c (rb_yield_block): implement non-nil block argument.
- * ext/socket/getaddrinfo.c (get_addr): reject too long hostname to
- get rid of GHOST vulnerability on very old platforms.
+Fri Nov 29 20:59:39 2013 Masaya Tarui <tarui@ruby-lang.org>
- * ext/socket/raddrinfo.c (make_hostent_internal): ditto, paranoic
- check for the canonnical name.
+ * vm_dump.c (rb_vmdebug_debug_print_pre): Bugfix. Get PC directly.
+ PC is cached into local stack and cfp->pc is incorrect at next of
+ branch or jump.
+ * vm_exec.h (DEBUG_ENTER_INSN): catch up this change.
+ * vm_core.h: update signature of rb_vmdebug_debug_print_pre.
-Sat Feb 14 13:27:41 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 29 20:43:57 2013 Masaya Tarui <tarui@ruby-lang.org>
- * vm_eval.c (send_internal), vm_insnhelper.c (vm_call_opt_send):
- convert String method name into a Symbol, as method_missing
- method expects its first argument to be a Symbol. [Bug #10828]
+ * compile.c: Bugsfix for dump_disasm_list.
+ rb_inspect denies a hidden object. So, insert wrapper that creates
+ the unhidden one.
+ adjust->label is null sometimes.
+ insn_data_line_no makes no sense at all.
- * vm_insnhelper.c (ci_missing_reason): return the reason of method
- missing in call info.
+Fri Nov 29 18:06:45 2013 Shota Fukumori <her@sorah.jp>
- * vm_insnhelper.c (vm_call_opt_send): re-apply r49500 with the
- proper missing reason. [Bug #10828]
+ * test/ruby/test_case.rb (test_method_missing): Test for r43913.
-Sat Feb 14 13:27:41 2015 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+Fri Nov 29 17:53:22 2013 Shota Fukumori <her@sorah.jp>
- * vm_insnhelper.c: Fix symbol leak with +send+ [Bug #10828]
+ * vm_insnhelper.c (check_match): Fix SEGV with VM_CHECKMATCH_TYPE_CASE
+ and class of `pattern` has `method_missing`
+ [Bug #8872] [ruby-core:58606]
-Sat Feb 14 08:53:50 2015 Shugo Maeda <shugo@ruby-lang.org>
+Fri Nov 29 17:06:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * class.c (method_entry_i, class_instance_method_list,
- rb_obj_singleton_methods): should not include methods of
- superclasses if recur is false. [ruby-dev:48854] [Bug #10826]
+ * vm_eval.c (rb_yield_block): yield block with rb_block_call_func
+ arguments.
-Fri Feb 13 13:59:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * range.c (range_each): use rb_yield_block.
- * lib/mkmf.rb (try_cppflags, try_cflags, try_ldflags): get rid of
- interference by modifying global variables in have_devel? method.
- [ruby-core:67962] [Bug #10821]
+ * include/ruby/ruby.h (RB_BLOCK_CALL_FUNC_ARGLIST): constify argv.
-Fri Feb 13 03:13:05 2015 Scott Francis <scott.francis@shopify.com>
+ * enum.c (rb_enum_values_pack): ditto.
- * thread_pthread.c (reserve_stack): fix intermittent SIGBUS on
- Linux, by reserving the stack virtual address space at process
- start up so that it will not clash with the heap space.
- [Fix GH-822]
+ * vm_eval.c (rb_block_call, rb_check_block_call): ditto.
-Fri Feb 6 12:05:13 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * include/ruby/ruby.h (RB_BLOCK_CALL_FUNC_ARGLIST): for declaration
+ argument list of rb_block_call_func.
- * thread.c: Improve documentation for Thread#value
- [Bug #10694][ruby-core:67324][ci skip]
+Fri Nov 29 11:26:43 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Feb 6 12:02:05 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/ruby.h (rb_block_call_func): add blockarg. block
+ function can take block argument, e.g., proc {|&blockarg| ...}.
- * ext/fiddle/win32/libffi.mk.tmpl: assemble without directory prefix.
- workaround of a bug of VC12 ml, by unak at [ruby-core:67792].
- [ruby-core:67789] [Bug #10780]
+Thu Nov 28 21:43:48 2013 Zachary Scott <e@zzak.io>
-Fri Feb 6 01:03:38 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * doc/dtrace_probes.rdoc: [DOC] Import dtrace probes doc from wiki
- * marshal.c (w_object, marshal_dump): use indetity tables for
- arbitrary VALUE keys, because of performance of FLONUM.
- [Bug #10761]
+Thu Nov 28 21:17:32 2013 Zachary Scott <e@zzak.io>
- * marshal.c (obj_alloc_by_klass, marshal_load): ditto.
+ * doc/contributing.rdoc: [DOC] Add heading above ChangeLog tips to
+ setup entry for commits, its not required. Actually easier if
+ contributors don't include a ChangeLog entry.
-Fri Feb 6 01:03:38 2015 Eric Wong <e@80x24.org>
+Thu Nov 28 21:16:18 2013 Zachary Scott <e@zzak.io>
- * benchmark/bm_marshal_dump_flo.rb: new benchmark for [Bug #10761]
+ * doc/contributing.rdoc: [DOC] Add coding style heading for patch
+ rules
-Fri Feb 6 01:03:38 2015 Eric Wong <e@80x24.org>
+Thu Nov 28 21:15:45 2013 Zachary Scott <e@zzak.io>
- * st.c (st_numhash): mix float value for flonum
- * hash.c (rb_any_hash): ditto
- * benchmark/bm_hash_aref_flo.rb: new benchmark
- * benchmark/bm_hash_ident_flo.rb: ditto
- [Bug #10761]
+ * doc/contributing.rdoc: [DOC] Add notes about deciding what to patch
-Thu Feb 5 16:30:09 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Nov 28 19:43:45 2013 Masaki Matsushita <glass.saga@gmail.com>
- * parse.y (gettable_gen): disable warnings of possible reference
- to a local variable defined in a past scope.
- [ruby-core:67162] [Bug #10661]
+ * benchmark/bm_hash_flatten.rb: added. r43896 is about 4 times faster
+ than 2.0.0p353.
-Mon Jan 26 15:35:16 2015 Seiei Higa <hanachin@gmail.com>
+ * benchmark/bm_hash_keys.rb: added. r43896 is about 5 times faster
+ than 2.0.0p353.
- * vm_method.c (check_definition): Module#public_method_defined?,
- Module#private_method_defined?, Module#protected_method_defined?
- should not use refinements. [ruby-core:67656] [Bug #10753]
+ * benchmark/bm_hash_values.rb: added. r43896 is about 5 times faster
+ than 2.0.0p353.
-Thu Jan 22 11:47:31 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Nov 28 19:29:04 2013 Zachary Scott <e@zzak.io>
- * doc/syntax/literals.rdoc (Symbols): now Symbols created by
- interpolation can be garbage collected. patch by Yihang Ho in
- [ruby-core:67194]. [Bug #10671]
+ * doc/contributing.rdoc: [DOC] Add notes about slideshow proposals
+ from wiki page: HowToRequestFeatures
-Thu Jan 22 11:45:32 2015 Kazuki Tsujimoto <kazuki@callcc.net>
+Thu Nov 28 17:34:42 2013 Masaki Matsushita <glass.saga@gmail.com>
- * eval_intern.h, vm.c, vm_eval.c, vm_insnhelper.c:
- change throw mechanism (not save target ep, but save target cfp).
- It fixes `unexpected break' bug that occurs when
- TracePoint#binding is called.
- [ruby-dev:48797] [Bug #10689]
+ * st.c: add st_values() and st_values_check().
- * test/ruby/test_settracefunc.rb: add a test.
+ * include/ruby/st.h: add prototypes for above.
-Tue Jan 20 14:05:08 2015 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * hash.c (rb_hash_values): use st_values_check() for performance
+ improvement if VALUE and st_data_t are compatible.
- * ext/win32ole/win32ole.c (ole_invoke): avoid SEGV when VT_RECORD
- variable is passed by reference. [ruby-dev:48803] [Bug #10697]
+Thu Nov 28 17:14:14 2013 Masaki Matsushita <glass.saga@gmail.com>
-Mon Jan 19 15:45:33 2015 Seiei Higa <hanachin@gmail.com>
+ * st.c (st_keys): fix not to use Qundef in st.c.
- * vm_method.c (rb_method_entry): if no super class, no original
- method entry. [ruby-core:67389] [Bug #10707]
+ * include/ruby/st.h: define modified prototype.
-Mon Jan 19 12:03:59 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (rb_hash_keys): use modified st_keys().
- * vm_dump.c (rb_vm_bugreport): check by configured result instead
- of system name for old FreeBSD. based on a patch by Steve Wills
- at [ruby-core:67655]. [Bug #10752]
+Thu Nov 28 16:34:43 2013 Aman Gupta <ruby@tmm1.net>
-Mon Jan 19 12:00:51 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: Expose details about last garbage collection via GC.stat.
+ * gc.c (gc_stat): Add :last_collection_flags for reason/trigger/type of
+ last GC run.
+ * gc.c (gc_prof_sweep_timer_stop): Record HAVE_FINALIZE GPR even
+ without GC_PROFILE_MORE_DETAIL.
+ * gc.c (gc_profile_flags): Add GC::Profiler.decode_flags to make sense
+ of GC.stat[:last_collection_flags]
+ * test/ruby/test_gc.rb (class TestGc): Test for above.
- * configure.in: get rid of pattern substitution, which is not
- supported by ash, and ash on NetBSD parses whole source first
- and fails to start. [ruby-dev:48823] [Bug #10750]
+Thu Nov 28 16:15:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jan 19 11:57:14 2015 Vit Ondruch <vondruch@redhat.com>
+ * win32/win32.c (rb_w32_dup2): extract from rb_cloexec_dup2() and
+ redirect_dup2().
- * configure.in (RUBY_SETJMP_TYPE): Remove superfluous semicolon
- which causes a syntax error with autoconf 2.63.
- [ruby-core:67429] [Bug #10716]
+Tue Nov 28 14:40:00 2013 Akira Matsuda <ronnie@dio.jp>
-Mon Jan 19 11:44:52 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/drb/ssl.rb: [Doc] Fix typo
- * lib/rdoc/text.rb (expand_tabs): get rid of infinite loop with
- CR. should check if substitution occurred too.
- [ruby-dev:48813] [Bug #10732]
+Thu Nov 28 13:56:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Jan 18 00:59:41 2015 Eric Wong <e@80x24.org>
+ * common.mk (Doxyfile): tool/file2lastrev.rb needs running with
+ BASERUBY since r43617. [ruby-dev:47823] [Bug #9169]
- * numeric.c (bit_coerce): use original value for error message
- [ruby-core:67405] [Bug #10711]
- * test/ruby/test_numeric.rb (test_coerce): check error message
+Thu Nov 28 09:18:39 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jan 18 00:53:38 2015 Seiei Higa <hanachin@gmail.com>
+ * string.c (rb_fstring): fstrings should be ELTS_SHARED.
+ If we resurrect dying objects (non-marked, but not swept yet),
+ pointing shared string can be collected.
+ To avoid such issue, fstrings (recorded to fstring_table)
+ should not be ELTS_SHARED (should not have a shared string).
- * vm_method.c (rb_alias): raise a NameError when creating alias to
- a refined method if the original method of the refined method is
- not defined. [ruby-core:67523] [Bug #10731]
+Thu Nov 28 01:35:08 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sat Jan 17 22:25:50 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * st.c (st_keys): fix to use st_index_t for size of hash.
- * dir.c (need_normalization): not only HFS+, CIFS (SMB) is also
- decomposed. [Bug #10704]
+Thu Nov 28 00:36:52 2013 Masaki Matsushita <glass.saga@gmail.com>
- * dir.c (NORMALIZE_UTF8PATH): Unicode decomposition seems to
- perform in an upper layer than file systems on OSX, as all path
- names are always decomposed regardless of file system types.
+ * st.c (st_keys): define st_keys(). it writes each key to buffer.
-Sat Jan 17 17:56:45 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (rb_hash_keys): use st_keys() for performance improvement
+ if st_data_t and VALUE are compatible.
- * parse.y (assocs, assoc): eliminate splatting empty literal
- hashes. [ruby-core:67446] [Bug #10719]
+ * include/ruby/st.h: define macro ST_DATA_COMPATIBLE_P() to predicate
+ whether st_data_t and passed type are compatible.
- * compile.c (compile_array_): supprt splatted hash in hash type.
+ * configure.in: check existence of builtin function to use in
+ ST_DATA_COMPATIBLE_P().
-Sat Jan 17 16:49:49 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Nov 28 00:07:28 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/readline/readline.c (readline_s_refresh_line): initialize
- before rl_refresh_line(), as some function make the internal
- state non-clean but rl_refresh_line() does not re-initialize it.
- [ruby-core:43957] [Bug #6232]
+ * ruby_atomic.h: remove duplicate definitions between ATOMIC_XXX
+ and ATOMIC_SIZE_XXX.
-Sat Jan 17 16:47:20 2015 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Nov 27 23:55:50 2013 Masaki Matsushita <glass.saga@gmail.com>
- * eval_error.c (error_print): pos and len parameters of rb_str_substr()
- are counted by characters, not bytes. use rb_str_subseq() instead.
- [Bug #10727] [ruby-core:67473]
+ * ruby_atomic.h: define ATOMIC_SIZE_CAS() with
+ __atomic_compare_exchange_n() and refactoring.
-Sat Jan 17 16:35:59 2015 Seiei Higa <hanachin@gmail.com>
+Tue Nov 27 21:43:00 2013 Akira Matsuda <ronnie@dio.jp>
- * vm_method.c (rb_export_method): bail out if the original method
- is undefined when the method is refined.
- [ruby-core:67387] [Bug #10706]
+ * lib/irb/notifier.rb: [Doc] Fix typo
+ * ext/json/lib/json/common.rb: Ditto.
-Sat Jan 17 16:16:14 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 27 18:04:57 2013 Akira Matsuda <ronnie@dio.jp>
- * dir.c (glob_helper): match in case-folding only if the directory
- resides on a case-insensitve file system, on OSX.
- [ruby-core:67364] [Bug #10700]
+ * lib/irb/notifier.rb: Fix typo
-Sat Jan 17 02:04:01 2015 Eric Wong <e@80x24.org>
+Wed Nov 27 17:54:57 2013 Koichi Sasada <ko1@atdot.net>
- * lib/resolv.rb: consider ENETUNREACH as ResolvTimeout
- [ruby-core:67411] [Bug #10712]
+ * gc.c (gc_mark_stacked_objects): check only when check_mode > 0.
-Sat Jan 17 01:57:57 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Nov 27 16:07:19 2013 Aman Gupta <ruby@tmm1.net>
- * ext/zlib/zlib.c: fix document of method signatures.
- [Bug #10668][ruby-core:67186][ci skip]
+ * test/ruby/test_gc.rb (class TestGc): Fix warning in
+ test_expand_heap.
-Sat Jan 17 01:52:42 2015 Tanaka Akira <akr@fsij.org>
+Wed Nov 27 15:55:52 2013 Aman Gupta <ruby@tmm1.net>
- * time.c (timelocalw): Set tm_isdst field -1 if vtm->isdst is
- VTM_ISDST_INITVAL. This bug is introduced at packing struct
- vtm (r45155).
- [ruby-core:67345] [Bug #10698] Reported by Boris Ruf.
+ * gc.c (Init_GC): Add new GC::INTERNAL_CONSTANTS for information about
+ GC heap/page/slot sizing.
+ * test/ruby/test_gc.rb (class TestGc): test for above.
-Fri Jan 16 21:17:34 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Nov 27 15:21:17 2013 Aman Gupta <ruby@tmm1.net>
- * test/ruby/test_io.rb: added timeout for AIX environment.
- [ruby-core:62983][Bug #9917]
+ * gc.c (gc_page_sweep): Fix compile warning from last commit.
+ * hash.c (hash_aset_str): Re-use existing variable to avoid
+ unnecessary pointer dereferencing.
-Fri Jan 16 18:25:57 2015 Tanaka Akira <akr@fsij.org>
+Wed Nov 27 15:12:55 2013 Koichi Sasada <ko1@atdot.net>
- * lib/resolv.rb (Resolv::DNS::Name#==): Compare an array of Label:Str
- objects. Label#Str#== is case-insensitive.
+ * gc.c (gc_page_sweep): disable debug print.
-Fri Jan 16 18:25:57 2015 Ben Miller <bmiller@rackspace.com>
+Wed Nov 27 15:05:59 2013 Koichi Sasada <ko1@atdot.net>
- * lib/resolv.rb (Resolv::DNS::Name#==): DNS is case-insensitive, so the
- comparison should be case-insensitive as well.
- [ruby-core:66498] [Bug #10550]
+ * gc.c (gc_stat): add new information heap_eden_page_length and
+ heap_tomb_page_length.
-Fri Jan 16 18:25:57 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_gc.rb: fix to use GC.stat[:heap_eden_page_length]
+ instead of GC.stat[:heap_length].
+ This test expects `heap_eden_page_length' (used pages size).
- * lib/resolv.rb (Resolv::DNS::Name): names with different dots
- should be different.
+Wed Nov 27 15:02:53 2013 Aman Gupta <ruby@tmm1.net>
-Fri Jan 16 17:34:57 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_eval.rb (class TestEval): Use assert_same instead of
+ assert_equal.
+ * test/ruby/test_hash.rb (class TestHash): ditto.
+ * test/ruby/test_iseq.rb (class TestISeq): ditto.
- * parse.y (f_label): return tLABEL value as it is.
- [ruby-core:67315] [Bug #10693]
+Wed Nov 27 14:50:02 2013 Eric Hodel <drbrain@segment7.net>
-Fri Jan 16 16:49:04 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/rinda/ring.rb: Announce RingServer for the same process.
+ [ruby-trunk - Bug #9163]
+ * test/rinda/test_rinda.rb: Tests for the above.
- * lib/net/http.rb (Net::HTTP#send_request): there is no response body
- with HEAD request. Patch by @rodrigosaito [fix GH-520]
+Wed Nov 27 14:37:33 2013 Aman Gupta <ruby@tmm1.net>
-Fri Jan 16 16:49:04 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * test/ruby/test_eval.rb (class TestEval): Add test for shared eval
+ filenames via rb_fstring().
+ * test/ruby/test_iseq.rb (class TestISeq): Add test for shared
+ iseq labels via rb_fstring(). [Bug #9159]
- * test/net/http/test_http.rb (_test_send_request__HEAD): Added
- failing test for send_request with HEAD method.
+Wed Nov 27 14:24:55 2013 Aman Gupta <ruby@tmm1.net>
-Fri Jan 16 14:56:08 2015 Eric Wong <e@80x24.org>
+ * hash.c (hash_aset_str): Use rb_fstring() to de-duplicate hash string
+ keys. Patch by Eric Wong. [Bug #8998] [ruby-core:57727]
+ * test/ruby/test_hash.rb (class TestHash): test for above.
- * symbol.c (rb_gc_free_dsymbol): delete from global fstr hash
- * test/ruby/test_symbol.rb (test_symbol_fstr_leak): test for bug
- [ruby-core:67268] [Bug #10686]
+Wed Nov 27 10:39:39 2013 Aman Gupta <ruby@tmm1.net>
-Fri Jan 16 14:20:52 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: Rename rb_heap_t members:
+ used -> page_length
+ limit -> total_slots
- * vm_args.c (keyword_hash_p): fix non-symbol keys hash.
- rb_extract_keywords() returns 0 not Qnil when no symbol keys is
- included.
+Wed Nov 27 08:24:49 2013 Aman Gupta <ruby@tmm1.net>
-Fri Jan 16 11:06:17 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * compile.c: Use rb_fstring() to de-duplicate string literals in code.
+ [ruby-core:58599] [Bug #9159] [ruby-core:54405]
+ * iseq.c (prepare_iseq_build): De-duplicate iseq labels and source
+ locations.
+ * re.c (rb_reg_initialize): Use rb_fstring() for regex string.
+ * string.c (rb_fstring): Handle non-string and already-fstr arguments.
+ * vm_eval.c (eval_string_with_cref): De-duplicate eval source
+ filename.
- * lib/unicode_normalize.rb: typo fix. [ci skip]
- [ruby-dev:48794][misc #10675]
- included. [ruby-core:67264] [Bug #10685]
-Fri Jan 16 11:04:35 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Nov 27 07:13:54 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * re.c (unescape_nonascii): append excape sequence as-is not
- unescaped character, to get rid of unexpected meta-character.
- [ruby-core:67193] [Bug #10670]
+ * ext/psych/lib/psych.rb: psych version 2.0.2
+ * ext/psych/psych.gemspec: ditto
-Sat Jan 3 21:17:58 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Nov 27 06:40:18 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * thread.c (rb_thread_variable_get): fix dynamic symbol keys.
- rb_check_id() returns non-zero only for static symbols, whereas
- thread local variable keys can be dynamic symbols.
- [ruby-core:67185] [Bug #10667]
+ * ext/psych/lib/psych/scalar_scanner.rb: fix support for negative
+ years.
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: ditto
+ * test/psych/test_date_time.rb: test for change.
+ Fixes: https://github.com/tenderlove/psych/issues/168
-Thu Jan 1 08:29:55 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Nov 27 04:46:55 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * cygwin/GNUmakefile.in (EXTOBJS): override to add resource files
- always. [ruby-core:67153] [Bug #10657]
+ * ext/psych/lib/psych/scalar_scanner.rb: fix regexp for matching TIME
+ strings.
+ * test/psych/test_date_time.rb: test for change.
+ Fixes: https://github.com/tenderlove/psych/issues/171
-Wed Dec 31 15:26:46 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Nov 27 02:26:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (f_kwrest, new_args_tail_gen): unnamed rest keyword and
- keywords bits arguments should be unique. since internal IDs
- depend on the local variable index in the current scope, new ID
- should be made before popping those vtables.
- [ruby-core:67157] [Bug #10659]
+ * string.c (str_new4): copy the original capacity so that memsize of
+ frozen shared string returns correct size.
-Wed Dec 31 14:11:58 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Nov 27 02:20:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tkextlib/tcllib/plotchart.rb: fix to invoke correct function
- of tcllib. Patch by @zalt50 [fix GH-787]
+ * array.c (rb_ary_hash): should not ignore the rest of recursive
+ constructs.
-Wed Dec 31 13:26:22 2014 Eric Wong <e@80x24.org>
+ * hash.c (rb_hash_hash): ditto.
- * vm_core.h (rb_vm_living_threads_insert): preserve order
- [Bug #10660] [ruby-core:67154] [ruby-core:67159]
+ * range.c (range_hash): ditto.
-Fri Dec 26 15:42:27 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * struct.c (rb_struct_hash): ditto.
- * tool/rbinstall.rb: skip installing bundle gems if zlib is unavailable.
- [Bug #10647] [ruby-dev:48787]
+ * test/-ext-/test_recursion.rb (TestRecursion): separate from
+ test/ruby/test_thread.rb.
-Thu Dec 25 17:42:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 26 22:43:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/io/console/console.c (console_dev): send the given arguments
- to the opened console. as a special case, do nothing if :close
- is given.
+ * hash.c (rb_hash): cut off if recursion detected to get rid of stack
+ overflow. [ruby-core:58567] [Bug #9151]
- * test/lib/leakchecker.rb (LeakChecker#check_fd_leak): close if
- console.
+Tue Nov 26 20:02:39 2013 Koichi Sasada <ko1@atdot.net>
-Thu Dec 25 17:37:47 2014 Naohisa Goto <ngotogenome@gmail.com>
+ * test/ruby/test_settracefunc.rb: add tests for a_call/a_return
+ by Brandur <brandur@mutelight.org> [Feature #9120]
- * gc.c (wmap_final_func): fix memory size shortage when realloc wmap.
- Fix SEGV during finilize of WeakRef on Solaris (though the SEGV
- could occur on all OS/platforms). [ruby-dev:48779] [Bug #10646]
+Tue Nov 26 19:29:52 2013 Koichi Sasada <ko1@atdot.net>
-Thu Dec 25 17:31:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * common.mk: add useful config "set breakpoint pending on"
+ for run.gdb.
- * configure.in (NET_LUID): include winsock2.h instead of windows.h.
- patch by Jon Forums in [ruby-core:67125]. [Bug #10640]
+Tue Nov 26 19:17:47 2013 Koichi Sasada <ko1@atdot.net>
-Thu Dec 25 16:01:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/object_tracing.c (newobj_i): skip class_path if class
+ is frozen.
- * file.c (rb_file_expand_path_internal): drop characters ignored
- by filesystem on Mac OS X.
+ rb_class_path() can modify frozen classes (and causes errors).
+ This patch is temporary. We need no-modification/no-allocation
+ class path function.
-Thu Dec 25 15:36:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 26 18:12:13 2013 Koichi Sasada <ko1@atdot.net>
- * dir.c (replace_real_basename): get the real name and replace the
- base name with it by getattrlist(2) if available.
- suggested by Matthew Draper at [ruby-core:67116]. [Bug #10015]
+ * vm_trace.c: skip "exception check" and "reentrant check (only normal
+ events) for internal events.
- * dir.c (glob_helper): get the real name of the whole path, not
- only the last name.
+ Reentrant check for internal events are remaining.
-Thu Dec 25 13:59:17 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 26 17:38:16 2013 Koichi Sasada <ko1@atdot.net>
- * configure.in (NET_LUID): include also ifdef.h as a workaround of
- a bug in mingw-w64 header. [ruby-core:67103] [Bug #10640]
+ * vm_trace.c: prohibit to specify normal events and internal events
+ simultaneously.
+ I will introduce special care for internal events later.
-Thu Dec 25 12:47:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/-test-/tracepoint/tracepoint.c: test this behavior.
- * parse.y (gettable_gen): warn possible reference to a local
- variable defined in a past scope.
+ * test/-ext-/tracepoint/test_tracepoint.rb: ditto.
-Thu Dec 25 10:09:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 26 16:30:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/io/console/console.c (console_dev): id_console is not a
- constant name, use rb_const_remove() to get rid of NameError.
+ * file.c (rb_readlink): fix buffer overflow on a long symlink. since
+ rb_str_modify_expand() expands from its length but not its capacity,
+ need to set the length properly for each expansion.
+ [ruby-core:58592] [Bug #9157]
-Thu Dec 25 09:18:55 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Nov 26 14:23:17 2013 Aman Gupta <ruby@tmm1.net>
- * test/resolv/test_dns.rb (TestResolvDNS#test_query_ipv4_address):
- set timeout for recvfrom because if client thread is crashed, it
- waits infinity.
+ * ext/objspace/objspace_dump.c (dump_append_string_value): Escape
+ control characters for strict json parsers.
+ * ext/objspace/objspace_dump.c (objspace_dump): Document File/IO
+ output option.
-Thu Dec 25 08:42:11 2014 Eric Wong <e@80x24.org>
+Tue Nov 26 11:43:19 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/uri/generic.rb (split_userinfo): fstring for 1-byte split
- (set_port): reduce bytecode size
- (check_path): reduce garbage via opt_str_freeze
- (query=): ditto
- (fragment=): ditto
- [misc #10628]
- * lib/uri/rfc3986_parser.rb (regexp): cache as attr
- (initialize): setup and freeze regexp attr once
- (split): reduce bytecode size, use opt_str_freeze
- (parse): minor bytecode and garbage reduction
- (default_regexp): rename for initialize
+ * ruby_atomic.h: use __atomic builtin functions supported by GCC.
+ __sync family are legacy functions now and it is recommended
+ that new code use the __atomic functions.
+ http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
-Wed Dec 24 20:38:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: check existence of __atomic functions.
- * dir.c (glob_make_pattern): restrict searching case-insensitive
- name from the filesystem to only last part, for the performance.
- [ruby-core:63591] [Bug #10015]
+Tue Nov 26 10:57:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 24 18:21:27 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/bigdecimal/bigdecimal.gemspec: revert Gem::Specification#date
+ for snapshot/release tarballs.
- * gc.c: remove unused rb_objspace_t::rgengc::old_objects_at_gc_start.
+Tue Nov 26 06:42:50 2013 Aman Gupta <ruby@tmm1.net>
-Wed Dec 24 13:25:22 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * NEWS: Add ObjectSpace.after_gc_{start,end}_hook=
+ * ext/objspace/objspace_dump.c: [DOC] catch up dump/dump_all to r43679
- * tool/redmine-backporter.rb: require view_changesets permission.
+Tue Nov 26 04:12:10 2013 Eric Hodel <drbrain@segment7.net>
-Wed Dec 24 13:00:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 612f85a. Notable changes:
- * tool/downloader.rb (Downloader.download): fix the exception to
- re-raise. initialize methods of subclasses of Exception may
- have different parameters. [ruby-core:67086] [Bug #10639]
+ Fixed installation and activation of git: and path: gems via
+ Gem.use_gemdeps
-Wed Dec 24 12:16:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ Improved documentation coverage
- * ruby.h (rb_data_type_t): revert r48647 and revise parent member.
- [ruby-core:66969] [Bug #10621]
+ * test/rubygems: ditto.
-Wed Dec 24 05:40:52 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Nov 25 22:23:03 2013 Zachary Scott <e@zzak.io>
- * tool/downloader.rb: use config.guess in gcc repo.
+ * lib/xmlrpc.rb: [DOC] Fix link to xmlrpc4r site [Bug #9148]
+ Patch by Giorgos Tsiftsis
-Wed Dec 24 11:50:19 2014 Koichi Sasada <ko1@atdot.net>
+Mon Nov 25 19:48:10 2013 Zachary Scott <e@zzak.io>
- * hash.c (rb_hash_delete): return Qnil if there are no corresponding
- entry. [Bug #10623]
+ * lib/uri/common.rb: [DOC] typo fixes by @vipulnsward [Fixes GH-456]
+ https://github.com/ruby/ruby/pull/456
+ * lib/uri/generic.rb: [DOC] ditto.
- * hash.c (rb_hash_delete_entry): try delete and return Qundef if there
- are no corresponding entry.
+Mon Nov 25 14:34:42 2013 Zachary Scott <e@zzak.io>
- * internal.h: add rb_hash_delete_entry()'s declaration.
+ * ext/bigdecimal/bigdecimal.gemspec: bump BigDecimal to 1.2.3 for
+ proper release date in RubyGems
- * symbol.c: use rb_hash_delete_entry().
+Mon Nov 25 14:25:08 2013 Zachary Scott <e@zzak.io>
- * thread.c: use rb_hash_delete_entry().
+ * ext/bigdecimal/bigdecimal.gemspec: Remove Gem::Specification#date
+ We should rely on rubygems to create the date the gem was released
+ for each version.
- * ext/-test-/hash/delete.c: use rb_hash_delete_entry().
+Mon Nov 25 06:53:30 2013 Koichi Sasada <ko1@atdot.net>
-Wed Dec 24 09:35:11 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * internal.h: do not use ruby_sized_xrealloc() and ruby_sized_xfree()
+ if HAVE_MALLOC_USABLE_SIZE (or _WIN32) is defined.
- * ext/fiddle/extconf.rb: remove ffitarget.h generated by configure on
- mswin, because it's not normal file (cygwin's symlink) and have
- system attribute.
+ We don't need these function if malloc_usable_size() is available.
-Wed Dec 24 05:40:52 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * gc.c: catch up this change.
- * tool/downloader.rb: support ruby 1.8.
+ * gc.c: define HAVE_MALLOC_USABLE_SIZE on _WIN32.
-Wed Dec 24 02:44:06 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * array.c (ary_resize_capa): do not use ruby_sized_xfree() with
+ local variable to avoid "unused local variable" warning.
+ This change only has few impact.
- * lib/net/http/response.rb (Net::HTTPResponse): require one or more
- spaces [Bug #10591].
- by leriksen <leif.eriksen.au@gmail.com>
- https://github.com/ruby/ruby/pull/782 fix GH-782
- NOTE: graph.facebook.com returns without SP Reason-Phrase.
+ * string.c (rb_str_resize): ditto.
-Wed Dec 24 02:12:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Nov 25 05:05:04 2013 Koichi Sasada <ko1@atdot.net>
- * tool/make-snapshot (package): VCS#branch_list expects glob a
- pattern string but not a regexp. based on the patch by Vit
- Ondruch. in [ruby-core:67064]. [Bug #10636]
+ * test/-ext-/tracepoint/test_tracepoint.rb: catch up GC.stat changes
+ at r43835.
- * tool/vcs.rb (VCS::SVN#branch_list): strip newlines.
+Mon Nov 25 04:45:59 2013 Koichi Sasada <ko1@atdot.net>
- * tool/vcs.rb (VCS::GIT.get_revisions): retrieve modified time
- from toplevel log too.
+ * gc.c: continue to change OLDSPACE -> OLDMALLOC.
+ RGENGC_ESTIMATE_OLDSPACE -> RGENGC_ESTIMATE_OLDMALLOC.
- * tool/vcs.rb (VCS::GIT#branch_list): yield for each lines.
+ * gc.c: add a new major GC reason GPR_FLAG_MAJOR_BY_OLDMALLOC.
-Wed Dec 24 00:23:13 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Nov 25 04:16:09 2013 Koichi Sasada <ko1@atdot.net>
- * tool/extlibs.rb (do_extract): the pipe should be binmode.
+ * gc.c: change terminology "..._num" to "..._slots" about slot operation.
+ * final_num -> final_slots
+ * objspace_live_num() -> objspace_live_slots()
+ * objspace_limit_num() -> objspace_limit_slots()
+ * objspace_free_num() -> objspace_free_slots()
-Wed Dec 24 00:21:44 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Nov 25 04:03:12 2013 Koichi Sasada <ko1@atdot.net>
- * Makefile.in, common.mk: move common-srcs to Makefile.in because
- it breaks build on mswin.
+ * gc.c (gc_stat): add internal information.
+ * heap_swept_slot
+ * malloc_increase
+ * malloc_limit
+ * remembered_shady_object
+ * remembered_shady_object_limit
+ * old_object
+ * old_object_limit
+ * oldmalloc_increase
+ * oldmalloc_limit
-Wed Dec 24 00:04:45 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (gc_stat): rename names.
+ * heap_live_num -> heap_live_slot
+ * heap_free_num -> heap_free_slot
+ * heap_final_slot -> heap_final_slot
- * lib/open-uri.rb (OpenURI.open_http): accept multiple certs path in
- ssl_ca_certs.
+ Quote from RDoc of GC.stat():
+ "The contents of the hash are implementation specific and may
+ be changed in the future."
- * tool/downloader.rb: use certs of rubygems for downloading gems.
+ * test/ruby/test_gc.rb: catch up this change.
-Tue Dec 23 22:39:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Nov 25 03:59:45 2013 Koichi Sasada <ko1@atdot.net>
- * ext/fiddle/extlibs: libffi-3.2.1 and patch for mswin.
+ * test/ruby/test_gc.rb: catch up last commit.
+ Now RUBY_GC_OLDSPACE_LIMIT(...) is RUBY_GC_OLDMALLOC_LIMIT(...).
-Tue Dec 23 22:04:38 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Nov 25 03:10:46 2013 Koichi Sasada <ko1@atdot.net>
- * lib/uri/generic.rb (URI::Generic#query=): don't escape [\]^
- on both rfc2396 and rfc3986. [Bug #10619]
+ * gc.c: change terminology OLDSPACE -> OLDMALLOC.
+ (oldspace -> oldmalloc for variable names)
-Tue Dec 23 16:03:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ OLDSPACE is confusing because it is not includes slots.
+ To more clearly, rename such as (oldspace_limit -> oldmalloc_limit).
+ It is clear that it measures (estimates) malloc()'ed size.
- * ext/win32/lib/win32/registry.rb (Win32::Registry::Error#initialize):
- try en_US message if the default message cannot be encoded to
- locale. [ruby-core:65295] [Bug #10300]
+Mon Nov 25 00:50:03 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Dec 23 11:42:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h: use __builtin_bswap16() if possible.
- * ext/openssl/ossl_cipher.c (ossl_cipher_update_long): update huge
- data gradually not to exceed INT_MAX. workaround of OpenSSL API
- limitation. [ruby-core:67043] [Bug #10633]
+ * configure.in: check existence of __builtin_bswap16().
-Mon Dec 22 21:30:16 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Sun Nov 24 22:24:19 2013 Tanaka Akira <akr@fsij.org>
- * test/win32ole/test_win32ole_event.rb: some tests are
- executed on standard Windows OS without ADO.
+ * bignum.c (bigxor_int): Apply BIGLO for long in a BDIGIT expression.
+ (bigor_int): Ditto.
+ (bigand_int): Ditto.
-Mon Dec 22 14:08:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Nov 24 18:13:23 2013 Tanaka Akira <akr@fsij.org>
- * signal.c (received_signal): fix condition to define.
- [ruby-core:67032] [Bug #10629]
+ * include/ruby/defines.h (SIZEOF_ACTUAL_BDIGIT): Defined.
-Sun Dec 21 10:51:51 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): Use
+ SIZEOF_ACTUAL_BDIGIT instead of SIZEOF_BDIGITS.
+ SIZEOF_BDIGITS can be different to sizeof(BDIGIT).
- * test/win32ole/test_win32ole_event.rb: test_s_new_exception is
- executed on standard Windows OS without ADO.
+Sun Nov 24 13:49:08 2013 Tanaka Akira <akr@fsij.org>
-Sun Dec 21 08:35:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/defines.h: Don't use int128_t for Bignum.
+ It's not always faster.
- * configure.in (jemalloc): fix option argument, should use
- `$withval` but not `yes` always. [ruby-core:66994] [Bug #10625]
+ * bignum.c: Ditto.
- * configure.in (jemalloc): defer adding the liner option to get
- rid of linking contest against jemalloc, so that it works
- without runtime dynamic load path.
+Sun Nov 24 10:18:15 2013 Aman Gupta <ruby@tmm1.net>
-Sat Dec 20 17:49:03 2014 Tanaka Akira <akr@fsij.org>
+ * NEWS: Add details about new debugging features and APIs.
- * lib/tmpdir.rb (Dir.mktmpdir): Accept nil again, as Ruby 2.1.
- [ruby-core:66943] [Bug #10616] Fixed by Alex Slynko.
+Sun Nov 24 09:37:20 2013 Andrew Vit <andrew@avit.ca>
-Sat Dec 20 11:22:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/csv.rb: Optimize header hashes by freezing string keys.
+ [ruby-core:58510]
- * ext/fiddle/depend, ext/fiddle/extconf.rb: try to build bundled
- libffi if existing.
+Sun Nov 24 09:18:06 2013 Aman Gupta <ruby@tmm1.net>
-Sat Dec 20 05:21:00 2014 Eric Wong <e@80x24.org>
+ * ext/objspace/objspace_dump.c (dump_object): Use PRIuSIZE to print
+ size_t for better win32 compatibility.
+ * test/objspace/test_objspace.rb (test_dump_all): Hold reference to
+ test string to avoid failure due to GC. Reduce size of failure message
+ using grep(/TEST STRING/).
- * test/test_weakref.rb (test_repeated_object_leak): increase timeout
- [Bug #10618]
+Sun Nov 24 08:38:00 2013 Kyle Stevens <kstevens715@gmail.com>
-Fri Dec 19 22:33:13 2014 Tanaka Akira <akr@fsij.org>
+ * lib/csv.rb: If skip_lines is set to a String, convert it to a Regexp
+ to prevent the alternative, which is that each line in the CSV gets
+ converted to a Regexp when calling skip_lines#match.
- * tool/update-deps: Use $(hdrdir) if possible.
+Sun Nov 24 01:03:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Fri Dec 19 22:10:00 2014 Kenta Murata <mrkn@cookpad.com>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_power): Use FIX2LONG instead
+ of FIX2INT to avoid conversion error.
- * ext/bigdecimal/depend: Fix dependencies to make bigdecimal
- installable by rubygems.
+Sun Nov 24 00:44:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/bigdecimal/bigdecimal.gemspec: version 1.2.6.
+ * include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): define by macros
+ defined in defines.h, instead of complex and repeated expression.
-Fri Dec 19 20:00:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 23 22:22:26 2013 Tanaka Akira <akr@fsij.org>
- * include/ruby/ruby.h (PRIsVALUE): put a space after string
- literals not to be confused with C++11 string literal suffix.
- https://github.com/ruby/ruby/commit/a9f3eb7#commitcomment-9040169
+ * include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): Limit the value to
+ less than 8.
-Fri Dec 19 15:36:02 2014 Simon Genier <simon.genier@shopify.com>
+Sat Nov 23 19:52:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * hash.c (hash_equal): prefer true than the result of implicit
- conversion from int returned by rb_eql() to VALUE. [Fix GH-789]
+ * ext/bigdecimal/lib/bigdecimal/math.rb (BigMath.E): Use BigMath.exp.
+ [Feature #6857] [ruby-core:47130]
-Thu Dec 18 17:45:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 23 19:46:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * configure.in (rb_cv_binary_elf): get rid of -e option of cat
- which is not available on BusyBox, use tr instead.
- [ruby-core:64824] [Bug #10210]
+ * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Optimize the
+ calculation algorithm to reduce the number of divisions.
+ This optimization was proposed by Rafal Michalski.
+ [Feature #6857] [ruby-core:47130]
-Thu Dec 18 14:25:17 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Sat Nov 23 19:20:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * signal.c (ruby_signal): since SIGKILL is not supported by MSVCRT,
- should be treated before calling signal(3).
- [Bug #10615]
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): The signature was
+ changed to allow us to pass arguments directly.
-Wed Dec 17 12:20:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_div3): Added for the role of
+ the old BigDecimal_div2.
- * compile.c (rb_method_for_self_aref, rb_method_for_self_aset):
- move from iseq.c to build from node instead of arrays.
+Sat Nov 23 12:31:00 2013 Koichi Sasada <ko1@atdot.net>
-Wed Dec 17 10:50:09 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c: fix global variable name.
+ Now we have following environments (and related variable names).
- * test/gdbm/test_gdbm.rb: Added test for each_key called without a block.
- Patch by @joeyates [fix GH-783]
+ * RUBY_GC_HEAP_INIT_SLOTS
+ * RUBY_GC_HEAP_FREE_SLOTS
+ * RUBY_GC_HEAP_GROWTH_FACTOR (new from 2.1)
+ * RUBY_GC_HEAP_GROWTH_MAX_SLOTS (new from 2.1)
-Wed Dec 17 10:18:42 2014 Koichi Sasada <ko1@atdot.net>
+ * obsolete
+ * RUBY_FREE_MIN -> RUBY_GC_HEAP_FREE_SLOTS (from 2.1)
+ * RUBY_HEAP_MIN_SLOTS -> RUBY_GC_HEAP_INIT_SLOTS (from 2.1)
- * compile.c (iseq_compile_each): check
- iseq->compile_data->option->specialized_instruction for opt_* insn.
+ * RUBY_GC_MALLOC_LIMIT
+ * RUBY_GC_MALLOC_LIMIT_MAX (new from 2.1)
+ * RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR (new from 2.1)
- * test/ruby/test_iseq.rb: check no specialized_instructions option.
+ * RUBY_GC_OLDSPACE_LIMIT (new from 2.1)
+ * RUBY_GC_OLDSPACE_LIMIT_MAX (new from 2.1)
+ * RUBY_GC_OLDSPACE_LIMIT_GROWTH_FACTOR (new from 2.1)
-Wed Dec 17 09:48:57 2014 Eric Wong <e@80x24.org>
+ * test/ruby/test_gc.rb: catch up this change.
- * compile.c (iseq_compile_each): only emit opt_str_freeze,
- opt_aref_with, and opt_aset_with insn when no block is given
- [Bug #10557] [ruby-core:66595]
- * test/ruby/test_optimization.rb (test_block_given_aset_aref):
- new test for bug thanks to Bartosz Kopinski.
- (test_string_freeze): additional assertion for object_id
+Sat Nov 23 09:45:49 2013 Aman Gupta <ruby@tmm1.net>
-Wed Dec 17 01:06:47 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * marshal.c (w_object): Use HASH_PROC_DEFAULT directly from internal.h
- * ext/win32/lib/Win32API.rb (Win32API#call): need to splat. hmm, when
- was this broken?
+Sat Nov 23 08:43:23 2013 Aman Gupta <ruby@tmm1.net>
-Tue Dec 16 15:18:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: Rename heap_pages_swept_num to heap_pages_swept_slots to
+ clarify meaning (number of slots, not pages).
- * iseq.c (rb_method_for_self_aref, rb_method_for_self_aset): call
- accessor functions directly, not to be affected by [] and []=
- methods. [ruby-core:66846] [Bug #10601]
+Sat Nov 23 08:23:23 2013 Aman Gupta <ruby@tmm1.net>
- * struct.c (define_aref_method, define_aset_method): ditto.
+ * lib/set.rb (class SortedSet): Fix source_location for methods
+ defined via eval.
- * vm_insnhelper.c (rb_vm_opt_struct_aref, rb_vm_opt_struct_aset):
- direct accessors of Struct.
+Sat Nov 23 03:44:03 2013 Eric Hodel <drbrain@segment7.net>
-Tue Dec 16 12:01:29 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/rubygems: Update to RubyGems master dcce4ff. Important changes
+ in this commit:
- * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
- extend timeout seconds to 60 for RGENGC_CHECK_MODE > 0 environment.
+ Remove automatic detection of gem dependencies files. This prevents a
+ security hole as described in [ruby-core:58490]
-Tue Dec 16 08:53:12 2014 Eric Wong <e@80x24.org>
+ Fixed bugs for installing git gems.
- * tool/vcs.rb: fix Ruby 1.8 compatibility harder
+ * test/rubygems: ditto.
-Tue Dec 16 07:37:18 2014 Eric Wong <e@80x24.org>
+Fri Nov 22 22:30:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * gc.c (GC_HEAP_FREE_SLOTS): move definition to match use order
- (RUBY_GC_HEAP_GROWTH_SLOTS): s/factor/number of slots/
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_power):
+ Round the result value only if the precision is given.
- * man/ruby.1: add section for GC environment variables
- [Feature #10197]
+Fri Nov 22 17:20:50 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Tue Dec 16 05:41:46 2014 Eric Wong <e@80x24.org>
+ * transcode.c (str_transcode0): don't scrub invalid chars if
+ str.encode doesn't have explicit invalid: :replace.
+ workaround fix for see #8995
- * tool/vcs.rb: fix Ruby 1.8 compatibility
+Fri Nov 22 17:11:26 2013 Narihiro Nakamura <authornari@gmail.com>
-Mon Dec 15 17:51:28 2014 Koichi Sasada <ko1@atdot.net>
+ * include/ruby/intern.h, internal.h: Expose rb_gc_count().
- * ext/objspace/objspace.c: ObjectSpace.memsize_of(obj) returns
- with sizeof(RVALUE). [Bug #8984]
+Fri Nov 22 17:07:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * gc.c (obj_memsize_of): ditto.
+ * ext/bigdecimal/bigdecimal.gemspec: version 1.2.2.
- * NEWS: add a NEWS entry.
+Fri Nov 22 17:04:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * test/objspace/test_objspace.rb: catch up this fix.
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_data_type):
+ Use RUBY_TYPED_FREE_IMMEDIATELY only if it is available.
- * test/ruby/test_file_exhaustive.rb: ditto.
+Fri Nov 22 16:49:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Mon Dec 15 16:19:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_power): Round the result value.
+ [Bug #8818] [ruby-core:56802]
- * string.c (rb_enc_str_coderange): dummy wchar, non-endianness
- encoding string cannot be ascii only.
- [ruby-core:66835] [Bug #10598]
+ * test/bigdecimal/test_bigdecimal.rb: Add a test for the above fix.
-Sun Dec 14 20:11:42 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 16:25:43 2013 Koichi Sasada <ko1@atdot.net>
- * parse.y (primary): restore current_arg so that circular
- reference after a method definition is also warned.
- [ruby-core:61299] [Bug #9593]
+ * gc.c (heap_set_increment): accept minimum additional page number.
-Sat Dec 13 20:41:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_after_sweep): allocate pages to allocate at least
+ RUBY_HEAP_MIN_SLOTS.
+ [Bug #9137]
- * vm_trace.c (rb_postponed_job_flush): mask signal trap interrupt
- too to defer handling after finalizers finished.
- [ruby-core:66825] [Bug #10595]
+Fri Nov 22 16:19:52 2013 Narihiro Nakamura <authornari@gmail.com>
-Sat Dec 13 18:33:25 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * include/ruby/intern.h (rb_gc_set_params): Deprecate
+ rb_gc_set_params because it's only used in ruby internal.
- * test/openssl/test_pkey_ec.rb: ignored tests with old OpenSSL.
+ * internal.h (ruby_gc_set_params): Declare rb_gc_set_params's
+ alias function.
-Sat Dec 13 18:01:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: ditto.
- * signal.c (check_stack_overflow): check sp also on i386/x86_64
- FreeBSD.
+ * ruby.c: use ruby_gc_set_params.
-Sat Dec 13 09:58:41 2014 Eric Wong <e@80x24.org>
+Fri Nov 22 14:55:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * gc.c (define_final0): avoid duplicate blocks
- [Bug #10537]
- * test/test_weakref.rb (test_repeated_object_leak): new test
+ * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Insert rb_thread_check_ints.
-Sat Dec 13 04:59:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 14:35:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * bin/erb (ERB::Main#run): get rid of shadowing outer local
- variables. [ruby-core:65772] [Feature #10395]
+ * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Fix the inserting points
+ of RB_GC_GUARDs.
-Fri Dec 12 21:56:44 2014 Kouhei Sutou <kou@cozmixng.org>
+Fri Nov 22 14:31:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * gems/bundled_gems: Upgrade to test-unit 3.0.8. assert_throw and
- assert_nothing_thrown in test-unit 3.0.7 were broken by
- UncaughtThrowError change introduced in Ruby 2.2.0
- preview2. These assertions in test-unit 3.0.8 work well with
- UncaughtThrowError in Ruby 2.2.0 preview2.
+ * ext/bigdecimal/bigdecimal.c: Fix indentation.
-Fri Dec 12 19:48:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 14:03:00 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * bin/erb (ARGV.switch, ERB::Main#run): allow variables to be set
- from the command line. [ruby-core:65772] [Feature #10395]
+ * ext/nkf: merge nkf 2.1.3 2a2f2c5.
-Fri Dec 12 19:31:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 12:43:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/erb.rb (ERB#lineno): accessor for line number to eval.
+ * util.c (ruby_strtod): ignore too long fraction part, which does not
+ affect the result.
- * lib/erb.rb (ERB#location=): setter of file name and line number.
+Fri Nov 22 12:17:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Dec 12 13:09:13 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#initialize):
+ initialize of a module should pass arguments to super.
- * gc.c (gc_latest_gc_info): return :state field to show current
- GC state (none/marking/sweeping).
- [Feature #10590]
+Fri Nov 22 12:02:58 2013 Tanaka Akira <akr@fsij.org>
-Fri Dec 12 10:49:18 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_settracefunc.rb: Ignore events from other threads.
- * string.c (rb_str_crypt): check arguments more strictly.
- * crypt() is not for wide char strings
- * salt bytes should not be NUL
+Fri Nov 22 10:35:57 2013 Koichi Sasada <ko1@atdot.net>
-Fri Dec 12 08:16:01 2014 Matt Hoyle <matt@deployable.co>
+ * vm.c (ruby_vm_destruct): do not use ruby_xfree() after freeing
+ objspace.
- * io.c (io_read) Fix spelling in docco for read. [Fix GH-781]
- try > tries
+ * gc.c (ruby_mimfree): added. It is similar to ruby_mimmalloc().
-Thu Dec 11 19:06:01 2014 Koichi Sasada <ko1@atdot.net>
+ * internal.h: ditto.
- * class.c (class_alloc): Start from age == 2.
- Class and Module objects can be living long life.
+Fri Nov 22 09:42:35 2013 Zachary Scott <e@zzak.io>
- * iseq.c: Same for ISeq objects.
+ * test/digest/test_digest.rb: Reverse order of assert_equal
+ Reported by @splattael
- * gc.c (RVALUE_AGE_RESET): added.
+Fri Nov 22 09:03:16 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * gc.c (newobj_of): allow to generate (age != 0) objects.
+ * gc.c: fix build failure on FreeBSD introduced by r43763.
+ malloc_usable_size() is defined by malloc_np.h on FreeBSD.
- * gc.c (rb_copy_wb_protected_attribute): reset age for wb unprotected
- objects.
+ * configure.in: check malloc.h and malloc_np.h.
- * include/ruby/ruby.h: add RUBY_TYPED_PROMOTED1 as an unrecommended
- flag.
+Fri Nov 22 08:27:13 2013 Eric Hodel <drbrain@segment7.net>
-Thu Dec 11 05:37:52 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * lib/rubygems: Update to RubyGems master 50a8210. Important changes
+ in this commit:
- * lib/prime.rb: Remove useless loop and block capture.
- See [#10354]
+ RubyGems now automatically checks for gem.deps.rb or Gemfile when
+ running ruby executables. This behavior is similar to `bundle exec
+ rake`. This change may be reverted before Ruby 2.1.0 if too many bugs
+ are found.
-Thu Dec 11 04:27:24 2014 Koichi Sasada <ko1@atdot.net>
+ * test/rubygems: ditto.
- * vm_core.h: introduce new field
- rb_thread_t::local_storage_recursive_hash_for_trace to store
- recursive hash to avoid creating new recursive (nested) hashes
- for each trace events.
- [Bug #10511]
+Thu Nov 21 22:33:59 2013 Koichi Sasada <ko1@atdot.net>
- * vm_trace.c (rb_threadptr_exec_event_hooks_orig): use it.
+ * gc.c: RGENGC_CHECK_MODE should be 0.
- * cont.c: catch up this fix.
+Thu Nov 21 21:40:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * vm.c (rb_thread_mark): ditto.
+ * ext/bigdecimal/bigdecimal.c (VpAlloc): Fix the expr to adjust the size
+ of the digit array.
-Wed Dec 10 13:39:27 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Nov 21 21:36:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * struct.c (define_aref_method, define_aset_method): use iseq
- VALUE instead of rb_iseq_t to prevent from GC, as RB_GC_GUARD
- makes sense only for local variables. [Feature #10575]
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_sqrt): Fix the precision of
+ the result BigDecimal of sqrt.
+ [Bug #5266] [ruby-dev:44450]
-Wed Dec 10 09:38:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/bigdecimal/test_bigdecimal.rb: add tests for the above changes.
- * thread.c (exec_recursive): use the same last method name as
- recursive_push in the error message when recursive_pop failed.
- [ruby-core:66742] [Bug #10579]
+Thu Nov 21 18:49:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 10 02:48:46 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (vm_xrealloc, vm_xfree): use malloc_usable_size() to obtain old
+ size if available.
- * test/net/http/test_https.rb
- (TestNetHTTPS#test_certificate_verify_failure): on Windows,
- Errno::ECONNRESET will be raised when the verify is failure at the
- client side, and it'll be eaten by WEBrick.
+Thu Nov 21 18:47:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/open-uri/test_ssl.rb (TestOpenURISSL#test_validation_failure):
- ditto.
+ * lib/delegate.rb (SimpleDelegator#__getobj__): target object must be set.
-Wed Dec 10 00:42:13 2014 Eric Wong <e@80x24.org>
+ * lib/delegate.rb (DelegateClass#__getobj__): ditto.
- * iseq.c (rb_method_for_self_aref, rb_method_for_self_aset):
- new methods to generate bytecode for struct.c
- [Feature #10575]
- * struct.c (rb_struct_ref, rb_struct_set): remove
- (define_aref_method, define_aset_method): new functions
- (setup_struct): use new functions
- * test/ruby/test_struct.rb: add test for struct >10 members
- * benchmark/bm_vm2_struct_big_aref_hi.rb: new benchmark
- * benchmark/bm_vm2_struct_big_aref_lo.rb: ditto
- * benchmark/bm_vm2_struct_big_aset.rb: ditto
- * benchmark/bm_vm2_struct_small_aref.rb: ditto
- * benchmark/bm_vm2_struct_small_aset.rb: ditto
+Thu Nov 21 18:28:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Dec 9 20:24:41 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/tempfile.rb (Tempfile#initialize): use class method to get rid
+ of warnings when $VERBOSE.
- * string.c: [DOC] Add missing documentation around String#chomp.
- Patch by @stderr [ci skip][fix GH-780]
+Thu Nov 21 17:43:29 2013 Koichi Sasada <ko1@atdot.net>
-Tue Dec 9 18:20:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: rename initial_xxx variables to gc_params.xxx.
+ They are not only used initial values.
- * object.c: [DOC] Revise documentation by Marcus Stollsteimer at
- [ruby-core:66368]. [Bug #10526]
+ Chikanaga-san: Congratulations on RubyPrize!
- * #inspect: be more specific about generated string, remove
- obsolete example.
- * #nil?: use code examples instead of different call-seq's.
- * #tap: clarify what is yielded.
- * Integer(): be more specific about to_int and to_i, remove
- reference to Ruby 1.8.
- * Array(): fix error.
- * Class: fix variable name style and indentation in example.
- * improve consistency, fix typos and formatting.
+Thu Nov 21 17:16:00 2013 Koichi Sasada <ko1@atdot.net>
-Tue Dec 9 12:48:32 2014 Josef Simanek <josef.simanek@gmail.com>
+ * gc.c: enable "RGENGC_ESTIMATE_OLDSPACE" option as default.
+ Without this option, some application consumes huge memory.
+ (and there are only a few performance down)
- * vm_eval.c (rb_eval_string_wrap): [DOC] Fix `rb_eval_string_wrap`
- documentation. It is referencing `require` instead of `load`.
- The former does not have the optional argument. [Fix GH-779]
+ Introduced new environment variables:
+ * RUBY_GC_HEAP_OLDSPACE (default 16MB)
+ * RUBY_GC_HEAP_OLDSPACE_MAX (default 128 MB)
+ * RUBY_GC_HEAP_OLDSPACE_GROWTH_FACTOR (default 1.2)
-Tue Dec 9 10:16:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (initial_malloc_limit): rename to initial_malloc_limit_min.
- * eval.c (rb_frame_last_func): return the most recent frame method
- name.
+Thu Nov 21 16:51:34 2013 Zachary Scott <e@zzak.io>
+
+ * ext/digest/bubblebabble/bubblebabble.c: Teach RDoc digest/bubblebabble
+
+Thu Nov 21 16:50:16 2013 Zachary Scott <e@zzak.io>
+
+ * test/digest/test_digest.rb: Add more tests for digest/bubblebabble
+
+Thu Nov 21 16:32:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/delegate.rb (Delegator#method_missing): try private methods defined in
+ Kernel after the target. [Fixes GH-449]
+
+Thu Nov 21 16:25:08 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * test/uri/test_generic.rb (URI#test_merge): Test uri + URI(path)
+ in addition to uri + path.
+
+Thu Nov 21 15:36:08 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/lib/openssl/buffering.rb: [DOC] Fix HEREDOC comment for
+ OpenSSL::Buffering which breaks overview because of RDoc bug
+
+Thu Nov 21 14:46:57 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * eval_intern.h (SAVE_ROOT_JMPBUF): workaround for the failure of
+ test/ruby/test_exception.rb on Windows.
+ wrap by __try and __exception statements on mswin to raise SIGSEGV
+ when EXCEPTION_STACK_OVERFLOW is occurred, because MSVCRT doesn't
+ handle the exception.
+ however, (1) mingw-gcc doesn't support __try and __exception
+ statements, and (2) we cannot retry SystemStackError after this
+ change yet (maybe crashed) because SEH and longjmp() are too
+ uncongenial.
+
+ * signal.c (check_stack_overflow, CHECK_STACK_OVERFLOW): now defined on
+ Windows, too.
+
+ * thread_win32.c (ruby_stack_overflowed_p): ditto.
+
+Thu Nov 21 14:18:24 2013 Zachary Scott <e@zzak.io>
+
+ * object.c: [DOC] Clarify Object#dup vs #clone [Bug #9128]
+ Moving existing doc for this comparison to separate section of #dup
+ Adding examples to document behavior of #dup with Module#extend.
+ Based on a patch by stevegoobermanhill
+
+Thu Nov 21 14:06:02 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (gc_marks_check): do not dump all refs.
+
+ * gc.c (allrefs_dump_i): fix output format.
+
+Thu Nov 21 13:43:07 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: change RGENGC_CHECK_MODE (>= 2) logic.
+ Basically, make an object graph of all of living objects before and
+ after marking and check status.
+
+ [Before marking: check WB sanity]
+ If there is a non-old object `obj' pointed from old object
+ (`parent') then `parent' or `obj' should be remembered.
+
+ [After marking: check marking miss]
+ Traversible objects with the object graph should be marked.
+ (However, this alert about objects pointed by machine context
+ can be false positive. We only display alert.)
+
+ [Implementation memo]
+ objspace_allrefs() creates an object graph.
+ The object graph is represented by st_table, key is object (VALUE)
+ and value is referring objects. Referring objects are stored by
+ "struct reflist".
+
+ * gc.c (init_mark_stack): do not use push_mark_stack_chunk() at init.
+ This pre-allocation causes failure on is_mark_stack_empty()
+ without any pushing.
+
+Thu Nov 21 13:40:20 2013 Zachary Scott <e@zzak.io>
+
+ * lib/observer.rb: [DOC] Clarify default observer method.
+ By @edward [Fixes GH-450] https://github.com/ruby/ruby/pull/450
+
+Thu Nov 21 13:32:53 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/ossl_engine.c: [DOC] Documentation for OpenSSL::Engine
+ This patch is based off work by @vbatts in GH-436 completing the
+ documentation for this class and its methods.
+ https://github.com/ruby/ruby/pull/436
+
+Thu Nov 21 10:45:22 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/lib/openssl/buffering.rb: Remove unused arguments from
+ OpenSSL::Buffering.new [Fixes GH-445]
+
+Thu Nov 21 10:30:47 2013 Zachary Scott <e@zzak.io>
+
+ * test/digest/test_digest.rb: Add test for Digest::SHA256.bubblebabble
+
+Wed Nov 20 20:54:01 2013 Masaya Tarui <tarui@ruby-lang.org>
+
+ * tool/instruction.rb : fix typo.
+
+Wed Nov 20 19:45:22 2013 Tanaka Akira <akr@fsij.org>
+
+ * random.c (rand_init): Make it possible to specify arbitrary array
+ for init_genrand().
+
+Wed Nov 20 17:34:13 2013 Koichi Sasada <ko1@atdot.net>
+
+ * parse.y (rb_gc_mark_symbols): set global_symbols.minor_marked only
+ when full_mark is 0.
+ rb_gc_mark_symbols() (with full_mark == 1) can be called by other
+ than GC (such as rb_objspace_reachable_objects_from_root()).
+
+Wed Nov 20 11:46:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * ext/json: merge JSON 1.8.1.
+ https://github.com/nurse/json/compare/002ac2771ce32776b32ccd2d06e5604de6c36dcd...e09ffc0d7da25d0393873936c118c188c78dbac3
+ * Remove Rubinius exception since transcoding should be working now.
+ * Fix https://github.com/flori/json/issues/162 reported by Marc-Andre
+ Lafortune <github_rocks@marc-andre.ca>. Thanks!
+ * Applied patches by Yui NARUSE <naruse@airemix.jp> to suppress
+ warning with -Wchar-subscripts and better validate UTF-8 strings.
+ * Applied patch by ginriki@github to remove unnecessary if.
+ * Add load/dump interface to JSON::GenericObject to make
+ serialize :some_attribute, JSON::GenericObject
+ work in Rails active models for convenient
+ SomeModel#some_attribute.foo.bar access to serialised JSON data.
+
+Wed Nov 20 01:39:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * thread.c (recursive_list_access): use the last method name,
- instead of the current method name which can be unset in some
- cases, not to use a symbol by the invalid ID.
- [ruby-core:66742] [Bug #10579]
+ * lib/rdoc/constant.rb (RDoc::Constant#documented?): workaround for
+ NoMethodError when the original of alias is not found.
-Sun Dec 7 19:36:12 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Tue Nov 19 23:38:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/socket/basicsocket.c, ext/socket/sockssocket.c:
- remove code for $SAFE=4.
+ * configure.in (--with-os-version-style): option to transform target
+ OS version string.
-Sun Dec 7 10:20:55 2014 Eric Hodel <drbrain@segment7.net>
+Tue Nov 19 21:27:33 2013 Tanaka Akira <akr@fsij.org>
+
+ * test/net/http/utils.rb (spawn_server): Specify zero for port to
+ avoid reusing an allocated port.
+
+ * test/net/http/test_http.rb: Don't specify port here.
+
+ * test/net/http/test_https.rb: Ditto.
+
+Tue Nov 19 18:52:10 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (heap_is_swept_object): use heap_page::before_sweep flag.
+
+Tue Nov 19 18:49:32 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (rb_objspace_reachable_objects_from_root): do major marking.
+
+Tue Nov 19 18:45:40 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (rb_gc_resurrect): added.
+ rb_fstring() used rb_gc_mark() to avoid freeing used string.
+ However, rb_gc_mark() set mark bit *and* pushes mark_stack.
+ rb_gc_resurrect() does only set mark bit if it is before sweeping.
+
+ * string.c (rb_fstring): use rb_gc_resurrect.
+
+ * internal.h: add decl.
+
+Tue Nov 19 09:47:02 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rdoc: Update to RDoc master a1195ce. Changes include:
+
+ Improved accessibility of the main sidebar navigation.
+
+ Fixed handling of regexp options in HTML source highlighting.
- * lib/rdoc: Update to RDoc 4.2.0.
* test/rdoc: ditto.
-Sun Dec 7 09:52:30 2014 Eric Hodel <drbrain@segment7.net>
+Tue Nov 19 09:33:52 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems: Update to RubyGems master 6a3d9f9. Changes include:
+
+ Compatibly renamed Gem::DependencyResolver to Gem::Resolver.
+
+ Added support for git gems in gem.deps.rb and Gemfile.
+
+ Fixed resolver bugs.
+
+ * test/rubygems: ditto.
+
+ * lib/rubygems/LICENSE.txt: Updated to license from RubyGems trunk.
+ [ruby-trunk - Bug #9086]
+
+ * lib/rubygems/commands/which_command.rb: RubyGems now indicates
+ failure when any file is missing. [ruby-trunk - Bug #9004]
+
+ * lib/rubygems/ext/builder: Extensions are now installed into the
+ extension install directory and the first directory in the require
+ path from the gem. This allows backwards compatibility with msgpack
+ and other gems that calculate full require paths.
+ [ruby-trunk - Bug #9106]
+
+
+Tue Nov 19 07:21:56 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in (LOCALTIME_OVERFLOW_PROBLEM): Define it for cross
+ compiling.
+ [ruby-core:58391] [Bug #9119] Reported by Luis Lavena.
+ Analyzed by Heesob Park.
+
+Tue Nov 19 05:55:05 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rdoc/rubygems_hook.rb: Remove debugging puts committed by
+ accident.
+
+Mon Nov 18 22:47:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * eval_intern.h (TH_PUSH_TAG, TH_EXEC_TAG): refine stack overflow
+ detection. chain local tag after setjmp() successed on it, because
+ calling setjmp() also can overflow the stack.
+ [ruby-dev:47804] [Bug #9109]
+
+ * vm_eval.c (rb_catch_obj): now th->tag points previous tag until
+ TH_EXEC_TAG().
+
+ * thread_pthread.c (ruby_init_stack): set stack_start properly by
+ get_main_stack() if possible.
+
+Mon Nov 18 22:45:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * eval_jump.c (rb_exec_end_proc): unlink and free procs data before
+ calling for each procs. [Bug #9110]
+
+Sun Nov 17 06:33:32 2013 Shota Fukumori <her@sorah.jp>
+
+ * configure.in: Use $LIBS for base of $SOLIBS, also in darwin.
+ By this fix, environment that libgmp is located in $LIBS can build
+ ruby.
+
+Sun Nov 17 01:56:32 2013 Tanaka Akira <akr@fsij.org>
+
+ * thread_pthread.c (rb_thread_create_timer_thread): Show error
+ message instead of error number.
+ (thread_create_core): Ditto.
+
+ * cont.c (fiber_machine_stack_alloc): Ditto.
+
+Sat Nov 16 18:28:08 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/ultralightparser.rb
+ (REXML::Parsers::UltraLightParser#parse): Fix wrong :start_doctype
+ position.
+ [Bug #9061] [ruby-dev:47778]
+ Patch by Ippei Obayashi. Thanks!!!
+
+ * test/rexml/parser/test_ultra_light.rb: Add a test for this case.
+
+Sat Nov 16 02:13:56 2013 Masaya Tarui <tarui@ruby-lang.org>
+
+ * cont.c : Introduce ensure rollback mechanism. Please see below.
+
+ * internal.h (ruby_register_rollback_func_for_ensure): catch up above change.
+ Add rollback mechanism API.
+
+ * vm_core.h (typedef struct rb_vm_struct): catch up above change.
+ Introduce ensure-rollback relation table.
+
+ * vm_core.h (typedef struct rb_thread_struct): catch up above change.
+ Introduce ensure stack.
+
+ * eval.c (rb_ensure): catch up above change.
+ Introduce ensure stack.
+
+ * hash.c : New function for rollback ensure, and register it to
+ ensure-rollback relation table. [ruby-dev:47803] [Bug #9105]
+
+ Ensure Rollback Mechanism:
+ A rollback's function is a function to rollback a state before ensure's
+ function execution.
+ When the jump of callcc is across the scope of rb_ensure,
+ ensure's functions and rollback's functions are executed appropriately
+ for keeping consistency.
+
+ Current API is unstable, and only internal use.
+
+ ruby_register_rollback_func_for_ensure(ensure_func,rollback_func)
+ This API create relation ensure's function to rollback's function.
+ By registered rollback's function, it is executed When jumping into
+ corresponding rb_ensure scope.
+
+Sat Nov 16 00:18:36 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * eval_jump.c (rb_exec_end_proc): fix double free or corruption error
+ when reentering by callcc. [ruby-core:58329] [Bug #9110]
+
+ * test/ruby/test_beginendblock.rb: test for above.
+
+Fri Nov 15 01:06:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/objspace/objspace_dump.c (dump_output): allow IO object as
+ output, and use Tempfile.create and return open file instead of
+ mkstemp() and path name for :file output.
+ [ruby-core:58266] [Bug #9102]
+
+ * test/objspace/test_objspace.rb (TestObjSpace#dump_my_heap_please):
+ remove temporary output file.
+
+Thu Nov 14 23:39:00 2013 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+
+ * ext/bigdecimal/lib/bigdecimal/util.rb: [DOC] remove example of
+ Rational#to_d without argument. [Bug #8958]
+
+Thu Nov 14 20:24:15 2013 Naohisa Goto <ngotogenome@gmail.com>
+
+ * ruby_atomic.h (ATOMIC_SIZE_CAS): fix compile error on Solaris
+ since r43460.
+
+Thu Nov 14 19:53:00 2013 Tanaka Akira <akr@fsij.org>
+
+ * test/openssl/test_cipher.rb (test_aes_gcm_wrong_tag): Don't use
+ String#succ because it can make modified (wrong) auth_tag longer
+ than 16 bytes. The longer auth_tag makes that
+ EVP_CIPHER_CTX_ctrl (and internally aes_gcm_ctrl) fail.
+ [ruby-core:55143] [Bug #8439] reported by Vit Ondruch.
+
+Thu Nov 14 11:33:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * hash.c (foreach_safe_i, hash_foreach_iter): deal with error detected
+ by ST_CHECK.
+
+ * st.c (st_foreach_check): call with non-error argument in normal case.
+
+Thu Nov 14 02:37:14 2013 Zachary Scott <e@zzak.io>
+
+ * ext/thread/thread.c: [DOC] This patch accomplishes the following:
+
+ - Teach RDoc about ConditionVariable
+ - Teach RDoc about Queue
+ - Teach RDoc about SizedQueue
+ - Use fully-qualified namespace for Document-method
+ This is necessary to separate definitions between classes
+ - Fix rdoc bug in call_seq vs. call-seq
+ - Correct doc for SizedQueue#pop patch by @jackdanger [Bug #8988]
+
+Thu Nov 14 01:11:54 2013 Zachary Scott <e@zzak.io>
+
+ * ext/bigdecimal/lib/bigdecimal/util.rb: [DOC] +precision+ is required
+
+Wed Nov 13 19:21:36 2013 Zachary Scott <e@zzak.io>
+
+ * ext/bigdecimal/lib/bigdecimal/util.rb: [DOC] Document the required
+ +precision+ argument for Rational#to_d [Bug #8958]
+
+Wed Nov 13 19:02:05 2013 Zachary Scott <e@zzak.io>
+
+ * ext/digest/*: [DOC] Fix several typos and broken http links.
+ Improved examples for Digest overview and fixed a broken example in
+ Digest::HMAC overview. This patch also adds a description of
+ Digest::SHA256.bubblebabble to the Digest overview.
+
+ Patched by @stomar [Bug #9027]
+
+Wed Nov 13 18:32:12 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/ossl_config.c: [DOC] Document the following:
+
+ - OpenSSL::ConfigError
+ - OpenSSL::Config::DEFAULT_CONFIG_FILE
+
+ Patched by @vbatts via GH-436
+ https://github.com/ruby/ruby/pull/436
+
+Wed Nov 13 18:03:00 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/ossl_asn1.c: [DOC] Document parts of
+ OpenSSL::ASN1::ObjectId included a fix for the class overview, which
+ previously showed the documentation for Constructive due to missing
+ ObjectId overview. This patch also includes a note for Primitive.
+
+ Based on a patch by @vbatts via GH-436
+ https://github.com/ruby/ruby/pull/436
+
+Wed Nov 13 17:19:36 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/lib/openssl/config.rb: In #parse use +string+ for +str+
+
+Wed Nov 13 17:09:45 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/lib/openssl/*.rb: [DOC] Document the following:
+
+ - Integer#to_bn
+ - OpenSSL::Buffering module
+ - Deprecated OpenSSL::Digest::Digest compatibility class
+ - OpenSSL::Config
+
+ These changes were based on a patch by @vbatts via GH-436
+ https://github.com/ruby/ruby/pull/436
+
+Wed Nov 13 10:55:43 2013 Zachary Scott <e@zzak.io>
+
+ * doc/regexp.rdoc: [DOC] Fix typo in Special global variables section.
+ Reported by Alex Johnson on ruby-doc.org
+
+Wed Nov 13 10:43:19 2013 Zachary Scott <e@zzak.io>
+
+ * hash.c: [DOC] Adds an example for Hash#store
+
+Wed Nov 13 09:03:40 2013 Zachary Scott <e@zzak.io>
+
+ * doc/regexp.rdoc: [DOC] add note about Bug #4044 as suggested by
+ duerst-san in [ruby-core:43612] [Fixes GH-443] Patched by @rosenfeld
+ https://github.com/ruby/ruby/pull/443
+
+Tue Nov 12 10:15:14 2013 Eric Hodel <drbrain@segment7.net>
+
+ * test/rubygems/insure_session.rb: Remove unused test file.
+
+Tue Nov 12 09:16:24 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems: Update to RubyGems master b9213d7. Changes include:
+
+ Fixed tests on Windows (I hope) by forcing platform for
+ platform-dependent tests.
+
+ Fixed File.exists? warnings.
+
+ Improved testing infrastructure.
- * lib/rubygems: Update to RubyGems 2.4.5.
* test/rubygems: ditto.
-Sat Dec 6 10:05:08 2014 Shugo Maeda <shugo@ruby-lang.org>
+ * test/rdoc/test_rdoc_rubygems_hook.rb: Switch to util_spec like
+ RubyGems.
- * lib/net/imap.rb: Fix undefined variable usage & refactor/DRY
- code. Patch by @aledovsky. [Fixes GH-770]
+Mon Nov 11 18:31:12 2013 Aman Gupta <ruby@tmm1.net>
- * test/net/test_imap.rb: related test.
+ * internal.h: move common string/hash flags to include file.
+ * ext/objspace/objspace_dump.c: remove flags shared above.
+ * hash.c: ditto.
+ * string.c: ditto.
-Sat Dec 6 10:09:44 2014 Eric Wong <e@80x24.org>
+Mon Nov 11 04:36:14 2013 Eric Hodel <drbrain@segment7.net>
- * thread.c (do_select): rename parameters to avoid shadowing
+ * lib/rubygems/specification.rb: Include 2.2.0.preview.2 when checking
+ if extensions should be built. Fixes a ruby-ci failure.
+ * test/rubygems/test_gem_specification.rb: Test for the above.
-Sat Dec 6 09:22:45 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Nov 11 03:15:56 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rake: Update to rake 10.4.2
- * test/rake: ditto.
+ * vm_trace.c (symbol2event_flag): add secret feature.
+ add a_call/a_return events.
+ a_call is call | b_call | c_call, and same as a_return.
-Sat Dec 6 06:48:03 2014 Eric Wong <e@80x24.org>
+Mon Nov 11 02:51:17 2013 Eric Hodel <drbrain@segment7.net>
- * compile.c (rb_iseq_build_from_ary): remove misc handling
+ * lib/rubygems: Update to RubyGems master 4bdc4f2. Important changes
+ in this commit:
-Sat Dec 6 06:14:23 2014 Vit Ondruch <vondruch@redhat.com>
+ RubyGems now chooses the test server port reliably. Patch by akr.
- * configure.in (RUBY_LIB_VERSION): Fix --with-ruby-version
- configuration option. get rid of quoting in config.status.
+ Partial implementation of bundler's Gemfile format.
- * template/verconf.h.tmpl: quote RUBY_LIB_VERSION here.
- [ruby-core:66724] [Bug #10572]
+ Refactorings to improve the new resolver.
-Sat Dec 6 04:33:52 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ Fixes bugs in the resolver.
- * lib/pp.rb (File::Stat#pretty_print): some platforms (such as Windows)
- does not have major/minor parts of device.
+ * test/rubygems: Tests for the above.
-Fri Dec 5 22:43:04 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Nov 11 01:02:06 2013 Zachary Scott <e@zzak.io>
- * ext/psych/lib/psych.rb: bump version to 2.0.8
- * ext/psych/psych.gemspec: ditto.
- * ext/psych/psych_emitter.c: ditto.
- * ext/psych/psych_parser.c: ditto.
+ * lib/timeout.rb: [DOC] Add note about change from #8730 [Fixes GH-440]
+ * NEWS: [DOC] Improve grammar on change to Timeout
+ Patched by @srawlins in https://github.com/ruby/ruby/pull/440
-Fri Dec 5 17:09:09 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Nov 10 23:47:05 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/socket/option.c (inet_ntop): link aliased inet_ntop in
- libruby on mswin not rb_w32_inet_ntop which fails to link for
- unknown reason.
+ * gc.c (rb_gcdebug_print_obj_condition): catch up recent changes
+ to compile on GC_DEBUG.
-Fri Dec 5 11:09:54 2014 Eric Wong <e@80x24.org>
+Sun Nov 10 22:16:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * iseq.c (prepare_iseq_build): remove unused block_opt param
- (rb_iseq_new_with_bopt_and_opt): remove
- (rb_iseq_new_with_opt): inline removed function
- (rb_iseq_new_with_bopt): remove
- (iseq_load): adjust prepare_iseq_build call
- [Feature #10565]
+ * error.c (exc_cause): captured previous exception.
-Fri Dec 5 09:46:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * eval.c (make_exception): capture previous exception automagically.
+ [Feature #8257]
- * parse.y (parser_yylex): fix lex_state after tLABEL_END, should
- be EXPR_LABELARG to be followed by "paren with arg".
- [ruby-core:66705] [Feature #4935]
+Sun Nov 10 08:37:20 2013 Zachary Scott <e@zzak.io>
-Fri Dec 5 02:27:47 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c: [DOC] Remove duplicate reference
- * ext/extmk.rb: as all extension objects including initializations
- of ext and enc should be linked to libruby if enable-shared,
- EXTOBJS should not be linked to main programs.
- [ruby-core:66675] [Bug #10566]
+Sun Nov 10 08:09:29 2013 Zachary Scott <e@zzak.io>
-Thu Dec 4 07:06:02 2014 Eric Wong <e@80x24.org>
+ * lib/drb/drb.rb: [DOC] promote better windows-safe filename regular
+ expression in DRb Logger example. Reported by Chris Pheonix
+ [Bug #9074]
- * compile.c (rb_iseq_build_from_exception): entry->sp is unsigned
- (iseq_build_callinfo_from_hash): account for kw_arg
- (iseq_build_from_ary_body): update for r35459
- (CHECK_STRING, CHECK_INTEGER): remove unused checks
- (int_param): new function for checking new `params' hash
- (iseq_build_kw): new function for loading rb_iseq_param_keyword
- (rb_iseq_build_from_ary): account for `misc' entry and general
- structure changes
- [Feature #8543]
- * iseq.c (CHECK_HASH): new macro (for `misc' and `param' entries)
- (iseq_load): account for `misc' and `params' hashes
- (iseq_data_to_ary): add final opt to arg_opt_labels,
- fix kw support, account for unsigned entry->sp
- * ext/-test-/iseq_load/iseq_load.c: new ext for test
- * ext/-test-/iseq_load/extconf.rb: ditto
- * test/-ext-/iseq_load/test_iseq_load.rb: new test
+Sun Nov 10 08:03:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Dec 4 06:56:57 2014 Eric Wong <e@80x24.org>
+ * gc.c (rb_define_finalizer, rb_undefine_finalizer): rename and export
+ finalizer functions.
- * iseq.c (iseq_free): avoid segfault on incomplete iseq
- * test/ruby/test_syntax.rb (test_invalid_next): new test
- for syntax error, not segfault
+Sun Nov 10 07:41:22 2013 Zachary Scott <e@zzak.io>
-Thu Dec 4 04:20:34 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/weakref.rb: [DOC] fix typos by @xaviershay [Fixes GH-439]
+ https://github.com/ruby/ruby/pull/439
- * load.c (ruby_require_internal): ignore error detail, just return
- an error.
+Sun Nov 10 06:14:39 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Wed Dec 3 17:13:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (iseq_compile_each): emit opt_str_freeze if the #freeze
+ method is called on a static string literal with no arguments.
- * encoding.c (load_encoding): use rb_require_internal instead of
- calling rb_require_safe with protection.
+ * defs/id.def (firstline): add freeze so idFreeze is available
-Wed Dec 3 16:47:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * insns.def (opt_str_freeze): add opt_str_freeze instruction which
+ pushes a frozen string literal without allocating a new object if
+ String#freeze is not overridden
- * load.c (register_init_ext, ruby_init_ext): defer running the
- registered initialization function until required, not to enable
- extensions which have global effects just by loading, e.g.,
- mathn/complex and mathn/rational. fix `make test` with
- --with-static-linked-ext.
+ * string.c (Init_String): define String#freeze
- * enc/encinit.c.erb (Init_enc): initialize encdb and transdb
- directly.
+ * vm.c (vm_init_redefined_flag): define BOP_FREEZE on String class as
+ a basic operation
-Wed Dec 3 14:51:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_insnhelper.h: ditto
- * load.c (ruby_require_internal): separate from rb_require_safe,
- not to raise exceptions.
+ [Feature #8992] [ruby-core:57705]
- * ruby.c (process_options): remove unnatural encoding search.
+Sun Nov 10 01:34:14 2013 Koichi Sasada <ko1@atdot.net>
-Wed Dec 3 14:34:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (vm_malloc_increase): sweep immediately on GC due to malloc().
+ To reduce memory usage, sweep as soon as possible.
+ This behavior is same as Ruby 2.0.0 and before.
- * string.c (setup_fake_str): fake string does not share another
- string, but just should not free.
+Sun Nov 10 00:39:26 2013 Koichi Sasada <ko1@atdot.net>
-Wed Dec 3 11:14:14 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * benchmark/gc/gcbench.rb: output version description and GC::OPTS.
- * win32/win32.c (w32_spawn): `v2` is used not only for `shell` but also
- `cmd`, so must not free before using `cmd`.
- [ruby-core:66648] [Bug #10563]
+Sun Nov 10 00:36:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 3 09:48:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (should_be_callable): allow private call since rb_eval_cmd
+ calls even private methods.
- * ext/racc/cparse/cparse.c (cparse_params_type): use typed data.
+Sun Nov 10 00:33:17 2013 Zachary Scott <e@zzak.io>
-Tue Dec 2 21:33:56 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * lib/racc/rdoc/grammar.en.rdoc: [DOC] fix typo by Tsuyoshi Sawada
+ [Bug #9077]
- * ext/win32ole/win32ole.c: use typed data for com_hash.
+Sat Nov 9 22:35:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Dec 2 15:30:30 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * tool/rbinstall.rb (Gem::Specification.load): obtain spec date from
+ VCS for the case using git, RUBY_RELEASE_DATE is the last resort.
+ probably fixes [Bug #9085].
- * array.c (rb_ary_plus): in documentation, added note about
- inefficiency of repeated += operations.
+Sat Nov 9 20:56:12 2013 Narihiro Nakamura <authornari@gmail.com>
-Tue Dec 2 07:20:21 2014 Eric Wong <e@80x24.org>
+ * ext/objspace/object_tracing.c: use declarations in internal.h.
- * iseq.c (iseq_data_to_ary): keep hidden variables
- Thanks to wanabe [ruby-core:66566]
+ * ext/objspace/objspace.c: ditto
-Tue Dec 2 06:46:57 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+Sat Nov 9 20:32:59 2013 Tanaka Akira <akr@fsij.org>
- * ext/psych/lib/psych.rb: bumping version
+ * test/objspace/test_objspace.rb (test_dump_all): Make the test string
+ shorter to be an embedded string on 32bit environment as well as
+ 64bit environment.
- * ext/psych/psych.gemspec: ditto
+Sat Nov 9 15:00:16 2013 Zachary Scott <e@zzak.io>
-Tue Dec 2 06:34:08 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * io.c: [DOC] ARGF.gets may return nil [Bug #9029] patch by znz
- * ext/psych/lib/psych/visitors/to_ruby.rb: support objects that are
- marshalable, but inherit from basic object.
- Thanks Sean Griffin <sean@thoughtbot.com>
+Sat Nov 9 14:54:52 2013 Zachary Scott <e@zzak.io>
- * ext/psych/lib/psych/visitors/yaml_tree.rb: ditto
+ * lib/rss/*: [DOC] document various constants @steveklabnik [Bug #8812]
- * test/psych/test_marshalable.rb: test for fix
+Sat Nov 9 14:50:09 2013 Zachary Scott <e@zzak.io>
-Tue Dec 2 06:32:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rss/rss.rb: [DOC] document Time#w3cdtf by @steveklabnik
+ [Bug #8821]
- * parse.y (ripper_flush_string_content): preserve the dispatched
- results at tSTRING_CONTENT. [ruby-dev:48714] [Bug #10437]
+Sat Nov 9 14:29:04 2013 Zachary Scott <e@zzak.io>
- * parse.y (regexp_contents): check in ripper only if the whole
- content is a single regexp without interpolation.
- [ruby-dev:48714] [Bug #10437]
+ * ext/dl/cfunc.c: [DOC] fix typo in example [Bug #8944]
+ Patched by Heesob Park
-Tue Dec 2 06:30:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 9 13:59:58 2013 Zachary Scott <e@zzak.io>
- * re.c (rb_reg_region_copy): new function to try with GC if copy
- failed and return the error.
+ * lib/test/unit/assertions.rb: [DOC] better example for assert_send()
+ Patch by Andrew Grimm [Bug #8975]
-Tue Dec 2 04:43:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 9 12:45:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * re.c (CHECK_REGION_COPIED): onig_region_copy() can fail when
- memory exhausted but returns nothing, so check by if allocated.
+ * insns.def: unify ic_constant_serial and ic_class_serial into one field
+ ic_serial. This is possible because these fields are only ever used
+ exclusively with each other.
-Tue Dec 2 02:53:00 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * insns.def: ditto
+ * vm_core.h: ditto
+ * vm_insnhelper.c: ditto
- * parse.y (magic_comment_encoding): enable in ripper, since the
- encoding is necessary to parse non-default encoding scripts.
+Sat Nov 9 12:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Tue Dec 2 02:30:25 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * class.c: unify names of vm state version counters to 'serial'.
+ This includes renaming 'vm_state_version_t' to 'rb_serial_t',
+ 'method_state' to 'method_serial', 'seq' to 'class_serial',
+ 'vmstat' to 'constant_serial', etc.
- * lib/uri/generic.rb (URI::Generic.build):
- use hostname= to detect and wrap IPv6 hosts.
- Build is accepting URI components and users may not expect
- that a host component needs to be wrapped with square brackets
- since it's not providing a URI.
- Note: initialize with arg_check => true does not wrap IPv6 hosts.
- by Joe Rafaniello <jrafanie@redhat.com>
- https://github.com/ruby/ruby/pull/765 fix GH-765
+ * insns.def: ditto
+ * internal.h: ditto
+ * vm.c: ditto
+ * vm_core.h: ditto
+ * vm_insnhelper.c: ditto
+ * vm_insnhelper.h: ditto
+ * vm_method.c: ditto
- * test/uri/test_generic.rb: Add more tests
+Sat Nov 9 09:22:29 2013 Masaya Tarui <tarui@ruby-lang.org>
-Mon Dec 1 20:01:12 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * gc.c (gc_page_sweep, rgengc_rememberset_mark): Refactoring.
+ Get bitmaps directly.
- * ext/win32ole/win32ole.c: use typed data for WIN32OLE.
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_event.c: ditto.
+Sat Nov 9 09:16:36 2013 Masaya Tarui <tarui@ruby-lang.org>
-Mon Dec 1 17:20:42 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (RVALUE_PROMOTE_INFANT): Refactoring. Remove duplicated nonsense
+ code.
- * win32/Makefile.sub (verconf.h): so depends on verconf.mk, which
- is rebuilt by setup.mak.
+Sat Nov 9 09:04:48 2013 Masaya Tarui <tarui@ruby-lang.org>
-Mon Dec 1 11:05:46 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c (gc_marks_test): Bugfix. Fix a struct member name for build
+ with RGENGC_CHECK_MODE.
- * proc.c: fix grammar by @BenMorganIO [fix GH-764][ci skip]
+Sat Nov 9 08:58:23 2013 Masaya Tarui <tarui@ruby-lang.org>
-Mon Dec 1 10:49:53 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c : Add GC_PROFILE_DETAIL_MEMORY option.
+ If GC_PROFILE_MORE_DETAIL && GC_PROFILE_DETAIL_MEMORY,
+ maxrss, minflt and majflt are added to each profile record.
- * man/rake.1: Update latest man content by @aledovsky
- [fix GH-771][ci skip]
+Sat Nov 9 07:41:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Dec 1 10:42:31 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * internal.h (rb_vm_backtrace_object, rb_gc_count): make prototype
+ declarations, not old-K&R style.
- * doc/syntax/refinements.rdoc: refinements are no longer experimental.
- patch by @gaurish [fix GH-775][ci skip]
+Sat Nov 9 06:11:14 2013 vo.x (Vit Ondruch) <vondruch@redhat.com>
-Sun Nov 30 20:05:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/rbinstall.rb (Gem::Specification#collect): make stable
+ Gem::Specification.files in default .gemspecs the different order of
+ "files" in .gemspec files makes them different therefore possibly
+ conflicting in multilib scenario. patch by vo.x (Vit Ondruch) at
+ [ruby-core:57544] [Bug #8623].
- * parse.y (regexp_contents): fix a typo. pointed out by wanabe.
- [ruby-dev:48741] [Bug #10543]
+Sat Nov 9 01:59:18 2013 Aman Gupta <ruby@tmm1.net>
-Sun Nov 30 18:55:32 2014 Tanaka Akira <akr@fsij.org>
+ * ext/objspace/objspace_dump.c: Add experimental methods to
+ dump objectspace as json: ObjectSpace.dump_all and
+ ObjectSpace.dump(obj). These methods are useful for debugging
+ reference leaks and memory growth in large ruby applications.
+ [Bug #9026] [ruby-core:57893] [Fixes GH-423]
+ * test/objspace/test_objspace.rb: tests for above.
- * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
- Don't raise Interrupt.
+Sat Nov 9 00:26:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Nov 30 17:11:05 2014 Tanaka Akira <akr@fsij.org>
+ * file.c (GetLastError): already defined in windows.h on nowadays
+ cygwin, and caused the confliction with the system provided
+ definition on cygwin64. by @kou1okada [Fixes GH-433].
- * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): Use
- assert_separately.
+Fri Nov 8 18:35:31 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sun Nov 30 00:02:52 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/open3.rb: receive arguments as keyword arguments.
- * ruby.c (process_options, ruby_script): transcode script name and
- program name to locale encoding as well as argv.
- [ruby-dev:48752] [Bug #10555]
+Fri Nov 8 13:19:26 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ruby.c (translit_char_bin): should not use code page dependent
- CharNext on UTF-8 string. [ruby-dev:48752] [Bug #10555]
+ * io.c (rb_io_open_with_args): use RARRAY_CONST_PTR().
-Sat Nov 29 16:53:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * io.c (rb_scan_open_args): use const qualifier for above.
- * ruby.c (ruby_set_argv): convert argv from UTF-8.
+ * io.c (rb_open_file): ditto.
- * win32/win32.c (rb_w32_sysinit, cmdglob, w32_cmdvector): convert
- wide char command line to UTF-8 argv, and glob in UTF-8 so that
- metacharacters would match multibyte characters.
- [ruby-dev:48752] [Bug #10555]
+ * io.c (rb_io_open_with_args): ditto.
-Sat Nov 29 10:49:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 8 11:35:06 2013 Masaki Matsushita <glass.saga@gmail.com>
- * win32/win32.c (win32_direct_conv, rb_w32_readdir): convert UTF-8
- and filesystem code page by using Win32 API directly.
+ * dir.c, pack.c, ruby.c, struct.c, vm_eval.c: use RARRAY_CONST_PTR().
-Sat Nov 29 09:37:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 8 10:58:02 2013 Masaki Matsushita <glass.saga@gmail.com>
- * error.c (syserr_initialize): simplify message building and get
- rid of potential invalid byte sequence.
+ * compile.c (iseq_build_from_ary_exception): use RARRAY_CONST_PTR().
-Sat Nov 29 06:09:44 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * compile.c (iseq_build_from_ary_body): ditto.
- * eval_error.c (error_print): respect the encoding of the message.
+Fri Nov 8 10:49:34 2013 Masaki Matsushita <glass.saga@gmail.com>
- * io.c (rb_write_error_str): use rb_w32_write_console() on Windows
- if stderr is a tty.
+ * enumerator.c (append_method): use RARRAY_CONST_PTR().
-Fri Nov 28 05:10:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * enumerator.c (lazy_init_iterator): ditto.
- * configure.in (--with-setup): add option to select ext/Setup file.
+Fri Nov 8 02:44:29 2013 Koichi Sasada <ko1@atdot.net>
-Fri Nov 28 05:02:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (vm_malloc_increase): check GVL before gc_rest_sweep().
+ vm_malloc_increase() can be called without GVL.
+ However, gc_rest_sweep() assumes acquiring GVL.
+ To avoid this problem, check GVL before gc_rest_sweep().
+ [Bug #9090]
- * dmyenc.c (Init_enc): separate from dmyext.c for statically
- linked extension excluding encoding libraries.
+ This workaround introduces possibility to set malloc_limit as
+ wrong value (*1). However, this may be rare case. So I commit it.
-Thu Nov 27 21:58:30 2014 Tanaka Akira <akr@fsij.org>
+ *1: Without rest_sweep() here, gc_rest_sweep() can decrease
+ malloc_increase due to ruby_sized_xfree().
- * common.mk (miniprelude.c): It does not depend on prelude.rb now.
+Fri Nov 8 02:50:25 2013 Zachary Scott <e@zzak.io>
-Thu Nov 27 21:49:49 2014 Tanaka Akira <akr@fsij.org>
+ * lib/securerandom.rb: [DOC] specify arguments passed to ::random_bytes
+ By @chastell [Fixes GH-412] https://github.com/ruby/ruby/pull/412
- * tool/update-deps: List up files built always in the source directory
- and source files built always in the build directory.
+Fri Nov 8 02:43:01 2013 Zachary Scott <e@zzak.io>
-Thu Nov 27 21:24:55 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * ext/objspace/object_tracing.c: [DOC] trace_object_allocations_stop
+ By @srawlins [Fixes GH-421] https://github.com/ruby/ruby/pull/421
- * NEWS: add obsolete callcc.
+Fri Nov 8 02:34:20 2013 Zachary Scott <e@zzak.io>
-Thu Nov 27 19:59:49 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/net/ftp.rb: [DOC] Document Net::FTP.mdtm and .set_socket and fix
+ spelling typo, based on patch by @artfuldodger [Fixes GH-426]
+ https://github.com/ruby/ruby/pull/426
- * compile.c (iseq_compile_each): remove duplicated line event.
- [Bug #10449]
+Fri Nov 8 02:14:37 2013 Zachary Scott <e@zzak.io>
- * test/ruby/test_settracefunc.rb: add and fix tests.
+ * array.c: [DOC] Add note about negative indices in Array overview
+ By @ckaenzig [Fixes GH-427] https://github.com/ruby/ruby/pull/427
-Thu Nov 27 19:04:50 2014 Koichi Sasada <ko1@atdot.net>
+Fri Nov 8 02:09:12 2013 Zachary Scott <e@zzak.io>
- * vm_args.c: fix backtrace location for keyword related exceptions.
+ * lib/csv.rb: [DOC] Fix typo in CSV.parse_line by @funky-bibimbap
+ [Fixes GH-430] https://github.com/ruby/ruby/pull/430
- For example, the following program
- def foo(k1: 1); end # line 1
- foo(k2: 2) # line 2
- causes "unknown keyword: k2 (ArgumentError)".
+Fri Nov 8 01:01:54 2013 Zachary Scott <e@zzak.io>
- Before this patch, the backtrace location is only line 2.
- However, error should be located at line 1 (over line 2 in
- stack trace). This patch fix this problem.
+ * golf_prelude.rb: syntax formatting for whitespace [Fixes GH-425]
+ Patch by @edward https://github.com/ruby/ruby/pull/425
- * class.c (rb_keyword_error_new): separate exception creation logic
- from rb_keyword_error(), to use in vm_args.c.
+Thu Nov 7 19:36:09 2013 Koichi Sasada <ko1@atdot.net>
- * vm_insnhelper.c (rb_arg_error_new): rename to rb_arity_error_new().
+ * gc.c: modify malloc_limit strategy.
- * vm_args.c (argument_arity_error): rename to argument_arity_error().
+ * fix default values:
+ GC_MALLOC_LIMIT_GROWTH_FACTOR
+ GC_MALLOC_LIMIT: 8MB -> 16MB
+ GC_MALLOC_LIMIT_MAX: 384MB -> 32MB
- * vm_args.c (argument_kw_error): added to fix backtrace.
+ * algorithm of malloc_limit increment.
+ if (malloc_increase < malloc_limit) {
+ next_malloc_limit = malloc_limit * factor
+ if (malloc_limit > malloc_limit_max) {
+ malloc_limit = malloc_increase
+ }
+ }
+ This algorithm change malloc_limit from
+ 16MB -> 32MB slowly.
+ If malloc_limit exceeds malloc_limit_max, then
+ increase with malloc_increase.
- * test/ruby/test_keyword.rb: add tests.
+Thu Nov 7 11:06:05 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Nov 27 17:31:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (rb_ary_shuffle_bang): use RARRAY_PTR_USE() without WB
+ because there are not new relations.
- * common.mk (prelude.c): no longer depends on miniruby, since not
- depending on rbconfig.rb.
+Thu Nov 7 10:34:12 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Nov 27 17:12:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (rb_ary_sample): use rb_ary_dup().
- * common.mk (miniprelude.c): miniruby needs no preludes.
+Thu Nov 7 09:39:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 27 17:10:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_trace.c (rb_threadptr_exec_event_hooks_orig): errinfo should not
+ be propagated to trace blocks so that no argument raise does not
+ throw internal objects. [ruby-dev:47793] [Bug #9088]
- * template/prelude.c.tmpl: no code if no prelude code is given.
+Wed Nov 6 21:30:55 2013 Masaya Tarui <tarui@ruby-lang.org>
-Thu Nov 27 13:11:00 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (gc_before_sweep): Change algorithm of malloc_limit to
+ conservative for closing to memory consumption of ruby 2.0.
- * gc.c (objspace_malloc_increase): enable lazy sweep on GC by malloc()
- (malloc_increase) to make GC incrementally.
+ * gc.c (GC_MALLOC_LIMIT, GC_MALLOC_LIMIT_GROWTH_FACTOR):
+ Adjust parameters for new algorithm.
- This change can increase memory consumption. Report us if you find
- any problem.
+Wed Nov 6 21:16:51 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Nov 27 12:46:38 2014 Tanaka Akira <akr@fsij.org>
+ * array.c (rb_ary_shift_m): use RARRAY_PTR_USE() without WB because
+ there are not new relations.
- * time.c (time_s_mkutc): [DOC] Time.utc's 10 arguments form
- doesn't examine wday, yday, isdst and tz.
- (time_s_mktime): [DOC] Time.mktime's 10 arguments form
- doesn't examine wday, yday and tz.
- Suggested by naruse.
+Wed Nov 6 21:05:20 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Nov 27 11:45:33 2014 Eric Wong <e@80x24.org>
+ * array.c (rb_ary_reverse): use RARRAY_PTR_USE().
- * iseq.c (iseq_data_to_ary): add missing GC guard
+Wed Nov 6 19:30:44 2013 Masaya Tarui <tarui@ruby-lang.org>
-Thu Nov 27 10:51:59 2014 Koichi Sasada <ko1@atdot.net>
+ * common.mk (help): add texts about gcbench.
- * vm_core.h: add rb_thread_t::local_storage_recursive_hash
- to speed up Thread#[:__recursive_key__] access.
- [Bug #10511]
+Wed Nov 6 16:32:32 2013 Martin Duerst <duerst@it.aoyama.ac.jp>
- * thread.c (threadptr_local_aref): add fast path for
- :__recursive_data__.
+ * lib/open3.rb: tweaked grammar in comments
- * thread.c (threadptr_recursive_hash, threadptr_recursive_hash_set):
- add special accessor for recursive hash.
+Wed Nov 6 11:46:36 2013 Masaki Matsushita <glass.saga@gmail.com>
- * cont.c: store/restore local_storage_recursive_hash.
+ * array.c (rb_ary_sample): use RARRAY_AREF() and RARRAY_PTR_USE()
+ instead of RARRAY_PTR().
- * vm.c: init and mark local_storage_recursive_hash.
+Wed Nov 6 10:37:07 2013 Masaki Matsushita <glass.saga@gmail.com>
- * vm_trace.c (rb_threadptr_exec_event_hooks_orig): clear and restore
- local_storage_recursive_hash directly.
+ * array.c (rb_ary_and): defer hash creation and some refactoring.
-Thu Nov 27 07:11:00 2014 Eric Wong <e@80x24.org>
+Wed Nov 6 09:14:31 2013 Koichi Sasada <ko1@atdot.net>
- * compile.c (iseq_calc_param_size): hoist out of iseq_set_arguments
+ * benchmark/bm_vm1_gc_short_lived.rb: added.
+ These GC benchmarks do not reflect practical applications.
+ They are only for tuning.
-Wed Nov 26 22:28:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * benchmark/bm_vm1_gc_short_with_complex_long.rb: added.
- * include/ruby/ruby.h (rb_get_kwargs, rb_extract_keywords): export
- keyword argument functions.
+ * benchmark/bm_vm1_gc_short_with_long.rb: added.
-Wed Nov 26 21:18:40 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * benchmark/bm_vm1_gc_short_with_symbol.rb: added.
- * test/inlinetest.rb: removed unused test helper.
+ * benchmark/bm_vm1_gc_wb_ary.rb: added.
-Wed Nov 26 20:47:28 2014 Masaya Tarui <tarui@ruby-lang.org>
+ * benchmark/bm_vm1_gc_wb_obj.rb: added.
- * ext/continuation/continuation.c (Init_continuation): obsolete callcc.
- first step of [Feature #10548].
+ * benchmark/bm_vm_thread_queue.rb: added.
+ This benchmark is added to know how fast C version of thread.so.
-Wed Nov 26 19:57:54 2014 Koichi Sasada <ko1@atdot.net>
+Wed Nov 6 09:13:32 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_gc.rb (test_latest_gc_info): do test separately
- to avoid mysterious behavior.
+ * gc.c: define RGENGC_ESTIMATE_OLDSPACE == 0 if USE_RGENGC is 0.
-Wed Nov 26 19:54:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Nov 6 07:13:18 2013 Koichi Sasada <ko1@atdot.net>
- * win32/win32.c (constat_reset): do nothing on non-standard
- console emulators. [ruby-core:66471] [Bug #10546]
+ * gc.c (Init_GC): add GC::OPTS to show options.
-Wed Nov 26 19:44:13 2014 Tanaka Akira <akr@fsij.org>
+Wed Nov 6 07:12:17 2013 Koichi Sasada <ko1@atdot.net>
- * lib/tsort.rb: Returns an enumerator if no block is given.
- [ruby-core:66270] [Feature #10508] Proposed by Andrey Savchenko.
+ * benchmark/gc/gcbench.rb: add some options to make quiet.
-Wed Nov 26 17:25:45 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Nov 6 04:14:25 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * parse.y (f_label, f_kw, formal_argument_gen): ignore invalid
- formal argument in keyword argument definition.
- [ruby-dev:48742] [Bug #10545]
+ * ext/psych/lib/psych/visitors/to_ruby.rb: process merge keys before
+ reviving objects. Fixes GH psych #168
+ * test/psych/test_merge_keys.rb: test for change
+ https://github.com/tenderlove/psych/issues/168
-Wed Nov 26 15:32:06 2014 Koichi Sasada <ko1@atdot.net>
+Tue Nov 5 21:21:47 2013 Tanaka Akira <akr@fsij.org>
- * compile.c (iseq_set_sequence): use "nop" insn instead of
- "jump to next insn".
- https://bugs.ruby-lang.org/issues/8543#change-50085
+ * test/ruby/test_thread.rb (test_thread_join_in_trap):
+ Run the test in a different process.
-Wed Nov 26 11:01:35 2014 Eric Wong <e@80x24.org>
+Tue Nov 5 20:14:32 2013 Masaya Tarui <tarui@ruby-lang.org>
- * iseq.c (iseq_s_compile_file): close IO when done
+ * gc.c (is_live_object): A hidden object may be a live object.
+ [ruby-dev:47788] [Bug #9072]
-Wed Nov 26 06:06:23 2014 Tanaka Akira <akr@fsij.org>
+Tue Nov 5 13:37:19 2013 Koichi Sasada <ko1@atdot.net>
- * common.mk: encdb.h and transdb.h depends on $(PREP).
- So prebuild files for them in tarball are useless.
+ * gc.c: add support to estimate increase of oldspace memory usage.
+ This is another approach to solve an issue discussed at r43530.
+ This feature is disabled as default.
-Wed Nov 26 02:08:44 2014 Tanaka Akira <akr@fsij.org>
+ This feature measures an increment of memory consumption by oldgen
+ objects. It measures memory consumption for each objects when
+ the object is promoted. However, measurement of memory consumption
+ is not accurate now. So that this measurement is `estimation'.
- * tool/make-snapshot: Don't generate enc/trans/newline.c in tarball.
+ To implement this feature, move memsize_of() function from
+ ext/objspace/objspace.c and expose rb_obj_memsize_of().
-Wed Nov 26 00:41:44 2014 Tanaka Akira <akr@fsij.org>
+ Some memsize() functions for T_DATA (T_TYPEDDATA) have problem to
+ measure memory size, so that we ignores T_DATA objects now.
+ For example, some functions skip NULL check for pointer.
- * common.mk (prereq): Don't depends on prelude.c and golf_prelude.c.
- Since they depend on $(PREP) which is miniruby, they are rebuilt
- after miniruby is built, even if tarball contains them.
+ The macro RGENGC_ESTIMATE_OLDSPACE enables/disables this feature,
+ and turned off as default.
-Wed Nov 26 00:20:48 2014 Tanaka Akira <akr@fsij.org>
+ We need to compare 3gen GC and this feature carefully.
+ (it is possible to enable both feature)
+ We need a help to compare them.
- * template/prelude.c.tmpl: Don't expand RbConfig::Config[...].
- It is not used now.
+ * internal.h: expose rb_obj_memsize_of().
- * common.mk: prelude.c and golf_prelude.c doesn't depend on rbconfig.
+ * ext/objspace/objspace.c: use rb_obj_memsize_of() function.
-Tue Nov 25 17:07:06 2014 Koichi Sasada <ko1@atdot.net>
+ * cont.c (fiber_memsize): fix to check NULL.
- * NEWS: add an "Implementation changes" section.
+ * variable.c (autoload_memsize): ditto.
-Tue Nov 25 16:09:28 2014 Eric Hodel <drbrain@segment7.net>
+ * vm.c (vm_memsize): ditto.
- * lib/net/http.rb: Do not attempt SSL session resumption when the
- session is expired. [Bug #10533]
+Tue Nov 5 04:03:07 2013 Koichi Sasada <ko1@atdot.net>
-Tue Nov 25 15:59:46 2014 Eric Hodel <drbrain@segment7.net>
+ * gc.c (GC_MALLOC_LIMIT_MAX): fix default value 512MB -> 384MB.
+ 512MB is huge.
- * lib/rake: Update to rake 10.4.0
- * test/rake: ditto.
- * NEWS: ditto.
+Tue Nov 5 03:31:23 2013 Koichi Sasada <ko1@atdot.net>
- * test/lib/minitest/unit.rb: Add compatibility shim for minitest 5.
- This only provides minitest 5 unit test naming compatibility.
+ * gc.c: add 3gen GC patch, but disabled as default.
-Tue Nov 25 15:26:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ RGenGC is designed as 2 generational GC, young and old generation.
+ Young objects will be promoted to old objects after one GC.
+ Old objects are not collect until major (full) GC.
- * tool/vcs.rb (get_revisions): use Time.new instead of Time.mktime
- which does not accept UTC offset, and offset manually for older
- versions than 1.9.
+ The issue of this approach is some objects can promoted as old
+ objects accidentally and not freed until major GC.
+ Major GC is not frequently so short-lived but accidentally becoming
+ old objects are not freed.
-Tue Nov 25 12:14:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ For example, the program "loop{Array.new(1_000_000)}" consumes huge
+ memories because short lived objects (an array which has 1M
+ elements) are promoted while GC and they are not freed before major
+ GC.
- * process.c (Init_process): initialize static IDs before constant
- definitions. [ruby-core:66445]
+ To solve this problem, generational GC with more generations
+ technique is known. This patch implements three generations gen GC.
-Tue Nov 25 10:32:23 2014 Eric Wong <e@80x24.org>
+ At first, newly created objects are "Infant" objects.
+ After surviving one GC, "Infant" objects are promoted to "Young"
+ objects.
+ "Young" objects are promoted to "Old" objects after surviving
+ next GC.
+ "Infant" and "Young" objects are collected if it is not marked
+ while minor GC. So that this technique solves this problem.
+
+ Representation of generations:
+ * Infant: !FL_PROMOTED and !oldgen_bitmap [00]
+ * Young : FL_PROMOTED and !oldgen_bitmap [10]
+ * Old : FL_PROMOTED and oldgen_bitmap [11]
+
+ The macro "RGENGC_THREEGEN" enables/disables this feature, and
+ turned off as default because there are several problems.
+ (1) Failed sometimes (Heisenbugs).
+ (2) Performance down.
+ Especially on write barriers. We need to detect Young or Old
+ object by oldgen_bitmap. It is slower than checking flags.
+
+ To evaluate this feature on more applications, I commit this patch.
+ Reports are very welcome.
- * compile.c (iseq_build_callinfo_from_hash): hoist out
- (iseq_build_from_ary_body): shorten callinfo case
+ This patch includes some refactoring (renaming names, etc).
-Mon Nov 24 23:03:21 2014 Kouhei Sutou <kou@cozmixng.org>
+ * include/ruby/ruby.h: catch up 3gen GC.
- * gems/bundled_gems: Update to test-unit 3.0.7.
+ * .gdbinit: fix to show a prompt "[PROMOTED]" for promoted objects.
-Mon Nov 24 12:44:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 5 00:05:51 2013 Koichi Sasada <ko1@atdot.net>
- * process.c (check_exec_redirect_fd, check_exec_redirect),
- (rb_execarg_addopt): get rid of inadvertent ID pindown.
+ * node.h: catch up comments for last commit.
-Mon Nov 24 02:03:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 5 00:02:00 2013 Koichi Sasada <ko1@atdot.net>
- * string.c (rb_str_setter): preserve encoding of global variable
- name in error message.
+ * include/ruby/ruby.h: rename FL_OLDGEN to FL_PROMOTED.
+ This flag represents that "this object is promoted at least once."
-Mon Nov 24 02:03:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c, debug.c, object.c: catch up this change.
- * iseq.c (rb_insn_operand_intern): preserve encoding of method
- name in CALL_INFO at disassembling.
+Mon Nov 4 22:20:16 2013 Tanaka Akira <akr@fsij.org>
-Mon Nov 24 02:02:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/xmlrpc: Don't use fixed ports: 8070 and 8071.
- * io.c (must_respond_to): preserve encodings of variable name and
- class name in warning message.
+Mon Nov 4 15:25:52 2013 Tanaka Akira <akr@fsij.org>
-Sun Nov 23 10:46:23 2014 Eric Wong <e@80x24.org>
+ * test/xmlrpc/webrick_testing.rb (start_server): Initialize the server
+ at main thread to fail early.
- * internal.h (struct rb_execarg): 160 => 144 bytes on x86-64
- * ruby.c (struct load_file_arg): 48 => 40 bytes on x86-64
- * vm_args.c (struct args_info): ditto
+Mon Nov 4 10:08:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Nov 23 07:46:54 2014 Andy Maloney <asmaloney@gmail.com>
+ * eval_intern.h (TH_EXEC_TAG, TH_JUMP_TAG): get rid of undefined
+ behavior of setjmp() in rhs of assignment expression.
+ [ISO/IEC 9899:1999] 7.13.1.1
- * io.c (rb_io_sysread): Remove redundant assignment of 'n'.
- [Fix GH-767]
+Sun Nov 3 23:06:51 2013 Tanaka Akira <akr@fsij.org>
-Sat Nov 22 09:48:33 2014 Tanaka Akira <akr@fsij.org>
+ * sample/test.rb: Make temporary file names unique.
- * tool/make-snapshot: Specify PWD macro for make.
- PWD environment variable may not exist.
+Sun Nov 3 20:41:17 2013 Tanaka Akira <akr@fsij.org>
-Fri Nov 21 11:58:58 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * test/xmlrpc: Wrap definitions by TestXMLRPC module.
- * lib/resolv.rb: fall back if canonicalization fails.
- Thanks Vit Ondruch for the patch! [ruby-core:65836]
+Sun Nov 3 20:23:38 2013 Tanaka Akira <akr@fsij.org>
- * test/resolv/test_dns.rb: test for patch
+ * test/xmlrpc/webrick_testing.rb (stop_server): Don't try to shutdown
+ the server if the server is not started.
-Sat Nov 22 01:11:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Nov 3 09:35:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * object.c (rb_mod_const_get, rb_mod_const_defined): ditto.
+ * load.c (rb_feature_p): deal with default loadable suffixes.
- * variable.c (rb_const_missing, rb_mod_const_missing): call
- const_missing without new ID to get rid of inadvertent ID
- creation.
+ * load.c (load_lock): initialize statically linked extensions.
-Fri Nov 21 19:32:57 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * load.c (search_required, rb_require_safe): deal with statically
+ linked extensions.
- * common.mk (ext/ripper/ripper.c): revert about srcdir and top_srcdir.
+ * load.c (ruby_init_ext): defer initialization of statically linked
+ extensions until required actually. [Bug #8883]
- * common.mk (ext/ripper/ripper.c): use $(PWD) for Unix,
- $(MAKEDIR) for Windows.
+Sat Nov 2 15:14:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Nov 21 18:12:37 2014 Tanaka Akira <akr@fsij.org>
+ * lib/logger.rb (Logger::LogDevice::LogDeviceMutex#lock_shift_log):
+ open file can't be removed or renamed on Windows. [ruby-dev:47790]
+ [Bug #9046]
- * tool/update-deps: Refactored.
+ * test/logger/test_logger.rb (TestLogDevice#run_children): don't use
+ fork.
-Fri Nov 21 14:25:40 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Sat Nov 2 07:08:43 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * win32/Makefile.sub (top_srcdir): added because lacking this macro
- causes build error at r48526.
+ * lib/logger.rb: Inter-process locking for log rotation
+ Current implementation fails log rotation on multi process env.
+ by sonots <sonots@gmail.com>
+ https://github.com/ruby/ruby/pull/428 fix GH-428 [Bug #9046]
-Fri Nov 21 12:00:58 2014 Tanaka Akira <akr@fsij.org>
+Fri Nov 1 23:24:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * tool/update-deps (in_makefile): Use FILES_NEED_VPATH and
- FILES_CONFUSING.
+ * gc.c (wmap_mark_map): mark live objects only, but delete zombies.
+ [ruby-dev:47787] [Bug #9069]
- * ext/objspace/extconf.rb: Add VPATH for id.h
+Fri Nov 1 22:45:54 2013 Masaya Tarui <tarui@ruby-lang.org>
-Fri Nov 21 09:10:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (struct heap_page, gc_page_sweep, gc_sweep): Refactoring for
+ performance. Add before_sweep condition to heap_page structure.
- * common.mk (ext/ripper/ripper.c): fix dependencies for the case
- to make ripper.y and id.h under the build directory.
+ * gc.c (rb_gc_force_recycle): Use before_sweep member.
-Fri Nov 21 08:42:21 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * gc.c (heap_is_before_sweep, is_before_sweep): Remove. They have not
+ already been used.
- * common.mk (ext/ripper/ripper.c): id.h in VPATH may exist in the build
- directory.
+Fri Nov 1 22:20:28 2013 Masaya Tarui <tarui@ruby-lang.org>
- * common.mk (ext/ripper/ripper.c): $(RM) was not defined.
+ * gc.c (make_deferred): Refactoring. Collect codes which should be
+ atomic.
-Fri Nov 21 00:36:09 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (make_io_deferred, obj_free, rb_objspace_call_finalizer,
+ gc_page_sweep): Correspond to the above.
- * ext/openssl/lib/openssl/x509.rb
- (OpenSSL::X509::Name::RFC2253DN::StringChar): get rid of a false
- positive assertion in ripper's test.
+Fri Nov 1 21:40:35 2013 Masaya Tarui <tarui@ruby-lang.org>
-Fri Nov 21 00:29:51 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (typedef struct rb_objspace): Refactoring. Move some members
+ into profile member.
- * lib/net/imap.rb (Net::IMAP::ResponseParser::BEG_REGEXP): no need to
- use embed string.
+ * gc.c (newobj_of): Correspond to the above.
-Fri Nov 21 00:19:17 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (finalize_list): Ditto.
- * lib/uri/mailto.rb (URI::MailTo::EMAIL_REGEXP): should escape `#`.
+ * gc.c (objspace_live_num): Ditto.
-Thu Nov 20 23:17:11 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (gc_page_sweep): Ditto.
- * tool/update-deps: Insert all dependencies found by compiler.
+ * gc.c (rb_gc_force_recycle): Ditto.
-Thu Nov 20 15:51:01 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * gc.c (garbage_collect_body): Ditto.
- * ext/nkf/depend (nkf.o): add nkf.c as dependency.
- bsdmake tries to make nkf.o with nkf-utf8/nkf.c without this.
+ * gc.c (rb_gc_count): Ditto.
-Thu Nov 20 08:54:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_stat): Ditto.
- * parse.y (struct parser_params): reduce size by reordering
- members and an unused member.
+ * gc.c (gc_prof_set_heap_info): Ditto.
-Thu Nov 20 02:44:27 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * gc.c (gc_profile_dump_on): Ditto.
- * lib/matrix.rb: Vector#independent? and associated class method
- patch by gogo tanaka [#10451]
+Fri Nov 1 20:53:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 20 02:32:34 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * string.c (rb_str_scrub): fix typo, should yield invalid byte
+ sequence to be scrubbed. reported by znz at IRC.
- * lib/matrix.rb: Add Vector#angle_with
- Patch by Egunov Dmitriy [#10442]
+Fri Nov 1 17:25:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 20 02:10:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (is_live_object): finalizer may not run because of lazy-sweep.
+ [ruby-dev:47786] [Bug #9069]
- * parse.y (ripper_flush_string_content, parser_parse_string):
- preserve parsed string content. [ruby-dev:48714] [Bug #10437]
+Fri Nov 1 16:55:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (ripper_new_yylval): abstract function to create ripper
- wrapper, and make it able to hold another object.
+ * string.c (rb_str_scrub): export with fixed length arguments, and
+ allow nil as replacement string instead of omitting.
-Thu Nov 20 01:00:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 1 06:20:44 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * parse.y (reg_named_capture_assign_gen): use predefined ID
- instead of rb_intern.
+ * thread.c (rb_mutex_struct): reduce rb_mutex_t size by 8 bytes
+ on 64bit platform. Patch by Eric Wong. [Feature #9068][ruby-core:58114]
-Thu Nov 20 00:54:57 2014 Tanaka Akira <akr@fsij.org>
+Fri Nov 1 01:08:33 2013 Koichi Sasada <ko1@atdot.net>
- * internal.h (ruby_init_setproctitle): Declare here.
+ * benchmark/gc/gcbench.rb: print HWM (high water mark) if possible.
-Thu Nov 20 00:26:37 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 31 21:48:31 2013 Kouhei Sutou <kou@cozmixng.org>
- * parse.y (parser_here_document): append byte sequence directly to
- the delayed content instead of creating an intermediate string
- object.
+ * lib/rexml/parsers/streamparser.rb: Add dependency file require.
+ [Bug #9062] [ruby-dev:47779]
+ Reported by Ippei Obayashi. Thanks!!!
-Wed Nov 19 21:11:01 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Thu Oct 31 14:09:32 2013 Koichi Sasada <ko1@atdot.net>
- * common.mk (ext/json/parser/parser.c): don't touch parse.c,
- ruby repo is a downstream.
+ * vm_method.c (rb_method_entry_make): fix to pass an ISeq value.
+ OBJ_WRITTEN() accepts only VALUE.
-Wed Nov 19 20:38:11 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Oct 30 19:07:57 2013 Akinori MUSHA <knu@iDaemons.org>
- * common.mk (ext/ripper/ripper.c): use $(PWD) to get
- <build-directory>/ext/ripper.
+ * misc/ruby-additional.el (ruby-brace-to-do-end)
+ (ruby-do-end-to-brace, ruby-toggle-block): Remove functions that
+ are already in the latest released version of Emacs (24.3).
+ [Bug #7565]
-Wed Nov 19 18:12:17 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Oct 30 12:44:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * tool/downloader.rb (RubyGems.download): Don't download gem if the
- version is already downloaded. A gem file is versioned and
- it must be identical if the version is the same.
+ * win32/Makefile.sub (config.status): add missing variables,
+ PLATFORM_DIR and THREAD_MODEL.
-Wed Nov 19 17:59:25 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Oct 30 12:20:32 2013 Tanaka Akira <akr@fsij.org>
- * common.mk (ext/ripper/ripper.c): pass build directory as VPATH.
+ * time.c (v2w): Normalize a rational value to an integer if possible.
+ [ruby-core:58070] [Bug #9059] reported by Isaac Schwabacher.
- * ext/ripper/depend (.y.c): use VPATH for y.tab.c.
+Wed Oct 30 12:08:41 2013 Masaki Matsushita <glass.saga@gmail.com>
-Wed Nov 19 10:07:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (rb_ary_uniq_bang): use rb_ary_modify_check() instead of
+ rb_ary_modify() because the array will be unshared soon.
- * template/prelude.c.tmpl (Prelude#translate): strip VPATH prefix
- from prelude names, so that srcdir differences do not make the
- generated code different.
+Wed Oct 30 03:25:10 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Wed Nov 19 07:45:11 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: make less garbage when
+ testing if a string is binary.
- * win32/win32.c (rb_w32_write): should set the error of
- GetOverlappedResult()'s, not WriteFile()'s (it's always
- ERROR_IO_PENDING, of course).
+Wed Oct 30 03:08:24 2013 Aaron Patterson <aaron@tenderlovemaking.com>
+
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: string subclasses should
+ not be considered to be binary. Fixes Psych / GH 166
+ https://github.com/tenderlove/psych/issues/166
+
+ * test/psych/test_string.rb: test for fix
-Tue Nov 18 14:16:47 2014 Koichi Sasada <ko1@atdot.net>
+Tue Oct 29 23:01:18 2013 Masaki Matsushita <glass.saga@gmail.com>
- * gc.c (gc_record): add information for debug print.
+ * array.c (rb_ary_zip): some refactoring.
-Wed Nov 19 04:49:07 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Oct 29 22:11:37 2013 Masaki Matsushita <glass.saga@gmail.com>
- * debug.c (set_debug_option): need the declaration.
+ * array.c (rb_ary_uniq_bang): use st_foreach() instead of for loop.
- * debug.c (set_debug_option): use the same macro with the implementation
- at win32/win32.c.
+Tue Oct 29 20:01:58 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 19 04:16:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * add RUBY_TYPED_FREE_IMMEDIATELY to data types which only use
+ safe functions during garbage collection such as xfree().
- * parse.y (symbol_list): fix the node type of literal symbol list
- with no interpolation. [ruby-core:66343]
+ On default, T_DATA objects are freed at same points as finalizers.
+ This approach protects issues such as reported by [ruby-dev:35578].
+ However, freeing T_DATA objects immediately helps heap usage.
-Wed Nov 19 00:26:15 2014 Tanaka Akira <akr@fsij.org>
+ Most of T_DATA (in other words, most of dfree functions) are safe.
+ However, we turned off RUBY_TYPED_FREE_IMMEDIATELY by default
+ for safety.
- * tool/update-deps: Sort dependencies.
+ * cont.c: ditto.
-Wed Nov 19 00:24:18 2014 Tanaka Akira <akr@fsij.org>
+ * dir.c: ditto.
- * enc/encdb.c: Include internal.h.
+ * encoding.c: ditto.
-Tue Nov 18 23:23:45 2014 Tanaka Akira <akr@fsij.org>
+ * enumerator.c: ditto.
- * internal.h: Gather declarations in non-header files.
+ * error.c: ditto.
-Tue Nov 18 23:45:52 2014 Tanaka Akira <akr@fsij.org>
+ * file.c: ditto.
- * debug.c (SET_WHEN): Don't declare debug variables here.
- ruby_initial_gc_stress_ptr is changed int* to VALUE* at r41406.
+ * gc.c: ditto.
- * internal.h (ruby_initial_gc_stress_ptr): Declared.
- (ruby_enable_coredump): Ditto.
+ * io.c: ditto.
-Tue Nov 18 18:06:43 2014 Tanaka Akira <akr@fsij.org>
+ * iseq.c: ditto.
- * include/ruby/io.h (FMODE_WSPLIT): Removed. The write() system call
- is not required to split. It was useful to avoid whole process
- blocking in Ruby 1.8 but not useful since write() is invoked without
- GVL.
- (FMODE_WSPLIT_INITIALIZED): Ditto.
+ * marshal.c: ditto.
- * io.c (wsplit_p): Removed.
- (io_writable_length): Removed.
- (rb_fcntl): Don't update the removed flags.
+ * parse.y: ditto.
-Tue Nov 18 03:23:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * proc.c: ditto.
- * object.c (check_setter_id): show the original argument instead
- of nil on TypeError.
+ * process.c: ditto.
-Tue Nov 18 03:20:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * random.c: ditto.
- * symbol.h (is_{local,global,instance,attrset,const,class,junk}_sym):
- fix ID type names.
+ * thread.c: ditto.
-Mon Nov 17 20:17:59 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * time.c: ditto.
- * ext/win32ole/win32ole_event.c: use typed data.
+ * transcode.c: ditto.
-Mon Nov 17 12:54:56 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * variable.c: ditto.
- * lib/rubygems/*, test/rubygems/*: Update to RubyGems 2.4.4
- master (2f6e42e).
+ * vm.c: ditto.
-Mon Nov 17 06:13:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_backtrace.c: ditto.
- * proc.c (proc_binding): use the original iseq on a binding from
- proc from method object to get the location.
+ * vm_trace.c: ditto.
-Sun Nov 16 19:38:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c: ditto.
- * vm_eval.c (rb_current_receiver): new function to return the
- receiver in the current control frame. [Feature #10195]
+ * ext/objspace/objspace.c: ditto.
-Sun Nov 16 19:11:04 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/stringio/stringio.c: ditto.
- * lib/timeout.rb (Timeout::ExitException#exception): rescue
- UncaughtThrowError which is specific for throw, instead of
- ArgumentError.
+ * ext/strscan/strscan.c: ditto.
+
+Tue Oct 29 19:48:33 2013 Koichi Sasada <ko1@atdot.net>
+
+ * include/ruby/ruby.h: fix typo (FL_WB_PROTECT -> FL_WB_PROTECTED).
+
+Tue Oct 29 18:45:08 2013 Koichi Sasada <ko1@atdot.net>
+
+ * vm_trace.c (tp_free): removed because empty free function.
+ Use RUBY_TYPED_NEVER_FREE instead.
+
+Tue Oct 29 18:37:33 2013 Koichi Sasada <ko1@atdot.net>
+
+ * include/ruby/ruby.h: introduce new flags for T_TYPEDDATA.
+ * RUBY_TYPED_FREE_IMMEDIATELY: free the data given by DATA_PTR()
+ with dfree function immediately. Otherwise (default), the data
+ freed at finalization point.
+ * RUBY_TYPED_WB_PROTECTED: make this object with FL_WB_PROTECT
+ (not shady).
+
+ * gc.c (obj_free): support RUBY_TYPED_FREE_IMMEDIATELY.
+
+Tue Oct 29 16:49:03 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (vm_malloc_increase): decrease it more carefully.
+
+Tue Oct 29 16:24:52 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (heap_page_resurrect): return a page in tomb heap even if
+ freelist is NULL.
+
+Tue Oct 29 15:46:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ruby_atomic.h (ATOMIC_SIZE_CAS): new macro, compare and swap size_t.
+
+Tue Oct 29 12:08:05 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/readline/readline.c (readline_getc): Consider
+ NULL as input.
+
+Tue Oct 29 11:10:08 2013 Aman Gupta <ruby@tmm1.net>
+
+ * gc.c (gc_profile_total_time): fix off-by-one error in
+ GC::Profiler.total_time.
+ * test/ruby/test_gc.rb (class TestGc): test for above.
+
+Tue Oct 29 09:53:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * insns.def, vm.c, vm_insnhelper.c, vm_insnhelper.h, vm_method.c: split
+ ruby_vm_global_state_version into two separate counters - one for the
+ global method state and one for the global constant state. This means
+ changes to constants do not affect method caches, and changes to
+ methods do not affect constant caches. In particular, this means
+ inclusions of modules containing constants no longer globally
+ invalidate the method cache.
+
+ * class.c, eval.c, include/ruby/intern.h, insns.def, vm.c, vm_method.c:
+ rename rb_clear_cache_by_class to rb_clear_method_cache_by_class
+
+ * class.c, include/ruby/intern.h, variable.c, vm_method.c: add
+ rb_clear_constant_cache
+
+ * compile.c, vm_core.h, vm_insnhelper.c: rename vmstat field in
+ rb_call_info_struct to method_state
+
+ * vm_method.c: rename vmstat field in struct cache_entry to method_state
+
+Mon Oct 28 23:26:04 2013 Tanaka Akira <akr@fsij.org>
+
+ * test/readline/test_readline.rb (teardown): Clear Readline.input and
+ Readline.output.
+
+Mon Oct 28 21:35:31 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/-test-/file/depend, ext/-test-/postponed_job/depend,
+ ext/-test-/tracepoint/depend: New files for dependencies.
+
+Mon Oct 28 15:32:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/openssl/depend (ossl.o): work around of dependency of
+ thread_native.h, which depends on headers by THREAD_MODEL.
+ [ruby-dev:47777]
+
+ * ext/openssl/extconf.rb: need THREAD_MODEL.
+
+Mon Oct 28 14:57:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * load.c (ruby_init_ext): share feature names between frame name and
+ provided features.
+
+Mon Oct 28 14:41:27 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-electric.el: Import ruby-electric.el 2.1 from
+ https://github.com/knu/ruby-electric.el.
+
+ * Hitting the newline-and-indent key within a comment fires
+ comment-indent-new-line.
+
+ * Introduce a new feature
+ `ruby-electric-autoindent-on-closing-char`.
+
+ * Fix fallback behavior of ruby-electric-space/return that
+ caused error with auto-complete.
+
+Mon Oct 28 13:17:17 2013 Or Cohen <orc@fewbytes.com>
+
+ * error.c (name_err_to_s): remove no longer needed overriding, since
+ r30455 which made exc_to_s almost same. Fixes [GH-413].
+
+Mon Oct 28 12:42:11 2013 Tanaka Akira <akr@fsij.org>
+
+ * common.mk, ext/objspace/depend, ext/coverage/depend,
+ ext/-test-/debug/depend, ext/date/depend: Update dependencies.
+
+Mon Oct 28 09:29:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Sun Nov 16 18:22:18 2014 Eric Wong <e@80x24.org>
+ * vm.c: vm_clear_all_cache is not necessary now we use a 64 bit counter
+ for global state version.
- * tool/update-deps: warning to disable ccache
+ * vm_insnhelper.h: ruby_vm_global_state_version overflow is unnecessary
-Sun Nov 16 13:11:35 2014 Tanaka Akira <akr@fsij.org>
+Mon Oct 28 07:47:32 2013 Aman Gupta <ruby@tmm1.net>
- * common.mk (CCAN_LIST_INCLUDES): Unused variable removed.
- (ENCODING_H_INCLUDES): Ditto.
- (PROBES_H_INCLUDES): Ditto.
- (VM_CORE_H_INCLUDES): Ditto.
+ * vm_backtrace.c (rb_profile_frame_classpath): do not use rb_inspect
+ directly, since it might have a custom implementation or show ivars.
-Sun Nov 16 11:07:25 2014 Eric Wong <e@80x24.org>
+Mon Oct 28 04:10:41 2013 Aman Gupta <ruby@tmm1.net>
- * test/ruby/test_io.rb (test_readpartial_locktmp):
- remove unnecessary begin/end
+ * vm_backtrace.c (rb_profile_frame_classpath): handle singleton
+ methods defined directly on an object.
+ * test/-ext-/debug/test_profile_frames.rb: test for above.
-Sun Nov 16 00:45:23 2014 Tanaka Akira <akr@fsij.org>
+Mon Oct 28 00:52:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * common.mk: Specify dependencies for generated C sources.
+ * struct.c (new_struct): fix warning message, class name and encoding.
-Sat Nov 15 23:10:45 2014 Tanaka Akira <akr@fsij.org>
+Sun Oct 27 20:53:08 2013 Tanaka Akira <akr@fsij.org>
- * common.mk: No need to declare dependencies which
- will be detected by inference rules.
+ * ext/readline/readline.c: Include ruby/thread.h for
+ rb_thread_call_without_gvl2.
+ (readline_rl_instream, readline_rl_outstream): Record FILE
+ structures allocated by this extension.
+ (getc_body): New function extracted from readline_getc.
+ (getc_func): New function.
+ (readline_getc): Use rb_thread_call_without_gvl2 to invoke getc_func.
+ [ruby-dev:47033] [Bug #8749]
+ (clear_rl_instream, clear_rl_outstream): Close FILE structure
+ allocated by this extension reliably. [ruby-core:57951] [Bug #9040]
+ (readline_readline): Use clear_rl_instream and clear_rl_outstream.
+ (readline_s_set_input): Set readline_rl_instream.
+ (readline_s_set_output): Set readline_rl_outstream.
+ (Init_readline): Don't call readline_s_set_input because
+ readline_getc doesn't block other threads for any FILE structure now.
-Sat Nov 15 20:34:23 2014 Tanaka Akira <akr@fsij.org>
+ [ruby-dev:47033] [Bug #8749] reported by Nobuhiro IMAI.
+ [ruby-core:57951] [Bug #9040] reported by Eamonn Webster.
- * internal.h: Include ruby.h and ruby/encoding.h to be
- includable without prior inclusion.
+Sat Oct 26 19:31:28 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Sat Nov 15 20:46:44 2014 Kouhei Sutou <kou@cozmixng.org>
+ * gc.c: catch up recent changes to compile on GC_DEBUG,
+ RGENGC_CHECK_MODE.
- * test/rexml/test_document.rb
- (REXMLTests::TestDocument::EntityExpansionLimitTest):
- Group tests by general entity and parameter entity.
+Sat Oct 26 19:08:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Nov 15 20:43:31 2014 Kouhei Sutou <kou@cozmixng.org>
+ * range.c (range_initialize_copy): disallow to modify after
+ initialized.
- * test/rexml/test_document.rb
- (REXMLTests::TestDocument::EntityExpansionLimitTest): Define
- test XML in each test method because (1) each XML in used only
- one test and (2) related data and code should be close.
+Sat Oct 26 17:48:54 2013 Tanaka Akira <akr@fsij.org>
-Sat Nov 15 20:39:06 2014 Kouhei Sutou <kou@cozmixng.org>
+ * lib/open-uri.rb (meta_add_field): : Re-implemented.
+ [ruby-core:58017] [Bug #9051] patch by Eamonn Webster.
- * test/rexml/test_document.rb
- (REXMLTests::TestDocument::EntityExpansionLimitTest): Use
- one test method for one test.
+Sat Oct 26 14:35:09 2013 Koichi Sasada <ko1@atdot.net>
-Sat Nov 15 20:16:59 2014 Kouhei Sutou <kou@cozmixng.org>
+ * gc.c (gc_profile_dump_on): use "Page" terminology.
- * test/rexml/test_document.rb
- (REXMLTests::TestDocument::EntityExpansionLimitTest): Use
- setup and teardown instead of ensure in test.
+Sat Oct 26 13:25:45 2013 Koichi Sasada <ko1@atdot.net>
-Sat Nov 15 20:11:34 2014 Kouhei Sutou <kou@cozmixng.org>
+ * gc.c (gc_sweep, gc_heap_lazy_sweep): fix measurement code.
+ We only need one sweep time measurement without lazy sweep.
- * test/rexml/test_document.rb (REXMLTests::TestDocument): Group
- entity expansion limit related tests.
+Sat Oct 26 11:59:13 2013 Tanaka Akira <akr@fsij.org>
-Sat Nov 15 20:09:00 2014 Kouhei Sutou <kou@cozmixng.org>
+ * addr2line.c: Include ELF header after system headers (especially
+ sys/types.h) to avoid compilation failure,
+ "usr/include/sh3/elf_machdep.h:4:2: error: #error Define _BYTE_ORDER!",
+ on NetBSD/sh3 (dreamcast, hpcsh, landisk, mmeye).
- * test/rexml/test_document.rb (REXMLTests::TestDocument::BomTest):
- Fix wrong parent class. It doesn't need inherit tests in
- TestDocument class.
+Sat Oct 26 11:35:22 2013 Koichi Sasada <ko1@atdot.net>
-Sat Nov 15 19:48:59 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c: tuning parameters.
- * lib/mkmf.rb (depend_rules): support comments during a line.
+ * gc.c (GC_MALLOC_LIMIT): change default value to 16MB.
- * lib/mkmf.rb (depend_rules): apply RULE_SUBST even if the dependency
- file contains path.
+ * gc.c (GC_MALLOC_LIMIT_GROWTH_FACTOR): change default value to 2.0.
-Sat Nov 15 19:25:46 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (gc_before_sweep): change decrease ratio of `malloc_limit'
+ from 1/4 to 1/10.
- * common.mk: Remove comments in Dependency lines.
- Notified by usa.
+Sat Oct 26 11:30:07 2013 Koichi Sasada <ko1@atdot.net>
- * enc/depend: Ditto.
+ * gc.c (vm_malloc_increase): do gc_rest_sweep() before GC.
+ gc_rest_sweep() can reduce malloc_increase, so try it before GC.
+ Otherwise, malloc_increase can be less than malloc_limit at
+ gc_before_sweep(). This means that re-calculation of malloc_limit
+ may be wrong value.
- * ext/**/depend: Ditto.
+Sat Oct 26 06:35:41 2013 Masaya Tarui <tarui@ruby-lang.org>
-Sat Nov 15 16:28:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_before_heap_sweep): Restructure code to mean clearly.
+ heap->freelist is connected to end of list.
- * vm_eval.c (rb_throw_obj): throw UncaughtThrowError instead of
- ArgumentError. [Feature #10480]
+Sat Oct 26 04:01:35 2013 Koichi Sasada <ko1@atdot.net>
-Sat Nov 15 14:13:38 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (gc_before_heap_sweep): fix freelist management.
+ After rb_gc_force_recycle() for a object belonging to heap->freelist,
+ `heap->using_page->freelist' is not null.
- * tool/update-deps: Extend to fix dependencies.
+Thu Oct 24 21:57:24 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * common.mk: Dependencies updated by tool/update-deps.
+ * parse.y: Remove +(binary) and -(binary) special cases
+ [Feature #9048]
- * enc/depend: Ditto.
+Thu Oct 24 12:45:53 2013 Zachary Scott <e@zzak.io>
- * ext/**/depend: Ditto.
+ * object.c: [DOC] Document first argument also takes string for:
-Fri Nov 14 17:36:48 2014 Tanaka Akira <akr@fsij.org>
+ rb_mod_const_get, rb_mod_const_set, rb_mod_const_defined
- * tool/update-deps: Support GNU Make 4.0.
+ Also added note about NameError exception for invalid constant name
-Fri Nov 14 16:59:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 24 12:23:58 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * gc.c (default_proc_for_compat_func): check arguments number and
- type, and get rid of reentering this default proc.
+ * thread.c (rb_thread_terminate_all): add a comment why we need
+ state check and call terminate_i again.
-Fri Nov 14 16:33:06 2014 Koichi Sasada <ko1@atdot.net>
+Thu Oct 24 12:15:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * gc.c (gc_stat_internal): support compatible layer for
- GC.stat(symbol) type access.
+ * thread.c (rb_thread_terminate_all): add a comment why infinite
+ sleep is safe.
-Fri Nov 14 16:19:08 2014 Koichi Sasada <ko1@atdot.net>
+Thu Oct 24 07:41:42 2013 Aman Gupta <ruby@tmm1.net>
- * gc.c (gc_stat_internal): add compatible layer.
- From Ruby 2.2, keys of GC.stat are changed [Feature #9924].
- To provide compatible layer, GC.stat add a default_proc
- (if default_proc of given Hash object is not set).
+ * gc.c: add new initial_growth_max tuning parameter.
+ [ruby-core:57928] [Bug #9035]
+ * gc.c (heap_set_increment): when initial_growth_max is set,
+ do not grow number of slots by more than growth_max at a time.
+ * gc.c (rb_gc_set_params): load optional new tuning value from
+ RUBY_HEAP_SLOTS_GROWTH_MAX environment variable.
+ * test/ruby/test_gc.rb (class TestGc): test for above.
- At first use of this compatible layer of interpreter process,
- show a warning message like that:
- program: GC.stat[:total_allocated_object]
- warning message: "warning: GC.stat keys were changed from Ruby
- 2.1. In this case, you refer to obsolete `total_allocated_object'
- (new key is `total_allocated_objects').
- Please check <https://bugs.ruby-lang.org/issues/9924>
- for more information."
+Thu Oct 24 01:34:12 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- Please correct my English message :)
+ * include/ruby/win32.h (rb_infinity_float): suppress overflow in
+ constant arithmetic warnings. [ruby-core:57981] [Bug #9044]
- * hash.c (rb_hash_set_default_proc): export (in internal).
+Thu Oct 24 00:11:24 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+
+ * lib/ostruct.rb: raise NoMethodError with a #name and #args.
+ Raise RuntimeError when modifying frozen instances
+ instead of TypeError.
+ (OpenStruct#each_pair): Return an enumerator with size
+ (OpenStruct#delete): Use the converted argument.
+ Patches by Kenichi Kamiya. [Fixes GH-383]
+
+ * test/ostruct/test_ostruct.rb: Added tests for above.
+
+Thu Oct 24 00:10:22 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+
+ * array.c: Add Array#to_h [Feature #7292]
+
+ * enum.c: Add Enumerable#to_h
+
+Wed Oct 23 23:48:28 2013 Aman Gupta <ruby@tmm1.net>
+
+ * gc.c: Rename free_min to min_free_slots and free_min_page to
+ max_free_slots. The algorithm for heap growth is:
+ if (swept_slots < min_free_slots) pages++
+ if (swept_slots > max_free_slots) pages--
+
+Wed Oct 23 22:51:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/Makefile.sub (config.h): VC 2013 supports C99 mathematics
+ functions. [ruby-core:57981] [Bug #9044]
+
+Wed Oct 23 19:13:18 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: move increment from heap to heap_pages.
+ Share `increment' information with heaps.
+
+ * gc.c: change ratio of heap_pages_free_min_page
+ to 0.80.
+ This change means slow down page freeing speed.
+
+Wed Oct 23 17:52:03 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (heap_pages_free_unused_pages): cast to (int) for size_t
+ variable `i'.
+
+Wed Oct 23 17:39:35 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: introduce tomb heap.
+ Tomb heap is where zombie objects and ghost (freed slot) lived in.
+ Separate from other heaps (now there is only eden heap) at sweeping
+ helps freeing pages more efficiently.
+ Before this patch, even if there is an empty page at former phase
+ of sweeping, we can't free it.
+
+ Algorithm:
+ (1) Sweeping all pages in a heap and move empty pages from the
+ heap to tomb_heap.
+ (2) Check all existing pages and free a page
+ if all slots of this page are empty and
+ there is enough empty slots (checking by swept_num)
+
+ To introduce this patch, there are several tuning of GC parameters.
+
+Wed Oct 23 14:20:56 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (gc_prof_sweep_timer_stop): catch up recent changes
+ to compile on GC_PROFILE_MORE_DETAIL=1.
+
+Wed Oct 23 11:43:27 2013 Zachary Scott <e@zzak.io>
+
+ * file.c: [DOC] fix rdoc format of File#expand_path from r43386
+
+Tue Oct 22 21:58:28 2013 URABE Shyouhei <shyouhei@ruby-lang.org>
+
+ * vm_core.h (enum): avoid syntax error.
+
+ * method.h: ditto.
* internal.h: ditto.
-Fri Nov 14 10:41:25 2014 Koichi Sasada <ko1@atdot.net>
+Tue Oct 22 19:53:16 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c: guard by #if/#endif with GC_ENABLE_INCREMENTAL_MARK
- to hide unused codes.
+ * gc.c (Init_heap): move logics from heap_pages_init() and remove
+ heap_pages_init().
- * gc.c: similar to GC_ENABLE_LAZY_SWEEP.
+Tue Oct 22 19:19:05 2013 Koichi Sasada <ko1@atdot.net>
-Fri Nov 14 10:23:35 2014 Eric Wong <e@80x24.org>
+ * gc.c: allow multiple heaps.
+ Now, objects are managed by page. And a set of pages is called heap.
+ This commit supports multiple heaps in the object space.
- * vm_eval.c (rb_eval_cmd): use pre-defined idCall
+ * Functions heap_* and rb_heap_t manages heap data structure.
+ * Functions heap_page_* and struct heap_page manage page data
+ structure.
+ * Functions heap_pages_* and struct rb_objspace_t::heap_pages
+ maintains all pages.
+ For example, pages are allocated from the heap_pages.
-Fri Nov 14 09:25:44 2014 Eric Wong <e@80x24.org>
+ See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design
+ and https://bugs.ruby-lang.org/attachments/4015/data-heap_structure_with_multiple_heaps.png
+ for more details.
- * vm_eval.c (rb_yield_splat): add missing GC guard
- [Bug #10509]
+ Now, there is only one heap called `eden', which is a space for all
+ new generated objects.
-Fri Nov 14 08:12:40 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Oct 22 18:26:12 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: fix build error caused by implicit conversion with clang.
+ * lib/pp.rb (object_address_group): Use Kernel#to_s to obtain the class
+ name and object address.
+ This fix a problem caused by %p in C generates variable length
+ address.
+ Reported by ko1 via IRC.
-Fri Nov 14 06:54:06 2014 Eric Wong <e@80x24.org>
+Tue Oct 22 16:57:48 2013 Benoit Daloze <eregontp@gmail.com>
- * insns.def (opt_succ): remove Time#succ optimization
- [Feature #10501]
+ * file.c (File#expand_path): [DOC] improve documentation of File#expand_path.
+ Based on patch by Prathamesh Sonpatki. [ruby-core:57734] [Bug #9002]
-Fri Nov 14 05:29:46 2014 Koichi Sasada <ko1@atdot.net>
+Tue Oct 22 15:59:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c: refactoring.
+ * dir.c (glob_helper): don't skip current directories if FNM_DOTMATCH
+ is given. [ruby-core:53108] [Bug #8006]
- * gc.c: use GC_ENABLE_INCREMENTAL_MARK instead of USE_RINCGC.
+Tue Oct 22 14:53:11 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (gc_start): check FORCE_MAJOR_GC.
+ * vm_trace.c: exterminate Zombies.
+ There is a bug that T_ZOMBIE objects are not collected.
+ Because there is a pass to miss finalizer postponed job
+ with multi-threading. This patch solve this issue.
-Fri Nov 14 04:51:18 2014 Koichi Sasada <ko1@atdot.net>
+ * vm_trace.c (rb_postponed_job_register_one): set
+ RUBY_VM_SET_POSTPONED_JOB_INTERRUPT(th) if another same job
+ is registered.
+ There is a possibility to remain a postponed job without
+ interrupt flag.
- * gc.c: Tuning RincGC parameters.
+ * vm_trace.c (rb_postponed_job_register_one): check interrupt
+ carefully.
- Before this patch, gc_marks_step() marks (white -> grey) fixed
- number objects. However, this strategy does not fit practical
- cases, for example too slow to make progress.
+ * vm_trace.c (rb_postponed_job_register_one): use additional space
+ to avoid buffer full.
- This patch changes this strategy how many objects the
- gc_marks_step() should handle.
+ * gc.c (gc_finalize_deferred_register): check failure.
- We can estimate how many times gc_marks_step() is called during
- this major marking (== C) with the free slot number in pooled
- pages. We also can estimate the living object number (== L)
- using last marked_slots value. We can solve this problem (how
- many objects should be process in gc_marks_step()) by L/C.
+ * thread.c (rb_threadptr_execute_interrupts): check
+ `postponed_job_interrupt' immediately. There is a possibility
+ to miss this flag.
- * gc.c (rb_objspace_t): add rb_objspace_t::rincgc::pooled_slots and
- step_slots.
+Tue Oct 22 12:11:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Nov 14 01:26:47 2014 Shugo Maeda <shugo@ruby-lang.org>
+ * configure.in: check if the given CFLAGS and LDFLAGS are working, and
+ bail out early if not.
- * lib/net/imap.rb (search_response): parse MODSEQ in SEARCH
- responses properly. [ruby-core:64203] [Bug #10112]
+Tue Oct 22 00:06:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Nov 14 01:03:17 2014 Tanaka Akira <akr@fsij.org>
+ * file.c (rb_file_exists_p): warn deprecated name. [Bug #9041]
- * test/lib/envutil.rb: Moved from test/ruby/.
+Mon Oct 21 23:57:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/lib/find_executable.rb: Ditto.
+ * encoding.c (load_encoding): should preserve outer errinfo, so that
+ expected exception may not be lost. [ruby-core:57949] [Bug #9038]
- * test/lib/memory_status.rb: Ditto.
+Sun Oct 20 15:41:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/lib/test/unit.rb: require envutil.
+ * io.c (rb_io_reopen): create a new, temporary FD via rb_sysopen and
+ call rb_cloexec_dup2 on it to atomically replace the file fptr->fd
+ points to. This leaves no possible window where fptr->fd is invalid
+ to userspace (even for any threads running w/o GVL). based on the
+ patch by Eric Wong <normalperson@yhbt.net> at [ruby-core:57943].
+ [Bug #9036]
- * test/: Don't require envutil in test files.
+Sun Oct 20 15:29:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 13 21:59:58 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * error.c (rb_syserr_fail_path_in): new function split from
+ rb_sys_fail_path_in to raise SystemCallError without errno.
- * lib/rexml/document.rb: add REXML::Document#document.
- reported by Tomas Hoger <thoger@redhat.com> and patched by nahi.
+ * internal.h (rb_syserr_fail_path): like rb_sys_fail_path but without
+ errno.
-Thu Nov 13 21:51:56 2014 Tanaka Akira <akr@fsij.org>
+Sun Oct 20 13:58:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/monitor/test_monitor.rb: Use assert_join_threads.
+ * include/ruby/ruby.h (rb_obj_wb_unprotect, rb_obj_written),
+ (rb_obj_write): suppress unused-parameter warnings.
-Thu Nov 13 21:45:13 2014 Tanaka Akira <akr@fsij.org>
+Sun Oct 20 10:32:48 2013 Eric Hodel <drbrain@segment7.net>
- * test/openssl: Don't specify port number.
+ * lib/rubygems: Update RubyGems to master 0886307. This commit
+ improves documentation and should bring ruby above 75% documented on
+ rubyci.
-Thu Nov 13 21:22:35 2014 Tanaka Akira <akr@fsij.org>
+Sun Oct 20 09:30:56 2013 Eric Hodel <drbrain@segment7.net>
- * test/openssl/ssl_server.rb: Unused file removed.
- It is not used since r16111, Ruby 1.9.1.
+ * lib/rubygems: Update to RubyGems master 3de7e0f. Changes:
-Thu Nov 13 18:50:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ Only attempt to build extensions for newly-installed gems. This
+ prevents compilation attempts at gem activation time for gems that
+ already have extensions built.
- * eval.c (rb_ensure): remove obsolete prot_tag comment. patch by
- Jack Danger at [ruby-core:66238]. [misc #10502]
+ Fix crash in the dependency resolver for dependencies that cannot be
+ resolved.
-Thu Nov 13 18:10:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems: ditto.
- * vm.c (rb_vm_make_proc_lambda): similar to rb_vm_make_proc() with
- is_lambda argument.
+Sun Oct 20 05:24:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 13 12:11:18 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * variable.c (rb_class2name): should return real class name, not
+ singleton class or iclass.
- * win32/win32.c (rb_w32_fstat{,i64}): speed up. adjusting
- timestamps in this function is to get rid of the side effect of
- ENV["TZ"]. then, if ENV["TZ"] is not set, no need to adjust.
- this change makes File#stat about 60% faster.
+Sun Oct 20 04:18:48 2013 Aman Gupta <ruby@tmm1.net>
-Thu Nov 13 11:56:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * variable.c (rb_class2name): call rb_tmp_class_path() directly to
+ avoid extra rb_str_dup() from rb_class_name().
- * st.c: include "internal.h" for STATIC_ASSERT.
+Sat Oct 19 19:59:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 13 03:56:38 2014 Eric Wong <e@80x24.org>
+ * win32/file.c (code_page): use simple array instead of st_table.
- * gc.c (struct heap_page): trivial packing
- 304 => 296 bytes on x86-64
+ * encoding.c (rb_locale_encindex): defer initialization of win32 code
+ page table until encoding db loaded.
-Wed Nov 12 22:50:12 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Oct 19 08:25:05 2013 Koichi Sasada <ko1@atdot.net>
- * gems/bundled_gems: Update to test-unit 3.0.6 and minitest 5.4.3.
+ * gc.c: fix rb_objspace_t.
+ * make "struct heap" and move most of variables
+ in rb_objspace_t::heap.
+ * rename rb_objspace_t::heap::sorted to
+ rb_objspace_t::heap_sorted_pages
+ and make a macro heap_sorted_pages.
+ * rename rb_objspace_t::heap::range to
+ rb_objspace_t::heap_range and rename macros
+ lomem/himem to heap_lomem/heap_himem.
-Wed Nov 12 22:30:52 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Oct 19 07:14:40 2013 Eric Hodel <drbrain@segment7.net>
- * lib/rubygems/*: Update to RubyGems 2.4.3 master (7b1f684).
+ * lib/rubygems: Update to RubyGems master 42543b6. Changes:
-Wed Nov 12 00:26:37 2014 Tanaka Akira <akr@fsij.org>
+ Fix `gem update` for gems with multiple platforms.
- * test/ruby/test_object.rb: Specify an exception class for rescue clause.
+ * test/rubygems: ditto.
- * test/dbm/test_dbm.rb: Ditto.
+Sat Oct 19 06:55:52 2013 Eric Hodel <drbrain@segment7.net>
- * test/gdbm/test_gdbm.rb: Ditto.
+ * lib/rubygems: Update to RubyGems master 0a3814b. Changes:
- * test/sdbm/test_sdbm.rb: Ditto.
+ Fixed extension directory in Gem::Specification#require_paths.
-Tue Nov 11 23:43:51 2014 Tanaka Akira <akr@fsij.org>
+ Allow installation of gems when $HOME is nonexistent or unwritable.
- * test/fileutils/test_fileutils.rb: Use assert_join_threads.
+ Use proper API in InstallCommand.
-Tue Nov 11 22:51:14 2014 Tanaka Akira <akr@fsij.org>
+ Improve support for path option in gem dependency files.
- * test/resolv/test_dns.rb: Use assert_join_threads.
+ Remove warnings.
-Tue Nov 11 22:33:08 2014 Tanaka Akira <akr@fsij.org>
+ * test/rubygems: ditto.
- * test/net/pop/test_pop.rb: Use assert_join_threads.
+Fri Oct 18 15:23:34 2013 Koichi Sasada <ko1@atdot.net>
-Tue Nov 11 22:07:20 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c: change terminology of heap.
+ Change "slot" to "page". "Slot" is a space of RVALUE.
+ 1. "Heap" consists of a set of "heap_page"s (pages).
+ 2. Each "heap_page" has "heap_page_body".
+ 3. "heap_page_body" has RVALUE (a.k.a. "slot") spaces.
+ 4. "sorted" is a sorted array of "heap_page"s, sorted
+ by address of heap_page_body (for "is_pointer_to_heap").
- * test/net/http/test_https_proxy.rb: Use assert_join_threads.
+ See https://bugs.ruby-lang.org/attachments/4008/data-heap_structure.png.
-Tue Nov 11 18:09:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Oct 18 09:40:43 2013 Eric Hodel <drbrain@segment7.net>
- * template/prelude.c.tmpl: move from tool/compile_prelude.rb and
- expand by generic_erb.rb.
+ * lib/rubygems: Update to RubyGems master cee6788. Changes:
-Tue Nov 11 13:01:31 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ Fix test failure on vc10-x64 Server on rubyci.org due to attempting
+ to File.chmod where it is not supported.
- * lib/rubygems/commands/contents_command.rb (files_in_default_gem):
- remove useless sort. show_files will sort the result and
- another branch, files_in_gem, doesn't sort.
- it should be removed for consistency.
+ Continuing work on improved gem dependencies file (Gemfile) support.
- * test/rubygems/test_gem_commands_contents_command.rb
- (test_execute_default_gem): adjust the sort algorithm with
- Gem::Commands::ContentsCommand#show_files, which sort items
- as array of [prefix, basename] not strings.
+ * test: ditto.
-Tue Nov 11 10:37:09 2014 Koichi Sasada <ko1@atdot.net>
+Fri Oct 18 06:02:49 2013 Eric Hodel <drbrain@segment7.net>
- * string.c (sym_equal): use rb_obj_equal().
- rb_obj_equal() is specially optimized in
- opt_eq_func()@vm_insnhelper.c.
+ * lib/rubygems: Update to RubyGems master f738c67. Changes:
- This fix is made from this discussion:
- https://www.omniref.com/ruby/2.1.4/symbols/Symbol/%3D%3D#line=8361.
+ Fixed test bug for ruby with ENABLE_SHARED = no
-Tue Nov 11 09:38:55 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * test/rubygems: ditto.
- * lib/rdoc/known_classes.rb: reverted regression changes of
- rdoc known class.
+Fri Oct 18 00:57:07 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 11 00:21:50 2014 Tanaka Akira <akr@fsij.org>
+ * lib/tsort.rb (TSort.tsort): Extracted from TSort#tsort.
+ (TSort.tsort_each): Extracted from TSort#tsort_each.
+ (TSort.strongly_connected_components): Extracted from
+ TSort#strongly_connected_components.
+ (TSort.each_strongly_connected_component): Extracted from
+ TSort#each_strongly_connected_component.
- * test/net/imap/test_imap.rb: Don't ignore exceptions on server
- threads.
+Thu Oct 17 18:50:08 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 10 23:34:13 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (CALC_EXACT_MALLOC_SIZE_CHECK_OLD_SIZE): introduced.
+ This macro enable checker compare with allocated memory and
+ declared old_size of sized_xfree and sized_xrealloc.
- * test/net/ftp/test_ftp.rb (create_ftp_server): Don't ignore
- exceptions on server thread.
- Delete read_timeout method call to fix NoMethodError.
+Thu Oct 17 18:45:41 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 10 20:20:53 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * string.c (STR_HEAP_SIZE): includes TERM_LEN(str).
- * win32/win32.c (rb_w32_read): retry with reduced length if cannot to
- write any data but no error occurs.
+ * string.c (rb_str_memsize): use STR_HEAP_SIZE().
-Mon Nov 10 20:04:16 2014 Tanaka Akira <akr@fsij.org>
+Thu Oct 17 17:43:00 2013 Shugo Maeda <shugo@ruby-lang.org>
- * lib/webrick/server.rb: Setup shutdown pipe in listen method.
+ * vm_insnhelper.c (vm_call_method): set ci->me to 0 when the
+ original method of a refined method is undef to avoid SEGV.
-Mon Nov 10 19:37:09 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm_method.c (rb_method_entry_without_refinements): return 0 when
+ the original method of a refined method is undef to avoid SEGV.
- * win32/win32.c, include/win32/win32.h (rb_w32_set_nonblock): new
- function to support nonblock-mode of pipes.
+ * test/ruby/test_refinement.rb: related test.
- * win32/win32.c (rb_w32_read): nonblock-mode pipe returns ERROR_NO_DATA
- if there is no data, but also returns it if remote-end is closed.
+Thu Oct 17 17:38:36 2013 Koichi Sasada <ko1@atdot.net>
- * win32/win32.c (rb_w32_write): if cannot to write any data, it may be
- blocking.
+ * gc.c, internal.h: rename ruby_xsizefree/realloc to
+ rb_sized_free/realloc.
- * io.c (rb_io_set_nonblock): use rb_w32_set_nonblock for Windows.
+ * array.c: catch up these changes.
- * ext/io/nonblock/nonblock.c (rb_io_nonblock_set): use ruby's API when
- setting nonblock-mode.
+ * string.c: ditto.
- * test/ruby/test_io.rb: test nonblock pipes on Windows.
+Thu Oct 17 17:32:51 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 10 17:24:34 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c, string.c: use ruby_xsizedfree() and ruby_xsizedrealloc().
- * ext/etc/etc.c (etc_getlogin): set login name encoding properly.
- [ruby-core:66163] [Bug #10493]
+ * internal.h (SIZED_REALLOC_N): define a macro as REALLOC_N().
-Mon Nov 10 16:20:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Oct 17 17:11:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rubygems/*.rb: Update to RubyGems master(3e36528).
+ * win32/win32.c (console_emulator_p): check by comparison between
+ module handle of WriteConsoleW and kernel32.dll.
-Mon Nov 10 16:09:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in, win32/Makefile.sub, win32/setup.mak: no longer need
+ psapi.lib.
- * signal.c (rb_f_kill): [DOC] mention known signal list.
- [ruby-core:66162] [Bug #10492]
+Thu Oct 17 16:53:30 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 10 14:17:58 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c, internal.h: add new internal memory management functions.
+ * void *ruby_xsizedrealloc(void *ptr, size_t new_size, size_t old_size)
+ * void ruby_xsizedfree(void *x, size_t size)
+ These functions accept additional size parameter to calculate more
+ accurate malloc_increase parameter which control GC timing.
+ [Feature #8985]
- * lib/rdoc/*.rb: Update to RDoc 4.2.0.alpha(579a11c)
+Thu Oct 17 14:21:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Nov 10 12:44:39 2014 Tanaka Akira <akr@fsij.org>
+ * win32/file.c (rb_file_expand_path_internal): fix memory leaks at
+ a non-absolute home exception.
- * lib/webrick/server.rb: Less instance variables.
+Thu Oct 17 14:06:39 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 10 12:19:43 2014 Tanaka Akira <akr@fsij.org>
+ * ext/objspace/object_tracing.c (newobj_i): fix memory leak.
+ There is possibility to remain info due to missing FREEOBJ event.
+ FREEOBJ events are skipped while suppress_tracing state, for example,
+ during trace events are invoking.
- * lib/webrick/server.rb (shutdown): Use close() on @shutdown_pipe_w to
- notify readability on the read side of the pipe.
- write_nonblock() is not usable for pipe on Windows.
- (cleanup_shutdown_pipe): Rescue IOError for @shutdown_pipe_w.close.
+Thu Oct 17 12:30:16 2013 Tanaka Akira <akr@fsij.org>
-Mon Nov 10 07:31:59 2014 Tanaka Akira <akr@fsij.org>
+ * lib/tsort.rb (TSort.each_strongly_connected_component_from):
+ Extracted from TSort#each_strongly_connected_component_from.
- * lib/webrick/server.rb (initialize): Initialize shutdown pipe here
- to avoid race condition.
- (cleanup_shutdown_pipe): New private method.
- (cleanup_listener): Extracted from shutdown method.
- Call this method from start method to avoid race condition.
+Thu Oct 17 11:07:06 2013 Eric Hodel <drbrain@segment7.net>
-Mon Nov 10 05:57:53 2014 Tanaka Akira <akr@fsij.org>
+ * lib/rubygems: Update to RubyGems master 941c21a. Changes:
- * test/webrick/webrick.cgi: Don't use debug mode.
+ Restored method bundler wants to remove for compatibility.
- * test/webrick/webrick_long_filename.cgi: Ditto.
+ Improvements to Gemfile compatibility.
-Sun Nov 9 23:25:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems: ditto.
- * vm_eval.c (vm_call_super): allow bound proc method to call super
- method.
+Thu Oct 17 08:08:11 2013 Koichi Sasada <ko1@atdot.net>
- * vm_insnhelper.c (vm_yield_with_cfunc): push defined class and
- bound proc method entry to the control frame.
+ * ext/objspace/object_tracing.c (newobj_i): add workaround.
+ some bugs hits this check.
-Sun Nov 9 22:46:13 2014 Tanaka Akira <akr@fsij.org>
+ * ext/objspace/object_tracing.c (object_allocations_reporter_i): cast as pointer.
- * test/open-uri: Test server log in server thread.
+Thu Oct 17 07:36:53 2013 Eric Hodel <drbrain@segment7.net>
- * test/webrick: Ditto.
+ * lib/rubygems: Update to RubyGems master 2abce58. Changes:
-Sun Nov 9 22:28:34 2014 Tanaka Akira <akr@fsij.org>
+ Fixed documentation generation when sdoc and json are installed as
+ gems.
- * lib/webrick/httpstatus.rb: require webrick/accesslog for AccessLog.
+ Added some missing documentation.
-Sun Nov 9 21:03:59 2014 Tanaka Akira <akr@fsij.org>
+Thu Oct 17 07:10:26 2013 Zachary Scott <e@zzak.io>
- * test/webrick: Fix the argument order of assert_equal.
+ * ext/curses/curses.c: [DOC] Cleaned up formatting consistency of rdoc
+ comments for Curses, including period spacing and column width.
-Sun Nov 9 20:29:01 2014 Tanaka Akira <akr@fsij.org>
+ This patch also fixed some typos. Thanks to @postmodern for the patch!
+ [Fixes GH-420] https://github.com/ruby/ruby/pull/420
- * test/webrick: Store log in an array.
+Thu Oct 17 06:58:42 2013 Zachary Scott <e@zzak.io>
- * test/net/http: Ditto.
+ * ext/date/date_core.c: [DOC] plural grammar fixed by @scott113341
+ Contributed via documenting-ruby.org: documenting-ruby/ruby#16
+ https://github.com/documenting-ruby/ruby/pull/16
- * test/open-uri: Ditto.
+Thu Oct 17 05:52:31 2013 Zachary Scott <e@zzak.io>
-Sun Nov 9 18:35:36 2014 Tanaka Akira <akr@fsij.org>
+ * ext/io/nonblock/nonblock.c: [DOC] Document io/nonblock by reprah
+ [Fixes GH-418] https://github.com/ruby/ruby/pull/418 based on the
+ original discussion from documenting-ruby/ruby#18
- * test/xmlrpc: Refine log test.
+Thu Oct 17 05:40:33 2013 Koichi Sasada <ko1@atdot.net>
-Sun Nov 9 18:33:33 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * gc.c (objspace_each_objects): do not skip empty RVALUEs.
- * lib/unicode_normalize/normalize.rb: Replaced if-else by
- case in self.normalized? in parallel to r48309.
+Thu Oct 17 05:31:31 2013 Koichi Sasada <ko1@atdot.net>
-Sun Nov 9 18:07:00 2014 Tanaka Akira <akr@fsij.org>
+ * error.c (rb_bug_reporter_add): return simply 0 if failed.
+ Please check return value.
- * test/xmlrpc: Use assert_join_threads.
+Thu Oct 17 05:17:33 2013 Koichi Sasada <ko1@atdot.net>
-Sun Nov 9 14:06:13 2014 Tanaka Akira <akr@fsij.org>
+ * ext/objspace/object_tracing.c: add new method
+ ObjectSpace.trace_object_allocations_debug_start for GC debugging.
+ If you encounter the BUG "... is T_NONE" (and so on) on your
+ application, please try this method at the beginning of your app.
- * test/xmlrpc: Test webrick error log is empty.
+Wed Oct 16 22:35:27 2013 Zachary Scott <e@zzak.io>
-Sun Nov 9 13:47:02 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/io/nonblock/nonblock.c: use rb_cIO instead of VALUE
- * gc.c (is_incremental_marking): use #if/#else because
- rb_objspace_t::flags::during_incremental_marking is not defined
- when GC_ENABLE_INCREMENTAL_MARK is 0.
+Wed Oct 16 17:45:13 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (will_be_incremental_marking, is_full_marking): similar fix.
+ * bootstraptest/runner.rb: check nil before calling `signal?'
+ for a process status.
-Sun Nov 9 12:16:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Oct 16 17:37:17 2013 Koichi Sasada <ko1@atdot.net>
- * lib/securerandom.rb (SecureRandom.gen_random): separate
- implementation details and select at the load time.
+ * error.c, internal.h (rb_bug_reporter_add): add a new C-API.
+ rb_bug_reporter_add() allows to register a function which
+ is called at rb_bug() called.
-Sun Nov 9 12:09:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/-test-/bug_reporter/bug_reporter.c: add a test for this C-API.
- * ext/win32/lib/win32/registry.rb (Win32::Registry::API#Enum{Value,Key):
- ditto.
+ * ext/-test-/bug_reporter/extconf.rb: ditto.
-Sun Nov 9 11:48:40 2014 Tanaka Akira <akr@fsij.org>
+ * test/-ext-/bug_reporter/test_bug_reporter.rb: ditto.
- * test/net/http: Examine webrick log.
+Wed Oct 16 15:14:21 2013 Koichi Sasada <ko1@atdot.net>
-Sun Nov 9 11:45:19 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * NEWS: add a line into NEWS for last commit.
- * gems/bundled_gems: upgraded to test-unit 3.0.5.
+Wed Oct 16 15:09:14 2013 Koichi Sasada <ko1@atdot.net>
-Sun Nov 9 11:40:50 2014 Tanaka Akira <akr@fsij.org>
+ * ext/objspace/objspace.c: add a new method `reachable_objects_from_root'.
+ ObjectSpace.reachable_objects_from_root returns all objects referred
+ from root (called "root objects").
+ This feature is for deep object analysis.
- * defs/known_errors.def: More errors for FreeBSD.
+ * test/objspace/test_objspace.rb: add a test.
-Sun Nov 9 11:25:11 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Wed Oct 16 15:00:21 2013 Eric Hodel <drbrain@segment7.net>
- * gems/bundled_gems: upgraded to power_assert 0.2.0.
+ * lib/rubygems: Update to RubyGems master b955554. Changes:
-Sun Nov 9 10:31:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ Fixed NameError for Gem::Ext due to re-entering file lookup in
+ RubyGems' overridden require. Bug by Koichi Sasada.
- * lib/securerandom.rb: set the script encoding to make a string
- literal in SecureRandom::Kernel32.last_error_message single byte
- encoding so msg[] works in bytes, since FormatMessage() returns
- the size in TCHARs, not in characters.
+ Fixed possible circular require warning in tests.
-Sun Nov 9 09:50:22 2014 Tanaka Akira <akr@fsij.org>
+ Used existing constant for `gem install -g` dependency file list.
- * test/webrick: Refine log tests.
+ * test/rubygems: ditto.
-Sun Nov 9 08:58:05 2014 Tanaka Akira <akr@fsij.org>
+Wed Oct 16 09:42:42 2013 Eric Hodel <drbrain@segment7.net>
- * defs/known_errors.def (EHWPOISON): New errno symbol.
- It is defined by glibc-2.16.
+ * lib/rubygems: Update to RubyGems master 278d00d. Changes:
-Sun Nov 9 05:00:23 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ Fixes building extensions without a "clean" make rule
- * lib/securerandom.rb (initialize): call the special method for Win32
- before checking `/dev/urandom` because we know windows doesn't have it.
+ Adds gem dependency file autodetection to "gem install -g"
-Sun Nov 9 04:01:46 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/rubygems: Tests for the above.
- * lib/securerandom.rb (SecureRandom::AdvApi32): split from `initialize`.
- thanks @zzak to remember it.
+Wed Oct 16 09:12:23 2013 Eric Hodel <drbrain@segment7.net>
-Sun Nov 9 02:05:33 2014 Tanaka Akira <akr@fsij.org>
+ * lib/rubygems: Update to RubyGems master commit 2a74263. This fixes
+ several bugs in RubyGems 2.2.0.preview.1.
- * test/net/http/utils.rb: Don't connect to spawned server
- before actual test.
+ * test/rubygems: ditto.
-Sun Nov 9 01:51:50 2014 Benoit Daloze <eregontp@gmail.com>
+Wed Oct 16 07:25:02 2013 Aman Gupta <ruby@tmm1.net>
- * object.c (Module#const_defined?): [DOC] Revise the documentation.
- Patch by Xavier Noria.
- [Fixes GH-754] https://github.com/ruby/ruby/pull/754
+ * gc.c (gc_mark_roots): rename roots to be categories
+ instead of function names.
-Sun Nov 9 00:37:44 2014 Tanaka Akira <akr@fsij.org>
+Tue Oct 15 19:18:13 2013 Koichi Sasada <ko1@atdot.net>
- * test/webrick: Examine log and use assert_join_threads.
+ * gc.h (rb_objspace_reachable_objects_from_root): added.
+ This API provides information which objects are root objects.
+ `category' shows what kind of root objects.
-Fri Nov 7 00:00:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_mark_roots): separate from gc_marks_body().
- * template/unicode_norm_gen.tmpl: expand kompatible_table so that
- recursive expansion is not needed at runtime.
+Tue Oct 15 17:47:59 2013 Tanaka Akira <akr@fsij.org>
-Thu Nov 6 23:58:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c: Fix a typo. MacOS X doesn't have ENOTSUPP.
- * pack.c (pack_pack): escape unprintable characters and preserve
- the encoding of warning message.
+Mon Oct 14 12:32:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 6 23:55:18 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ruby.c (process_options): load statically linked extensions before
+ rubygems, because of ext/thread.
- * string.c (sym_printable): QUOTE() should not raise an exception
- even on invalid byte sequence.
+ * ruby.c (process_options): use gem_prelude instead of requiring
+ rubygems directly when --enable=gems is given.
-Thu Nov 6 21:44:36 2014 Tanaka Akira <akr@fsij.org>
+ * Makefile.in (DEFAULT_PRELUDES): always use gem_prelude regardless of
+ --disable-rubygems.
- * test/test_unicode_normalize.rb: Rename TestNormalize to
- TestUnicodeNormalize.
- Define constants under TestUnicodeNormalize.
+Mon Oct 14 11:07:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 6 21:22:59 2014 Tanaka Akira <akr@fsij.org>
+ * lib/mkmf.rb (have_framework): should append framework options to
+ $LIBS, not $LDFLAGS. The former is propagated to exts.mk when
+ enable-static-linked-ext.
- * test/open-uri/test_open-uri.rb: Check empty webrick log.
+ * lib/mkmf.rb (create_makefile): ranlib on static library, not DLLIB.
-Thu Nov 6 19:27:34 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Sun Oct 13 23:53:40 2013 Andrew Grimm <andrew.j.grimm@gmail.com>
- * re.c (unescape_nonascii): cast -1 for the case char is unsigned char.
- If char is signed char, for example gcc for ARM or ppc64, it caused
- infinite loop.
- http://kmuto.jp/build-ruby/arm/ruby-trunk/log/20141106T013005Z.fail.html.gz
- http://rubyci.blob.core.windows.net/f19p8/ruby-trunk/log/20141106T090217Z.fail.html.gz
+ * vsnprintf.c: Fix spelling from compliment to complement.
+ Patch by @agrimm.
-Thu Nov 6 09:53:18 2014 Eric Wong <e@80x24.org>
+ * include/ruby/ruby.h: ditto
- * lib/uri/rfc2396_parser.rb (initialize): reduce bytecode size
- 2088 => 1332 bytes on 32-bit x86
+Sun Oct 13 20:59:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 6 08:49:49 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * vm.c (Init_BareVM): initialize defined_module_hash here,
+ Init_top_self() is too late to register core classes/modules.
- * lib/unicode_normalize/normalize.rb: Comment clarification.
+ * compile.c (compile_array_): no hash to merge if it is empty.
-Wed Nov 5 23:43:24 2014 Naohisa Goto <ngotogenome@gmail.com>
+ * vm.c (m_core_hash_merge_kwd): just check keys if only one argument
+ is given, without merging.
- * compile.c (compile_data_alloc): add padding when strict alignment
- is required for memory access. Currently, the padding is enabled
- only when the CPU is 32-bit SPARC and the compiler is GCC.
- [Bug #9681] [ruby-core:61715]
+Sat Oct 12 06:35:01 2013-10-11 Eric Hodel <drbrain@segment7.net>
- * compile.c (STRICT_ALIGNMENT): defined if strict alignment is required
+ * lib/rake: Update to rake 10.1.0
+ * bin/rake: ditto.
+ * test/rake: ditto.
- * compile.c (ALIGNMENT_SIZE, ALIGNMENT_SIZE_MASK, PADDING_SIZE_MAX):
- new macros for alignment word size, bit mask, max size of padding.
+ * NEWS: Update NEWS to include rake 10.1.0 and links to release notes.
- * compile.c (calc_padding): new function to calculate padding size.
+Sat Oct 12 03:26:04 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 5 23:24:45 2014 Tanaka Akira <akr@fsij.org>
+ * class.c, variable.c, gc.c (rb_class_tbl): removed.
- * test/open-uri/test_open-uri.rb: Don't ignore webrick's log.
+ * vm.c, vm_core.h (rb_vm_add_root_module): added to register as a
+ defined root module or class.
+ This guard helps mark miss from defined classes/modules they are
+ only referred from C's global variables in C-exts.
+ Basically, it is extension's bug.
+ Register to hash object VM has.
+ Marking a hash objects allows generational GC supports.
-Wed Nov 5 19:20:08 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (RGENGC_PRINT_TICK): disable (revert).
- * lib/webrick/server.rb: Stop listener loop properly.
- [ruby-core:66085] [Bug #10478] Fixed by Charles Nutter.
+Sat Oct 12 03:24:49 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 5 17:20:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_method.c (rb_gc_mark_unlinked_live_method_entries):
+ revert last commit to introduce debug prints.
- * include/ruby/intern.h (rb_disable_super, rb_enable_super): warn
- as deprecated at build time, instead of ignoring silently or
- warning at runtime only.
+Fri Oct 11 21:05:19 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 5 16:55:52 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h, parse.y: use `full_mark' instead of `full_marking'.
- * proc.c (rb_f_lambda): remove deprecated function, which has been
- unavailable from extension libraries.
+Fri Oct 11 20:58:16 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 5 16:26:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: use terminology `full_mark' instead of `minor_gc'
+ in mark functions.
- * include/ruby/intern.h (rb_clear_cache): mark as deprecated, not
- only warnings at runtime.
+Fri Oct 11 20:46:09 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 5 15:05:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: use __GNUC__ instead of __GCC__.
- * string.c (rb_str_{,l,r}strip_bang): rb_str_subseq() will not
- NUL-terminate the result string, in the future, so it will not
- be needed in other cases.
+Fri Oct 11 20:35:59 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 5 14:11:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c, parse.y: support generational Symbol related marking.
+ Each symbols has String objects respectively to represent
+ Symbols.
+ These objects are marked only when:
+ * full marking
+ * new symbols are added
+ This hack reduce symbols (related strings) marking time.
+ For example, on my Linux environment, the following code
+ "20_000_000.times{''}"
+ with 40k symbols (similar symbol number on Rails 3.2.14 app,
+ @jugyo tells me) boosts, from 7.3sec to 4.2sec.
- * common.mk (lib/unicode_normalize/tables.rb): do nothing unless
- BASERUBY is available. MINIRUBY cannot load extension libraries,
- so cannot update Unicode data.
+ * internal.h: change prototype of rb_gc_mark_symbols().
-Wed Nov 5 12:13:54 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Oct 11 19:27:22 2013 Akinori MUSHA <knu@iDaemons.org>
- * string.c (rb_str_lstrip, rb_str_strip): reduce memory copy by
- copying necessary part only.
+ * misc/ruby-electric.el: Import ruby-electric.el 2.0.1 which fixes
+ a bug and a flaw with auto-end introduced in the revamp.
- * string.c (rb_str_strip_bang, rb_str_strip): ditto.
+ * ruby-forward-sexp is inappropriate here because it moves the
+ cursor past the keyword.
-Wed Nov 5 12:13:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * Fix a reversed looking-back check in
+ ruby-electric--block-beg-keyword-at-point-p.
- * string.c (rb_str_lstrip, rb_str_strip): reduce memory copy by
- copying necessary part only.
+ * Do not add end again if space or return is hit repeatedly
+ after a block beginning keyword.
- * string.c (rb_str_strip_bang, rb_str_strip): ditto.
+Fri Oct 11 18:12:47 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 5 10:54:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/gc_hook.c: prohibit reentrant.
- * string.c (rb_str_lstrip_bang, rb_str_rstrip_bang): terminate
- wchar strings with wchar 0.
+Fri Oct 11 18:11:34 2013 Koichi Sasada <ko1@atdot.net>
-Tue Nov 4 21:23:22 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm_trace.c (rb_postponed_job_flush): fix bit operation.
- * ext/win32/lib/Win32API.rb: Fiddle::Importer is defined in
- fiddle/import.rb and it's not loaded implicitly.
+Fri Oct 11 17:33:24 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/win32/lib/Win32API.rb (Win32API#initialize): `import` is a string.
+ * misc/ruby-electric.el: Import ruby-electric.el 2.0 from
+ https://github.com/knu/ruby-electric.el which integrates changes
+ from another fork by @qoobaa.
- * ext/win32/lib/Win32API.rb (Win32API#initialize):
- Fiddle::Importer::CALL_TYPE_TO_ABI is private constant.
+ * Allow ruby-electric-mode to be disabled by introducing a
+ dedicated key map. Electric key bindings are now defined in
+ ruby-electric-mode-map instead of overwriting ruby-mode-map.
-Tue Nov 4 21:20:07 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * Add ruby-electric-mode-hook.
- * lib/securerandom.rb (SecureRandom.random_bytes): use fiddle directly
- instead of using Win32API.
+ * Use a remap in binding ruby-electric-delete-backward-char.
-Tue Nov 4 21:04:30 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * Totally revamp electric keywords and then introduce electric
+ return. Modifier keywords are now properly detected making
+ use of ruby-mode's indentation level calculator, and
- * test/rubygems/test_gem_request_set_lockfile.rb
- (test_relative_path_from): driveletter support.
+ * block-mid keywords (then, else, elsif, when, rescue and
+ ensure) also become electric with automatic reindentation.
-Tue Nov 4 16:23:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * Add standardized comments for ELPA integration.
- * test/rubygems/test_gem_remote_fetcher.rb (RemoteFetcherCleanup):
- close all pooled connections for each tests to fix leaked file
- descriptors.
+ * Fix interaction with smartparens-mode by disabling its end
+ keyword completion, since ruby-electric has become more clever
+ at it.
-Tue Nov 4 12:51:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * The custom variable `ruby-electric-keywords` is changed to
+ `ruby-electric-keywords-alist`, allowing user to fine-grained
+ configuration.
- * include/ruby/ruby.h (PRIsVALUE), vsnprintf.c (BSD_vfprintf): add
- RUBY_PRI_VALUE_MARK to reduce danger of accidental conflict with
- plain "%i". binary incompatible with extension libraries using
- PRIsVALUE and built for 2.1 and earlier. [EXPERIMENTAL]
+Fri Oct 11 16:53:28 2013 Koichi Sasada <ko1@atdot.net>
-Tue Nov 4 12:33:44 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * vm_trace.c (rb_postponed_job_flush): simplify.
- * object.c: fix document of Kernel#String by @suzukaze
- [fix GH-743][ci skip]
+Fri Oct 11 03:36:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Nov 4 12:21:45 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * thread.c (rb_threadptr_execute_interrupts): flush postponed job only
+ once at last.
- * lib/csv.rb: added documentation for skip_blanks option by @decasia
- [fix GH-744][ci skip]
+ * vm_trace.c (rb_postponed_job_flush): defer calling postponed jobs
+ registered while flushing to get rid of infinite reentrance of
+ ObjectSpace.after_gc_start_hook. [ruby-dev:47400] [Bug #8492]
-Tue Nov 4 12:09:18 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Oct 10 23:04:00 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/open3.rb: fix code formatting in documentation by @JoshCheek
- [fix GH-747][ci skip]
+ * array.c (rb_ary_or): remove unused variables.
-Tue Nov 4 08:57:37 2014 Eric Wong <e@80x24.org>
+Thu Oct 10 23:01:16 2013 Masaki Matsushita <glass.saga@gmail.com>
- * encoding.c (enc_memsize): remove unnecessary function
- [ruby-core:65304]
+ * array.c (rb_ary_or): use rb_hash_keys().
-Mon Nov 3 18:09:39 2014 Tanaka Akira <akr@fsij.org>
+Thu Oct 10 21:36:16 2013 Masaki Matsushita <glass.saga@gmail.com>
- * test/openssl/utils.rb: The default of :ignore_listener_error is
- changed to false.
+ * array.c (rb_ary_compact_bang): use ary_resize_smaller().
-Mon Nov 3 14:42:37 2014 Koichi Sasada <ko1@atdot.net>
+Thu Oct 10 17:25:28 2013 Koichi Sasada <ko1@atdot.net>
- * iseq.c (iseq_free): resolve memory leak.
+ * vm.c (vm_exec): support :b_return event for "lambda{return}.call".
+ [Bug #8622]
-Mon Nov 3 13:49:18 2014 Koichi Sasada <ko1@atdot.net>
+ * test/ruby/test_settracefunc.rb: add a test.
- * iseq.c (iseq_memsize): catch up recent changes.
+Thu Oct 10 13:52:37 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 3 13:38:28 2014 Koichi Sasada <ko1@atdot.net>
+ * vm_trace.c (postponed_job): use preallocated buffer.
+ Pre-allocate MAX_POSTPONED_JOB (1024) sized buffer
+ and use it.
+ If rb_postponed_job_register() cause overflow, simply it
+ fails and returns 0.
+ And maybe rb_postponed_job_register() is signal safe.
- * vm_core.h: change semantics of opt_num and opt_table.
- `opt_num' was the number of optional parameters + 1.
- `opt_table' has "opt_num" entries.
+ * vm_core.h: change data structure.
- Change them to:
- `opt_num' is the number of optional parameters.
- `opt_table' has "opt_num + 1" entries.
+Thu Oct 10 11:11:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- This change simplify parameter fitting logics.
+ * vm.c (Init_VM): hide also the singleton class of frozen-core, not
+ only frozen-core itself.
- * compile.c: catch up this change.
+Thu Oct 10 06:02:08 2013 Koichi Sasada <ko1@atdot.net>
- * iseq.c: ditto.
+ * test/ruby/test_rand.rb: fix r43224. local variable `e' is
+ no longer available.
- * proc.c: ditto.
+Thu Oct 10 00:02:35 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * vm_args.c: ditto.
+ * numeric.c (fix_aref): avoid a possible undefined behavior.
+ 1L << 63 on 64-bit platform is undefined, at least, according to
+ ISO/IEC 9899 (C99) 6.5.7.
-Mon Nov 3 11:47:44 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Oct 9 23:57:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * NEWS: added period into Matrix section. [ci skip]
- [misc #10446][ruby-core:65987]
+ * object.c (id_for_attr): avoid inadvertent symbol creation.
-Mon Nov 3 09:43:30 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Oct 9 18:03:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm_args.c: fixed build error with clang
+ * vm_method.c (rb_attr): preserve encoding of the attribute ID in
+ error message.
-Mon Nov 3 09:32:46 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Oct 9 17:40:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/uri/rfc3986_parser.rb (URI::RFC3986_Parser::RFC3986_URI):
- allow '[' and ']' for URI input (and escape). [Bug #10402]
+ * string.c (rb_fstring): because of lazy sweep, str may be unmarked
+ already and swept at next time, so mark it for the time being.
+ [ruby-core:57756]
- * lib/uri/generic.rb (URI#query=): escape '[', '\', and ']'.
+Wed Oct 9 13:53:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Nov 3 07:49:34 2014 Koichi Sasada <ko1@atdot.net>
+ * compar.c (cmp_eq): fail if recursion. [ruby-core:57736] [Bug #9003]
- * vm_core.h: change iseq parameter data structure.
- https://bugs.ruby-lang.org/issues/10440#change-49694
+ * thread.c (rb_exec_recursive_paired_outer): new function which is
+ combination of paired and outer variants.
- * change terminology `arg' to `param'.
- * move rb_iseq_t::arg_* to rb_iseq_t::param.
- * move rb_iseq_t::arg_size to rb_iseq_t::param::size.
- * move rb_iseq_t::argc to rb_iseq_t::param::lead_num.
- * move rb_iseq_t::arg_opts to rb_iseq_t::param::opt_num.
- * move rb_iseq_t::arg_rest to rb_iseq_t::param::rest_start.
- * move rb_iseq_t::arg_post_num to rb_iseq_t::param::post_num.
- * move rb_iseq_t::arg_post_start to rb_iseq_t::param::post_start.
- * move rb_iseq_t::arg_block to rb_iseq_t::param::block_start.
- * move rb_iseq_t::arg_keyword* to rb_iseq_t::param::keyword.
- rb_iseq_t::param::keyword is allocated only when keyword
- parameters are available.
- * introduce rb_iseq_t::param::flags to represent parameter
- availability. For example, rb_iseq_t::param::flags::has_kw
- represents that this iseq has keyword parameters and
- rb_iseq_t::param::keyword is allocated.
- We don't need to compare with -1 to check availability.
- * remove rb_iseq_t::arg_simple.
+Wed Oct 9 09:18:14 2013 Koichi Sasada <ko1@atdot.net>
- * compile.c: catch up this change.
+ * include/ruby/debug.h,
+ vm_backtrace.c (rb_profile_frame_full_label): add new C API
+ rb_profile_frame_full_label() which returns label with
+ qualified method name.
+ Note that in future version of Ruby label() may return
+ same return value of full_label().
- * iseq.c: ditto.
+ * ext/-test-/debug/profile_frames.c,
+ test/-ext-/debug/test_profile_frames.rb: fix a test for this change.
- * proc.c: ditto.
- * vm.c, vm_args.c, vm_dump.c, vm_insnhelper.c: ditto.
+Wed Oct 9 00:55:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * iseq.c (iseq_data_to_ary): support keyword argument.
+ * load.c (load_lock): display backtrace to $stderr at circular
+ require.
-Mon Nov 3 03:39:04 2014 Koichi Sasada <ko1@atdot.net>
+ * vm_backtrace.c (rb_backtrace_print_to): new function to print
+ backtrace to the given output.
- * test/ruby/test_method.rb: r48239 makes this test green.
+Tue Oct 8 21:03:35 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 03 03:02:38 2014 Koichi Sasada <ko1@atdot.net>
+ * vm_backtrace.c, include/ruby/debug.h: add new APIs
+ * VALUE rb_profile_frame_method_name(VALUE frame)
+ * VALUE rb_profile_frame_qualified_method_name(VALUE frame)
- * rewrite method/block parameter fitting logic to optimize
- keyword arguments/parameters and a splat argument.
- [Feature #10440] (Details are described in this ticket)
+ * iseq.c (rb_iseq_klass), internal.h: add new internal function
+ rb_iseq_method_name().
- Most of complex part is moved to vm_args.c.
+ * ext/-test-/debug/profile_frames.c (profile_frames),
+ test/-ext-/debug/test_profile_frames.rb: add a test.
- Now, ISeq#to_a does not catch up new instruction format.
+Tue Oct 8 16:11:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm_core.h: change iseq data structures.
+ * array.c (rb_ary_uniq): use rb_hash_values(), as well as the case no
+ block is given.
- * introduce rb_call_info_kw_arg_t to represent keyword arguments.
- * add rb_call_info_t::kw_arg.
- * rename rb_iseq_t::arg_post_len to rb_iseq_t::arg_post_num.
- * rename rb_iseq_t::arg_keywords to arg_keyword_num.
- * rename rb_iseq_t::arg_keyword to rb_iseq_t::arg_keyword_bits.
- to represent keyword bitmap parameter index.
- This bitmap parameter shows that which keyword parameters are given
- or not given (0 for given).
- It is referred by `checkkeyword' instruction described bellow.
- * rename rb_iseq_t::arg_keyword_check to rb_iseq_t::arg_keyword_rest
- to represent keyword rest parameter index.
- * add rb_iseq_t::arg_keyword_default_values to represent default
- keyword values.
- * rename VM_CALL_ARGS_SKIP_SETUP to VM_CALL_ARGS_SIMPLE
- to represent
- (ci->flag & (SPLAT|BLOCKARG)) &&
- ci->blockiseq == NULL &&
- ci->kw_arg == NULL.
+ * internal.h: define rb_hash_values() as internal API.
- * vm_insnhelper.c, vm_args.c: rewrite with refactoring.
+Tue Oct 8 13:53:21 2013 Masaki Matsushita <glass.saga@gmail.com>
- * rewrite splat argument code.
- * rewrite keyword arguments/parameters code.
- * merge method and block parameter fitting code into one code base.
+ * array.c (rb_ary_uniq): use rb_hash_keys().
- * vm.c, vm_eval.c: catch up these changes.
+ * internal.h: define rb_hash_keys() as internal API.
- * compile.c (new_callinfo): callinfo requires kw_arg parameter.
+ * hash.c (rb_hash_keys): ditto.
- * compile.c (compile_array_): check the last argument Hash object or
- not. If Hash object and all keys are Symbol literals, they are
- compiled to keyword arguments.
+Tue Oct 8 10:56:39 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * insns.def (checkkeyword): add new instruction.
- This instruction check the availability of corresponding keyword.
+ * cont.c: disable FIBER_USE_NATIVE on GNU/Hurd because it doesn't
+ support a combination getcontext() and threads. Patch by
+ Gabriele Giacone (1o5g4r8o@gmail.com). [Bug #8990][ruby-core:57685]
- For example, a method "def foo k1: 'v1'; end" is compiled to the
- following instructions.
+Tue Oct 8 05:58:12 2013 Tanaka Akira <akr@fsij.org>
- 0000 checkkeyword 2, 0 # check k1 is given.
- 0003 branchif 9 # if given, jump to address #9
- 0005 putstring "v1"
- 0007 setlocal_OP__WC__0 3 # k1 = 'v1'
- 0009 trace 8
- 0011 putnil
- 0012 trace 16
- 0014 leave
+ * lib/time.rb (Time.strptime): Time.strptime('0', '%s') returns local
+ time Time object as Ruby 2.0 and before.
- * insns.def (opt_send_simple): removed and add new instruction
- "opt_send_without_block".
+Tue Oct 8 05:40:37 2013 Eric Hodel <drbrain@segment7.net>
- * parse.y (new_args_tail_gen): reorder variables.
- Before this patch, a method "def foo(k1: 1, kr1:, k2: 2, **krest, &b)"
- has parameter variables "k1, kr1, k2, &b, internal_id, krest",
- but this patch reorders to "kr1, k1, k2, internal_id, krest, &b".
- (locate a block variable at last)
+ * .travis.yml: Rebuild Travis CI's "ruby-head" version on successful
+ build. Patch by Konstantin Haase. [Fixes GH-417]
+ https://github.com/ruby/ruby/pull/417
- * parse.y (vtable_pop): added.
- This function remove latest `n' variables from vtable.
+Tue Oct 8 04:28:25 2013 Akinori MUSHA <knu@iDaemons.org>
- * iseq.c: catch up iseq data changes.
+ * misc/ruby-mode.el: Use preceding-char/following-char
+ (returning 0 at BOF/EOF) instead of char-before/char-after
+ (returning nil at BOF/EOF) to avoid error from char-syntax when
+ at BOF/EOF.
- * proc.c: ditto.
+Tue Oct 8 04:12:45 2013 Akinori MUSHA <knu@iDaemons.org>
- * class.c (keyword_error): export as rb_keyword_error().
+ * misc/ruby-additional.el (ruby-mode-set-encoding): Add a missing
+ else clause to unbreak with `cp932`, etc.
- * common.mk: depend vm_args.c for vm.o.
+ * misc/ruby-mode.el (ruby-mode-set-encoding): Ditto.
- * hash.c (rb_hash_has_key): export.
+Tue Oct 8 03:57:34 2013 Akinori MUSHA <knu@iDaemons.org>
- * internal.h: ditto.
+ * misc/ruby-additional.el (ruby-mode-set-encoding): Use
+ `default-buffer-file-coding-system` if the :prefer-utf-8
+ property is not available.
+
+ * misc/ruby-mode.el (ruby-mode-set-encoding): Ditto.
+
+ * misc/ruby-additional.el (ruby-encoding-map): Override the
+ default value.
+
+Tue Oct 8 03:19:19 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-additional.el (ruby-mode-set-encoding): Add support
+ for `prefer-utf-8` which was introduced in Emacs trunk.
+
+ * misc/ruby-additional.el (ruby-encoding-map): Add a mapping from
+ `japanese-cp932` to `cp932` to fix the problem where saving a
+ source file written in Shift_JIS twice would end up having
+ `coding: japanese-cp932` which Ruby could not recognize.
+
+ * misc/ruby-additional.el (ruby-mode-set-encoding): Add support
+ for encodings mapped to nil in `ruby-encoding-map`.
+
+ * misc/ruby-additional.el (ruby-encoding-map): Map `us-ascii` and
+ `utf-8` to nil by default, meaning they need not be explicitly
+ declared in magic comment.
+
+ * misc/ruby-additional.el (ruby-encoding-map): Add type
+ declaration for better customize UI.
+
+ * misc/ruby-mode.el: Ditto for the above.
+
+Tue Oct 8 00:14:53 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-additional.el: Add a standard header and footer,
+ including (provide 'ruby-additional).
+
+Mon Oct 7 22:52:45 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-electric.el (ruby-electric-space-can-be-expanded-p):
+ Return nil to avoid "end" insertion when in smartparens-mode
+ that is configured to insert "end" for the same keyword.
+
+ * misc/ruby-electric.el (ruby-electric-keywords): New custom
+ variable to replace `ruby-electric-simple-keywords-re` with.
+
+Mon Oct 7 22:52:16 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-additional.el: Use preceding-char/following-char
+ (returning 0 at BOF/EOF) instead of char-before/char-after
+ (returning nil at BOF/EOF) to avoid error from char-syntax when
+ at BOF/EOF.
+
+Mon Oct 7 22:45:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * cont.c (FIBER_USE_NATIVE): split long conditions.
+
+Mon Oct 7 20:29:31 2013 Zachary Scott <e@zzak.io>
+
+ * lib/time.rb: [DOC] typo in Time.rb overview by @srt32 [Fixes GH-416]
+ https://github.com/ruby/ruby/pull/416
+
+Mon Oct 7 20:07:20 2013 Tanaka Akira <akr@fsij.org>
+
+ * lib/time.rb (Time.strptime): Use :offset.
+ Patch by Felipe Contreras. [ruby-core:57694]
+
+Mon Oct 7 16:47:27 2013 Koichi Sasada <ko1@atdot.net>
+
+ * test/-ext-/debug/test_profile_frames.rb: rename class C to
+ something long name because one test depends on absence of
+ class ::C.
+
+Mon Oct 7 16:33:10 2013 Koichi Sasada <ko1@atdot.net>
+
+ * ext/-test-/debug/profile_frames.c:
+ test/-ext-/debug/test_profile_frames.rb: add a test for new C-APIs.
+
+Mon Oct 7 16:12:36 2013 Koichi Sasada <ko1@atdot.net>
+
+ * include/ruby/debug.h: add backtrace collecting APIs for profiler.
+ * int rb_profile_frames(int start, int limit, VALUE *buff, int *lines);
+ Collect information of frame information.
+
+ * VALUE rb_profile_frame_path(VALUE frame);
+ * VALUE rb_profile_frame_absolute_path(VALUE frame);
+ * VALUE rb_profile_frame_label(VALUE frame);
+ * VALUE rb_profile_frame_base_label(VALUE frame);
+ * VALUE rb_profile_frame_first_lineno(VALUE frame);
+ * VALUE rb_profile_frame_classpath(VALUE frame);
+ * VALUE rb_profile_frame_singleton_method_p(VALUE frame);
+ Get information about each frame.
+
+ These APIs are designed for profilers, for example, no object allocation,
+ and enough information for profilers.
+ In this version, this API collects only Ruby level frames.
+ This issue will be fixed after Ruby 2.1.
+
+ * vm_backtrace.c: implement above APIs.
+
+ * iseq.c (rb_iseq_klass): return local_iseq's class.
+
+Mon Oct 7 14:26:01 2013 Koichi Sasada <ko1@atdot.net>
+
+ * proc.c: catch up last commit.
+ Type of return value of rb_iseq_first_lineno() is now VALUE.
+
+ * vm_insnhelper.c (argument_error): ditto.
+
+ * vm_method.c (rb_method_entry_make): ditto.
+
+Mon Oct 7 14:07:45 2013 Koichi Sasada <ko1@atdot.net>
+
+ * iseq.c, internal.h: change to public (but internal) functions
+ * VALUE rb_iseq_path(VALUE iseqval);
+ * VALUE rb_iseq_absolute_path(VALUE iseqval);
+ * VALUE rb_iseq_label(VALUE iseqval);
+ * VALUE rb_iseq_base_label(VALUE iseqval);
+ * VALUE rb_iseq_first_lineno(VALUE iseqval);
+ And new (temporary) function:
+ * VALUE rb_iseq_klass(VALUE iseqval);
+
+ * iseq.c. vm_core.h (int rb_iseq_first_lineno): remove
+ function `int rb_iseq_first_lineno(const rb_iseq_t *iseq)'.
+ Use `VALUE rb_iseq_first_lineno(VALUE iseqval)' instead.
+
+ * proc.c. vm_insnhelper.c, vm_method.c: catch up this change.
+
+Sun Oct 6 08:37:39 2013 Zachary Scott <e@zzak.io>
+
+ * lib/webrick.rb: [DOC] fix grammar in WEBrick overview [Fixes GH-413]
+ Based on patch by @chastell https://github.com/ruby/ruby/pull/413
+
+Sat Oct 5 11:21:01 2013 Aaron Pfeifer <aaron.pfeifer@gmail.com>
+
+ * thread.c (terminate_atfork_i): fix locking mutexes not unlocked in
+ forks when not tracked in thread. [ruby-core:55102] [Bug #8433]
+
+Fri Oct 4 19:54:09 2013 Zachary Scott <e@zzak.io>
+
+ * ext/dbm/dbm.c: [DOC] Fix wrong constant name in DBM by @edward
+ [Fixes GH-409] https://github.com/ruby/ruby/pull/409
+
+Fri Oct 4 19:49:42 2013 Aman Gupta <ruby@tmm1.net>
+
+ * gc.c: rename heap.free_num as heap.swept_num to clarify meaning and
+ avoid confusion with objspace_free_num().
+
+Fri Oct 4 19:02:01 2013 Aman Gupta <ruby@tmm1.net>
+
+ * gc.c (objspace_free_num): new method for available/free slots on
+ heap. [ruby-core:57633] [Bug #8983]
+ * gc.c (gc_stat): change heap_free_num definition to use new method.
+ * test/ruby/test_gc.rb: test for above.
+
+Fri Oct 4 18:53:42 2013 Aman Gupta <ruby@tmm1.net>
+
+ * gc.c: add rb_objspace.limit to keep accurate count of total heap
+ slots [ruby-core:57633] [Bug #8983]
+
+Fri Oct 4 09:32:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/csv.rb (CSV.foreach): support enumerator. based on a patch by
+ Hanmac (Hans Mackowiak) at [ruby-core:57643]. [ruby-core:57283]
+ [Feature #8929]
+
+Thu Oct 3 18:20:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/win32.c (console_emulator_p, constat_handle): disable built-in
+ console colorizing when console-emulator-like DLL is injected.
+ [Feature #8201]
+
+Thu Oct 3 18:01:44 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: define gc_profile_record::allocated_size if
+ CALC_EXACT_MALLOC_SIZE is true.
+
+Thu Oct 3 13:42:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * common.mk (yes-test-sample): use RUNRUBY instead of MINIRUBY to set
+ runtime library path and run the built ruby. [Bug #8971]
+
+Thu Oct 3 00:17:15 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-additional.el: Properly quote the body. An unquoted
+ body given to eval-after-load is evaluated immediately!
+
+Wed Oct 2 21:38:30 2013 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * ext/socket/ifaddr.c (rsock_getifaddrs): fix possible memory leak.
+ When a system had no interface, this function used xmalloc for root
+ but did not return any reference to it. This patch fixes it by
+ immediately returning an empty array if no interface is found.
+ Coverity Scan found this bug.
+
+Wed Oct 2 21:37:04 2013 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * random.c (make_seed_value): a local array declaration was accessed
+ out of scope. Coverity Scan found this bug.
+
+Wed Oct 2 18:52:40 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: relax GC condition due to malloc_limit.
+
+ * gc.c (GC_MALLOC_LIMIT_MAX): change default value
+ (256MB -> 512MB) and permit zero to ignore max value.
+
+ * gc.c (vm_malloc_increase, vm_xrealloc): do not cause GC on realloc.
-Mon Nov 3 02:35:32 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (gc_before_sweep): change debug messages.
- * sample/simple-bench.rb: added to measure performance of simple
- lines.
+Wed Oct 2 16:26:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Nov 3 02:33:43 2014 Koichi Sasada <ko1@atdot.net>
+ * io.c (rb_io_close_read): duplex IO should wait its child process
+ even after close_read.
- * gc.c (obj_info): show T_STRING more details.
+Wed Oct 2 15:39:13 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Nov 2 01:30:32 2014 Tanaka Akira <akr@fsij.org>
+ * vm_core.h: use __has_attribute() instead of __clang__major__ because
+ clang says "Note that marketing version numbers should not be used
+ to check for language features, as different vendors use different
+ numbering schemes. Instead, use the Feature Checking Macros."
+ http://clang.llvm.org/docs/LanguageExtensions.html
- * test/openssl/test_ssl.rb: Don't ignore errors on listener threads,
- as much as possible.
+Wed Oct 2 14:19:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/openssl/test_ssl_session.rb: Ditto.
+ * io.c (rb_io_close_write): detach tied IO for writing before closing
+ to get rid of race condition. [ruby-list:49598]
- * test/openssl/test_partial_record_read.rb: Ditto.
+ * io.c (rb_io_close_read): keep fptr in write_io to be discarded, to
+ fix freed pointer access when it is in use by other threads, and get
+ rid of potential memory/fd leak.
-Sat Nov 1 23:11:05 2014 Tanaka Akira <akr@fsij.org>
+Tue Oct 1 23:44:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * test/openssl/utils.rb (start_server): Don't close sockets before
- threads finished.
+ * vm_core.h: use __attribute__((unused)) in UNINITIALIZED_VAR on clang
+ 4.0+ instead of just on 4.2. Clang has supported the unused attribute
+ since before version 4, so this should be safe.
-Sat Nov 1 22:06:24 2014 Tanaka Akira <akr@fsij.org>
+Tue Oct 1 22:03:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/openssl/test_ssl_session.rb (test_ctx_client_session_cb): Don't
- ignore errors of SSL accept.
- (test_ctx_server_session_cb): Ditto.
+ * lib/tempfile.rb (Tempfile#unlink): finalizer is no longer needed
+ after unlinking. patched by by normalperson (Eric Wong) at
+ [ruby-core:56521] [Bug #8768]
- * test/openssl/utils.rb (server_loop): Add ignore_ssl_accept_error
+Tue Oct 1 20:54:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * file.c (stat_new_0): constify.
+
+ * file.c (rb_stat_new): constify and export. based on a patch by
+ Hanmac (Hans Mackowiak) at [ruby-core:53225]. [Feature #8050]
+
+Tue Oct 1 16:03:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * include/ruby/ruby.h (ruby_safe_level_4_warning): needed by extension
+ libraries which check safe level 4. [ruby-dev:47517] [Bug #8652]
+
+Mon Sep 30 23:14:36 2013 Zachary Scott <e@zzak.io>
+
+ * ext/objspace/objspace.c: [DOC] Cleaned up many rdoc formatting
+ issues and several duplicate grammar bugs.
+
+Mon Sep 30 23:01:01 2013 Zachary Scott <e@zzak.io>
+
+ * ext/objspace/object_tracing.c: [DOC] Adjust rdoc formatting and fix
+ small grammar typo
+
+Mon Sep 30 17:28:39 2013 Koichi Sasada <ko1@atdot.net>
+
+ * ext/objspace/object_tracing.c: [DOC] add some notes for
+ ObjectSpace::trace_object_allocations.
+
+Mon Sep 30 16:46:58 2013 Koichi Sasada <ko1@atdot.net>
+
+ * ext/objspace/object_tracing.c: add new 3 methods to control tracing.
+ * ObjectSpace::trace_object_allocations_start
+ * ObjectSpace::trace_object_allocations_stop
+ * ObjectSpace::trace_object_allocations_clear
+ And some refactoring.
+
+ * test/objspace/test_objspace.rb: add a test for new methods.
+
+ * NEWS: add a description for new methods.
+
+Mon Sep 30 11:18:04 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (rb_gc_disable): do rest_sweep() before disable GC.
+ This fix may solve a failure of
+ TestTracepointObj#test_tracks_objspace_events
+ [test/-ext-/tracepoint/test_tracepoint.rb:43].
+
+Mon Sep 30 10:40:20 2013 Shugo Maeda <shugo@ruby-lang.org>
+
+ * vm_method.c (rb_undef): raise a NameError if the original method
+ of a refined method is not defined.
+
+ * vm_insnhelper.c (rb_method_entry_eq): added NULL check to avoid SEGV.
+
+ * test/ruby/test_refinement.rb: related test.
+
+Sun Sep 29 23:45:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (rb_id_attrset, intern_str): allow junk attrset ID for
+ Struct.
+
+ * parse.y (rb_id_attrset): fix inconsistency with literals, allow
+ ID_ATTRSET and return it itself, but ID_JUNK cannot make ID_ATTRSET.
+ and raise a NameError instead of rb_bug() for invalid argument.
+
+Sun Sep 29 18:45:05 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * vm_insnhelper.c (vm_callee_setup_arg_complex, vm_yield_setup_block_args):
+ clear keyword arguments to prevent GC bug which occurs
+ while marking VM stack.
+ [ruby-dev:47729] [Bug #8964]
+
+ * test/ruby/test_keyword.rb: tests for the above.
+
+Sat Sep 28 23:25:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * math.c (math_log, math_log2, math_log10): fix for Bignum argument.
+ numbits should be add only when right shifted.
+
+Sat Sep 28 14:30:29 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * test/dl/test_base.rb: {libc, libm} detection now handle GNU/Hurd
+ correctly. Patch by Gabriele Giacone (1o5g4r8o@gmail.com).
+ [Bug #8937][ruby-core:57311]
+ * test/fiddle/helper.rb: ditto.
+
+Sat Sep 28 00:19:41 2013 Shugo Maeda <shugo@ruby-lang.org>
+
+ * ext/curses/extconf.rb: check the size of chtype.
+
+ * ext/curses/curses.c (NUM2CH, CH2NUM): use proper macros for
+ the size of chtype.
+
+ [ruby-core:56090] [Bug #8659]
+
+Fri Sep 27 18:33:23 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: add two GC tuning environment variables.
+ RUBY_GC_MALLOC_LIMIT_MAX and RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR.
+ See r43067 for details.
+
+ * gc.c (rb_gc_set_params): refactoring. And change verbose notation.
+ Mostly duplicated functions get_envparam_int/double is not cool.
+ Please rewrite it.
+
+ * test/ruby/test_gc.rb: fix a test for this change.
+
+Fri Sep 27 17:44:41 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (GC_MALLOC_LIMIT): 8,000,000 -> 8 * 1,024 * 1,024.
+
+Fri Sep 27 17:19:39 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (gc_before_sweep): cast to size_t to suppress warnings.
+
+Fri Sep 27 17:07:55 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: add some fine-grained profiling codes to tuning marking phase.
+ If you enable RGENGC_PRINT_TICK to 1, then profiling results by RDTSC
+ (on x86/amd64 environment) are printed at last.
+ Thanks Yoshii-san.
+
+Fri Sep 27 16:32:27 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: simplify threshold of GC caused by malloc_increase.
+ Now, malloc_limit is increased/decreased by mysterious logic.
+ This fix simplify malloc_limit increase/decrease logic such as:
+ if (malloc_increase > malloc_limit) /* so many malloc */
+ malloc_limit += malloc_limit * (GC_MALLOC_LIMIT_FACTOR-1);
+ else
+ malloc_limit -= malloc_limit * (GC_MALLOC_LIMIT_FACTOR-1)/4;
+ Default value of GC_MALLOC_LIMIT_FACTOR is 1.8.
+ malloc_limit is bounded by GC_MALLOC_LIMIT_MAX (256MB by default).
+ This logic runs at gc_before_sweep(). So there are no effect from
+ caused by lazy sweep. And we can remove malloc_increase2.
+
+ * gc.c (HEAP_MIN_SLOTS, FREE_MIN, HEAP_GROWTH_FACTOR): rename to
+ GC_HEAP_MIN_SLOTS, GC_FREE_MIN, GC_HEAP_GROWTH_FACTOR respectively.
+ Check them by `#ifndef' so you can specify these values outside gc.c.
+
+ * gc.c (ruby_gc_params_t): add initial_malloc_limit_factor and
+ initial_malloc_limit_max.
+
+ * gc.c (vm_malloc_prepare, vm_xrealloc): use vm_malloc_increase to
+ add and check malloc_increase.
+
+Fri Sep 27 01:05:00 2013 Zachary Scott <e@zzak.io>
+
+ * re.c: [DOC] arguments of Regexp::union receive #to_regexp [Bug #8205]
+
+Fri Sep 27 00:39:27 2013 Zachary Scott <e@zzak.io>
+
+ * struct.c: [DOC] grammar of ArgumentError in Struct.new [Bug #8936]
+ Patch by Prathamesh Sonpatki
+
+Thu Sep 26 22:11:56 2013 Zachary Scott <e@zzak.io>
+
+ * ext/bigdecimal/bigdecimal.c: [DOC] several fixes by @chastell
+ This includes fixing the capitalization of Infinity, return value of
+ example "BigDecimal.new('NaN') == 0.0", and code style in example.
+ [Fixes GH-398] https://github.com/ruby/ruby/pull/398
+
+Thu Sep 26 22:08:11 2013 Zachary Scott <e@zzak.io>
+
+ * lib/observer.rb: [DOC] syntax improvement in example by @chastell
+ [Fixes GH-400] https://github.com/ruby/ruby/pull/400
+
+Thu Sep 26 22:03:15 2013 Zachary Scott <e@zzak.io>
+
+ * ext/digest/digest.c: [DOC] typo in overview by @chastell
+ [Fixes GH-399] https://github.com/ruby/ruby/pull/399
+
+Thu Sep 26 22:00:42 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/ossl.c: [DOC] typo in example by @zoranzaric
+ [Fixes GH-401] https://github.com/ruby/ruby/pull/401
+
+Thu Sep 26 21:07:49 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-electric.el (ruby-electric-delete-backward-char): Add
+ support for smartparens-mode.
+
+ * misc/ruby-electric.el (ruby-electric-cua-replace-region-maybe)
+ (ruby-electric-cua-delete-region-maybe): New functions that
+ combine `ruby-electric-cua-*-region` with
+ `ruby-electric-cua-*-region-p`, using a slightly better way to
+ detect if it is in cua-mode.
+
+Thu Sep 26 16:51:00 2013 Shota Fukumori <her@sorah.jp>
+
+ * insns.def (opt_regexpmatch2): Check String#=~ hasn't overridden
+ before calling rb_reg_match().
+
+ * test/ruby/test_string.rb: Test for above.
+
+ * vm.c (vm_init_redefined_flag): Add BOP flag for String#=~
+
+ [ruby-core:57385] [Bug #8953]
+
+Thu Sep 26 16:43:42 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-electric.el: Avoid use of the interactive function
+ `self-insert-command` which fires `post-self-insert-hook` and
+ `post-command-hook`, to make the ruby-electric commands work
+ nicely with those minor modes that make use of them to do
+ similar input assistance, such as electric-pair-mode,
+ autopair-mode and smartparens-mode.
+
+Thu Sep 26 16:24:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * insns.def (opt_regexpmatch1): check Regexp#=~ is not defined before
+ calling rb_reg_match()
+
+ * test/ruby/test_regexp.rb: add test
+
+ * vm.c (ruby_vm_redefined_flag): change type to short[]
+
+ * vm.c (vm_redefinition_check_flag): return REGEXP_REDEFINED_OP_FLAG if
+ klass == rb_cRegexp
+
+ * vm.c (vm_init_redefined_flag): setup BOP flag for Regexp#=~
+
+ * vm_insnhelper.h: add REGEXP_REDEFINED_OP_FLAG
+
+ [ruby-core:57385] [Bug #8953]
+
+Thu Sep 26 14:46:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * gc.c (mark_locations_array): disable AddressSanitizer. based on a
+ patch by halfie (Ruby Guy) at [ruby-core:57372].
+ [ruby-core:56155] [Bug #8680]
+
+Wed Sep 25 17:41:29 2013 Koichi Sasada <ko1@atdot.net>
+
+ * README.EXT, README.EXT.ja: remove description of RARRAY_PTR()
+ and add a caution of accessing internal data structure directly.
+ Also add a description of rb_ary_store().
+ [Bug #8399]
+
+Wed Sep 25 17:12:08 2013 Koichi Sasada <ko1@atdot.net>
+
+ * include/ruby/ruby.h: rename RARRAY_RAWPTR() to RARRAY_CONST_PTR().
+ RARRAY_RAWPTR(ary) returns (const VALUE *) type pointer and
+ usecase of this macro is not acquire raw pointer, but acquire
+ read-only pointer. So we rename to better name.
+ RSTRUCT_RAWPTR() is also renamed to RSTRUCT_CONST_PTR()
+ (I expect that nobody use it).
+
+ * array.c, compile.c, cont.c, enumerator.c, gc.c, proc.c, random.c,
+ string.c, struct.c, thread.c, vm_eval.c, vm_insnhelper.c:
+ catch up this change.
+
+Wed Sep 25 16:58:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * internal.h (rb_float_value, rb_float_new): move inline functions
+ from ruby/ruby.h.
+
+ * numeric.c (rb_float_value, rb_float_new): define external functions
+ for extension libraries.
+
+Wed Sep 25 15:37:02 2013 Koichi Sasada <ko1@atdot.net>
+
+ * test/rdoc/test_rdoc_generator_darkfish.rb: add a guard for windows.
+
+Wed Sep 25 09:53:11 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems: Fix CVE-2013-4363. Miscellaneous minor improvements.
+
+ * test/rubygems: Tests for the above.
+
+Tue Sep 24 17:38:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * string.c (rb_str_inspect): get rid of out-of-bound access.
+
+ * string.c (rb_str_inspect): when a UTF-16/32 string doesn't have a
+ BOM, inspect as a dummy encoding string.
+
+Tue Sep 24 17:15:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enc/encdb.c (ENC_DUMMY_UNICODE): make BOM-encodings dummy.
+
+ * encoding.c (enc_autoload): keep dummy encodings dummy.
+
+Tue Sep 24 16:41:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#write): data size
+ is in bytes, not chars. terminators should be placed automatically.
+
+Tue Sep 24 16:39:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#each_value): encode
+ name.
+
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#each_key): ditto.
+
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#export_string):
+ encode to locale encoding if default internal is not set.
+
+Tue Sep 24 16:35:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/win32/lib/win32/registry.rb (Win32::Registry::API#EnumKey):
+ size of the name is in WCHARs, not in bytes.
+
+Tue Sep 24 14:07:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * gc.c (free_method_cache_entry_i): unused function
+
+ * gc.c (rb_free_mc_table): ditto
+
+ * internal.h (method_cache_entry_t): unused struct
+
+ * vm_method.c (verify_method_cache): remove unused variable
+
+ * vm_method.c (rb_method_entry): ditto
+
+Tue Sep 24 14:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * class.c (class_alloc): remove mc_tbl
+
+ * gc.c (obj_free): ditto
+
+ * internal.h (struct rb_classext_struct): ditto
+
+ * method.h (rb_method_entry): remove ent param
+
+ * vm_method.c: restore the global method cache. Per class cache tables
+ turned out to be far too slow.
+
+ [ruby-core:57289] [Bug #8930]
+
+Tue Sep 24 12:51:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/win32/lib/win32/registry.rb (Win32::Registry::API): need
+ Constants.
+
+ * ext/win32/lib/win32/registry.rb (Win32::Registry::API#EnumValue):
+ size of the name is in WCHARs, not in bytes.
+
+Mon Sep 23 22:16:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enc/encdb.c, enc/utf_16_32.h (ENC_DUMMY_UNICODE): Unicode with BOM
+ must be based on big endian variants, so that actual encodings would
+ work. [ruby-core:57318] [Bug #8940]
+
+Mon Sep 23 12:11:26 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * hash.c (env_each_pair): do not call rb_assoc_new() if
+ it isn't needed.
+
+Mon Sep 23 10:42:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * test/ruby/test_module.rb (TestModule#test_include_toplevel): test
+ for top level main.include. based on a part of the patch by
+ kyrylo at [GH-395].
+
+Mon Sep 23 05:07:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * include/ruby/intern.h (rb_ary_cat): move from internal.h, since it
+ is described in README.EXT.
+
+Sun Sep 22 20:55:20 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * vm_insnhelper.c (vm_make_proc_with_iseq): fix bug message.
+ This is follow up to changes in r42637.
+
+Sun Sep 22 20:35:38 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * ext/-test-/tracepoint/tracepoint.c (Init_tracepoint): prevent from GC.
+
+Sun Sep 22 19:00:28 2013 Benoit Daloze <eregontp@gmail.com>
+
+ * benchmark/bm_app_answer.rb: revert r42990, benchmark scripts should
+ be self-contained and avoid dependencies, especially such small one.
+ See https://github.com/ruby/ruby/pull/393#issuecomment-24861301.
+
+Sat Sep 21 20:11:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * process.c (rb_fork_internal): remove cloexec setting on pipes
+ created by rb_cloexec_pipe. patch by normalperson (Eric Wong) at
+ [ruby-core:56523]. [Bug #8769]
+
+Sat Sep 21 01:04:25 2013 Zachary Scott <e@zzak.io>
+
+ * lib/benchmark.rb: [DOC] grammar of Benchmark#bm [Bug #8888]
+ Patch by Prathamesh Sonpatki
+
+Sat Sep 21 00:50:02 2013 Zachary Scott <e@zzak.io>
+
+ * enumerator.c: [DOC] Enumerator#each arguments documentation [GH-388]
+ Patch by @kachick https://github.com/ruby/ruby/pull/388
+
+Sat Sep 21 00:49:16 2013 Zachary Scott <e@zzak.io>
+
+ * enum.c: [DOC] Enumerable#to_a accepts arguments [GH-388]
+ Patch by @kachick https://github.com/ruby/ruby/pull/388
+
+Sat Sep 21 00:47:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * string.c (rb_str_conv_enc_opts): make sure to scan coderange to get
+ rid of unnecessary conversion.
+
+Sat Sep 21 00:21:08 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/lib/openssl/ssl.rb: [DOC] Document OpenSSL::SSLServer
+ Based on a patch by Rafal Lisowski [Bug #8758]
+
+Fri Sep 20 23:54:03 2013 Zachary Scott <e@zzak.io>
+
+ * lib/gserver.rb: [DOC] correct gserver.rb license [Bug #8913]
+
+Fri Sep 20 23:48:34 2013 Zachary Scott <e@zzak.io>
+
+ * ext/psych/yaml/yaml.h: [DOC] merge upstream typo fix by @GreenGeorge
+ https://github.com/tenderlove/psych/pull/161
+
+Fri Sep 20 23:37:40 2013 Zachary Scott <e@zzak.io>
+
+ * lib/securerandom.rb: [DOC] SecureRandom.hex length argument
+ [Fixes GH-394] Patch by @avdi https://github.com/ruby/ruby/pull/394
+
+Fri Sep 20 23:34:48 2013 Zachary Scott <e@zzak.io>
+
+ * benchmark/bm_app_answer.rb: removed duplicate code [Fixes GH-393]
+ Patch by @gouravtiwari https://github.com/ruby/ruby/pull/393
+
+Fri Sep 20 23:24:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * common.mk (btest, btest-ruby, test-knownbug): add $(RUN_OPTS) to
+ ruby to be run, so that tests are runnable before making exts.
+
+ * common.mk (test-sample): ditto, and use $(MINIRUBY) as rubytest.rb
+ does not need extension libraries.
+
+ * tool/rubytest.rb: pass $(RUN_OPTS) to testing ruby using --run-opt.
+
+Fri Sep 20 15:01:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (intern_str): sigil only names are junk, at least one
+ identifier character is needed. [ruby-dev:47723] [Bug #8928]
+
+ * parse.y (rb_enc_symname_type): fix out of bound access.
+
+Fri Sep 20 14:14:32 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/-test-/printf/printf.c (printf_test_call): Fix an end of buffer
argument.
- (start_server): Refine threads waits.
- * test/ruby/envutil.rb (assert_join_threads): Show a thread before
- backtrace.
+Thu Sep 19 16:59:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Nov 1 20:40:18 2014 Tanaka Akira <akr@fsij.org>
+ * parse.y (lambda): adjust position to the beginning of the block.
- * test/openssl/utils.rb (start_server, server_loop): Use a
- pipe to stop server instead of shutdown/close a listening socket.
+Thu Sep 19 16:25:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Nov 1 19:24:59 2014 Tanaka Akira <akr@fsij.org>
+ * vsnprintf.c (BSD_vfprintf): initialize cp so that size is 0 in the
+ commented case. fix an accidental bug at r16716.
- * test/ruby/envutil.rb (assert_join_threads): New assertion to
- join multiple threads without exceptions.
+Thu Sep 19 14:33:14 2013 Koichi Sasada <ko1@atdot.net>
-Sat Nov 1 17:09:32 2014 Tanaka Akira <akr@fsij.org>
+ * NEWS: add a news for r42974.
- * bignum.c (bary_mul_balance_with_mulfunc): Fix free work area
- location.
- [ruby-dev:48723] [Bug #10464]
- [ruby-core:66044] [Bug #10465]
- Reported by Kohji Nishihama.
+Thu Sep 19 14:12:02 2013 Koichi Sasada <ko1@atdot.net>
-Sat Nov 1 15:45:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/ruby.h: make Symbol objects frozen.
+ [Feature #8906]
+ I want to freeze this good day, too.
- * parse.y (parse_atmark): mere atmark and two atmarks without
- succeeding identifiers are invalid as instance/class variable
- names.
+ * test/ruby/test_eval.rb: catch up this change.
-Sat Nov 1 06:31:41 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * test/ruby/test_symbol.rb: add a test to check frozen symbols.
- * ext/win32ole/win32ole_variant.c: use typed data.
+Thu Sep 19 09:11:33 2013 Eric Hodel <drbrain@segment7.net>
-Fri Oct 31 13:55:28 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * NEWS: Update for RDoc 4.1.0.preview.1 and RubyGems 2.2.0.preview.1
- * ext/dl/*: remove DL as it is replaced by Fiddle.
- [Feature #5458] Thanks to Jonan Scheffler <jonanscheffler@gmail.com>
- for this patch
+Thu Sep 19 08:59:41 2013 Eric Hodel <drbrain@segment7.net>
- * test/dl/*: ditto.
+ * lib/rdoc/markdown/literals_1_9.rb: Fix trailing whitespace.
-Fri Oct 31 15:26:02 2014 Charles Oliver Nutter <headius@headius.com>
+ Previously kpeg (which generates this file) added trailing
+ whitespace, but this bug is now fixed.
- * test/openssl/test_ssl.rb: Add certificate verification chain
- test from JRuby community.
+ * lib/rdoc/markdown.rb: ditto.
-Fri Oct 31 18:58:02 2014 Charles Oliver Nutter <headius@headius.com>
+Thu Sep 19 08:33:14 2013 Eric Hodel <drbrain@segment7.net>
- * test/psych/test_emitter.rb: Fix line_width test...initial value
- is impl-specific and attr assignment always returns LHS.
+ * lib/rdoc: Update to RDoc 4.1.0.preview.1
-Fri Oct 31 22:19:30 2014 Akinori MUSHA <knu@iDaemons.org>
+ RDoc 4.1.0 contains a number of enhancements including a new default
+ style and accessibility support. You can see the changelog here:
- * ext/digest/lib/digest.rb (Digest()): This function should now be
- thread-safe. If you have a problem with regard to on-demand
- loading under a multi-threaded environment, preload "digest/*"
- modules on boot or use this method instead of directly
- referencing Digest::*. [Bug #9494]
- cf. https://github.com/aws/aws-sdk-ruby/issues/525
+ https://github.com/rdoc/rdoc/blob/v4.1.0.preview.1/History.rdoc
-Fri Oct 31 21:33:17 2014 Akinori MUSHA <knu@iDaemons.org>
+ * test/rdoc: ditto.
- * test/digest/test_digest.rb: Drop #!. This no longer runs
- stand-alone because it depends on ruby/envutil.
+Thu Sep 19 07:16:26 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Fri Oct 31 17:22:19 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/psych/lib/psych.rb: updating Psych version
- * win32/setup.mak: $(APPEND) with some arguments insert a space before
- the arguments, so it causes error if the arguments are expected to be
- a macro definition. this fix resolve the build error introduced at
- r48210.
+ * ext/psych/psych.gemspec: ditto
-Fri Oct 31 16:47:35 2014 Akinori MUSHA <knu@iDaemons.org>
+Thu Sep 19 06:39:40 2013 Eric Hodel <drbrain@segment7.net>
- * ext/syslog/lib/syslog/logger.rb (Syslog::Logger::VERSION): Bump
- the VERSION to 2.1.0. [ruby-core:64483] [Bug #10159]
+ * lib/rubygems/dependency_resolver.rb: Switch the iterative resolver
+ algorithm from recursive to iterative to avoid possible
+ SystemStackError.
-Fri Oct 31 16:33:46 2014 Akinori MUSHA <knu@iDaemons.org>
+Thu Sep 19 06:29:30 2013 Eric Hodel <drbrain@segment7.net>
- * lib/net/imap.rb (Net::IMAP#fetch): [DOC] Document that
- Net::IMAP#fetch will return nil instead of an empty array.
+ * lib/rubygems: Update to RubyGems 2.2.0.preview.1
-Fri Oct 31 12:54:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ This brings several new features to RubyGems summarized here:
- * common.mk (.unicode-tables.time): needs Unicode files always,
- and should update after downloading these files.
- [ruby-core:66026] [Bug #10461]
+ https://github.com/rubygems/rubygems/blob/v2.2.0.preview.1/History.txt
-Fri Oct 31 10:16:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * test/rubygems: ditto.
- * .travis.yml: reverted r48199, it's unrelated configuration.
+Wed Sep 18 23:14:58 2013 Masaki Matsushita <glass.saga@gmail.com>
-Fri Oct 31 09:58:14 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * string.c (rb_str_enumerate_lines): make String#each_line and
+ #lines not raise invalid byte sequence error when it is called
+ with an argument. The patch also causes performance improvement.
+ [ruby-dev:47549] [Bug #8698]
- * test/test_unicode_normalize.rb: added unicode version number to
- test data location.
+ * test/ruby/test_m17n_comb.rb (test_str_each_line): remove
+ assertions which check that String#each_line and #lines will
+ raise an error if the receiver includes invalid byte sequence.
-Fri Oct 31 09:56:41 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Sep 18 16:32:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * .gitignore: ignored unicode data with version directories.
+ * proc.c (mnew_from_me): allocate structs after allocated wrapper
+ object successfully, to get rid of potential memory leak.
-Fri Oct 31 09:35:30 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Sep 17 15:54:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * .travis.yml: tweak build scripts for unicode_normalize.rb.
+ * lib/shell/command-processor.rb (Shell::CommandProcessor#find_system_command):
+ return executable file only, should ignore directories and
+ unexecutable files. [ruby-core:57235] [Bug #8918]
-Thu Oct 30 18:47:04 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_throw):
+ assertion for throw. MiniTest::Assertions#assert_throws discards
+ the caught value.
- * common.mk: fix for the case ALWAYS_UPDATE_UNICODE=no
+ * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_nothing_thrown):
+ returns the result of the given block.
-Thu Oct 30 13:23:23 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Tue Sep 17 12:55:58 2013 Eric Hodel <drbrain@segment7.net>
- * tool/downloader.rb: changed Unicode data download location
- from latest Unicode version to Unicode 7.0.0.
+ * doc/regexp.rdoc: [DOC] Replace paragraphs in verbatim sections with
+ plain paragraphs to improve readability as ri and HTML.
-Thu Oct 30 11:16:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Sep 16 07:32:35 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * vm_insnhelper.c (vm_callee_setup_arg{_complex,}): try conversion
- by to_ary for a lambda, as well as a proc.
- [ruby-core:65887] [Bug #9605]
+ * complex.c: removed meaningless lines.
+ * rational.c: ditto.
-Wed Oct 29 21:13:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Sep 16 00:44:23 2013 Masaki Matsushita <glass.saga@gmail.com>
- * parse.y (gettable_gen): warn circular argument reference, for
- transition from 2.1 and earlier. [ruby-core:65990] [Bug #10314]
+ * ext/socket/mkconstants.rb: define MSG_FASTOPEN.
+ [ruby-core:57138] [Feature #8897]
-Wed Oct 29 20:41:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Sep 15 13:31:23 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * parse.y (parser_params): remove unused member `cur_mid`.
- this has been taken over by `in_def` since 1.6.
+ * rational.c (nurat_div): reverted r28844, r28886 and r28887.
+ REASON: Nobuyoshi Nakada <nobu@ruby-lang.org>'s commits are buggy.
+ So Rational#/ may produce exact number with inexact number.
+ Moreover, without reducing.
+ REALLY NONSENSE COMMITS.
+ A bug report by me [ruby-dev:44710] is also caused by this behavior.
+ Kenta Murata <mrkn@mrkn.jp> patched it up.
+ But he did not fix the origin.
+ Today, the bug is still alive in ruby 1.9.3 and 2.0.0.
-Wed Oct 29 14:44:27 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Sep 14 06:08:10 2013 Eric Hodel <drbrain@segment7.net>
- * load.c (rb_f_load): path name needs to be transcoded to OS path
- encoding. [ruby-list:49994]
+ * dir.c (dir_s_glob): [DOC] Improve wording and layout.
-Wed Oct 29 11:48:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * dir.c (file_s_fnmatch): ditto.
- * configure.in (__builtin_setjmp): disable with gcc/clang earlier
- than 4.3 on Mac OS X. [ruby-core:65174] [Bug #10272]
+ * dir.c (Init_Dir): [DOC] Document File::Constants::FNM_XXX
+ constants. (These won't show up in RDoc until a new RDoc is
+ imported.)
-Wed Oct 29 11:43:43 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+Thu Sep 12 14:58:58 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/matrix.rb: Generalize Vector#cross_product to arbitrary
- dimensions
- based on a patch by gogo tanaka [#10074]
+ * lib/uri/generic.rb (URI::Generic.find_proxy): return nil if
+ http_proxy environment variable is empty string.
+ [ruby-core:57140] [Bug #8898]
-Wed Oct 29 11:43:11 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+Fri Sep 13 10:40:28 2013 Eric Hodel <drbrain@segment7.net>
- * lib/matrix.rb: Add Matrix#adjucate
- patch by gogo tanaka [#10056]
+ * lib/rubygems: Update to RubyGems 2.1.3
-Wed Oct 29 11:42:33 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ Fixed installing platform gems
- * lib/matrix.rb: Add aliases for Vector#cross & dot
- patch by gogo tanaka [#10352]
+ Restored concurrent requires
-Wed Oct 29 10:00:18 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ Fixed installing gems with extensions with --install-dir
- * gems/bundled_gems: Update latest version of bundled gems.
+ Fixed `gem fetch -v` to install the latest version
-Tue Oct 28 16:52:07 2014 Eric Wong <e@80x24.org>
+ Fixed installing gems with "./" in their files entries
- * signal.c (install_sighandler): remove rb_disable_interrupt and
- rb_enable_interrupt calls
- (init_sigchld): ditto
- (Init_signal): disable and enable interrupt once around all
- install_sighandler and init_sigchld to reduce syscalls at start
- [Feature #9345] [ruby-core:59480]
+ * test/rubygems/test_gem_package.rb: Tests for the above.
-Tue Oct 28 16:22:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * NEWS: Updated for RubyGems 2.1.3
- * ruby.c (process_options, load_file_internal2): should not
- require other files when dump option is given.
- [ruby-dev:48712] [Bug #10435]
+Thu Sep 12 22:40:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Oct 28 14:51:38 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * configure.in (RUBY_CHECK_SIGNEDNESS): macro to check signedness of a
+ type.
- * configure.in: remove apple-gcc4.2 from CC candidates.
+ * configure.in (size_t): must be unsigned.
+ [ruby-core:57149] [Feature #8890]
-Mon Oct 27 20:13:37 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Sep 12 22:37:08 2013 Anton Ovchinnikov <revolver112@gmail.com>
- * lib/rexml/entity.rb: keep the entity size within the limitation.
- reported by Willis Vandevanter <will@silentrobots.com> and
- patched by nahi.
+ * ext/bigdecimal/bigdecimal.c, ext/digest/md5/md5.c,
+ ext/json/fbuffer/fbuffer.h, ext/json/generator/generator.c:
+ Eliminate less-than-zero checks for unsigned variables.
+ According to section 4.1.5 of C89 standard, size_t is an unsigned
+ type. These checks were found with 'cppcheck' static analysis tool.
+ [ruby-core:57117] [Feature #8890]
-Mon Oct 27 17:17:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Sep 12 21:35:46 2013 Naohisa Goto <ngotogenome@gmail.com>
- * proc.c (method_proc): the receiver of binding from method should
- be same as the receiver of the method.
- [ruby-core:65917] [Bug #10432]
+ * Makefile.in (libruby-static.a): change LDFLAGS order. LDFLAGS may
+ include library path that should be specified before LIBS.
+ [ruby-dev:47707] [Bug #8901]
-Mon Oct 27 16:26:37 2014 Koichi Sasada <ko1@atdot.net>
+Thu Sep 12 20:07:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_super.rb: add a test to check block passing.
+ * vsnprintf.c (MAXEXP, MAXFRACT): calculate depending on constants in
+ float.h.
-Mon Oct 27 15:59:26 2014 Koichi Sasada <ko1@atdot.net>
+ * vsnprintf.c (BSD_vfprintf): limit length for cvt() to get rid of
+ buffer overflow. [ruby-core:57023] [Bug #8864]
- * gc.c: is_incremental_marking(), will_be_incremental_marking():
- use `&&' with GC_ENABLE_INCREMENTAL_MARK instead of using
- #if/#else/#endif.
+ * vsnprintf.c (exponent): make expbuf size more precise.
-Mon Oct 27 13:40:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Sep 11 17:30:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (gc_sweep_rest): sweep rest pages regardless of whether
- lazy sweep is enabled or not. based on the patch by Masahiro
- Ide at [ruby-dev:48706]. [Bug #10431]
+ * configure.in (RUNRUBY): append -- only after runruby.rb, not
+ cross-compiling baseruby, so that $(RUN_OPT) can be command line
+ options. [ruby-dev:47703] [Bug #8893]
-Mon Oct 27 11:18:32 2014 Eric Wong <e@80x24.org>
+Wed Sep 11 07:55:17 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
- reduce garbage during forks
+ * thread.c (rb_mutex_unlock): Mutex#unlock no longer raise
+ an exception even if uses on trap. [Bug #8891]
-Sun Oct 25 12:26:26 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Tue Sep 10 14:37:01 2013 Shota Fukumori <sorah@tubusu.net>
- * template/insns.inc.tmpl, insns_info.inc.tmpl, known_errors.inc.tmpl,
- minsns.inc.tmpl: fixed path of generating script.
+ * vm_backtrace.c (vm_backtrace_to_ary): Ignore the second argument if
+ it is nil. [Bug #8884] [ruby-core:57094]
-Sun Oct 26 12:24:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_backtrace.rb (test_caller_with_nil_length):
+ Test for above.
- * ext/ripper/lib/ripper/sexp.rb (Ripper.sexp, Ripper.sexp_raw):
- return nil on error. [ruby-dev:48678] [Bug #10405]
+Tue Sep 10 12:39:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 25 11:24:24 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * class.c (method_entry_i): should exclude refined methods from
+ instance method list. [ruby-core:57080] [Bug #8881]
- * string.c: improved comment.
+Tue Sep 10 12:05:04 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Sun Oct 26 07:40:11 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * io.c (rb_f_printf): [DOC] add missing parenthesis in rdoc.
- * ext/win32ole/win32ole.c (ole_val2variant, ole_invoke): refactoring.
- use ole_variant2variant to convert WIN32OLE_VARIANT object to
- VARIANT object.
+Tue Sep 10 10:08:00 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * ext/win32ole/win32ole_variant.c: refactoring. add
- ole_variant2variant.
- * ext/win32ole/win32ole_variant.h: ditto.
+ * NEWS: Update RubyGems note.
-Sat Oct 25 22:28:17 2014 Tanaka Akira <akr@fsij.org>
+Tue Sep 10 09:51:22 2013 Eric Hodel <drbrain@segment7.net>
- * io.c (io_binwrite_string): Test writev() failure.
+ * lib/rubygems: Update to RubyGems 2.1.0. Fixes CVE-2013-4287.
-Sat Oct 25 20:19:19 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ See http://rubygems.rubyforge.org/rubygems-update/CVE-2013-4287_txt.html
+ for CVE information.
- * test/test-unicode_normalize.rb: added test_us_ascii.
+ See http://rubygems.rubyforge.org/rubygems-update/History_txt.html#label-2.1.0+%2F+2013-09-09
+ for release notes.
-Sat Oct 25 20:09:09 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * test/rubygems: Tests for the above.
- * lib/unicode_normalize/normalize.rb: added US_ASCII
- as trivially supported encoding (is always normalized,
- and may appear mixed in with UTF-8 or other Unicode
- encodings).
+Mon Sep 9 21:31:45 2013 Tanaka Akira <akr@fsij.org>
-Sat Oct 25 20:01:01 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * process.c: Remove spaces between SI prefix and unit to follow
+ SI brochure.
+ http://www.bipm.org/en/si/si_brochure/
+ https://www.nmij.jp/library/units/si/
- * test/test-unicode_normalize.rb: added
- test_raise_exception_for_non_unicode_encoding.
+ * time.c: Ditto.
-Sat Oct 25 19:30:30 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * ext/socket/ancdata.c: Ditto.
- * test/test-unicode_normalize.rb: removed unused function.
+Mon Sep 9 16:55:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 25 18:41:41 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * vm_method.c (rb_add_refined_method_entry): clear cache in the
+ refined class since refining a method entry is modifying the class.
+ [ruby-core:57079] [Bug #8880]
- * template/unicode_norm_gen.tmpl: Adjusted name of generating file.
+Mon Sep 9 09:14:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Oct 24 22:49:42 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/rbinstall.rb (Gem::Specification#initialize): default date to
+ RUBY_RELEASE_DATE. [ruby-core:57072] [Bug #8878]
- * parse.y (parser_yylex): dispatch newline and space at fluent
- interface, so that the following identifier does not include the
- space. [ruby-dev:48684] [Bug #10411]
+ * tool/rbinstall.rb (Gem::Specification#to_ruby): add date.
-Fri Oct 24 20:41:36 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Sun Sep 8 16:01:54 2013 Tanaka Akira <akr@fsij.org>
- * signal.c (check_reserved_signal_): fix write count since r47991.
+ * rational.c (f_gcd): Relax the condition to use GMP.
-Thu Oct 23 21:42:54 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Sep 8 13:56:38 2013 Masaki Suketa <masaki.suketa@nifty.ne.jp>
- * hash.c (rb_hash_delete): now does not call the block given to
- the current method. [ruby-core:65861] [Bug #10413]
+ * ext/win32ole/win32ole.c (folevariant_initialize): check type of
+ element of array.
-Thu Oct 23 19:13:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/win32ole/test_win32ole_variant.rb (test_s_new_ary): ditto.
- * vm_method.c (rb_method_entry_make): warn redefinition only for
- already defined methods, but not for undefined methods.
- [ruby-dev:48691] [Bug #10421]
+Sat Sep 7 21:33:10 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 23 17:19:04 2014 Kouhei Sutou <kou@cozmixng.org>
+ * math.c (math_log): Test the sign for bignums.
+ (math_log2): Ditto.
+ (math_log10): Ditto.
- * lib/rexml/source.rb (REXML::IOSource#encoding_updated): Fix a
- bug that can't parse XML correctly when
- Encoding.default_internal is different with XML
- encoding. REXML::Source converts XML encoding on read. So IO
- should not convert XML encoding.
- Based on patch by NAKAMURA Usaku.
- [ruby-dev:48686] [Bug #10418]
+Sat Sep 7 20:25:47 2013 Tanaka Akira <akr@fsij.org>
- * test/rexml/test_encoding.rb
- (REXMLTests::EncodingTester#test_parse_utf16_with_utf8_default_internal):
- Add the for the above case.
+ * math.c (math_log): Support bignums bigger than 2**1024.
+ (math_log2): Ditto.
+ (math_log10): Ditto.
-Thu Oct 23 16:29:02 2014 Kouhei Sutou <kou@cozmixng.org>
+Sat Sep 7 15:36:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * test/rexml/test_encoding.rb
- (REXMLTests::EncodingTester#test_parse_utf16): Use meaningful
- test name. "ticket" in the old test name means the ticket in
- REXML's issue tracker. The REXML's issue tracker was gone. So
- "ticket" is meaningless.
+ * vm_eval.c (vm_call0): fix prototype, the id parameter should be of
+ type ID, not VALUE
- * test/rexml/data/ticket_110_utf16.xml: Rename to ...
- * test/rexml/data/utf16.xml: ... this.
+ * vm_insnhelper.c (check_match): the rb_funcall family of functions
+ does not care about refinements. We need to use
+ rb_method_entry_with_refinements instead to call === with
+ refinements. Thanks to Jon Conley for reporting this bug.
+ [ruby-core:57051] [Bug #8872]
-Thu Oct 23 16:18:11 2014 Kouhei Sutou <kou@cozmixng.org>
+ * test/ruby/test_refinement.rb: add test
- * test/rexml/test_encoding.rb
- (REXMLTests::EncodingTester#test_ticket_110): Fix expected and
- actual order.
- Patch by NAKAMURA Usaku. Thanks!!!
+Sat Sep 7 13:49:40 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Thu Oct 23 10:47:16 2014 Eric Wong <e@80x24.org>
+ * variable.c (classname): the name of class that has
+ non class id should not be nil. This bug was introduced
+ in r36577.
- * insns.def (getlocal,setlocal): add comment to def/opt_operand.def
+ * test/thread/test_cv.rb: test for change.
-Thu Oct 23 10:22:41 2014 Eric Wong <e@80x24.org>
+Sat Sep 7 13:29:22 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
- use IO#wait_readable instead of timeout
+ * lib/find.rb (Find.find): respect the encodings of arguments.
+ [ruby-dev:47530] [Feature #8657]
-Thu Oct 23 10:22:24 2014 Eric Wong <e@80x24.org>
+ * test/test_find.rb: add tests.
- * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
- ensure exit! during fork failure
+Sat Sep 7 10:40:32 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 23 10:21:21 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * ext/socket/mkconstants.rb (TCP_FASTOPEN): Defined for TCP fast open.
+ [ruby-core:57048] [Feature #8871] patch by Masaki Matsushita.
- * NEWS: Added String#unicode_normalize(|!|d?) [ci skip]
+Fri Sep 6 23:53:31 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Oct 23 03:41:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * common.mk: use RUNRUBY instead of MINIRUBY because MINIRUBY can't
+ require extension libraries. The patch is from nobu
+ (Nobuyoshi Nakada).
- * class.c (unknown_keyword_error): delete expected keywords
- directly from raw table, so that the given block is not called.
- [ruby-core:65837] [Bug #10413]
+ * ext/thread/extconf.rb: for build ext/thread/thread.c.
-Thu Oct 23 02:33:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/intern.h: ditto.
- * common.mk (update-unicode): invert dependency to run every times.
- [ruby-core:65842] [Bug #10415]
+ * thread.c: ditto.
- * common.mk (after-update): update files under source tree.
- [ruby-core:65840] [Bug #10414]
+ * lib/thread.rb: removed and replaced by ext/thread/thread.c.
-Wed Oct 22 22:38:59 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * ext/thread/thread.c: Queue, SizedQueue and ConditionVariable
+ implementations in C. This patch is based on patches from panaggio
+ (Ricardo Panaggio) and funny_falcon (Yura Sokolov) and ko1
+ (Koichi Sasada). [ruby-core:31513] [Feature #3620]
- * ext/openssl/lib/openssl/ssl.rb (DEFAULT_PARAMS): override
- options even if OpenSSL::SSL::OP_NO_SSLv3 is not defined.
- this is pointed out by Stephen Touset. [ruby-core:65711] [Bug #9424]
+ * test/thread/test_queue.rb (test_queue_thread_raise): add a test for
+ ensuring that killed thread should be removed from waiting threads.
+ It is based on a code by ko1 (Koichi Sasada). [ruby-core:45950]
-Wed Oct 22 21:31:56 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Sep 6 22:47:12 2013 Tanaka Akira <akr@fsij.org>
- * common.mk (prelude.c): add dependency to LIB_SRCS because
- enc/prelude.rb requires lib/unicode_normalize.rb, and it's also
- requires lib/unicode_normalize/tables.rb (=LIB_SRCS).
+ * configure.in: Define ac_cv_func_clock_getres to yes for mingw*.
-Wed Oct 22 21:09:51 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+Fri Sep 6 21:04:10 2013 Tanaka Akira <akr@fsij.org>
- * configure.in (nacl_cv_cpu_nick): fix typo in PNaCl.
- (XCFLAGS) Add -isystem flag to pnacl and nacl-newlib
- (CXX): added
+ * rational.c: Include gmp.h if GMP is used.
+ (GMP_GCD_DIGITS): New macro.
+ (rb_gcd_gmp): New function.
+ (f_gcd_normal): Renamed from f_gcd.
+ (rb_gcd_normal): New function.
+ (f_gcd): Invoke rb_gcd_gmp or f_gcd_normal.
- * nacl/GNUmakefile.in (CXX): Added
- (PPROGRAM): Use clang++ instead of clang because libnacl_io
- depends on c++ std lib.
+ * internal.h (rb_gcd_normal): Declared.
+ (rb_gcd_gmp): Ditto.
-Wed Oct 22 21:07:32 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+ * ext/-test-/rational: New directory.
- * common.mk (build-ext): avoid trying to build dynamic libraries
- if configured --with-static-linked-ext.
+ * test/-ext-/rational: New directory.
-Wed Oct 22 20:33:33 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Fri Sep 6 14:23:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * common.mk: Fixed grammar in comment [ci skip]
+ * win32/win32.c (clock_getres): required as well as clock_gettime().
+ [ruby-dev:47699] [Bug #8869]
-Wed Oct 22 19:18:18 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Fri Sep 6 11:45:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * tool/unicode_norm_gen.rb: Fixed escaping of backslash and
- double quote ('\\\&' -> "\\\\\\\&"; double quoted string
- is needed to make \& mean last match; double double
- backslashes are needed because of two layers of escaping).
+ * transcode.c (rb_econv_append): new function to append a string data
+ with converting its encoding. split from rb_econv_substr_append.
-Wed Oct 22 18:13:29 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Sep 6 02:37:22 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * test/test-unicode_normalize.rb: as often said, ruby is sometimes built
- at non-srcdir.
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: use double quotes when
+ strings start with special characters.
+ https://github.com/tenderlove/psych/issues/157
-Wed Oct 22 18:12:12 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * test/psych/test_string.rb: test for change.
- * test/test-unicode_normalize.rb: Adjusted path for test
- data file (now ../enc/unicode/data/NormalizationTest.txt).
+Fri Sep 6 00:05:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 22 18:07:07 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * class.c (rewrite_cref_stack): remove recursion.
- * test/test-unicode_normalize.rb: Removed explicit require,
- changed method names, adjusted copyright.
+Thu Sep 5 18:05:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Wed Oct 22 18:00:00 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * string.c (fstring_cmp): take string encoding into account when
+ comparing fstrings [ruby-core:57037] [Bug #8866]
- * test/test-unicode_normalize.rb: Importing from
- https://github.com/duerst/eprun/blob/master/test/test_normalize.rb.
- (removing trailing whitespace, fixing EOLs and adding EOL property)
+ * test/ruby/test_string.rb: add test
-Wed Oct 22 08:21:09 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+Thu Sep 5 17:25:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * nacl/pepper_main.c (Instance_DidCreate): mount devfs and rebind fd 0
- .. 2 so that stderr goes to the console of the browser.
+ * string.c (rb_fstring, rb_str_free): use st_data_t instead of VALUE.
-Wed Oct 22 03:47:43 2014 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+ * string.c (rb_fstring): get rid of duplicating already frozen object.
- * ext/etc/etc.c (etc_nprocessors_affin): maximum "n" should be 16384.
+Thu Sep 5 14:01:22 2013 Eric Hodel <drbrain@segment7.net>
-Wed Oct 22 03:37:00 2014 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+ * lib/optparse.rb: The Integer acceptable now allows binary and
+ hexadecimal numbers per the documentation. [ruby-trunk - Bug #8865]
- * ext/etc/etc.c (etc_nprocessors_affin): minor spell fix.
+ DecimalInteger, OctalInteger, DecimalNumeric now validate their input
+ before converting to a number. [ruby-trunk - Bug #8865]
-Wed Oct 22 03:33:58 2014 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+ * test/optparse/test_acceptable.rb: Tests for the above, tests for all
+ numeric acceptables for existing behavior.
- * ext/etc/etc.c (etc_nprocessors_affin): optimize memory usage a
- bit. Typical rubyist never use 8k cpus machine.
+Thu Sep 5 13:49:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Wed Oct 22 00:01:09 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+ * include/ruby/ruby.h: add RSTRING_FSTR flag
- * configure.in (XCFLAGS): Add include path for NaCl libraries.
- (XLDFLAGS): ditto.
- (NACL_LIB_PATH): new substitution
+ * internal.h: add rb_fstring() prototype
- * nacl/nacl-config.rb: support NACL_LIB_PATH
+ * string.c (rb_fstring): deduplicate frozen string literals
- * nacl/package.rb: ditto.
+ * string.c (rb_str_free): delete fstrings from frozen_strings table when
+ they are GC'd
- * nacl/pepper_main.c: replace old implementations with nacl_io.
+ * string.c (Init_String): initialize frozen_strings table
- * nacl/GNUmakefile.in: link nacl_io to pepper_ruby
+Thu Sep 5 12:48:00 2013 Kenta Murata <mrkn@cookpad.com>
- * ruby.c (rb_load_file): remove __attribute__((weak)) because the old
- override hack was replaced with nacl_io.
+ * configure.in (with_gmp): set with_gmp no if it is empty.
- * file.c (rb_file_load_ok): ditto.
+Thu Sep 5 10:41:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Tue Oct 21 17:32:32 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * vm_insnhelper.c (vm_getivar): use class sequence to check class
+ identity, instead of pointer + vm state
- * common.mk: Adding explicit creation of directory
- enc/unicode/data because git doesn't handle empty
- directories. [patch by Masahiro Ide, filed with r48073]
+ * vm_insnhelper.c (vm_setivar): ditto
-Tue Oct 21 17:12:12 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Thu Sep 5 08:20:58 2013 Tanaka Akira <akr@fsij.org>
- * lib/unicode_normalize/tables.rb: Committing to make version
- update easier and more predictable, and reducing compilation
- time.
+ * bignum.c (GMP_DIV_DIGITS): New macro.
+ (bary_divmod_gmp): New function.
+ (rb_big_divrem_gmp): Ditto.
+ (bary_divmod_branch): Ditto.
+ (bary_divmod): Use bary_divmod_branch.
+ (bigdivrem): Ditto.
-Tue Oct 21 15:56:56 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * internal.h (rb_big_divrem_gmp): Declared.
- * lib/unicode_normalize/normalize.rb: Added comment to point to
- relevant portion of Unicode standard for Hangul (de)composition
- identifiers and algorithm.
+Thu Sep 5 06:22:42 2013 Tanaka Akira <akr@fsij.org>
-Tue Oct 21 11:49:16 2014 Andreas Schwab <schwab@suse.de>
+ * bignum.c (bary_divmod_normal): Reduce temporary array allocations.
- * gc.c (mark_current_machine_context) [__mc68000__]: Update stack
- marking.
- (rb_gc_mark_machine_stack) [__mc68000__]: Also handle it here.
+Thu Sep 5 02:17:06 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 20 23:59:38 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * bignum.c (rb_big_divrem_normal): Add GC guards.
- * enc/prelude.rb: we sometimes run ruby without library path (especially
- for test), so should permit to run ruby if unicode_normalize.rb is
- missing.
+Thu Sep 5 00:38:32 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 20 23:57:58 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * bignum.c (rb_big_divrem_normal): New function.
- * common.mk (lib/unicode_normalize/tables.rb): enable running (n)make
- in non-srcdir.
+ * internal.h (rb_big_divrem_normal): Declared.
-Mon Oct 20 23:58:04 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/-test-/bignum/div.c: New file.
- * tool/downloader.rb: add -a option to always download regardless
- existing files.
+ * test/-ext-/bignum/test_div.rb: New file.
-Mon Oct 20 23:18:18 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Sep 5 00:08:44 2013 Tanaka Akira <akr@fsij.org>
- * lib/mkmf.rb: no need to convert path separator for COPY because it's
- ruby -run cp and it can treat '/' on any platform.
+ * bignum.c (bigdivrem_normal): Removed.
+ (bary_divmod_normal): New function.
+ (bary_divmod): Use bary_divmod_normal.
+ (bigdivrem): Use bary_divmod_normal.
-Mon Oct 20 19:54:54 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Wed Sep 4 23:02:12 2013 Tanaka Akira <akr@fsij.org>
- * config.mk: Added missing data files as targets for
- prerequisite update_unicode.
+ * bignum.c (bigdivrem): Useless declaration removed.
-Mon Oct 20 19:06:06 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Wed Sep 4 22:56:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/unicode_normalize.rb: revert r48046. The s in sIndex
- is not hungarian notation. The variable name sIndex is
- directly taken from the relevant part of the Unicode
- Standard, where it is written SIndex and stands for
- 'syllable index'. See pp. 144/145 of
- http://www.unicode.org/versions/Unicode7.0.0/ch03.pdf.
+ * numeric.c (NUM_STEP_GET_INF): split from NUM_STEP_SCAN_ARGS(), since
+ inf is not used in num_step_size().
-Mon Oct 20 12:46:46 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Wed Sep 4 20:22:43 2013 Tanaka Akira <akr@fsij.org>
- * lib/unicode_normalize.rb: removing unnecessary 'self'.
+ * bignum.c (bigdivrem_normal): Add assertions.
-Mon Oct 20 12:37:37 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Wed Sep 4 19:18:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/unicode_normalize.rb: change method names
- in commented-out code. Followup to r48027.
+ * internal.h (vm_state_version_t): prefer LONG_LONG to uint64_t.
-Mon Oct 20 02:23:27 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Sep 4 16:28:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * variable.c (rb_ivar_get), vm_insnhelper.c (vm_getivar): improve
- instance variable retrieval performance by checking ruby_verbose
- before call of rb_warning and evaluation of its argument.
- [ruby-core:65786] [Feature #10396]
+ * internal.h (vm_state_version_t): use uint64_t when it is larger than
+ LONG_LONG, and fallback to unsigned long.
-Sun Oct 19 23:31:29 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+Wed Sep 4 15:37:05 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/unicode_normalize.rb: (unicode_normalize!): change method name.
- catch up the method name change at r48014. [Feature #10084]
+ * enc/trans/utf8_mac-tbl.rb: fix r42789.
+ Fix conversion table and logic. [ruby-dev:47680]
-Sun Oct 19 20:05:58 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Sep 4 14:08:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/tk/lib/tkextlib/tile/treeview.rb: fix syntax error.
+ * class.c, compile.c, eval.c, gc.h, insns.def, internal.h, method.h,
+ variable.c, vm.c, vm_core.c, vm_insnhelper.c, vm_insnhelper.h,
+ vm_method.c: Implement class hierarchy method cache invalidation.
-Sun Oct 19 18:39:39 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ [ruby-core:55053] [Feature #8426] [GH-387]
- * enc/prelude.rb: Added automatic loading of
- lib/unicode_normalize.rb. This makes sure that all
- the methods that are available on String are
- available without explicit require.
+Wed Sep 4 11:13:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 19 18:35:35 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * string.c (str_gsub): use BEG(0) for whole matched position not
+ return value from rb_reg_search(), for \K matching.
+ [ruby-dev:47694] [Bug #8856]
- * lib/unicode_normalize/normalize.rb: Added a missing
- file extension in require statement.
+Wed Sep 4 11:11:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 19 18:13:13 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * configure.in (SOLIBS): LIBRUBY_SO also needs linking with gmp, to
+ run worker processes in test-all on non-ELF platforms.
- * common.mk: Added a rule to generate
- lib/unicode_normalize/tables.rb. This rule still
- needs to be integrated into the overall make process.
+Tue Sep 3 23:01:41 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Oct 19 17:53:53 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * test/rexml/parser/test_tree.rb
+ (TestTreeParser::TestInvalid#test_unmatched_close_tag):
+ Compute expected value from test value.
- * lib/unicode_normalize.rb: Changed to dynamic
- loading of actual normalization code and tables.
+Tue Sep 3 22:59:58 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Oct 19 17:37:37 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * lib/rexml/parsers/treeparser.rb (REXML::Parsers::TreeParser#parse):
+ Add source information to parse exception on no close tag error.
+ [Bug #8844] [ruby-dev:47672]
+ Patch by Ippei Obayashi. Thanks!!!
+ * test/rexml/parser/test_tree.rb: Add a test for the above case.
- * lib/unicode_normalize.rb: Small documentation fix.
+Tue Sep 3 22:57:57 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Oct 19 17:26:26 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * test/rexml/parser/test_tree.rb: Fix test name to describe test
+ content.
- * lib/unicode_normalize.rb: Added documentation.
+Tue Sep 3 22:54:46 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Oct 19 11:09:09 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * lib/rexml/parsers/treeparser.rb (REXML::Parsers::TreeParser#parse):
+ Remove needless nested parse exception information.
+ [Bug #8844] [ruby-dev:47672]
+ Reported by Ippei Obayashi. Thanks!!!
+ * test/rexml/parser/test_tree.rb: Add a test for the above case.
- * tool/unicode_norm_gen.rb, lib/unicode_normalize.rb:
- File name change from lib/unicode_normalize/normalize_tables.rb
- to lib/unicode_normalize/tables.rb.
+Tue Sep 3 22:03:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 19 10:12:12 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * string.c (rb_enc_str_new_cstr): new function to create a string from
+ the C-string pointer with the specified encoding.
- * lib/unicode_normalize.rb: Changing method names, see
- https://bugs.ruby-lang.org/issues/10084#note-7
+Tue Sep 3 21:41:37 2013 Akira Matsuda <ronnie@dio.jp>
-Sun Oct 19 10:10:10 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * eval.c (Init_eval): Make Module#include and Module#prepend public
+ [Feature #8846]
- * lib/unicode_normalize.rb: Changing module name.
+ * test/ruby/test_module.rb (class TestModule): Test for above
-Sun Oct 19 10:08:08 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Tue Sep 3 21:35:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/unicode_normalize.rb: Changing require statement,
- adjusting copyright.
+ * thread_pthread.c (sys/dyntune.h): for gettune().
-Sun Oct 19 10:04:04 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * thread_pthread.c (hpux_attr_getstackaddr): fix missing *.
+ [ruby-core:56983] [Feature #8793]
- * lib/unicode_normalize.rb: Importing from
- https://github.com/duerst/eprun/blob/master/lib/string_normalize.rb.
- (removing trailing whitespace, fixing EOLs and adding EOL property)
+Tue Sep 3 20:12:46 2013 Tanaka Akira <akr@fsij.org>
-Sun Oct 19 09:56:56 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * bignum.c (GMP_STR2BIG_DIGITS): New macro.
+ (str2big_gmp): New function.
+ (rb_cstr_to_inum): Use str2big_gmp for big bignums.
+ (rb_str2big_gmp): New function.
- * tool/unicode_norm_gen.rb: Changed module name.
+ * internal.h (rb_str2big_gmp): Declared.
-Sun Oct 19 09:48:48 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Tue Sep 3 19:44:40 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/unicode_normalize/normalize.rb: Changed module name,
- adjusted copyright.
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#values): added.
+ [Feature #7763] [ruby-core:51783]
-Sun Oct 19 09:38:38 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Tue Sep 3 18:26:00 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/unicode_normalize/normalize.rb: Importing from
- https://github.com/duerst/eprun/blob/master/lib/normalize.rb.
+ * misc/inf-ruby.el (inf-ruby-keys, run-ruby): Add magic autoload
+ comments.
-Sat Oct 18 20:40:52 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+ * misc/rdoc-mode.el (rdoc-mode): Ditto.
- * vm_core.h, proc.c, vm_backtrace.c, vm_trace.c:
- remove rb_binding_new_with_cfp, and use rb_vm_make_binding instead.
+ * misc/ruby-electric.el (ruby-electric-mode): Ditto.
-Sat Oct 18 20:38:48 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+ * misc/ruby-style.el (ruby-style-c-mode): Ditto.
- * vm_core.h, vm.c, proc.c: fix GC mark miss on bindings.
- [ruby-dev:48616] [Bug #10368]
+Tue Sep 3 17:06:15 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * test/ruby/test_eval.rb: add a test code.
+ * test/ruby/test_rubyoptions.rb
+ (TestRubyOptions::SEGVTest::ExpectedStderr): the URL was changed at
+ r42800.
-Fri Oct 17 22:47:11 2014 Tanaka Akira <akr@fsij.org>
+Tue Sep 3 14:48:25 2013 Zachary Scott <e@zzak.io>
- * pack.c (pack_unpack): Add casts for char references for 'u'.
- Fix line ending recognition algorithm.
+ * lib/thread.rb: [DOC] CV#wait typo by @avdi [Fixes GH-386]
+ https://github.com/ruby/ruby/pull/386
-Fri Oct 17 21:49:52 2014 Tanaka Akira <akr@fsij.org>
+Tue Sep 3 14:37:53 2013 Zachary Scott <e@zzak.io>
- * pack.c (pack_unpack): Add casts for char references for 'b' and 'h'.
+ * error.c: [DOC] Update bug tracker url by @ScotterC [Fixes GH-390]
+ https://github.com/ruby/ruby/pull/390
-Fri Oct 17 17:50:10 2014 Tanaka Akira <akr@fsij.org>
+Tue Sep 3 12:45:23 2013 Tanaka Akira <akr@fsij.org>
- * Avoid undefined behaviors found by gcc -fsanitize=undefined.
- gcc (Debian 4.9.1-16) 4.9.1
+ * bignum.c (rb_str2big_poweroftwo): New function.
+ (rb_str2big_normal): Ditto.
+ (rb_str2big_karatsuba): Ditto.
- * string.c (rb_str_sum): Avoid undefined behavior.
+ * internal.h (rb_str2big_poweroftwo): Declared.
+ (rb_str2big_normal): Ditto.
+ (rb_str2big_karatsuba): Ditto.
-Fri Oct 17 17:43:50 2014 Tanaka Akira <akr@fsij.org>
+ * ext/-test-/bignum/str2big.c: New file.
- * Avoid undefined behaviors found by gcc -fsanitize=undefined.
- gcc (Debian 4.9.1-16) 4.9.1
+ * test/-ext-/bignum/test_str2big.rb: New file.
- * include/ruby/ruby.h (INT2FIX): Avoid undefined behavior.
+ * ext/-test-/bignum/depend: Add the dependency for str2big.c.
- * node.h (nd_set_line): Ditto.
+Tue Sep 3 12:09:08 2013 Tanaka Akira <akr@fsij.org>
- * pack.c (encodes): Ditto.
- (pack_unpack): Ditto.
+ * process.c (rb_clock_gettime): Support times() based monotonic clock.
+ (rb_clock_getres): Ditto.
- * regint.h (BIT_STATUS_AT): Ditto.
- (BS_BIT): Ditto.
+Tue Sep 3 12:03:02 2013 Tanaka Akira <akr@fsij.org>
- * time.c (time_mdump): Ditto.
- (time_mload): Ditto.
+ * bignum.c (str2big_scan_digits): Extracted from rb_cstr_to_inum.
- * vm_core.h (VM_FRAME_MAGIC_MASK): Ditto.
+Tue Sep 3 11:23:57 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * vm_trace.c (recalc_add_ruby_vm_event_flags): Ditto.
+ * win32/win32.c (rb_w32_select_with_thread): rounding up the fraction of
+ tv_usec instead of rounding down.
+ this change is an experiment to get rid of failures on vc10-x64 CI.
-Fri Oct 17 15:06:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Sep 3 11:00:28 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * re.c (unescape_nonascii): make dynamically compiled US-ASCII
- regexps ASCII-8BIT encoding if binary (hexadecimal, control,
- meta) escapes are contained, as well as literal regexps.
- [ruby-dev:48626] [Bug #10382]
+ * win32/win32.c (do_select): constify timeout.
-Fri Oct 17 03:05:08 2014 Eric Wong <e@80x24.org>
+ * win32/win32.c (rb_w32_select_with_thread): constify 10ms wait and
+ 0ms wait structs.
- * test/-ext-/bug_reporter/test_bug_reporter.rb
- (test_bug_reporter_add): revert r47972
- * test/ruby/test_rubyoptions.rb (test_segv_test): revert r47971
- [ruby-core:65764]
+Tue Sep 3 10:03:42 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Thu Oct 16 23:17:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/openssl/test_pair.rb
+ (OpenSSL::TestPair#test_write_nonblock_no_exceptions): on some CIs
+ such as Debian 6.0, Ubuntu 10.04, CentOS and vc10-x64 (maybe depend
+ on OpenSSL version), writing to SSLSocket after SSL_ERROR_WANT_WRITE
+ causes SSL_ERROR_SSL "bad write retry".
- * signal.c (rb_sigaltstack_size): double default size to get rid
- of heap corruption by alternate stack overflow in SEGV handler.
- typically happened at fprintf() in control_frame_dump().
+Tue Sep 3 08:20:46 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Thu Oct 16 22:43:12 2014 Tanaka Akira <akr@fsij.org>
+ * enc/trans/utf8_mac-tbl.rb: update conversion table to recent OS X.
+ Previous table is used on Mac OS X 10.1 or prior.
+ This table is used on 10.2 or later. [ruby-dev:47680]
- * vm_backtrace.c (id2str): Fix a variable name.
- [ruby-dev:48642] [Bug #10389]
+Tue Sep 3 07:49:25 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Oct 16 20:01:26 2014 Tanaka Akira <akr@fsij.org>
+ * numeric.c (NUM_STEP_SCAN_ARGS): On second thought, keep
+ Numeric#step backward compatible in that it raises TypeError
+ when nil is given as second argument.
- * test/ruby/envutil.rb (assert_pattern_list): Show number of matched
- patterns and characters.
+ * test/ruby/test_float.rb (TestFloat#test_num2dbl): Revert.
-Thu Oct 16 16:26:09 2014 Eric Wong <e@80x24.org>
+ * test/ruby/test_numeric.rb (TestNumeric#test_step): Fix test
+ cases for the above change.
- * cont.c (fiber_store): fix WIN32 fibers
- [ruby-core:65745] [ruby-core:65758]
+Tue Sep 3 07:39:58 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 16 15:05:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (bytes_2comp): Define it only for little endian
+ environment.
- * parse.y (parser_here_document): do not append already appended
- and disposed code fragment. [ruby-dev:48647] [Bug #10392]
+Tue Sep 3 07:31:29 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Oct 16 10:35:33 2014 Eric Wong <e@80x24.org>
+ * numeric.c (NUM_STEP_SCAN_ARGS): Numeric#step should raise
+ TypeError if a non-numeric parameter is given.
- * test/-ext-/bug_reporter/test_bug_reporter.rb
- (test_bug_reporter_add): fix race
+ * test/ruby/test_float.rb (TestFloat#test_num2dbl): Allow nil as
+ step, as with the keyword argument.
-Thu Oct 16 10:09:02 2014 Eric Wong <e@80x24.org>
+ * test/ruby/test_numeric.rb (TestNumeric#test_step): Add tests for
+ nil as step or limit.
- * test/ruby/test_rubyoptions.rb (test_segv_test): fix race
+Tue Sep 3 07:28:49 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 16 09:17:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h (bit_length): Add casts to fix compilation error with
+ clang 3.0 -Werror,-Wshorten-64-to-32.
+ [ruby-dev:47687] reported by SASADA Koichi.
- * cont.c (rb_fiber_t): fix compile error caused by move to
- vm_core.h at r47964. [Feature #10341]
+Tue Sep 3 03:17:26 2013 Koichi Sasada <ko1@atdot.net>
-Thu Oct 16 08:58:11 2014 Eric Wong <e@80x24.org>
+ * vm_insnhelper.c (vm_search_super_method): use ci->argc instead of
+ ci->orig_argc. ci->argc can be changed by splat arguments.
+ [ruby-list:49575]
+ This fix should be applied to Ruby 2.0.0 series.
- * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
- avoid killing wrong parent
+ * test/ruby/test_super.rb: add a test for above.
-Thu Oct 16 08:40:04 2014 Eric Wong <e@80x24.org>
+Mon Sep 2 23:46:29 2013 Akinori MUSHA <knu@iDaemons.org>
- * cont.c (fiber_store): restore references to next_fib (fix typo)
+ * numeric.c (num_step): Default the limit argument to infinity and
+ allow it to be omitted. Keyword arguments (by: and to:) are
+ introduced for ease of use. [Feature #8838] [ruby-dev:47662]
+ [ruby-dev:42194]
-Thu Oct 16 08:26:08 2014 Eric Wong <e@80x24.org>
+ * numeric.c (num_step): Optimize for infinite loop.
- * cont.c (fiber_store): remove references to nextfib
- fix build when FIBER_USE_NATIVE is 0
+Mon Sep 2 22:55:59 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 16 06:51:35 2014 Knut Franke <Knut.Franke@gmx.de>
+ * bignum.c (ISDIGIT): Unused macro removed.
- * vm_core.h: declare rb_fiber_t typedef
- (rb_thread_t): fiber and root_fiber become rb_fiber_t * (from VALUE)
- * vm.c (rb_thread_mark): use rb_fiber_mark_self
- * cont.c (rb_fiber_t): prev becomes rb_fiber_t * (from VALUE)
- (cont_mark, cont_free): simplify conditions
- (rb_fiber_mark_self): new function
- (fiber_mark): use rb_fiber_mark_self
- (cont_save_thread, cont_restore_thread): inline
- (cont_restore_thread): simplify
- (fiber_setcontext): simplify conditions
- (rb_cont_call): remove dereference
- (fiber_t_alloc): update for rb_fiber_t->prev type change
- (rb_fiber_start): ditto
- (fiber_current): extract from rb_fiber_current
- (return_fiber): move, simplify type checks
- (rb_fiber_current): use fiber_current
- (fiber_store): simplify type checks
- (fiber_switch): ditto, simplify call to fiber_setcontext,
- use fiber_current
- (rb_fiber_transfer): update for type changes
- (rb_fiber_terminate): move, use fiber_switch
- (rb_fiber_resume): update for type changes
- (rb_fiber_reset_root_local_storage): ditto
- (rb_fiber_yield): use rb_fiber_switch instead of rb_fiber_transfer
- (rb_fiber_m_transfer): ditto
- [ruby-core:65518] [Feature #10341]
+Mon Sep 2 22:49:15 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 16 06:25:29 2014 Knut Franke <Knut.Franke@gmx.de>
+ * bignum.c (str2big_poweroftwo): Extracted from rb_cstr_to_inum.
+ (str2big_normal): Ditto.
+ (str2big_karatsuba): Ditto.
- * cont.c (rb_context_t): comment on saved_thread
- (cont_save_thread): sparse copy
- (cont_init): copy extra fields
- (fiber_init): use current thread VM stack size
- [ruby-core:65518] [Feature #10341]
+Mon Sep 2 14:39:29 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Oct 16 06:13:09 2014 Knut Franke <Knut.Franke@gmx.de>
+ * ruby.c (Process#setproctitle): [DOC] Fix and improve rdoc.
- * cont.c (cont_capture): remove unnecessary variable
- [ruby-core:65518] [Feature #10341]
+ * ruby.c (Process#argv0): [DOC] Improve rdoc.
-Thu Oct 16 05:02:31 2014 Knut Franke <Knut.Franke@gmx.de>
+Mon Sep 2 14:15:00 2013 Kenta Murata <mrkn@cookpad.com>
- * cont.c (fiber_store, fiber_switch): simplify
- [ruby-core:65518] [Feature #10341]
+ * NEWS: fix description of number literal suffixes.
-Thu Oct 16 04:28:41 2014 Knut Franke <Knut.Franke@gmx.de>
+Mon Sep 2 14:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * cont.c (rb_fiber_t): remove prev_fiber/next_fiber
- (fiber_link_join, fiber_link_remove): remove functions
- (fiber_free, fiber_init, root_fiber_alloc):
- remove references to removed fields and functions
- [ruby-core:65518] [Feature #10341]
+ * test/rake/test_rake_rules.rb: add space after string literal to
+ prevent conflict with string options syntax "foo"opts
-Wed Oct 15 22:08:37 2014 Tanaka Akira <akr@fsij.org>
+ * test/rss/rss-assertions.rb: ditto
- * ext/etc/etc.c (etc_nprocessors_affin): Test CPU_ALLOC availability.
- CentOS 5 don't have CPU_ALLOC().
+Mon Sep 2 12:28:38 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 15 18:26:19 2014 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+ * test/ruby/test_bignum.rb (test_interrupt_during_to_s): Disable it
+ when GMP is used.
- * ext/etc/etc.c (etc_nprocessors_affinity): use sched_getaffinity
- for getting precious number of available cpus.
+Mon Sep 2 07:02:10 2013 Tanaka Akira <akr@fsij.org>
- * ext/etc/etc.c (etc_nprocessors): use etc_nprocessors_affinity if
- possible.
+ * bignum.c (Init_Bignum): Define Bignum::GMP_VERSION when GMP is used.
- [Feature #10267] etc-nprocessors-kosaki2.patch
+Mon Sep 2 01:46:14 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 15 17:53:28 2014 Tanaka Akira <akr@fsij.org>
+ * bignum.c (big2str_generic): Reduce arguments.
+ (big2str_gmp): Ditto.
+ (rb_big2str1): Follow the above change.
- * test/ruby/envutil.rb (assert_pattern_list) Renamed from
- assert_regexp_list.
- Show multiline string in multi lines.
+Mon Sep 2 00:08:08 2013 Tanaka Akira <akr@fsij.org>
- * test/-ext-/bug_reporter/test_bug_reporter.rb: Use
- assert_pattern_list.
+ * process.c (get_mach_timebase_info): Extracted from rb_clock_gettime.
+ (rb_clock_gettime): Use get_mach_timebase_info.
+ (rb_clock_getres): Support MACH_ABSOLUTE_TIME_BASED_CLOCK_MONOTONIC.
-Wed Oct 15 12:26:58 2014 Tanaka Akira <akr@fsij.org>
+Sun Sep 1 23:30:47 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/envutil.rb (assert_regexp_list): New assertion method.
+ * bignum.c (GMP_BIG2STR_DIGITS): New constant.
+ (big2str_gmp): New function.
+ (rb_big2str1): Use big2str_gmp for big bignums.
- * test/ruby/test_rubyoptions.rb: Use assert_regexp_list.
+ * internal.h (rb_big2str_gmp): Declared.
-Wed Oct 15 07:21:09 2014 Tanaka Akira <akr@fsij.org>
+ * ext/-test-/bignum/big2str.c (big2str_gmp): New method.
- * enum.c: min(n) drops elements bigger than the n-th maximum element.
- (struct nmin_data): New field to record the n-th maximum element, limit
- (nmin_filter): Update limit field.
- (nmin_i): Drop too big elements.
- (nmin_run): Initialize limit field.
+Sun Sep 1 22:37:51 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 15 07:00:14 2014 Eric Wong <e@80x24.org>
+ * bignum.c (bary_mul_gmp): Use mpz_init and mpz_clear instead of
+ mpz_inits and mpz_clears.
+ Older GMP don't have them.
- * test/ruby/test_optimization.rb (test_string_size): new test
+Sun Sep 1 21:17:54 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 15 06:51:13 2014 Eric Wong <e@80x24.org>
+ * test/net/http/test_http.rb (test_bind_to_local_port): Choose an open
+ port more reliably.
- * test/ruby/test_optimization.rb (test_string_eq_neq): new test
- (test_string_ltlt): ditto
+Sun Sep 1 20:32:40 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 15 06:50:29 2014 Eric Wong <e@80x24.org>
+ * bignum.c (big2str_base_poweroftwo): Renamed from
+ big2str_base_powerof2.
+ (rb_big2str_poweroftwo): New function for test.
+ (big2str_generic): Extracted from rb_big2str1.
+ (rb_big2str_generic): New function for test.
- * test/ruby/test_optimization.rb (test_hash_aset_with):
- assert assignment
+ * internal.h (rb_big2str_poweroftwo): Declared.
+ (rb_big2str_generic): Ditto.
-Wed Oct 15 04:56:27 2014 Zachary Scott <e@zzak.io>
+ * ext/-test-/bignum/big2str.c: New file.
- * gc.c (rb_obj_id): [DOC] Fix typo, clean up sentence, and wrap cols
+ * test/-ext-/bignum/test_big2str.rb: New file.
-Wed Oct 15 04:53:30 2014 Zachary Scott <e@zzak.io>
+Sun Sep 1 15:21:21 2013 Tanaka Akira <akr@fsij.org>
- * error.c: [DOC] Fix case of type in exception message by @tricknotes
- [Fixes GH-740] https://github.com/ruby/ruby/pull/740
+ * bignum.c (big2str_2bdigits): Renamed from big2str_orig.
- * object.c: ditto
+Sun Sep 1 13:02:24 2013 Tanaka Akira <akr@fsij.org>
-Tue Oct 14 21:39:16 2014 Vit Ondruch <vondruch@redhat.com>
+ * bignum.c: Remove BITSPERDIG >= INT_MAX test. The static assertion,
+ SIZEOF_BDIGITS <= sizeof(BDIGIT) is enough.
- * tool/rbinstall.rb (gem): Fix permissions of bundled gems
- specification files. [ruby-core:65700] [Bug #10383]
+Sun Sep 1 11:38:26 2013 Tanaka Akira <akr@fsij.org>
-Tue Oct 14 19:15:31 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (maxpow_in_bdigit): Removed.
- * ext/win32ole/win32ole_record.c: use typed data.
+Sun Sep 1 10:30:42 2013 Tanaka Akira <akr@fsij.org>
-Tue Oct 14 16:23:12 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * numeric.c (rb_fix_bit_length): Moved from bignum.c.
- * symbol.c (global_symbols): make ids two-dimensional array of
- strings and symbols, for write-barrier.
+Sun Sep 1 09:55:45 2013 Tanaka Akira <akr@fsij.org>
- * symbol.c (global_symbols): make IDs immortal always, instead
- of treating dynamic symbols as IDs.
+ * internal.h (bit_length): Moved from bignum.c.
+ (nlz_int): Ditto.
+ (nlz_long): Ditto.
+ (nlz_long_long): Ditto.
+ (nlz_int128): Ditto.
- * iseq.c, marshal.c, string.c: use rb_str_intern instead of
- rb_str_dynamic_intern.
+Sun Sep 1 03:32:22 2013 Tanaka Akira <akr@fsij.org>
- * symbol.c (rb_str_intern): rename rb_str_dynamic_intern.
+ * bignum.c (bit_length): Renamed from bitsize.
-Tue Oct 14 10:19:10 2014 Eric Wong <e@80x24.org>
+Sun Sep 1 00:07:09 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_optimization.rb (test_string_freeze): new test
- (test_hash_aref_with): ditto
- (test_hash_aset_with): ditto
+ * bignum.c (rb_big_bit_length): New method.
+ (rb_fix_bit_length): Ditto.
+ [ruby-core:56247] [Feature #8700]
-Tue Oct 14 01:27:54 2014 Tanaka Akira <akr@fsij.org>
+Sat Aug 31 22:18:29 2013 Tanaka Akira <akr@fsij.org>
- * enum.c (nmin_run): max(n) and max_by(n) returns an array in
- descending order.
- [ruby-core:65452] Suggested by David Grayson.
+ * process.c (rb_clock_getres): New method.
+ (timetick2dblnum_reciprocal): New function.
-Mon Oct 13 20:44:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: Check clock_getres.
- * common.mk (update-gems): chdir to the target directory and then
- add the tool directory to load paths, for older BASERUBY.
- [Bug #10372][ruby-core:65630]
+ [ruby-core:56780] [Feature #8809] accepted as a CRuby feature at
+ DevelopersMeeting20130831Japan
+ https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20130831Japan
-Mon Oct 13 17:53:01 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Aug 31 21:02:07 2013 Tanaka Akira <akr@fsij.org>
- * lib/xmlrpc/parser.rb: added new parser class using libxml-ruby gem.
- [Feature #9379][ruby-core:59633]
- * lib/xmlrpc/config.rb: ditto.
+ * bignum.c: Use GMP to accelerate big Bignum multiplication.
+ (bary_mul_gmp): New function.
+ (bary_mul): Use bary_mul_gmp.
+ (bigsq): Use different threshold with GMP.
-Mon Oct 13 16:32:56 2014 Tanaka Akira <akr@fsij.org>
+ * configure.in: Detect GMP.
- * lib/find.rb (Find.find): Call to_path for arguments to obtain
- strings.
- [ruby-core:63713] [Bug #10035] Reported by Herwin.
+ [ruby-core:56658] [Feature #8796]
-Mon Oct 13 15:42:25 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Aug 31 15:03:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * common.mk: use relative load path for bundled_gems directory.
- [Bug #10372][ruby-core:65630]
+ * compile.c (NODE_MATCH3): pass CALL_INFO to opt_regexpmatch2
-Mon Oct 13 08:44:06 2014 Zachary Scott <e@zzak.io>
+ * insns.def (opt_regexpmatch2): use CALL_SIMPLE_METHOD to call =~ if
+ the receiver is not a T_STRING [Bug #8847] [ruby-core:56916]
- * README.EXT: [DOC] fix example missing typedef with patch by
- @steveklabnik [Fixes GH-739] https://github.com/ruby/ruby/pull/739
+Sat Aug 31 14:07:11 2013 Tanaka Akira <akr@fsij.org>
- * README.EXT.ja: ditto.
+ * lib/securerandom.rb (random_bytes): Use Process.clock_gettime.
-Mon Oct 13 06:52:09 2014 Eric Wong <e@80x24.org>
+Sat Aug 31 00:25:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c (ary_recycle_hash): add RB_GC_GUARD
- (rb_ary_diff): remove volatile
- [Bug #10369]
+ * include/ruby/encoding.h (rb_{ascii8bit,utf8,usascii}_encindex): get
+ rid of conflict with macros defined in internal.h.
-Mon Oct 13 03:20:23 2014 Zachary Scott <e@zzak.io>
+Fri Aug 30 22:37:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/date/date_core.c: [DOC] Clean up whitespace, examples, and typos
- in date_core based on a patch by @vipulnsward [Fixes GH-724]
- https://github.com/ruby/ruby/pull/724
+ * thread_pthread.c (native_thread_init_stack): wait the creator thread
+ to fill machine stack info, if get_stack_of() is available.
-Mon Oct 13 02:39:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread_pthread.c (native_thread_create): fill the created thread
+ stack info after starting, if get_stack_of() is available.
- * parse.y (remove_duplicate_keys): should not simply eliminate all
- value nodes, which may have side effects.
- [ruby-core:65625] [Bug #10315]
+ * thread_pthread.c (native_thread_create): define attr only if it is
+ used, and merge pthread_create() calls.
-Sun Oct 12 10:39:16 2014 Zachary Scott <e@zzak.io>
+ * thread_pthread.c (get_main_stack): separate function to get stack of
+ main thread.
- * vm.c: [DOC] fix typo by @yui-knk [Fixes GH-738]
- https://github.com/ruby/ruby/pull/738
+Thu Aug 29 18:05:33 2013 Koichi Sasada <ko1@atdot.net>
-Sun Oct 12 09:24:15 2014 Tanaka Akira <akr@fsij.org>
+ * struct.c (rb_struct_define_without_accessor_under): added.
+ This function is similar to rb_define_class_under() against
+ rb_define_class().
- * test/lib/test/unit.rb: Hide skips by default.
+ * include/ruby/intern.h: add a declaration of this function.
-Sun Oct 12 01:37:11 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+Thu Aug 29 17:03:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c: include sys/time.h only if HAVE_SYS_TIME_H
+ * vm_insnhelper.c (vm_call_method): a method entry refers the based
+ class/module, so should search superclass from the origin i-class
+ where the entry belongs to, to get rid of infinite loop when zsuper
+ in a prepended class/module. [ruby-core:54105] [Bug #8238]
-Sat Oct 11 22:29:40 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+Thu Aug 29 05:35:58 2013 Eric Hodel <drbrain@segment7.net>
- * file.c (HAVE_UTIMENSAT): disabled for NativeClient.
- Fixes build error.
+ * ext/zlib/zlib.c (zstream_run): Fix handling of deflate streams that
+ need a dictionary but are being decompressed by Zlib::Inflate.inflate
+ (which has no option to set a dictionary). Now Zlib::NeedDict is
+ raised instead of crashing. [ruby-trunk - Bug #8829]
+ * test/zlib/test_zlib.rb (TestZlibInflate): Test for the above.
-Sat Oct 11 22:11:58 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+Thu Aug 29 02:40:45 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/extmk.rb: generates the rule for extinit.$(OBJEXT).
- extinit.$(OBJEXT) used to be generated by the builtin rule, thus
- didn't accept custom $(CC) and caused linkage error for cross
- compiling.
+ * ext/psych/lib/psych/scalar_scanner.rb: invalid floats should be
+ treated as strings.
+ https://github.com/tenderlove/psych/issues/156
-Sat Oct 11 18:46:50 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+ * test/psych/test_string.rb: test for change
- * include/ruby/intern.h (rb_fd_select): declare struct timeval, or the
- struct gets local to the function in C99.
+Wed Aug 28 17:20:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (#include): add nacl/stat.h for PNaCl.
- (utimes): added a declaration for PNaCl.
- (stat_atimespec): stat::st_atimensec is long long but
- timespec::tv_nsec is long in PNaCl.
- (stat_mtimespec, stat_ctimespec): ditto.
- (rb_group_member): disable getgroups unless HAVE_GETGROUPS.
- (eaccess): unify the fallback to generic defined(USE_GETEUID).
+ * thread_pthread.c (hpux_attr_getstackaddr): basic support for the
+ get_stack() under HP-UX. based on the patch by michal@rokos.cz
+ (Michal Rokos) at [ruby-core:56645]. [Feature #8793]
- * io.c: include sys/time.h for struct timeval.
- (rb_close_before_exec): nothing we can do if F_GETFD is not
- available.
- (ioctl): pnacl newlib actually doesn't have ioctl.
+Wed Aug 28 11:24:20 2013 Michal Rokos <michal@rokos.cz>
- * process.c (maxgroups): it is used iff
- defined(_SC_NGROUPS_MAX) || defined(NGROUPS_MAX) but not
- defined(HAVE_GETGROUPS) || defined(HAVE_SETGROUPS).
- (obj2gid): fail unless the object is a Fixnum if getgrnam is not
- available.
- (disable_child_handler_fork_child): sigaction is not available in
- PNaCl newlib.
+ * configure.in (sys/pstat.h): fix missing header check for
+ missing/setproctitle.c on HP-UX. [ruby-core:56644] [Bug #8792]
- * configure.in (warnflags, strict_warnflags): avoid -ansi for strlcpy.
- (rb_cv_gcc_atomic_builtins): also check
- __atomic_or_etch because it is used in ruby_atomic.h.
- (rb_cv_gcc_sync_builtins): ditto.
- (HAVE_GETGRNAM): added.
+Wed Aug 28 04:54:33 2013 Eric Hodel <drbrain@segment7.net>
-Sat Oct 11 15:32:08 2014 Eric Wong <e@80x24.org>
+ * ext/openssl/ossl_ssl.c (ossl_ssl_read): Replace duplicate
+ wait_writable with wait_readable.
- * compile.c (iseq_build_from_ary_exception): move RB_GC_GUARD
- (iseq_build_from_ary_body): use PRIsVALUE instead of RB_GC_GUARD
+Tue Aug 27 17:18:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 11 14:57:08 2014 Eric Wong <e@80x24.org>
+ * lib/timeout.rb (Timeout#timeout): skip rescue clause only when no
+ exception class is given.
- * string.c (rb_str_intern): remove unnecessary RB_GC_GUARD
+Tue Aug 27 17:02:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 11 13:47:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * io.c (copy_stream_body): should write in binary mode. based on a
+ patch by godfat (Lin Jen-Shin) at [ruby-core:56556].
+ [ruby-core:56518] [Bug #8767]
- * parse.y (remove_duplicate_keys): remove duplicate literal keys,
- i.e., symbols and strings. [ruby-core:65368] [Bug #10315]
+Tue Aug 27 17:02:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c (kwmerge_i): override existing keys by new keys.
- [ruby-core:65368] [Bug #10315]
+ * io.c (copy_stream_body): move common open flags.
- * parse.y (assocs): concatenate splatted literal hashes. the
- former key has precedence even if duplicated literal keys
- follow. [ruby-core:65368] [Bug #10315]
+Tue Aug 27 16:56:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 11 12:27:03 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+ * enumerator.c (enumerator_size): use rb_check_funcall() instead of
+ respond_to? and call.
- * configure.in (RUBY_NACL): automatically locate pnacl-clang.
- (RUBY_PLATFORM): pnacl instead of le32-nacl.
+ * enumerator.c (enumerator_each): ensure that argument array size
+ does not overflow at appending.
-Sat Oct 11 11:27:14 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+Tue Aug 27 16:46:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c: fix issues in the last two commits. don't disable cloexec for
- platforms other than NativeClient.
+ * array.c (rb_ary_index, rb_ary_rindex): use optimized equality to
+ improve performance. [Feature #8820]
- * ChangeLog: ditto. add entries for the last two commits.
+ * vm_insnhelper.c (rb_equal_opt): optimized equality function.
-Sat Oct 11 11:12:00 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+Tue Aug 27 16:11:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * signal.c (install_signalhandler, init_sigchld): allow failure because it
- always fails with ENOSYS on NaCl.
+ * vm_insnhelper.c (opt_eq_func): use RBASIC_CLASS() instead of HEAP_CLASS_OF().
-Sat Oct 11 11:11:53 2014 Yuki Yugui Sonoda <yugui@yugui.jp>
+ * insns.def (opt_plus, opt_minus, opt_mult, opt_div, opt_mod, opt_lt),
+ (opt_gt, opt_ltlt, opt_aref, opt_aset, opt_length, opt_size),
+ (opt_empty_p, opt_succ): ditto.
- * configure.in (RUBY_NACL and others): merge patch from naclports. Supports PNaCl.
+Tue Aug 27 16:08:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * dln.c: ditto. replace the old hacky dynamic loading over HTTP with nacl_io.
+ * vm_eval.c (rb_check_funcall, rb_check_funcall_with_hook): constify
+ argv.
- * file.c: ditto. tentatively use access(2) instead of eaccess.
- (rb_file_load_ok): weaken with attribute but not by postprocess.
+Tue Aug 27 13:03:33 2013 Koichi Sasada <ko1@atdot.net>
- * io.c: ditto.
- (socket.h): now NaCl has socket.h
- (flock): disable here instead of nacl/ioctl.h
+ * ext/stringio/stringio.c (strio_read_nonblock): declare local
+ variables at the first of function.
- * nacl/GNUmakefile.in: ditto.
- (CC, LD, NM, AR, AS, RANLIB, OBJDUMP, OBJCOPY):
- respect path to them if they are absolute.
- This helps naclports to build ruby in their source tree.
- (PROGRAM_NMF, .SUFFIXES): support .pnexe for PNaCl.
- (ruby.o, file.o): move the hack to attributes in ruby.c and file.c
+Tue Aug 27 11:51:37 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * nacl/ioctl.h: ditto. removed. move the hack to io.c.
+ * enumerator.c: Allow Enumerator size argument to be any callable.
+ Patch by Avdi Grimm. [bug #8641] [ruby-core:56032] [fix GH-362]
- * nacl/nacl-config.rb: ditto. support arm, pnacl and others.
+ * test/ruby/test_enumerator.rb: Test for above
- * nacl/pepper_main.c: ditto. support build in a naclports tree.
+Tue Aug 27 11:46:31 2013 Koichi Sasada <ko1@atdot.net>
- * ruby.c (rb_load_file): ditto. weaken with attribute but not by postprocess.
+ * gc.c (gc_profile_clear): do rest_sweep() before clearing
+ profile.current_record.
-Sat Oct 11 09:32:00 2014 Zachary Scott <e@zzak.io>
+Tue Aug 27 07:35:05 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/socket/unixsocket.c: [DOC] Fix example to render in HTML
- properly, with a patch by @eval [Fixes GH-733]
- https://github.com/ruby/ruby/pull/733
+ * io.c (io_read_nonblock): support non-blocking reads without raising
+ exceptions. As in: `io.read_nonblock(size, exception: false)`
+ [ruby-core:38666] [Feature #5138]
+ * ext/openssl/ossl_ssl.c (ossl_ssl_read_internal): ditto
+ * ext/stringio/stringio.c (strio_sysread): ditto
+ * io.c (rb_io_write_nonblock): support non-blocking writes without
+ raising an exception.
+ * ext/openssl/ossl_ssl.c (ossl_ssl_write_internal): ditto
+ * test/openssl/test_pair.rb (class OpenSSL): tests
+ * test/ruby/test_io.rb (class TestIO): ditto
+ * test/socket/test_nonblock.rb (class TestSocketNonblock): ditto
+ * test/stringio/test_stringio.rb (class TestStringIO): ditto
-Sat Oct 11 04:14:41 2014 Kir Shatrov <shatrov@me.com>
+Tue Aug 27 05:24:34 2013 Eric Hodel <drbrain@segment7.net>
- * lib/open-uri.rb (OpenURI::Options): add :open_timeout default
- * (def OpenURI.open_http): check :open_timeout option
- * (module OpenURI): rdoc for :open_timeout
- * test/open-uri/test_open-uri.rb (test_open_timeout): new test
- [Feature #10361]
+ * lib/rubygems: Import RubyGems 2.1.0 Release Candidate
+ * test/rubygems: ditto.
-Fri Oct 10 11:27:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 26 16:24:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * include/ruby/io.h (rb_io_mode_flags, rb_io_modenum_flags):
- deprecate old macros for compatibility for ruby 1.8 and older.
+ * parse.y (parser_nextc): warn carriage return in middle of line.
+ [ruby-core:56240] [Feature #8699]
-Thu Oct 9 23:31:47 2014 Naohisa Goto <ngotogenome@gmail.com>
+Mon Aug 26 15:27:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * bignum.c (absint_numwords_generic): set an array element after
- definition of a variable to fix compile error with older version
- of fcc (Fujitsu C Compiler) 5.6 on Solaris 10 on Sparc.
- [Bug #10350] [ruby-dev:48608]
+ * lib/timeout.rb (Timeout#timeout): should not be caught by rescue
+ clause. [Bug #8730]
-Thu Oct 9 16:15:26 2014 Eric Wong <e@80x24.org>
+Mon Aug 26 14:44:26 2013 Koichi Sasada <ko1@atdot.net>
- * ext/-test-/st/foreach/extconf.rb: new file
- * ext/-test-/st/foreach/foreach.c: ditto
- * test/-ext-/st/test_foreach.rb: ditto
- [Feature #10321]
+ * array.c (rb_ary_splice): use RARRAY_PTR_USE() without WB because
+ there are not new relations.
-Thu Oct 9 12:40:28 2014 Eric Wong <e@80x24.org>
+ * enum.c (enum_sort_by): ditto.
- * benchmark/bm_hash_aref_sym*.rb: force static symbols
+ * struct.c (setup_struct): use RARRAY_RAWPTR().
-Thu Oct 9 12:38:28 2014 Eric Wong <e@80x24.org>
+ * vm_eval.c (yield_under): ditto.
- * hash.c (rb_any_hash): remove unnecessary dsym check
+ * ext/pathname/pathname.c (path_entries): use RARRAY_AREF().
-Thu Oct 9 07:20:30 2014 Rei Odaira <Rei.Odaira@gmail.com>
+ * ext/pathname/pathname.c (path_s_glob): ditto.
- * missing/setproctitle.c: Avoid invalidating argv[1], argv[2],
- etc. until the first call to Process.setproctitle, because
- the ps command of AIX refers to the argv array.
- [Bug #10090]
+Mon Aug 26 13:11:10 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Thu Oct 9 00:53:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (ary_ensure_room_for_push): fix typo in r42658.
- * dir.c (dir_s_aref): fix rdoc. `Dir.glob` allows an array but
- `Dir[]` not. the former accepts an optional parameter `flags`,
- while the latter accepts arbitrary number of arguments but no
- `flags`. [ruby-core:65265] [Bug #10294]
+Mon Aug 26 12:37:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 8 21:44:10 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * template/sizes.c.tmpl: generate automatically by extracting
+ RUBY_CHECK_SIZEOF from configure.in.
- * ext/win32ole/win32ole_variable.c: use typed data.
+Mon Aug 26 10:16:59 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Wed Oct 8 16:36:47 2014 gogo tanaka <mail@tanakakazuki.com>
+ * process.c (gcd_timetick_int): Renamed from gcd_timtick_int.
- * test/ruby/test_syntax.rb: added syntax tests of underscore
- arguments. [Feature #10340][ruby-core:65496]
+Sun Aug 25 21:02:15 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 8 07:42:39 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * sizes.c (Init_sizes): Define the size of clock_t.
- * lib/uri/generic.rb (URI#inspect): remove Object id.
- URI is considered that it doesn't require id.
+Sun Aug 25 01:47:47 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 8 05:22:42 2014 Eric Wong <e@80x24.org>
+ * bignum.c (BARY_SHORT_MUL): Renamed from BARY_MUL1.
+ (bary_short_mul): Renamed from bary_mul1.
- * ext/etc/etc.c (etc_systmpdir): set default tmplen correctly
- Fixup r47826
+Sat Aug 24 10:35:09 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 8 05:16:32 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * process.c (rb_clock_gettime): The emulated clock names changed.
- * lib/matrix.rb: Add @- and @+ for Matrix and Vector.
- patch by gogo tanaka [#10068] [#10069]
+Fri Aug 23 22:22:07 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 8 04:58:48 2014 John Bachir <j@jjb.cc>
+ * process.c (rb_clock_gettime): Add a cast to fix compile error by
+ -Werror,-Wshorten-64-to-32.
- * bootstraptest/test_io.rb (assert_finish):
- normalize rescue for Timeout::Error
- * lib/net/ftp.rb (Net#read_timeout): ditto for doc
- * lib/resolv.rb (Resolv::ResolvTimeout): ditto for subclass
- * lib/webrick/httprequest.rb (_read_data): ditto for rescue
- * sample/timeout.rb (p timeout): ditto for call
- * test/drb/drbtest.rb (test_06_timeout): ditto
- * test/ruby/test_readpartial.rb (test_open_pipe): ditto
- * test/thread/test_queue.rb (test_queue_thread_raise): ditto
- * thread.c (rb_thread_s_handle_interrupt): ditto for doc
- [ruby-core:65481] [misc #10339]
+Fri Aug 23 22:12:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 8 04:38:29 2014 Rei Odaira <Rei.Odaira@gmail.com>
+ * process.c (rb_intern): no symbol cache while initialization.
- * test/ruby/test_process.rb (TestProcess#test_setsid): AIX
- does not allow Process::getsid(pid) when pid is in a
- different session.
+Fri Aug 23 22:07:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 8 04:33:04 2014 Rei Odaira <Rei.Odaira@gmail.com>
+ * configure.in (clock_t): needs time.h.
- * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_encoding):
- On AIX, locale_charmap is ISO-8859-1 with LANG=C. This means
- the source encoding of stdin is ISO-8859-1, so "invalid
- multibyte char" error does not occur.
+Fri Aug 23 21:37:28 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 8 04:30:29 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * process.c (reduce_factors): New function.
+ (timetick2dblnum): Use reduce_factors.
+ (timetick2integer): Ditto.
+ (make_clock_result): Follow the above change.
+ (rb_clock_gettime): Ditto.
- * lib/matrix.rb: Add Matrix#laplace_expansion.
- patch by gogo tanaka [#10073]
+Fri Aug 23 21:00:55 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 8 04:29:21 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * process.c (timetick_int_t): Renamed from timetick_giga_count_t.
+ (gcd_timtick_int): Renamed from gcd_ul and make the arguments
+ timetick_giga_count_t.
+ (reduce_fraction): Make the arguments timetick_int_t.
+ (timetick2integer): Ditto.
+ (make_clock_result): Ditto.
+ (timetick2dblnum): Fix the return type.
+ (rb_clock_gettime): Use timetick_int_t.
- * lib/matrix.rb: Add Vector.basis.
- Based on patch by gogo tanaka [#10072]
+Fri Aug 23 20:50:40 2013 Tanaka Akira <akr@fsij.org>
-Tue Oct 7 23:40:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (gcd_ul): New function.
+ (reduce_fraction): Ditto.
+ (reduce_fraction): Ditto.
+ (timetick2dblnum): Ditto.
+ (timetick2integer): Ditto.
+ (make_clock_result): Use timetick2dblnum and timetick2integer.
+ (rb_clock_gettime): Follow the make_clock_result change.
- * signal.c (rb_f_kill): get rid of deadlock as unhandled and
- discarded signals do not make interrupt_cond signaled.
- based on the patch by Kazuki Tsujimoto at [ruby-dev:48606].
- [Bug #9820]
+Fri Aug 23 18:39:04 2013 Koichi Sasada <ko1@atdot.net>
-Tue Oct 7 22:43:44 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * array.c (ary_make_shared): shared ary as shady. Need more effort to
+ make it normal object.
- * ext/win32ole/win32ole_method.c: use typed data.
+ * array.c (rb_ary_modify): use RARRAY_PTR_USE() without WB because
+ there are not new relations.
-Tue Oct 7 21:47:05 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * array.c (ary_ensure_room_for_unshift): use RARRAY_RAWPTR() because
+ there are not new relations.
- * ext/win32ole/win32ole_param.c: refactoring.
+Fri Aug 23 11:25:57 2013 Koichi Sasada <ko1@atdot.net>
-Tue Oct 7 21:40:17 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * array.c: introduce ARY_SHARED_OCCUPIED(shared).
- * ext/win32ole/win32ole_method.c: refactoring. add
- olemethod_data_get_struct to wrap Data_Get_Struct.
- * ext/win32ole/win32ole_method.h: ditto.
+Fri Aug 23 11:07:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/win32ole/win32ole_param.c (oleparam_ole_param):
- call olemethod_data_get_struct instead of Data_Get_Struct.
+ * win32/Makefile.sub (config.h): now SIZEOF_CLOCK_T is needed for
+ unsigned_clock_t.
-Tue Oct 7 11:17:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Aug 22 22:01:04 2013 Tanaka Akira <akr@fsij.org>
- * ext/etc/etc.c (etc_systmpdir): try user temporary directory by
- confstr() on Mac OS X.
- c.f. http://www.opensource.apple.com/source/ruby/ruby-104/patches/ext_etc_etc.c.diff
+ * process.c (rb_clock_gettime): Strip "s" from unit names.
-Tue Oct 7 10:48:17 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Aug 22 20:14:59 2013 Tanaka Akira <akr@fsij.org>
- * configure.in (struct stat.st_size): prefer off_t over int, long,
- and so on. inspired by
- http://www.opensource.apple.com/source/ruby/ruby-104/patches/config.h.ed
+ * process.c (unsigned_clock_t): Defined.
+ (rb_clock_gettime): Consider clock_t overflow for
+ ISO_C_CLOCK_BASED_CLOCK_PROCESS_CPUTIME_ID.
-Tue Oct 7 10:37:39 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: Check the size of clock_t.
- * configure.in (RUBY_UNIVERSAL_ARCH): fix missing quoting
- brackets. incorporated from
- http://www.opensource.apple.com/source/ruby/ruby-104/patches/configure.diff
+Thu Aug 22 16:22:48 2013 Koichi Sasada <ko1@atdot.net>
-Mon Oct 6 23:34:42 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * compile.c (build_postexe_iseq): fix to setup the local table.
- * ext/win32ole/win32ole_param.c: use typed data.
+Thu Aug 22 15:42:43 2013 Koichi Sasada <ko1@atdot.net>
-Mon Oct 6 22:37:09 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (rb_iseq_compile_node): accept NODE_IFUNC to support
+ custom compilation.
- * symbol.h (struct RSymbol): move from internal.h.
+ * compile.c (NODE_POSTEXE): compile to
+ "ONCE{ VMFrozenCore::core#set_postexe{...} }" with a new custom
+ compiler `build_postexe_iseq()'.
-Mon Oct 6 21:43:03 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm.c (m_core_set_postexe): remove parameters (passed by a block).
- * error.c: update exception tree. [DOC]
- reported by @hemge via twitter.
+Thu Aug 22 06:54:15 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 6 18:43:03 2014 Rei Odaira <Rei.Odaira@gmail.com>
+ * process.c (rb_clock_gettime): Change emulation symbols for
+ Process.clock_gettime.
- * configure.in: Fix typo. [Bug #9914]
+Thu Aug 22 06:24:54 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 6 16:23:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (make_clock_result): Extracted from rb_clock_gettime.
- * signal.c (rb_f_kill): should not ignore signal unless the
- default handler is registered. [ruby-dev:48592] [Bug #9820]
+Wed Aug 21 22:30:51 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 6 16:07:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (rb_clock_gettime): clock() based CLOCK_PROCESS_CPUTIME_ID
+ emulation implemented.
- * test/ruby/test_string.rb (test_LSHIFT_neary_long_max): enable
- only on platforms where string size range is smaller than memory
- space. this test does not make sense but just wastes memory and
- time on other platforms, as it is hardly possible that a string
- size becomes neary LONG_MAX if long size equals pointer size.
- [ruby-core:65410] [Bug #10325]
+Wed Aug 21 21:02:37 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 6 11:21:21 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * process.c (rb_proc_times): Use RB_GC_GUARD to guard objects from GC.
- * tool/unicode_norm_gen.rb: Adding/tweaking comments.
+Wed Aug 21 20:33:01 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 6 10:57:57 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * process.c (get_clk_tck): Extracted from rb_proc_times.
+ (rb_clock_gettime): times() based CLOCK_PROCESS_CPUTIME_ID emulation
+ is implemented.
- * tool/unicode_norm_gen.rb: Adjusted directory paths.
+Wed Aug 21 19:31:48 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 6 10:27:27 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * process.c: POSIX_GETTIMEOFDAY_CLOCK_REALTIME is renamed to
+ SUS_GETTIMEOFDAY_CLOCK_REALTIME.
- * tool/unicode_norm_gen.rb: Data generation script imported from
- https://github.com/duerst/eprun/blob/master/lib/generate.rb
+Wed Aug 21 19:17:46 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 6 10:15:15 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * process.c (rb_clock_gettime): CLOCK_PROCESS_CPUTIME_ID emulation
+ using getrusage is implemented.
- * tool/downloader.rb: Adjust example in documentation for
- Downloader.download.
+Wed Aug 21 17:34:27 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 6 10:07:07 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * gc.c (getrusage_time): Fallback clock_gettime to getrusage when
+ clock_gettime fails.
+ Reported by Eric Saxby. [ruby-core:56762] [Bug #8805]
- * lib/unicode_normalize: New folder for Unicode normalization
- functionality
+Wed Aug 21 02:32:32 2013 Koichi Sasada <ko1@atdot.net>
-Sun Oct 5 11:04:13 2014 Luiz Angelo Daros de Luca <luizluca@gmail.com>
+ * insns.def: fix regexp's once option behavior.
+ fix [ruby-trunk - Bug #6701]
- * ext/digest/{md5,rmd160,sha1,sha2}/extconf.rb: configure OpenSSL
- only if bundled libraries is not used, so that OpenSSL is not
- linked unnecessarily. [ruby-core:65404] [Bug #10324]
+ * insns.def: remove `onceinlinecache' and introduce `once' instruction.
+ `once' doesn't use `setinlinecache' insn any more.
-Sun Oct 5 10:39:11 2014 Luiz Angelo Daros de Luca <luizluca@gmail.com>
+ * vm_core.h: `union iseq_inline_storage_entry' to store once data.
- * ext/digest/rmd160/extconf.rb: fix transform function name to
- check. [ruby-core:65091] [Bug #10252]
+ * compile.c: catch up above changes.
-Sun Oct 5 05:46:00 2014 Eric Wong <e@80x24.org>
+ * iseq.c: ditto.
- * ext/zlib/zlib.c (zstream_mark, zstream_free): update signature
- (gzfile_mark, gzfile_free): ditto
- (zstream_memsize): new function for rb_data_type->dsize
- (gzfile_memsize): ditto
- (zstream_data_type, gzfile_data_type): new data types
- (zstream_new): Data_Make_Struct => TypedData_Make_Struct
- (gzfile_new): ditto
- (get_zstream, get_gzfile): Data_Get_Struct => TypedData_Get_Struct
- (rb_zstream_flush_next_in): ditto
- (rb_zstream_flush_next_out): ditto
- (rb_zstream_avail_out): ditto
- (rb_zstream_avail_in): ditto
- (rb_zstream_closed_p): ditto
- (rb_deflate_initialize): ditto
- (rb_deflate_init_copy): ditto
- (rb_inflate_initialize): ditto
- (gzfile_ensure_close): ditto
- (rb_gzfile_closed_p): ditto
- (rb_gzfile_path): ditto
- (rb_gzwriter_initialize): ditto
- (rb_gzreader_initialize): ditto
- (rb_gzreader_unused): ditto
- [ruby-core:65377] [Feature #10319]
+ * vm.c, vm_insnhelper.c: ditto. fix `m_core_set_postexe()' which
+ is depend on `onceinlinecache' insn.
-Sat Oct 4 16:24:41 2014 Rei Odaira <Rei.Odaira@gmail.com>
+ * test/ruby/test_regexp.rb: add tests.
- * test/test_syslog.rb (TestSyslog#test_log): In AIX, each output
- line of LOG_PERROR to stderr has an additional empty line appended,
- so skip that line.
+ * iseq.c: ISEQ_MINOR_VERSION to 1 (should increment major?)
-Sat Oct 4 16:05:49 2014 Rei Odaira <Rei.Odaira@gmail.com>
+Wed Aug 21 02:30:15 2013 Koichi Sasada <ko1@atdot.net>
- * test/socket/test_unix.rb (TestSocket_UNIXSocket#test_too_long_path):
- sockaddr_un.sun_path in AIX is defined as char[1024],
- so "a" * 300 is not too long. "a" * 3000 would be enough.
+ * gc.c (rb_gcdebug_print_obj_condition): add printing information.
-Sat Oct 4 09:12:03 2014 Zachary Scott <e@zzak.io>
+Tue Aug 20 13:38:00 2013 Naohisa Goto <ngotogenome@gmail.com>
- * ext/win32ole/sample/example*.rb: Add wait input to quit for examples
- with patch provided by @windwiny [Fixes GH-705]
- https://github.com/ruby/ruby/pull/705
+ * test/gdbm/test_gdbm.rb: skip TestGDBM#test_s_open_lock on Solaris.
+ On Solaris (and platforms which do not have flock and have lockf),
+ with GDBM 1.10, gdbm_open(3) blocks when opening already locked
+ gdbm file. [Bug #8790] [ruby-dev:47631]
-Sat Oct 4 09:08:18 2014 Zachary Scott <e@zzak.io>
+Tue Aug 20 02:32:52 2013 Zachary Scott <e@zzak.io>
- * ext/win32ole/win32ole.c: [DOC] Fix typo in :nodoc: reported by
- @windwiny to [Fix GH-705] https://github.com/ruby/ruby/pull/705
+ * lib/test/: [DOC] Document Test::Unit, hide most submodules and
+ classes from rdoc. Since lib/test is only present as a compatibility
+ layer with the legacy test suite many test/unit users will be using
+ minitest or the test/unit gem instead. It is recommended to use one
+ of these alternatives for writing new tests.
- * ext/pty/pty.c: ditto
+ This patch was based on a patch submitted by Steve Klabnik.
+ [ruby-core:56694] [Bug #8778]
-Sat Oct 4 08:59:45 2014 Zachary Scott <e@zzak.io>
+Tue Aug 20 02:10:19 2013 Zachary Scott <e@zzak.io>
- * ext/openssl/ossl_rand.c: [DOC] Add call signature for pseudo_bytes
- and random_bytes, wrap lines at 80 chars, and remove useless
- comments.
+ * lib/rss/rss.rb: [DOC] Document for constants by Steve Klabnik
+ [ruby-core:56705] [Bug #8798]
+
+Tue Aug 20 02:01:10 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rss/xmlparser.rb: [DOC] Hide legacy constant from rdoc
+ Patch by Steve Klabnik [ruby-core:56708] [Bug #8799]
+
+Tue Aug 20 01:52:05 2013 Zachary Scott <e@zzak.io>
+
+ * ext/socket/unixserver.c: [DOC] Document #accept
+ * ext/socket/tcpserver.c: ditto
+ * ext/socket/udpsocket.c: [DOC] Fix indentation of documentation
+ * ext/socket/socket.c: ditto
+ Patches by David Rodr'iguez [ruby-core:56734] [Bug #8802]
+
+Tue Aug 20 01:19:22 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: Define ac_cv_func_clock_gettime to yes for mingw*.
+
+Mon Aug 19 21:31:35 2013 Tanaka Akira <akr@fsij.org>
+
+ * include/ruby/defines.h: Fix a compilation error with
+ i586-mingw32msvc-gcc of gcc-mingw32 package on Debian squeeze.
+ ruby/missing.h should be included before include/ruby/win32.h
+ because struct timespec, used in the clock_gettime declaration in
+ include/ruby/win32.h, is defined in ruby/missing.h instead of
+ system headers.
+
+Mon Aug 19 20:55:12 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c: fix around GC_DEBUG.
+
+ * gc.c (RVALUE::line): should be VALUE. On some environment
+ (such as mswin64), `int' introduces alignment mismatch.
+
+ * gc.c (newobj_of): add an assertion to check VALUE alignment.
+
+ * gc.c (aligned_malloc): `&' is low priority than `=='.
+
+ * gc.c: define GC_DEBUG everytime and use it as value 0 or 1.
+
+Mon Aug 19 17:43:44 2013 Koichi Sasada <ko1@atdot.net>
+
+ * test/ruby/test_fiber.rb: collect garbage fibers immediately.
+
+Mon Aug 19 17:41:49 2013 Koichi Sasada <ko1@atdot.net>
+
+ * test/profile_test_all.rb: add `failed?' information.
+
+Mon Aug 19 17:00:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * process.c (retry_fork): retry with GC if ENOMEM occurred, to free
+ swap/kernel space.
+
+Mon Aug 19 13:28:47 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * include/ruby/win32.h (CLOCK_MONOTONIC): typo.
+
+ * win32/win32.c: removed duplicated declarations.
+
+Mon Aug 19 13:03:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (clock_gettime): should not overwrite cache variable
+ with different condition. otherwise -lrt is not linked and the link
+ fails, after reconfig.
+
+Mon Aug 19 12:56:49 2013 Tanaka Akira <akr@fsij.org>
+
+ * process.c (Init_process): Add constants: CLOCK_REALTIME_ALARM and
+ CLOCK_BOOTTIME_ALARM.
+
+Sun Aug 18 20:17:41 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * variable.c, vm_method.c: remove dead code.
+
+ * test/ruby/test_fiber.rb, test/ruby/test_thread.rb:
+ change accordingly.
+
+Sun Aug 18 19:32:26 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * error.c, file.c, gc.c, hash.c, thread.c, variable.c, vm_eval.c, bin/erb:
+ $SAFE=4 is obsolete.
+
+Sun Aug 18 14:30:47 2013 Tanaka Akira <akr@fsij.org>
+
+ * process.c (rb_clock_gettime): Rename POSIX_TIME_CLOCK_REALTIME to
+ ISO_C_TIME_CLOCK_REALTIME.
+
+Sun Aug 18 14:22:45 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: Revert r42604. It causes linking librt on systems
+ with newer glibc uselessly.
+
+Sun Aug 18 13:18:38 2013 Tanaka Akira <akr@fsij.org>
+
+ * process.c (Init_process): Add constants: CLOCK_REALTIME_COARSE,
+ CLOCK_MONOTONIC_COARSE and CLOCK_BOOTTIME.
+
+Sun Aug 18 12:41:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (clock_gettime): need to check with -lrt prior to check
+ for the function only. otherwise -lrt is not linked and the link
+ fails, when ac_cv_func_clock_gettime is cached as yes.
+
+Sun Aug 18 10:05:12 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big2str1): Make an expression more explicit.
+
+Sun Aug 18 03:18:45 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big2str1): Use power_level instead of bitsize(xn).
+
+Sun Aug 18 00:44:58 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (BIGDIVREM_EXTRA_WORDS): Redefine to 1.
+ (bigdivrem_num_extra_words): Removed.
+ (bigdivrem_normal): Simplified.
+ (big2str_karatsuba): Ditto.
+
+Sat Aug 17 23:25:19 2013 Benoit Daloze <eregontp@gmail.com>
+
+ * test/ruby/test_time.rb: use the in_timezone() helper
+ and define it at the top with other helpers.
+
+Sat Aug 17 22:20:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * time.c (time_mload): ignore auxiliary data, offset and zone, if
+ invalid. [ruby-core:56648] [Bug #8795]
+
+Sat Aug 17 20:11:49 2013 Benoit Daloze <eregontp@gmail.com>
+
+ * process.c: [DOC] MACH_ABSOLUTE_TIME_CLOCK_MONOTONIC is an
+ available emulation for a monotonic clock on Darwin.
+ https://developer.apple.com/library/mac/qa/qa1398/_index.html
+
+Fri Aug 16 18:12:05 2013 Koichi Sasada <ko1@atdot.net>
+
+ * test/profile_test_all.rb: fix typo.
+
+Fri Aug 16 18:09:20 2013 Koichi Sasada <ko1@atdot.net>
+
+ * test/profile_test_all.rb: remove space characters from test names.
+
+Fri Aug 16 17:32:02 2013 Koichi Sasada <ko1@atdot.net>
+
+ * test/profile_test_all.rb: refactoring memory profiling tool for
+ test-all.
+ Add profiling targets /proc/meminfo and /proc/self/status.
+
+ * test/runner.rb: accept other than 'true'.
+
+Fri Aug 16 11:23:35 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * file.c (rb_file_size, rb_file_flock): improve performance of Windows.
+
+ * file.c (rb_file_truncate): removed unnecessary #ifdef.
+
+ * test/test_file.rb (TestFile#test_truncate_size): added an assertion
+ for File#size.
+
+Fri Aug 16 10:07:59 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigdivrem_single1): Renamed from bigdivrem_single. Add
+ x_higher_bdigit argument.
+ (bigdivrem_single): Just call bigdivrem_single1.
+ (bigdivrem_restoring): Use bigdivrem_single1 to avoid memmove.
+
+Fri Aug 16 09:17:00 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bary_small_rshift): Specify the higher BDIGIT instead of
+ sign bit.
+ (big_shift3): Follow the above change.
+
+Fri Aug 16 02:20:39 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bary_mul_toom3): Reduce a branch.
+
+Fri Aug 16 02:14:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * process.c (rb_clock_gettime): add CLOCK_MONOTONIC support on OS X.
+ http://developer.apple.com/library/mac/qa/qa1398/_index.html
+ [Feature #8658]
+
+Fri Aug 16 01:37:43 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigdivrem_single): Use shift when y is a power of two.
+
+Fri Aug 16 01:09:33 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigdivrem_restoring): Use bigdivrem_single if non-topmost
+ BDIGITs of y are zero.
+
+Fri Aug 16 00:33:12 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big2str1): Truncate topmost zeros of x.
+
+Fri Aug 16 00:00:57 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bary_divmod): Simplify an expression.
+
+Thu Aug 15 23:26:12 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigdivrem_normal): Remove a local variable.
+
+Thu Aug 15 23:08:32 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_karatsuba): Use bigdivrem_restoring directly to
+ reduce working buffer and memory copy.
+ (rb_big2str1): Allocate working buffer for big2str_karatsuba here.
+
+Thu Aug 15 20:51:29 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * io.c, internal.h (rb_io_flush_raw): new function to select calling
+ fsync() (on Windows).
+
+ * io.c (rb_io_flush_raw): use above function.
+
+ * file.c (rb_file_truncate): use above function.
+
+ * test/ruby/test_file.rb (TestFile#test_truncate_size): test for
+ above changes.
+
+Thu Aug 15 18:39:31 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * win32/win32.c (clock_gettime): improve precision when freq is less
+ than and nearly equals 10**9.
+
+Thu Aug 15 17:43:15 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (gc_lazy_sweep): remove heap_increment() here because heap_inc
+ may be 0.
+
+Thu Aug 15 16:59:56 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * io.c (rb_io_rewind): remove fsync() for Windows to improve the
+ performance.
+
+Thu Aug 15 16:30:23 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * test/fileutils/test_fileutils.rb (TestFileUtils#test_rmdir):
+ FileUtils.rmdir ignores Errno::ENOTEMPTY, so, in such cases, this
+ assertion is nonsense.
+
+Thu Aug 15 15:49:35 2013 Tanaka Akira <akr@fsij.org>
+
+ * process.c (rb_clock_gettime): [DOC] FreeBSD 7.1 supports
+ CLOCK_THREAD_CPUTIME_ID.
+ http://www.freebsd.org/releases/7.1R/relnotes.html
+
+Thu Aug 15 14:30:23 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * include/ruby/win32.h, win32/Makefile.sub, win32/win32.c
+ (clock_gettime): [experimental] emulates clock_gettime(2) of posix.
+
+Thu Aug 15 02:32:40 2013 Zachary Scott <e@zzak.io>
+
+ * hash.c (rb_hash_aset): [DOC] Document key dup patch by @kachick
+ [Fixes GH-382] https://github.com/ruby/ruby/pull/382
+
+Wed Aug 14 14:28:39 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * proc.c (rb_mod_define_method): now they return the symbols of the
+ defined methods, not the methods/procs themselves.
+ [ruby-dev:42151] [Feature #3753]
+
+ * NEWS: documents about above change and def-expr (see r42337).
+
+ * test/ruby/test_module.rb: tests about above change.
+
+Wed Aug 14 00:51:14 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigdivrem_restoring): xn argument removed.
+ (bigdivrem_normal): Follow the above change.
+
+Wed Aug 14 00:18:39 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big_div_struct): Remove xn and j field. Add zn field.
+ (bigdivrem1): Follow the above change.
+ (bigdivrem_restoring): Ditto.
+
+Tue Aug 13 23:38:17 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big_div_struct): ynzero field removed.
+ (bigdivrem1): Follow the above change.
+ (bigdivrem_restoring): Ditto.
+
+Tue Aug 13 23:01:16 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigdivrem_restoring): Extracted from bigdivrem_normal.
+
+Tue Aug 13 22:12:59 2013 Kenichi Kamiya <kachick1@gmail.com>
+
+ * random.c (rb_random_ulong_limited): coerce before check negative.
+ [Fixes GH-379]
+
+Tue Aug 13 21:52:15 2013 Kenichi Kamiya <kachick1@gmail.com>
+
+ * object.c (Init_Object): undef Module#prepend_features on Class, as
+ well as Module#append_features. [Fixes GH-376]
+
+ * test_class.rb: Added test for above. And ensure type checking
+ on similar methods as module_function.
+
+Tue Aug 13 08:52:18 2013 Zachary Scott <e@zzak.io>
+
+ * doc/syntax/literals.rdoc: [DOC] String literal concat by @cknadler
+ [Fixes GH-380] https://github.com/ruby/ruby/pull/380
+
+Mon Aug 12 23:07:21 2013 Masaya Tarui <tarui@ruby-lang.org>
+
+ * gc.c (gc_marks_test): inhibit gc for st's operation.
+
+Mon Aug 12 15:59:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (parser_whole_match_p): treat CR in middle of a line as a
+ mere whitespace.
+
+Mon Aug 12 15:16:58 2013 Koichi Sasada <ko1@atdot.net>
+
+ * class.c (rb_prepend_module): make T_ICLASS object shady because
+ this T_ICLASS object seems to share method table with other class
+ objects. It was causes WB miss.
+ TODO: need to know the data structure.
+
+ * test/ruby/test_module.rb: add a test for WB miss.
+
+Mon Aug 12 13:47:54 2013 Zachary Scott <e@zzak.io>
+
+ * process.c: [DOC] RDoc formatting of Process.clock_gettime
+
+Mon Aug 12 13:29:09 2013 Zachary Scott <e@zzak.io>
+
+ * lib/yaml/dbm.rb: [DOC] Document call-seq for YAML::DBM
+
+Mon Aug 12 12:57:26 2013 Zachary Scott <e@zzak.io>
+
+ * ext/dbm/extconf.rb: [DOC] Hide from RDoc
+ Some libraries might want to document extconf.rb so RDoc treats it
+ like any other ruby program. However, DBM users shouldn't care about
+ these methods.
+
+Mon Aug 12 12:53:39 2013 Zachary Scott <e@zzak.io>
+
+ * ext/dbm/dbm.c: [DOC] Reformat headings of DBM class
+
+Mon Aug 12 12:46:31 2013 Zachary Scott <e@zzak.io>
+
+ * lib/yaml.rb, lib/yaml/: [DOC] Document YAML::DBM#key and add
+ references to similar methods with more detail. This patch brings
+ lib/yaml to 100% documentation coverage.
+
+Mon Aug 12 02:51:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * ext/readline/readline.c (readline_s_set_input): on OS X with editline,
+ Readline.readline doesn't work because readline_get doesn't use
+ rl_getc. The difference is introduced by r42402 [ruby-dev:47509]
+ [Bug #8644]. Before it rb_io_stdio_file set ifp->stdio_file.
+ Therefore add manually setting the value.
+
+ * ext/readline/readline.c (readline_s_set_output): ditto.
+
+Sun Aug 11 23:27:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * file.c (rb_str_encode_ospath): OS path encoding on Mac OS X is also
+ fixed.
+
+Sun Aug 11 22:57:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * test/ruby/test_require.rb (assert_require_nonascii_path): OS path
+ encoding on Windows is fixed, so encoding of __FILE__ should be it.
+ [ruby-core:56498] [Bug #8764]
+
+Sun Aug 11 19:11:45 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/parser/test_sax2.rb: Expand abbreviated class name.
+
+Sun Aug 11 19:06:03 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/sax2listener.rb (REXML::SAX2Listener#notationdecl): Fix
+ wrong number of arguments in the template listener.
+ [Bug #8731] [ruby-dev:47582]
+ Reported by Ippei Obayashi.
+ * test/rexml/parser/test_sax2.rb: Add tests for parsing notation
+ declarations with SAX2 API.
+
+Sun Aug 11 18:44:04 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/sax2listener.rb (REXML::SAX2Listener#elementdecl): Fix wrong
+ examples. [Bug #8731] [ruby-dev:47582]
+ Reported by Ippei Obayashi.
+
+Sun Aug 11 18:42:13 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/sax2parser.rb
+ (REXML::Parsers::SAX2Parser#handle_entitydecl): Extract.
+
+Sun Aug 11 18:40:25 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/sax2parser.rb (REXML::Parsers::SAX2Parser#parse):
+ Fix wrong "%" position in parameter entity declaration event argument.
+ * test/rexml/parser/test_sax2.rb: Add tests for the above case.
+
+Sun Aug 11 18:08:40 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/sax2parser.rb (REXML::Parsers::SAX2Parser#parse):
+ Support NDATA in external ID entity declaration.
+ * test/rexml/parser/test_sax2.rb: Add tests for the above case.
+
+Sun Aug 11 18:07:39 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/baseparser.rb
+ (REXML::Parsers::BaseParser#pull_event): Support optional NDATA
+ in external ID entity declaration.
+
+Sun Aug 11 17:54:07 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * NEWS (REXML::Parsers::SAX2Parser): Add about this change.
+ * lib/rexml/parsers/sax2parser.rb (REXML::Parsers::SAX2Parser#parse):
+ Fix wrong number of arguments. Document says "an array of the
+ entity declaration" but it passes two or more arguments.
+ This is a bug but it break backward compatibility.
+ Reported by Ippei Obayashi. [Bug #8731] [ruby-dev:47582]
+ * lib/rexml/sax2listener.rb (REXML::SAX2Listener#entitydecl): ditto.
+ The listener template accepted two arguments.
+ * test/rexml/parser/test_sax2.rb: Add tests for external ID case.
+
+Sun Aug 11 17:41:41 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/parser/test_sax2.rb: Add SAX2 API test.
+
+Sun Aug 11 15:10:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (rb_enc_symname_type): allow ID_ATTRSET for ID_INSTANCE,
+ ID_GLOBAL, ID_CLASS, ID_JUNK too. [Bug #8756]
+
+Sun Aug 11 13:17:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * include/ruby/encoding.h: Reduce ENCODING_INLINE_MAX to 127 as this
+ should be sufficient to represent all the encodings Ruby supports.
+
+Sun Aug 11 11:54:38 2013 Tanaka Akira <akr@fsij.org>
+
+ * process.c (rb_clock_gettime): New method.
+ This is accepted in the meeting:
+ https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20130809
+ This method is accepted as a CRuby feature.
+ I.e. Other Ruby implementations don't need to implement it.
+ [ruby-core:56087] [Feature #8658]
+
+Sun Aug 11 10:40:48 2013 Zachary Scott <e@zzak.io>
+
+ * lib/time.rb: [DOC] Correcting rdoc visibility of time.rb constants
+ Reported by Tanaka Akira [ruby-core:56517]
+
+Sun Aug 11 04:48:14 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * file.c (rb_str_normalize_ospath):
+ HFS Plus (Mac OS Extended) uses a variant of Normal Form D in which
+ U+2000 through U+2FFF, U+F900 through U+FAFF, and U+2F800 through
+ U+2FAFF are not decomposed (this avoids problems with round trip
+ conversions from old Mac text encodings).
+ http://developer.apple.com/library/mac/qa/qa1173/_index.html
+ Therefore fix r42457 to exclude the range.
+
+Sun Aug 11 03:26:07 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bitsize): Fix a conditional expression.
+
+Sun Aug 11 02:44:03 2013 Zachary Scott <e@zzak.io>
+
+ * lib/time.rb: [DOC] Document constants by @markijbema [Fixes GH-377]
+ https://github.com/ruby/ruby/pull/377
+
+Sun Aug 11 01:28:52 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: Revert r42458.
+ It removes the HAVE_CLOCK_GETTIME from config.h.
+ http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20130809T044800Z.diff.html.gz
+
+Sat Aug 10 13:53:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (rb_id_attrset): allow other than ID_ATTRSET.
+
+ * parse.y (intern_str): ditto. try stem ID for ID_INSTANCE,
+ ID_GLOBAL, ID_CLASS, ID_JUNK too. [Bug #8756]
+
+Sat Aug 10 12:49:50 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/baseparser.rb
+ (REXML::Parsers::BaseParser::CDATA_END): Use "\A" instead of "^".
+ It is not an used constant but I fix it. (Or should I remove it?)
+
+Sat Aug 10 12:47:19 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser):
+ Fix wrong constant name. "]>" pattern match is the same but
+ it is used for "<!DOCTYPE" end mark not "<![CDATA[" end mark.
+
+Sat Aug 10 12:43:15 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser):
+ Use "\A" instead of "^" in document type declaration patterns
+ because they are used as the head match in content not the head
+ match in line. They don't cause any problems in the current code
+ but it should be fixed.
+
+Sat Aug 10 12:39:00 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/parse/test_document_type_declaration.rb: Add tests for
+ parsing document type declaration.
+
+Sat Aug 10 12:00:45 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser::SYSTEM):
+ Fix loose "head" match regular expression. It doesn't cause any
+ problem in the current code but it should be fixed because readers
+ may confuse it.
+ Patch by Ippei Obayashi. Thanks!!!
+
+Sat Aug 10 11:58:24 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/parse/test_notation_declaration.rb (#test_system_public):
+ Add a test for PUBLIC notation and SYSTEM notation order case.
+
+Sat Aug 10 11:31:35 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser::PUBLIC):
+ Fix loose "head" match regular expression.
+ [Bug #8701] [ruby-dev:47551]
+ Patch by Ippei Obayashi. Thanks!!!
+ * test/rexml/parse/test_notation_declaration.rb (#test_system_public):
+ Add a test for the above case.
+
+Sat Aug 10 09:20:21 2013 Zachary Scott <e@zzak.io>
+
+ * NEWS: [DOC] typo in example reported by @moretea
+ https://github.com/ruby/ruby/commit/a39e724#commitcomment-3831489
+
+Sat Aug 10 09:19:04 2013 Zachary Scott <e@zzak.io>
+
+ * proc.c: [DOC] rdoc code formatting
+
+Sat Aug 10 09:12:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (rb_id_attrset): check if the argument is valid type as an
+ attribute.
+
+Sat Aug 10 05:44:08 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rss/trackback.rb: [DOC] Hide RSS::Trackback from rdoc
+ Patch by Steve Klabnik [Bug #8755] [ruby-core:56456]
+
+Sat Aug 10 04:52:21 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big_div_struct): Use size_t.
+ (bigdivrem1): Ditto.
+ (bigdivrem_num_extra_words): Ditto.
+ (bigdivrem_single): Ditto.
+ (bigdivrem_normal): Ditto.
+ (bary_divmod): Ditto.
+
+Fri Aug 9 23:47:15 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rss/rexmlparser.rb: Remove needless REXML version check.
+ Both RSS Parser and REXML are bundled in Ruby. RSS Parser can
+ always use the latest REXML. [Bug #8754] [ruby-core:56454]
+ Patch by Steve Klabnik. Thanks!!!
+
+Fri Aug 9 22:51:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (XLDFLAGS, LIBRUBYARG_STATIC): CoreFoundation framework
+ option is now needed always, regardless enable-shared.
+ [ruby-core:56467] [Bug #8759]
+
+Fri Aug 9 22:20:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ruby.c (load_file_internal): use rb_parser_compile_string_path and
+ rb_parser_compile_file_path, String path name versions. [Bug #8753]
+
+Fri Aug 9 07:16:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * ext/io/console/console.c: delete redefinition of rb_cloexec_open.
+ drop support for 1.8 and 1.9 from the next release of io-console gem.
+
+Fri Aug 9 19:13:54 2013 Koichi Sasada <ko1@atdot.net>
+
+ * NEWS: update about new methods for Binding.
+
+Fri Aug 9 18:48:09 2013 Koichi Sasada <ko1@atdot.net>
+
+ * proc.c: add Binding#local_variable_get/set/defined?
+ to access local variables which a binding contains.
+ Most part of implementation by nobu.
+
+ * test/ruby/test_proc.rb: add a tests for above.
+
+ * vm.c, vm_core.h (rb_binding_add_dynavars): add a new function
+ to add a new environment to create space for new local variables.
+
+Fri Aug 9 14:02:01 2013 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+
+ * tool/make-snapshot: Fix order of priority for option parameter.
+
+Fri Aug 9 12:06:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * file.c (rb_str_normalize_ospath): normalize to Normalization Form C
+ using CFString.
+
+Fri Aug 9 10:53:57 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * time.c (get_timeval, get_new_timeval): use rb_obj_class()
+ instead of CLASS_OF() because CLASS_OF() may return
+ a singleton class.
+
+Fri Aug 9 10:42:11 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * vm_insnhelper.c (vm_invoke_block): returning from lambda proc
+ now always exits from the Proc. [ruby-core:56193] [Feature #8693]
+
+ * NEWS, test/ruby/test_lambda.rb: ditto. Patch by nobu.
+
+Fri Aug 9 00:10:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enumerator.c (lazy_zip_func): fix non-single argument. fix
+ out-of-bound access and pack multiple yielded values.
+ [ruby-core:56383] [Bug #8735]
+
+Thu Aug 8 23:01:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * object.c (rb_mod_singleton_p): new method Module#singleton_class? to
+ return whether the receiver is a singleton class or not.
+ [ruby-core:51087] [Feature #7609]
-Sat Oct 4 08:49:34 2014 Zachary Scott <e@zzak.io>
+Thu Aug 8 21:56:44 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_rand.c: [DOC] Add rdoc for method descriptions
- By @vipulnsward [Fixes GH-657] https://github.com/ruby/ruby/pull/657
+ * time.c (time_overflow_p): Avoid signed integer overflow.
+ (rb_time_new): Fix overflow condition.
-Sat Oct 4 08:23:48 2014 Zachary Scott <e@zzak.io>
+Thu Aug 8 19:58:02 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/ossl_rand.c: Use rb_define_module_function instead of
- macro. [Fixes GH-686] https://github.com/ruby/ruby/pull/686
+ * thread.c (rb_threadptr_pending_interrupt_check_mask):
+ use RARRAY_RAWPTR() instead of RARRAY_PTR() because
+ there is no new reference.
-Sat Oct 4 06:04:56 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Thu Aug 8 19:56:52 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/win32ole_method.c(olemethod_set_member): remove
- redundant NULL check.
- * ext/win32ole/win32ole_type.c(oletype_set_member): ditto.
+ * string.c (rb_str_format_m): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
-Sat Oct 4 00:25:04 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Aug 8 19:55:51 2013 Koichi Sasada <ko1@atdot.net>
- * .travis.yml: removed needless preparation for gcc.
+ * include/ruby/ruby.h: define USE_RGENGC_LOGGING_WB_UNPROTECT.
-Fri Oct 3 23:41:20 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Aug 8 16:44:25 2013 Koichi Sasada <ko1@atdot.net>
- * .travis.yml: enabled gcc build with osx on travis.
+ * include/ruby/ruby.h: add old macro name `RUBY_EVENT_SWITCH'.
+ This macro name is obsolete because it is renamed to
+ RUBY_INTERNAL_EVENT_SWITCH, but it has compatibility problem
+ using this macro name like ruby-prof.
+ I want to remove this macro after ruby 2.1.
-Fri Oct 3 23:22:23 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+Thu Aug 8 15:37:53 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * template/fake.rb.in: fix make install failure due to MSYS path
- with mingw on MSYS environment.
- [ruby-core:64965] [Bug #10230]
+ * test/coverage/test_coverage.rb (TestCoverage#test_big_code): use `1'
+ instead of `p' to get rid of a side effect.
+ Kernel#p without any argument seems to do nothing, but flushes stdout.
+ and, if stdout is redirected to file, fsync() will be called on
+ Windows. so, when running test-all on Windows with redirection, such
+ as CI environment, this test took a lot of time.
-Fri Oct 3 21:02:32 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Aug 8 14:54:18 2013 Shugo Maeda <shugo@ruby-lang.org>
- * test/ruby/test_io.rb (TestIO#test_advise): avoid to infinite loop.
+ * NEWS: add description of incompatibility introduced by r42396.
+ [ruby-core:56329] [Bug #8722]
-Fri Oct 3 19:26:01 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Aug 8 14:50:36 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * .travis.yml: enabled test results of linux.
+ * common.mk (mini): portable target to build miniruby
-Fri Oct 3 18:52:16 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * common.mk (bisect): run git-bisect with miniruby
- * test/ruby/test_io.rb (TestIO#test_advise): added workaround of fadvise(2)
- with tmpfs and old linux kernel. [ruby-core:65355][Bug #10313]
+ * common.mk (bisect-ruby): run git-bisect with ruby
-Fri Oct 3 18:22:45 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * tool/bisect.sh: script for git-bisect
- * .travis.yml: Disabled to generate document on travis.
- Reduce test running time.
+Thu Aug 8 12:11:43 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Fri Oct 3 12:42:15 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * test/webrick/test_httpresponse.rb (test_send_body_*_chunked): these
+ expectations assumes that the IOs are binmode. fixed test failures
+ introduced at r42427 on Windows.
- * lib/matrix.rb: Add hstack & vstack methods.
- Based on a patch by creasywuqiong. [Fix GH-344]
+Thu Aug 8 10:27:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Oct 3 12:37:48 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * range.c (range_last): revert r42400. [Bug #8739]
- * lib/matrix.rb: Fix Matrix.rows copy bug.
- Patch by Arron Mabrey. [Fix GH-707]
+Thu Aug 8 10:26:25 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Oct 3 06:06:28 2014 Eric Wong <e@80x24.org>
+ * file.c (rb_str_normalize_ospath): extract and move from dir.c.
- * st.c (next_pow2): new function (from old bignum.c)
- (new_size): use next_pow2 function
+Thu Aug 8 05:59:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Fri Oct 3 05:58:58 2014 Eric Wong <e@80x24.org>
+ * test/openssl/test_ssl.rb: Fix test for CVE-2013-4073.
+ Patch by Antonio Terceiro. [Bug #8750] [ruby-core:56437]
- * vm_trace.c (rb_tp_t): pack 56 => 48 bytes on 64-bit
+Thu Aug 8 03:37:38 2013 Eric Hodel <drbrain@segment7.net>
-Thu Oct 2 18:41:45 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * lib/webrick/httpresponse.rb: Allow #body to be an IO-like object
+ that responds to #readpartial and #read.
+ [ruby-trunk - Feature #8155]
+ * NEWS: NEWS for above
+ * test/webrick/test_httpresponse.rb: Tests for above.
- * ext/etc/etc.c (etc_nprocessors): Windows support.
- see [Feature #10267]
+Wed Aug 7 23:06:26 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Oct 2 12:21:52 2014 Tanaka Akira <akr@fsij.org>
+ * ruby.c (Process.argv0): New method to return the original value
+ of $0. [Feature #8696]
- * ext/etc/etc.c (etc_nprocessors): New method.
- Accepted by matz at RubyKaigi 2014.
- [ruby-core:65142] [Feature #10267]
+Wed Aug 7 23:05:55 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Oct 2 07:56:49 2014 Eric Wong <e@80x24.org>
+ * ruby.c (Process.setproctitle): New method to change the title of
+ the running process that is shown in ps(1). [Feature #8696]
- * iseq.c (rb_iseq_line_trace_each): explicit cast
- Fix https://travis-ci.org/ruby/ruby/jobs/36814282
+Wed Aug 7 20:05:38 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 2 05:40:05 2014 Eric Wong <e@80x24.org>
+ * bignum.c (rb_big_odd_p): Check the bignum length.
+ (rb_big_even_p): Ditto.
- * ruby.h: set rb_event_flag_t to uint32_t
- [ruby-core:65315] [misc #10249]
+Wed Aug 7 19:29:26 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 2 05:32:17 2014 Eric Wong <e@80x24.org>
+ * bignum.c (dbl2big): A condition simplified.
- * io.c (fptr_finalize): free memory before GC sweep
- [ruby-core:65269] [Feature #10295]
+Wed Aug 7 16:34:30 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Thu Oct 2 05:27:24 2014 Eric Wong <e@80x24.org>
+ * test/webrick/test_cgi.rb (TestWEBrickCGI#{start_cgi_server,test_cgi}):
+ mswin is not only mswin32 but also mswin64. [Bug #8746]
- * marshal.c (w_class): check dump_arg->compat_tbl before lookup
- (w_object): lazy init ->compat_tbl before insert
- (obj_alloc_by_class): ditto
- (clear_dump_arg): free only non-NULL ->compat_tbl
- (clear_load_arg): ditto for ->compat_tbl
- (marshal_dump): ->compat_tbl defaults to zero
- (marshal_load): ditto for ->compat_tbl
- (r_entry0): check l->compat_tbl before lookup
- (r_fixup_compat): ditto
- [ruby-core:65305] [Feature #10302]
+Wed Aug 7 16:19:12 2013 Koichi Sasada <ko1@atdot.net>
-Wed Oct 1 21:14:34 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * cont.c (rb_fiber_start): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * ext/win32ole/win32ole_type.c: use typed data.
+ * proc.c (curry): ditto.
-Wed Oct 1 18:15:42 2014 Nolan Evans <nolane@gmail.com>
+ * proc.c (rb_proc_call): remove line break.
- * compile.c: remove commented out code.
+Wed Aug 7 13:20:12 2013 Koichi Sasada <ko1@atdot.net>
-Wed Oct 1 17:38:53 2014 Rei Odaira <Rei.Odaira@gmail.com>
+ * random.c (random_load): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * test/fileutils/test_fileutils.rb: AIX does not allow
- a sticky bit on a regular file.
+Wed Aug 7 12:58:23 2013 Koichi Sasada <ko1@atdot.net>
-Wed Oct 1 17:31:41 2014 Eric Hodel <drbrain@segment7.net>
+ * thread.c (thread_start_func_2): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * NEWS: Add RubyGems update.
+Wed Aug 7 09:00:24 2013 Zachary Scott <e@zzak.io>
-Wed Oct 1 17:28:58 2014 Eric Hodel <drbrain@segment7.net>
+ * string.c: [DOC] Description of rb_str_equal [Fixes GH-375]
+ Based on a patch by @markijbema
+ https://github.com/ruby/ruby/pull/375
- * lib/rubygems: Update to RubyGems 2.4.2.
+Wed Aug 7 08:30:38 2013 Zachary Scott <e@zzak.io>
+
+ * ext/openssl/ossl_hmac.c: [DOC] Documentation for OpenSSL::HMAC
+ based on a patch by @repah documenting-ruby/ruby#14
+ https://github.com/documenting-ruby/ruby/pull/14
+
+Wed Aug 7 07:46:23 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rss/utils.rb: [DOC] RSS::Utils by Steve Klabnik [Bug #8745]
+
+Wed Aug 7 07:38:39 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (nlz16): Removed.
+ (nlz32): Ditto.
+ (nlz64): Ditto.
+ (nlz128): Ditto.
+ (nlz_int): New function.
+ (nlz_long): New function.
+ (nlz_long_long): New function.
+ (nlz_int128): New function.
+ (nlz): Follow above changes.
+ (bitsize): Follow above changes.
+
+Tue Aug 6 22:38:15 2013 Zachary Scott <e@zzak.io>
+
+ * time.c: [DOC] Typo in Time overview by @sparr [Fixes GH-374]
+ https://github.com/ruby/ruby/pull/374
+
+Tue Aug 6 22:35:32 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rss/1.0.rb: [DOC] Document RSS10 by Steve Klabnik [Bug #8740]
+
+Tue Aug 6 22:14:11 2013 Kouji Takao <kouji.takao@gmail.com>
+
+ * ext/readline/readline.c (readline_s_delete_text): remove
+ checking "$SAFE == 4".
+
+ * ext/readline/readline.c: fix rdoc, remove "Raises SecurityError"
+ and add "Raises NotImplementedError".
+
+Tue Aug 6 22:04:38 2013 Kouji Takao <kouji.takao@gmail.com>
+
+ * ext/readline/readline.c, test/readline/test_readline.rb: fix
+ indent.
+
+Tue Aug 6 21:59:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * range.c (range_last): return nil for empty range, or in the case the
+ predecessor is smaller than the begin. [Bug #8739]
+
+Tue Aug 6 21:48:31 2013 Kouji Takao <kouji.takao@gmail.com>
+
+ * ext/readline/readline.c (readline_s_set_point, Init_readline):
+ add Readline.point=(pos). Patched by naruse. [ruby-dev:47535]
+ [Feature #8675]
+
+Tue Aug 6 21:14:11 2013 Kouji Takao <kouji.takao@gmail.com>
+
+ * ext/readline/readline.c (Init_readline, readline_s_set_output)
+ (clear_rl_outstream, readline_s_set_input, clear_rl_instream)
+ (readline_readline): fix causing SEGV if closed IO object that is
+ set Readline.input or Readline.output. Patched by akr
+ [ruby-dev:47509] [Bug #8644]
+
+Tue Aug 6 17:56:40 2013 Koichi Sasada <ko1@atdot.net>
+
+ * vm_insnhelper.c (vm_push_frame): change type of stack_max to size_t.
+
+Tue Aug 6 17:42:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * range.c (range_last): exclude the last number of the exclusive range
+ if the end is Numeric. [ruby-dev:47587] [Bug #8739]
+
+Tue Aug 6 17:42:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/win32.c (rb_w32_conv_from_wchar): converted string to CP_UTF8
+ should have UTF-8 encoding. otherwise no conversion takes place
+ later.
+
+Tue Aug 6 17:21:38 2013 Koichi Sasada <ko1@atdot.net>
+
+ * vm_insnhelper.c (vm_push_frame): fix stack overflow check codes.
+ Stack overflow check should be done *after* pushing a stack frame.
+ However, some stack overflow checking codes checked *before*
+ pushing a stack frame with iseq->stack_max.
+ To solve this problem, add a new parameter `stack_max' to specify
+ a possible consuming stack size.
+
+ * vm_core.h (CHECK_VM_STACK_OVERFLOW0): add to share the stack overflow
+ checking code.
+
+ * insns.def: catch up this change.
+
+ * vm.c, vm_eval.c: ditto.
+
+ * test/ruby/test_exception.rb: add a stack overflow test.
+ This code is reported by nobu.
+
+Tue Aug 6 17:02:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/win32.c (rb_w32_conv_from_wchar): use WideCharToMultiByte(),
+ as like as mbstr_to_wstr(), in the first step of the conversion from
+ WCHAR.
+
+Tue Aug 6 16:14:32 2013 Shugo Maeda <shugo@ruby-lang.org>
+
+ * vm_eval.c (eval_string_with_cref): copy cref to limit the scope of
+ refinements in the eval string. [ruby-core:56329] [Bug #8722]
+
+ * test/ruby/test_refinement.rb: related test.
+
+Tue Aug 6 12:23:12 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big_realloc): Use VALGRIND_MAKE_MEM_UNDEFINED to
+ declare undefined memory area.
+ (bignew_1): Ditto.
+
+ * internal.h (VALGRIND_MAKE_MEM_DEFINED): Moved from gc.c
+ (VALGRIND_MAKE_MEM_UNDEFINED): Ditto.
+
+Tue Aug 6 01:40:37 2013 Zachary Scott <e@zzak.io>
+
+ * process.c: [DOC] Document caveats of command form of Process.spawn
+ with regard to the shell and OS. Patched by Steve Klabnik [Bug #8550]
+
+Tue Aug 6 01:28:35 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rss/0.9.rb: [DOC] Typo in example [Bug #8732]
+
+Tue Aug 6 01:22:37 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rss/2.0.rb: [DOC] Document RSS::Rss by Steve Klabnik #8740
+ * lib/rss/atom.rb: [DOC] Typo in rdoc by Steve Klabnik
+
+Mon Aug 5 23:47:59 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c: Rename local variables.
+
+Mon Aug 5 22:23:59 2013 Zachary Scott <e@zzak.io>
+
+ * vm_trace.c: [DOC] Fix TracePoint return values in examples
+ Based on a patch by @sho-h [Fixes GH-373]
+ https://github.com/ruby/ruby/pull/373
+
+Mon Aug 5 17:38:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/win32.c (rb_w32_write_console): use MultiByteToWideChar() for
+ the last step of conversion to WCHAR, to get rid of warnings from
+ rb_enc_find() in miniruby. [ruby-dev:47584] [Bug #8733]
+
+ * win32/win32.c (wstr_to_mbstr, mbstr_to_wstr): fix wrong trimming.
+ WideCharToMultiByte() and MultiByteToWideChar() do not count
+ NUL-terminator in the size for conversion result, unless the input
+ length is -1.
+
+Mon Aug 5 11:51:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * include/ruby/encoding.h: document which user flags are used by
+ ENCODING_MASK for better greppability
+
+Mon Aug 5 10:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * object.c (rb_class_inherited_p): allow iclasses to be tested for
+ inheritance. [Bug #8686] [ruby-core:56174]
+
+ * test/ruby/test_method.rb: add test
+
+Mon Aug 5 06:13:48 2013 Zachary Scott <e@zzak.io>
+
+ * enumerator.c: [DOC] Remove reference to Enumerator::Lazy#cycle
+ Patch by @kachick [Fixes GH-372]
+ https://github.com/ruby/ruby/pull/372
+
+Mon Aug 5 03:57:16 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rss/0.9.rb: [DOC] Document RSS09 by Steve Klabnik [Bug #8732]
+
+Mon Aug 5 03:35:11 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rexml/attribute.rb: [DOC] Update example for #namespace
+ Patch by Ippei Obayashi [Bug #8685] [ruby-core:56173]
+
+Sun Aug 4 21:08:29 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * array.c (rb_ary_zip): performance implement by using
+ ALLOCA_N() to allocate tmp buffer.
+
+Sun Aug 4 07:14:49 2013 Tanaka Akira <akr@fsij.org>
+
+ * README.EXT, README.EXT.ja: Mention rb_integer_pack and
+ rb_integer_unpack.
+
+Sun Aug 4 01:54:45 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (BARY_TRUNC): New macro.
+ (bary_cmp): Use BARY_TRUNC.
+ (bary_mul_toom3): Ditto.
+ (bary_divmod): Ditto.
+ (abs2twocomp): Ditto.
+ (bigfixize): Ditto.
+ (rb_cstr_to_inum): Ditto.
+ (big2str_karatsuba): Ditto.
+ (bigdivrem): Ditto.
+
+Sun Aug 4 00:57:58 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_karatsuba): Don't allocate new temporary buffer
+ if the buffer is enough for current invocation.
+
+Sun Aug 4 00:22:34 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bary2bdigitdbl): New function.
+ (bdigitdbl2bary): Ditto.
+ (bary_mul_single): Use bdigitdbl2bary.
+ (power_cache_get_power): Ditto.
+ (bary_divmod): Use bary2bdigitdbl.
+ (big2str_orig): Ditto.
+ (bigdivrem): Ditto.
+
+Sat Aug 3 22:47:11 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c: The branch condition of selecting multiplication
+ algorithms should check smaller argument because Karatsuba and Toom3
+ is effective only if both arguments are big.
+ (bary_mul_toom3_branch): Compare the smaller argument to
+ TOOM3_MUL_DIGITS.
+ (bary_mul): Compare the smaller argument to KARATSUBA_MUL_DIGITS.
+
+Sat Aug 3 22:23:31 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_orig): Receive the number to stringize as
+ BDIGIT array and size.
+ (big2str_karatsuba): Receive the number to stringize as BDIGIT array
+ and size. Use an temporary array of BDIGIT.
+ (rb_big2str1): Follow the above change.
+
+Sat Aug 3 13:30:04 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (MAX_BASE36_POWER_TABLE_ENTRIES): Renamed from
+ MAX_BIG2STR_TABLE_ENTRIES.
+ (base36_power_cache): Renamed from big2str_power_cache.
+ (base36_numdigits_cache): Renamed from big2str_numdigits_cache.
+
+Sat Aug 3 10:33:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (parser_set_integer_literal): use rb_rational_raw1() for
+ integral rational because no reduction is needed with 1.
+
+Sat Aug 3 09:46:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/etc/etc.c (setup_passwd, setup_group): set proper encodings to
+ string members.
+
+Sat Aug 3 09:30:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * struct.c (rb_struct_define_under): new function to define Struct
+ under the given namespace, not under Struct. [Feature #8264]
+
+ * ext/etc/etc.c: use rb_struct_define_under.
+
+Sat Aug 3 06:55:29 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * parse.y (value_expr_gen): now NODE_DEFN and NODE_DEFS are not void
+ value expressions. get rid of wrong warning with -w, and make to
+ pass tests with chkbuild. ref. [Feature #3753]
+
+Sat Aug 3 04:23:48 2013 Eric Hodel <drbrain@segment7.net>
+
+ * doc/syntax/refinements.rdoc: Remove mention of instance_eval and
+ module_eval from scope section per:
+ http://twitter.com/shugomaeda/status/363219951336693761
+
+Sat Aug 3 02:22:05 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_orig): Refactored.
+
+Sat Aug 3 01:20:19 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigadd_core): Removed.
+ (bigadd): Use bary_add instead of bigadd_core.
+
+Sat Aug 3 00:52:43 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big2str1): Simplify power_level calculation.
+
+Sat Aug 3 00:34:20 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * array.c (rb_ary_zip): use rb_ary_new2() to create buffer
+ if rb_block_arity() > 1.
+
+Sat Aug 3 00:12:00 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * NEWS: Add the description that IO#seek supports SEEK_DATA
+ and SEEK_HOLE.
+
+Fri Aug 2 23:57:57 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * vm.c (m_core_define_method, m_core_define_singleton_method): now
+ the value of def-expr is the Symbol of the name of the method, not
+ nil.
+ ref. [ruby-dev:42151] [Feature #3753]
+
+ * test/ruby/test_syntax.rb (TestSyntax#test_value_of_def): test for
+ above changes.
+
+Fri Aug 2 23:54:11 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * array.c (rb_ary_zip): performance improvement by avoiding
+ array creation if rb_block_arity() > 1.
+
+Fri Aug 2 23:50:53 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (power_cache_get_power): Apply bigtrunc to the result of
+ bigsq.
+ (big2str_karatsuba): Fix number of leading zero characters.
+
+Fri Aug 2 23:48:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (parser_yylex): calculate denominator directly as powers of
+ ten, not parsing string.
+
+ * parse.y (parser_number_literal_suffix): return bit set of found
+ suffixes.
+
+ * parse.y (parser_set_number_literal, parser_set_integer_literal):
+ split from parser_number_literal_suffix to set yylval.
+
+ * parse.y (parser_yylex): parse rational number literal with decimal
+ point precisely.
+
+ * parse.y (simple_numeric): integrate numeric literals and simplify
+ numeric rules.
+
+ * ext/ripper/eventids2.c (ripper_init_eventids2): ripper support for
+ new literals, tRATIONAL and tIMAGINARY.
+
+Fri Aug 2 18:33:28 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_karatsuba): Reduce power_level more than one at
+ recursion, if possible.
+ (rb_big2str1): Follow the above change.
+
+Fri Aug 2 12:25:15 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bary_mul): Swap x and y for bary_mul1 if x is longer than y.
+ [ruby-dev:47565] [Bug #8719] Reported by Narihiro Nakamura.
+
+Fri Aug 2 10:39:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * parse.y (negate_lit): add T_RATIONAL and T_COMPLEX to the switch
+ statement, and call rb_bug() if an unknown type is passed to
+ negate_lit(). [ruby-core:56316] [Bug #8717]
+
+ * bootstraptest/test_literal_suffix.rb (assert_equal): add test
+
+Fri Aug 2 09:14:47 2013 Eric Hodel <drbrain@segment7.net>
+
+ * doc/syntax/refinements.rdoc: Improve description of where you may
+ activate refinements.
+
+Fri Aug 2 07:45:55 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_orig): Remove len argument.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Follow above change.
+
+Thu Aug 2 02:32:00 2013 Kenta Murata <mrkn@mrkn.jp>
+
+ * NEWS: Add the description of number literal suffixes.
+
+Thu Aug 2 00:02:00 2013 Kenta Murata <mrkn@mrkn.jp>
+
+ * bootstraptest/test_literal_suffix.rb: add two test cases to
+ examine that "1if true" and "1rescue nil" are recognized as 1.
+
+Thu Aug 1 23:45:00 2013 Kenta Murata <mrkn@mrkn.jp>
+
+ * rational.c (rb_flt_rationalize_with_prec): new public C function
+ to rationalize a Float instance with a precision.
+
+ * rational.c (rb_flt_rationalize): new public C function to
+ rationalize a Float instance. A precision is calculated from
+ the given float number.
+
+ * include/ruby/intern.h: Add rb_flt_rationalize_with_prec and
+ rb_flt_rationalize.
+
+ * parse.y: implement number literal suffixes, 'r' and 'i'.
+ [ruby-core:55096] [Feature #8430]
+
+ * bootstraptest/test_literal_suffix.rb: add tests for parser to scan
+ number literals with the above tsuffixes.
+
+Thu Aug 1 23:55:08 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big2str1): Remove a local variable.
+
+Thu Aug 1 23:33:01 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_cstr_to_inum): Use power_cache_get_power.
+
+Thu Aug 1 21:02:48 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big2str1): Raise an error for too big number.
+
+Thu Aug 1 20:46:29 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (power_cache_get_power): Hide cached Bignum objects.
+
+Thu Aug 1 19:15:05 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big2str1): Remove non-trim mode.
+ (rb_big2str0): Non-trim mode implemented here.
+ (big2str_find_n1): Change the result type to long again.
+ (big2str_base_powerof2): Don't take arguments: len and trim.
+ (rb_big2str): Follow above change.
+
+Thu Aug 1 12:37:58 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_alloc): New function to allocate the result string.
+ It is called after actual length is calculated.
+ (big2str_struct): Add fields: negative, result and ptr.
+ (big2str_orig): Write out the result via b2s->ptr.
+ (big2str_orig): Ditto.
+ (rb_big2str1): Don't allocate the result string at beginning.
+
+Thu Aug 1 07:36:27 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_orig): Use temporary buffer when trim mode.
+
+Thu Aug 1 06:28:48 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_orig): Simplified because RBIGNUM_LEN(x) <= 2 now.
+ (big2str_struct): Two fields added: hbase2, hbase2_numdigits.
+ (rb_big2str1): Initialize above fields.
+
+Thu Aug 1 04:06:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/rdoc/options.rb (RDoc#finish): include root path in include
+ paths, to work in another directory than the source directory.
+ [ruby-core:56282] [Bug #8712]
+
+ * test/test_rdoc_markup_pre_process.rb (TestRDocMarkupPreProcess#setup):
+ fix input_file_name, as the test script is not pre-processed.
+
+Thu Aug 1 01:45:18 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_karatsuba): Fix a condition of power_level.
+
+Thu Aug 1 01:09:02 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (LOG2_KARATSUBA_BIG2STR_DIGITS): Removed.
+ (KARATSUBA_BIG2STR_DIGITS): Removed.
+ (big2str_numdigits_cache): New variable.
+ (power_cache_get_power): Merged with power_cache_get_power0.
+ This function returns maxpow_in_bdigit_dbl(base)**(2**power_level).
+ (rb_big2str1): use power_cache_get_power.
+
+Wed Jul 31 23:59:28 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_find_n1): Change the return type to size_t.
+ (big2str_orig): Ditto.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Follow the above changes.
+
+Wed Jul 31 23:19:06 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (power_cache_get_power): Change numdigits_ret to size_t *.
+ (big2str_orig): Change len argument to size_t.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Follow the above changes.
+
+Wed Jul 31 22:59:47 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/parse/test_notation_declaration.rb: Change class
+ name to follow file name change.
+
+Wed Jul 31 22:57:50 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: Rename to ...
+ * test/rexml/parse/test_notation_declaration.rb: ... this.
+
+Wed Jul 31 22:54:39 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_mixin.rb: Remove duplicated tests.
+
+Wed Jul 31 22:52:55 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: Fix typos in expected
+ value.
+ pubilc ->
+ public
+ ^^
+
+Wed Jul 31 22:50:51 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: Add tests that focus
+ system literal in external ID system notation declaration.
+
+Wed Jul 31 22:36:21 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bary_cmp): Extracted from rb_big_cmp.
+ (power_cache_get_power): Change n1 argument (number of digits) to
+ power_level which is just passed to power_cache_get_power0.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Calculate the initial power_level.
+
+Wed Jul 31 22:04:36 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: Fix a typo.
+ Extern ID ->
+ ExternalID
+ ^^
+
+Wed Jul 31 22:01:36 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: Add tests that focus
+ public ID in external ID notation declaration.
+
+Wed Jul 31 22:01:24 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+
+ * parse.y: fix build error with bison-3.0.
+
+Wed Jul 31 21:58:53 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: Split test patterns.
+
+Wed Jul 31 21:42:33 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: Group tests.
+
+Wed Jul 31 21:37:51 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_mixin.rb (TestNotationDecl#test_name):
+ Move to ...
+ * test/rexml/test_notationdecl_parsetest.rb
+ (TestNotationDecl#test_name): ... here.
+
+Wed Jul 31 21:37:47 2013 Kouhei Sutou <kou@cozmixng.org>
+
+Wed Jul 31 21:31:49 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: Remove setup because it
+ doesn't share anything with other tests.
+
+Wed Jul 31 21:24:55 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_attributes_mixin.rb: Remove a needless shebang.
+ * test/rexml/test_notationdecl_mixin.rb: ditto.
+ * test/rexml/test_doctype.rb: ditto.
+ * test/rexml/test_xml_declaration.rb: ditto.
+ * test/rexml/test_changing_encoding.rb: ditto.
+
+Wed Jul 31 21:20:08 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * test/rexml/test_notationdecl_parsetest.rb: remove a needless shebang.
+
+Wed Jul 31 20:11:01 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * string.c (rb_str_rindex): fix bug introduced in r42269.
+ "".rindex("") should return 0.
+ (str_rindex): ditto.
+
+Wed Jul 31 19:55:33 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (MAX_BIG2STR_TABLE_ENTRIES): Use SIZEOF_SIZE_T.
+ (power_cache_get_power0): Add rb_bug call for too bit i argument.
+ (power_cache_get_power): Simplified.
+
+Wed Jul 31 18:32:25 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * lib/uri/common.rb (URI.decode_www_form_component): Use String#b.
+
+Wed Jul 31 18:24:02 2013 Shugo Maeda <shugo@ruby-lang.org>
+
+ * eval.c (rb_mod_refine, mod_using, top_using): don't show
+ warnings because Refinements are no longer experimental.
+ [ruby-core:55993] [Feature #8632]
+
+ * test/ruby/test_refinement.rb: related test.
+
+ * NEWS: fixes for the above change.
+
+Wed Jul 31 17:55:55 2013 Shota Fukumori <her@sorah.jp>
+
+ * lib/uri/common.rb (URI.decode_www_form_component):
+ Don't raise error when str includes multibyte characters.
+
+Wed Jul 31 17:45:39 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * string.c (rb_str_rindex): performance improvement by using
+ memrchr(3).
+
+Wed Jul 31 16:43:30 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * string.c (rb_str_rindex): refactoring and avoid to call str_nth() if
+ pos == 0.
+
+Wed Jul 31 14:41:36 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * lib/set.rb: [DOC] Add a couple of notes on Hash as storage.
+ ref. [Feature #6589]
+
+Wed Jul 31 14:38:52 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * lib/set.rb: [DOC] Fix example result. Hash is now ordered.
+
+Wed Jul 31 14:38:10 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * lib/set.rb: [DOC] Use the term "sorted" instead of "ordered"
+ when mentioning SortSet.
+
+Wed Jul 31 12:18:47 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big2str_struct): New structure.
+ (big2str_orig): Use big2str_struct.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Ditto.
+
+Wed Jul 31 12:02:16 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rubygems.rb: [DOC] typo in url patch by @Red54 [Fixes #369]
+ https://github.com/ruby/ruby/pull/369
+
+Wed Jul 31 07:09:07 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems: Import RubyGems from master as of commit 523551c
* test/rubygems: ditto.
-Tue Sep 30 22:25:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 30 22:21:54 2013 Masaki Matsushita <glass.saga@gmail.com>
- * parse.y (parser_data_type): separate ripper data type for from
- parser.
+ * test/ruby/test_hash.rb: add a test for enumeration order of Hash.
-Tue Sep 30 18:46:31 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Tue Jul 30 18:52:27 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/win32ole/win32ole_typelib.c: use typed data.
+ * lib/set.rb (Set#intersect?, Set#disjoint?): Add new methods for
+ testing if two sets have any element in common.
+ [ruby-core:45641] [Feature #6588] Based on the code by marcandre.
-Tue Sep 30 09:51:46 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 30 17:16:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * common.mk: fixed broken reference of update-config_files task
+ * sprintf.c (ruby__sfvextra): add QUOTE flag to escape unprintable
+ characters.
-Mon Sep 29 22:54:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 30 11:00:52 2013 Zachary Scott <e@zzak.io>
- * win32/file.c (append_wstr): set expanded length, not length of
- appended string. fix "probable buffer overflow" bug.
- [ruby-core:65317] [Bug #10304]
+ * ext/curses/extconf.rb: [DOC] nodoc to reduce Object pollution
- * string.c (str_make_independent_expand): drop NOFREE flag after
- reallocation, static buffer is not pointed anymore.
- [ruby-core:65317] [Bug #10304]
+Tue Jul 30 08:19:42 2013 Tanaka Akira <akr@fsij.org>
-Sun Sep 28 23:59:17 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+ * sizes.c (Init_sizes): Define sizes only if the type actually exists.
- * gc.c (rb_gcdebug_print_obj_condition): use RVALUE_REMEMBERED
- because GET_HEAP_REMEMBERSET_BITS is obsoleted.
+Mon Jul 29 22:55:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Sep 28 11:14:14 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * sizes.c (Init_sizes): define RbConfig::SIZEOF. [Feature #8568]
- * common.mk: Created new target update-unicode to download
- some Unicode data files.
+Mon Jul 29 22:25:20 2013 Zachary Scott <e@zzak.io>
-Fri Sep 26 15:03:19 2014 Masaki Matsushita <glass.saga@gmail.com>
+ * ext/curses/curses.c: [DOC] Update location of samples
+ * samples/curses/*: Move Curses samples and refactor from mixin
+ The samples are included in rdoc for module and use of mixin is
+ confusing
- * lib/uri/rfc3986_parser.rb: raise URI::InvalidURIError when
- uri doesn't respond to #to_str. [ruby-core:64453] [Bug #10150]
+Mon Jul 29 22:16:11 2013 Tanaka Akira <akr@fsij.org>
- * test/uri/test_parser.rb: test for above.
+ * bignum.c (LOG2_KARATSUBA_BIG2STR_DIGITS): Renamed from
+ LOG2_KARATSUBA_DIGITS.
+ (KARATSUBA_BIG2STR_DIGITS): Renamed from KARATSUBA_DIGITS.
-Sat Sep 27 10:31:48 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Mon Jul 29 22:04:45 2013 Masaki Matsushita <glass.saga@gmail.com>
- * gems/bundled_gems: upgraded to power_assert 0.1.4.
+ * hash.c (rb_hash_compare_by_id): add function prototype.
-Fri Sep 26 12:52:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jul 29 21:53:41 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/stringio/stringio.c (strio_write): ASCII-8BIT StringIO
- should be writable any encoding strings, without conversion.
- [ruby-core:65240] [Bug #10285]
+ * hash.c (rb_hash_compare_by_id): don't call rb_hash_rehash()
+ if self.compare_by_identity? == true.
-Fri Sep 26 05:21:01 2014 Eric Wong <e@80x24.org>
+Mon Jul 29 21:29:48 2013 Masaki Matsushita <glass.saga@gmail.com>
- * object.c (rb_class_real): do not dereference 0 VALUE
+ * hash.c (rb_hash_assoc): performance improvement by replacing
+ compare function in RHASH(hash)->ntbl->type temporarily like r42224.
+ it falls back to rb_hash_foreach() if st_lookup() doesn't find the key.
- * test/ruby/test_module.rb (test_inspect_segfault):
- Test case and bug report by Thomas Stratmann.
- [ruby-core:65214] [Bug #10282]
+ * test/ruby/test_hash.rb: add a test for above.
-Fri Sep 26 05:12:10 2014 Eric Wong <e@80x24.org>
+Mon Jul 29 21:15:30 2013 Akinori MUSHA <knu@iDaemons.org>
- * man/ruby.1: document stack size env variables
- [Feature #10197]
+ * test/ruby/test_lazy_enumerator.rb
+ (TestLazyEnumerator#test_initialize): Make sure
+ Enumerator::Lazy#initialize raises error if the object is
+ frozen. The check was performed by rb_ivar_set() before
+ rb_check_frozen() was added to enumerator_init().
-Thu Sep 25 19:37:34 2014 Eric Wong <e@80x24.org>
+Mon Jul 29 21:06:42 2013 Akinori MUSHA <knu@iDaemons.org>
- * io.c (free_io_buffer): new function for a common pattern
- (clear_readconv): use free_io_buffer
- (rb_io_fptr_finalize): ditto
+ * enumerator.c (enumerator_init): Add a frozenness check to
+ prevent a frozen Enumerator object from being reinitialized with
+ a different enumerable object. This is the least we should do,
+ and more fixes will follow. [Fixes GH-368] Patch by Kenichi
+ Kamiya.
-Thu Sep 25 07:51:07 2014 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+ * enumerator.c (generator_init): Ditto.
- * lib/matrix.rb: Fix docs. Patched by Ben Woodall. [GH-726]
+Mon Jul 29 20:14:24 2013 Masaki Matsushita <glass.saga@gmail.com>
-Wed Sep 24 19:04:04 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * hash.c (rb_hash_assoc): revert r42224. table->type->compare is
+ called only if hashes are matched.
- * enc/unicode/data: New directory for downloaded Unicode
- data files.
+ * test/ruby/test_hash.rb: add a test to check using #== to compare.
-Wed Sep 24 18:59:59 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+Mon Jul 29 17:00:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * tool/downloader.rb: Adjusting example for
- Downloader.download to implementation changes in r47693.
+ * parse.y (yycompile): store file name as String to keep the encoding.
-Wed Sep 24 18:06:06 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * parse.y (rb_parser_compile_string_path, rb_parser_compile_file_path):
+ new functions to pass file name as a String.
- * tool/downloader.rb: Removing unused method
- Downloader.download_if_modified_since.
- (if ever used, just replace with Downloader.download)
+ * parse.y (gettable_gen): return a copy of the original file name, not
+ a copy in filesystem encoding.
-Wed Sep 24 17:59:59 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * vm_eval.c (eval_string_with_cref): use Qundef instead of "(eval)".
- * tool/downloader.rb: Fixing raise after return.
+Mon Jul 29 16:53:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Sep 24 17:55:55 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * hash.c (rb_hash_initialize_copy): copy st_table type even if empty.
+ [ruby-core:56256] [Bug #8703]
- * tool/downloader.rb: Made Unicode data file location available
- via :unicode Symbol.
+Mon Jul 29 16:34:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Sep 24 10:45:45 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * hash.c (rb_hash_initialize_copy): clear old table before copy new
+ table.
- * tool/downloader.rb: Small fix to documentation comment.
+Mon Jul 29 16:34:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Sep 23 22:00:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (rb_hash_assoc): aggregate object can be initialized only
+ with link time constants.
- * parse.y (parse_ident): just after a label, new expression should
- start, cannot be a modifier. [ruby-core:65211] [Bug #10279]
+Mon Jul 29 14:54:44 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Sep 23 16:07:07 2014 Martin Duerst <duerst@it.aoyama.ac.jp>
+ * hash.c (rb_hash_assoc): performance improvement by replacing
+ compare function in RHASH(hash)->ntbl->type temporarily.
- * tool/downloader.rb: added Downloader.download_if_modified_since
- to reduce downloads of large files that change only rarely.
- [ruby-core:65164] [CommonRuby - Feature #10084]
+Mon Jul 29 14:52:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Sep 23 11:55:09 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/mkmf.rb (xsystem): expand environment variable in all macros not
+ expanded with RbConfig. [Bug #8702]
- * .travis.yml: added rubyspec into travis tasks and eliminate to stdout.
+ * test/mkmf/test_framework.rb (create_framework): replace all $@ not
+ only once.
-Mon Sep 22 20:00:29 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Mon Jul 29 06:54:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/win32ole/test_win32ole_variant.rb
- (test_conversion_time2date_with_msec): test by using only
- assert_in_delta to avoid to fail when converting Time object with
- 999999999 nanoseconds into VT_DATE Variant.
+ * win32/win32.c (rb_w32_pipe): use enum for compile time constants,
+ instead of const int for debugging.
-Mon Sep 22 19:49:12 2014 Zachary Scott <e@zzak.io>
+Mon Jul 29 00:11:49 2013 Tanaka Akira <akr@fsij.org>
- * doc/syntax/methods.rdoc: [DOC] [] and []= methods by @process
- [Fixes GH-662] https://github.com/ruby/ruby/pull/662
+ * bignum.c (bigdivrem): Specialized implementation added for
+ nx == 2 && ny == 2
-Mon Sep 22 18:21:35 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sun Jul 28 20:28:41 2013 Masaki Matsushita <glass.saga@gmail.com>
- * .travis.yml: Only osx build is enabled. linux builds is random failure
- and test results of major linux is covered by rubyci.
+ * io.c (io_getpartial): use rb_str_locktmp_ensure().
+ [ruby-core:56121] [Bug #8669]
-Mon Sep 22 12:10:29 2014 Tanaka Akira <akr@fsij.org>
+ * io.c (rb_io_sysread): ditto.
- * test/ruby/test_time_tz.rb: Fix test error with tzdata-2014g.
- [ruby-core:65058] [Bug #10245] Reported by Vit Ondruch.
+ * test/ruby/test_io.rb: add tests for above.
-Mon Sep 22 09:28:43 2014 Eric Wong <e@80x24.org>
+Sun Jul 28 20:10:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/socket/ancdata.c ({send,recv}msg_args_struct): 24 => 16 bytes
- * ext/socket/init.c (connect_arg): ditto
- * ext/socket/raddrinfo.c (getnameinfo_arg): 56 => 48 bytes
- (reductions only for 64-bit systems)
+ * ext/extmk.rb (extmake): should make static libraries for extensions
+ to be statically linked. [Bug #7948]
-Mon Sep 22 02:04:25 2014 Tanaka Akira <akr@fsij.org>
+Sun Jul 28 17:38:32 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/drb/drb.rb: Support graceful shutdown.
- (DRbTCPSocket#initialize): Create a pipe for shutdown notification.
- (DRbTCPSocket#close): Invoke close_shutdown_pipe.
- (DRbTCPSocket#close_shutdown_pipe): New private method.
- (DRbTCPSocket#accept): Use accept_or_shutdown.
- (DRbTCPSocket#accept_or_shutdown): New private method which returns
- nil on shutdown.
- (DRbServer#stop_service): Use shutdown instead of Thread#kill.
- (DRbServer#run): Break infinite loop when main_loop returns nil.
- (DRbServer#main_loop): @protocol.accept may return nil.
+ * string.c: add internal API rb_str_locktmp_ensure().
- * lib/drb/ssl.rb: Follow above change.
+ * io.c (io_fread): use rb_str_locktmp_ensure().
+ [ruby-core:56121] [Bug #8669]
- * lib/drb/unix.rb: Ditto.
+ * test/ruby/test_io.rb: add a test for above.
-Sun Sep 21 13:54:36 2014 Masaki Matsushita <glass.saga@gmail.com>
+Sun Jul 28 13:04:39 2013 Masaki Matsushita <glass.saga@gmail.com>
- * time.c: raise exception when minutes of utc_offset is out of 00-59.
- patch is from Kenichi Kamiya.
- [ruby-dev:47539] [Bug #8679]
+ * io.c (interpret_seek_whence): support SEEK_DATA and SEEK_HOLE.
+ These are whences for lseek(2) supported by Linux since version 3.1.
+ [ruby-core:56123] [Feature #8671]
- * test/ruby/test_time.rb: test for above.
- patch is from Kenichi Kamiya.
+ * test/ruby/test_io.rb: Add tests for above.
-Sun Sep 21 19:04:08 2014 Narihiro Nakamura <authornari@gmail.com>
+Sun Jul 28 12:41:39 2013 Tanaka Akira <akr@fsij.org>
- * st.c (do_hash_bin): unused macro.
+ * bignum.c (absint_numwords_generic): The char_bit variable changed
+ to static constant.
-Sun Sep 21 18:45:01 2014 Narihiro Nakamura <authornari@gmail.com>
+Sun Jul 28 12:03:23 2013 Tanaka Akira <akr@fsij.org>
- * parse.y (parser_class_nest): unused variable after YARV
- merged (r11439).
+ * bignum.c: Constify bary_* functions.
-Sun Sep 21 18:14:03 2014 Narihiro Nakamura <authornari@gmail.com>
+Sun Jul 28 11:12:07 2013 Tanaka Akira <akr@fsij.org>
- * st.c (numberof): unused. internal.h has same macro.
+ * include/ruby/intern.h (rb_absint_size): Declaration moved from
+ internal.h to calculate required buffer size to pack integers.
+ (rb_absint_numwords): Ditto.
+ (rb_absint_singlebit_p): Ditto.
+ [ruby-core:42813] [Feature #6065]
- * node.c (F_CUSTOM2): unused.
+Sun Jul 28 10:54:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Sep 21 14:11:23 2014 Tanaka Akira <akr@fsij.org>
+ * win32/win32.c (rb_w32_pipe): fix pipe name formatting. as "%x" may
+ not contain '0' at all, fill at fixed position instead.
- * thread_pthread.c (native_set_thread_name): New function to
- set thread name visible with ps command on GNU/Linux.
- Ex. ps -o %c -L
+Sun Jul 28 00:35:14 2013 Tanaka Akira <akr@fsij.org>
- * thread.c (thread_start_func_2): Call native_set_thread_name at
- beginning.
- (rb_thread_inspect_msg): Extract from rb_thread_inspect.
+ * bignum.c (rb_big_size): Return the bignum "bytewise" size.
+ [ruby-core:55578] [Feature #8553]
+ This is accepted by matz on DevelopersMeeting20130727Japan.
-Sun Sep 21 12:49:11 2014 Eric Wong <e@80x24.org>
+Sun Jul 28 00:07:48 2013 Tanaka Akira <akr@fsij.org>
- * iseq.c (rb_iseq_defined_string): trim redundant semi-colon
+ * include/ruby/intern.h (rb_integer_pack): Declaration moved from
+ internal.h.
+ (rb_integer_unpack): Ditto.
+ [ruby-core:42813] [Feature #6065]
-Sun Sep 21 12:19:29 2014 Eric Wong <e@80x24.org>
+Fri Jul 26 23:18:13 2013 Kouhei Sutou <kou@cozmixng.org>
- * file.c (rb_find_file_ext_safe): clear tmp buffer on failure
- (rb_find_file_safe): ditto
+ * NEWS: Add a new feature that REXML::Parsers::StreamParser
+ supports "entity" event.
-Sat Sep 20 04:42:18 2014 Masaki Matsushita <glass.saga@gmail.com>
+Fri Jul 26 23:14:31 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/csv.rb: avoid unnecessary object allocations.
- patch is from Andrew Vit. [ruby-core:63215] [Feature #9952]
+ * lib/rexml/parsers/streamparser.rb
+ (REXML::Parsers::StreamParser#parse): Add "entity" event support to
+ listener. [Bug #8689] [ruby-dev:47542]
+ Reported by Ippei Obayashi.
+ * test/rexml/test_stream.rb (StreamTester#entity): Add a test for
+ the above case.
-Sun Sep 21 12:10:18 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri Jul 26 23:05:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rexml/**/*.rb: removed commented-out code.
+ * parse.y (parser_yylex): separate numeric literal from succeeding
+ token, and treat 'e' as floating point number only if followed by
+ exponent part.
-Sat Sep 20 03:46:58 2014 Masaki Matsushita <glass.saga@gmail.com>
+Fri Jul 26 22:14:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c: use rb_equal_opt() for performance improvement.
- [ruby-core:64954] [Feature #10227]
+ * vm_exec.h (CHECK_VM_STACK_OVERFLOW_FOR_INSN): surround with
+ do/while (0), and remove unnecessary casts.
-Sun Sep 21 11:16:56 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Jul 26 20:12:07 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/win32ole/win32ole.c (rbtime2vtdate, vtdate2rbtime): fix
- the bug in conversion of milliseconds. [Bug #10258]
+ * ext/syslog/lib/syslog/logger.rb (Syslog::Logger): Add facility
+ to Syslog::Logger. [Fixes GH-305] patch by Max Shytikov
+ https://github.com/ruby/ruby/pull/305
- * test/win32ole/test_win32ole_variant.rb
- (test_conversion_dbl2date_with_msec,
- test_conversion_time2date_with_msec): use assert_in_delta instead
- of assert_equal to treat an acceptable error range.
+Fri Jul 26 19:25:17 2013 Koichi Sasada <ko1@atdot.net>
-Sun Sep 21 11:03:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_exec.h, tool/instruction.rb: not an error, but a BUG if stack
+ overflow checking failed just before/after the beginning of an
+ instruction. It should be treated as a BUG.
+ Please tell us if your code cause BUG with this problem.
+ This check will removed soon (for performance).
- * signal.c (ruby_signal): although "EINVAL from sigaction(2) is
- not a bug", but even it is a failure. pointed at toRuby/guRuby
- in RubyHiroba.
+Fri Jul 26 18:30:14 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 20 03:00:26 2014 Masaki Matsushita <glass.saga@gmail.com>
+ * array.c (ary_memcpy): cast to int to suppress a warning.
- * lib/tempfile.rb: define parameters appropriately and some
- refactoring.
+Fri Jul 26 18:21:58 2013 Koichi Sasada <ko1@atdot.net>
- * lib/tmpdir.rb: ditto.
+ * array.c (ary_memcpy): try to enable optimization.
+ At least on my environments, I don't see any errors
+ with many trials. Please tell us if you find any GC bugs.
-Sat Sep 20 23:58:21 2014 Tanaka Akira <akr@fsij.org>
+Fri Jul 26 17:49:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * enum.c (enum_chunk): Deprecate the state management.
- (enum_slice_before): Ditto.
+ * win32/file.c (fix_string_encoding): fix target encoding. the
+ parameter `encoding' is not the target encoding but the original
+ encoding.
-Sat Sep 20 15:39:11 2014 Tanaka Akira <akr@fsij.org>
+Fri Jul 26 14:05:19 2013 Zachary Scott <e@zzak.io>
- * enum.c (enum_slice_when): New method: Enumerable#slice_when.
- (slicewhen_i): New function.
- (slicewhen_ii): New function.
+ * ext/fiddle/*: [DOC] More doc on dlopen and RTLD_DEFAULT from r42184
- * enumerator.c (InitVM_Enumerator): New method:
- Enumerator::Lazy#slice_when.
+Fri Jul 26 13:08:53 2013 Zachary Scott <e@zzak.io>
- [ruby-core:62499] [Feature #9826]
+ * ext/fiddle/lib/fiddle.rb: [DOC] Document Fiddle.dlopen(nil)
+ * ext/fiddle/handle.c: [DOC] Document Fiddle::Handle.new(nil)
-Sat Sep 20 11:55:19 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri Jul 26 13:04:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * .travis.yml: added new configurations for osx on travis ci.
- [fix GH-723]
- * test/ruby/test_object.rb: tweaked to memory leak limit for osx build.
+ * load.c (rb_load_internal): use rb_load_file_str() to keep path
+ encoding.
-Sat Sep 20 10:48:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * load.c (rb_require_safe): search in OS path encoding for Windows.
- * parse.y (assoc): allow quoted ID as a key of a hash literal.
- [ruby-core:34453] [Feature #4276]
+ * ruby.c (rb_load_file_str): load file with keeping path encoding.
-Sat Sep 20 10:23:00 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/file.c (rb_file_load_ok): use WCHAR type API assuming incoming
+ path is encoded in UTF-8. [ruby-core:56136] [Bug #8676]
- * compile.c (iseq_set_arguments): store local variable IDs in
- temporary list as Symbols. previously these are stored as
- Fixnums to prevent from GC, but IDs of dynamic symbols can
- exceed Fixnum range and cause RangeError at inverting from
- Fixnum. [ruby-dev:48564] [Bug #10266]
+ * file.c (rb_str_encode_ospath): simplify using rb_str_conv_enc().
-Sat Sep 20 10:02:51 2014 Tanaka Akira <akr@fsij.org>
+ * win32/file.c (fix_string_encoding): simplify with rb_str_conv_enc().
- * ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name#pretty_print):
- New method.
- (OpenSSL::X509::Certificate#pretty_print): Ditto.
+ * win32/file.c (convert_mb_to_wchar): use bare pointer instead of
+ VALUE, and remove useless argument.
- * ext/openssl/lib/openssl/bn.rb (OpenSSL::BN#pretty_print): Ditto.
+Fri Jul 26 11:42:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Sep 20 07:55:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * rational.c (f_round_common): Rational is expected to be returned by
+ Rational#*, but mathn.rb breaks that assumption. [ruby-core:56177]
+ [Bug #8687]
- * vm_eval.c (eval_string_with_cref): fix super from eval with
- scope. set klass in the current control frame to the class of
- the receiver in the context to be evaluated, this class/module
- must match the actual receiver to call super.
- [ruby-core:65122] [Bug #10263]
+Fri Jul 26 01:37:45 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Sep 19 20:06:00 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/ruby.h: check defined(USE_RGENGC_LOGGING_WB_UNPROTECT)
- * symbol.c (rb_str_dynamic_intern): check if the stem ID of
- attrset ID is already registered as a static ID.
- [ruby-dev:48559] [Bug #10259]
+Fri Jul 26 01:21:41 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Sep 19 15:48:09 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * file.c (rb_file_expand_path_internal): fix r42160; skip '~'.
- * win32/Makefile.sub (VCSUP): nothing to do if this worktree is not
- under any VCS (it means that the worktree may be from the release
- package).
+Thu Jul 25 17:53:18 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Sep 19 10:47:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/net/http.rb (Net::HTTP#connect): disable Nagle's algorithm on
+ HTTP connection. [ruby-core:56158] [Feature #8681]
- * test/ruby/test_math.rb (TestMath#assert_infinity): Float#finite?
- returns true also for NaN, so use Float#infinite? instead.
- [ruby-core:65117] [Feature #10261]
+Thu Jul 25 17:49:42 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Sep 19 05:36:16 2014 Eric Wong <e@80x24.org>
+ * re.c (rb_reg_to_s): convert closing parenthesis to the target encoding
+ if it is ASCII incompatible encoding. [ruby-core:56063] [Bug #8650]
- * NEWS: note --with-jemalloc option [ci skip]
+Thu Jul 25 17:21:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Sep 18 16:26:27 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * encoding.c (is_obj_encoding): new macro to check if obj is an
+ Encoding. obj can be any type while is_data_encoding expects T_DATA
+ only.
- * test/rubygems/test_gem_commands_setup_command.rb: @ui uses StringIO
- as its streams, and Encoding.default_external does not effect to
- StringIOs already exist. so, we need to set external_encoding of
- @ui.outs directly. this problem (test failure) does not appear in
- the environments default_external is us-ascii or utf-8.
+Thu Jul 25 17:17:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Sep 18 15:02:15 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * file.c (rb_file_expand_path_internal): should clear coderange after
+ copying user name as binary data.
- * test/rubygems/test_gem_specification.rb: '/' is not always the root.
+Thu Jul 25 16:17:55 2013 Koichi Sasada <ko1@atdot.net>
-Thu Sep 18 09:36:37 2014 Scott Francis <scott.francis@shopify.com>
+ * encoding.c (check_encoding): Check T_DATA or not.
+ is_data_encoding(obj) assumes that `obj' is T_DATA.
- * vm_method.c (Init_Method): make global method cache size
- configurable by environment variable
- "RUBY_GLOBAL_METHOD_CACHE_SIZE" [Fix GH-719]
+Thu Jul 25 13:06:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Sep 18 07:03:36 2014 Eric Wong <e@80x24.org>
+ * dir.c (dir_s_home): use rb_home_dir_of and rb_default_home_dir.
- * test/-ext-/string/test_modify_expand.rb: increase limit
- for {je,tc}malloc [Bug #10236]
+ * file.c (rb_home_dir_of): split from rb_home_dir() for the home
+ directry of the given user, and the user name is a VALUE, not a bare
+ pointer. should raise if the user does not exist.
-Thu Sep 18 06:41:18 2014 Eric Wong <e@80x24.org>
+ * file.c (rb_default_home_dir): split from rb_home_dir() for the home
+ directry of the current user.
- * ext/zlib/zlib.c (struct gzfile): pack (288 => 272 bytes) on 64-bit
+Thu Jul 25 12:32:11 2013 Koichi Sasada <ko1@atdot.net>
-Thu Sep 18 05:44:05 2014 Eric Wong <e@80x24.org>
+ * ext/openssl/ossl.c: support additional three thread synchronization
+ functions. [ruby-trunk - Bug #8386]
- * ext/socket/init.c (rsock_connect): refactor for blocking
- (wait_connectable): clear error before wait
- [Bug #9356]
+Thu Jul 25 07:15:58 2013 Eric Hodel <drbrain@segment7.net>
-Wed Sep 17 23:12:36 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * lib/rubygems: Import RubyGems from master as of commit 4ff70cc
+ * test/rubygems: ditto.
- * lib/uri/rfc3986_parser.rb: specify a regexp for :OPAQUE; generic.rb
- assumes it is present, and will refuse all values otherwise.
- by Matthew Draper <matthew@trebex.net>
- https://github.com/ruby/ruby/pull/718 fix GH-718
+Wed Jul 24 20:57:44 2013 Koichi Sasada <ko1@atdot.net>
-Wed Sep 17 16:22:58 2014 Eric Wong <e@80x24.org>
+ * compile.c (iseq_set_arguments): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * ext/zlib/zlib.c (zlib_mem_alloc): check overflow
+ * compile.c (iseq_set_exception_table): ditto.
-Wed Sep 17 11:33:35 2014 Laurent Arnoud <laurent@spkdev.net>
+Wed Jul 24 19:49:54 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/fiddle/test_import.rb (Fiddle::TestImport#test_sizeof):
- added test for long long [fix GH-716]
+ * lib/uri/generic.rb (find_proxy): raise BadURIError if the URI is
+ a relative URI. [Bug #8645]
-Wed Sep 17 11:09:21 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jul 24 18:56:06 2013 Koichi Sasada <ko1@atdot.net>
- * tool/rbinstall.rb: fixed invalid options with latest rubygems.
- https://github.com/rubygems/rubygems/issues/1013
+ * vm_insnhelper.c (vm_expandarray): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
-Tue Sep 16 19:19:00 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_insnhelper.c (vm_caller_setup_args): ditto.
- * benchmark/bm_app_aobench.rb: update outdated links to the
- original program. [ruby-dev:48550] [Feature #10247]
+ * vm_insnhelper.c (vm_yield_setup_block_args): ditto.
-Tue Sep 16 01:06:40 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Jul 24 18:40:11 2013 Koichi Sasada <ko1@atdot.net>
- * reg*.c: Merge Onigmo 5.15.0 38a870960aa7370051a3544
+ * array.c, gc.c: move ary_unprotect_logging() into
+ rb_gc_unprotect_logging() which is general version
-Mon Sep 15 16:21:10 2014 Eric Wong <e@80x24.org>
+ * include/ruby/ruby.h: add USE_RGENGC_LOGGING_WB_UNPROTECT
+ to enable.
- * io.c (struct io_advise_struct): 32 => 24 bytes on 64-bit
- * io.c (struct io_internal_writev_struct): 24 => 16 bytes on 64-bit
- * process.c (struct waitpid_arg): ditto
+Wed Jul 24 17:37:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Sep 15 10:29:25 2014 Natalie Weizenbaum <nweiz@google.com>
+ * file.c (rb_file_expand_path_internal): preserve the file name
+ encoding in an exception message.
- * ext/pathname/lib/pathname.rb (SAME_PATHS):
- Pathname#relative_path_from uses String#casecmp to compare strings
- on case-insensitive filesystem platforms (e.g., Windows). This can
- return nil for strings with different encodings, and the code
- previously assumed that it always returned a Fixnum. [Fix GH-713]
+Wed Jul 24 08:04:49 2013 Koichi Sasada <ko1@atdot.net>
-Mon Sep 15 09:43:18 2014 Sho Hashimoto <sho.hsmt@gmail.com>
+ * test/-ext-/tracepoint/test_tracepoint.rb: add GC on/off to count
+ GC events strictly.
- * ext/fiddle/lib/fiddle/import.rb (Fiddle::Importer#sizeof): fix typo,
- SIZEOF_LONG_LON. [Fix GH-714]
+Tue Jul 23 23:19:24 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * ext/openssl/extconf.rb (CRYPTO_THREADID): check exist or not.
+
+ * ext/openssl/ossl.c (ossl_thread_id): use rb_nativethread_self()
+ implemented at r42137 to allow threads which doesn't associated with
+ Ruby thread to use openssl functions.
+
+ * ext/openssl/ossl.c (Init_ossl_locks): If CRYPTO_THREADID is defined
+ (OpenSSL 1.0.0 or later has it) use CRYPTO_THREADID_set_callback()
+ instead of CRYPTO_set_id_callback() because its argument is
+ unsigned long; it may cause id collision on mswin64
+ whose sizeof(unsigned long) < sizeof(void*).
+ http://www.openssl.org/docs/crypto/threads.html
+
+ * ext/openssl/ossl.c (ossl_threadid_func): defined for above.
+
+Tue Jul 23 20:47:36 2013 Tanaka Akira <akr@fsij.org>
-Mon Sep 15 08:13:40 2014 Matthew Draper <matthew@trebex.net>
+ * bignum.c: Move functions.
- * sprintf.c (rb_str_format): rational 'f' format works for more
- values. [fix GH-717]
+Tue Jul 23 20:14:55 2013 Tanaka Akira <akr@fsij.org>
-Sun Sep 14 16:57:27 2014 Eric Wong <e@80x24.org>
+ * bignum.c (bary_divmod): Add special cases for x < y easily detected
+ and nx == 2 && ny == 2.
- * template/vm.inc.tmpl: "insns.c" => "insns.def"
- * tool/instruction.rb: typo fix
+Tue Jul 23 19:48:38 2013 Koichi Sasada <ko1@atdot.net>
-Sun Sep 14 12:29:52 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * thread_(pthread|win32).h: rename rb_thread_cond_t to
+ rb_nativethread_cond_t.
- * test/test_tracer.rb: fixed testcase for rubygems update.
+ * thread.c, thread_pthread.c, thread_win32.c, vm_core.h: catch up
+ renaming.
-Sun Sep 14 12:29:02 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 23 19:44:32 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rubygems: Update to RubyGems 2.4.1 master(713ab65)
- Complete history at:
- https://github.com/rubygems/rubygems/blob/master/History.txt#L3-L216
+ * thread_native.h: add rb_nativethread_self() which returns
+ current running native thread identifier.
+ * thread_[pthread|win32].c: implement rb_nativethread_self().
+
+Tue Jul 23 19:34:11 2013 Koichi Sasada <ko1@atdot.net>
+
+ * thread_pthread.h, thread_win32.h: rename rb_thread_id_t to
+ rb_nativethread_id_t.
+
+ * thread_pthread.c, vm_core.h: use rb_nativethread_id_t.
+
+Tue Jul 23 18:56:11 2013 Koichi Sasada <ko1@atdot.net>
+
+ * ext/openssl/ossl.c: use system native (system provided)
+ thread locking APIs added by last commit.
+ This patch fixes [Bug #8386].
+ "rb_mutex_*" APIs control only "Ruby" threads.
+ Not for native threads.
+
+Tue Jul 23 18:44:15 2013 Koichi Sasada <ko1@atdot.net>
+
+ * thread_native.h: added.
+ Move native thread related lines from vm_core.h.
+ And declare several functions "rb_nativethread_lock_*",
+ manipulate locking.
+
+ * common.mk: add thread_native.h.
+
+ * thread.c: add functions "rb_nativethread_lock_*".
+
+ * thread.c, thread_[pthread,win32].[ch]: rename rb_thread_lock_t
+ to rb_nativethread_lock_t to make it clear that this lock is for
+ native threads, not for ruby threads.
+
+Tue Jul 23 16:14:57 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (gc_before_sweep): fix spacing.
+
+Tue Jul 23 15:57:11 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (heap_get_freeobj): clear slot->freelist here.
+ This means that this slot doesn't have any free objects.
+ And store this slot with objspace->heap.using_slot.
+
+ * gc.c (gc_before_sweep): restore objspace->freelist
+ into objspace->heap.using_slot->freelist.
+ This means that using_slot has free objects which are
+ pointed from objspace->freelist.
+
+ * gc.c (gc_slot_sweep): do not need to clear slot->freelist.
+
+Tue Jul 23 09:34:49 2013 Zachary Scott <e@zzak.io>
+
+ * sample/drb/README*.rdoc: [DOC] migrate DRb sample READMEs to rdoc
+
+Tue Jul 23 09:28:05 2013 Zachary Scott <e@zzak.io>
+
+ * lib/drb/invokemethod.rb: [DOC] nodoc InvokeMethod18Mixin
+
+Tue Jul 23 08:44:37 2013 Eric Hodel <drbrain@segment7.net>
+
+ * ext/openssl/ossl_asn1.c (asn1time_to_time): Implement YYMMDDhhmmZ
+ format for ASN.1 UTCTime. [ruby-trunk - Bug #8664]
+ * test/openssl/test_asn1.rb: Test for the above.
+
+Tue Jul 23 08:11:32 2013 Zachary Scott <e@zzak.io>
+
+ * lib/rexml/streamlistener.rb: [DOC] Fix examples in
+ REXML::StreamListener#entitydecl patch by Ippei Obayashi [Bug #8665]
+
+Tue Jul 23 07:44:59 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems: Import RubyGems from master as of commit b165260
* test/rubygems: ditto.
-Sun Sep 14 11:03:24 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+Tue Jul 23 07:14:31 2013 Tanaka Akira <akr@fsij.org>
- * ext/psych/lib/psych.rb: update version
- * ext/psych/psych.gemspec: ditto
+ * bignum.c (bary_mulsub_1xN): New function.
+ (bary_mul_toom3): Use bary_mulsub_1xN.
-Sun Sep 14 08:43:37 2014 Eric Wong <e@80x24.org>
+Tue Jul 23 03:32:23 2013 Tanaka Akira <akr@fsij.org>
- * ccan/container_of/container_of.h (container_of_or_null): added
- [ccan 7ec5b8e06b2fd5fa98b1fcde1158c286d2d429d8] (David Gibson)
+ * bignum.c (KARATSUBA_BALANCED): New macro.
+ (TOOM3_BALANCED): Ditto.
+ (bary_mul_balance_with_mulfunc): Use KARATSUBA_BALANCED and
+ TOOM3_BALANCED.
+ (rb_big_mul_balance): Relax a condition.
+ (rb_big_mul_karatsuba): Use KARATSUBA_BALANCED.
+ (rb_big_mul_toom3): Use TOOM3_BALANCED.
+ (bary_mul_karatsuba_branch): Use KARATSUBA_BALANCED.
+ (bary_mul_toom3_branch): Use TOOM3_BALANCED.
-Sun Sep 14 08:41:44 2014 Eric Wong <e@80x24.org>
+Tue Jul 23 01:34:45 2013 Tanaka Akira <akr@fsij.org>
- * ccan/list/list.h (list_del_init, list_node_init): new functions
- for multiple list_del() calls
- [ccan ec8654d94d3c5c47aa5f82698f7e8048c79765b1] (Rusty Russell)
+ * bignum.c (bigdivrem_mulsub): Extracted from bigdivrem1.
+ (bigdivrem1): Use bary_add.
-Sat Sep 13 22:19:26 2014 Bernard Potocki <bernard.potocki@imanel.org>
+Mon Jul 22 18:39:52 2013 Masaki Matsushita <glass.saga@gmail.com>
- * hash.c (rb_hash_aset): fix misleading example which may suggest
- that Hash.store will return self instead of value - Hash#store
- is returning value and update itself, as well as Hash#[]=.
- [Fix GH-715]
+ * string.c (rb_str_enumerate_chars): specify array capa
+ with str_strlen().
-Sat Sep 13 15:16:31 2014 Eric Wong <e@80x24.org>
+ * string.c (rb_str_enumerate_codepoints): ditto.
- * class.c: use ALLOC(rb_subclass_entry_t)
+Mon Jul 22 18:01:33 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sat Sep 13 14:14:00 2014 Eric Wong <e@80x24.org>
+ * string.c (rb_str_enumerate_chars): specify array capa.
- * process.c (free_exec_arg): remove
- (memsize_exec_arg): ptr is never NULL
- (exec_arg_data_type): use RUBY_TYPED_DEFAULT_FREE
+Mon Jul 22 17:24:14 2013 Masaki Matsushita <glass.saga@gmail.com>
- * variable.c (autoload_i_free): remove
- (autoload_data_i_type): use RUBY_TYPED_DEFAULT_FREE
- (autoload_memsize): ptr is never NULL
+ * string.c (rb_str_each_char_size): performance improvement by
+ using rb_str_length().
- * vm_backtrace.c (location_free): remove
- (location_mark): ptr is never NULL
- (location_data_type): use RUBY_TYPED_DEFAULT_FREE
- (backtrace_mark): ditto
- (backtrace_free): ditto
+Mon Jul 22 16:32:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Sep 13 13:43:07 2014 Eric Wong <e@80x24.org>
+ * vm_eval.c (eval_string_with_cref): check by Check_TypedStruct
+ instead of rb_obj_is_kind_of.
- * doc/NEWS-2.0.0: fix typo for default RUBY_FIBER_MACHINE_STACK_SIZE
- [ci skip]
+Mon Jul 22 13:19:22 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 13 11:16:58 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * array.c (ary_resize_capa): use RARRAY_RAWPTR() because
+ this code creates no new references.
- * ext/win32ole/win32ole_event.c(ev_advise, ole_event_free,
- fev_s_allocate, fev_unadvise): avoid segmentation fault when COM
- server freed before calling Unadvise from WIN32OLE_EVENT object.
- * ext/win32ole/win32ole.c: ditto.
+Mon Jul 22 12:58:18 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 13 09:47:44 2014 Eric Wong <e@80x24.org>
+ * array.c (ary_memfill): added.
- * man/ruby.1: use https for *.ruby-lang.org links
+ * array.c (rb_ary_initialize): use ary_memfill().
-Sat Sep 13 06:31:23 2014 Eric Wong <e@80x24.org>
+ * array.c (rb_ary_fill): ditto.
- * vm.c (thread_alloc): remove needless volatile
+ * array.c (rb_ary_slice_bang): use RARRAY_RAWPTR() because
+ this code creates no new references.
-Sat Sep 13 06:13:55 2014 Eric Wong <e@80x24.org>
+Mon Jul 22 10:09:46 2013 Koichi Sasada <ko1@atdot.net>
- * proc.c (proc_free): remove, use RUBY_TYPED_DEFAULT_FREE
- (proc_mark, proc_memsize): remove needless branching
+ * gc.c (gc_slot_sweep): need to add empty RVALUE as freeobj.
- * vm.c (env_free): remove, use RUBY_TYPED_DEFAULT_FREE
- (env_mark, env_memsize): remove needless branching
+Mon Jul 22 09:48:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Sep 13 05:52:15 2014 Eric Wong <e@80x24.org>
+ * vm_eval.c (eval_string_with_cref): use the given file name unless
+ eval even if scope is given. additional fix for [Bug #8436].
+ based on the patch by srawlins at [ruby-core:56099] [Bug #8662].
- * proc.c (rb_proc_alloc): inline and move to vm.c
- (rb_proc_wrap): new wrapper function used by rb_proc_alloc
- (proc_dup): simplify alloc + copy + wrap operation
- [ruby-core:64994]
+Mon Jul 22 09:24:19 2013 Kouji Takao <kouji@takao7.net>
- * vm.c (rb_proc_alloc): new inline function
- (rb_vm_make_proc): call rb_proc_alloc
+ * ext/readline/readline.c (Init_readline): added
+ Readline.delete_text. [ruby-dev:45789] [Feature #6626]
+ * ext/readline/extconf.rb: check for rl_delete_text() in Readline library.
- * vm_core.h: remove rb_proc_alloc, add rb_proc_wrap
+ Thanks, Nobuyoshi Nakada, for the patch.
- * benchmark/bm_vm2_newlambda.rb: short test to show difference
+Mon Jul 22 03:15:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Sep 13 04:40:04 2014 Eric Wong <e@80x24.org>
+ * ext/date/date_parse.c (rfc2822_cb): check if wday is given, since it
+ can be omitted.
- * process.c (Init_process): subclass Thread as Process::Waiter
- (rb_detach_process): use Process::Waiter instead of singleton class
- Thanks to headius and nobu. [Bug #10231]
+Mon Jul 22 00:15:20 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_process.rb (test_process_detach): new test
+ * bignum.c (bary_sq_fast): Refine expressions.
- * inits.c (rb_call_inits): call Init_Thread before Init_process to
- ensure Process::Waiter may be a subclass of Thread
+Sun Jul 21 21:08:59 2013 Tanaka Akira <akr@fsij.org>
-Fri Sep 12 18:14:28 2014 Eric Wong <e@80x24.org>
+ * bignum.c (bary_mul): Use simple multiplication if yl is small.
+ (rb_cstr_to_inum): Invoke bigsq instead of bigmul0.
+ (bigsq): Re-implemented.
+ (bigmul0): Invoke bigsq if two arguments are identical.
- * vm.c (env_alloc): inline to avoid extra zeroing
- tiny speedup [ruby-core:64980]
+Sun Jul 21 09:58:19 2013 Tanaka Akira <akr@fsij.org>
-Fri Sep 12 17:13:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (bary_mul_toom3): New function based on bigmul1_toom3.
+ (bary_mul_toom3_branch): Call bary_mul_toom3.
+ (rb_big_mul_toom3): Ditto.
+ (bigmul1_toom3): Removed.
+ (big_real_len): Ditto.
+ (big_split): Ditto.
+ (big_split3): Ditto.
- * vm_method.c (rb_method_entry_make, remove_method): ditto.
+Sun Jul 21 08:12:16 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Fri Sep 12 14:39:55 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * proc.c (proc_to_s): use PRIsVALUE to preserve the result encoding.
- * gems/bundled_gems: Upgraded to test-unit-3.0.1 and minitest-5.4.1
+Sun Jul 21 03:36:18 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Sep 12 06:55:40 2014 Eric Wong <e@80x24.org>
+ * hash.c (rb_hash_flatten): use NUM2INT to raise TypeError on 32bit
+ platform. it's introduced by r42039
- * string.c (Init_frozen_strings): use st_init_table_with_size
+Sun Jul 21 01:07:45 2013 Benoit Daloze <eregontp@gmail.com>
-Fri Sep 12 06:15:37 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * common.mk (help): Fix environment variable name and argument.
+ Actually it can also be a directory or any argument for
+ test/unit runner. [Fixes GH-363]
- * string.c (sym_find): remove Symbol.find because we have Symbol GC now.
- https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20140904Japan
- If you still want this, request again on Redmine. [Feature #7854]
- https://bugs.ruby-lang.org/issues/7854
+Sat Jul 20 22:44:50 2013 Zachary Scott <e@zzak.io>
- * ext/-test-/symbol/init.c (sym_find): moved from string.c for tests.
+ * common.mk: Document running a single test [Fixes GH-363]
+ Patch by Avdi Grimm https://github.com/ruby/ruby/pull/363
-Fri Sep 12 04:24:03 2014 Eric Wong <e@80x24.org>
+Sat Jul 20 22:39:56 2013 Zachary Scott <e@zzak.io>
- * insns.def (once): define and use fake RUNNING_THREAD_ONCE_DONE
- pointer to indicate is->once.running_thread is done.
+ * sample/*: whitespace patch by Sergio Campama [Fixes GH-364]
+ https://github.com/ruby/ruby/pull/364
- * vm_core.h (iseq_inline_storage_entry): remove done field,
- allowing the union to be reduced from 24=>16 bytes on 64-bit
- [Feature #10187]
+Sat Jul 20 22:33:13 2013 Zachary Scott <e@zzak.io>
-Thu Sep 11 20:10:00 2014 Koichi Sasada <ko1@atdot.net>
+ * doc/regexp.rdoc: [DOC] Fix typo in example [Fixes GH-365]
+ Patch by Juanito Fatas https://github.com/ruby/ruby/pull/365
- * vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack.
+Sat Jul 20 17:46:03 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Thu Sep 11 19:50:57 2014 Koichi Sasada <ko1@atdot.net>
+ * string.c (rb_str_succ): add missing case NEIGHBOR_WRAPPED.
+ r42078 caused buggy behavior like "\xFF".b -> "\x01\xFF".b
- * vm.c (rb_vm_register_special_exception): make new function to
- make and register special exceptions.
+Sat Jul 20 15:22:38 2013 Koichi Sasada <ko1@atdot.net>
- * vm.c (rb_vm_mark): do not need to mark special exceptions
- because they are registered by rb_gc_register_mark_object().
+ * array.c (rb_ary_resize): use simple memcpy because there are no new
+ references.
- * eval.c (Init_eval): use rb_vm_register_special_exception().
+Sat Jul 20 15:02:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (Init_GC): ditto.
+ * safe.c (ruby_safe_level_4_warning): define for old extension
+ libraries. [Bug #8652]
- * proc.c (Init_Proc): ditto.
+Sat Jul 20 14:38:00 2013 Koichi Sasada <ko1@atdot.net>
- * thread.c (Init_Thread): ditto.
+ * array.c (ary_make_shared): make shared array shady.
+ Making non-shady shared array causes SEGV (see rubyci).
+ It seems a bug around shared array.
-Thu Sep 11 19:32:30 2014 Koichi Sasada <ko1@atdot.net>
+Sat Jul 20 12:14:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (rb_gc_mark_values): added.
- This function is similar to rb_gc_mark_locations(), but not
- conservative.
+ * string.c (enc_succ_char, enc_pred_char): consider wchar case.
+ [ruby-core:56071] [Bug #8653]
- * internal.h: ditto.
+ * string.c (rb_str_succ): do not replace with invalid char.
- * vm.c (env_mark): use rb_gc_mark_values() because env values should
- be Ruby VALUEs.
-
-Thu Sep 11 19:16:39 2014 Koichi Sasada <ko1@atdot.net>
-
- * gc.c (gc_mark_ptr): rename to gc_mark_set.
-
- * gc.c (gc_mark): add gc_mark_ptr() to skip is_markable_object()
- check. gc_mark_maybe() can use gc_mark_ptr() directly because
- passed pointer is checked by is_pointer_to_heap().
+ * encoding.c (rb_enc_code_to_mbclen): add new function which returns
+ mbclen from codepoint like as rb_enc_codelen() but 0 for invalid
+ char.
-Thu Sep 11 18:40:16 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * include/ruby/encoding.h (rb_enc_code_to_mbclen): declaration and
+ shortcut macro.
- * .gitignore: ignored temporary files and coverage results.
+Fri Jul 19 21:59:12 2013 Koichi Sasada <ko1@atdot.net>
-Thu Sep 11 18:15:30 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c: declare type_name() at the beginning of file.
- * .gitignore: ignored only simplecov.
- * coverage/README: Added coverage docs.
+Fri Jul 19 21:35:09 2013 Koichi Sasada <ko1@atdot.net>
-Thu Sep 11 17:25:31 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c: reduce shady operations.
- * include/ruby/ruby.h, gc.c: add new internal events
- RUBY_INTERNAL_EVENT_GC_ENTER and
- RUBY_INTERNAL_EVENT_GC_EXIT.
+ * array.c (rb_ary_modify, ary_make_partial, rb_ary_splice,
+ rb_ary_replace, rb_ary_eql, rb_ary_compact_bang):
+ use RARRAY_RAWPTR() instead of RARRAY_PTR().
- When invoking GC process, GC_ENTER event is called.
- When exiting from GC process, GC_EXIT event is called.
+ * array.c (rb_ary_shift): use RARRAY_PTR_USE() without WB because
+ there are not new relations.
- Incremental GC (incremental marking and lazy sweep) can call
- these events many times.
+ * array.c (ary_ensure_room_for_unshift): ditto.
- For example (minor marking):
- (1) GC_ENTER
- - (2) GC_START (minor GC)
- (minor marking)
- - (3) GC_END_MARK
- (start lazy sweep)
- (4) GC_EXIT
- (ruby process)
- (5) GC_ENTER
- (lazy sweep)
- (6) GC_EXIT
- (ruby process)
- (... repeat (5), (6))
- (7) GC_ENTER
- (finish lazy sweep)
- - (8) GC_END_SWEEP
- (9) GC_EXIT
+ * array.c (rb_ary_sort_bang): ditto.
- 2nd example (incremental major marking):
- (1) GC_ENTER
- - (2) GC_START (minor GC)
- (start incremental marking)
- (3) GC_EXIT
- (ruby process)
- (4) GC_ENTER
- (incremental marking)
- (5) GC_EXIT
- (ruby process)
- (... repeat (4), (5))
- (6) GC_ENTER
- (finish incremental marking)
- - (7) GC_END_MARK
- (start lazy sweep)
- (8) GC_EXIT
- (ruby process)
- (9) GC_ENTER
- (lazy sweep)
- (10) GC_EXIT
- (ruby process)
- (... repeat (9), (10))
- (11) GC_ENTER
- (finish lazy marking)
- - (12) GC_STOP_SWEEP
- (13) GC_EXIT
+ * array.c (rb_ary_delete_at): ditto.
- These internal events enable to measure GC pause time completely.
+ * array.c (rb_ary_reverse_m): use RARRAY_RAWPTR() because
+ there are not new relations.
-Thu Sep 11 17:04:54 2014 Eric Wong <e@80x24.org>
+Fri Jul 19 20:58:20 2013 Koichi Sasada <ko1@atdot.net>
- * lib/benchmark.rb: remove CLOCK_MONOTONIC_RAW support
- Thanks to Vit Ondruch for reporting the issue on ARM.
- [Bug #10202]
+ * array.c: reduce shade operations.
-Thu Sep 11 14:31:57 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c (rb_ary_modify): use RARRAY_RAWPTR().
- * include/ruby/ruby.h: freeze nil/true/false.
- [Feature #8923]
+ * array.c (ary_make_substitution, rb_ary_s_create, ary_make_partial,
+ rb_ary_splice, rb_ary_resize, rb_ary_rotate_m, rb_ary_times):
+ use ary_memcpy().
- * gc.c (should_be_finalizable): check frozen after checkin FL_ABLE.
+Fri Jul 19 19:55:28 2013 Koichi Sasada <ko1@atdot.net>
- * object.c (rb_obj_taint): check
- OBJ_TAINTABLE(obj).
+ * array.c (ary_mem_clear): added. This operation doesn't need WB
+ because this operation creates a reference to Qnil.
- * object.c (rb_obj_freeze): remove immediate_frozen_tbl
- because all of immediate values are frozen. YAY!
+ * array.c (ary_make_shared, rb_ary_store, rb_ary_shift_m,
+ rb_ary_splice, rb_ary_resize, rb_ary_fill): use ary_mem_clear()
+ instead of rb_mem_clear().
- * object.c (rb_obj_frozen_p): ditto.
+ * array.c (ary_make_shared): use RARRAY_RAWPTR() instead of RARRAY_PTR().
- * test/ruby/test_eval.rb: skip instance_variable_set for
- frozen objects.
+Fri Jul 19 19:18:51 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_weakmap.rb: check ArgumentError instead of
- RuntimeError.
+ * array.c: fix commit miss.
+ RGENGC_UNPROTECT_LOGGING should be 0.
-Thu Sep 11 10:03:16 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri Jul 19 19:15:30 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(21b241a)
+ * array.c (rb_ary_resurrect): use RARRAY_RAWPTR() because there is no
+ writing.
-Wed Sep 10 17:52:25 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c (rb_ary_new_from_values): use ary_memcpy().
- * compile.c (rb_vm_addr2insn): rename to rb_vm_insn_addr2insn
- to clear what address.
+Fri Jul 19 19:07:31 2013 Koichi Sasada <ko1@atdot.net>
-Wed Sep 10 16:22:26 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c (ary_memcpy): add a function to copy VALUEs into ary
+ with write barrier. If ary is promoted, use write barrier correctly.
- * test/ruby/test_gc.rb: fix condition.
+ * array.c (rb_ary_cat, rb_ary_unshift_m, rb_ary_dup,
+ rb_ary_sort_bang, rb_ary_replace, rb_ary_plus): use ary_memcpy().
-Wed Sep 10 15:29:46 2014 Eric Wong <e@80x24.org>
+Fri Jul 19 15:32:57 2013 Koichi Sasada <ko1@atdot.net>
- * vm_core.h (rb_call_info_t): ci->flag becomes 32-bit unsigned int
- ci->index becomes a 32-bit signed int (from signed long).
- Reorder for better packing on 64-bit, giving an 8 byte reduction
- from 104 to 96 bytes for each ci.
- [Feature #10187]
+ * array.c (rb_ary_store): use RARRAY_PTR_USE() instead of RARRAY_PTR().
+ Clearing memory space doesn't need WBs.
- * compile.c (new_callinfo, setup_args, iseq_compile_each,
- iseq_build_from_ary_body): adjust for type changes
+Fri Jul 19 15:19:37 2013 Koichi Sasada <ko1@atdot.net>
- * vm_insnhelper.c (vm_getivar): ditto
+ * array.c (ary_ensure_room_for_push): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR. In this code, there are no "write" operation.
-Wed Sep 10 15:07:35 2014 Eric Wong <e@80x24.org>
+ * array.c (rb_ary_equal): ditto.
- * compile.c (rb_iseq_translate_threaded_code):
- modify in-place w/o copy
- (rb_vm_addr2insn): new function for debug
- (rb_iseq_original_iseq): ditto
- (iseq_set_sequence): assign iseq_encoded directly
- [Feature #10185]
+ * array.c (recursive_equal): ditto.
- * vm_core (rb_iseq_t): move original ->iseq to bottom
+Fri Jul 19 15:09:22 2013 Koichi Sasada <ko1@atdot.net>
- * iseq.c (iseq_free, iseq_free): adjust for new layout
- (rb_iseq_disasm): use original iseq for dump
- (iseq_data_to_ary): ditto
- (rb_iseq_line_trace_each): ditto
- (rb_iseq_build_for_ruby2cext): use iseq_encoded directly
+ * gc.c, internal.h (rb_gc_writebarrier_remember_promoted): add a new
+ function to remember an specified object. This api is only
+ experimental (strongly depend on WB/rgengc strategy).
- * vm_dump.c (rb_vmdebug_debug_print_pre): use original iseq
+Fri Jul 19 14:56:00 2013 Koichi Sasada <ko1@atdot.net>
-Wed Sep 10 15:00:11 2014 Eric Wong <e@80x24.org>
+ * array.c (ary_unprotect_logging): use (void *) for first parameter
+ because VALUE is not defined before including ruby/ruby.h.
- * time.c (time_mark): remove NULL check
- (time_memsize): ditto
- (time_free): remove, use RUBY_TYPED_DEFAULT_FREE instead
- [Feature #10219]
+Fri Jul 19 14:19:48 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Wed Sep 10 14:14:57 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/pathname/pathname.c (path_inspect): use PRIsVALUE to preserve
+ the result encoding.
- * common.mk (encs enc trans libencs libenc libtrans): force to run
- enk.mk because common.mk does not know the dependency, but enk.mk
- knows. [ruby-dev:48530] [Bug #10220]
+Fri Jul 19 12:35:41 2013 Tanaka Akira <akr@fsij.org>
-Wed Sep 10 11:59:10 2014 Koichi Sasada <ko1@atdot.net>
+ * test/socket/test_tcp.rb (test_initialize_failure): Use EADDRNOTAVAIL
+ to test an error message generated by bind() failure.
- * gc.c (gc_stat): update rdoc.
+Fri Jul 19 11:27:38 2013 Zachary Scott <e@zzak.io>
-Wed Sep 10 11:52:08 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/racc/parser.rb: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
- * gc.c (gc_stat_internal): rename:
- * malloc_increase -> malloc_increase_bytes
- * malloc_limit -> malloc_increase_bytes_limit
- * oldmalloc_increase -> oldmalloc_increase_bytes
- * oldmalloc_limit -> oldmalloc_increase_bytes_limit
- ref: [Feature #9924]
+Fri Jul 19 11:26:28 2013 Zachary Scott <e@zzak.io>
-Wed Sep 10 11:45:40 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/psych/lib/psych*: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
- * gc.c (gc_stat_internal): rename `heap_used' to `heap_allocated_pages'.
- ref: [Feature #9924]
+Fri Jul 19 11:25:12 2013 Zachary Scott <e@zzak.io>
- * test/ruby/test_gc.rb: add constraints test for gc stat information.
+ * lib/rdoc/*: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
-Wed Sep 10 11:31:16 2014 Koichi Sasada <ko1@atdot.net>
+Fri Jul 19 11:23:55 2013 Zachary Scott <e@zzak.io>
- * gc.c (gc_stat_internal): rename:
- * remembered_shady_object -> remembered_wb_unprotected_objects
- * remembered_shady_object_limit -> remembered_wb_unprotected_objects_limit
- * old_object -> old_objects
- * old_object_limit -> old_objects_limit
- ref: [Feature #9924]
+ * lib/rubygems*: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
-Wed Sep 10 11:12:25 2014 Koichi Sasada <ko1@atdot.net>
+Fri Jul 19 11:16:54 2013 Akinori MUSHA <knu@iDaemons.org>
- * gc.c (gc_stat_internal): support:
- * total_allocated_pages
- * total_freed_pages
- ref: [Feature #9924]
+ * lib/set.rb (Set#to_set): Define Set#to_set so that aSet.to_set
+ returns self. [Fixes GH-359]
-Wed Sep 10 10:48:04 2014 Koichi Sasada <ko1@atdot.net>
+Fri Jul 19 11:10:23 2013 Zachary Scott <e@zzak.io>
- * test/ruby/test_gc.rb: catch up last fix.
+ * lib/rake/*: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
-Wed Sep 10 10:36:08 2014 Koichi Sasada <ko1@atdot.net>
+Fri Jul 19 01:04:14 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (objspace_total_slot): rename objspace_available_slots.
+ * ext/-test-/bignum/intpack.c: Renamed from ext/-test-/bignum/pack.c.
+ (Init_intpack): Renamed from Init_pack.
+ Reported by Naohisa Goto. [ruby-dev:47526] [Bug #8655]
- * gc.c (objspace_live_slot, objspace_free_slot): rename
- ..._slot() to ..._slots().
+Fri Jul 19 00:54:27 2013 Benoit Daloze <eregontp@gmail.com>
- * gc.c (objspace_free_slot): should subtract heap_pages_final_slots.
+ * test/ruby/test_array.rb (test_count): add a test case for #count
+ with an argument. See Bug #8654.
- * gc.c (gc_stat_internal):
- * add `heap_available_slots' field
- * rename heap_live_slot to heap_live_slots
- * rename heap_free_slot to heap_free_slots
- ref: [Feature #9924]
+Thu Jul 18 23:45:06 2013 Masaki Matsushita <glass.saga@gmail.com>
-Wed Sep 10 07:22:53 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c (rb_ary_eql): compare RARRAY_PTR() for performance
+ improvement in case of that self and other are shared.
- * gc.c: refactoring for RGENGC_PROFILE > 0.
+Thu Jul 18 22:46:42 2013 Zachary Scott <e@zzak.io>
- * rename rb_objspace_t::profile::..._count
- to rb_objspace_t::profile::total_..._count
- * rename promote_infant_types to promote_types
+ * lib/cgi.rb: [DOC] Capitalize "Ruby" in documentation [Fixes GH-341]
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
+ * lib/webrick.rb: ditto
+ * lib/scanf.rb: ditto
+ * lib/xmlrpc/config.rb: ditto
+ * lib/resolv.rb: ditto
+ * lib/e2mmap.rb: ditto
+ * lib/fileutils.rb: ditto
+ * lib/mkmf.rb: ditto
+ * lib/cgi/session.rb: ditto
+ * lib/yaml.rb: ditto
+ * lib/erb.rb: ditto
+ * lib/irb.rb: ditto
+ * lib/tracer.rb: ditto
+ * lib/net/http.rb: ditto
+ * ext/syslog/lib/syslog/logger.rb: ditto
+ * sample/pty/expect_sample.rb: ditto
- * gc.c (gc_remember_unprotected): count remembered shady objects here.
+Thu Jul 18 21:30:50 2013 Tanaka Akira <akr@fsij.org>
-Wed Sep 10 03:12:12 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * bignum.c (bary_sq_fast): Specialize the last iteration of the
+ outer loop.
+ (bigfixize): A condition simplified.
- * gc.c (init_mark_stack): MEMZERO() receive type as 2nd argument instead
- of size.
- Coverity Scan found this bug.
+Thu Jul 18 21:15:41 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Sep 9 21:55:39 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * array.c (rb_ary_equal): compare RARRAY_PTR() for performance
+ improvement in case of that self and other are shared.
- * ext/win32ole/sample/excel2.rb: remove some commented-out code.
- rotate graph more slowly to see graph clearly.
+Thu Jul 18 20:44:51 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Sep 9 19:52:33 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c (rb_ary_fill): use memfill().
- * gc.c: rename rb_objspace_t::marked_objects to marked_slots.
+Thu Jul 18 20:35:14 2013 Benoit Daloze <eregontp@gmail.com>
- * gc.c (gc_marks_start): should be clear first.
+ * array.c (rb_ary_count): check length to avoid SEGV
+ while iterating. Remove other pointer loop when arg is given.
- * gc.c (gc_marks_start): remembered shady objects are also marked.
+ * test/ruby/test_array.rb (test_count): add test for bug.
+ [ruby-core:56072] [Bug #8654]
- * gc.c (gc_stat_internal): add heap_marked_slots.
+Thu Jul 18 18:14:36 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Sep 9 18:58:48 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c (rb_ary_count): iterate items appropriately.
+ [Bug #8654]
- * gc.c: rename
- * total_allocated_object_num -> total_allocated_objects
- * total_allocated_object_num_at_gc_start -> total_allocated_objects_at_gc_start
- * total_freed_object_num -> total_freed_objects
+Thu Jul 18 17:35:41 2013 Masaki Matsushita <glass.saga@gmail.com>
- * gc.c (gc_stat_internal):
- * rename total_allocated_object -> total_allocated_objects
- * rename total_freed_object -> total_freed_objects
+ * hash.c (rb_hash_flatten): performance improvement by not using
+ rb_hash_to_a() to avoid array creation with rb_assoc_new().
-Tue Sep 9 18:51:36 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jul 18 16:16:17 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (gc_stat_internal): fix symbol names
- * heap_final_slot -> heap_final_slots
- * heap_swept_slot -> heap_swept_slots
+ * array.c: add logging feature for RGenGC's write barrier unprotect
+ event.
-Tue Sep 9 18:18:07 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jul 18 15:45:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (rb_objspace_t::heap_pages): rename field names:
- * used -> allocated_pages
- * increment -> allocatable_pages
- * length -> sorted_length
- And remove unused `limit' field.
+ * include/ruby/ruby.h (RUBY_SAFE_LEVEL_CHECK): make only
+ rb_set_safe_level(4) an error always but make rb_secure(4) an error
+ only in the core. [ruby-dev:47517] [Bug #8652]
- * gc.c: rename macros:
- * heap_pages_used -> heap_allocated_pages
- * heap_pages_length -> heap_pages_sorted_length
- * heap_pages_increment -> heap_allocatable_pages
+Thu Jul 18 15:42:01 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (gc_stat_internal): fix symbol names
- * heap_used -> heap_allocated_pages
- * heap_eden_page_length -> heap_eden_pages
- * heap_tomb_page_length -> heap_tomb_pages
- * heap_increment -> heap_allocatable_pages
- * heap_length -> heap_sorted_length
+ * include/ruby/ruby.h: fix spell miss.
- ref: [Feature #9924]
- https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing
- Yellow color fields in this table are changed.
+Thu Jul 18 15:11:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_gc.rb: catch up this change.
+ * include/ruby/ruby.h (ruby_safe_level_4): get rid of special
+ character. [ruby-dev:47512] [misc #8646]
-Tue Sep 9 14:56:03 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jul 18 14:51:39 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c: continue layout changing.
+ * array.c (ary_alloc): slim setup process.
- newobj_of() also touch:
- (4) increment total_allocated_object_num
- (5) check hook_events
+Thu Jul 18 14:37:57 2013 Koichi Sasada <ko1@atdot.net>
- And gather fields related to marking phase.
+ * string.c (str_alloc): no need to clear RString (already cleared).
-Tue Sep 9 14:21:50 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jul 18 12:57:47 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: fix layout of rb_objspace_t to improve cache locality.
+ * bignum.c (BDIGITS_ZERO): Defined.
+ (bary_pack): Use BDIGITS_ZERO.
+ (bary_unpack): Ditto.
+ (bary_mul_single): Ditto.
+ (bary_mul_normal): Ditto.
+ (bary_sq_fast): Ditto.
+ (bary_mul_balance_with_mulfunc): Ditto.
+ (bary_mul_precheck): Ditto.
+ (bary_mul_toom3_branch): Ditto.
+ (rb_cstr_to_inum): Ditto.
+ (big_shift3): Ditto.
+ (bigmul1_toom3): Ditto.
+ (bary_divmod): Ditto.
- newobj_of() accesses:
- (1) rb_objspace_t::flags
- (2) rb_objspace_t::eden_heap::freelist
- (3) and rb_objspace_t::eden_heap::free_pages if freelist is NULL.
+Thu Jul 18 06:30:02 2013 Koichi Sasada <ko1@atdot.net>
-Tue Sep 9 14:09:36 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c: rename gc related functions with prefix "gc_".
+ * before_gc_sweep() -> gc_before_sweep().
+ * after_gc_sweep() -> gc_after_sweep().
+ * lazy_sweep() -> gc_lazy_sweep().
+ * rest_sweep() -> gc_rest_sweep().
+ * slot_sweep() -> gc_slot_sweep().
- * gc.c: move rb_objspace_t::flags::gc_stressful after during_gc
- to make accessing both parameters easy.
+ * gc.c: rename a heap management function with prefix "heap_".
+ * get_freeobj() -> heap_get_freeobj().
- * gc.c (heap_get_freeobj): add LIKELY() hint.
+ * gc.c: rename markable_object_p() to is_markable_object().
- * gc.c (heap_get_freeobj_from_next_freepage): ditto.
+Wed Jul 17 22:57:40 2013 Masaki Matsushita <glass.saga@gmail.com>
- * gc.c (newobj_of): check both parameters at once for exceptional
- case.
+ * hash.c (delete_if_i): use ST_DELETE.
-Tue Sep 9 13:51:32 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 17 22:34:47 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: add rb_objspace_t::flags::gc_stressful and
- ruby_gc_stressful macro.
- Rename objspace->gc_stress to objspace->gc_stress_mode.
+ * bignum.c: An static assertion for relation of SIZEOF_LONG and
+ SIZEOF_BDIGITS is added.
+ (bary_mul_precheck): Reduce comparisons.
+ (bary_mul): Invoke bary_sq_fast or bary_mul1 if the bignum size is
+ small.
+ (bigfixize): Resize the argument bignum here.
+ (bignorm): Don't call bigtrunc after bigfixize.
- If objspace->gc_stress_mode is true (!nil and !false) then
- ruby_gc_stressful becomes TRUE.
+Wed Jul 17 22:13:26 2013 Masaki Matsushita <glass.saga@gmail.com>
- ruby_gc_stressful will speedup newobj_of() slightly.
+ * hash.c (rb_hash_replace): performance improvement by using
+ st_copy().
- * gc.c: initialize ruby_gc_stress(full|_mode) by gc_params.gc_stress
- even if ENABLE_VM_OBJSPACE is false.
+Wed Jul 17 17:19:54 2013 Koichi Sasada <ko1@atdot.net>
-Tue Sep 9 13:05:50 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c: rename heap management functions with prefix "heap_".
+ * allocate_sorted_array() -> heap_allocate_sorted_array().
+ * slot_add_freeobj() -> heap_slot_add_freeobj().
+ * assign_heap_slot() -> heap_assign_slot().
+ * add_heap_slots() -> heap_add_slots().
+ * init_heap() -> heap_init().
+ * set_heap_increment() -> heap_set_increment().
- * gc.c: remove ruby_disable_gc_stress and add ruby_disable_gc
- to speed-up newobj_of().
+ * gc.c (initial_expand_heap): inlined in rb_gc_set_params().
- * gc.c (ready_to_gc): check ruby_disable_gc.
+Wed Jul 17 17:12:23 2013 Matthew M. Boedicker <matthewm@boedicker.org>
- * signal.c: use ruby_disable_gc.
+ * hash.c (env_fetch): Add key name to message on ENV.fetch KeyError,
+ as well as Hash#fetch. [ruby-core:56062] [Feature #8649]
-Tue Sep 9 12:11:41 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 17 15:59:33 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c: rename gc_stat entries and check stat transition.
+ * gc.c: catch up last changes for debugging/checking mode.
-Tue Sep 9 12:06:03 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 17 15:50:10 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (gc_sweep_rest): remove wrong modification of during_gc flag.
+ * gc.c (rb_objspace_free): free slot itself.
-Tue Sep 9 11:39:41 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (objspace_each_objects): fix condition.
+ Use slot->body instead of slot.
- * gc.c: pack boolean values into rb_objspace_t::flags with bit fields
- to improve cache locality.
+ * gc.c (count_objects): use "slot" variable.
-Tue Sep 9 11:11:05 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 17 15:21:10 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_object.rb: extend timeout.
+ * gc.c (unlink_heap_slot): fix memory leak.
+ free slot itself at free_heap_slot().
-Tue Sep 9 09:02:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ Reproduce-able code is here:
+ N1 = 100_000; N2 = 1_000_000
+ N1.times{ary = []; N2.times{ary << ''}}
+ Maybe this problem is remaining in Ruby 2.0.0.
- * lib/mkmf.rb (MakeMakefile#pkg_config): append --cflags to also
- $CXXFLAGS, as they are often used by C++ compiler.
- [ruby-core:54532] [Bug #8315]
+ * gc.c (unlink_heap_slot): remove not working code.
-Tue Sep 9 07:03:22 2014 Eric Wong <e@80x24.org>
+Wed Jul 17 14:31:13 2013 Koichi Sasada <ko1@atdot.net>
- * compile.c: remove needless SYM2ID <-> ID2SYM conversions
- [misc #10207]
+ * gc.c: re-design the heap structure.
-Tue Sep 9 05:48:42 2014 Eric Wong <e@80x24.org>
+ (1) The heap is consists of a set of slots.
+ (2) Each "slot" has a "slot_body".
+ slot::start and slot::limit specify RVALUE beginning address
+ and number of RVALUE in a "slot_body".
+ (3) "slot_body" contains a pointer to slot (slot_body::header::slot)
+ and an array of RVALUE.
+ (4) heap::sorted is an array of "slots", sorted by an address of
+ slot::body.
- * symbol.c (rb_intern_cstr_without_pindown): check dsymbol on return
- This is not a complete fix for bug 10206, but seems to reduce
- that crash and also looks correct.
+ See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design
+ for more details (figure).
-Tue Sep 9 04:36:24 2014 Eric Wong <e@80x24.org>
+ * gc.c: Avoid "heaps" terminology. It is ambiguous.
- * vm_core.h (rb_env_t): use flexible array
- This reduces allocations and speeds up the lambda calculus
- fizzbuzz (bm_app_lc_fizzbuzz.rb) benchmark [ruby-core:64858]
- * proc.c (get_local_variable_ptr): deconst to adjust for flex array
- * vm.c (env_mark, env_free, env_memsize): remove check for env->env
- * vm.c (env_alloc): single allocation for flex array
- * vm.c (vm_make_env_each): adjust env_alloc call
+Wed Jul 17 13:29:16 2013 Koichi Sasada <ko1@atdot.net>
-Mon Sep 8 16:08:22 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c: fix heaps_header and heaps_slot to reduce memory consumption.
+ (1) move heaps_header::start and limit to heaps_slot.
+ (2) remove heaps_header::end which can be calculated by start+limit.
- * benchmark/bm_app_lc_fizzbuzz.rb: should skip output on benchmark.
+ * gc.c: catch up above change.
-Mon Sep 8 16:04:02 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 17 12:30:05 2013 Tanaka Akira <akr@fsij.org>
- * benchmark/bm_app_lc_fizzbuzz.rb: `answer.to_a' does not return
- a string, but an array.
+ * include/ruby/st.h (st_strcasecmp): Macro defined for compatibility.
+ (st_strncasecmp): Ditto.
-Mon Sep 8 13:18:37 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 17 11:57:45 2013 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
- * benchmark/bm_app_lc_fizzbuzz.rb: added.
+ * lib/cgi/util.rb (CGI::Util#escape, unescape): Avoid use of regexp
+ special global variable. [Feature #8648] Thanks to fotos.
- This program is described closely in "Understanding Computation"
- chapter 6 by Tom Stuart. <http://computationbook.com/>
+Wed Jul 17 11:57:10 2013 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
- Japanese translation will be published soon.
- <http://www.oreilly.co.jp/books/9784873116976/>
+ * lib/erb.rb (ERB::Util#url_encode): Avoid use of regexp special global
+ variable. [Feature #8648] Thanks to fotos.
-Mon Sep 8 12:01:39 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 17 08:12:41 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: add incremental GC algorithm. [Feature #10137]
+ * st.c (st_locale_insensitive_strcasecmp): Renamed from st_strcasecmp.
+ (st_locale_insensitive_strncasecmp): Renamed from st_strncasecmp.
- Please refer this ticket for details.
+ * include/ruby/st.h: Follow above changes.
- This change also introduces the following changes.
+ * include/ruby/ruby.h: Ditto.
- * Remove RGENGC_AGE2_PROMOTION and introduce object age (0 to 3).
- Age can be count with FL_PROMOTE0 and FL_PROMOTE1 flags in
- RBasic::flags (2 bit). Age == 3 objects become old objects.
- * WB_PROTECTED flag in RBasic to WB_UNPROTECTED bitmap.
- * LONG_LIVED bitmap to represent living objects while minor GCs
- It specifies (1) Old objects and (2) remembered shady objects.
- * Introduce rb_objspace_t::marked_objects which counts marked
- objects in current marking phase. marking count is needed to
- introduce incremental marking.
- * rename mark related function and sweep related function to
- gc_(marks|sweep)_(start|finish|step|rest|continue).
- * rename rgengc_report() to gc_report().
- * Add obj_info() function to get cstr of object details.
- * Add MEASURE_LINE() macro to measure execution time of specific line.
- * and many small fixes.
+Wed Jul 17 00:14:59 2013 Tanaka Akira <akr@fsij.org>
- * include/ruby/ruby.h: add flag USE_RINCGC.
- Now USE_RINCGC can be set only with USE_RGENGC.
+ * bignum.c (bigmul1_toom3): Use bigdivrem_single instead of bigdivrem.
+ (big_three): Removed.
+ (Init_Bignum): Don't initialize big_three.
- * include/ruby/ruby.h: introduce FL_PROMOTED0 and add FL_PROMOTED1
- to count object age.
+Tue Jul 16 21:46:03 2013 Masaki Matsushita <glass.saga@gmail.com>
- * include/ruby/ruby.h: rewrite write barriers for incremental marking.
+ * configure.in: revert r42008. strcasecmp() uses the current locale.
- * debug.c: catch up flag name changes.
+ * include/ruby/ruby.h: ditto.
- * internal.h: add rb_gc_writebarrier_remember() instead of
- rb_gc_writebarrier_remember_promoted().
+ * st.c (st_strcasecmp): ditto.
- * array.c (ary_memcpy0): use rb_gc_writebarrier_remember().
+Tue Jul 16 21:07:04 2013 Masaki Matsushita <glass.saga@gmail.com>
- * array.c (rb_ary_modify): ditto.
+ * configure.in: check strcasecmp().
- * hash.c (rb_hash_keys): ditto.
+ * include/ruby/ruby.h: use strcasecmp() as st_strcasecmp() if it
+ exists.
- * hash.c (rb_hash_values): ditto.
+ * st.c (st_strcasecmp): define the function only if strcasecmp()
+ doesn't exist.
- * object.c (init_copy): use rb_copy_wb_protected_attribute() because
- FL_WB_PROTECTED is moved from RBasic::flags.
+Tue Jul 16 20:21:28 2013 Tanaka Akira <akr@fsij.org>
- * test/objspace/test_objspace.rb: catch up ObjectSpace.dump() changes.
+ * bignum.c (bigsq): Renamed from bigsqr.
-Sun Sep 7 12:47:06 2014 Tanaka Akira <akr@fsij.org>
+Tue Jul 16 19:42:08 2013 Tanaka Akira <akr@fsij.org>
- * process.c: PTHREAD_CANCEL_DISABLE is not defined on Android.
+ * bignum.c (USHORT): Unused macro removed.
-Sat Sep 6 20:59:06 2014 Tanaka Akira <akr@fsij.org>
+Tue Jul 16 19:18:51 2013 Koichi Sasada <ko1@atdot.net>
- * process.c (has_privilege): The gid zero is not a privilege.
+ * gc.c: slim a path of newobj_of().
-Sat Sep 6 20:19:16 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (objspace): add a new field objspace::freelist, which contains
+ available RVALUEs.
- * process.c (struct child_handler_disabler_state): cancelstate field
- added.
- (disable_child_handler_before_fork): Record cancelstate.
- (disable_child_handler_fork_parent): Restore cancelstate.
+ * gc.c (newobj_of): simply call new function `get_freeobj()'.
+ get_freeobj() returns objspace::freelist. If objspace::freelist
+ is not available, refill objspace::freelist with a slot pointed by
+ objspace::heap::free_slots.
-Sat Sep 6 19:27:10 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (before_gc_sweep): clear objspace::freelist.
- * process.c (struct child_handler_disabler_state): Defined.
+ * gc.c (slot_sweep): clear slot::freelist.
-Sat Sep 6 18:31:32 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c (heaps_prepare_freeslot): renamed to heaps_prepare_freeslot.
- * lib/rake.rb, lib/rake/*, test/rake/*: Update latest rake master(e47d023)
+ * gc.c (unlink_free_heap_slot): remove unused function.
-Sat Sep 6 16:38:08 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * gc.c (rb_free_const_table): remove unused function.
- * ext/win32ole/win32ole_variant.c (ole_val2variant_err,
- ole_val2variantdata, Init_win32ole_variant): support VT_ERROR
- variant with error code. add WIN32OLE_VARIANT::NoParam.
- * test/win32ole/test_win32ole_variant.rb(test_c_noparam,
- test_vt_error_noparam): ditto.
- * ext/win32ole/win32ole.c: ditto.
+Tue Jul 16 19:05:12 2013 Tanaka Akira <akr@fsij.org>
-Sat Sep 6 11:08:52 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (big_shift3): Big shift width is not a problem for right
+ shift.
- * parse.y (arg_ambiguous_gen): fix warning message, "even" does
- not mean the number of spaces here. state the place to put a
- space and the operator. [ruby-core:64790] [Bug #10204]
+Tue Jul 16 18:50:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Sep 6 08:44:40 2014 Zachary Scott <e@zzak.io>
+ * array.c (rb_ary_count): [DOC] fix typo. Array#count uses ==, not
+ ===. a question at asakusa.rb ML.
- * lib/rdoc/generator/template/darkfish/js/jquery.js: Backport
- rdoc/rdoc@74f60fcb04fee1778fe2694d1a0ea6513f8e67b7
+Tue Jul 16 18:35:48 2013 Tanaka Akira <akr@fsij.org>
-Sat Sep 6 08:10:44 2014 Eric Wong <e@80x24.org>
+ * bignum.c (bary_mul_karatsuba): Avoid duplicate calculation when
+ squaring.
+ (bary_mul_toom3_branch): Ditto.
- * test/ruby/test_io.rb (test_readpartial_locktmp): use IO#nonblock=
- Old fcntl invocation may drop necessary flags on some platforms.
+Tue Jul 16 17:43:22 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 6 07:46:51 2014 Eric Wong <e@80x24.org>
+ * gc.c (link_free_heap_slot): removed.
- * test/ruby/test_io.rb (test_readpartial_locktmp): avoid EBADF
- [ruby-core:64773] [ruby-core:64775]
+ * gc.c (slot_sweep): use `heaps_add_freeslot' instead of
+ `link_free_heap_slot'.
-Sat Sep 6 01:34:31 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (assign_heap_slot): use local variable `slot' instead of
+ `heaps'.
- * process.c (rb_f_exec): Call before_exec_async_signal_safe and
- after_exec_async_signal_safe around rb_exec_async_signal_safe.
- (rb_exec_async_signal_safe): Don't call
- before_exec_async_signal_safe and after_exec_async_signal_safe.
- (rb_exec_without_timer_thread): Call before_exec and
- after_exec.
- (disable_child_handler_fork_child): Make SIGPIPE handler SIG_DFL.
+Tue Jul 16 17:21:39 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 6 00:49:41 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (assign_heap_slot): refactoring variable names.
- * signal.c (ruby_signal): Don't set SA_SIGINFO for SIG_IGN and
- SIG_DFL.
+ * gc.c (slot_add_freeobj): added.
-Fri Sep 5 21:45:33 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (heaps_add_freeslot): added.
- * process.c (disable_child_handler_before_fork): New function.
- (disable_child_handler_fork_parent): Ditto.
- (disable_child_handler_fork_child): Ditto.
- (retry_fork_async_signal_safe): Call above functions to disable
- signal handlers in child process.
+ * gc.c (finalize_list, rb_gc_force_recycle, slot_sweep): use
+ `slot_add_freeobj' instead of modifying linked list directly.
-Fri Sep 5 21:02:54 2014 Tanaka Akira <akr@fsij.org>
+Tue Jul 16 16:30:58 2013 Koichi Sasada <ko1@atdot.net>
- * process.c (handle_fork_error): Make try_gc_p argument volatile to
- suppress "clobbered" warning.
+ * gc.c (lazy_sweep): refactoring.
-Fri Sep 5 20:48:06 2014 Tanaka Akira <akr@fsij.org>
+Tue Jul 16 13:32:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * process.c (handle_fork_error): Don't need state_p argument.
+ * encoding.c (enc_set_index): since r41967, old terminator is dealt
+ with in str_fill_term(). should not consider it here because this
+ function is called before any encoding is set.
-Fri Sep 5 20:35:52 2014 Tanaka Akira <akr@fsij.org>
+Tue Jul 16 11:12:03 2013 Masaki Matsushita <glass.saga@gmail.com>
- * process.c (has_privilege): Fix a return value.
+ * proc.c (rb_block_arity): raise ArgumentError if no block given.
-Fri Sep 5 19:00:40 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 16 08:15:22 2013 Zachary Scott <e@zzak.io>
- * lib/shellwords.rb: proofreading documentation.
- [Bug #10155][ruby-core:64471]
+ * ext/bigdecimal/lib/bigdecimal/util.rb: [DOC] document top-level
+ classes from BigDecimal utils native extensions
-Fri Sep 5 18:34:33 2014 Laurent Arnoud <laurent@spkdev.net>
+Tue Jul 16 03:23:03 2013 Zachary Scott <e@zzak.io>
- * test/csv/test_row.rb: Added some missing tests in CSV.
- [fix GH-710]
- * test/csv/test_table.rb: ditto.
+ * numeric.c: [DOC] improve rdoc formatting for parameters and links
-Fri Sep 5 12:57:52 2014 Tanaka Akira <akr@fsij.org>
+Mon Jul 15 14:40:00 2013 Tanaka Akira <akr@fsij.org>
- * process.c (has_privilege): Refine uid/gid check.
+ * include/ruby/intern.h (rb_big2str0): Deprecated.
-Fri Sep 5 12:40:55 2014 Tanaka Akira <akr@fsij.org>
+ * bignum.c (rb_big2str1): Renamed from rb_big2str0.
+ (rb_big2str0): Deprecated wrapper for rb_big2str1.
+ (rb_big2str): Invoke rb_big2str1 instead of rb_big2str0.
- * configure.in: Check sys/id.h, getuidx and getgidx for AIX.
+Mon Jul 15 14:13:02 2013 Masaki Matsushita <glass.saga@gmail.com>
- * process.c (getresuid): Defined for AIX.
- (getresgid): Ditto
- AIX don't have getresuid/getresgid but getuidx/getgidx.
+ * struct.c (rb_struct_each_pair): use rb_yield_values(2, key, value)
+ instead of rb_yield(rb_assoc_new(key, value)) if rb_block_arity()
+ is greater than 1.
-Fri Sep 5 12:28:21 2014 Tanaka Akira <akr@fsij.org>
+Mon Jul 15 13:46:26 2013 Tanaka Akira <akr@fsij.org>
- * process.c (has_privilege): Fix assignments.
+ * bignum.c: Add static assertions.
-Fri Sep 5 11:10:13 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Jul 15 13:36:02 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/rdoc/generator/pot/po.rb: fixed broken tests for trailing whitespace.
- * test/rdoc/test_rdoc_generator_pot.rb: ditto.
- * test/rdoc/test_rdoc_generator_pot_po.rb: ditto.
+ * hash.c (rb_hash_each_pair): performance improvement by using
+ rb_block_arity().
-Fri Sep 5 10:41:07 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Jul 15 13:15:37 2013 Masaki Matsushita <glass.saga@gmail.com>
- * test/rdoc/test_rdoc_rdoc.rb (TestRDocRDoc#test_parse_file_encoding):
- typofix.
+ * proc.c (rb_block_arity): create internal API rb_block_arity().
+ it returns arity of given block.
-Fri Sep 5 10:39:14 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Jul 15 13:07:27 2013 Yuki Yugui Sonoda <yugui@yugui.jp>
- * lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(313287)
+ * lib/prime.rb (Prime::EratosthenesGenerator,
+ Prime::EratosthenesSieve): New implementation by
+ robertjlooby <robertjlooby AT gmail.com>.
-Fri Sep 5 06:04:22 2014 Eric Wong <e@80x24.org>
+ * test/test_prime.rb: updated with new method name
- * vm.c: remove unused USE_THREAD_RECYCLE [misc #10198]
+Mon Jul 15 11:32:46 2013 Zachary Scott <e@zzak.io>
-Fri Sep 5 00:29:08 2014 Tanaka Akira <akr@fsij.org>
+ * numeric.c (rb_cNumeric): [DOC] Added comment for Numeric to fix doc
- * configure.in (dirfd): Check function.
+Mon Jul 15 11:24:48 2013 Tanaka Akira <akr@fsij.org>
- * dir.c (dir_fileno): New method.
- [ruby-dev:48265] [Feature #9880]
+ * bignum.c (maxpow_in_bdigit_dbl): Useless #if removed.
-Thu Sep 4 23:39:52 2014 Tanaka Akira <akr@fsij.org>
+Mon Jul 15 11:10:46 2013 Zachary Scott <e@zzak.io>
- * process.c (has_privilege): New function.
- (retry_fork_async_signal_safe): Don't use vfork() for privileged
- process.
+ * bignum.c (rb_big_coerce): [DOC] Add docs for Bignum#coerce
+ Based on patch by Juanito Fatas [Fixes GH-360]
+ https://github.com/ruby/ruby/pull/360
- * configure.in (getresuid): Check function.
- (getresgid): Ditto.
+Mon Jul 15 10:56:01 2013 Zachary Scott <e@zzak.io>
-Thu Sep 4 20:22:14 2014 Laurent Arnoud <laurent@spkdev.net>
+ * thread.c (mutex_sleep): [DOC] Awake thread will reacquire lock
+ By Tim Abdulla [Fixes GH-342] https://github.com/ruby/ruby/pull/342
- * test/pathname/test_pathname.rb: added testcase for Pathname#mountpoint?.
- [fix GH-709]
+Mon Jul 15 10:45:09 2013 Tanaka Akira <akr@fsij.org>
-Thu Sep 4 20:09:21 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c (nlz16): Use __builtin_clz if possible.
+ (nlz32): Use __builtin_clz or __builtin_clzl if possible.
+ (nlz64): Use __builtin_clzl or __builtin_clzll if possible.
+ (nlz128): Use __builtin_clzll if possible.
- * symbian/*: removed Symbian support.
- [Feature #10199][ruby-core:64725]
- * dln.c: ditto.
- * include/ruby/defines.h: ditto.
- * thread_pthread.c: ditto.
- * vm.c: ditto.
+ * configure.in: Check __builtin_clz, __builtin_clzl and
+ __builtin_clzll.
-Thu Sep 4 17:44:40 2014 Koichi Sasada <ko1@atdot.net>
+Mon Jul 15 09:39:07 2013 Tanaka Akira <akr@fsij.org>
- * dir.c (glob_helper): use #ifdef instead of #if.
- gcc's -Wundef option shows warning for undefined macro.
+ * bignum.c (power_cache_get_power): Use bitsize instead of ceil_log2.
+ (ones): Removed.
+ (next_pow2): Removed.
+ (floor_log2): Removed.
+ (ceil_log2): Removed.
- * numeric.c (flo_is_finite_p): ditto.
+ * configure.in (__builtin_popcountl): Don't check.
- * vm_dump.c (rb_vmdebug_thread_dump_state): ditto.
+Mon Jul 15 02:47:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm_core.h: define VM_DEBUG_VERIFY_METHOD_CACHE to 0.
+ * localeinit.c (rb_locale_charmap, Init_enc_set_filesystem_encoding):
+ move from encoding.c.
-Thu Sep 4 03:57:46 2014 Eric Wong <e@80x24.org>
+ * miniinit.c (rb_locale_charmap, Init_enc_set_filesystem_encoding):
+ define miniruby specific functions only.
- * man/ruby.1: spelling fix ("bellow" => "below") [ci-skip]
+Mon Jul 15 02:32:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Sep 4 03:52:16 2014 Eric Wong <e@80x24.org>
+ * encoding.c (rb_enc_init): no longer needs NO_PRESERVED_ENCODING.
- * man/ruby.1: add trailing slash to URLs [ci-skip]
+ * encoding.c (enc_inspect): defer loading autoloaded encoding.
-Wed Sep 3 19:10:28 2014 Tanaka Akira <akr@fsij.org>
+ * encoding.c (enc_check_encoding): use is_data_encoding() to check
+ type consistently.
- * process.c (before_fork_ruby): Renamed from before_fork.
- (after_fork_ruby): Renamed from after_fork.
+ * encoding.c (must_encoding): return rb_encoding* instead of encoding
+ index.
-Wed Sep 3 18:56:05 2014 Tanaka Akira <akr@fsij.org>
+ * encoding.c (enc_check_encoding): use is_data_encoding() to check
+ type consistently.
- * process.c (forked_child): Removed.
+ * encoding.c (must_encoding): return rb_encoding* instead of encoding
+ index.
-Wed Sep 3 16:56:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jul 15 02:21:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * object.c (rb_obj_copy_ivar): allocate no memory for empty
- instance variables. [ruby-core:64700] [Bug #10191]
+ * string.c (str_fill_term): consider old terminator length, and should
+ not use rb_enc_ascget since it depends on the current encoding which
+ may not be compatible with the new terminator. [Bug #8634]
-Wed Sep 3 12:05:17 2014 Tanaka Akira <akr@fsij.org>
+ * encoding.c (enc_inspect): use PRIsVALUE to preserve the result
+ encoding.
- * process.c (retry_fork_async_signal_safe): Use vfork() if available.
- vfork() is still faster than fork() especially when the parent
- process uses big memory.
+Sun Jul 14 23:21:47 2013 Tanaka Akira <akr@fsij.org>
- ruby -rbenchmark -e 'a = "a" * 1_000_000_000; puts Benchmark.measure { system("true") }'
- fork: 0.000000 0.010000 0.010000 ( 0.014968)
- vfork: 0.000000 0.000000 0.000000 ( 0.000912)
- on Debian sid.
+ * configure.in: Check __builtin_popcountl, __builtin_bswap32 and
+ __builtin_bswap64.
-Wed Sep 3 11:33:08 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * internal.h (swap32): Use the configure result for the condition to
+ use __builtin_bswap32.
+ (swap64): Use the configure result for the condition to use
+ __builtin_bswap64.
- * test/openssl/test_pkey_rsa.rb (OpenSSL#test_sign_verify_memory_leak):
- added timeout into testcase for low performance environment.
- [Bug #9984][ruby-core:63367]
+ * bignum.c (ones): Use the configure result for the condition to use
+ __builtin_popcountl.
+ (bary_unpack_internal): Use appropriate types for swap argument.
-Wed Sep 3 07:50:15 2014 Tanaka Akira <akr@fsij.org>
+Sun Jul 14 22:21:11 2013 Tanaka Akira <akr@fsij.org>
- * configure.in: Use AC_FUNC_FORK.
+ * bignum.c (bary_subb): Support xn < yn.
+ (bigsub_core): Removed.
+ (bigsub): Don't compare before subtraction. Just subtract and
+ get the two's complement if the subtraction causes a borrow.
- * io.c: Use HAVE_WORKING_FORK instead of HAVE_FORK.
+Sun Jul 14 00:36:03 2013 Tanaka Akira <akr@fsij.org>
- * process.c: Ditto.
+ * bignum.c (DIGSPERLONG): Unused macro removed.
+ (DIGSPERLL): Ditto.
-Wed Sep 3 00:12:44 2014 Tanaka Akira <akr@fsij.org>
+Sun Jul 14 00:32:51 2013 Tanaka Akira <akr@fsij.org>
- * process.c (retry_fork_async_signal_safe): Don't return on in child
- process.
+ * bignum.c (rb_big_aref): Less scan when the number is negative.
-Tue Sep 2 23:47:35 2014 Tanaka Akira <akr@fsij.org>
+Sun Jul 14 00:17:42 2013 Tanaka Akira <akr@fsij.org>
- * process.c (retry_fork_async_signal_safe): Specialized version of
- retry_fork respect to rb_fork_async_signal_safe.
- (retry_fork_ruby): Specialized version of retry_fork respect to
- rb_fork_ruby.
- (rb_fork_ruby): Removed.
+ * bignum.c (big_shift): Avoid signed integer overflow.
-Tue Sep 2 23:26:26 2014 Tanaka Akira <akr@fsij.org>
+Sun Jul 14 00:14:15 2013 Tanaka Akira <akr@fsij.org>
- * process.c (send_child_error): Simplified.
- (recv_child_error): Ditto.
+ * bignum.c (bary_mul_precheck): Use bary_small_lshift or
+ bary_mul_normal if xl is 1.
-Tue Sep 2 22:56:25 2014 Tanaka Akira <akr@fsij.org>
+Sat Jul 13 22:58:16 2013 Tanaka Akira <akr@fsij.org>
- * process.c (rb_fork_async_signal_safe): Inline rb_fork_internal.
- (rb_fork_ruby): Ditto.
- (rb_fork_internal): Removed.
- (chfunc_protect): Removed.
+ * bignum.c (big_shift3): New function.
+ big_lshift and big_rshift are merged.
+ (big_shift2): New function.
+ (big_lshift): Use big_shift3.
+ (big_rshift): Ditto.
+ (check_shiftdown): Removed.
+ (rb_big_lshift): Use big_shift2 and big_shift3.
+ (rb_big_rshift): Ditto.
+ (big_lshift): Removed.
+ (big_rshift): Ditto.
-Tue Sep 2 22:43:52 2014 Tanaka Akira <akr@fsij.org>
+Sat Jul 13 15:51:38 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_io.rb (test_new_with_block): Set autoclose to avoid
- EBADF.
+ * bignum.c (bary_small_lshift): Use size_t instead of long.
+ (bary_small_rshift): Ditto.
-Tue Sep 2 22:01:51 2014 Kouhei Sutou <kou@cozmixng.org>
+Sat Jul 13 15:33:33 2013 Tanaka Akira <akr@fsij.org>
- * Makefile.in (update-coverage): Remove a never executed line.
+ * bignum.c (bary_small_lshift): Functions moved to remove
+ declaration.
+ (bary_small_rshift): Ditto.
-Tue Sep 2 19:48:26 2014 Tanaka Akira <akr@fsij.org>
+Sat Jul 13 12:27:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * process.c (handle_fork_error): Extracted from retry_fork.
+ * encoding.c (rb_enc_associate_index): fill new terminator length, not
+ old one.
-Tue Sep 2 17:02:53 2014 Vit Ondruch <v.ondruch@tiscali.cz>
+Sat Jul 13 12:24:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * tool/rbinstall.rb: fixed error of local installation.
- [Bug #10192][ruby-core:64702]
+ * ext/win32: move from ext/dl and ext/fiddle. since ext/extmk.rb
+ builds extensions in alphabetical order, compiled?('fiddle') under
+ ext/dl makes no sense.
-Tue Sep 2 16:58:03 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Jul 13 09:26:09 2013 Tanaka Akira <akr@fsij.org>
- * test/runner.rb: reporting test coverage for test-all with COVERAGE env.
- [Feature #10189][ruby-core:64681][fix GH-708]
- * Makefile.in: added task for coverage report.
- * common.mk: added definition of forked simplecov url.
- * .gitignore: ignored coverage directory.
+ * bignum.c (biglsh_bang): Removed.
+ (bigrsh_bang): Ditto.
+ (bigmul1_toom3): Use bary_small_lshift and bary_small_rshift.
-Mon Sep 1 20:11:02 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Sat Jul 13 01:04:43 2013 Zachary Scott <e@zzak.io>
- * ext/win32ole/win32ole.c (rbtime2vtdate): try to convert millisecond
- of Time object to millisecond of VT_DATE VARIANT.
- * test/win32ole/test_win32ole_variant.rb
- (test_conversion_time2date_with_msec): ditto.
+ * lib/rubygems/psych_additions.rb: Ignore Psych docs here
-Sun Aug 31 16:58:49 2014 Tanaka Akira <akr@fsij.org>
+Fri Jul 12 18:10:46 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/benchmark.rb: Fix a syntax error.
+ * ext/fiddle/win32/lib/win32/registry.rb
+ (Win32::Registry::API#make_wstr): same as r41922.
-Sun Aug 31 08:46:44 2014 Eric Wong <e@80x24.org>
+Fri Jul 12 16:28:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/zlib/zlib.c (gzfile_reset): preserve ZSTREAM_FLAG_GZFILE
- [Bug #10101]
+ * encoding.c (rb_enc_associate_index): refill the terminator if it
+ becomes longer than before. [ruby-dev:47500] [Bug #8624]
- * test/zlib/test_zlib.rb (test_rewind): test each_byte
+ * string.c (str_null_char, str_fill_term): get rid of out of bound
+ access.
-Sat Aug 30 19:22:47 2014 Eric Wong <e@80x24.org>
+ * string.c (rb_str_fill_terminator): add a parameter for the length of
+ new terminator.
- * symbol.c (rb_sym2id): do not return garbage object
+Fri Jul 12 11:26:25 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sat Aug 30 06:39:48 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * hash.c (rb_hash_reject_bang): do not call rb_hash_foreach() if RHash
+ has ntbl and it is empty.
- * ext/psych/lib/psych/visitors/yaml_tree.rb: fix NameError dumping and
- loading. Fixes GH #85. Thanks @brentdax for the patch!
- * test/psych/test_exception.rb: test for fix
+Fri Jul 12 11:17:41 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sat Aug 30 06:23:40 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * hash.c (recursive_hash): use RHASH_SIZE() to check hash size.
- * ext/psych/lib/psych/scalar_scanner.rb: fix loading strings that
- look like integers but have a newline. Fixes GH #189
- * test/psych/test_string.rb: test for fix
+Fri Jul 12 00:20:00 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sat Aug 30 06:10:39 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * hash.c (rb_hash_size): use RHASH_SIZE().
- * ext/psych/lib/psych/visitors/to_ruby.rb: merge keys with a hash
- should merge the hash in to the parent.
- * test/psych/test_merge_keys.rb: test for change. Fixes GH #202
+Fri Jul 12 00:08:24 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sat Aug 30 06:00:26 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * hash.c (rb_hash_values): set array capa to RHASH_SIZE().
- * ext/psych/lib/psych/visitors/to_ruby.rb: quoted "<<" strings
- should not be treated as merge keys.
- * ext/psych/lib/psych/visitors/yaml_tree.rb: hashes with keys
- containing "<<" should roundtrip.
- * test/psych/test_merge_keys.rb: test for change. Fixes GH #203
+Thu Jul 11 23:54:45 2013 Masaki Matsushita <glass.saga@gmail.com>
-Fri Aug 29 17:56:44 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * hash.c (rb_hash_keys): set array capa to RHASH_SIZE().
- * test/net/imap/test_imap_response_parser.rb: removed needless code.
+Thu Jul 11 21:30:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Aug 29 17:36:58 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * win32/win32.c (rb_w32_pow): undef pow to get rid of infinite
+ recursive call. re-fix [Bug #8495]. [ruby-core:55923] [Bug #8621]
- * test/rinda/test_rinda.rb: removed useless assignment variables.
- * test/rss/rss-assertions.rb: ditto.
- * test/rss/test_maker_itunes.rb: ditto.
+Thu Jul 11 20:18:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Aug 29 16:18:26 2014 Eric Wong <e@80x24.org>
+ * ext/dl/win32/lib/win32/registry.rb (Win32::Registry::API#make_wstr):
+ remove workaround to append WCHAR terminator.
- * string.c: revert part of r47311, add rb_vm_fstring_table(),
- remove vm_core.h dependency. [ruby-core:64627]
+ * transcode.c (str_encode_associate): fill terminator after conversion.
-Fri Aug 29 15:17:13 2014 Eric Wong <e@80x24.org>
+ * string.c (rb_enc_str_new, rb_str_set_len, rb_str_resize): fill
+ minimum length of the encoding as the terminator.
- * string.c: remove static frozen_strings
- * string.c (Init_frozen_strings): new function
- * string.c (rb_fstring): remove check for frozen strings,
- use per-VM table
- * string.c (rb_str_free): use per-VM table
- * string.c (Init_String): use per-VM table
- * vm_core.h (rb_vm_t): add frozen_strings table
- * internal.h (Init_frozen_strings): new function prototype
- * eval.c (ruby_setup): call Init_frozen_strings
- [Feature #10182]
+ * string.c (str_buf_cat, rb_str_buf_append, rb_str_splice_0): ditto.
-Wed Aug 27 23:10:24 2014 Masaki Matsushita <glass.saga@gmail.com>
+ * string.c (str_make_independent_expand, rb_str_modify_expand): make
+ the capacity enough for multi-byte terminator.
- * lib/tempfile.rb: remove "require 'thread'". its features are no
- longer used.
+ * string.c (rb_string_value_cstr): fill minimum length of the encoding
+ as the terminator.
-Wed Aug 27 21:19:40 2014 gogo tanaka <mail@tanakakazuki.com>
+ * string.c (rb_string_value_cstr): check null char in char, not in
+ byte.
- * lib/drb/acl.rb: Removed meaningless #to_s methods in interpolation.
- [Feature #10174][ruby-core:64584]
- * lib/erb.rb: ditto.
- * lib/observer.rb: ditto.
- * lib/rake/invocation_chain.rb: ditto.
- * lib/rubygems/command_manager.rb: ditto.
- * lib/rubygems/config_file.rb: ditto.
- * lib/uri/common.rb: ditto.
+Thu Jul 11 14:48:35 2013 Zachary Scott <e@zzak.io>
-Wed Aug 27 21:08:20 2014 gogo tanaka <mail@tanakakazuki.com>
+ * array.c: Replace confusing example for #reverse_each in overview
+ Patch by Earl St Sauver [Fixes documenting-ruby/ruby-12]
+ https://github.com/documenting-ruby/ruby/pull/12
- * lib/drb/drb.rb: use attr_reader instead of Module#attr.
- [Feature #10172][ruby-core:64582]
- * lib/irb/ruby-token.rb: ditto.
- * lib/net/telnet.rb: ditto.
- * lib/rdoc/ruby_token.rb: ditto.
- * lib/thwait.rb: ditto.
+Thu Jul 11 14:22:37 2013 Zachary Scott <e@zzak.io>
-Wed Aug 27 19:52:33 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * test/drb/ut_eq.rb: Use localhost for drb tests [Bug #7311]
+ Patch by Vit Ondruch [ruby-core:49101]
+ * test/drb/ut_array.rb: ditto
+ * test/drb/ut_array_drbssl.rb: ditto
- * ext/win32ole/win32ole.c (vtdate2rbtime): try to convert millisecond
- of VT_DATE VARIANT to nsec of Time object.
- * test/win32ole/test_win32ole_variant.rb
- (test_conversion_dbl2date_with_msec): ditto.
+Thu Jul 11 13:48:03 2013 Zachary Scott <e@zzak.io>
-Wed Aug 27 09:57:29 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * sprintf.c: Fix typo patch by @hynkle [Fixes GH-357]
+ https://github.com/ruby/ruby/pull/357
- * test/ruby/test_complex.rb: removed unreachable code.
- * test/ruby/test_rational.rb: ditto.
+Thu Jul 11 13:00:34 2013 Zachary Scott <e@zzak.io>
-Wed Aug 27 07:59:17 2014 Eric Wong <e@80x24.org>
+ * lib/securerandom.rb: Refactor conditions by Rafal Chmiel
+ [Fixes GH-326] https://github.com/ruby/ruby/pull/326
- * compile.c (iseq_set_sequence): check for multiplication overflow
+Thu Jul 11 12:04:47 2013 Tanaka Akira <akr@fsij.org>
-Tue Aug 26 22:07:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c: Don't use toom3 after once karatsuba is chosen.
+ (mulfunc_t): New type.
+ (bary_mul_toom3_start): Renamed from bary_mul.
+ (bary_mul_karatsuba_start): Renamed from bary_mul.
+ (bary_mul_balance_with_mulfunc): Renamed from bary_mul_balance and
+ new argument, mulfunc, is added.
+ (rb_big_mul_balance): Invoke bary_mul_balance_with_mulfunc with
+ bary_mul_toom3_start.
+ (bary_mul_karatsuba): Invoke bary_mul_karatsuba_start instead of
+ bary_mul.
+ (bary_mul_precheck): Extracted from bary_mul.
+ (bary_mul_karatsuba_branch): Extracted from bary_mul.
+ (bary_mul_karatsuba_start): New function to call bary_mul_precheck
+ and bary_mul_karatsuba_branch.
+ (bary_mul_toom3_branch): Extracted from bary_mul.
+ (bary_mul_toom3_start): New function to call bary_mul_precheck and
+ bary_mul_toom3_branch.
+ (bary_mul): Just call bary_mul_toom3_start.
+ Arguments for work memory are removed.
+ (rb_cstr_to_inum): Follow the bary_mul change.
+ (bigmul0): Ditto.
- * test/ruby/test_complex.rb: cherry-picked working assertions from r47251.
- * test/ruby/test_rational.rb: cherry-picked working assertions from r47263.
+Thu Jul 11 10:46:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 26 21:07:56 2014 gogo tanaka <mail@tanakakazuki.com>
+ * tool/probes_to_wiki.rb: fix usage comment. use Enumerable#grep
+ which yields each elements to reduce unnecessary array.
- * lib/mathn.rb (Fixnum#**, Bignum#**, Float#**, Rational#**):
- remove as these are now built-in. [ruby-core:63973] [Bug #10086]
+Thu Jul 11 10:09:18 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Tue Aug 26 20:46:55 2014 Tanaka Akira <akr@fsij.org>
+ * process.c (rb_daemon): daemon(3) is implemented with fork(2).
+ Therefore it needs rb_thread_atfork(). (and revert r41903)
- * time.c (rb_time_unmagnify_to_float): Avoid double rounding.
- Reported by Tsuyoshi Sawada.
- https://bugs.ruby-lang.org/issues/10135#note-1
+Thu Jul 11 03:22:10 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Tue Aug 26 17:12:47 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/probes_to_wiki.rb: adding a script to convert probes.d to wiki
+ format for easy wiki updates.
- * io.c (io_close): ignore only "closed stream" IOError and
- NoMethodError, do not swallow other exceptions at the end of
- block. [ruby-core:64463] [Bug #10153]
+Thu Jul 11 00:54:07 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Aug 26 13:46:33 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * man/ri.1: Incorrect use of .Dd macro [Bug #8620] by Tristan Hill
- * template/fake.rb.in: fix failed to make install when @srcdir@ is
- absolute path.
+Thu Jul 11 00:48:29 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Aug 26 13:43:50 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/delegate.rb: Add example for __setobj__ and __getobj__
+ [Bug #8615] Patch by Caleb Thompson
- * test/ruby/test_range.rb: added workaround for VERBOSE message.
+Wed Jul 10 23:29:22 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Aug 26 12:38:02 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/logger.rb: Use :call-seq: for method signature rdoc
- * test/test_mathn.rb: added workaround for VERBOSE messages.
+Wed Jul 10 23:23:18 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Aug 26 11:44:04 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/logger.rb (#add): Remove incorrect rdoc for return value
+ [Bug #8567] Reported by Tim Pease.
- * lib/shell/process-controller.rb: removed commented-out code.
+Wed Jul 10 23:12:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 26 11:39:01 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * string.c (rb_str_subpos): make public function.
- * lib/thwait.rb (ThreadsWait): removed needless constant.
+Wed Jul 10 22:44:19 2013 Tanaka Akira <akr@fsij.org>
-Tue Aug 26 09:27:10 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c: Add a static assertion for RBIGNUM_EMBED_LEN_MAX.
- * lib/mathn.rb: mathn library is deprecated on ruby 2.2.
- [Feature #10169][ruby-core:64553]
+Wed Jul 10 22:31:25 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Aug 26 09:25:03 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * string.c (rb_str_index): cache single byte flag and some
+ cosmetic changes.
- * lib/mathn.rb: removed commented-out code.
+Wed Jul 10 22:03:27 2013 Tanaka Akira <akr@fsij.org>
-Mon Aug 25 20:15:50 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (bary_2comp): Don't use bary_plus_one.
+ (bary_add_one): Replaced by the implementation of bary_plus_one.
- * ext/win32ole/win32ole.c(fole_s_connect, fole_initialize): raise a
- security error with the tainted string object.
- * ext/win32ole/win32ole_event.c(ev_advise): ditto.
- * test/win32ole/test_win32ole.rb(test_s_new_exc_svr_tainted,
- test_s_new_exc_host_tainted): ditto.
- * test/win32ole/test_win32ole_event.rb(test_s_new_exc_tainted): ditto.
+Wed Jul 10 20:48:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Aug 25 12:56:54 2014 Ivan Korunkov <ivankorunkov@ya.ru>
+ * bignum.c (sizeof_bdigit_dbl): check sizeof(BDIGIT_DBL).
- * lib/logger.rb (format_datetime): use "%6N" to show microsecond.
- [Fix GH-704]
+ * internal.h (STATIC_ASSERT): move from enum.c.
-Mon Aug 25 11:02:07 2014 Eric Wong <e@80x24.org>
+Wed Jul 10 20:08:21 2013 Tanaka Akira <akr@fsij.org>
- * vm_core.h (rb_iseq_location_t): change first_lineno type to VALUE
- * iseq.c (rb_iseq_build_for_ruby2cext): update based on argument
+ * bignum.c (SIZEOF_BDIGIT_DBL): Add a ifdef guard for test.
-Sun Aug 24 16:14:46 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jul 10 14:18:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/e2mmap.rb: remove needless instance variables.
- * lib/irb.rb: ditto.
- * lib/irb/**/*.rb: ditto.
- * lib/shell.rb: ditto.
+ * process.c (fork_daemon): kill the other threads all and abandon the
+ kept mutexes.
-Sun Aug 24 12:44:26 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jul 10 11:35:36 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * test/ruby/test_complex.rb: removed needless conditions.
- * test/ruby/test_rational.rb: ditto.
+ * test/net/http/test_http.rb (TestNetHTTP_v1_2#test_get,
+ TestNetHTTP_v1_2_chunked#test_get): shouldn't check
+ HttpResponse#decode_content if Zlib is not available.
+ ko1 complained via IRC.
-Sun Aug 24 11:47:39 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jul 10 10:20:07 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/ruby/test_rational.rb: fixed indent.
+ * tool/rbinstall.rb: always require rubygems to stabilize rubygems
+ related status like whether Gem::Specification is defined or not.
-Sun Aug 24 11:44:11 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * tool/rbinstall.rb (Gem::Specification.unresolved_deps): define stub.
- * test/ruby/test_rational.rb: remove commented-out code.
+Wed Jul 10 08:21:15 2013 Eric Hodel <drbrain@segment7.net>
-Sun Aug 24 11:09:29 2014 Eric Wong <e@80x24.org>
+ * lib/rubygems: Import RubyGems 2.1
+ * test/rubygems: Ditto.
- * lib/benchmark.rb (measure): reduce allocations as in r47260
+Wed Jul 10 07:34:34 2013 Eric Hodel <drbrain@segment7.net>
-Sun Aug 24 10:35:54 2014 Pete Higgins <pete@peterhiggins.org>
+ * lib/rubygems/ext/ext_conf_builder.rb: Remove siteconf file after
+ building the gem.
+ * test/rubygems/test_gem_ext_ext_conf_builder.rb: Test for the above.
- * lib/benchmark.rb (module Benchmark): define BENCHMARK_CLOCK
- (realtime): use Process.clock_gettime(BENCHMARK_CLOCK)
- Reduces allocations to improve performance [Feature #10165]
+ * lib/rubygems/psych_tree.rb (module Gem): Add backward compatibility
+ for r41148
- * test/benchmark/test_benchmark.rb (test_realtime_output): new test
+ * test/rubygems/test_gem_package.rb: Add backward compatibility for
+ double-slash elimination.
-Fri Aug 22 20:23:54 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 10 06:22:27 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * string.c (rb_fstring): fix condition (easy to cause infinite loop!).
+ * ext/date/date_parse.c (date_zone_to_diff): [ruby-core:55831].
-Fri Aug 22 20:07:43 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jul 10 00:41:42 2013 Tanaka Akira <akr@fsij.org>
- * string.c (rb_fstring, fstr_update_callback): simply delete garbage
- key first.
+ * bignum.c (bary_mul): x*1 is x.
- Garbage keys can be swept by lazy sweeping invoked by creating new
- fstring. So that simply do:
- (1) delete garbage key and return `fstr_update_callback' immediately
- (2) try again `fstr_update_callback()' to create a new fstr.
+Tue Jul 9 22:24:39 2013 Tanaka Akira <akr@fsij.org>
- This bug can be cause memory corruption, reported by
- http://u64.rubyci.org/~chkbuild/ruby-trunk/log/20140821T220302Z.fail.html.gz
+ * bignum.c (bary_mul1): No need to invoke MEMZERO at last.
+ (bary_mul_single): Invoke MEMZERO here.
-Fri Aug 22 19:30:39 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 21:40:01 2013 Kouhei Sutou <kou@cozmixng.org>
- * test/ruby/test_complex.rb: removed commented-out code.
+ * test/rexml/test_text.rb: Add missing tests for Text#<<.
+ Reported by nagachika. Thanks!!!
-Fri Aug 22 19:25:28 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 18:02:38 2013 Akinori MUSHA <knu@iDaemons.org>
- * test/ruby/test_complex.rb: fixed broken tests. Math is not
- compatible CMath now.
+ * lib/fileutils.rb (FileUtils#chown_R): Do not skip traversal even
+ if user and group are both nil, to be consistent with #chown and
+ other commands.
-Fri Aug 22 15:36:09 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 9 17:58:26 2013 Akinori MUSHA <knu@iDaemons.org>
- * common.mk (Doxyfile): revert r43888, not to require preinstalled
- ruby. [ruby-core:64488] [Bug #10161]
+ * test/fileutils/test_fileutils.rb
+ (TestFileUtils#assert_output_lines): New utility assertion
+ method for testing verbose output.
-Fri Aug 22 12:32:15 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 17:43:57 2013 Koichi Sasada <ko1@atdot.net>
- * lib/shell.rb: removed commented-out code.
- * lib/shell/builtin-command.rb: ditto.
- * lib/shell/command-processor.rb: ditto.
+ * test/test_tracer.rb: catch up recent rubygems changes.
-Fri Aug 22 12:21:46 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 16:58:30 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/complex.rb: removed deprecated library.
- * lib/rational.rb: ditto.
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb: hope that the final
+ resolution to fix the failure of test-all. and includes Win64
+ support (fixed a potential bug).
-Fri Aug 22 11:38:49 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 15:57:20 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/prettyprint.rb: removed PrettyPrint#first?
- because it is obsoleted method since Ruby 1.8.2
+ * object.c: Fix rdoc for Kernel#<=>. [Fixes GH-352]
-Thu Aug 21 17:10:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 9 15:53:51 2013 Akinori MUSHA <knu@iDaemons.org>
- * win32/win32.c (constat_attr): manage reverse video internally
- since Windows console window does not manage it. based on the
- patch by white leaf in [ruby-dev:48483]. [Bug #10158]
+ * lib/fileutils.rb (FileUtils#mode_to_s): Define mode_to_s() also
+ as singleton method, or FileUtils.chmod fails in verbose mode.
-Thu Aug 21 14:45:41 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 15:16:02 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/e2mmap.rb: removed commented-out code.
+ * test/fileutils/fileasserts.rb
+ (Test::Unit::FileAssertions#assert_not_symlink): Add a missing
+ optional argument "message".
-Thu Aug 21 13:23:34 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 15:03:24 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/rinda/ring.rb: split executable code into sample directory.
- * sample/rinda-ring.rb: ditto.
+ * lib/fileutils.rb (FileUtils#chown, FileUtils#chown_R): If user
+ and group are both nil, print ":".
-Thu Aug 21 13:21:45 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 12:47:08 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/drb/acl.rb: split executable code into sample directory.
- * sample/drb/acl.rb: ditto.
+ * io.c (appendline): use READ_CHAR_PENDING_XXX macros and
+ RSTRING_END().
-Thu Aug 21 12:55:35 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * io.c (rb_io_getline_1): rewrite nested if statement into one
+ statement.
- * .gitignore: ignored temporary file for Changelog.
- http://mkosaki.blog46.fc2.com/blog-entry-1284.html
+Tue Jul 9 11:04:35 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Thu Aug 21 12:40:22 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb (Win32::Registry#check):
+ should report the position of the error.
- * lib/net/imap.rb: split executable code into sample directory.
- * sample/net-imap.rb: ditto.
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb
+ (Win32::Registry#QueryValue): workaround for test-all crash.
-Thu Aug 21 12:23:56 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 10:27:56 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/net/imap.rb: removed commented-out code.
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb
+ (Win32::Registry.expand_environ): use suitable encoding for the
+ string.
-Wed Aug 20 17:27:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb (Win32::Registry#read):
+ should return REG_SZ, REG_EXPAND_SZ and REG_MULTI_SZ values with
+ the expected encoding -- assumed as the same encoding of name.
- * configure.in (RUBY_TRY_CFLAGS, RUBY_TRY_LDFLAGS),
- (RUBY_CHECK_BUILTIN_SETJMP, RUBY_SETJMP_TYPE),
- (RUBY_STACK_GROW_DIRECTION): quote defun names, for some
- versions of autoconf possibly. [ruby-core:64473] [Bug #10156]
+Tue Jul 9 10:02:45 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Aug 19 22:28:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb
+ (Win32::Registry::Error#initialize): use suitable encoding for the
+ string.
- * sprintf.c (rb_str_format): fix condition to round.
- [ruby-core:64454] [Bug #10151]
+Tue Jul 9 09:46:53 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Aug 19 22:22:45 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/dl/win32/lib/win32/registry.rb (Win32::Registry.expand_environ):
+ use suitable encoding for the string. fixed a test-all error of
+ r41838.
- * enc/trans/euckr-tbl.rb (EUCKR_TO_UCS_TBL): add missing euro and
- registered signs. [ruby-core:64452] [Bug #10149]
+ * ext/fiddle/win32/lib/win32/registry.rb: same changes of r41838 and
+ this revision of dl's win32/registry.rb.
-Tue Aug 19 13:59:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 9 07:39:45 2013 Eric Hodel <drbrain@segment7.net>
- * compar.c (rb_cmperr): preserve encodings of arguments in the
- message.
+ * lib/rubygems: Update to RubyGems 2.0.4. See
+ https://github.com/rubygems/rubygems/blob/2.0/History.txt for changes
-Tue Aug 19 10:13:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 9 01:47:16 2013 Tanaka Akira <akr@fsij.org>
- * ext/thread/thread.c (get_array): check instance variables are
- initialized properly. [ruby-core:63826][Bug #10062]
+ * bignum.c (biglsh_bang): Don't shift a BDIGIT with BITSPERDIG bits.
+ (bigrsh_bang): Ditto.
-Mon Aug 18 17:06:27 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 9 01:17:57 2013 Tanaka Akira <akr@fsij.org>
- * sprintf.c (rb_str_format): support rational 'f' format.
- [ruby-core:64382] [Bug #10136]
+ * bignum.c (bigrsh_bang): Fix bignum digits overrun.
-Mon Aug 18 08:03:46 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jul 9 00:46:22 2013 Tanaka Akira <akr@fsij.org>
- * spec/default.mspec: use 2.2 definition.
+ * bignum.c (biglsh_bang): Fix bignum digits under-run.
-Sun Aug 17 19:41:40 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Mon Jul 8 23:36:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (obj_memsize_of): don't calculate memsize of T_NODE
- when called from check_gen_consistency. It fixes segmentation
- fault on RGENGC_CHECK_MODE >= 1 introduced by r47188.
+ * ext/dl/win32/lib/win32/registry.rb (Error, API): use WCHAR
+ interfaces. c.f. [Bug #8508]
-Sun Aug 17 17:08:12 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Mon Jul 8 23:13:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/win32ole/win32ole.c (ole_invoke): use RHASH_SIZE instead of
- calling Hash#length method.
+ * win32/win32.c (rb_w32_pow): move from win32.h and disable strict
+ ANSI mode macro to let _controlfp() stuff defined.
+ [ruby-core:55312] [Bug #8495]
-Sat Aug 16 19:32:06 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * numeric.c (finite): add declaration for strict ANSI.
+ [ruby-core:55312] [Bug #8495]
- * ext/win32ole/win32ole_event.c (evs_length): use RARRAY_LEN instead
- of calling Array#length method.
+ * thread_win32.c (w32_thread_start_func, thread_start_func_1),
+ (timer_thread_func): use __stdcall instead of _stdcall which is
+ unavailable in strict ANSI mode. [ruby-core:55312] [Bug #8495]
-Sat Aug 16 10:20:17 2014 Eric Wong <e@80x24.org>
+ * win32/win32.c (gettimeofday): use __cdecl instead of _cdecl.
- * time.c (time_timespec): fix tv_nsec overflow
- [Bug #10144]
+Mon Jul 8 22:41:12 2013 Tanaka Akira <akr@fsij.org>
-Fri Aug 15 20:34:17 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (bary_mul): Arguments for work memory added.
+ (bary_mul_balance): Ditto.
+ (bary_mul_karatsuba): Ditto.
- * ext/win32ole/win32ole.c: separate WIN32OLE_EVENT src from
- win32ole.c.
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_event.c: ditto.
- * ext/win32ole/win32ole_event.h: ditto.
- * ext/win32ole/depend: ditto.
+Mon Jul 8 22:03:30 2013 Tanaka Akira <akr@fsij.org>
-Fri Aug 15 19:38:00 2014 Koichi Sasada <ko1@atdot.net>
+ * bignum.c (rb_big_sq_fast): New function for testing.
+ (rb_big_mul_toom3): Ditto.
- * iseq.c (rb_iseq_clone): Should not insert write barrier from
- non-RVALUE data (to non-RVALUE data, of course).
+ * internal.h (rb_big_sq_fast): Declared.
+ (rb_big_mul_toom3): Ditto.
- Ruby 2.1 also has a same problem.
+Mon Jul 8 21:59:34 2013 Tanaka Akira <akr@fsij.org>
-Fri Aug 15 19:34:33 2014 Koichi Sasada <ko1@atdot.net>
+ * bignum.c (bary_mul_balance): Initialize a local variable to suppress
+ a warning.
- * string.c (setup_fake_str): fake strings should not set class by
- RBASIC_SET_CLASS() because it insert write barriers to fake
- (non-RVALUE) structure.
+Mon Jul 8 20:55:22 2013 Tanaka Akira <akr@fsij.org>
- It can cause unexpected behaviour.
+ * bignum.c (bary_mul_balance): Reduce work memory.
- Ruby 2.1 also have a same problem (setup_fake_str() in parse.y).
+Mon Jul 8 08:26:15 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
- * symbol.c (setup_fake_str): ditto.
+ * test/openssl/test_pkey_ec.rb: Skip tests for "Oakley" curves as
+ they are not suitable for ECDSA.
+ [ruby-core:54881] [Bug #8384]
-Fri Aug 15 19:27:25 2014 Koichi Sasada <ko1@atdot.net>
+Mon Jul 8 08:03:01 2013 Tanaka Akira <akr@fsij.org>
- * array.c (rb_ary_tmp_new_fill): added.
- This function creates internal use only array (which is completely
- hided by ObjectSpace.each_object) with filling nil.
+ * bignum.c (bary_mul): Add a RB_GC_GUARD.
- Otherwise, it can be includes strange VALUEs.
+Sun Jul 7 23:56:32 2013 Tanaka Akira <akr@fsij.org>
- * internal.h: added.
+ * bignum.c (bary_mul_karatsuba): Unreachable code removed. Remove
+ several branches.
- * node.h: use rb_ary_tmp_new_fill() for MEMO.
+Sun Jul 7 22:59:06 2013 Tanaka Akira <akr@fsij.org>
-Fri Aug 15 10:13:37 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * internal.h (rb_big_mul_normal): Declared.
+ (rb_big_mul_balance): Ditto.
+ (rb_big_mul_karatsuba): Ditto.
- * lib/gserver.rb: removed unmaintained code.
- [ruby-core:40313][Feature #5480]
- * lib/xmlrpc/httpserver.rb: ditto.
+ * bignum.c (rb_big_mul_normal): New function for tests.
+ (rb_big_mul_balance): Ditto.
+ (rb_big_mul_karatsuba): Ditto.
-Fri Aug 15 09:22:12 2014 Eric Wong <e@80x24.org>
+Sun Jul 7 19:21:30 2013 Tanaka Akira <akr@fsij.org>
- * vm_core.h (rb_thread_struct): reorder to pack
- * cont.c (rb_context_struct, rb_fiber_struct): ditto
- On x86-64, these changes reduces:
- rb_thread_struct to 1000 bytes (from 1016)
- rb_context_struct to 1288 bytes (from 1312)
- rb_fiber_struct to 2272 bytes (from 2304)
+ * bignum.c: Reorder functions to decrease forward reference.
-Fri Aug 15 09:06:31 2014 Eric Wong <e@80x24.org>
+Sun Jul 7 14:41:57 2013 Tanaka Akira <akr@fsij.org>
- * thread_pthread.h: define RB_NATIVETHREAD_LOCK_INIT and
- RB_NATIVETHREAD_COND_INIT macros
+ * bignum.c: (bigsub_core): Use bary_sub.
+ (bary_sub): Returns a borrow flag. Use bary_subb.
+ (bary_subb): New function for actually calculating subtraction with
+ borrow.
+ (bary_sub_one): New function.
+ (bigadd_core): Use bary_add.
+ (bary_add): Returns a carry flag. Use bary_addc.
+ (bary_addc): New function for actually calculating addition with
+ carry.
+ (bary_add_one): New function.
+ (bary_muladd_1xN): Extracted from bary_mul_normal.
+ (bigmul1_normal): Removed.
+ (bary_mul_karatsuba): New function.
+ (bary_mul1): Invoke rb_thread_check_ints after bary_mul_normal.
+ (bary_mul): Remove most and least significant zeros before actual
+ multiplication. Use bary_sq_fast, bary_mul_balance,
+ bary_mul_karatsuba and bigmul1_toom3 as bigmul0.
+ (bigmul1_balance): Removed.
+ (bigmul1_karatsuba): Removed.
+ (bigsqr_fast): Removed.
+ (bary_sparse_p): Extracted from big_sparse_p.
+ (big_sparse_p): Removed.
+ (bigmul0): Use bary_mul.
- * thread_pthread.c (native_mutex_lock, native_mutex_unlock,
- native_mutex_trylock, native_mutex_initialize,
- native_mutex_destroy, native_cond_wait):
- use rb_nativethread_lock_t instead of pthread_mutex_t
- [Feature #10134]
+Sun Jul 7 11:54:33 2013 Kouhei Sutou <kou@cozmixng.org>
- * thread_pthread.c (native_mutex_debug): make argument type-agnostic
- to avoid later cast.
+ * NEWS: Add REXML::Text#<< related updates.
- * thread_pthread.c (register_cached_thread_and_wait):
- replace PTHREAD_COND_INITIALIZER with RB_NATIVETHREAD_COND_INIT,
- use native_mutex_{lock,unlock}
+Sun Jul 7 11:49:19 2013 Kouhei Sutou <kou@cozmixng.org>
- * thread_pthread.c (use_cached_thread):
- use native_mutex_{lock,unlock}
+ * lib/rexml/text.rb (REXML::Text#<<): Support appending in not
+ "raw" mode. [Bug #8602] [ruby-dev:47482]
+ Reported by Ippei Obayashi. Thanks!!!
- * thread_pthread.c (native_sleep):
- use rb_nativethread_lock_t to match th->interrupt_lock,
- use native_mutex_{lock,unlock}
+Sun Jul 7 11:43:13 2013 Kouhei Sutou <kou@cozmixng.org>
- * thread_pthread.c (timer_thread_lock): use rb_nativethread_lock_t type
+ * lib/rexml/text.rb (REXML::Text#<<): Support method chain use by "<<"
+ like other objects.
-Fri Aug 15 08:10:29 2014 Eric Wong <e@80x24.org>
+Sun Jul 7 11:34:18 2013 Kouhei Sutou <kou@cozmixng.org>
- * cont.c (cont_mark): fix typo in unused path [ci skip]
+ * lib/rexml/text.rb (REXML::Text#clear_cache): Extract common
+ cache clear code.
-Fri Aug 15 06:00:56 2014 Eric Wong <e@80x24.org>
+Sun Jul 7 11:01:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c (rb_thread_mark): update comment about marking `me'
- [ruby-core:64340] [ruby-core:64341]
+ * configure.in (RUBY_DTRACE_POSTPROCESS): dtrace version SUN D 1.11
+ introduces a check in the dtrace compiler to ensure that probes
+ actually exist. If there are no probes, then the -G step will
+ fail. As this test is only being used to determine whether -G is
+ necessary (for instance, on OSX it is not), adding a real probe to
+ the conftest allows it to succeed on newer versions of dtrace.
+ Patch by Eric Saxby <sax AT livinginthepast.org> at
+ [ruby-core:55826]. [Fixes GH-351], [Bug #8606].
-Fri Aug 15 05:53:59 2014 Eric Wong <e@80x24.org>
+Sun Jul 7 10:07:22 2013 Tanaka Akira <akr@fsij.org>
- * README.EXT: preliminary documentation for RB_GC_GUARD
- [Bug #10100] [ruby-core:60741]
+ * bignum.c (bary_sq_fast): Extracted from bigsqr_fast and
+ ensure not to access zds[2*xn].
+ (bigsqr_fast): Allocate the result bignum with 2*xn words.
-Thu Aug 14 00:26:19 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Sat Jul 6 07:37:43 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
- * ext/win32ole/win32ole.c: separate WIN32OLE_RECORD src from
- win32ole.c
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_record.c: ditto.
- * ext/win32ole/win32ole_record.h: ditto.
- * ext/win32ole/depend: ditto.
+ * ext/openssl/ossl_pkey_ec.c: Ensure compatibility to builds of
+ OpenSSL with OPENSSL_NO_EC2M defined, but OPENSSL_NO_EC not
+ defined.
+ * test/openssl/test_pkey_ec.rb: Iterate over built-in curves
+ (and assert their non-emptiness!) instead of hard-coding them, as
+ this may cause problems with respect to the different availability
+ of individual curves in individual OpenSSL builds.
+ [ruby-core:54881] [Bug #8384]
-Wed Aug 13 21:41:04 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ Thanks to Vit Ondruch for providing the patch!
- * ext/win32ole/win32ole.c: separate WIN32OLE_VARIANT src from
- win32ole.c.
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_variant.c: ditto.
- * ext/win32ole/win32ole_variant.c: ditto.
- * ext/win32ole/depend: ditto.
+Sat Jul 6 07:12:39 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
-Wed Aug 13 20:09:37 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * test/openssl/test_x509crl.rb: Remove unused variable.
+ [ruby-core:53501] [Bug #8114]
- * ext/win32ole/win32ole.c: remove unused variable.
+ Thanks, Vipul Amler, for pointing this out!
-Wed Aug 13 19:31:27 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Sat Jul 6 06:37:10 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
- * ext/win32ole/win32ole.c (ole_search_handler_method, rescue_callback,
- folerecord_inspect): use PRIsVALUE in rb_sprintf.
+ * ext/openssl/ossl.c: Provide CRYPTO_set_locking_callback() and
+ CRYPTO_set_id_callback() callback functions ossl_thread_id and
+ ossl_lock_callback to ensure the OpenSSL extension is usable in
+ multi-threaded environments.
+ [ruby-core:54900] [Bug #8386]
- * ext/win32ole/win32ole_param.c (foleparam_inspect): ditto.
+ Thanks, Dirkjan Bussink, for the patch!
- * ext/win32ole/win32ole_variable.c (folevariable_inspect): use
- PRIsVALUE in rb_sprintf, use rb_inspect.
+Sat Jul 6 06:06:16 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
-Wed Aug 13 11:54:41 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/openssl/ssl.rb: Fix SSL client connection crash for SAN marked
+ critical.
+ The patch for CVE-2013-4073 caused SSL crash when a SSL server returns
+ the certificate that has critical SAN value. X509 extension could
+ include 2 or 3 elements in it:
- * lib/irb/completion.rb: reverted r47163.
- because another case can't be show completion target.
+ [id, criticality, octet_string] if critical,
+ [id, octet_string] if not.
-Wed Aug 13 11:17:00 2014 Shimpei Makimoto <github@makimoto.org>
+ Making sure to pick the last element of X509 extension and use it as
+ SAN value.
+ [ruby-core:55685] [Bug #8575]
- * lib/irb.rb: Prevent irb from crashing when exception with
- nil backtrace is raised.
- [fix GH-434][ruby-core:58078][Bug #9063]
- * test/irb/test_raise_no_backtrace_exception.rb: ditto.
+ Thank you @nahi for providing the patch!
-Wed Aug 13 11:08:55 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Jul 6 04:49:38 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * lib/irb/completion.rb: fixed broken completion list with
- String including spaces. Contributed from @dunric. [fix GH-465]
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: register time objects so
+ they are referenced as ids during output.
+ * test/psych/test_date_time.rb: corresponding test.
-Wed Aug 13 00:07:01 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Jul 5 20:46:39 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/win32ole/win32ole.c: separate WIN32OLE_PARAM src from win32ole.c
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_param.c: ditto.
- * ext/win32ole/win32ole_param.h: ditto.
- * ext/win32ole/depend: ditto.
+ * test/ruby/test_unicode_escape.rb (TestUnicodeEscape#test_basic): this
+ assertion doesn't seems to be checking the unicode string on command
+ line, but seems to be checking how to treat the unicode string from
+ stdin. so, should escape '\' before 'u'. this fixes a test failure
+ on Windows.
-Tue Aug 12 23:17:47 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Jul 5 19:05:40 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/win32ole/win32ole.c: refactoring. move some methods
- into win32ole_type.c / win32ole_method.c
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_method.c: ditto.
- * ext/win32ole/win32ole_method.h: ditto.
- * ext/win32ole/win32ole_type.h: ditto.
- * ext/win32ole/win32ole_type.h: ditto.
+ * lib/fileutils.rb (FileUtils#chown, FileUtils#chown_R): Fix the
+ wrong output message when user is nil, which should be "chown
+ :group file" instead of "chown group file".
-Tue Aug 12 22:59:48 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Jul 5 16:21:56 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/win32ole/win32ole.c: refactoring. move
- ole_typelib_from_itypeinfo into win32ole_typelib.c.
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_typelib.h: ditto.
- * ext/win32ole/win32ole_typelib.h: ditto.
+ * test/ruby/test_regexp.rb
+ (TestRegexp#test_options_in_look_behind)
+ (TestRegexp#assert_match_at): Add tests for another problem
+ fixed in Onigmo 5.13.5. Previously Onigmo did not allow option
+ enclosures in look-behind, which makes it impossible to
+ interpolate a regexp into another in the middle of a look-behind
+ pattern. cf. https://github.com/k-takata/Onigmo/pull/17
-Tue Aug 12 21:49:40 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * test/ruby/test_regexp.rb
+ (TestRegexp#test_options_in_look_behind)
+ (TestRegexp#assert_match_at): Parse regexps in run time rather
+ than in compile time.
- * ext/win32ole/win32ole.c (ole_create_dcom): use the converted
- result if the argument can be converted to a string, to get rid
- of invalid access. Thanks to nobu. [ruby-dev:48467] [Bug #10127]
+Fri Jul 5 12:14:40 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Aug 12 14:22:58 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_notfound): after
+ r41710, the path of command uses backslash as the separator on
+ Windows.
- * configure.in: ignored working directory same as prefix value.
- [ruby-core:54999] [Bug #8409]
+Fri Jul 5 11:29:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 12 13:34:25 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/test/unit/assertions.rb (assert_raise_with_message): move from
+ test/fileutils/test_fileutils.rb. this is still experimental and
+ the interface may be changed.
- * lib/fileutils.rb: enable to remove with non-owner directory.
- [ruby-dev:45976] [Bug #6756]
- * test/fileutils/test_fileutils.rb: add testcase for #6756.
+Fri Jul 5 11:08:00 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Aug 12 12:57:28 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * win32/win32.c (w32_spawn): r41710 made that if the command starts with
+ a quote and includes slash, removed the top quote and NOT removed the
+ last quote.
+ this fixes test failures on test/ruby/test_process.rb and
+ test/webrick.
- * vm_exec.c: improve performance in ppc64 arch.
- [ruby-core:63437] [Feature #9997]
+Fri Jul 5 09:53:15 2013 NARUSE, Yui <naruse@ruby-lang.org>
+ * lib/mkmf.rb (CONFIG['CPPOUTFILE']): fix r41769; CONFIG['CPPOUTFILE']
+ may be nil.
-Tue Aug 12 12:14:52 2014 Akira Matsuda <ronnie@dio.jp>
+Fri Jul 5 05:39:53 2013 Tanaka Akira <akr@fsij.org>
- * lib/fileutils.rb: fix typo.
- [ruby-dev:47831] [Bug #9180]
+ * bignum.c (BARY_MUL1): Renamed from BARY_MUL.
+ (bary_mul1): Renamed from bary_mul.
+ (bary_mul): Renamed from bary_mul2.
-Tue Aug 12 10:10:42 2014 Eric Wong <e@80x24.org>
+Fri Jul 5 04:58:05 2013 Tanaka Akira <akr@fsij.org>
- * vm_method.c (release_method_definition): use rb_free_method_entry
+ * bignum.c (bary_mul_balance): Extracted from bigmul1_balance and
+ use bary_mul2 and bary_add to decrease allocations.
-Tue Aug 12 06:16:09 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Jul 5 02:14:00 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/win32ole/win32ole.c: separate WIN32OLE_METHOD src from
- win32ole.c.
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_method.c: ditto.
- * ext/win32ole/win32ole_method.h: ditto.
- * ext/win32ole/depend: ditto.
+ * lib/fileutils.rb (FileUtils#symbolic_modes_to_i): Fix the wrong
+ character class [+-=], which happened to match all desired
+ characters but also match undesired characters.
-Mon Aug 11 22:19:15 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * lib/fileutils.rb (FileUtils.chmod{,_R}): Enhance the symbolic
+ mode parser to support the permission symbols u/g/o and multiple
+ actions as defined in SUS, so that chmod("g=o+w", file) works as
+ expected. Invalid symbolic modes are now rejected with
+ ArgumentError.
- * ext/win32ole/win32ole_variable.c (folevariable_inspect): refactoring.
+Fri Jul 5 00:25:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Aug 11 20:47:27 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * lib/mkmf.rb (have_framework): allow header file to check.
+ [ruby-core:55745] [Bug #8593]
- * ext/win32ole/win32ole.c: separate WIN32OLE_VARIABLE src from
- win32ole.c
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_variable.c: ditto.
- * ext/win32ole/win32ole_variable.h: ditto.
- * ext/win32ole/depend: ditto.
+Thu Jul 4 22:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Mon Aug 11 16:17:21 2014 Tony Miller <mcfiredrill@gmail.com>
+ * object.c (rb_obj_equal): Fixed an rb_obj_equal documentation typo
+ where "a" was used instead of "obj".
+ Fixes GH-349. Patch by @adnandoric
- * dir.c (rb_dir_exists_p): [DOC] Document that Dir.exists? is
- deprecated. [ruby-core:64135] [Bug #10102]
+Thu Jul 4 20:39:20 2013 Tanaka Akira <akr@fsij.org>
-Mon Aug 11 11:26:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/make-snapshot: Exit with EXIT_FAILURE when it fails.
- * lib/tempfile.rb: start rdoc parsing inside singleton class
- definition to include the document there.
- [ruby-core:64157] [Bug #10105]
+Thu Jul 4 20:20:23 2013 Tanaka Akira <akr@fsij.org>
-Sun Aug 10 12:22:43 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (maxpow_in_bdigit_dbl): Use tables if available.
+ (maxpow_in_bdigit): Ditto.
+ (U16): New macro.
+ (U32): Ditto.
+ (U64): Ditto.
+ (U128): Ditto.
+ (maxpow16_exp): New table.
+ (maxpow16_num): New table.
+ (maxpow32_exp): New table.
+ (maxpow32_num): New table.
+ (maxpow64_exp): New table.
+ (maxpow64_num): New table.
+ (maxpow128_exp): New table.
+ (maxpow128_num): New table.
- * ext/win32ole/win32ole_type.c: refactoring.
+Thu Jul 4 18:25:25 2013 Tanaka Akira <akr@fsij.org>
-Sun Aug 10 10:34:00 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c (rb_cstr_to_inum): Avoid temporary buffer allocation except
+ very big base non-power-of-2 numbers.
- * lib/cgi/session/pstore.rb: separated sample code.
- * lib/open3.rb: ditto.
+Thu Jul 4 15:51:56 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Aug 10 10:03:24 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * string.c (rb_str_succ): use ONIGENC_MBCLEN_CHARFOUND_P correctly.
- * lib/irb/ext/multi-irb.rb: removed commented-out code.
+ * string.c (rb_str_dump): ditto.
-Sat Aug 9 11:02:07 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Jul 4 10:04:11 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/irb.rb: removed commented-out code.
- * lib/irb/**/*.rb: ditto.
+ * regcomp.c (): Merge Onigmo 5.13.5 23b523076d6f1161.
-Sat Aug 9 10:35:30 2014 Laurent Arnoud <laurent@spkdev.net>
+ * [bug] (thanks Akinori MUSHA and Ippei Obayashi)
+ Fix a renumbering bug in condition regexp with a named
+ capture. [Bug #8583]
+ * [spec] (thanks Akinori MUSHA)
+ Allow ENCLOSE_OPTION in look-behind.
- * lib/cmath.rb: fixed indent. [fix GH-696]
- * lib/drb/ssl.rb: ditto.
- * lib/irb/**/*.rb: ditto.
+Thu Jul 4 00:36:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Aug 9 10:28:03 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * internal.h (SIGNED_INTEGER_MAX): suppress warning C4146 on VC6.
+ seems a logical ORed expression becomes unsigned.
- * test/minitest/test_minitest_unit.rb: removed obsoleted condition
- for Ruby 1.8.
- * test/ruby/test_time_tz.rb: ditto.
+Thu Jul 4 00:13:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Aug 9 10:18:00 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ruby_atomic.h (rb_w32_atomic_cas): call InterlockedCompareExchange
+ directly.
- * test/cgi/test_cgi_core.rb: removed obsoleted condition for Ruby 1.8.
- * test/cgi/test_cgi_header.rb: ditto.
- * test/cgi/test_cgi_multipart.rb: ditto.
- * test/cgi/test_cgi_tag_helper.rb: ditto.
+ * ruby_atomic.h (ATOMIC_CAS): fix missing function call.
-Sat Aug 9 00:34:37 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Wed Jul 3 23:47:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/win32ole/win32ole.c: separate WIN32OLE_TYPE src from win32ole.c.
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_type.c: ditto.
- * ext/win32ole/win32ole_type.h: ditto.
- * ext/win32ole/depend: ditto.
+ * ruby_atomic.h (ATOMIC_CAS): suppress C4022 and C4047 warnings in
+ VC6. only InterlockedCompareExchange is declared using PVOID.
-Fri Aug 8 01:53:37 2014 Masaki Matsushita <glass.saga@gmail.com>
+Wed Jul 3 22:29:20 2013 Tanaka Akira <akr@fsij.org>
- * lib/securerandom.rb: use OpenSSL::BN for performance improvement.
+ * internal.h (ruby_digit36_to_number_table): Declared.
- * benchmark/bm_securerandom.rb: benchmark script.
+ * util.c (ruby_digit36_to_number_table): Moved from scan_digits.
-Fri Aug 8 17:19:57 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c (conv_digit): Use ruby_digit36_to_number_table.
- * lib/open-uri.rb: remove needless condition for old ruby version.
- * test/open-uri/test_open-uri.rb: ditto.
+ * pack.c (hex2num): Ditto.
-Fri Aug 8 16:40:59 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jul 3 18:12:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/irb/init.rb: removed unreachable code.
+ * lib/mkmf.rb (install_dirs): revert DESTDIR prefix by r39841, since
+ it is fixed by r41648. [ruby-core:55760] [Bug #8115]
-Fri Aug 8 16:34:22 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jul 3 14:15:25 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/drb/drb.rb: removed unreachable code.
+ * dir.c (do_stat): use rb_w32_ustati64() in win32.c to get rid of
+ mysterious behavior of FindFirstFile() Windows API which treat "<"
+ and ">" like as wildcard characters. [ruby-core:55764] [Bug #8597]
-Fri Aug 8 14:33:49 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jul 3 12:06:42 2013 Tanaka Akira <akr@fsij.org>
- * lib/webrick/httpproxy.rb: remove needless condition
- for old ruby version.
+ * bignum.c (maxpow_in_bdigit): Renamed from calc_hbase and return
+ maxpow.
-Fri Aug 8 01:07:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 2 23:47:50 2013 Tanaka Akira <akr@fsij.org>
- * parse.y (parser_yylex): fix invalid char in eval, should raise
- an syntax error too, as well as directly coded.
- [ruby-core:64243] [Bug #10117]
+ * bignum.c (roomof): Cast to long.
+ (rb_ull2big): Fix bignew arguments.
-Thu Aug 7 23:25:29 2014 Masaki Matsushita <glass.saga@gmail.com>
+Tue Jul 2 21:17:37 2013 Tanaka Akira <akr@fsij.org>
- * lib/open3.rb: avoid unnecessary write if stdin_data is empty.
+ * bignum.c (rb_cstr_to_inum): Merge two temporary buffers.
-Thu Aug 7 21:42:49 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Tue Jul 2 20:25:04 2013 Tanaka Akira <akr@fsij.org>
- * ext/win32ole/win32ole_typelib.c (foletypelib_version): return
- version string.
+ * bignum.c (rb_cstr_to_inum): Use BDIGIT_DBL to collect adjacent digits.
+ (BDIGIT_DBL_MAX): New macro.
+ (maxpow_in_bdigit_dbl): New function.
- * test/win32ole/test_win32ole_typelib.rb (test_version): ditto.
+Tue Jul 2 17:23:33 2013 Shugo Maeda <shugo@ruby-lang.org>
-Thu Aug 7 15:13:13 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * doc/syntax/refinements.rdoc: add description of Module#using and
+ refinement inheritance by module inclusion.
- * lib/cgi.rb: remove needless condition for old ruby version.
+Tue Jul 2 17:22:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Aug 7 06:04:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h: add EUC-JP and Windows-31J.
- * parse.y (parser_yyerror): preserve source code encoding in
- syntax error messages. [ruby-core:64228] [Bug #10114]
+ * re.c (rb_char_to_option_kcode): use built-in encoding indexes in
+ internal.h.
-Wed Aug 6 20:56:02 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * internal.h: add UTF8-MAC.
- * ext/win32ole/win32ole.c: separate src of WIN32OLE_TYPELIB from
- win32ole.c
+ * dir.c (rb_utf8mac_encoding): use built-in encoding indexes in
+ internal.h.
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_typelib.c: ditto.
- * ext/win32ole/win32ole_typelib.h: ditto.
- * ext/win32ole/depend: ditto.
+ * internal.h: add UTF-{16,32} dummy encodings.
-Wed Aug 6 20:44:07 2014 Akinori MUSHA <knu@iDaemons.org>
+ * string.c (rb_str_inspect, str_scrub0): use built-in encoding indexes
+ in internal.h.
- * enum.c (enum_one): [DOC] Move enum.one? documentation before the
- relevant method. Submitted by @vipulnsward. [Fixes GH-687]
- https://github.com/ruby/ruby/pull/687
+ * internal.h: add UTF-{16,32}{BE,LE}.
-Wed Aug 6 20:25:47 2014 Akinori MUSHA <knu@iDaemons.org>
+ * io.c (io_strip_bom): use built-in encoding indexes in internal.h.
- * lib/set.rb (Set#replace): Check if an object given is enumerable
- before clearing self. Reported by yui-knk. [GH-675]
- https://github.com/ruby/ruby/pull/675
+ * internal.h (rb_{ascii8bit,utf8,usascii}_encindex): use built-in
+ encoding indexes for optimization.
-Wed Aug 6 20:07:26 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * encoding.c (enc_inspect, rb_locale_encindex),
+ (enc_set_filesystem_encoding, rb_filesystem_encindex): use built-in
+ encoding indexes directly.
- * ext/win32ole/win32ole.c (olerecord_ivar_set): remove rb_str_subseq.
+ * encoding.c (rb_enc_set_index, rb_enc_associate_index): validate
+ argument encoding index.
-Wed Aug 6 19:09:27 2014 Akinori MUSHA <knu@iDaemons.org>
+ * include/ruby/encoding.h (ENCODING_SET): use rb_enc_set_index()
+ instead of setting inlined bits directly.
- * lib/set.rb (Set): Implement Set#clone by splitting
- initialize_copy into initialize_dup and initialize_clone.
- Submitted by yui-knk. [Fixes GH-661]
- https://github.com/ruby/ruby/pull/661
+ * encoding.c (rb_enc_init): register preserved indexes.
-Wed Aug 6 18:42:58 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * internal.h (ruby_preserved_encindex): move from encoding.c.
- * ext/win32ole/win32ole.c: separate src of WIN32OLERuntimeError
- from win32ole.c.
+Tue Jul 2 11:14:36 2013 Shota Fukumori <sorah@cookpad.com>
- * ext/win32ole/win32ole.h: ditto
- * ext/win32ole/depend: ditto.
- * ext/win32ole/win32ole_error.c: ditto.
- * ext/win32ole/win32ole_error.h: ditto.
+ * lib/mkmf.rb (try_config): Fix to not replace $LDFLAGS with $libs
+ (1.9.3 behavior) [ruby-core:55752] [Bug #8595]
-Wed Aug 6 04:33:58 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Tue Jul 2 00:39:59 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/http.rb (Net::HTTP.proxy_uri): use initializer instead
- of parser to handle IPv6 address. [Bug #9129]
+ * ext/socket/ipsocket.c (init_inetsock_internal): Don't try mismatched
+ address family if already failed.
-Wed Aug 6 04:16:05 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Jul 1 23:07:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/net/http/requests.rb (Net::HTTP::Options::RESPONSE_HAS_BODY):
- OPTIONS requests may have response bodies. [Feature #8429]
- http://tools.ietf.org/html/rfc7231#section-4.3.7
+ * template/encdb.h.tmpl: define encoding index macros to use the index
+ statically from C source.
-Wed Aug 6 03:18:04 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Jul 1 22:57:19 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/http/generic_request.rb (Net::HTTP::GenericRequest#exec):
- handle req['host'] in update_uri.
+ * bignum.c (bary_mul2): New function.
+ (rb_cstr_to_inum): Use a better algorithm to compose the result
+ if input length is very long.
- * lib/net/http/generic_request.rb
- (Net::HTTP::GenericRequest#update_uri):
- use req['host'] if it is explicitly set. Even if URI is given,
- it is already used for the initial value of req['host'].
- Therefore overwritten value should be respected. [Bug #10054]
+Mon Jul 1 20:22:00 2013 Kenta Murata <mrkn@cookpad.com>
-Wed Aug 6 03:17:34 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.h (RB_UNUSED_VAR, UNREACHABLE):
+ import macros from ruby.h for 1.9.3.
+ [Bug #8588] [ruby-core:55730]
- * lib/net/http/generic_request.rb
- (Net::HTTP::GenericRequest#update_uri):
- handle scheme, host, and port to reflect connection to @uri.
+ * ext/bigdecimal/bigdecimal.gemspec: Bump version to 1.2.1.
- * lib/net/http.rb (Net::HTTP#begin_transport): move trivial handling
- to Net::HTTP::GenericRequest#update_uri.
+Mon Jul 1 20:03:39 2013 Tanaka Akira <akr@fsij.org>
+ * ext/socket/ipsocket.c (init_inetsock_internal): Use an address
+ family for local address which is different to the remote
+ address if no other choice.
-Wed Aug 6 02:16:43 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Jul 1 15:05:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/net/http/generic_request.rb
- (Net::HTTP::GenericRequest#initialize):
- optimize object allocation.
+ * lib/csv.rb (CSV#<<): use StringIO#set_encoding instead of creating
+ new StringIO instance with String#force_encoding, forcing encoding
+ discards the cached coderange bits and can make further operations
+ very slow. [ruby-core:55714] [Bug #8585]
-Wed Aug 6 01:16:47 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/stringio/stringio.c (strio_write): keep coderange of
+ ptr->string.
- * lib/uri/generic.rb (URI::Generic#path_query): remove a private method.
+ * string.c (rb_enc_cr_str_buf_cat, rb_str_append): consider an empty
+ string 7bit-clean and should not discard cached coderange of string
+ to be appended.
-Wed Aug 6 01:15:47 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Jul 1 12:56:41 2013 Shugo Maeda <shugo@ruby-lang.org>
- * lib/uri/generic.rb (URI::Generic#normalize!): use String#empty?
+ * eval.c (rb_using_module): activate refinements in the ancestors of
+ the argument module to support refinement inheritance by
+ Module#include. [ruby-core:55671] [Feature #8571]
- * lib/uri/generic.rb (URI::Generic#path_query): optimized.
+ * test/ruby/test_refinement.rb: related test.
- * lib/uri/generic.rb (URI::Generic#to_s): optimized.
+Mon Jul 1 12:02:39 2013 Tanaka Akira <akr@fsij.org>
-Wed Aug 6 00:15:10 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (rb_cstr_to_inum): Skip leading zeros.
- * lib/uri/http.rb (URI::HTTP#request_uri): optimized.
- decrease object allocation, and ensure always create at least one new
- object for return value.
+Mon Jul 1 00:59:23 2013 Tanaka Akira <akr@fsij.org>
-Wed Aug 6 03:41:21 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * bignum.c (nlz16): New function.
+ (nlz32): Ditto.
+ (nlz64): Ditto.
+ (nlz128): Ditto.
+ (nlz): Redefined using an above function.
+ (bitsize): New macro.
+ (rb_cstr_to_inum): Use bitsize instead of nlz.
- * ext/psych/lib/psych/visitors/to_ruby.rb: backwards compatibility for
- hashes emitted by Syck. Github #198
- * test/psych/test_hash.rb: test for change.
+Sun Jun 30 22:40:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Tue Aug 5 19:27:59 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * lib/prime.rb: Corrected a few comments. Patch by @Nullset14.
+ Fixes GH-346.
- * ext/win32ole/win32ole.c (ole_invoke): skip VariantClear when
- argument is VT_RECORD variant.
+Sun Jun 30 21:53:38 2013 Tanaka Akira <akr@fsij.org>
-Tue Aug 5 15:52:51 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c (rb_cstr_to_inum): Use rb_integer_unpack if base is a power
+ of 2.
- * gems/bundled_gems: Upgrade to test-unit-3.0.0 and minitest-5.4.0.
+Sun Jun 30 10:59:23 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Aug 4 21:50:09 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * win32/win32.c (join_argv): use backslash instead of slash in program
+ path, otherwise cannot invoke "./c\u{1ee7}a.exe" for some reason.
+ [ruby-core:24309] [Bug #1771]
- * test/win32ole/test_win32ole_record.rb: add for WIN32OLE_RECORD
- test(need .NET Framework 3.5 to run test).
+ * io.c (spawnv, spawn): use UTF-8 spawn family. [Bug #1771]
-Mon Aug 4 19:49:34 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * process.c (proc_exec_sh, proc_spawn_cmd, proc_spawn_sh): ditto.
- * ext/win32ole/win32ole.c (ole_invoke): call rb_hash_foreach instead
- of rb_block_call.
+ * win32/win32.c (translate_char, join_argv, has_redirection): make
+ codepage aware.
- * ext/win32ole/win32ole.c: add comment for rdoc of WIN32OLE_VARIANT
- class.
+ * win32/win32.c (rb_w32_udln_find_exe_r, rb_w32_udln_find_file_r):
+ codepage independent versions.
-Mon Aug 4 09:12:47 2014 Eric Wong <e@80x24.org>
+ * win32/win32.c (w32_spawn): extract codepage aware code from
+ rb_w32_spawn().
- * variable.c: cleanup to use rb_const_lookup
- [Feature #10107]
+ * win32/win32.c (rb_w32_uspawn): add UTF-8 version function.
- * vm_insnhelper.c: ditto
+ * win32/win32.c (w32_aspawn_flags): extract codepage aware code from
+ rb_w32_aspawn_flags().
-Sun Aug 3 10:55:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/win32.c (rb_w32_uaspawn_flags, rb_w32_uaspawn_flags): add
+ UTF-8 version functions.
- * include/ruby/encoding.h (rb_check_symbol_cstr): ditto.
+ * win32/win32.c (w32_getenv): extract codepage aware code from
+ rb_w32_ugetenv() and rb_w32_getenv().
-Sun Aug 3 10:43:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/win32.c (w32_stati64): extract codepage aware code from
+ rb_w32_ustati64() and rb_w32_stati64().
- * vm_insnhelper.c (vm_call_method): unusable super class should cause
- method missing when BasicObject is refined but not been using.
- [ruby-core:64166] [Bug #10106]
+ * dln.h (DLN_FIND_EXTRA_ARG, DLN_FIND_EXTRA_ARG_DECL): allow extra
+ arguments to dln_find_{exe,file}_r().
+
+ * dln_find.c (dln_find_exe_r, dln_find_file_r): add extract arguments.
+
+ * process.c (EXPORT_STR, EXPORT_DUP): convert to default process
+ encoding if defined.
+
+ * process.c (check_exec_env_i): convert environment variables too.
+
+ * process.c (rb_exec_fillarg): convert program path and arguments too.
+
+Sun Jun 30 01:57:08 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (big_rshift): Use abs2twocomp and twocomp2abs_bang.
+
+Sun Jun 30 00:14:20 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (RBIGNUM_SET_NEGATIVE_SIGN): New macro.
+ (RBIGNUM_SET_POSITIVE_SIGN): Ditto.
+ (rb_big_neg): Inline get2comp to avoid double negation.
+
+Sat Jun 29 23:26:41 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bary_neg): Extracted from bary_2comp.
+ (bary_plus_one): Extracted from bary_2comp.
+ (bary_2comp): Use bary_neg and bary_plus_one.
+ (big_extend_carry): Extracted from get2comp.
+ (get2comp): Use big_extend_carry.
+ (rb_integer_unpack): Use big_extend_carry.
+ (rb_big_neg): Use bary_neg.
+
+Sat Jun 29 22:31:59 2013 Tanaka Akira <akr@fsij.org>
-Sat Aug 2 23:47:45 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (bary_2comp): Simplified.
- * ext/win32ole/win32ole.c: separate WIN32OLE::VARIANT src file
- from win32ole.c
- * ext/win32ole/win32ole.h: ditto.
- * ext/win32ole/win32ole_variant_m.c: ditto.
- * ext/win32ole/win32ole_variant_m.h: ditto.
- * ext/win32ole/depend: ditto.
- * ext/.document: ditto.
+Sat Jun 29 09:33:53 2013 Tanaka Akira <akr@fsij.org>
-Sat Aug 2 14:34:58 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (bigor_int): Return -1 if y == -1.
- * ext/win32ole/win32ole.c: add comments for rdoc.
+Sat Jun 29 09:07:16 2013 Tanaka Akira <akr@fsij.org>
-Sat Aug 2 10:26:57 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (bigor_int): Use RB_GC_GUARD.
+ (bigxor_int): Take xn and hibitsx arguments. Use twocomp2abs_bang.
+ (rb_big_xor): Use abs2twocomp and twocomp2abs_bang.
- * object.c (rb_obj_itself): new method Object#itself. based on the
- patch by Rafael Franca in [ruby-core:64156].
- [EXPERIMENTAL] this method may be renamed due to compatibilities.
- [ruby-core:44704] [Feature #6373]
+Sat Jun 29 08:19:58 2013 Tanaka Akira <akr@fsij.org>
-Fri Aug 1 22:30:40 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (bigand_int): Don't apply bitwise and for BDIGIT and long.
+ (bigor_int): Take xn and hibitsx arguments. Use twocomp2abs_bang.
+ (rb_big_or): Use abs2twocomp and twocomp2abs_bang.
- * ext/win32ole/win32ole.c (folerecord_initialize): accept
- only 2 arguments. The 2nd argument should be WIN32OLE object or
- WIN32OLE_RECORD object.
+Fri Jun 29 01:08:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Fri Aug 1 20:17:33 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * numeric.c (fix_mul): remove FIT_SQRT_LONG test as it was causing
+ fix_mul to return an incorrect result for -2147483648*-2147483648
+ on 64 bit platforms
- * ext/win32ole/win32ole.c (ole_variant2val): call
- folerecord_s_allocate instead of WIN32OLE_RECORD.new.
+ * test/ruby/test_integer_comb.rb (class TestIntegerComb): add test case
+
+Fri Jun 28 12:26:53 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big_and): Allocate new bignum with same size to shorter
+ argument if it's high bits are zero.
+
+Fri Jun 28 12:14:04 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/ipsocket.c (init_inetsock_internal): Don't use local
+ addresses which address family is different to remote address.
+
+Fri Jun 28 08:06:22 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigand_int): Add arguments, xn and hibitsx.
+ Use twocomp2abs_bang.
+
+Thu Jun 27 23:58:13 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (abs2twocomp_bang): Removed.
+ (abs2twocomp): Take n_ret argument to return actual length.
+ (rb_big_and): Follow above change.
+
+Thu Jun 27 22:52:19 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (get2comp): Use bary_2comp.
+ (abs2twocomp_bang): New function.
+ (abs2twocomp): New function.
+ (twocomp2abs_bang): New function.
+ (rb_big_and): Use abs2twocomp and twocomp2abs_bang.
+
+Thu Jun 27 20:03:13 2013 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+
+ * ext/openssl/lib/openssl/ssl.rb (verify_certificate_identity): fix
+ hostname verification. Patched by nahi.
+
+ * test/openssl/test_ssl.rb (test_verify_certificate_identity): test for
+ above.
-Fri Aug 1 18:39:57 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
- * test/date/test_date.rb: remove commented-out code.
- * test/date/test_date_arith.rb: ditto.
- * test/date/test_date_attr.rb: ditto.
- * test/date/test_date_parse.rb: ditto.
+Thu Jun 27 00:23:57 2013 Tanaka Akira <akr@fsij.org>
-Fri Aug 1 16:35:32 2014 Evan Miller <evan@squareup.com>
+ * bignum.c (rb_big_pow): Retry if y is a Bignum and it is
+ representable as a Fixnum.
+ Use rb_absint_numwords.
- * numeric.c (flodivmod): all results are NaN if divisor is NaN.
- [fix GH-692]
+Wed Jun 26 23:53:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Thu Aug 01 07:28:12 2014 Kenta Murata <mrkn@mrkn.jp>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_save_rounding_mode): fix typo.
+ Fixes GH-343. Patch by @jgarber.
- * ext/bigdecimal/bigdecimal.c: [DOC] Add description of
- `BigDecimal.new` exceptions. Patched by @joker1007 and
- @prathamesh-sonpatki [Fixes GH-690]
- https://github.com/ruby/ruby/pull/690
+Wed Jun 26 23:22:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jul 31 22:20:12 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * enumerator.c (rb_enumeratorize_with_size): use strict definition
+ rb_enumerator_size_func.
- * ext/win32ole/win32ole.c: add WIN32OLE_RECORD#inspect.
+Wed Jun 26 23:11:14 2013 Kouhei Sutou <kou@cozmixng.org>
-Thu Jul 31 20:35:32 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * gc.c (is_before_sweep): Add a missing space before a parenthesis.
+ * gc.c (rb_gc_force_recycle): Add a missing space around a parenthesis.
- * ext/win32ole/win32ole.c: add
- WIN32OLE_RECORD#ole_instance_variable_set and
- WIN32OLE_RECORD#ole_instance_variable_get
+Wed Jun 26 22:44:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Jul 30 23:28:10 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+ * include/ruby/intern.h (rb_enumeratorize_with_size): cast for
+ backward compatibility.
- * sprintf.c (rb_str_format): like r47006, get rid of
- function calls in RSTRING_PTR().
+ * include/ruby/intern.h (rb_enumerator_size_func): define strict
+ function declaration for rb_enumeratorize_with_size().
-Wed Jul 30 22:10:29 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Wed Jun 26 21:01:22 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * process.c (rlimit_resource_type, rlimit_resource_value):
- get rid of inadvertent dynamic symbol pin-down.
+ * test/ruby/test_io.rb (TestIO#test_write_32bit_boundary): skip if
+ writing a file is slow.
+ [ruby-core:55541] [Bug #8519]
- * re.c (match_backref_number): ditto.
+Wed Jun 26 16:42:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * signal.c (esignal_init, rb_f_kill, trap_signm): ditto.
+ * lib/mkmf.rb: should use expanded values for header directories
+ unless extmk. patch by vo.x (Vit Ondruch) at [ruby-core:55653]
+ [Bug #8115], rhbz#921650.
- * transcode.c (econv_opts): ditto.
+Wed Jun 26 12:48:22 2013 Tanaka Akira <akr@fsij.org>
- * vm_trace.c (symbol2event_flag): ditto.
+ * bignum.c (bigxor_int): Fix a buffer over read.
-Wed Jul 30 21:29:39 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Wed Jun 26 12:13:12 2013 Tanaka Akira <akr@fsij.org>
- * ext/win32ole/win32ole.c (ole_invoke): pass WIN32OLE_RECORD variant
- by reference when invoke OLE methods at first.
+ * bignum.c (bigand_int): Consider negative values.
+ (bigor_int): The allocated bignum should have enough size
+ to store long.
+ This fixes (bignum fits in a BDIGIT) | (fixnum bigger than BDIGIT)
+ on platforms which SIZEOF_BDIGITS < SIZEOF_LONG,
+ such as LP64 with 32bit BDIGIT (no int128).
- * ext/win32ole/win32ole.c (olerecord_set_ivar): release
- IRecordInfo interface before setting another IRecordInfo interface.
+Wed Jun 26 12:08:51 2013 Tanaka Akira <akr@fsij.org>
-Wed Jul 30 13:17:35 2014 Koichi Sasada <ko1@atdot.net>
+ * test/socket/test_udp.rb: Close sockets explicitly.
+ Don't use fixed port number.
- * gc.c: remove unused macros.
+Wed Jun 26 07:27:17 2013 Tanaka Akira <akr@fsij.org>
-Tue Jul 29 22:21:37 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (bigand_int): Fix a buffer over read.
- * ext/win32ole/win32ole.c (hash2olerec): ignore WIN32OLE_RECORD
- instance variable if the variable is nil.
+Wed Jun 26 06:48:07 2013 Tanaka Akira <akr@fsij.org>
-Tue Jul 29 19:43:27 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (bigadd_int): Fix a buffer over read.
- * ext/win32ole/win32ole.c (folerecord_method_missing): refactoring.
- divide functionality of folerecord_method_missing into
- olerecord_ivar_set and olerecord_ivar_get.
+Wed Jun 26 01:18:13 2013 Masaya Tarui <tarui@ruby-lang.org>
-Mon Jul 28 20:20:08 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * gc.c (is_before_sweep): Add new helper function that check the object
+ is before sweep?
+ * gc.c (rb_gc_force_recycle): Have to clear mark bit if object's slot
+ already ready to minor sweep.
- * ext/win32ole/win23ole.c (folerecord_method_missing): support
- setter of member of WIN32OLE_RECORD object.
+Wed Jun 26 01:17:29 2013 Tanaka Akira <akr@fsij.org>
-Mon Jul 28 06:37:19 2014 Zachary Scott <e@zzak.io>
+ * bignum.c (bigsub_int): Fix a buffer over read.
- * vm_eval.c: [DOC] Fix rdoc formatting of patch from [Bug #9551]
+Tue Jun 25 22:45:43 2013 Tanaka Akira <akr@fsij.org>
-Mon Jul 28 06:34:43 2014 Zachary Scott <e@zzak.io>
+ * bignum.c (rb_absint_singlebit_p): Use POW2_P.
+ (bary_pack): Ditto.
+ (rb_big2str0): Ditto.
+ (POW2_P): Moved to top.
- * vm_eval.c: [DOC] [Bug #9551] Improve clarity of Kernel::catch
- documentation, patch by Jesse Sielaff.
+Tue Jun 25 22:28:07 2013 Akinori MUSHA <knu@iDaemons.org>
-Mon Jul 28 06:24:54 2014 Zachary Scott <e@zzak.io>
+ * lib/rubygems/ext/builder.rb (Gem::Ext::Builder.make): Pass
+ DESTDIR via command line to override what's in MAKEFLAGS. This
+ fixes an installation problem under a package building
+ environment where DESTDIR is specified in the (parent) command
+ line. [Fixes GH-327]
- * lib/uri/common.rb: [DOC] [Bug #9563] Recommend using URI.escape
- before parsing a uri to avoid invalid characters. Reported by
- Evgeniy Serykh.
+Tue Jun 25 21:43:13 2013 Tanaka Akira <akr@fsij.org>
-Mon Jul 28 05:55:56 2014 Zachary Scott <e@zzak.io>
+ * bignum.c (big2dbl): Use (BDIGIT)1 instead of 1UL.
+ (bary_mul_normal): Remove a useless cast.
- * time.c: [DOC] Clarify %Y in strftime, which can accept any digits
- and will output at least 4 digits as the year. Reported by Yury
- Trofimenko [Bug #10049]
+Tue Jun 25 21:26:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * lib/time.rb: ditto
+ * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Fix for the cases when
+ the argument x is not a BigDecimal.
+ This change is based on the patch made by Heesob Park and Garth Snyder.
+ [Bug #6862] [ruby-core:47145]
+ [Fixes GH-332] https://github.com/ruby/ruby/pull/332
-Mon Jul 28 05:32:06 2014 Zachary Scott <e@zzak.io>
+Tue Jun 25 20:36:31 2013 Tanaka Akira <akr@fsij.org>
- * lib/uri/common.rb: [DOC] [Bug #10075] Clarify how URI.join arguments
- are handled by RFC3986, originally reported by John Feminella.
+ * bignum.c (big2ulong): "check" argument removed.
+ (rb_big2ulong): Follow above change.
+ (rb_big2long): Ditto.
+ (rb_big_rshift): Ditto.
+ (rb_big_aref): Ditto.
-Mon Jul 28 05:21:41 2014 Zachary Scott <e@zzak.io>
+Tue Jun 25 20:08:29 2013 Tanaka Akira <akr@fsij.org>
- * file.c: [DOC] Clarify how File.file? handles symbolic links. Also
- cleaned up the rdoc style for this method, more to follow.
- Originally reported by Michael Renner [Bug #10067]
+ * bignum.c (rb_big2ulong_pack): Use rb_integer_pack.
+ (rb_big_aref): Call big2ulong with TRUE for "check" argument.
+ It should be non-effective.
-Mon Jul 28 05:12:22 2014 Zachary Scott <e@zzak.io>
+Tue Jun 25 19:07:33 2013 Tanaka Akira <akr@fsij.org>
- * time.c: [DOC] Remove dead link and old bug report, which hasn't been
- reproduced in a few years. Reported by Federico Builes [Bug #10071]
+ * bignum.c (LSHIFTX): Revert r41611.
+ The redundant expression suppresses a warning, C4293, by Visual
+ Studio.
+ http://ruby-mswin.cloudapp.net/vc10-x64/ruby-trunk/log/20130625T072854Z.log.html.gz#miniruby
-Mon Jul 28 04:39:58 2014 Zachary Scott <e@zzak.io>
+Tue Jun 25 19:03:00 2013 Tanaka Akira <akr@fsij.org>
- * ext/zlib/zlib.c: [DOC] Remove default value of Zlib constants, as
- they may change in the implementation without notice. Patched by
- @robin850 [Fixes GH-682] https://github.com/ruby/ruby/pull/682
+ * bignum.c (big2ulong): Add a cast.
+ (big2ull): Add a specialized code for SIZEOF_LONG_LONG <=
+ SIZEOF_BDIGITS.
-Mon Jul 28 04:35:35 2014 Zachary Scott <e@zzak.io>
+Tue Jun 25 12:42:57 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_hmac.c: Fix NO_HMAC warning [Fixes GH-665]
- Patched by @vipulnsward https://github.com/ruby/ruby/pull/665
+ * bignum.c (integer_unpack_single_bdigit): Use "1 + ~u" instead of
+ "-u" to suppress warning (C4146) by Visual Studio.
+ Reported by ko1 via IRC.
-Sun Jul 27 19:49:36 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jun 25 12:28:57 2013 Tanaka Akira <akr@fsij.org>
- * lib/cgi/core.rb: remove unused variables.
- * lib/erb.rb: ditto.
- * lib/mkmf.rb: ditto.
- * lib/net/http/response.rb: ditto.
- * lib/optparse/version.rb: ditto.
- * lib/prime.rb: ditto.
- * lib/racc/parser.rb: ditto.
- * lib/rexml/document.rb: ditto.
- * lib/rexml/dtd/dtd.rb: ditto.
- * lib/rexml/element.rb: ditto.
- * lib/rexml/functions.rb: ditto.
- * lib/rexml/parsers/xpathparser.rb: ditto.
+ * bignum.c (big2ulong): Add code specialized for SIZEOF_LONG <=
+ SIZEOF_BDIGITS.
+ This prevents shift width warning from "num <<= BITSPERDIG".
-Sun Jul 27 05:11:21 2014 Zachary Scott <e@zzak.io>
+Tue Jun 25 12:23:30 2013 Koichi Sasada <ko1@atdot.net>
- * lib/irb.rb: [DOC] PROMPT_I cannot be nil, patch by @hgillane
- Fixes documenting-ruby/ruby#37
- https://github.com/documenting-ruby/ruby/pull/37
+ * gc.c: fix oldgen/remembered_shady counting algorithm.
-Sun Jul 27 02:41:50 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c (rgengc_check_shady): increment
+ `objspace->rgengc.remembered_shady_object_count' here.
- * lib/shell/command-processor.rb: remove unused variable.
- * lib/shell/system-command.rb: ditto.
- * lib/tmpdir.rb: ditto.
- * lib/uri/generic.rb: ditto.
+ * gc.c (rgengc_remember): return FALSE if obj is already remembered.
-Sun Jul 27 02:08:31 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c (rgengc_rememberset_mark): make it void.
- * lib/weakref.rb: split executable code into sample directory.
- * sample/weakref.rb: ditto.
+ * gc.c (gc_mark_children): fix to double counting oldgen_object_count
+ at minor GC.
-Sun Jul 27 02:06:55 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jun 25 12:07:18 2013 Tanaka Akira <akr@fsij.org>
- * lib/delegate.rb: split executable code into sample directory.
- * sample/delegate.rb: ditto.
+ * bignum.c (MSB): Removed.
+ (BDIGIT_MSB): Defined using BIGRAD_HALF.
+ (bary_2comp): Apply BIGLO after possible over flow of BDIGIT.
+ (get2comp): Ditto.
+ (bary_unpack_internal): Use BDIGIT_MSB.
+ Apply BIGLO after possible over flow of BDIGIT.
+ (rb_integer_unpack): Use BDIGIT_MSB.
+ (calc_hbase): Use BDIGMAX.
+ (big2dbl): Use BDIGMAX.
+ Apply BIGLO after possible over flow of BDIGIT.
+ (rb_big_neg): Apply BIGLO after possible over flow of BDIGIT.
+ (biglsh_bang): Ditto.
+ (bigrsh_bang): Ditto.
+ (bary_divmod): Use BDIGIT_MSB.
+ (bigdivrem): Ditto.
+ (bigxor_int): Apply BIGLO after possible over flow of BDIGIT.
-Sun Jul 27 01:46:34 2014 Zachary Scott <e@zzak.io>
+ * marshal.c (shortlen): Use SIZEOF_BDIGITS instead of sizeof(BDIGIT).
- * proc.c (method_super_method): [DOC] Method#super_method
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): Use SIZEOF_BDIGITS
+ instead of sizeof(BDIGIT).
-Sun Jul 27 01:22:39 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jun 25 11:40:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * proc.c (method_super_method): new method Method#super_method,
- which returns a method object of the method to be called by
- `super` in the receiver method object.
- [ruby-core:62202] [Feature #9781]
+ * bignum.c (big2ulong): suppress shorten-64-to-32 warning. BDIGIT can
+ be bigger than long now.
-Sat Jul 26 17:22:14 2014 URABE Shyouhei <shyouhei@ruby-lang.org>
+ * bignum.c (LSHIFTX): remove redundant never-true expression.
- * ext/objspace/objspace_dump.c (dump_append): avoid fflush.
+Tue Jun 25 00:55:54 2013 Masaya Tarui <tarui@ruby-lang.org>
- because dump_append_string_value() iterates over each chars,
- fflush()-ing here effectively issues system calls on every single
- bytes exist in a ruby process.
+ * gc.c (typedef struct rb_objspace): Change members for monitor objects.
+ * gc.c (gc_marks_test): Check all WriteBarrier Errors and track them in obj-tree.
+ * gc.c (rgengc_check_shady): Ditto.
+ * gc.c (gc_marks): Move 2 function calls to gc_marks_test for test initialize.
-Sat Jul 26 16:55:18 2014 Eric Wong <e@80x24.org>
+Mon Jun 24 23:30:31 2013 Tanaka Akira <akr@fsij.org>
- * iseq.h (struct iseq_compile_data_storage): reduce overhead
- to 16 bytes (from 32) on 64-bit
+ * bignum.c (integer_unpack_single_bdigit): Refine code to filling
+ higher bits and use BIGLO.
-Sat Jul 26 16:28:06 2014 Eric Wong <e@80x24.org>
+Mon Jun 24 22:26:31 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * vm_core.h (struct rb_iseq_struct): reduce to 280 bytes
- (from 288 bytes) on 64-bit
+ * test/rinda/test_rinda.rb (RingIPv6#prepare_ipv6):
+ ifindex() function may not be implemented on Windows. We use another
+ check for the case.
-Sat Jul 26 06:44:43 2014 Eric Wong <e@80x24.org>
+Mon Jun 24 22:11:37 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * parse.y (struct parse_params): shrink to 320 to 304 bytes on 64-bit
+ * test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_nolock):
+ skip a failing test on Windows because flock() implementation is
+ different from Unix.
-Sat Jul 26 05:58:35 2014 Eric Wong <e@80x24.org>
+Mon Jun 24 22:06:14 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * include/ruby/ruby.h (ZALLOC, ZALLOC_N): implement
- (Data_Make_Struct, TypedData_Make_Struct):
- ZALLOC replaces ALLOC+memset
- [ruby-core:63951][Feature #10082]
- * compile.c (iseq_seq_sequence): ZALLOC_N replaces ALLOC_N+MEMZERO
- * cont.c (fiber_t_alloc): ZALLOC replaces ALLOC+MEMZERO
+ * test/rubygems/test_gem_installer.rb (test_install_extension_flat):
+ use ruby in build directory in case ruby is not installed.
+ [ruby-core:53265] [Bug #8058]
+
+Mon Jun 24 22:04:02 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+
+ * ext/dl/cfunc.c (rb_dlcfunc_call): fix conversion from Bignum to
+ pointer. sizeof(DLSTACK_TYPE) is larger than sizeof(long) on
+ Windows x64 and higher bits over sizeof(long) of DLSTACK_TYPE was
+ zero even if a pointer value was over 32 bits which causes SEGV on
+ DL::TestCPtr#test_to_ptr_io. Adding a cast solves the bug.
+
+Mon Jun 24 22:04:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * eval_error.c (warn_printf): use rb_vsprintf instead so ruby specific
+ extensions like PRIsVALUE can be used in format strings
+ * eval_error.c (error_print): use warn_print_str (alias for
+ rb_write_error_str) to print a string value instead of using
+ RSTRING_PTR and RSTRING_LEN manually
+ * eval.c (setup_exception): use PRIsVALUE instead of %s and RSTRING_PTR
+
+Mon Jun 24 20:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
+
+ * compile.c (make_name_for_block): use PRIsVALUE in format string
+ instead of %s and RSTRING_PTR to protect objects from being garbage
+ collected too soon
+ * encoding.c (str_to_encindex): ditto
+ * hash.c (rb_hash_fetch_m): ditto
* io.c (rb_io_reopen): ditto
- * iseq.c (prepare_iseq_build): ditto
- * parse.y (new_args_tail_gen, parser_new, ripper_s_allocate): ditto
- * re.c (match_alloc): ditto
- * variable.c (rb_const_set): ditto
- * ext/socket/raddrinfo.c (get_addrinfo): ditto
- * ext/strscan/strscan.c (strscan_s_allocate): ditto
- * gc.c (rb_objspace_alloc): calloc replaces malloc+MEMZERO
+ * parse.y (reg_fragment_check_gen): ditto
+ * parse.y (reg_compile_gen): ditto
+ * parse.y (ripper_assert_Qundef): ditto
+ * re.c (rb_reg_raise): ditto
+ * ruby.c (set_option_encoding_once): ditto
+ * vm_eval.c (rb_throw_obj): ditto
-Sat Jul 26 05:54:54 2014 Eric Wong <e@80x24.org>
+Mon Jun 24 07:57:18 2013 Masaya Tarui <tarui@ruby-lang.org>
- * symbol.c (dsymbol_check): remove unneeded semi-colon
+ * gc.c (after_gc_sweep): Have to record malloc info before reset.
+ * gc.c (gc_prof_timer_start): Pick out part of new record creation as gc_prof_setup_new_record.
+ * gc.c (gc_prof_set_malloc_info): Move point of recording allocation size to front of mark.
-Fri Jul 25 14:07:27 2014 Koichi Sasada <ko1@atdot.net>
+Mon Jun 24 02:53:09 2013 Zachary Scott <zachary@zacharyscott.net>
- * gc.c: change objspace::rgengc::parent_object_is_old (boolean)
- to objspace::rgengc::parent_object (VALUE).
- Use Qfalse or RVALUE pointer instead of FALSE and TRUE.
+ * array.c: Return value in Array overview example found by @PragTob
+ [Fixes GH-336] https://github.com/ruby/ruby/pull/336
- * gc.c (gc_marks_body): should clear parent_object just before
- gc_mark_roots() because there are no parents objects
- for root objects.
+Mon Jun 24 02:45:51 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Jul 25 13:45:39 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c (rb_ary_zip): typo by @PragTob [Fixes GH-337]
+ https://github.com/ruby/ruby/pull/337
- * gc.c (rb_gc_writebarrier_remember_promoted): should remember only
- OLD objects on RGENGC_AGE2_PROMOTION.
+Mon Jun 24 02:42:01 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Jul 25 13:42:02 2014 Koichi Sasada <ko1@atdot.net>
+ * win32/README.win32: grammar typo by @blankenshipz [Fixes GH-334]
+ https://github.com/ruby/ruby/pull/334
- * gc.c (gc_mark_stacked_objects): fix error message.
+Mon Jun 24 00:59:35 2013 Tanaka Akira <akr@fsij.org>
-Fri Jul 25 13:18:00 2014 Will Farrington <wfarrington@digitalocean.com>
+ * bignum.c (BIGUP): Use LSHIFTX and avoid cast to consider the type
+ of x is bigger than BDIGIT_DBL.
+ (big2ulong): Use unsigned long to store the result.
+ (big2ull): Use unsigned LONG_LONG to store the result.
+ (bigand_int): Use long for num to avoid data loss.
+ (bigor_int): Ditto.
+ (bigxor_int): Ditto.
- * ext/socket/socket.c (sock_gethostname): Use NI_MAXHOST to support
- hostnames longer than 64 characters if the system supports it.
- [fixes GH-683]
+Sun Jun 23 23:05:58 2013 Tanaka Akira <akr@fsij.org>
-Fri Jul 25 12:21:11 2014 Santiago Pastorino <santiago@wyeworks.com>
+ * include/ruby/defines.h (BDIGIT): Define it only if it is not defined
+ yet. This eases tests and debug.
+ (SIZEOF_BDIGITS): Ditto.
+ (BDIGIT_DBL): Ditto.
+ (BDIGIT_DBL_SIGNED): Ditto.
+ (PRI_BDIGIT_PREFIX): Ditto.
+ (PRI_BDIGIT_DBL_PREFIX): Ditto.
+ (PRIdBDIGIT): Define it only if PRI_BDIGIT_PREFIX is defined.
+ (PRIiBDIGIT): Ditto.
+ (PRIoBDIGIT): Ditto.
+ (PRIuBDIGIT): Ditto.
+ (PRIxBDIGIT): Ditto.
+ (PRIXBDIGIT): Ditto.
+ (PRIdBDIGIT_DBL): Ditto.
+ (PRIiBDIGIT_DBL): Ditto.
+ (PRIoBDIGIT_DBL): Ditto.
+ (PRIuBDIGIT_DBL): Ditto.
+ (PRIxBDIGIT_DBL): Ditto.
+ (PRIXBDIGIT_DBL): Ditto.
- * compile.c (defined_expr): make the condition if the receiver
- is explicit or implicit cleaner. [fix GH-681]
+ * include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): Define it only if it is
+ not defined yet.
-Fri Jul 25 03:53:52 2014 Eric Hodel <drbrain@segment7.net>
+Sun Jun 23 17:29:51 2013 Tanaka Akira <akr@fsij.org>
- * doc/keywords.rdoc: [DOC] Describe each keyword.
+ * bignum.c (integer_unpack_single_bdigit): Use a cast.
-Thu Jul 24 22:40:24 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Sun Jun 23 15:38:07 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/win32ole.c (Init_win32ole): add WIN32OLE_RECORD#initialize
- method.
+ * bootstraptest/test_thread.rb: rescue resource limitation errors.
- * ext/win32ole/win32ole.c (ole_val2variant): convert WIN32OLE_RECORD
- object to VT_RECORD variant.
+Sun Jun 23 08:19:27 2013 Tanaka Akira <akr@fsij.org>
-Thu Jul 24 20:10:59 2014 Koichi Sasada <ko1@atdot.net>
+ * bignum.c (integer_unpack_single_bdigit): Extracted from
+ bary_unpack_internal.
- * gc.c: fix major GC flags.
- * add GPR_FLAG_MAJOR_BY_FORCE, which indicates
- major GC by METHOD, CAPI and so on (see GC_BY).
- * remove GPR_FLAG_MAJOR_BY_RESCAN because not used.
- * remove GPR_FLAG_MAJOR_BY_STRESS, use FORCE instead.
+Sun Jun 23 07:41:52 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_gc.rb: catch up.
+ * bignum.c (bary_unpack_internal): Suppress warnings (C4146) on Visual Studio.
+ Reported by ko1 via IRC.
-Thu Jul 24 15:55:02 2014 Naohisa Goto <ngotogenome@gmail.com>
+Sun Jun 23 06:49:28 2013 Koichi Sasada <ko1@atdot.net>
- * include/ruby/io.h (struct rb_io_buffer_t): PACKED_STRUCT should not
- be used for platform-specific optimization. PACKED_STRUCT_UNALIGNED
- should be used. [ruby-core:63988] [Bug #10088]
+ * include/ruby/ruby.h, gc.c: rename macros and functions:
+ OBJ_WB_GIVEUP() -> OBJ_WB_UNPROTECT(),
+ rb_obj_wb_giveup() -> rb_obj_wb_unprotect(),
+ rb_gc_giveup_promoted_writebarrier() ->
+ rb_gc_writebarrier_unprotect_promoted(),
-Thu Jul 24 04:42:13 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * class.c, eval.c, hash.c: use OBJ_WB_UNPROTECT().
- * lib/benchmark.rb: split executable code into sample directory.
- * sample/benchmark.rb: ditto.
+Sun Jun 23 05:41:32 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jul 24 04:36:49 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * class.c (rb_include_class_new), eval.c (rb_using_refinement):
+ make classes/modules (who share method table) shady.
+ If module `a' and `b' shares method table m_tbl and new method
+ with iseq is added, then write barrier is applied only `a' or `b'.
+ To avoid this issue, shade such classes/modules.
- * lib/tempfile.rb: split executable code into sample directory.
- * sample/tempfile.rb: ditto.
+ * vm_method.c (rb_method_entry_make): add write barriers.
-Thu Jul 24 04:29:36 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sun Jun 23 01:27:54 2013 Tanaka Akira <akr@fsij.org>
- * lib/pstore.rb: split executable code into sample directory.
- * sample/pstore.rb: ditto.
+ * bignum.c (bytes_zero_p): Removed.
+ (bary_pack): Don't call bytes_zero_p.
-Wed Jul 23 23:50:11 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jun 23 00:51:29 2013 Tanaka Akira <akr@fsij.org>
- * include/ruby/defines.h, siphash.c, st.c (UNALIGNED_WORD_ACCESS):
- add PowerPC64 too, which is capable to access unaligned words.
- patched by Gustavo Frederico Temple Pedrosa in [ruby-core:63937].
- [Feature #10081]
+ * bignum.c (bytes_zero_p): Extracted from bary_pack.
+ (bary_pack): Use bytes_zero_p.
- * regint.h (PLATFORM_UNALIGNED_WORD_ACCESS): ditto.
+Sun Jun 23 00:16:57 2013 Tanaka Akira <akr@fsij.org>
-Wed Jul 23 04:04:38 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c (MSB): New macro.
+ (bary_unpack_internal): Use MSB.
+ (bary_divmod): Ditto.
+ (bigdivrem): Ditto.
- * lib/drb/extserv.rb: remove duplicate code with sample directory.
- contributed from @vipulnsward. [fix GH-679]
+Sat Jun 22 23:45:22 2013 Tanaka Akira <akr@fsij.org>
-Tue Jul 22 12:56:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (bary_swap): New function.
+ (bary_pack): Use bary_swap.
+ (bary_unpack_internal): Ditto.
- * string.c (rb_str_count): fix wrong single-byte optimization.
- 7bit ascii can be a trailing byte in Shift_JIS.
- [ruby-dev:48442] [Bug #10078]
+Sat Jun 22 23:18:39 2013 Tanaka Akira <akr@fsij.org>
-Tue Jul 22 01:48:38 2014 Eric Wong <e@80x24.org>
+ * bignum.c (bytes_2comp): Renamed from quad_buf_complement.
+ (bary_pack): Use bytes_2comp.
+ (rb_quad_pack): Use rb_integer_pack.
+ (rb_quad_unpack): Use rb_integer_unpack.
- * include/ruby/io.h (rb_io_buffer_t): fix packing on gcc
- r46892 caused packing to be a no-op on gcc (4.7.2-5, Debian)
- [Bug #10079][ruby-core:63912]
+Sat Jun 22 21:46:18 2013 Tanaka Akira <akr@fsij.org>
-Mon Jul 21 15:55:42 2014 fuji70 <fujifuji70@gmail.com>
+ * bignum.c (rb_integer_unpack): Don't allocate a Bignum if possible.
- * lib/optparse.rb (getopts): print default values and descriptions
- in the help message. [fix GH-676]
+Sat Jun 22 21:03:58 2013 Tanaka Akira <akr@fsij.org>
-Sun Jul 20 14:26:27 2014 Eric Wong <e@80x24.org>
+ * pack.c (pack_unpack): Remove specialized unpackers for integers.
- * vm_core.h (rb_proc_t): reduce to 64 bytes from 72 on 64-bit
+Sat Jun 22 20:36:50 2013 Tanaka Akira <akr@fsij.org>
-Sun Jul 20 13:50:34 2014 Eric Wong <e@80x24.org>
+ * bignum.c (bary_unpack_internal): Specialized unpacker implemented.
+ (bary_unpack): Support INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION.
+ (rb_integer_unpack): Support INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION.
- * transcode.c (rb_econv_t): reduce to 184 bytes from 200 on 64-bit
+Sat Jun 22 18:53:10 2013 Tanaka Akira <akr@fsij.org>
-Sun Jul 20 12:44:23 2014 Eric Wong <e@80x24.org>
+ * bignum.c (bary_pack): Support
+ INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION flag.
+ Fix byte order and word order handling in code specialized for
+ wordsize % SIZEOF_BDIGITS == 0.
- * include/ruby/io.h (rb_io_buffer_t): pack structure
- Reduces rb_io_t from 200 to 192 bytes, allowing rb_io_t to
- occupy one less cache line.
- [Feature #10050]
+ * internal.h (INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION): Defined.
-Sun Jul 20 12:41:53 2014 Eric Wong <e@80x24.org>
+Sat Jun 22 15:41:25 2013 Koichi Sasada <ko1@atdot.net>
- * include/ruby/io.h (rb_io_t): shrink to 200 bytes from 216 on 64-bit
- This puts us within 8 bytes of being three cache lines instead of
- four lines on x86-64. This breaks the ABI.
- [Feature #10050]
+ * gc.c (rgengc_check_shady): add new WB miss checking
+ on RGENGC_CHECK_MODE >= 2.
-Sun Jul 20 12:36:46 2014 Eric Wong <e@80x24.org>
+ (1) Save bitmaps before marking
+ (2) Run full marking
+ (3) On each traceable object,
+ (a) object was not oldgen (== newly or shady object) &&
+ (b) parent object was oldgen &&
+ (c) parent object was not remembered &&
+ (d) object was not remembered
+ then, it should be WB miss.
- * include/ruby/oniguruma.h (struct re_pattern_buffer): shrink to 448
- bytes from 464 bytes on 64-bit. This breaks the ABI.
- [Feature #10034]
+ This idea of this checker is by Masaya Tarui <tarui@ruby-lang.org>.
-Sun Jul 20 01:06:06 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Jun 22 15:25:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/openssl/ossl.c: use encryptor instead of encrypter in doc.
- contributed from @vipulnsward. [fix GH-663]
+ * ext/etc/etc.c (setup_passwd): revert r41560, unnecessary
-Sun Jul 20 00:32:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 22 14:39:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * io.c (rb_io_initialize): [DOC] fix rdoc of append mode. it does
- not move the pointer at open. [ruby-core:63747] [Bug #10039]
+ * ext/etc/etc.c (Init_etc): omit 'passwd' from definition of Etc::Passwd
+ if HAVE_STRUCT_PASSWD_PW_PASSWD is not defined to prevent mismatch of
+ fields and values in setup_passwd
-Sat Jul 19 12:40:50 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 22 14:35:40 2013 Tanaka Akira <akr@fsij.org>
- * compile.c (iseq_compile_each): allow to access private attribute
- reader in op_assign. [ruby-core:63817] [Bug #10060]
+ * ext/dl/cfunc.c (rb_dlcfunc_call): Use rb_big_pack instead of
+ rb_big2ulong_pack and rb_big2ull.
-Sat Jul 19 11:56:36 2014 Grey Baker <greysteil@gmail.com>
+ * include/ruby/intern.h (rb_big2ulong_pack): Deprecated.
- * lib/time.rb (Time#apply_offset): Guards against a `nil` return
- value from `Time.month_days` when offsetting date. Out of range
- values are then caught when `Time.utc` is called (as usual).
+Sat Jun 22 14:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- Previously a `nil` return value from `Time.month_days` would
- have the `<` operator called on it, and raise `NoMethodError`.
- [fix GH-667]
+ * ext/etc/etc.c (setup_passwd): pass 0 as VALUE to rb_struct_new to
+ prevent segfault if the compiler passes it as a 32 bit integer on
+ a 64 bit ruby
- * lib/rdoc/parser/changelog.rb (RDoc#parse_entries): fix dirty hack.
+Sat Jun 22 13:47:13 2013 Tanaka Akira <akr@fsij.org>
-Sat Jul 19 06:19:01 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (bary_pack): MEMZERO can be used even if nails is not zero.
- * ext/win32ole/win32ole.c: refactoring.
+Sat Jun 22 13:43:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Fri Jul 18 22:34:41 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * ext/etc/etc.c (etc_getpwnam): use PRIsVALUE in format string instead
+ of %s and RSTRING_PTR
- * ext/win32ole/win32ole.c (folevariant_initialize): WIN32OLE_VARIANT
- does not support VT_RECORD. VT_RECORD should be supported in
- WIN32OLE_RECORD.
+ * ext/etc/etc.c (etc_getgrnam): ditto
- * test/win32ole/test_win32ole_variant.rb (test_s_new_vt_record_exc):
- ditto.
+Sat Jun 22 13:07:15 2013 Tanaka Akira <akr@fsij.org>
-Fri Jul 18 19:54:03 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (CLEAR_LOWBITS): Rewritten without RSHIFTX.
+ (RSHIFTX): Removed.
- * ext/win32ole/win32ole.c (folevariant_initialize): remove unnecessary
- code.
+Sat Jun 22 10:38:03 2013 Tanaka Akira <akr@fsij.org>
-Fri Jul 18 19:11:03 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * pack.c (num2i32): Removed.
+ (pack_pack): Don't use num2i32.
- * lib/matrix/eigenvalue_decomposition: Style fix
- Patch by Gogo Tanaka [#10058]
+Sat Jun 22 09:55:13 2013 Tanaka Akira <akr@fsij.org>
-Fri Jul 18 19:03:53 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * bignum.c (LSHIFTX): Defined to suppress a warning.
+ (RSHIFTX): Ditto.
+ (CLEAR_LOWBITS): Use LSHIFTX and RSHIFTX.
+ (FILL_LOWBITS): Use LSHIFTX.
+ Reported by ko1 via IRC.
- * lib/matrix.rb: Avoid using `and`.
- Patch by gogo tanaka [#10058]
+Sat Jun 22 09:11:33 2013 Ryan Davis <ryand-ruby@zenspider.com>
-Fri Jul 18 17:41:54 2014 GoGo tanaka <qlli.illb@gmail.com>
+ * lib/minitest/*: Imported minitest 4.7.5 (r8724)
+ * test/minitest/*: ditto
- * test/matrix/test_matrix.rb: Add tests for Matrix class.
- [Feature #10057][ruby-core:63809]
+Sat Jun 22 07:20:30 2013 Koichi Sasada <ko1@atdot.net>
-Fri Jul 18 10:14:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c (gc_prof_set_heap_info, after_gc_sweep): call
+ gc_prof_set_heap_info() just after sweeping to calculate
+ live object number correctly.
+ (live object number = total generated number (before marking) -
+ total freed number (after sweeping))
- * lib/fileutils.rb: added missing options of FileUtils.touch by @Domon.
- [fix GH-669]
+ * gc.c (gc_marks): record `oldgen_object_count' into current profile`
+ record directly.
-Thu Jul 17 19:57:27 2014 Herwin <herwin@quarantainenet.nl>
+ * gc.c (rgengc_rememberset_mark): same for remembered_normal_objects
+ and remembered_shady_objects.
- * ext/thread/thread.c (rb_szqueue_push): add optional parameter,
- non_block defaulted to false. [ruby-core:63794] [Feature #10052]
+Sat Jun 22 06:46:04 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jul 16 23:01:43 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * gc.c (rb_objspace::profile): rename rb_objspace::profile::record to
+ records (because it points a set of records) and add a field
+ rb_objspace::profile::current_record to point a current profiling
+ record.
- * ext/win32ole/win32ole.c (ole_variant2val): support array of
- VT_RECORD variant.
+ * gc.c: use above fields.
-Wed Jul 16 20:21:49 2014 Naohisa Goto <ngotogenome@gmail.com>
+Sat Jun 22 06:05:36 2013 Koichi Sasada <ko1@atdot.net>
- * vm_core.h (struct rb_iseq_struct): stack_max is changed to int
- because all calculations related to stack_max in compile.c
- (iseq_set_sequence) and vm_insnhelper.c (vm_push_frame) are
- conducted by using int. This partly reverts r23945.
- * vm_insnhelper.c (vm_push_frame): ditto. This reverts r42401.
+ * gc.c (rb_gc_giveup_promoted_writebarrier): remove `rest_sweep()'
+ because all of remembered objects are called for gc_mark_children().
-Wed Jul 16 19:55:32 2014 Naohisa Goto <ngotogenome@gmail.com>
+Sat Jun 22 05:08:03 2013 Koichi Sasada <ko1@atdot.net>
- * vm_core.h (struct rb_iseq_struct): temporal workaround of [Bug 10037].
- Add padding on big-endian 64-bit architecture (e.g. sparc64).
+ * gc.c (rgengc_rememberset_mark): call gc_mark_children() for
+ remembered objects directly instead of pushing on the mark stack.
-Wed Jul 16 19:32:23 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Sat Jun 22 04:48:53 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/win32ole.c (fole_record_method_missing): call
- rb_hash_fetch instead of rb_hash_aref.
+ * include/ruby/ruby.h (OBJ_WRITE): cast to (VALUE *) for second
+ parameter `slot'. You don't need to write a cast (VALUE *) any more.
-Wed Jul 16 18:08:47 2014 Koichi Sasada <ko1@atdot.net>
+ * class.c, compile.c, hash.c, iseq.c, proc.c, re.c, variable.c,
+ vm.c, vm_method.c: remove cast expressions for OBJ_WRITE().
- * iseq.c (rb_iseq_defined_string): use rb_gc_mark_object() instead of
- marking from vm_mark().
+Sat Jun 22 04:37:08 2013 Koichi Sasada <ko1@atdot.net>
- * vm.c (rb_vm_mark): ditto.
+ * gc.c (slot_sweep_body): rename to slot_sweep().
+ No need to separate major/minor GC.
-Wed Jul 16 18:03:50 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (gc_setup_mark_bits): remove gc_clear_mark_bits() and unify to
+ this function.
- * gc.c (gc_mark_roots): call rb_vm_mark directly.
+Sat Jun 22 04:20:21 2013 Koichi Sasada <ko1@atdot.net>
- * vm.c: remove mark function for RubyVM object because
- RubyVM object marked manually.
+ * gc.c (check_bitmap_consistency): add to check flag and bitmap consistency.
+ Use this function in several places.
-Wed Jul 16 12:25:39 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Sat Jun 22 02:18:07 2013 Tanaka Akira <akr@fsij.org>
- * regcomp.c: Merge Onigmo 5.14.1 25a8a69fc05ae3b56a09.
- this includes Support for Unicode 7.0 [Bug #9092].
+ * bignum.c (bary_pack): Specialized packers implemented.
+ (HOST_BIGENDIAN_P): New macro.
+ (ALIGNOF): New macro.
+ (CLEAR_LOWBITS): New macro.
+ (FILL_LOWBITS): New macro.
+ (swap_bdigit): New macro.
+ (bary_2comp): Returns an int.
-Tue Jul 15 23:59:27 2014 Jared Jennings <jared.jennings.ctr@us.af.mil>
+ * internal.h (swap16): Moved from pack.c
+ (swap32): Ditto.
+ (swap64): Ditto.
- * ext/digest: make built-in digest function implementations
- indicate success or failure of init and final functions.
- [ruby-core:61614] [Bug #9659]
+Fri Jun 21 21:29:49 2013 Masaya Tarui <tarui@ruby-lang.org>
- * ext/digest/digest.c: expect digest init and finish functions to
- indicate success or failure; raise exception on failure.
- [ruby-core:61614] [Bug #9659]
+ * gc.c (typedef enum): Introduce flags of major gc reason.
+ * gc.c (garbage_collect_body): Ditto.
+ * gc.c (gc_profile_flags): Ditto.
+ * gc.c (gc_profile_dump_on): Ditto.
-Tue Jul 15 20:31:40 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Jun 21 21:11:53 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/win32ole.c: modify document for WIN32OLE_RECORD.
+ * gc.c (allocate_sorted_heaps): remove unused variable `add'.
-Tue Jul 15 12:42:23 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri Jun 21 20:50:32 2013 Koichi Sasada <ko1@atdot.net>
- * defs/default_gems: change version definition file of rake.
+ * include/ruby/ruby.h: constify RArray::as::ary and RArray::heap::ptr.
+ Use RARRAY_ASET() or RARRAY_PTR_USE() to modify Array objects.
-Tue Jul 15 12:00:03 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * array.c, gc.c: catch up above changes.
- * lib/rake.rb, lib/rake/*.rb: Upgrade to rake-10.3.2
- [fix GH-668]
- * test/rake/*.rb: ditto.
+Fri Jun 21 20:32:13 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jul 14 19:14:51 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * vm_eval.c (eval_string_with_cref): fix WB miss.
- * ext/win32ole/win32ole.c: modify WIN32OLE class document and
- add comment for constants of WIN32OLE.
+Fri Jun 21 20:15:49 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jul 14 16:38:45 2014 Eric Wong <e@80x24.org>
+ * include/ruby/ruby.h: support write barrier protection for T_STRUCT.
+ Introduce the following C APIs:
+ * RSTRUCT_RAWPTR(st) returns pointer (do WB on your risk).
+ The type of returned pointer is (const VALUE *).
+ * RSTRUCT_GET(st, idx) returns idx-th value of struct.
+ * RSTRUCT_SET(st, idx, v) set idx-th value by v with WB.
+ And
+ * RSTRUCT_PTR(st) returns pointer with shady operation.
+ The type of returned pointer is (VALUE *).
- * vm_core.h (struct rb_iseq_struct): reduce to 288 bytes
- on x86-64 (from 296 bytes)
+ * struct.c, re.c, gc.c, marshal.c: rewrite with above APIs.
-Mon Jul 14 16:07:25 2014 Eric Wong <e@80x24.org>
+Fri Jun 21 19:38:37 2013 Tanaka Akira <akr@fsij.org>
- * iseq.h (struct iseq_catch_table_entry): shrink to 32 bytes
- on x86-64 (from 48 bytes)
+ * bignum.c (BDIGMAX): Use BIGRAD.
+ (BIGLO): Use BDIGMAX.
+ (bigdivrem1): Ditto.
+ (bigor_int): Ditto.
+ (rb_big_or): Ditto.
-Mon Jul 14 16:04:41 2014 Eric Wong <e@80x24.org>
+Fri Jun 21 19:18:48 2013 Tanaka Akira <akr@fsij.org>
- * iseq.h (struct iseq_catch_table): new flexible array struct
- (iseq_catch_table_bytes): allocated size function
- * vm_core.h (struct rb_iseq_struct): update catch_table member
- This reduces the struct from 304 to 296 bytes on x86-64.
- * compile.c (iseq_set_exception_table): update for struct changes
- * iseq.c (iseq_free): ditto
- * iseq.c (iseq_memsize): ditto
- * iseq.c (rb_iseq_disasm): ditto
- * iseq.c (iseq_data_to_ary): ditto
- * iseq.c (rb_iseq_build_for_ruby2cext): ditto (untested)
- * vm.c (vm_exec): ditto
- * vm_core.h (struct rb_iseq_struct): ditto
- * vm_insnhelper.c (vm_throw): ditto
+ * pack.c (pack_pack): Move the implementation for 'c' directive after
+ pack_integer label.
-Sun Jul 13 17:49:52 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri Jun 21 19:11:56 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/ossl_cipher.c: Fix call to ciphers class method and
- spell out `encryption` by @vipulnsward [fix GH-664]
+ * include/ruby/ruby.h, re.c: support write barrier for T_REGEXP.
-Sun Jul 13 17:31:51 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ Note: T_MATCH object is also easy to support write barriers.
+ However, most of T_MATCH objects are short-lived objects.
+ So I skipped to support non-shady T_MATCH.
- * ext/gdbm/gdbm.c: fix wrong arguments in GetDBM2 macro.
- * ext/sdbm/init.c: ditto.
+Fri Jun 21 18:56:58 2013 Tanaka Akira <akr@fsij.org>
-Sun Jul 13 17:25:50 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c (bigsub_int): Use bdigit_roomof.
+ (bigadd_int): Ditto.
+ (bigand_int): Ditto.
+ (bigor_int): Ditto.
+ (bigxor_int): Ditto.
- * ext/dbm/dbm.c: fix wrong arguments in GetDBM2 macro by @v2e4lisp.
- [fix GH-655]
+Fri Jun 21 17:56:25 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jul 13 16:44:56 2014 Eric Wong <e@80x24.org>
+ * benchmark/gc/gcbench.rb: fix summary of benchmark result notation.
- * vm_core.h (struct rb_call_info_struct): improve packing
- This reduces the struct from 112 to 104 bytes on x86-64.
+Fri Jun 21 16:38:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Sun Jul 13 15:53:25 2014 Eric Wong <e@80x24.org>
+ * ext/openssl/ossl_x509attr.c: change OSSL_X509ATTR_IS_SINGLE and
+ OSSL_X509ATTR_SET_SINGLE macros to use ->value.set rather than
+ ->set to fix compile failure
- * vm_core.h (struct rb_iseq_struct): stack_max is uint32_t
- This reduces the struct from 312 to 304 bytes on x86-64.
+Fri Jun 21 15:26:45 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jul 13 10:56:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_sweep): profile sweep time correctly when LAZY_SWEEP is
+ disabled.
- * configure.in (rb_cv_broken_backtrace): exit with failure
- normally, no needs to abort. [ruby-core:63678] [Bug #10008]
+ * gc.c (gc_marks_test): store oldgen count and shady count
+ before test marking and restore them after marking.
-Sat Jul 12 15:10:22 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Jun 21 15:07:42 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/win32ole.c (fole_record_method_missing): correct
- fields Hash key.
+ * gc.c: enable lazy sweep (commit miss).
-Sat Jul 12 04:17:40 2014 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+Fri Jun 21 14:31:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/net/smtp.rb (Net::SMTP#data): enable buffering while
- 'data' send for optimizing Net::SMTP#send_message.
- [ruby-dev:48329] [misc #9981]
- patch by Masahiro Tomita.
+ * hash.c (ruby_setenv): refine error message so include the variable
+ name.
-Sat Jul 12 01:13:45 2014 Naohisa Goto <ngotogenome@gmail.com>
+Fri Jun 21 14:15:08 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/envutil.rb (assert_no_memory_leak): On Solaris 9 or later,
- if possible, execute child ruby with environment variables
- LD_PRELOAD=libumem.so UMEM_OPTIONS="backend=mmap". With these
- variables, freed memory is immediately returned to the OS.
- [Bug #10020] [ruby-dev:48391]
+ * gc.c: fix to use total_allocated_object_num and heaps_used
+ at the GC time for profiler.
-Fri Jul 11 20:49:10 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Jun 21 12:35:35 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/win32ole.c: add WIN32OLE_RECORD class to support
- VT_RECORD OLE variables.
+ * gc.c: RGENGC_CHECK_MODE should be 0.
-Fri Jul 11 17:15:08 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri Jun 21 11:18:25 2013 Koichi Sasada <ko1@atdot.net>
- * lib/abbrev.rb: remove executable.
+ * gc.c (gc_marks_body): fix to get `th' in this function.
-Fri Jul 11 16:45:39 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri Jun 21 10:21:44 2013 Koichi Sasada <ko1@atdot.net>
- * lib/fileutils.rb: handle ENOENT error with symlink targeted to
- non-exists file. [ruby-dev:45933] [Bug #6716]
+ * gc.c (heaps_header/heaps_slot): embed bitmaps into heaps_slot.
+ no need to maintain allocation/free bitmaps.
-Fri Jul 11 15:59:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri Jun 21 09:22:16 2013 Koichi Sasada <ko1@atdot.net>
- * array.c: Clarify documentation for Array#insert.
- [ruby-core:62934] [Bug #9901]
+ * gc.c (slot_sweep_body): add counters at a time.
-Fri Jul 11 15:39:36 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c (gc_profile_dump_on): fix line break position.
- * io.c: Improve Documentation by @dapplebeforedawn.
- [fix GH-658] [ruby-core:63579] [Bug #10012]
+Fri Jun 21 08:14:00 2013 Masaya Tarui <tarui@ruby-lang.org>
-Fri Jul 11 14:19:14 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * gc.c: refactoring bitmaps. introduce bits_t type and some Consts.
- * lib/matrix.rb: Fix sign for cross_product [#9499]
+Fri Jun 21 08:04:32 2013 Koichi Sasada <ko1@atdot.net>
-Fri Jul 11 11:11:50 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c: fix to support USE_RGENGC == 0 (disable RGenGC).
+ If USE_RGENGC==0, it caused compilation error.
- * benchmark/prepare_so_k_nucleotide.rb: use require_relative.
+Fri Jun 21 08:08:11 2013 Masaya Tarui <tarui@ruby-lang.org>
- * benchmark/prepare_so_reverse_complement.rb: ditto.
+ * gc.c (lazy_sweep): Use is_lazy_sweeping()
+ * gc.c (rest_sweep): Ditto.
+ * gc.c (gc_prepare_free_objects): Ditto.
-Fri Jul 11 10:09:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jun 21 07:34:47 2013 Koichi Sasada <ko1@atdot.net>
- * pack.c (encodes): fix buffer overrun by tail_lf. Thanks to
- Mamoru Tasaka and Tomas Hoger. [ruby-core:63604] [Bug #10019]
+ * gc.c (gc_profile_record::oldgen_objects): added.
-Thu Jul 10 23:51:36 2014 Naohisa Goto <ngotogenome@gmail.com>
+ * gc.c (gc_profile_dump_on): print the following information:
+ * Living object counts
+ * Free object counts
+ If RGENGC_PROFILE > 0 then
+ * Oldgen object counts
+ * Remembered normal object counts
+ * Remembered shady object counts
- * hash.c (ruby_setenv): Fix TestEnv#test_aset failure on Solaris 9.
- When name contains '=', ruby_setenv raises Errno::EINVAL.
- That is the same behavior as Solaris 10.
- NULL check for malloc return value is also added.
+Fri Jun 21 06:43:59 2013 Tanaka Akira <akr@fsij.org>
-Thu Jul 10 15:02:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_ull2big): Refactored.
+ (rb_uint2big): Useless code removed.
- * vm_insnhelper.c (vm_callee_setup_keyword_arg): adjust VM stack
- pointer to get rid of overwriting splat arguments by arguments
- for `to_hash` conversion. [ruby-core:63593] [Bug #10016]
+Fri Jun 21 05:37:39 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jul 10 01:09:57 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (gc_prof_sweep_timer_stop): accumulate sweep time only when
+ record->gc_time > 0.
- * symbol.c: remove rb_gc_mark_symbols().
+Fri Jun 21 00:37:31 2013 Tanaka Akira <akr@fsij.org>
- fstrings referred by static symbols and pinned dynamic symbols
- are registered by rb_gc_register_mark_object().
+ * ext/bigdecimal: Workaround fix for bigdecimal test failures caused
+ by [ruby-dev:47413] [Feature #8509]
- fstrings referred by dynamic symbols (not pinned symbols)
- are referred from global_symbols.dsymbol_fstr_hash (Hash object).
+ * ext/bigdecimal/bigdecimal.h (BDIGIT): Make it independent from the
+ definition for bignum.c.
+ (SIZEOF_BDIGITS): Ditto.
+ (BDIGIT_DBL): Ditto.
+ (BDIGIT_DBL_SIGNED): Ditto.
+ (PRI_BDIGIT_PREFIX): Undefine the definition.
+ (PRI_BDIGIT_DBL_PREFIX): Ditto.
- Note that fstrings referred from dynamic symbols must live logger
- than symbol objects themselves because rb_gc_free_dsymbol() uses
- fstrings to remove from symbol tables.
- This is why we can not mark fstrings from dynamic symbols.
+ * ext/bigdecimal/bigdecimal.c (RBIGNUM_ZERO_P): Use rb_bigzero_p.
+ (bigzero_p): Removed.
+ (is_even): Use rb_big_pack.
- This technique reduces root objects for GC marking.
+Thu Jun 20 22:52:42 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (gc_mark_roots): ditto.
+ * bignum.c (bigmul1_toom3): Don't call bignorm twice.
- * internal.h: ditto.
+Thu Jun 20 22:49:27 2013 Tanaka Akira <akr@fsij.org>
-Thu Jul 10 00:24:18 2014 Naohisa Goto <ngotogenome@gmail.com>
+ * bignum.c (bignorm): Don't call bigtrunc if the result is a fixnum.
- * common.mk (DTRACE_DEPENDENT_OBJS): fix build failure on Solaris
- introduced in r46768. Object files containing dtrace probes should
- be listed in DTRACE_DEPENDENT_OBJS.
+Thu Jun 20 22:29:42 2013 Tanaka Akira <akr@fsij.org>
-Wed Jul 9 17:07:28 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_uint2big): Refactored.
- * symbol.c, symbol.h: Symbol class implementation and internals,
- split from parse.y.
+Thu Jun 20 22:24:41 2013 Tanaka Akira <akr@fsij.org>
-Wed Jul 9 14:45:39 2014 Koichi Sasada <ko1@atdot.net>
+ * bignum.c (dump_bignum): Use SIZEOF_BDIGITS.
- * parse.y: change Symbol <-> ID relationship to avoid
- exposing IDs from collectable symbols.
- [Bug #10014]
+Thu Jun 20 22:22:46 2013 Tanaka Akira <akr@fsij.org>
- Now, rb_check_id() returns 0 if corresponding symbol is
- pinned dynamic symbol.
+ * bignum.c (big2ulong): Change the return type to unsigned long.
+ (rb_big2ulong_pack): Follow the above change.
+ (rb_big2long): Ditto.
+ (rb_big_lshift): Ditto.
+ (rb_big_rshift): Ditto.
+ (rb_big_aref): Ditto.
- There is remaining intern_cstr_without_pindown(), it can return
- IDs from collectable symbols. We must be careful to use it
- (only used in parse.y). I think it should be removed if
- it does not have impact for performance.
+Thu Jun 20 22:02:46 2013 Tanaka Akira <akr@fsij.org>
- * parse.y:
- add:
- * STATIC_SYM2ID()
- * STATIC_ID2SYM()
- rename:
- * rb_pin_dynamic_symbol() -> dsymbol_pindown()
+ * bignum.c (bary_unpack_internal): Return -2 when negative overflow.
+ (bary_unpack): Set the overflowed bit if an extra BDIGIT exists.
+ (rb_integer_unpack): Set the overflowed bit.
- * internal.h:
- remove:
- * rb_check_id_without_pindown()
- * rb_sym2id_without_pindown()
- add:
- * rb_check_symbol()
- * rb_check_symbol_cstr()
+Thu Jun 20 21:17:19 2013 Koichi Sasada <ko1@atdot.net>
- * load.c: use rb_check_id() or rb_check_id_cstr().
+ * gc.c (rgengc_rememberset_mark): record
+ (1) normal objects count in remember set
+ (2) shady objects count in remember set
+ each GC timing.
- * object.c: ditto.
+ * gc.c (gc_profile_record_get): enable to access above information
+ and REMOVING_OBJECTS, EMPTY_OBJECTS.
- * struct.c: ditto.
+Thu Jun 20 18:29:26 2013 Koichi Sasada <ko1@atdot.net>
- * thread.c: ditto.
+ * benchmark/gc/gcbench.rb: Do not use GC::Profiler::disable because
+ GC::Profiler::disable prohibit to access profiling data. It should
+ be spec bug.
- * vm_method.c: ditto.
+ Skip GC::Profiler::report if RUBY_VERSION < '2.0.0'
- * string.c (sym_find): use only rb_check_symbol().
+Thu Jun 20 17:59:08 2013 Koichi Sasada <ko1@atdot.net>
- * sprintf.c (rb_str_format): use rb_check_symbol_cstr().
+ * benchmark/gc/gcbench.rb: stop GC::Profiler before output results.
+ Generating GC::Profiler result under profiling causes infinite loop.
-Wed Jul 9 12:21:55 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 20 17:24:24 2013 Koichi Sasada <ko1@atdot.net>
- * parse.y (symbols_i): delete garbage symbols for Symbol.all_symbols.
+ * benchmark/gc/gcbench.rb: don't use __dir__ to make compatible
+ with ruby 1.9.3.
-Wed Jul 9 05:49:08 2014 Eric Wong <e@80x24.org>
+Thu Jun 20 16:57:19 2013 Koichi Sasada <ko1@atdot.net>
- * thread_pthread.h (struct rb_global_vm_lock_struct):
- do not expose pthread type for lock
+ * benchmark/bm_app_aobench.rb: use attr_accessor/reader instead of
+ defining methods.
-Wed Jul 9 05:41:40 2014 Eric Wong <e@80x24.org>
+Thu Jun 20 16:46:46 2013 Koichi Sasada <ko1@atdot.net>
- * thread_pthread.h: remove unneeded semaphore.h include
+ * benchmark/bm_app_aobench.rb: added.
-Wed Jul 9 00:12:28 2014 Keiju Ishitsuka <keiju@ishitsuka.com>
+ * benchmark/gc/aobench.rb: added.
- * lib/irb/ruby-lex.rb: fix counting indent in identify_string_dvar.
+Thu Jun 20 16:28:33 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jul 8 16:58:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * benchmark/bm_so_binary_trees.rb: disable `puts' method
+ and change iteration parameter to increase execution time.
- * test/ruby/memory_status.rb (Memory::PSCMD): use ps command which
- outputs expected result. [ruby-dev:48370] [Bug #10010]
+ * benchmark/gc/binarytree.rb: added.
-Tue Jul 8 14:45:17 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 20 16:06:37 2013 Koichi Sasada <ko1@atdot.net>
- * parse.y (dsymbol_alloc): set global_symbols.minor_marked to 0.
+ * benchmark/gc/pentomino.rb: added.
+ Simply load pentomino puzzle in the benchmark/ directory.
- * parse.y (dsymbol_check): set RSYMBOL(sym)->fstr to 0
- because we should not touch fstr after that.
+Thu Jun 20 15:32:56 2013 Koichi Sasada <ko1@atdot.net>
- * parse.y (rb_gc_free_dsymbol): skip deleting str and sym
- from tables if fstr == 0.
+ * benchmark/gc/redblack.rb: import red black tree benchmark from
+ https://github.com/jruby/rubybench/blob/master/time/bench_red_black.rb
-Mon Jul 7 14:31:52 2014 Koichi Sasada <ko1@atdot.net>
+ * benchmark/gc/ring.rb: add a benchmark. This benchmark create many
+ old objects.
- * parse.y: remove global_symbols::pinned_dsym
- (and ::pinned_dsym_minor_marked).
+Thu Jun 20 15:14:00 2013 Koichi Sasada <ko1@atdot.net>
- Mark pinned dsymbols by rb_gc_register_mark_object() because
- they are immortal.
+ * benchmark/gc: create a directory to store GC related benchmark.
- * parse.y (rb_gc_free_dsymbol): rename parameter name `ptr' to `sym'.
+ * benchmark/gc/gcbench.rb: moved from tool/gcbench.rb.
-Mon Jul 7 12:45:51 2014 Koichi Sasada <ko1@atdot.net>
+ * benchmark/gc/hash(1|2).rb: ditto.
- * gc.c: revert miss-commit.
+ * benchmark/gc/rdoc.rb: ditto.
-Mon Jul 7 12:40:59 2014 Koichi Sasada <ko1@atdot.net>
+ * benchmark/gc/null.rb: added.
- * parse.y: need to use updated (re-created) symbols.
+ * common.mk: fix rule.
-Mon Jul 7 11:02:55 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Thu Jun 20 14:09:54 2013 Koichi Sasada <ko1@atdot.net>
- * tool/mkconfig.rb: remove not to require rbconfig/obsolete.rb.
+ * tool/hashbench1.rb: fix parameter too. Increase temporary objects.
- * lib/rbconfig/obsolete.rb: removed.
+Thu Jun 20 14:01:35 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jul 7 10:52:03 2014 Koichi Sasada <ko1@atdot.net>
+ * tool/hashbench1.rb: fix parameters.
- * parse.y: do not use rb_gc_resurrect(), but create a new dynamic
- symbol for garbage dynamic symbol.
+Thu Jun 20 14:00:34 2013 Koichi Sasada <ko1@atdot.net>
- * common.mk: use gc.h by parse.y.
+ * common.mk: remove dependency from ruby.
-Mon Jul 7 02:18:42 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 20 13:14:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (fstr_update_callback): do not use rb_gc_resurrect()
- any more.
+ * error.c (rb_check_backtrace): evaluate RARRAY_AREF only once.
+ the first argument of RB_TYPE_P is expanded twice for non-immediate
+ types.
- Make new frozen string and replace with garbage frozen string.
+Thu Jun 20 08:09:29 2013 Koichi Sasada <ko1@atdot.net>
- * common.mk: use gc.h from string.c.
+ * tool/gcbench.rb: Summary in one line.
-Mon Jul 7 00:36:13 2014 Koichi Sasada <ko1@atdot.net>
+ * common.mk: separate gcbench-hash to gcbench-hash1 and gcbench-hash2.
- * gc.c: rename is_dying_object() to is_garbage_object().
+Thu Jun 20 08:07:23 2013 Tanaka Akira <akr@fsij.org>
- * gc.h: rb_objspace_garbage_object_p() as an exported function.
+ * bignum.c (BIGSIZE): New macro.
+ (bigfixize): Use BIGSIZE.
+ (big2ulong): Ditto.
+ (check_shiftdown): Ditto.
+ (rb_big_aref): Ditto.
-Sun Jul 6 21:30:35 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 20 07:46:48 2013 Masaya Tarui <tarui@ruby-lang.org>
- * gc.c (is_dying_object): fix missed condition.
+ * gc.c (rb_gc_writebarrier): give up rescan A and register B directly
+ if A has huge number of children.
- * gc.c (is_live_object): move frequent path first.
+Thu Jun 20 07:30:35 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jul 6 21:00:11 2014 Koichi Sasada <ko1@atdot.net>
+ * common.mk: add new rules `gcbench-rdoc', `gcbench-hash'.
- * gc.c: rename is_dead_object() to is_dying_object().
- This function is not opposite against is_live_object()
- because is_dying_object() does *not* check object type.
+ * tool/gcbench.rb: separate GC bench framework and process.
- * gc.c (is_dying_object): change condition.
+ * tool/hashbench1.rb, tool/hashbench2.rb: add two types GC bench.
+ hashbench1: many temporal objects (GC by newobj)
+ hashbench2: hash size becomes bigger and bigger (GC by malloc)
+ Two benches are executed by `gcbench-hash' rule.
- * gc.c (is_live_object): use T_NONE instead of 0.
+ * tool/rdocbench.rb: separated.
- * gc.c (rb_objspace_dying_object_p): added.
+Thu Jun 20 06:25:39 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jul 6 13:37:27 2014 Koichi Sasada <ko1@atdot.net>
+ * tool/rdocbench.rb: add summary.
- * gc.c (rb_gc_register_mark_object): change data structure.
- From single array, to array of arrays. Each array only has 1024
- entries.
+Thu Jun 20 06:18:01 2013 Koichi Sasada <ko1@atdot.net>
- * vm.c (Init_vm_objects): change default capa from 1 to 128.
+ * gc.c (gc_profile_total_time): check objspace->profile.next_index > 0.
-Sat Jul 5 05:05:53 2014 Vipul A M <vipulnsward@gmail.com>
+Thu Jun 20 05:47:41 2013 Koichi Sasada <ko1@atdot.net>
- * lib/irb/locale.rb (IRB::Locale#modifier): fix wrong attr_reader
- `modifieer` => `modifier` from irb locale. [fix GH-656]
+ * gc.c (gc_prof_sweep_timer_start): fix merge miss.
-Fri Jul 4 20:45:26 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (GC_PROFILE_MORE_DETAIL): set it 0.
- * parse.y: rename symbols::sym_id to symbols::str_id.
- This table is not {Symbol => ID} table, but
- {String => ID} table.
+Thu Jun 20 05:38:56 2013 Koichi Sasada <ko1@atdot.net>
- * parse.y (lookup_sym_id): also rename lookup_sym_id() to
- lookup_str_id() because key is not Symbol, but String.
+ * gc.c: Accumulate sweep time to GC time.
+ Now [GC time] is [mark time] + [sweep time] + [misc].
+ ([GC time] >= [mark time] + [sweep time])
-Fri Jul 4 18:42:04 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (gc_prof_sweep_slot_timer_start/stop): rename to
+ gc_prof_sweep_timer_start/stop and locate at lazy_sweep().
- * parse.y (must_be_dynamic_symbol): fix missed-condition.
+ * gc.c (elapsed_time_from): add a utility function.
-Fri Jul 4 18:38:11 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 20 05:08:53 2013 Koichi Sasada <ko1@atdot.net>
- * parse.y (rb_pin_dynamic_symbol): should be `static' function.
+ * gc.c (gc_marks): fix wrong option. FALSE means major/full GC.
+ It should be TRUE (minor marking).
-Fri Jul 4 18:03:35 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 20 02:44:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (must_be_dynamic_symbol): refactoring.
- * add `inline'.
- * use UNLIKELY().
- * check only DYNAMIC_SYM_P(), otherwise it is a bug.
- * lookup_id_str() is not needed in second condition.
+ * win32/win32.c (waitpid): should not return 0 but wait until exit
+ unless WNOHANG is given. waiting huge process may return while
+ active, for some reason.
-Fri Jul 4 11:53:56 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 20 01:34:15 2013 Tanaka Akira <akr@fsij.org>
- * parse.y: remove unused code
- surrounded by `#if ENABLE_SELECTOR_NAMESPACE'
+ * bignum.c (bdigit_roomof): Use SIZEOF_BDIGITS.
+ (bigfixize): Refine an ifdef condition.
+ (rb_absint_size): Use bdigit_roomof.
+ (rb_absint_singlebit_p): Ditto.
+ (rb_integer_pack): Ditto.
+ (integer_pack_fill_dd): Use BITSPERDIG.
+ (integer_unpack_push_bits): Use BITSPERDIG, BIGLO and BIGDN.
-Fri Jul 4 10:08:24 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Jun 20 01:07:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/rubygems/test_gem_package.rb: avoid tempfile leaks using Tempfile#close!
- * test/rubygems/test_gem_request_set.rb: ditto.
- * test/rubygems/test_gem_request_set_gem_dependency_api.rb: ditto.
+ * gc.c (MARKED_IN_BITMAP, FL_TEST2): return boolean value since always
+ used as boolean value.
-Fri Jul 4 04:42:05 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * gc.c (MARK_IN_BITMAP, CLEAR_IN_BITMAP): evaluate bits once.
- * lib/net/http/response.rb (Net::Inflater#inflate_adapter):
- prevent automatic encoding conversion.
+Thu Jun 20 00:05:07 2013 Koichi Sasada <ko1@atdot.net>
-Fri Jul 4 04:39:52 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * gc.c (RVALUE_PROMOTED): fix type.
- * lib/net/http/response.rb (Net::HTTPResponse.each_response_header):
- raise first exception even if inflate_body_io.finish raises error.
- when begin block raises error, finish usually raises error too.
+Wed Jun 19 23:39:01 2013 Koichi Sasada <ko1@atdot.net>
-Fri Jul 4 02:56:04 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * gc.c (gc_marks_test): rewrite checking code.
+ When RGENGC_CHECK_MODE >= 2, all minor marking, run normal minor
+ marking *and* major/full marking. After that, compare the results
+ and shows BUG if a object living with major/full marking but dead
+ with minor marking.
+ After detecting bugs, print references information.
+ (RGENGC_CHECK_MODE == 2, show references to dead object)
+ (RGENGC_CHECK_MODE == 3, show all references)
- * lib/uri/generic.rb (URI::Generic#query=): remove validation, just
- escape. [Feature #2542]
+Wed Jun 19 23:51:48 2013 Tanaka Akira <akr@fsij.org>
- * lib/uri/generic.rb (URI::Generic#fragment=): ditto.
+ * bignum.c (bigfixize): Use rb_absint_size.
+ (check_shiftdown): Ditto.
+ (big2ulong): Use bdigit_roomof.
- * lib/uri/generic.rb (URI::Generic#check_query): removed.
+Wed Jun 19 23:32:23 2013 Koichi Sasada <ko1@atdot.net>
- * lib/uri/generic.rb (URI::Generic#set_query): ditto.
+ * gc.c (RVALUE_PROMOTED): check consistency between oldgen flag and
+ oldgen bitmap if RGENGC_CHECK_MODE > 0.
- * lib/uri/generic.rb (URI::Generic#check_fragment): ditto.
+Wed Jun 19 23:29:29 2013 Koichi Sasada <ko1@atdot.net>
- * lib/uri/generic.rb (URI::Generic#set_fragment): ditto.
+ * gc.c (rb_gc_force_recycle): clear oldgen bitmap, too.
-Thu Jul 3 12:40:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 19 21:02:13 2013 Tanaka Akira <akr@fsij.org>
- * configure.in (--with-static-linked-ext): fix for extensions to
- be linked statically.
+ * bignum.c (rb_uint2big): Consider environments BDIGIT is bigger than
+ long.
+ (big2ulong): Ditto.
+ (rb_big_aref): Ditto.
+ (rb_big_pack): Just call rb_integer_pack.
+ (rb_big_unpack): Just call rb_integer_unpack.
- * Makefile.in, common.mk: use ENCSTATIC for enc directory.
+Wed Jun 19 20:51:21 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * ext/extmk.rb: supply dependencies of statically linked extension
- libraries.
+ * gc.c (gc_stress_get): GC.stress can be Fixnum.
-Wed Jul 2 15:45:49 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jun 19 19:31:30 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (gc_heap_lazy_sweep): simplify logic.
+ * bignum.c (DIGSPERLONG): Don't define if BDIGIT is bigger than long.
+ (DIGSPERLL): Don't define if BDIGIT is bigger than LONG_LONG
+ (rb_absint_size): Consider environments BDIGIT is bigger than long.
+ Use BIGLO and BIGDN.
+ (rb_absint_singlebit_p): Ditto.
+ (rb_integer_pack): Ditto.
+ (bigsub_int): Consider environments BDIGIT is bigger than long.
+ Use SIZEOF_BDIGITS instead of sizeof(BDIGIT).
+ (bigadd_int): Ditto.
+ (bigand_int): Ditto.
+ (bigor_int): Ditto.
+ (bigxor_int): Ditto.
- * gc.c (gc_page_sweep): return TRUE if empty slots are available.
+Wed Jun 19 15:14:30 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jul 2 09:48:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * include/ruby/ruby.h (struct rb_data_type_struct), gc.c: add
+ rb_data_type_struct::flags. Now, this flags is passed
+ at T_DATA object creation. You can specify FL_WB_PROTECTED
+ on this flag.
- * logger.rb: removed unmaintained code.
- [Feature #9860][ruby-core:62724]
- * test/logger/test_application.rb: ditto.
+ * iseq.c: making non-shady iseq objects.
-Wed Jul 2 03:20:00 2014 Charlie Somerville <charliesome@ruby-lang.org>
+ * class.c, compile.c, proc.c, vm.c: add WB for iseq objects.
- * node.c (dump_node): handle nd_value == (NODE *)-1 to mean this
- keyword argument is required
+ * vm_core.h, iseq.h: constify fields to detect WB insertion.
-Wed Jul 2 02:57:27 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 19 15:11:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c (rb_vm_env_local_variables): returns array of local
- variable name symbols in the environment by envval.
+ * gc.c (gc_mark_children): show more info for broken object.
- * proc.c (bind_local_variables): use rb_vm_env_local_variables.
+Wed Jun 19 14:04:41 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Wed Jul 2 02:23:52 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/envutil.rb (EnvUtil#rubybin): remove unnecessary
+ unless expression.
- * proc.c (bind_receiver): new method to return the bound receiver
- of the binding object. [ruby-dev:47613] [Feature #8779]
+Wed Jun 19 07:47:48 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jul 2 02:14:37 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (garbage_collect_body): use FIX2INT for ruby_gc_stress.
- * proc.c (bind_local_variables): update env from envval for each
- iterations. [ruby-dev:48351] [Bug #10001]
+Wed Jun 19 07:44:31 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jul 1 23:46:34 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (rb_objspace::gc_stress): int -> VALUE to store Fixnum object.
- * NEWS: [DOC] mention about Binding#local_variables, introduced at
- r44392 (see [Feature #8773]).
+Wed Jun 19 07:25:35 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jul 1 23:30:51 2014 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+ * gc.c (make_deferred): clear flags to T_ZOMBIE.
- * numeric.c (num_step_scan_args): table argument of rb_get_kwargs() is
- array of IDs, not Symbols. [ruby-dev:48353] [Bug #9811]
+ * gc.c (slot_sweep_body): fix indent.
-Tue Jul 1 16:18:22 2014 Akinori MUSHA <knu@iDaemons.org>
+Wed Jun 19 07:18:47 2013 Tanaka Akira <akr@fsij.org>
- * ext/digest/lib/digest/hmac.rb, test/digest/test_digest_hmac.rb:
- Digest::HMAC is finally removed as previously noticed.
- [fix GH-648]
+ * bignum.c (rb_big_aref): Apply BIGLO to ~xds[i] for environment which
+ BDIGIT is 16bit.
-Tue Jul 1 11:13:43 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jun 19 07:09:26 2013 Koichi Sasada <ko1@atdot.net>
- * ext/date/lib/date/format.rb: removed empty file by @vipulnsward.
- * ext/date/lib/date.rb: removed needless require.
- [fix GH-647]
+ * gc.c (rgengc_remember): fix output level.
-Mon Jun 30 16:42:52 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (rgengc_rememberset_mark): fix to output clear count.
+ (shady_object_count + clear_count = count of remembered objects)
- * gc.c (gc_stat_internal): return size_t value instead of VALUE
- and remove `out' parameter.
+Wed Jun 19 07:06:21 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c: add braces for `if' statements.
+ * gc.c (rgengc_remember): check T_NONE and T_ZOMBIE
+ if RGENGC_CHECK_MODE > 0.
- * gc.c (gc_stat_internal): fix comment.
+Wed Jun 19 07:02:19 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jun 30 15:07:34 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (RGENGC_CHECK_MODE): add new check mode `3'.
+ In this mode, show all references if there is
+ a miss-corrected object.
- * gc.c: support `USE_RGENGC == 0'.
+Wed Jun 19 06:31:08 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_gc.rb: ditto.
+ * gc.c (gc_stress_set): add special option of GC.stress.
+ `GC.stress=(flag)' accepts integer to control behavior of GC.
+ See code for details. Of course, this feature is only for MRI.
-Mon Jun 30 11:36:04 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ You can debug RGenGC (WB) using `GC.stress = 1'.
+ Using this option, do minor marking at all possible places.
- * file.c: [DOC] document File.join returns a string.
- Contributed by @dapplebeforedawn. [fix GH-646]
+ GC::STRESS_MINOR_MARK = 1 and GC::STRESS_LAZY_SWEEP = 2
+ seem good to add.
-Sat Jun 28 22:57:01 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Jun 19 06:29:31 2013 Koichi Sasada <ko1@atdot.net>
- * ext/pathname/pathname.c (path_birthtime): Windows support.
- see [Feature #9857] [ruby-dev:48339]
+ * vm.c (kwmerge_i): add WB.
-Sat Jun 28 22:44:16 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 19 06:26:49 2013 Koichi Sasada <ko1@atdot.net>
- * ext/pathname/pathname.c (path_birthtime): New method,
- Pathname#birthtime.
- Proposed by Kazuhiro NISHIYAMA. [ruby-dev:48232] [Feature #9857]
+ * hash.c: `st_update()' also has same issue of last fix.
+ write barriers at callback function are too early.
+ All write barriers are executed after `st_update()'
-Sat Jun 28 20:29:03 2014 Simon Baird <simon.baird@gmail.com>
+Wed Jun 19 04:33:22 2013 Koichi Sasada <ko1@atdot.net>
- * ext/bigdecimal/lib/bigdecimal/math.rb (BigMath#PI): change error
- message about zero or negative precision for clarity and
- consistency with other methods. [GH-644]
+ * variable.c (rb_const_set): fix WB miss.
-Sat Jun 28 15:32:57 2014 Tanaka Akira <akr@fsij.org>
+ WBs had located before creating reference between a klass
+ and constant value. It causes GC bug.
- * lib/webrick/utils.rb (create_listeners): Close socket objects.
+ # pseudo code:
+ WB(klass, value); # WB and remember klass
+ st_insert(klass->const_table, const_id, value);
-Sat Jun 28 13:58:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ `st_insert()' can cause GC before inserting `value' and
+ forget `klass' from the remember set. After that, relationship
+ between `klass' and `value' are created with constant table.
+ Now, `value' can be young (shady) object and `klass' can be old
+ object, without remembering `klass' object.
+ At the next GC, old `klass' object will be skipped and
+ young (shady) `value' will be miss-collected. -> GC bug
- * eval.c (setup_exception): should not overwrite SystemStackError
- backtrace if set already. [ruby-core:63377] [Feature #6216]
+ Lesson: The place of a WB is important.
- * eval.c (setup_exception): get rid of method calls before raising
- stack overflow, not to cause stack overflow again.
+Tue Jun 18 22:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * defs/id.def: add IDs for backtraces.
+ * vm_insnhelper.c (vm_call_method): ensure methods of type
+ VM_METHOD_TYPE_ATTR_SET are called with 1 argument
-Sat Jun 28 04:08:22 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * test/ruby/test_module.rb
+ (TestModule#test_attr_writer_with_no_arguments): add test
+ [ruby-core:55543] [Bug #8540]
- * lib/uri/mailto.rb: update to latest specs, RFC 6068 and HTML5.
+Tue Jun 18 22:36:23 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/uri/mailto.rb (HEADER_PATTERN): removed.
+ * gc.c (gc_profile_record_flag): fix typo.
- * lib/uri/mailto.rb (HEADER_REGEXP): use RFC 6068 hfields.
+Tue Jun 18 22:08:53 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/uri/mailto.rb (EMAIL_REGEXP): use HTML5 email regexp.
+ * ext/objspace/object_tracing.c: Return for ::allocation_generation
- * lib/uri/mailto.rb (URI::MailTo.build): support multiple to addresses.
+Tue Jun 18 22:04:35 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/uri/mailto.rb (URI::MailTo#initialize): Support multiple to
- addresses. Don't check with regexp, only split.
+ * ext/objspace/object_tracing.c: Document object_tracing methods.
- * lib/uri/mailto.rb (URI::MailTo#check_to): verify by matching
- URI path-rootless and HTML5 email regexp with unescaped one.
+Tue Jun 18 21:58:17 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/uri/mailto.rb (URI::MailTo#check_headers): verify only by
- HEADER_REGEXP.
+ * gc.c: Rename rb_mObSpace -> rb_mObjSpace
- * lib/uri/mailto.rb (URI::MailTo#set_headers): don't check by
- HEADER_REGEXP, only split it.
+Tue Jun 18 20:55:05 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Jun 28 00:35:10 2014 Lauri Tirkkonen <lotheac@iki.fi>
+ * ext/objspace/objspace.c: Document ObjectSpace::InternalObjectWrapper.
- * tool/mkconfig.rb: fix empty RbConfig::CONFIG["prefix"] when
- configured --with-rubyarchprefix, remove prefix from rubyarchdir
- after expansion for the case it does not start with '$(prefix)'.
- [fix GH-643]
+Tue Jun 18 20:39:04 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Jun 27 15:20:12 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/objspace/object_tracing.c: Teach rdoc object_tracing.c [Bug #8537]
- * lib/rubygems/test_case.rb: rescue Gem::LoadError in Gem::TestCase.
- because it's effected by removing minitest from stdlib.
+Tue Jun 18 20:29:47 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Jun 27 12:29:37 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/.document: add object_tracing.c to document file
- * lib/rubygems/specification.rb: fixed broken condition caused
- by removing YAML::ENGINE.
- * lib/rubygems/package/old.rb: ditto.
+Tue Jun 18 20:20:27 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Jun 27 05:33:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/objspace.c: rdoc on require to overview from r41355
- * hash.c (env_shift): fix memory leak on Windows, free environment
- strings block always. [ruby-dev:48332] [Bug #9983]
+Tue Jun 18 18:39:58 2013 Tanaka Akira <akr@fsij.org>
-Fri Jun 27 03:41:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: Check __int128.
- * sprintf.c (GETASTER): should not use the numbered argument to be
- formatted, raise ArgumentError instead.
- [ruby-dev:48330] [Bug #9982]
+ * include/ruby/defines.h (BDIGIT_DBL): Use uint128_t if it is available.
+ (BDIGIT): Use uint64_t if uint128_t is available.
+ (SIZEOF_BDIGITS): Defined for above case.
+ (BDIGIT_DBL_SIGNED): Ditto.
+ (PRI_BDIGIT_PREFIX): Ditto.
-Thu Jun 26 18:18:28 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * include/ruby/ruby.h (PRI_64_PREFIX): Defined.
- * test/with_different_ofs.rb: move into test library directory.
- * test/csv/base.rb: fix require path for with_different_ofs.rb.
- * test/digest/test_digest_extend.rb: ditto.
+ * bignum.c (rb_big_pow): Don't use BITSPERDIG for the condition which
+ rb_big_pow returns Float or Bignum.
-Thu Jun 26 18:06:50 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ [ruby-dev:47413] [Feature #8509]
- * test/profile_test_all.rb: move into test library directory.
- * test/runner.rb: fix require path for profile_test_all.rb.
+Tue Jun 18 16:43:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jun 26 17:57:57 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * parse.y (parser_heredoc_restore): clear lex_strterm always to get
+ rid of marking recycled node. this bug is revealed by r41372 with
+ GC.stress=true.
- * lib/webrick/httpproxy.rb: remove useless assigned variables.
- * lib/webrick/httpservlet/cgihandler.rb: ditto.
- * lib/webrick/httpservlet/erbhandler.rb: ditto.
- * lib/webrick/server.rb: ditto.
+Tue Jun 18 12:53:25 2013 Tanaka Akira <akr@fsij.org>
-Thu Jun 26 08:28:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (nlz): Cast the result explicitly.
+ (big2dbl): Don't assign BDIGIT values to int variable.
- * hash.c (env_select): fix memory leak and crash on Windows, make
- keys array first instead of iterating on environ directly.
- [ruby-dev:48325] [Bug #9978]
+Tue Jun 18 12:25:16 2013 Tanaka Akira <akr@fsij.org>
-Thu Jun 26 02:45:04 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_big_xor): Non-effective code removed.
- * eval_error.c (error_print): put a newline after an anonymous
- exception class name.
+Tue Jun 18 11:26:05 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jun 25 22:31:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_stat): add `generated_normal_object_count_types' for
+ RGENGC_PROFILE >= 2.
- * hash.c (ruby_setenv): fix memory leak on Windows, free
- environment strings block after check for the size.
- [ruby-dev:48323] [Bug #9977]
+Tue Jun 18 11:02:18 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jun 25 15:44:12 2014 Eric Wong <e@80x24.org>
+ * gc.c (gc_mark_maybe): check to skip T_NONE.
- * ccan/container_of/container_of.h (container_off_var):
- avoid warning with -Wcast-qual
- [ccan ba5ad771af4aa9e085498de6c3c665c52694460f (Rusty Russell)]
+ * gc.c (markable_object_p): do not need to check (flags == 0) here.
-Wed Jun 25 10:19:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jun 18 10:17:37 2013 Koichi Sasada <ko1@atdot.net>
- * hash.c (env_aset, env_has_key, env_assoc, env_has_value),
- (env_rassoc, env_key): prohibit tainted strings if $SAFE is
- non-zero. [Bug #9976]
+ * variable.c (rb_autoload): fix WB miss.
-Tue Jun 24 14:46:17 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Tue Jun 18 04:20:18 2013 Koichi Sasada <ko1@atdot.net>
- * lib/gserver.rb: remove redundant use of to_s in interpolation.
- * lib/logger.rb: ditto.
- * lib/optparse.rb: ditto.
- * lib/rbconfig/obsolete.rb: ditto.
- * lib/resolv.rb: ditto.
- * lib/webrick/httpresponse.rb: ditto.
+ * gc.c (gc_mark_children): don't need to care about T_ZOMBIE here.
-Tue Jun 24 10:50:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 17 22:16:02 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * hash.c (env_path_str_new): make PATH environment variable
- string, to be frozen.
+ * test/ruby/test_proc.rb (TestProc#test_block_given_method_to_proc):
+ run test for r41359.
-Tue Jun 24 10:40:52 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Jun 17 21:42:18 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * tool/make-snapshot: download bundle gems when package making.
- [Feature #9852][ruby-core:62676]
- * gems/bundled_gems: listed bundled gems for Ruby 2.2.
+ * include/ruby/ruby.h, vm_eval.c (rb_funcall_with_block):
+ new function to invoke a method with a block passed
+ as an argument.
-Tue Jun 24 10:20:35 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * string.c (sym_call): use the above function to avoid
+ a block sharing. [ruby-dev:47438] [Bug #8531]
- * tool/downloader.rb: make Downloader class to general download utility.
- It can be used without config.guess and config.sub.
- * tool/get-config_files: ditto.
- * tool/make-snapshot: ditto.
+ * vm_insnhelper.c (vm_yield_with_cfunc): don't set block
+ in the frame.
-Tue Jun 24 06:17:52 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * test/ruby/test_symbol.rb (TestSymbol#test_block_given_to_proc):
+ run related tests.
- * eval.c (setup_exception): "mesg == sysstack_error" and
- sysstack_error_p(mesg) are duplicated.
- r46502 seems to want to use latter.
+Mon Jun 17 21:33:27 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Tue Jun 24 06:15:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/intern.h, proc.c (rb_method_call_with_block):
+ new function to invoke a Method object with a block passed
+ as an argument.
- * ext/tk/tcltklib.c: fix format specifiers for VALUE and
- Tcl_Interp*. [ruby-core:63283] [Bug #9972]
+ * proc.c (bmcall): use the above function to avoid a block sharing.
+ [ruby-core:54626] [Bug #8341]
-Tue Jun 24 05:40:41 2014 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+ * test/ruby/test_proc.rb (TestProc#test_block_persist_between_calls):
+ run related tests.
- * nacl/nacl-config.rb: Use File.exist? instead of executable?
- for irt_core. Recent nacl_sdk has non-executable irt_core.
- Patch by Shinichiro Hamaji.
- [Fixes GH-529] https://github.com/ruby/ruby/pull/529
+Mon Jun 17 20:53:21 2013 Tanaka Akira <akr@fsij.org>
-Mon Jun 23 18:44:45 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * loadpath.c (RUBY_REVISION): Defined to suppress revision.h
+ inclusion actually. r41352 removes the dependency.
- * tool/config_files.rb: rename class ConfigFiles to Downloader.
- * tool/get-config_files: ditto.
- * tool/make-snapshot: ditto.
+Mon Jun 17 18:15:57 2013 Benoit Daloze <eregontp@gmail.com>
-Mon Jun 23 18:03:13 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/objspace/objspace.c: let rdoc know about objspace methods.
+ Specify 'objspace' should be required. See #8537.
- * tool/rbinstall.rb: support to install bundle gems.
+Mon Jun 17 17:44:31 2013 Benoit Daloze <eregontp@gmail.com>
-Mon Jun 23 17:33:11 2014 Akinori MUSHA <knu@iDaemons.org>
+ * gc.c (ObjectSpace): is a module not a class.
- * lib/net/imap.rb (Net::IMAP#fetch): [DOC] Describe how a range in
- +set+ is interpreted, and mention -1 which can be used for '*'.
+ * ext/objspace/objspace.c: try to include overview in rdoc,
+ see #8537.
-Mon Jun 23 16:22:50 2014 URABE Shyouhei <shyouhei@ruby-lang.org>
+Mon Jun 17 17:38:24 2013 Benoit Daloze <eregontp@gmail.com>
- * include/ruby/ruby.h (struct RHash): no longer. [Feature #9889]
+ * gc.c: fix example of ObjectSpace.define_finalizer in overview
- * include/ruby/ruby.h (RHASH): ditto.
+Mon Jun 17 16:59:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * include/ruby/ruby.h (RHASH_ITER_LEV): deprecated. Will be deleted later.
+ * ext/tk/tkutil/tkutil.c: use rb_sprintf(), rb_id2str(), and
+ rb_intern_str() instead of rb_intern() and RSTRING_PTR() with
+ RB_GC_GUARD(), to prevent temporary objects from GC.
+ [ruby-core:39000] [Bug #5199]
- * include/ruby/ruby.h (RHASH_IFNONE): ditto.
+Mon Jun 17 14:27:54 2013 Zachary Scott <zachary@zacharyscott.net>
- * internal.h (struct RHash): moved here.
+ * vm_backtrace.c: Update rdoc for Backtrace#label with @_ko1
- * internal.h (RHASH): ditto.
+Mon Jun 17 13:04:01 2013 Akinori MUSHA <knu@iDaemons.org>
- * hash.c (rb_hash_iter_lev): do not use this.
+ * tool/ifchange (until): Fix the condition, although harmless in
+ this case.
- * hash.c (rb_hash_ifnone): ditto.
+Mon Jun 17 11:50:29 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jun 23 13:30:11 2014 URABE Shyouhei <shyouhei@ruby-lang.org>
+ * gc.c (gc_mark_maybe): added. check `is_pointer_to_heap()' and
+ type is not T_ZOMBIE.
- * include/ruby/ruby.h (struct RComplex): no longer. [Feature #9888]
+ * gc.c: use `gc_mark_maybe()'. T_ZOMBIE objects should not be pushed
+ to the mark stack.
- * include/ruby/ruby.h (RCOMPLEX): ditto.
+Mon Jun 17 07:56:24 2013 Tanaka Akira <akr@fsij.org>
- * include/ruby/ruby.h (RCOMPLEX_SET_REAL): deprecated. Will be deleted later.
+ * bignum.c (bary_small_lshift): Renamed from bdigs_small_lshift.
+ (bary_small_rshift): Renamed from bdigs_small_rshift.
- * include/ruby/ruby.h (RCOMPLEX_SET_IMAG): ditto.
+Mon Jun 17 07:38:48 2013 Tanaka Akira <akr@fsij.org>
- * internal.h (struct RFloat): moved here.
+ * bignum.c (absint_numwords_bytes): Removed.
+ (rb_absint_numwords): Don't call absint_numwords_bytes.
- * internal.h (RCOMPLEX): ditto.
+Sun Jun 16 23:14:58 2013 Tanaka Akira <akr@fsij.org>
- * complex.c (rb_complex_set_real): do not use this.
+ * bignum.c (BARY_ADD): New macro.
+ (BARY_SUB): Ditto.
+ (BARY_MUL): Ditto.
+ (BARY_DIVMOD): Ditto.
+ (BARY_ZERO_P): Ditto.
+ (absint_numwords_generic): Use these macros.
- * complex.c (rb_complex_set_imag): ditto.
+Sun Jun 16 21:41:39 2013 Tanaka Akira <akr@fsij.org>
-Mon Jun 23 13:10:15 2014 URABE Shyouhei <shyouhei@ruby-lang.org>
+ * bignum.c (bary_2comp): Extracted from get2comp.
+ (integer_unpack_num_bdigits): Extracted from
+ rb_integer_unpack_internal.
+ (bary_unpack_internal): Renamed from bary_unpack and support
+ INTEGER_PACK_2COMP.
+ (bary_unpack): New function to validate arguments and invoke
+ bary_unpack_internal.
+ (rb_integer_unpack_internal): Removed.
+ (rb_integer_unpack): Invoke bary_unpack_internal.
+ (rb_integer_unpack_2comp): Removed.
- * include/ruby/ruby.h (struct RFloat): no longer. [Feature #9863]
+ * internal.h (rb_integer_unpack_2comp): Removed.
- * include/ruby/ruby.h (RFLOAT): ditto.
+ * pack.c: Follow the above change.
- * internal.h (struct RFloat): moved here.
+Sun Jun 16 18:41:42 2013 Tanaka Akira <akr@fsij.org>
- * internal.h (RFLOAT): ditto.
+ * internal.h (INTEGER_PACK_2COMP): Defined.
+ (rb_integer_pack_2comp): Removed.
-Mon Jun 23 12:01:42 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (bary_pack): Support INTEGER_PACK_2COMP.
+ (rb_integer_pack): Invoke bary_pack directly.
+ (rb_integer_pack_2comp): Removed.
+ (rb_integer_pack_internal): Ditto.
+ (absint_numwords_generic): Follow the above change.
- * lib/uri/generic.rb (check_port): allow strings for port= as
- described in rdoc.
+ * pack.c (pack_pack): Ditto.
- * lib/uri/rfc3986_parser.rb (regexp): implementation detail of above.
+ * sprintf.c (rb_str_format): Ditto.
-Mon Jun 23 11:35:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jun 16 17:48:14 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (setup_exception): set backtrace in system stack error
- other than the pre-allocated sysstack_error. [Feature #6216]
+ * bignum.c (absint_numwords_generic): rb_funcall invocations removed.
- * proc.c (Init_Proc): freeze the pre-allocated sysstack_error.
+Sun Jun 16 16:04:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * vm_insnhelper.c (vm_stackoverflow): raise new instance for each
- times without calling any methods to keep the backtrace with no
- further stack overflow.
+ * tool/config_files.rb: use URI.read to allow it runs with Ruby 1.8.5.
- * object.c (rb_obj_copy_ivar): extract function to copy instance
- variables only for T_OBJECT from init_copy.
+Sun Jun 16 14:32:25 2013 Tanaka Akira <akr@fsij.org>
-Mon Jun 23 11:11:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (bary_pack) Extracted from rb_integer_pack_internal.
+ (absint_numwords_generic): Use bary_pack.
- * signal.c (check_stack_overflow): drop the last tag too close to
- the fault page, to get rid of stack overflow deadlock.
- [Bug #9971]
+Sun Jun 16 11:01:57 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Jun 22 09:11:15 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * NEWS (XMLRPC::Client#http): Add.
+ [ruby-core:55197] [Feature #8461]
- * lib/uri/generic.rb: remove registry.
- 'registry' is not used and RFC3986 doesn't use it.
+Sun Jun 16 10:38:45 2013 Tanaka Akira <akr@fsij.org>
-Sun Jun 22 09:10:09 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (bary_add): New function.
+ (bary_zero_p): Extracted from bigzero_p.
+ (absint_numwords_generic): Use bary_zero_p and bary_add.
+ (bary_mul): Fix an argument for bary_mul_single.
+ (bary_divmod): Use size_t for arguments.
- * lib/uri/rfc3986_parser.rb: raise exception when given a URI string
- has non ASCII in order to keep the regexp compiled for US-ASCII.
+Sun Jun 16 08:55:22 2013 Tanaka Akira <akr@fsij.org>
-Sun Jun 22 09:05:42 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (bigdivrem): Use a BDIGIT variable to store the return
+ value of bigdivrem_single.
- * lib/uri/common.rb (URI::REGEXP): move to lib/uri/rfc2396_parser.rb.
+Sun Jun 16 08:43:59 2013 Tanaka Akira <akr@fsij.org>
- * lib/uri/common.rb (URI::Parser): ditto.
+ * bignum.c (bary_divmod): New function.
+ (absint_numwords_generic): Use bary_divmod.
+ (bigdivrem_num_extra_words): Extracted from bigdivrem.
+ (bigdivrem_single): Ditto.
+ (bigdivrem_normal): Ditto.
+ (BIGDIVREM_EXTRA_WORDS): Defined.
- * lib/uri/common.rb (URI.split): use RFC3986_Parser. [Feature #2542]
+Sun Jun 16 05:51:51 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/uri/common.rb (URI.parse): ditto.
+ * gc.c: Fixup around GC by MALLOC.
+ Add allocate size to malloc_increase before GC
+ for updating limit in after_gc_sweep.
+ Reset malloc_increase into garbage_collect()
+ for preventing GC again soon.
- * lib/uri/common.rb (URI.join): ditto.
+Sun Jun 16 05:15:36 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/uri/common.rb (URI.extract): deprecated.
+ * gc.c: Add some columns to more detail profile.
+ new columns: Allocated size, Prepare Time, Removing Objects, Empty Objects
- * lib/uri/common.rb (URI.regexp): ditto.
+Sun Jun 16 02:04:40 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/uri/rfc2396_parser.rb: added.
+ * gc.c (gc_prof_timer_stop): Merge function codes of GC_PROFILE_MORE_DETAIL and !GC_PROFILE_MORE_DETAIL.
+ * gc.c (gc_prof_mark_timer_start): Ditto.
+ * gc.c (gc_prof_mark_timer_stop): Ditto.
+ * gc.c (gc_prof_sweep_slot_timer_start): Ditto.
+ * gc.c (gc_prof_sweep_slot_timer_stop): Ditto.
+ * gc.c (gc_prof_set_malloc_info): Ditto.
+ * gc.c (gc_prof_set_heap_info): Ditto.
- * lib/uri/rfc3986_parser.rb: added.
+Sat Jun 15 23:50:24 2013 Tanaka Akira <akr@fsij.org>
-Sun Jun 22 09:04:50 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (bary_sub): New function.
+ (absint_numwords_generic): Use bary_sub.
+ (bigsub_core): Skip unnecessary copy.
- * lib/uri/mailto.rb (initialize): as previous commit, fix arg_check
+Sat Jun 15 22:05:30 2013 Tanaka Akira <akr@fsij.org>
-Sun Jun 22 09:01:47 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (bary_mul): New function.
+ (absint_numwords_generic): Use bary_mul.
+ (bary_mul_single): Extracted from bigmul1_single.
+ (bary_mul_normal): Extracted from bigmul1_normal.
- * lib/uri/ftp.rb (initialize): argument checking flag is arg_check,
- but arg[-1] is fragment.
+Sat Jun 15 20:13:46 2013 Tanaka Akira <akr@fsij.org>
- * lib/uri/ftp.rb (initialize): explicitly specify arguments.
+ * bignum.c (bary_unpack): Extracted from rb_integer_unpack_internal.
+ (absint_numwords_generic): Use bary_unpack.
+ (roomof): Defined.
+ (bdigit_roomof): Defined.
+ (BARY_ARGS): Defined.
+ (bary_unpack): Declared.
-Sat Jun 21 12:50:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 15 19:35:04 2013 Tanaka Akira <akr@fsij.org>
- * ext/fiddle/extconf.rb: supply 0 to fill RUBY_LIBFFI_MODVERSION
- with 3-digit. libffi 3.1 returns just 2-digit.
- [ruby-core:62920] [Bug #9897]
+ * bignum.c (absint_numwords_bytes): Make it static.
+ (absint_numwords_small): Ditto.
+ (absint_numwords_generic): Ditto.
-Sat Jun 21 07:06:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 15 17:14:32 2013 Tanaka Akira <akr@fsij.org>
- * encoding.c (enc_find): [DOC] never accepted a symbol.
- [ruby-dev:48308] [Bug #9966]
+ * bignum.c (bigmul1_normal): Shrink the result Bignum length.
-Fri Jun 20 17:15:43 2014 Koichi Sasada <ko1@atdot.net>
+Sat Jun 15 10:19:42 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/lib/tracepointchecker.rb: add to check TracePoint healthiness.
+ * ext/bigdecimal/bigdecimal.c: Update overview formatting of headers
- * test/runner.rb: use it.
+Sat Jun 15 10:19:06 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Jun 20 07:26:44 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/bigdecimal/bigdecimal.gemspec: Update authors
- * test/ruby/test_settracefunc.rb: rewrite tests with
- assert_consistent_call_return().
+Sat Jun 15 10:02:26 2013 Tanaka Akira <akr@fsij.org>
- assert_consistent_call_return() is also modified to check
- consistency.
+ * bignum.c (bdigs_small_rshift): Extracted from big_rshift.
+ (bigdivrem): Use bdigs_small_rshift.
-Fri Jun 20 07:07:28 2014 Koichi Sasada <ko1@atdot.net>
+Sat Jun 15 08:37:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * compile.c (rb_iseq_compile_node): put start label of block after
- trace (b_call).
- [Bug #9964]
+ * vm_eval.c (eval_string_with_cref): propagate absolute path from the
+ binding if it is given explicitly. patch by Gat (Dawid Janczak) at
+ [ruby-core:55123]. [Bug #8436]
+
+Sat Jun 15 02:40:18 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bdigs_small_lshift): Extracted from big_lshift.
+ (bigdivrem): Use bdigs_small_lshift.
+
+Fri Jun 14 20:47:41 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigdivrem): Reduce number of digits before bignew() for div.
+
+Fri Jun 14 20:12:37 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (bigdivrem): Use bignew when ny == 1.
+
+Fri Jun 14 18:52:51 2013 Koichi Sasada <ko1@atdot.net>
+
+ * compile.c (rb_iseq_compile_node): fix location of a `trace'
+ instruction (b_return event).
+ [ruby-core:55305] [ruby-trunk - Bug #8489]
+ (need a backport to 2.0.0?)
* test/ruby/test_settracefunc.rb: add a test.
- added assert_consistent_call_return() method check call/return
- consistency.
+Fri Jun 14 18:18:07 2013 Koichi Sasada <ko1@atdot.net>
-Fri Jun 20 05:26:27 2014 Koichi Sasada <ko1@atdot.net>
+ * class.c, include/ruby/ruby.h: add write barriers for T_CLASS,
+ T_MODULE, T_ICLASS.
- * vm_eval.c (rb_catch_protect): fix same problem of [Bug #9961].
+ * constant.h: constify rb_const_entry_t::value and file to detect
+ assignment.
- * vm_eval.c (rb_iterate): ditto.
+ * variable.c, internal.h (rb_st_insert_id_and_value, rb_st_copy):
+ added. update table with write barrier.
-Thu Jun 19 21:41:30 2014 Koichi Sasada <ko1@atdot.net>
+ * method.h: constify some variables to detect assignment.
- * vm.c (rb_vm_rewind_cfp): add new function to rewind specified cfp
- with invoking RUBY_EVENT_C_RETURN.
- [Bug #9961]
+ * object.c (init_copy): add WBs.
- * vm_core.h: ditto.
+ * variable.c: ditto.
- * eval.c (rb_protect): use it.
+ * vm_method.c (rb_add_method): ditto.
- * eval.c (rb_rescue2): ditto.
+Fri Jun 14 14:33:47 2013 Shugo Maeda <shugo@ruby-lang.org>
- * vm_eval.c (rb_iterate): ditto.
+ * NEWS: add a note for Module#using.
- * test/ruby/test_settracefunc.rb: add a test.
+Fri Jun 14 13:40:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm_core.h (rb_vm_rewind_cfp): add the prototype declaration.
+ * .travis.yml (before_script): update config files.
-Thu Jun 19 19:47:21 2014 Koichi Sasada <ko1@atdot.net>
+ * common.mk ($(srcdir)/tool/config.{guess,sub}): use get-config_files.
- * vm.c (invoke_block_from_c): move call/return event timing for
- bmethod. It can invoke inconsistent call event if this call raises
- argument error.
- [Bug #9959]
+ * tool/config_files.rb: split get-config_files.
- * vm_insnhelper.c (vm_call_bmethod_body): ditto.
+ * common.mk (update-config_files): rule to download config files.
- * test/ruby/test_settracefunc.rb: add a test.
+ * tool/config.guess, tool/config.sub: remove and download from the
+ upstream.
-Thu Jun 19 18:14:47 2014 Koichi Sasada <ko1@atdot.net>
+ * tool/config_files.rb: download config files from GNU.
- * vm_core.h: add VM_FRAME_MAGIC_RESCUE to recognize normal block or
- rescue clause.
+Fri Jun 14 12:21:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c (vm_exec): use VM_FRAME_MAGIC_RESCUE on at rescue/ensure.
+ * include/ruby/ruby.h (RUBY_SAFE_LEVEL_CHECK): suppress warnings
+ "left-hand operand of comma expression has no effect", on gcc 4.4.
- * test/ruby/test_settracefunc.rb: should not invoke b_return at rescue
- clause.
- [Bug #9957]
+Fri Jun 14 09:48:48 2013 Shugo Maeda <shugo@ruby-lang.org>
- * vm_dump.c (control_frame_dump): check VM_FRAME_MAGIC_RESCUE.
+ * NEWS: add notes for $SAFE.
- * vm_dump.c (vm_stack_dump_each): ditto.
+ * doc/security.rdoc: remove the description of $SAFE=4.
-Thu Jun 19 13:39:11 2014 Arne Brasseur <arne@arnebrasseur.net>
+Fri Jun 14 00:14:29 2013 Tanaka Akira <akr@fsij.org>
- * proc.c (rb_method_curry): Implement Method#curry, which delegates
- to to_proc.curry. [ruby-core:62212] [Feature #9783]
+ * bignum.c (bigdivrem): Zero test condition simplified.
-Tue Jun 17 16:41:49 2014 Shugo Maeda <shugo@ruby-lang.org>
+Thu Jun 13 23:43:11 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/net/ftp.rb (gets, readline): read lines without LF properly.
- [ruby-core:63205] [Bug #9949]
+ * ext/bigdecimal/*: improve documentation, nodoc samples with @mrkn
- * test/net/ftp/test_buffered_socket.rb: related test.
+Thu Jun 13 23:02:14 2013 Kouhei Sutou <kou@cozmixng.org>
-Tue Jun 17 12:35:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/xmlrpc/client.rb (XMLRPC::Client#http): Add reader for raw
+ Net::HTTP. [ruby-core:55197] [Feature #8461]
+ Reported by Herwin Weststrate. Thanks!!!
- * eval.c (extract_raise_opts): pass unknown options to the
- exception, so that exception class can receive a hash argument.
- [ruby-core:63203] [Feature #8257]
+Thu Jun 13 22:44:52 2013 Kouhei Sutou <kou@cozmixng.org>
-Tue Jun 17 12:24:57 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/xmlrpc/client.rb (XMLRPC::Client#parse_set_cookies): Support
+ multiple names in a response. [ruby-core:41711] [Bug #5774]
+ Reported by Roman Riha. Thanks!!!
+ * test/xmlrpc/test_client.rb (XMLRPC::ClientTest#test_cookie_override):
+ Add a test of the above case.
- * gc.c (obj_memsize_of): memsize_of(T_ZOMBIE) returns 0, not a rb_bug.
- ObjectSpace.count_objects_size() uses memsize_of(T_ZOMBIE).
+Thu Jun 13 22:35:50 2013 Kouhei Sutou <kou@cozmixng.org>
- This bug introduced at r46348.
+ * lib/xmlrpc/client.rb (XMLRPC::Client#parse_set_cookies): Use
+ guard style.
-Mon Jun 16 19:00:11 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 13 22:12:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/runner.rb: failure message should be passed as an argument.
+ * lib/fileutils.rb (FileUtils#rmdir): fix traversal loop, not trying
+ remove same directory only.
-Mon Jun 16 18:42:57 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 13 21:30:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/runner.rb: capture TracePoint stat before setup and compare
- it after teardown.
+ * configure.in (opt-dir), tool/ifchange: get rid of "alternate value"
+ expansion for legacy sh. [ruby-dev:47420] [Bug #8524]
-Mon Jun 16 14:33:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jun 13 21:24:09 2013 Tanaka Akira <akr@fsij.org>
- * process.c (open): use UTF-8 version function to support
- non-ascii path properly. [ruby-core:63185] [Bug #9946]
+ * bignum.c (bigdivrem): Refactored to use ALLOCV_N for temporary
+ buffers.
-Sat Jun 14 10:54:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jun 13 18:54:11 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * array.c (rcombinate0): remove recursion, by looping with indexes
- stored in `p`.
+ * bignum.c (integer_unpack_num_bdigits_generic): reorder terms (but not
+ changed the intention of the expression) because VC++ reports a
+ warning for it. reported by ko1 via IRC.
- * array.c (rpermute0): remove recursion, by looping with indexes
- stored in `p`.
+Thu Jun 13 18:53:14 2013 Tanaka Akira <akr@fsij.org>
- * array.c (permute0): remove recursion, by looping with indexes
- stored in `p`. [ruby-core:63103] [Bug #9932]
+ * test/ruby/test_thread.rb (test_thread_local_security): Don't create
+ an unused thread.
-Sat Jun 14 10:52:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jun 13 18:34:20 2013 Tanaka Akira <akr@fsij.org>
- * string.c (rb_str_resize): update capa only when buffer get
- reallocated.
- http://d.hatena.ne.jp/nagachika/20140613/ruby_trunk_changes_46413_46420#r46413
+ * bignum.c (bigdivrem): Use nlz.
-Sat Jun 14 08:28:59 2014 Zachary Scott <e@zzak.io>
+Thu Jun 13 14:51:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * man/rake.1: [DOC] Update links for Rake, patch by @hsbt [Bug #9904]
- [Fixes GH-628] https://github.com/ruby/ruby/pull/628
+ * include/ruby/ruby.h (RUBY_SAFE_LEVEL_CHECK): check constant safe
+ level at compile time.
-Fri Jun 13 17:58:58 2014 Koichi Sasada <ko1@atdot.net>
+Thu Jun 13 14:39:08 2013 Shugo Maeda <shugo@ruby-lang.org>
- * vm_trace.c: add new method TracePoint.stat to debug
- TracePoint mechanism.
+ * test/-ext-/test_printf.rb, test/rss/test_parser.rb,
+ test/ruby/test_array.rb, test/ruby/test_hash.rb,
+ test/ruby/test_m17n.rb, test/ruby/test_marshal.rb,
+ test/ruby/test_object.rb, test/ruby/test_string.rb: don't use
+ untrusted?, untrust, and trust to avoid warnings in case $VERBOSE is
+ true.
- Ruby users should not use this method. So I don't note this method
- in the NEWS file.
+Thu Jun 13 10:47:16 2013 Shugo Maeda <shugo@ruby-lang.org>
- * test/runner.rb: detect zombie active TracePoints with
- TracePoint.stat.
+ * bootstraptest/test_autoload.rb, bootstraptest/test_method.rb:
+ remove tests for $SAFE=4.
-Fri Jun 13 17:46:31 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/pp.rb: use taint instead of untrust to avoid warnings when
+ $VERBOSE is set to true.
- * vm_trace.c: clear and restore recursive checking thread local data
- to avoid unexpected throw from TracePoint.
- [Bug #9940]
+Thu Jun 13 06:12:18 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_settracefunc.rb: add a test.
+ * bignum.c (integer_unpack_num_bdigits_small): Fix a compile error on
+ clang -Werror,-Wshorten-64-to-32
+ Reported by Eric Hodel. [ruby-core:55467] [Bug #8522]
- * thread.c: added
- * rb_threadptr_reset_recursive_data(rb_thread_t *th);
- * rb_threadptr_restore_recursive_data(rb_thread_t *th, VALUE old);
+Thu Jun 13 05:32:13 2013 Eric Hodel <drbrain@segment7.net>
- * vm_core.h: ditto.
+ * ext/socket/extconf.rb: Enable RFC 3542 IPV6 socket options for OS X
+ 10.7+. [ruby-trunk - Bug #8517]
-Fri Jun 13 17:33:14 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jun 13 00:17:18 2013 Tanaka Akira <akr@fsij.org>
- * array.c (rb_ary_combination): iterate on a shared copy, and use
- array of indexes instead of array of chosen objects.
- [ruby-core:63149] [Bug #9939]
+ * bignum.c (rb_integer_unpack_2comp): New function.
+ (rb_integer_unpack_internal): Extracted from rb_integer_unpack and
+ nlp_bits_ret argument added.
+ (integer_unpack_num_bdigits_small): nlp_bits_ret argument added to
+ return number of leading padding bits.
+ (integer_unpack_num_bdigits_generic): Ditto.
- * array.c (yield_indexed_values): extract from permute0(),
- rpermute0(), and rcombinate0().
+ * internal.h (rb_integer_unpack_2comp): Declared.
-Fri Jun 13 13:42:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * pack.c (pack_unpack): Use rb_integer_unpack_2comp and
+ rb_integer_unpack.
- * array.c (rb_ary_permutation): `p` is the array of size `r`, as
- commented at permute0(). since `n >= r` here, buffer overflow
- never happened, just reduce unnecessary allocation though.
+Wed Jun 12 23:27:03 2013 Shugo Maeda <shugo@ruby-lang.org>
-Thu Jun 12 20:32:28 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * eval.c (mod_using): new method Module#using, which activates
+ refinements of the specified module only in the current class or
+ module definition. [ruby-core:55273] [Feature #8481]
- * string.c (rb_str_resize): should consider the capacity instead
- of the old length, as pointed out by nagachika.
+ * test/ruby/test_refinement.rb: related test.
-Thu Jun 12 18:31:01 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Jun 12 22:58:48 2013 Shugo Maeda <shugo@ruby-lang.org>
- * lib/net/http/responses.rb: added Net::HTTPPermanentRedirect(308)
- Contributed by @yorkie [fix GH-638]
+ * safe.c (rb_set_safe_level, safe_setter): raise an ArgumentError
+ when $SAFE is set to 4. $SAFE=4 is now obsolete.
+ [ruby-core:55222] [Feature #8468]
-Thu Jun 12 13:27:38 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * object.c (rb_obj_untrusted, rb_obj_untrust, rb_obj_trust):
+ Kernel#untrusted?, untrust, and trust are now deprecated.
+ Their behavior is same as tainted?, taint, and untaint,
+ respectively.
- * string.c (rb_str_freeze): shrink the buffer before freezing, as
- pointed out by Eric Wong at [ruby-core:63119].
+ * include/ruby/ruby.h (OBJ_UNTRUSTED, OBJ_UNTRUST): OBJ_UNTRUSTED()
+ and OBJ_UNTRUST() are aliases of OBJ_TAINTED() and OBJ_TAINT(),
+ respectively.
-Thu Jun 12 13:09:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c, class.c, debug.c, dir.c, encoding.c, error.c, eval.c,
+ ext/curses/curses.c, ext/dbm/dbm.c, ext/dl/cfunc.c,
+ ext/dl/cptr.c, ext/dl/dl.c, ext/etc/etc.c, ext/fiddle/fiddle.c,
+ ext/fiddle/pointer.c, ext/gdbm/gdbm.c, ext/readline/readline.c,
+ ext/sdbm/init.c, ext/socket/ancdata.c, ext/socket/basicsocket.c,
+ ext/socket/socket.c, ext/socket/udpsocket.c,
+ ext/stringio/stringio.c, ext/syslog/syslog.c, ext/tk/tcltklib.c,
+ ext/win32ole/win32ole.c, file.c, gc.c, hash.c, io.c, iseq.c,
+ load.c, marshal.c, object.c, proc.c, process.c, random.c, re.c,
+ safe.c, string.c, thread.c, transcode.c, variable.c,
+ vm_insnhelper.c, vm_method.c, vm_trace.c: remove code for
+ $SAFE=4.
- * file.c (expand_path): shrink expanded path which no longer needs
- rooms to append. [ruby-core:63114] [Bug #9934]
+ * test/dl/test_dl2.rb, test/erb/test_erb.rb,
+ test/readline/test_readline.rb,
+ test/readline/test_readline_history.rb, test/ruby/test_alias.rb,
+ test/ruby/test_array.rb, test/ruby/test_dir.rb,
+ test/ruby/test_encoding.rb, test/ruby/test_env.rb,
+ test/ruby/test_eval.rb, test/ruby/test_exception.rb,
+ test/ruby/test_file_exhaustive.rb, test/ruby/test_hash.rb,
+ test/ruby/test_io.rb, test/ruby/test_method.rb,
+ test/ruby/test_module.rb, test/ruby/test_object.rb,
+ test/ruby/test_pack.rb, test/ruby/test_rand.rb,
+ test/ruby/test_regexp.rb, test/ruby/test_settracefunc.rb,
+ test/ruby/test_struct.rb, test/ruby/test_thread.rb,
+ test/ruby/test_time.rb: remove tests for $SAFE=4.
-Wed Jun 11 17:37:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 12 22:18:23 2013 Tanaka Akira <akr@fsij.org>
- * configure.in (rb_cv_scalar_pthread_t): pthread_t is not required
- to be a scalar type.
+ * bignum.c (integer_unpack_num_bdigits_generic): Rewritten without
+ rb_funcall.
+ (integer_unpack_num_bdigits_bytes): Removed.
+ (rb_integer_unpack): integer_unpack_num_bdigits_bytes invocation
+ removed.
- * thread.c (fill_thread_id_string, thread_id_str): dump pthread_t
- in hexadecimal form if it is not a scalar type, assume it can be
- represented in a pointer form otherwise. based on the patch by
- Rei Odaira at [ruby-core:62867]. [ruby-core:62857] [Bug #9884]
+Wed Jun 12 20:18:03 2013 Kouhei Sutou <kou@cozmixng.org>
- * thread_pthread.c (Init_native_thread, thread_start_func_1),
- (native_thread_create): set thread_id_str if needed.
+ * lib/xmlrpc/client.rb (XMLRPC::Client#parse_set_cookies): Extract.
- * vm_core.h (rb_thread_t): add thread_id_string if needed.
+Wed Jun 12 18:19:41 2013 Tanaka Akira <akr@fsij.org>
-Wed Jun 11 01:53:22 2014 Koichi Sasada <ko1@atdot.net>
+ * bignum.c (validate_integer_pack_format): supported_flags argument
+ added and validate given flags.
+ (rb_integer_pack_internal): Specify supported_flags.
+ (rb_integer_unpack): Ditto.
- * gc.c: invoke GC before memory allocation (xmalloc/xrealloc)
- when GC.stress = true.
- [Bug #9859]
+Wed Jun 12 16:41:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_gc.rb: add a test.
+ * array.c (rb_ary_sort_bang): remove duplicated assertions.
+ ARY_HEAP_PTR() implies ary not to be embedded. [ruby-dev:47419]
+ [Bug #8518]
-Tue Jun 10 13:20:14 2014 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
+Wed Jun 12 12:44:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/cgi/core.rb: Provide a mechanism to specify the
- max_multipart_length of multipart data.
- [Feature #8370] patch by Leif Eriksen <leif.eriksen.au@gmail.com>
+ * io.c (io_getc): fix 7bit coderange condition, check if ascii read
+ data instead of read length. [ruby-core:55444] [Bug #8516]
-Tue Jun 10 10:57:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 12 12:35:13 2013 Tanaka Akira <akr@fsij.org>
- * lib/csv.rb (CSV#<<): honor explicitly given encoding. based on
- the patch by DAISUKE TANIWAKI <daisuketaniwaki AT gmail.com> at
- [ruby-core:62113]. [Bug #9766]
+ * pack.c (pack_pack): Use rb_integer_pack_2comp.
-Mon Jun 9 20:40:48 2014 Koichi Sasada <ko1@atdot.net>
+Wed Jun 12 12:07:04 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: change full GC timing to keep lower memory usage.
+ * sprintf.c (rb_str_format): Fix a dynamic format string.
- Extend heap only at
- (1) after major GC
- or
- (2) after several (two times, at current) minor GC
+Wed Jun 12 12:04:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- Details in https://bugs.ruby-lang.org/issues/9607#note-9
- [Bug #9607]
+ * array.c (rb_ary_uniq_bang): must not be modified once frozen even in
+ a callback method.
-Mon Jun 9 16:01:41 2014 Masahiro Ide <imasahiro9@gmail.com>
+Wed Jun 12 12:03:43 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (gcdebug_sentinel): fix typo, "sentinel" not "sential".
- [fix GH-634]
+ * array.c (rb_ary_sort_bang): must not be modified once frozen even in
+ a callback method.
-Mon Jun 9 00:04:25 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 12 12:00:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in (posix_fadvise): disable use of posix_fadvise
- itself on 32-bit AIX. [ruby-core:62968] [Bug #9914]
+ * array.c (FL_SET_EMBED): shared object is frozen even when get
+ unshared.
-Sun Jun 8 23:28:00 2014 <kanemoto@ruby-lang.org>
+ * array.c (rb_ary_modify): ARY_SET_CAPA needs unshared array.
- * io.c (rb_io_advise): AIX currently does not support a 32-bit call to
- posix_fadvise() if _LARGE_FILES is defined. Patch by Rei Odaira.
- [ruby-core:62968] [Bug #9914]
+Wed Jun 12 07:32:01 2013 Tanaka Akira <akr@fsij.org>
-Sun Jun 8 04:52:40 2014 Jun Hiroe <Jun.Hiroe@gmail.com>
+ * random.c (rand_int): Use rb_big_uminus.
- * string.c (rb_str_slice_bang): [DOC] update return value against
- a fixnum, which has changed because of M17N. [fix GH-631]
+Wed Jun 12 07:12:54 2013 Eric Hodel <drbrain@segment7.net>
-Sat Jun 7 22:13:42 2014 Benoit Daloze <eregontp@gmail.com>
+ * struct.c: Improve documentation: replace "instance variable" with
+ "member", recommend the use of a block to customize structs, note
+ that member accessors are created, general cleanup.
- * numeric.c (do_coerce): Add a warning when an exception is raised
- or an invalid value is returned in #coerce called by
- numeric comparison operators and the exception
- thrown by the caller has no information on the failure.
- In the next release such exception should not be rescued or
- should be the cause of the caller exception. nil is accepted
- as the "no possible coercion" return value. See #7688.
+Wed Jun 12 06:35:01 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_numeric.rb: Add corresponding test.
+ * internal.h (INTEGER_PACK_NEGATIVE): Defined.
+ (rb_integer_unpack): sign argument removed.
-Sat Jun 7 18:15:33 2014 Benoit Daloze <eregontp@gmail.com>
+ * bignum.c (rb_integer_unpack): sign argument removed.
+ Non-negative integers generated by default.
+ INTEGER_PACK_NEGATIVE flag is used to generate non-positive integers.
- * numeric.c (bit_coerce): remove constant parameter `err'
- (always TRUE) of bit_coerce().
+ * pack.c (pack_unpack): Follow the above change.
-Sat Jun 7 16:01:57 2014 Yutaka Kanemoto <kanemoto@ruby-lang.org>
+ * random.c (int_pair_to_real_inclusive): Ditto.
+ (make_seed_value): Ditto.
+ (mt_state): Ditto.
+ (limited_big_rand): Ditto.
- * cont.c (rb_fiber_struct): keep context.uc_stack.ss_sp and context.uc_stack.ss_size
- for later use. Patch by Rei Odaira. [ruby-core:62945] [Bug #9905]
+ * marshal.c (r_object0): Ditto.
-Sat Jun 7 12:51:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 12 00:07:46 2013 Kouhei Sutou <kou@cozmixng.org>
- * io.c (read_all): truncate the buffer before appending read data,
- instead of truncating before reading.
- [ruby-core:55951] [Bug #8625]
+ * test/xmlrpc/test_client.rb (XMLRPC::ClientTest#test_cookie_simple):
+ Add a test for the extracted method.
-Sat Jun 7 12:28:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jun 11 23:56:24 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/digest/digest.c (rb_digest_instance_equal): no need to call
- `to_s` twice. [Bug #9913]
+ * test/xmlrpc/test_client.rb (XMLRPC::ClientTest::Fake::HTTP#started):
+ Add a missing empty line.
-Sat Jun 7 11:35:01 2014 Tanaka Akira <akr@fsij.org>
+Tue Jun 11 23:37:19 2013 Tanaka Akira <akr@fsij.org>
- * object.c (rb_mod_initialize_clone): Override Kernel#initialize_clone
- to avoid an exception on Class.new.freeze.clone.to_s.
- Reported by Andrew Grimm. [ruby-core:41858] [Bug #5828]
+ * bignum.c (validate_integer_pack_format): Don't require a word order
+ flag if numwords is 1 or less.
+ (absint_numwords_generic): Don't specify a word order for
+ rb_integer_pack.
-Sat Jun 7 06:03:11 2014 Benoit Daloze <eregontp@gmail.com>
+ * hash.c (rb_hash): Ditto.
- * ext/digest/digest.c (rb_digest_instance_equal):
- fix #== for non-string arguments. [ruby-core:62967] [Bug #9913]
+ * time.c (v2w_bignum): Ditto.
- * test/digest/test_digest.rb: add test for above.
+Tue Jun 11 23:01:57 2013 Tanaka Akira <akr@fsij.org>
-Fri Jun 6 22:19:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (validate_integer_pack_format): Refine error messages.
- * compile.c (private_recv_p): check by node type, instead of a
- magic number.
+Tue Jun 11 22:25:04 2013 Tanaka Akira <akr@fsij.org>
- * node.h (NODE_PRIVATE_RECV), parse.y (attrset_gen): remove
+ * bignum.c (validate_integer_pack_format): numwords argument added.
+ Move a varidation from rb_integer_pack_internal and rb_integer_unpack.
+ (rb_integer_pack_internal): Follow above change.
+ (rb_integer_unpack): Ditto.
-Fri Jun 6 17:07:08 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jun 11 20:52:43 2013 Tanaka Akira <akr@fsij.org>
- * compile.c (iseq_compile_each), parse.y (new_attr_op_assign_gen):
- allow op assign to a private attribute.
- [ruby-core:62949] [Bug #9907]
+ * bignum.c (rb_integer_pack_internal): Renamed from rb_integer_pack
+ and overflow_2comp argument added.
+ (rb_integer_pack): Just call rb_integer_pack_internal.
+ (rb_integer_pack_2comp): New function.
-Fri Jun 6 13:39:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h (rb_integer_pack_2comp): Declared.
- * io.c (io_setstrbuf, io_read): should not shorten the given buffer until
- read succeeds. [ruby-core:55951] [Bug #8625]
+ * sprintf.c (rb_str_format): Use rb_integer_pack and
+ rb_integer_pack_2comp to format binary/octal/hexadecimal integers.
+ (ruby_digitmap): Declared.
+ (remove_sign_bits): Removed.
+ (BITSPERDIG): Ditto.
+ (EXTENDSIGN): Ditto.
-Fri Jun 6 07:41:41 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+Tue Jun 11 16:15:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/psych/lib/psych/visitors/yaml_tree.rb: dump empty symbols with a
- tag so that they can be parsed on input. [Bug #9873] [ruby-core:62825]
- * test/psych/test_symbol.rb: test for change
+ * array.c (ary_shrink_capa): shrink the capacity so it fits just with
+ the length.
-Thu Jun 5 16:08:39 2014 Koichi Sasada <ko1@atdot.net>
+ * array.c (ary_make_shared): release never used elements from frozen
+ array to be shared. [ruby-dev:47416] [Bug #8510]
- * gc.c (gc_page_sweep): refactoring.
+Tue Jun 11 12:49:01 2013 Zachary Scott <zachary@zacharyscott.net>
- * gc.c (gc_page_sweep): should not set, but add final_slots into
- sweep_page->final_slots.
+ * doc/re.rdoc: Rename to doc/regexp.rdoc
+ * re.c: Update rdoc include for rename of file
-Thu Jun 5 14:36:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jun 11 07:13:13 2013 Masaya Tarui <tarui@ruby-lang.org>
- * configure.in (jemalloc): check for the header regardless drop-in
- libjemalloc is found, for `malloc_conf` declaration.
+ * eval_error.c (error_print): keep that errat is non-shady object.
+ and guard errat from GC.
- * version.c (ruby_show_version): show `malloc_conf` if set.
- [Feature #9113]
+Tue Jun 11 05:04:25 2013 Benoit Daloze <eregontp@gmail.com>
- * configure.in (with-jemalloc): also check for header, for ABIs
- which JEMALLOC_MANGLE is needed, i.e., Mach-O and PE-COFF
- platforms. [ruby-core:62939] [Feature #9113]
+ * ext/racc/cparse/cparse.c: use rb_ary_entry() and
+ rb_ary_subseq() instead of RARRAY_PTR.
+ Based on a patch by Dirkjan Bussink. See Bug #8399.
- * include/ruby/missing.h: include alternative malloc header to
- replace memory management functions.
+Mon Jun 10 23:51:51 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * dln.c, io.c, parse.y, st.c: undef malloc family before
- re-definition to suppress warnings.
+ * array.c (rb_ary_new_from_values): fix a typo. pointed out by
+ nagachika.
+ http://d.hatena.ne.jp/nagachika/20130610/ruby_trunk_changes_41199_41220
-Thu Jun 5 12:52:18 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Jun 10 21:51:03 2013 Kouhei Sutou <kou@cozmixng.org>
- * man/ruby.1: remove rubyforge entry.
+ * ext/socket/raddrinfo.c (nogvl_getaddrinfo): Fix indent.
-Thu Jun 5 12:45:32 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Jun 10 21:49:43 2013 Kouhei Sutou <kou@cozmixng.org>
- * misc/README: use github link instead of rubyforge.
+ * ext/socket/raddrinfo.c (nogvl_getaddrinfo): Add missing return
+ value assignment.
-Thu Jun 5 10:03:29 2014 Koichi Sasada <ko1@atdot.net>
+Mon Jun 10 20:58:11 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * gc.c (obj_free): check also FL_PROMOTED bit by RVALUE_OLD_P().
+ * ext/socket/raddrinfo.c (nogvl_getaddrinfo): work around for Ubuntu
+ 13.04's getaddrinfo issue with mdns4. [ruby-list:49420]
-Thu Jun 5 03:45:28 2014 Eric Wong <e@80x24.org>
+Mon Jun 10 19:34:39 2013 Tanaka Akira <akr@fsij.org>
- * configure.in: add --with-jemalloc option
- [ruby-core:62912]
+ * bignum.c (rb_integer_pack): Returns sign instead of words.
+ (absint_numwords_generic): Follow the above change.
+ (big2str_base_powerof2): Follow the above change.
-Wed Jun 4 22:28:14 2014 Koichi Sasada <ko1@atdot.net>
+ * internal.h: Ditto.
- * gc.c: introduce RZombie to manage zombie objects.
- Rewrite finalizing logics with this type.
+ * hash.c (rb_hash): Ditto.
- * gc.c (gc_verify_internal_consistency): verify zombie (finalizing)
- objects count.
+ * pack.c (pack_pack): Ditto.
-Wed Jun 4 22:09:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * random.c (int_pair_to_real_inclusive): Ditto.
+ (rand_init): Ditto.
+ (random_load): Ditto.
+ (limited_big_rand): Ditto.
- * re.c (match_aref, rb_reg_regsub): consider encoding of captured
- names, encoding-incompatible should not match.
- [ruby-dev:48278] [Bug #9903]
+ * time.c (v2w_bignum): Ditto.
-Wed Jun 4 21:23:52 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 10 17:20:01 2013 Koichi Sasada <ko1@atdot.net>
- * re.c (match_aref): should not ignore name after NUL byte.
- [ruby-dev:48275] [Bug #9902]
+ * gc.c (rgengc_remember): permit promoted object.
+ (rb_gc_writebarrier -> remember)
-Wed Jun 4 04:08:37 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 10 17:14:01 2013 Koichi Sasada <ko1@atdot.net>
- * vm.c (core_hash_merge_kwd): should return the result hash, which
- may be converted from and differ from the given argument.
- [ruby-core:62921] [Bug #9898]
+ * gc.c (RVALUE_PROMOTE): fix parameter name (`x' to `obj')
+ and make it inline function (like RVALUE_PROMOTE).
-Tue Jun 3 23:32:34 2014 Tanaka Akira <akr@fsij.org>
+Mon Jun 10 16:22:50 2013 Koichi Sasada <ko1@atdot.net>
- * ruby.c (load_file_internal2): Extracted from load_file_internal.
- (load_file_internal): Invoke load_file_internal2 using rb_protect.
- Close an opened FD if load_file_internal2 raises an exception.
+ * array.c (rb_ary_new_from_values): add assertion
+ (ary should be young object).
-Tue Jun 3 19:11:45 2014 Koichi Sasada <ko1@atdot.net>
+Mon Jun 10 16:05:59 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (rb_objspace_free): should not rest_sweep() here.
- Some data structures are already freed.
+ * gc.c (wmap_mark): check allocation of `w->obj2wmap'.
+ (no-allocation `w->obj2wmap' will be NULL pointer reference)
-Tue Jun 3 18:43:51 2014 Koichi Sasada <ko1@atdot.net>
+Mon Jun 10 15:36:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_gc.rb: allocate more objects to invoke GC by newobj.
- GC allows extending pages depends on heap_increment.
+ * eval_error.c (error_print): use checking functions instead of
+ catching exceptions.
-Tue Jun 3 18:01:27 2014 Koichi Sasada <ko1@atdot.net>
+ * eval_error.c (error_print): restore errinfo for the case new
+ exception raised while printing the message. [ruby-core:55365]
+ [Bug #8501]
- * gc.c (rb_gc_call_finalizer_at_exit): add
- gc_verify_internal_consistency() when RGENGC_CHECK_MODE >= 2.
+ * eval_error.c (error_print): reduce calling setjmp.
-Tue Jun 3 17:54:21 2014 Koichi Sasada <ko1@atdot.net>
+Mon Jun 10 12:10:06 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: change the counting method for young objects.
- clear counter at the beginning of every GC and
- count promoted (infant->young) objects.
+ * bignum.c (integer_unpack_num_bdigits_small: Extracted from
+ rb_integer_unpack.
+ (integer_unpack_num_bdigits_generic): Ditto.
+ (integer_unpack_num_bdigits_bytes): New function.
+ (rb_integer_unpack): Use above functions.
+ Return a Bignum for INTEGER_PACK_FORCE_BIGNUM even when the result
+ is zero.
- Some promotions (infant->young) are transition of promoting to old
- objects. We should not count such promotions.
+Mon Jun 10 05:38:23 2013 Tanaka Akira <akr@fsij.org>
- With this technique, we don't need to check young objects
- at obj_free().
+ * bignum.c (absint_numwords_small): New function.
+ (absint_numwords_generic): Use absint_numwords_small if possible.
-Tue Jun 3 16:38:19 2014 Koichi Sasada <ko1@atdot.net>
+Mon Jun 10 01:07:57 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: add verifying counters code in gc_verify_internal_consistency().
- gc_verify_internal_consistency() counts all
- - live objects
- - young objects (if age2 promotion)
- - old objects
- in all pages and compares with objspace managing counters.
+ * bignum.c (absint_numwords_bytes): New function.
+ (absint_numwords_generic): Extracted from rb_absint_numwords.
+ (rb_absint_numwords): Use absint_numwords_bytes if possible.
- * gc.c (gc_after_sweep): do gc_verify_internal_consistency()
- when RGENGC_CHECK_MODE >= 2.
+Sun Jun 9 21:33:15 2013 Tanaka Akira <akr@fsij.org>
-Tue Jun 3 13:14:04 2014 Shugo Maeda <shugo@ruby-lang.org>
+ * bignum.c (rb_absint_numwords): Return (size_t)-1 when overflow.
+ Refine variable names.
+ (rb_absint_size): Refine variable names.
- * lib/net/imap.rb (body_type_1part): Gmail IMAP reports a body
- type as "MIXED" followed immediately by params
- [ruby-core:62864] [Bug #9885]
- Patch by @rayners (David Raynes). [Fixes GH-622]
- https://github.com/ruby/ruby/pull/622
+ * internal.h (rb_absint_size): Refine an argument name.
+ (rb_absint_numwords): Ditto.
-Tue Jun 3 13:18:24 2014 Koichi Sasada <ko1@atdot.net>
+Sun Jun 9 16:51:41 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (objspace_live_slot): live slot count should not include final
- slot (contains T_ZOMBIE) count.
+ * bignum.c (rb_absint_numwords): Renamed from rb_absint_size_in_word.
-Tue Jun 3 13:03:21 2014 Koichi Sasada <ko1@atdot.net>
+ * internal.h (rb_absint_numwords): Follow the above change.
- * gc.c (obj_free): fix spacing.
+ * pack.c (pack_pack): Ditto.
-Tue Jun 3 12:59:32 2014 Koichi Sasada <ko1@atdot.net>
+ * random.c (rand_init): Ditto.
+ (limited_big_rand): Ditto.
- * gc.c (check_gen_consistency): fix error message.
+Sun Jun 9 14:41:05 2013 Tanaka Akira <akr@fsij.org>
-Tue Jun 3 12:40:23 2014 Koichi Sasada <ko1@atdot.net>
+ * bignum.c (rb_integer_pack): numwords_allocated argument removed.
- * gc.c: count old/young objects more correctly.
+ * internal.h (rb_integer_pack): Follow the above change.
- * gc.c (RVALUE_DEMOTE_FROM_OLD): decrement old object count.
+ * hash.c (rb_hash): Ditto.
- * gc.c (RVALUE_DEMOTE_FROM_YOUNG): decrement young object count.
+ * time.c (v2w_bignum): Ditto.
- * gc.c (rb_gc_resurrect): increment old object count.
+ * pack.c (pack_pack): Ditto.
- * gc.c (gc_marks_body): should not add old object count.
- This code is completely my misunderstanding.
+ * random.c (int_pair_to_real_inclusive): Ditto.
+ (rand_init): Ditto.
+ (random_load): Ditto.
+ (limited_big_rand): Ditto.
- * gc.c (rb_gc_force_recycle): decrement young or old object count
- correctly.
+Sun Jun 9 09:34:44 2013 Tanaka Akira <akr@fsij.org>
-Tue Jun 3 12:26:47 2014 Koichi Sasada <ko1@atdot.net>
+ * bignum.c (big2str_base_powerof2): New function.
+ (rb_big2str0): Use big2str_base_powerof2 if base is 2, 4, 8, 16 or 32.
- * test/ruby/memory_status.rb: add $LOAD_PATH to load test/unit
- correctly for fiddle/import unavailable environments.
+Sun Jun 9 00:59:04 2013 Tanaka Akira <akr@fsij.org>
-Tue Jun 3 09:45:13 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * hash.c (rb_hash): Use rb_integer_pack to obtain least significant
+ long integer.
- * test/openssl/test_ssl.rb (OpenSSL::TestSSL#test_verify_result):
- shouldn't use same server for respective tests, because the 1st
- test sometimes kills the server main loop silently.
- [Bug #9881] [ruby-dev:48266]
+Sat Jun 8 23:56:00 2013 Tanaka Akira <akr@fsij.org>
-Tue Jun 3 01:34:59 2014 Zachary Scott <e@zzak.io>
+ * numeric.c (rb_num_to_uint): Use rb_absint_size instead of
+ RBIGNUM_LEN.
- * README.EXT: [DOC] Add rb_call_super when subclassing from @robin850
- [Fixes GH-623] https://github.com/ruby/ruby/pull/623
+Sat Jun 8 22:53:45 2013 Tanaka Akira <akr@fsij.org>
-Mon Jun 2 17:14:49 2014 Koichi Sasada <ko1@atdot.net>
+ * marshal.c (r_object0): Use rb_integer_unpack.
- * vm.c (ruby_vm_destruct): remove useless call of
- rb_gc_force_recycle().
+Sat Jun 8 22:18:57 2013 Tanaka Akira <akr@fsij.org>
- At this line, a VM object is already freed
- (is changed to T_NONE) by rb_gc_call_finalizer_at_exit().
+ * time.c (v2w): Use rb_absint_size instead of RBIGNUM_LEN.
-Mon Jun 2 15:50:24 2014 Koichi Sasada <ko1@atdot.net>
+Sat Jun 8 21:47:33 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_using_refinement): add write-barriers for
- cref->nd_refinements.
+ * time.c (v2w_bignum): Simplified using rb_integer_pack.
+ (rb_big_abs_find_maxbit): Removed.
-Mon Jun 2 12:26:08 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Jun 8 21:03:40 2013 Tanaka Akira <akr@fsij.org>
- * CONTRIBUTING.md: added contributing guide for github. [fix GH-625]
+ * bignum.c (rb_absint_singlebit_p): New function.
-Mon Jun 2 07:30:33 2014 Tanaka Akira <akr@fsij.org>
+ * internal.h (rb_absint_singlebit_p): Declared.
- * test/ruby/envutil.rb (default_warning): New method.
+ * time.c (v2w_bignum): Use rb_absint_singlebit_p instead of
+ rb_big_abs_find_minbit.
+ (rb_big_abs_find_minbit): Removed.
- * test/ruby/test_autoload.rb: Use EnvUtil.default_warning.
+Sat Jun 8 20:24:23 2013 Tanaka Akira <akr@fsij.org>
-Mon Jun 2 07:05:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * time.c (rb_big_abs_find_maxbit): Use rb_absint_size.
+ (bdigit_find_maxbit): Removed.
- * include/ruby/encoding.h: constify `rb_encoding` arguments.
+Sat Jun 8 19:47:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * include/ruby/oniguruma.h: constify `OnigEncoding` arguments.
+ * class.c (include_modules_at): invalidate method cache if included
+ module contains constants
-Sun Jun 1 12:05:10 2014 Tanaka Akira <akr@fsij.org>
+ * test/ruby/test_module.rb: add test
- * test/drb: Wrap tests definitions by DRbTests module. This makes
- several tests (ACLEntryTest, TestBug4409, etc.) easier to understand
- that they are tests for DRb.
+Sat Jun 8 19:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Sun Jun 1 11:36:25 2014 Tanaka Akira <akr@fsij.org>
+ * random.c (limited_big_rand): declare rnd, lim and mask as uint32_t
+ to avoid 64 bit to 32 bit shorten warnings.
- * lib/rinda/ring.rb (RingFinger#make_socket): Close the socket on
- exception.
+Sat Jun 8 19:23:53 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Jun 1 06:55:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/Makefile.sub: r41163 changed win32/win32.c and configure.in
+ but it didn't treat about mswin32/mswin64, so fix it.
+ NOTE: this needs a review by usa whether additional condition is
+ required or not.
- * parse.y (intern_str): dynamic attrset ID is registered by
- `rb_id_attrset()` already, so no further registration is needed.
- [ruby-core:62861]
+Sat Jun 8 19:06:26 2013 Tanaka Akira <akr@fsij.org>
-Sun Jun 1 04:52:47 2014 Zachary Scott <e@zzak.io>
+ * random.c: Unused RBignum internal accessing macros removed.
- * lib/English.rb: [DOC] $LOADED_FEATURES moved to load.c [Fixes GH-620]
- Patch submitted by @leafac in https://github.com/ruby/ruby/pull/620
- * doc/globals.rdoc: Added $LOADED_FEATURES to list
+Sat Jun 8 19:04:15 2013 Tanaka Akira <akr@fsij.org>
-Sat May 31 22:30:14 2014 Tanaka Akira <akr@fsij.org>
+ * random.c (limited_big_rand): The argument, limit, is changed to
+ VALUE. Use rb_integer_pack and rb_integer_unpack.
- * test/lib/leakchecker.rb: Leak checker extracted from
- test/lib/minitest/unit.rb.
+Sat Jun 8 17:15:18 2013 Tanaka Akira <akr@fsij.org>
-Sat May 31 21:15:43 2014 URABE Shyouhei <shyouhei@ruby-lang.org>
+ * random.c (make_seed_value): Fix the length given for
+ rb_integer_unpack.
- * thread.c (rb_thread_atfork_internal): My compiler complains
- about this variable being used before initialized. I looked at
- the code and expanded the macro and turned out it was actually
- USED for pointer arithmetic, not dereferenced. So this was
- never a serious bug. But is annoying indeed to see warnings
- every time. I added `=0` and all went healthy.
+Sat Jun 8 16:38:02 2013 Tanaka Akira <akr@fsij.org>
- * configure.in: Also, I found that the problematic macro expansion
- only happens when we lack __typeof__ C extension, which shall
- not be the case of my compiler. I added AC_C_TYPEOF to kick ass.
+ * bignum.c (rb_integer_unpack): Don't use rb_funcall if possible.
-Sat May 31 16:32:50 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * random.c: Use uint32_t for elements of seed.
+ (make_seed_value): Use rb_integer_unpack.
- * lib/ipaddr.rb: extracted inline tests into test dir.
- * test/test_ipaddr.rb: ditto.
+Sat Jun 8 15:58:18 2013 Tanaka Akira <akr@fsij.org>
-Sat May 31 16:29:21 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * random.c (rand_init): Add a cast to fix clang compile error:
+ random.c:410:32: error: implicit conversion loses integer precision:
+ 'size_t' (aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32]
+ This cast doesn't cause a problem because len is not bigger than
+ MT_MAX_STATE.
- * ext/digest/lib/digest/hmac.rb: extracted inline tests into test dir.
- * test/digest/test_digest_hmac.rb: ditto.
+Sat Jun 8 15:30:03 2013 Tanaka Akira <akr@fsij.org>
-Sat May 31 16:02:03 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * random.c (rand_init): Use rb_integer_pack.
+ (roomof): Removed.
- * test/test_syslog.rb: remove executable.
+Sat Jun 8 14:58:32 2013 Tanaka Akira <akr@fsij.org>
-Sat May 31 08:58:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h (INTEGER_PACK_FORCE_BIGNUM): New flag constant.
- * enc/unicode.c (init_case_fold_table): no longer need to
- initialize tables at runtime.
+ * bignum.c (rb_integer_unpack): Support INTEGER_PACK_FORCE_BIGNUM.
- * enc/unicode/case-folding.rb (lookup_hash): make perfect hash to
- lookup case unfolding table 3.
+ * random.c (int_pair_to_real_inclusive): Use
+ INTEGER_PACK_FORCE_BIGNUM to use rb_big_mul instead of rb_funcall.
- * enc/unicode/case-folding.rb (lookup_hash): make perfect hash to
- lookup case unfolding table 2.
+Sat Jun 8 14:17:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * enc/unicode/case-folding.rb (lookup_hash): make perfect hash to
- lookup case unfolding table 1.
+ * configure.in: check for NET_LUID. header macro varies across
+ compiler versions.
- * enc/unicode/case-folding.rb (lookup_hash): make perfect hash to
- lookup case folding table.
+ * win32/win32.c: use configured macro.
- * enc/unicode/case-folding.rb (print_table): merge non-locale and
- locale tables, and reduce initializing loops.
+Sat Jun 8 11:59:55 2013 Tanaka Akira <akr@fsij.org>
- * enc/unicode/case-folding.rb (CaseFolding): modularize, and add
- --output-file option.
+ * random.c (int_pair_to_real_inclusive): Use rb_funcall instead of
+ rb_big_mul because rb_integer_unpack can return a Fixnum.
- * enc/unicode/case-folding.rb: script to convert CaseFolding.txt,
- translated from CaseFolding.py.
+Sat Jun 8 11:17:39 2013 Tanaka Akira <akr@fsij.org>
-Sat May 31 08:31:41 2014 Tanaka Akira <akr@fsij.org>
+ * random.c (int_pair_to_real_inclusive): Use rb_integer_pack.
- * test/lib/minitest/unit.rb: Check Tempfile leaks for each test method
- again.
+Sat Jun 8 09:49:42 2013 Tanaka Akira <akr@fsij.org>
-Sat May 31 03:50:50 2014 Zachary Scott <e@zzak.io>
+ * random.c (int_pair_to_real_inclusive): Use rb_integer_unpack.
- * lib/delegate.rb: [DOC] Document raise in Delegator class
- Patch by @lucasmazza. [Fixes GH-621]
- https://github.com/ruby/ruby/pull/621
+Sat Jun 8 08:12:22 2013 Tanaka Akira <akr@fsij.org>
-Fri May 30 21:23:26 2014 Tanaka Akira <akr@fsij.org>
+ * random.c (random_load): Use rb_integer_pack.
- * lib/webrick/server.rb: Use a pipe to detect server shutdown.
- shutdown() or close() for listening socket is not a reliable.
- Actually, both doesn't work (doesn't wake up select()) on
- DragonFly BSD 3.6.2.
+Sat Jun 8 06:15:46 2013 Tanaka Akira <akr@fsij.org>
- * test/webrick/utils.rb: :ShutdownSocketWithoutClose is not required
- now to immediate server shutdown detection.
- This fixes fd leaks.
+ * random.c (numberof): Removed.
- * test/net/http/utils.rb: Ditto.
+Sat Jun 8 06:00:47 2013 Tanaka Akira <akr@fsij.org>
-Fri May 30 20:58:37 2014 Tanaka Akira <akr@fsij.org>
+ * random.c: include internal.h.
+ (mt_state): Use rb_integer_unpack.
- * test/lib/minitest/unit.rb (check_fd_leak): Sort the inspected
- objects list for a FD.
+Sat Jun 8 00:55:51 2013 Tanaka Akira <akr@fsij.org>
-Fri May 30 18:06:55 2014 Tanaka Akira <akr@fsij.org>
+ * bignum.c (integer_pack_loop_setup): word_num_nailbytes_ret argument
+ removed.
+ (rb_integer_pack): Follow the above change.
+ (rb_integer_unpack): Follow the above change.
- * test/lib/minitest/unit.rb (check_fd_leak): Try GC to delete leaked
- FDs.
+Sat Jun 8 00:37:32 2013 Tanaka Akira <akr@fsij.org>
-Fri May 30 12:05:59 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (validate_integer_pack_format): Renamed from
+ validate_integer_format.
+ (integer_pack_loop_setup): Renamed from integer_format_loop_setup.
+ (integer_pack_fill_dd): Renamed from int_export_fill_dd.
+ (integer_pack_take_lowbits): Renamed from int_export_take_lowbits.
+ (integer_unpack_push_bits): Renamed from int_import_push_bits.
- * test/lib/test/unit/parallel.rb (_run_suite): orig_stdout may be nil
- though I don't know the reason.
+Fri Jun 7 23:58:06 2013 Tanaka Akira <akr@fsij.org>
-Fri May 30 11:33:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_integer_pack): Arguments changed. Use flags to
+ specify word order and byte order.
+ (rb_integer_unpack): Ditto.
+ (validate_integer_format): Follow the above change.
+ (integer_format_loop_setup): Ditto.
- * string.c (rb_str_substr): need to reset code range for shared
- string too, not only copied string.
- [ruby-core:62842] [Bug #9882]
+ * pack.c: Ditto.
-Fri May 30 10:22:21 2014 Mark Lorenz <mlorenz@covermymeds.com>
+ * internal.h: Ditto.
+ (INTEGER_PACK_MSWORD_FIRST): Defined.
+ (INTEGER_PACK_LSWORD_FIRST): Ditto.
+ (INTEGER_PACK_MSBYTE_FIRST): Ditto.
+ (INTEGER_PACK_LSBYTE_FIRST): Ditto.
+ (INTEGER_PACK_NATIVE_BYTE_ORDER): Ditto.
+ (INTEGER_PACK_LITTLE_ENDIAN): Ditto.
+ (INTEGER_PACK_BIG_ENDIAN): Ditto.
- * lib/erb.rb (result): [DOC] no longer accepts a Proc, as
- Kernel.eval does not. [fix GH-619]
+Fri Jun 7 22:10:50 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri May 30 07:25:46 2014 Tanaka Akira <akr@fsij.org>
+ * lib/rubygems/specification.rb (Gem::Specification#to_yaml):
+ use Gem::NoAliasYAMLTree.create instead of Gem::NoAliasYAMLTree.new
+ to suppress deprecated warnings.
- * ext/-test-/dir: Dir#fileno implemented.
+Fri Jun 7 21:39:39 2013 Tanaka Akira <akr@fsij.org>
- * test/lib/minitest/unit.rb (find_fds): Don't return the fd used to
- scan /proc/$$/fd.
+ * bignum.c (rb_integer_pack): Renamed from rb_int_export.
+ (rb_integer_unpack): Renamed from rb_int_import.
-Fri May 30 04:48:00 2014 Eric Wong <e@80x24.org>
+ * internal.h, pack.c: Follow the above change.
- * parse.y (rb_gc_mark_parser): remove, empty since r8758
- * internal.h: ditto, not usable from extensions since 2.0.0
- * gc.c (gc_mark_roots): remove checkpoint for parser
+Fri Jun 7 21:05:26 2013 Tanaka Akira <akr@fsij.org>
-Thu May 29 23:27:50 2014 Rei Odaira <Rei.Odaira@gmail.com>
+ * bignum.c (integer_format_loop_setup): Extracted from rb_int_export
+ and rb_int_import.
- * signal.c (ruby_signal): should return either `old.sa_sigaction`
- or `old.sa_handler`, depending on whether `SA_SIGINFO` is set in
- `old.sa_flags`, because they may not be a union.
- [ruby-core:62836] [Bug #9878]
+Fri Jun 7 19:48:38 2013 Tanaka Akira <akr@fsij.org>
-Thu May 29 23:11:20 2014 Tanaka Akira <akr@fsij.org>
+ * bignum.c (validate_integer_format): Extracted from rb_int_export and
+ rb_int_import.
- * io.c (pipe_open): Close pipes when rb_execarg_fixup() raises
- an exception.
- (rb_execarg_fixup_v): New function.
+Fri Jun 7 19:23:15 2013 Tanaka Akira <akr@fsij.org>
-Thu May 29 22:18:57 2014 Tanaka Akira <akr@fsij.org>
+ * bignum.c (rb_absint_size): Use numberof.
+ (rb_int_export): Ditto.
- * test/lib/minitest/unit.rb (capture_subprocess_io): Close fds.
+Fri Jun 7 18:58:56 2013 Tanaka Akira <akr@fsij.org>
-Thu May 29 19:47:08 2014 Tanaka Akira <akr@fsij.org>
+ * internal.h (numberof): Gathered from various files.
- * io.c (rb_io_s_pipe): Close pipes if io_encoding_set() raises an
- exception.
- (io_encoding_set_v): New function.
+ * array.c, math.c, thread_pthread.c, iseq.c, enum.c, string.c, io.c,
+ load.c, compile.c, struct.c, eval.c, gc.c, parse.y, process.c,
+ error.c, ruby.c: Remove the definitions of numberof.
-Thu May 29 19:42:49 2014 Tanaka Akira <akr@fsij.org>
+Fri Jun 7 18:24:39 2013 Tanaka Akira <akr@fsij.org>
- * lib/csv.rb (CSV.open): Close the opened file when an exception
- occur.
+ * bignum.c (rb_absint_size): Declare a variable, i, just before used
+ to suppress a warning.
+ (rb_int_export): Ditto.
-Thu May 29 19:31:10 2014 Tanaka Akira <akr@fsij.org>
+Fri Jun 7 17:41:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/openssl/lib/openssl/ssl.rb (SSLServer#accept): Close a socket
- if any exception occur.
+ * bignum.c (rb_absint_size): explicit cast to BDIGIT to avoid implicit
+ 64 bit to 32 bit shortening warning
+ * bignum.c (rb_int_export): ditto
+ * bignum.c (int_import_push_bits): ditto
-Thu May 29 05:05:29 2014 Eric Wong <e@80x24.org>
+Fri Jun 7 17:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * include/ruby/ruby.h: Hide Symbol internals.
- (struct RSymbol): moved to internal.h
- (RSYMBOL): ditto
+ * internal.h (RCLASS_SUPER): use descriptive variable name
+ * internal.h (RCLASS_SET_SUPER): ditto
-Thu May 29 00:28:56 2014 Tanaka Akira <akr@fsij.org>
+Fri Jun 7 13:25:27 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/socket/unixsocket.c (rsock_init_unixsock): Open a socket
- after path length check.
- This fixes a fd leak by TestSocket_UNIXSocket#test_too_long_path.
+ * ext/json/fbuffer/fbuffer.h (fbuffer_append_str): change the place of
+ RB_GC_GUARD. it should be after the object is used.
-Wed May 28 23:04:35 2014 Tanaka Akira <akr@fsij.org>
+Fri Jun 7 13:22:43 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/ruby/test_io.rb (test_flush_in_finalizer1): Use
- ObjectSpace.each_object to close files.
- GC.start is not reliable.
+ * gc.c (before_gc_sweep): noinline can also avoid the segv instead of
+ -O0 of r41084. this way is expected less slow.
-Wed May 28 19:00:31 2014 Tanaka Akira <akr@fsij.org>
+Fri Jun 7 11:45:42 2013 Kenta Murata <mrkn@cookpad.com>
- * lib/net/imap.rb (Net::IMAP#initialize): Close the opened socket when
- any exception occur.
- This fixes a fd leak by IMAPTest#test_imaps_post_connection_check
- which start_tls_session() raises an exception.
+ * rational.c (numeric_quo): move num_quo in numeric.c to numeric_quo
+ in rational.c to refer canonicalization state for mathn support.
+ [ruby-core:41575] [Bug #5736]
-Wed May 28 18:06:13 2014 Tanaka Akira <akr@fsij.org>
+ * numeric.c (num_quo): ditto.
- * ext/openssl/ossl_ssl.c (ossl_ssl_close): Fix sync_close to work
- when SSL is not started.
- This fix the fd leak by test_https_proxy_authentication in
- test/net/http/test_https_proxy.rb.
+ * test/test_mathn.rb: add a test for the change at r41109.
-Wed May 28 10:29:28 2014 Eric Wong <e@80x24.org>
+Fri Jun 7 11:41:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c (rb_vm_living_threads_foreach): remove function
- [ruby-core:62745]
- * thread.c (terminate_i): remove
- * thread.c (terminate_all): implement (inlines old terminate_i)
- * thread.c (rb_thread_terminate_all): use terminate_all
- * thread.c (rb_thread_fd_close_i): remove
- * thread.c (rb_thread_fd_close): iterate inline
- * thread.c (thread_list_i): remove
- * thread.c (rb_thread_list): iterate inline
- * thread.c (rb_thread_atfork_internal): iterate inline
- * thread.c (terminate_atfork_i): update types to remove casts
- * thread.c (terminate_atfork_before_exec_i): ditto
- * thread.c (struct thgroup_list_params): remove definition
- * thread.c (thgroup_list_i): remove
- * thread.c (thgroup_list): iterate inline
- * thread.c (check_deadlock_i): remove
- * thread.c (debug_deadlock_check): implement (inlines check_deadlock_i)
- * thread.c (debug_i): remove
- * thread.c (rb_check_deadlock): iterate inline
- * vm.c (vm_mark_each_thread_func): remove
- * vm.c (rb_vm_mark): iterate inline
- * vm_core.h (rb_vm_living_threads_remove): remove
- * vm_trace.c (clear_trace_func_i): remove
- * vm_trace.c (rb_clear_trace_func): iterate inline
+ * configure.in: revert r41106. size_t may not be unsigned
-Wed May 28 09:30:51 2014 Eric Wong <e@80x24.org>
+ * bignum.c (rb_absint_size_in_word, rb_int_export, rb_int_import): use
+ NUM2SIZET() and SIZET2NUM() already defined in ruby/ruby.h.
- * signal.c (signal_exec): ignore immediate cmd for SIG_IGN
- * signal.c (trap_handler): set cmd to true for SIG_IGN
- * signal.c (trap): handle nil and true values for oldcmd
- [Bug #9835]
+Fri Jun 7 11:28:37 2013 Masaya Tarui <tarui@ruby-lang.org>
-Wed May 28 01:02:54 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c: use oldgen bitmap as initial mark bitmap when major gc.
+ so can skip oldgen bitmap check around mark & sweep.
+ * gc.c (slot_sweep_body): change scan algorithm for performance:
+ from object's pointer base to bitmap one.
- * lib/tempfile.rb (Tempfile#inspect): Show "(closed)" if the tempfile
- is closed.
+Fri Jun 7 11:25:56 2013 Masaya Tarui <tarui@ruby-lang.org>
-Wed May 28 00:38:09 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c: introduce oldgen bitmap for preparing performance tuning.
- * test/lib/minitest/unit.rb: Use Tempfile#close! instead of
- Tempfile#unlink to close file descriptors.
+Fri Jun 7 11:20:57 2013 Masaya Tarui <tarui@ruby-lang.org>
- * test/openssl/test_config.rb: Ditto.
+ * gc.c (MARKED_IN_BITMAP, MARK_IN_BITMAP, CLEAR_IN_BITMAP): bring
+ bitmap macros in one place, and introduce BITMAP_BIT.
- * test/ruby/test_io.rb: Ditto.
+Fri Jun 7 11:18:35 2013 Masaya Tarui <tarui@ruby-lang.org>
-Wed May 28 00:06:18 2014 Tanaka Akira <akr@fsij.org>
+ * array.c (ary_new): change order of allocation in order
+ to remove FL_OLDGEN operation.
- * lib/net/ftp.rb (transfercmd): Close TCP server socket even if an
- exception occur.
+Fri Jun 7 11:16:28 2013 Masaya Tarui <tarui@ruby-lang.org>
-Tue May 27 23:50:07 2014 Tanaka Akira <akr@fsij.org>
+ * tool/rdocbench.rb: add gc total time information.
- * lib/cgi/core.rb: Use Tempfile#close! instead of Tempfile#unlink
- to close file descriptors.
+Fri Jun 7 10:12:01 2013 Koichi Sasada <ko1@atdot.net>
-Tue May 27 23:06:46 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: remove "Sunny" terminology.
+ "Sunny" doesn't mean antonym of "Shady" (questionable, doubtful, etc).
+ Instead of "Sunny", use "non-shady" or "normal".
- * parse.y (parser_number_literal_suffix): refine error message for
- extra dot and digits.
+Fri Jun 7 09:29:33 2013 Kenta Murata <mrkn@cookpad.com>
-Tue May 27 22:44:20 2014 Tanaka Akira <akr@fsij.org>
+ * bignum.c (rb_int_import): explicitly casting BDIGIT_DBL to BDIGIT
+ to prevent warning.
- * test/rexml: Avoid fd leaks.
+Fri Jun 7 07:29:33 2013 Tanaka Akira <akr@fsij.org>
-Tue May 27 22:24:25 2014 Kouhei Sutou <kou@cozmixng.org>
+ * internal.h (rb_int_export): countp argument is split into
+ wordcount_allocated and wordcount.
- * test/rexml/test_document.rb: Indent.
+ * bignum.c (rb_int_export): Follow the above change.
-Tue May 27 22:15:29 2014 Kouhei Sutou <kou@cozmixng.org>
+ * pack.c (pack_pack): Ditto.
- * test/rexml/test_document.rb: Wrap by REXMLTests module.
+Fri Jun 7 07:17:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Tue May 27 22:11:10 2014 Kouhei Sutou <kou@cozmixng.org>
+ * NEWS: describe a compatibility issue of Numeric#quo
+ introduced at r41109.
- * test/rexml/test_encoding_2.rb: Remove a needless file.
+Fri Jun 7 07:15:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Tue May 27 22:10:30 2014 Kouhei Sutou <kou@cozmixng.org>
+ * NEWS: fix style.
- * test/rexml/test_contrib.rb: Indent.
+Fri Jun 7 06:48:17 2013 Benoit Daloze <eregontp@gmail.com>
-Tue May 27 21:28:16 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * numeric.c: remove unused ID id_to_r introduced in r41109.
- * ext/socket/ifaddr.c (ifaddr_inspect_flags): support IFF_SIMPLEX.
+Fri Jun 7 06:15:31 2013 Tanaka Akira <akr@fsij.org>
-Tue May 27 21:03:03 2014 Kouhei Sutou <kou@cozmixng.org>
+ * bignum.c (rb_int_import): New function.
+ (int_import_push_bits): Ditto.
- * test/rexml/: Use REXMLTests as wrapping module for REXML tests.
- I avoid using the same module for library in test because
- it provides "include REXML" environment in test. Normally,
- users don't use REXML on "include REXML" environment. So I
- don't want to write tests on "include REXML" environment.
+ * internal.h (rb_int_import): Declared.
-Tue May 27 20:59:37 2014 Kouhei Sutou <kou@cozmixng.org>
+ * pack.c (pack_unpack): Use rb_int_import for BER compressed integer.
- * test/rexml/test_comment.rb: Remove needless REXML module wrapping.
+Thu Jun 6 22:24:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Tue May 27 20:56:49 2014 Kouhei Sutou <kou@cozmixng.org>
+ * numeric.c (num_quo): Use to_r method to convert the receiver to
+ rational. [ruby-core:41575] [Bug #5736]
- * test/openssl/test_pkcs7.rb: Fix inverted expected and actual values.
+ * test/ruby/test_numeric.rb: add a test for the above change.
-Tue May 27 20:26:06 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Jun 6 20:40:17 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_io.rb (test_flush_in_finalizer1): some opened fds are
- remain before GC, so unlink the tempfile is failed.
+ * configure.in: Invoke RUBY_REPLACE_TYPE for size_t.
+ Don't invoke RUBY_CHECK_PRINTF_PREFIX for size_t to avoid conflict
+ with RUBY_REPLACE_TYPE.
-Tue May 27 19:07:26 2014 Tanaka Akira <akr@fsij.org>
+ * internal.h (rb_absint_size): Declared.
+ (rb_absint_size_in_word): Ditto.
+ (rb_int_export): Ditto.
- * io.c (rb_io_autoclose_p): Don't raise on frozen IO.
+ * bignum.c (rb_absint_size): New function.
+ (rb_absint_size_in_word): Ditto.
+ (int_export_fill_dd): Ditto.
+ (int_export_take_lowbits): Ditto.
+ (rb_int_export): Ditto.
- * test/lib/minitest/unit.rb: IO#autoclose? may raise IOError.
+ * pack.c (pack_pack): Use rb_int_export for BER compressed integer.
-Tue May 27 19:01:49 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Jun 6 19:31:33 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * test/openssl/test_pair.rb: Modify TestSSL#test_read_and_write
- to handle partial sysreads. [Bug #7398][ruby-core:49563]
- * test/openssl/test_ssl.rb: ditto.
+ * ext/date/date_core.c: fixed coding error [ruby-core:55337].
+ reported by Riley Lynch.
-Tue May 27 18:46:23 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Jun 6 14:16:37 2013 Narihiro Nakamura <authornari@gmail.com>
- * test/openssl/test_pkcs7.rb: Add tests for PKCS7#type= and add_data.
- [Feature #7399][ruby-core:49565]
+ * ext/objspace/object_tracing.c: rename allocation_info to
+ lookup_allocation_info. At times I confused "struct
+ allocation_info" with "function allocation_info".
-Tue May 27 17:45:09 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Jun 6 13:57:06 2013 Narihiro Nakamura <authornari@gmail.com>
- * test/openssl/test_hmac.rb (test_binary_update): Added Test for
- HMAC signing with UTF-8 String. [Bug #7512][ruby-core:50559]
+ * ext/objspace/object_tracing.c: allocation_info function isn't
+ called by any other file.
-Tue May 27 17:10:14 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Jun 6 09:41:00 2013 Kenta Murata <mrkn@cookpad.com>
- * test/runner.rb: fixed randomly test failure.
- [Bug #6573][ruby-core:45563]
+ * numeric.c (num_quo): should return a Float for a Float argument.
+ [ruby-dev:44710] [Bug #5515]
-Tue May 27 16:58:12 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * test/ruby/test_fixnum.rb: Add an assertion for the above change.
- * test/test_timeout.rb (test_timeout): inverted test condition.
- [Bug #8523]
+ * test/ruby/test_bignum.rb: ditto.
-Tue May 27 12:24:22 2014 Tanaka Akira <akr@fsij.org>
+Thu Jun 6 00:59:44 2013 Masaya Tarui <tarui@ruby-lang.org>
- * test/lib/minitest/unit.rb: Show leaked file descriptors.
+ * gc.c (gc_mark): get rid of pushing useless objects.
+ * gc.c (rgengc_rememberset_mark): bypass gc_mark() in order to push
+ sunny old object at minor gc.
+ * gc.c (gc_mark_children): move sunny old check to gc_mark().
+ * gc.c (rgengc_check_shady): remove DEMOTE that already unnecessary.
+ * gc.c (rb_gc_writebarrier): ditto.
-Tue May 27 11:12:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ change sunny old check point in order to save mark stack and
+ remove unnatural rest_sweep & demote.
- * io.c (rb_io_fileno, rb_io_inspect): non-modification does not
- error on frozen IO. [ruby-dev:48241] [Bug #9865]
+Thu Jun 6 00:52:42 2013 Masaya Tarui <tarui@ruby-lang.org>
-Tue May 27 00:00:21 2014 yui-knk <spiketeika@gmail.com>
+ * gc.c (rgengc_rememberset_mark): change scan algorithm for performance:
+ from object's pointer base to bitmap one.
- * insns.def (defineclass): fix typo in the instruction comment.
- [fix GH-618]
+Thu Jun 6 00:30:04 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Mon May 26 16:33:15 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * win32/win32.c (NET_LUID): define it on MinGW32.
+ mingw-w64 has NET_LUID but mingw32 (mingw.org) still doesn't have
+ NET_LUID. reported by taco on IRC
- * test/ruby/test_file.rb: skip the test of atime on Windows, because
- Windows delays updating atime about 1 hour.
- see more details:
- http://msdn.microsoft.com/en-us/library/windows/desktop/ms724290%28v=vs.85%29.aspx
+Thu Jun 6 00:05:08 2013 Akinori MUSHA <knu@iDaemons.org>
-Mon May 26 12:25:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c (String#b): Allow code range scan to happen later so
+ ascii_only? on a result string returns the correct value.
+ [ruby-core:55315] [Bug #8496]
- * lib/optionparser.rb, lib/optparse.rb (OptParse): aliases.
- [ruby-core:62751] [Feature #9864]
+Wed Jun 5 22:40:42 2013 Shugo Maeda <shugo@ruby-lang.org>
-Mon May 26 07:59:34 2014 Tanaka Akira <akr@fsij.org>
+ * lib/net/imap.rb (capability_response): should ignore trailing
+ spaces. Thanks, Peter Kovacs. [ruby-core:55024] [Bug #8415]
- * test/lib/minitest/unit.rb: Show Finished threads line-by-line.
+ * test/net/imap/test_imap_response_parser.rb: related test.
-Mon May 26 01:39:02 2014 Zachary Scott <e@zzak.io>
+Wed Jun 5 21:17:08 2013 Tanaka Akira <akr@fsij.org>
- * lib/csv.rb: Reject nil as data source for CSV.new, patch by @Peeja.
- [Fixes GH-580] https://github.com/ruby/ruby/pull/580
+ * bignum.c (big_fdiv): Use nlz() instead of bdigbitsize().
+ (bdigbitsize): Removed.
-Mon May 26 01:07:51 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 5 20:32:00 2013 Kenta Murata <mrkn@cookpad.com>
- * test/lib/minitest/unit.rb: Show leaked threads and tempfiles
- line-by-line.
+ * include/ruby/ruby.h: fix alignment in comment.
-Sun May 25 23:02:06 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 5 20:05:29 2013 Tanaka Akira <akr@fsij.org>
- * test/lib/minitest/unit.rb (MiniTest::Assertions#diff): Remove
- tempfiles.
+ * random.c (int_pair_to_real_inclusive): Add a cast to BDIGIT.
+ (random_load): Fix shift width for fixnums.
+ Re-implement bignum extraction without ifdefs.
-Sun May 25 22:42:27 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 5 15:26:10 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/lib/minitest/unit.rb: Check tempfile leak for each test class.
+ * gc.c (before_gc_sweep): don't optimize it to avoid segv on Ubuntu
+ 10.04 gcc 4.4.
+ http://u32.rubyci.org/~chkbuild/ruby-trunk/log/20130527T190301Z.diff.html.gz
-Sun May 25 20:31:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 5 09:46:46 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * configure.in (ac_cv_func_{getcontext,setcontext}): do not
- disable ucontext.h entirely, but disable use of functions only.
- `ucontext_t` is necessary in the signal handler now.
+ * test/fileutils/test_fileutils.rb (TestFileUtils#test_mkdir): add
+ EACCES for Windows.
-Sun May 25 20:00:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 5 08:13:37 2013 Tanaka Akira <akr@fsij.org>
- * signal.c (check_stack_overflow): revert part of r46100, the
- previous condition was correct, and fix compilation error on
- other architecture linux. [ruby-core:62746] [Bug #9862]
+ * bignum.c (rb_big_pow): Don't need to multiply SIZEOF_BDIGITS.
+ Use nlz instead of bitlength_bdigit.
+ (bitlength_bdigit): Removed.
-Sun May 25 17:09:13 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 5 07:14:18 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * test/lib/minitest/unit.rb: Less ObjectSpace.each_object(Tempfile)
- invocation.
+ * ext/date/date_core.c (d_lite_cmp, d_lite_equal): simplified.
-Sun May 25 16:54:06 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 5 07:07:01 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * test/lib/minitest/unit.rb: Use Thread.list instead of
- ObjectSpace.each_object(Thread).
+ * ext/date/date_core.c: fixed a bug [ruby-core:55295]. reported
+ by Riley Lynch.
-Sun May 25 15:53:54 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 5 06:44:08 2013 Eric Hodel <drbrain@segment7.net>
- * lib/rinda/ring.rb (Rinda::RingServer#shutdown): Join the killed
- threads.
+ * lib/rubygems: Update to RubyGems 2.0.3
-Sun May 25 15:26:17 2014 Tanaka Akira <akr@fsij.org>
+ * test/rubygems: Tests for the above.
- * lib/webrick/utils.rb: Override the inspect method of the thread
- used in WEBrick::Utils::TimeoutHandler.
+ * NEWS: Added RubyGems 2.0.3 note.
-Sun May 25 14:22:30 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 5 06:35:15 2013 Eric Hodel <drbrain@segment7.net>
- * test/openssl: Join threads.
+ * doc/marshal.rdoc: Add description of Marshal format.
-Sun May 25 12:46:47 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 5 01:16:09 2013 Benoit Daloze <eregontp@gmail.com>
- * error.c (rb_bug_context): new function to report bug with
- context.
+ * array.c (Array#+): fix documentation example.
+ Patch by Logan Serman. [Fixes GH-324]
- * vm_dump.c (rb_vm_bugreport): accepts `ucontext_t` argument to
- dump machine registers. based on [GH-584].
+Wed Jun 5 00:21:54 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * signal.c (sigbus, sigsegv): dump machine registers if available.
+ * lib/irb/lc/ja/help-message: update help messages.
+ following r41028. [ruby-dev:46707] [Feature #7510]
-Sun May 25 12:32:42 2014 Tanaka Akira <akr@fsij.org>
+Wed Jun 5 00:09:32 2013 Tanaka Akira <akr@fsij.org>
- * test/lib/minitest/unit.rb: Sort leaked threads and tempfiles.
+ * marshal.c (r_object0): Generalize a round up expression.
+ Use BDIGIT instead of int.
-Sun May 25 12:15:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jun 4 23:44:02 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * signal.c (check_stack_overflow): fix condition to use ucontext
- register, mcontext_t dereference, and its member names, on Mac
- OS X.
+ * object.c (rb_Hash): fix docs. patched by Stefan Sch"ussler.
+ [ruby-core:55299] [Bug #8487]
-Sun May 25 11:58:26 2014 Zachary Scott <e@zzak.io>
+Tue Jun 4 23:16:49 2013 Benoit Daloze <eregontp@gmail.com>
- * enumerator.c: [DOC] Fix example to show Enumerator#peek behavior
- Patch by Erik Hollembeak [Bug #9814]
+ * lib/irb/completion.rb: Use %w literal construction for long lists.
+ Patch by Dave Goodchild. [Fixes GH-299]
-Sun May 25 11:56:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jun 4 23:08:42 2013 Benoit Daloze <eregontp@gmail.com>
- * vsnprintf.c (BSD_vfprintf): fix string width when precision is
- given. as the result of `memchr` is NULL or its offset from the
- start cannot exceed the size, the comparison was always false.
- [ruby-core:62737] [Bug #9861]
+ * ext/objspace/objspace.c: improve wording and remove duplicated comment.
+ Based on a patch by Dave Goodchild. [Fixes GH-299]
-Sun May 25 11:32:42 2014 Zachary Scott <e@zzak.io>
+Tue Jun 4 18:41:47 2013 Tanaka Akira <akr@fsij.org>
- * lib/yaml.rb: Remove Psych::EngineManager [Bug #8344]
- * test/psych/*: ditto.
+ * bignum.c (bitlength_bdigit): Fix an off-by-one error.
-Sun May 25 10:34:15 2014 Zachary Scott <e@zzak.io>
+Tue Jun 4 15:30:00 2013 Kenta Murata <mrkn@cookpad.com>
- * doc/regexp.rdoc: [DOC] Clarify whitespace matching by @allolex
- [Fixes GH-606] https://github.com/ruby/ruby/pull/606
+ * ext/bigdecimal/lib/bigdecimal/util.rb (Float#to_d): fix the number
+ of figures. Patch by Vipul A M <vipulnsward@gmail.com>.
+ https://github.com/ruby/ruby/pull/323 fix GH-323
-Sun May 25 10:19:34 2014 Zachary Scott <e@zzak.io>
+ * test/bigdecimal/test_bigdecimal_util.rb: fix for the above change.
- * enum.c: [DOC] Use #find in example to clarify alias by @rachellogie
- Patch submitted via documenting-ruby/ruby#34
+Tue Jun 4 00:44:27 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Sun May 25 10:16:43 2014 Zachary Scott <e@zzak.io>
+ * test/fileutils/test_fileutils.rb (TestFileUtils#test_mkdir): add
+ EEXIST for Linux. (suggested by nurse)
- * cont.c: [DOC] Fix rdoc in example for Fiber#transfer by @majjoha
- Patch submitted via documenting-ruby/ruby#33
+Mon Jun 3 23:58:19 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Sun May 25 10:01:11 2014 Zachary Scott <e@zzak.io>
+ * lib/fileutils.rb (FileUtils.rmdir): use remove_tailing_slash.
+ * test/fileutils/test_fileutils.rb: test for above.
- * lib/irb.rb: [DOC] Fixed syntax error in example by @jasdeepsingh.
- Patch submitted via documenting-ruby/ruby#32
+Mon Jun 3 23:47:55 2013 Tanaka Akira <akr@fsij.org>
-Sun May 25 09:58:02 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * bignum.c (bitlength_bdigit): New function.
+ (rb_big_pow): Use bitlength_bdigit instead of ffs.
- * test/fileutils/test_fileutils.rb (test_chown_R): Add tests for
- chown_R. [Feature #9383][ruby-core:59641]
+Mon Jun 3 23:11:19 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
-Sun May 25 09:57:09 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/fileutils.rb: fix behavior when mkdir/mkdir_p accepted "/".
+ * test/fileutils/test_fileutils.rb: add test for above change.
+ Patched by Mitsunori Komatsu. [GH-319]
- * test/fileutils/test_fileutils.rb: Added recursively chown tests.
- [Feature #9303][ruby-core:59325]
+Mon Jun 3 19:02:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun May 25 09:41:56 2014 Zachary Scott <e@zzak.io>
+ * dir.c (is_hfs): use the file descriptor instead of a path.
- * class.c: [DOC] Fixed grammar and examples of instance_methods.
- By @alex-frost via documenting-ruby/ruby#31
+Mon Jun 3 07:15:17 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Sun May 25 09:40:44 2014 Tanaka Akira <akr@fsij.org>
+ * configure.in: removes AC_CHECK_FUNCS(readdir_r). readdir_r()
+ is only used from dir.c and it doesn't need readdir_r().
+ * configure.in (SIZEOF_STRUCT_DIRENT_TOO_SMALL): removed. It is
+ only used for readdir_r.
+ * dir.c: removes NAME_MAX_FOR_STRUCT_DIRENT. It is not right way
+ to detect maximum length of path len. POSIX require to use
+ fpathconf(). IOW, it might have lead to make a vulnerability
+ using stack smashing. Moreover, readdir() works enough for our
+ usage.
+ * dir.c (READDIR): removes an implementation which uses
+ readdir_r() and parenthesize in a macro body correctly.
+ * dir.c (dir_read): removes IF_HAVE_READDIR_R(DEFINE_STRUCT_DIRENT
+ entry), it is used only for readdir_r().
+ * dir.c (dir_each): ditto.
+ * dir.c (glob_helper): ditto.
- * test/lib/minitest/unit.rb: Show leaked threads and tempfiles.
+ * dir.c (READDIR): removes entry and dp argument.
+ * dir.c (dir_read): adjust for the above change.
+ * dir.c (dir_each): ditto.
+ * dir.c (glob_helper): ditto.
-Sun May 25 08:54:38 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Jun 3 03:40:29 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/openssl/test_partial_record_read.rb: Testing read_nonblock on
- a partial TLS record results in IO::WaitReadable by @mohamedhafez.
- [fix GH-547]
+ * vm_insnhelper.c (vm_yield_setup_block_args): partially revert r41019.
+ The code is not useless.
-Sun May 25 08:43:16 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Jun 3 01:25:25 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * lib/logger.rb: refactored to include Logger::Period.
+ * test/socket/test_sockopt.rb: change test name. follow r41037.
-Sun May 25 06:50:19 2014 Zachary Scott <e@zzak.io>
+Mon Jun 3 01:08:43 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * vm_eval.c: [DOC] Improve instance_eval description when given a
- block or String arguments. By @nathanl via documenting-ruby/ruby#28
+ * test/rinda/test_rinda.rb: rename functions introduced in r41009.
-Sun May 25 06:29:39 2014 Zachary Scott <e@zzak.io>
+Sun Jun 2 23:33:42 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * array.c: [DOC] Clarify default argument for Array.new.
- By @Elffers [Fixes GH-610]
+ * enc/trans/japanese_euc.trans, test/ruby/test_transcode.rb,
+ tool/transcode-tblgen.rb: change EUC-JP-2004 to EUC-JIS-2004.
+ This is follow up to changes in r41024.
-Sat May 24 22:37:20 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sun Jun 2 22:44:42 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * array.c: [DOC] Add more documents to shuffle! and shuffle.
- Contributed by @JuanitoFatas [ci skip][fix GH-612]
+ * ext/socket/option.c: rename functions introduced in r41009
+ s/ip/ipv4/g because they are ipv4 functions.
+ (there's a policy that the name "ip" is for methods which supports
+ both ipv4 and ipv6)
-Sat May 24 22:28:55 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sun Jun 2 16:15:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/lib/minitest/.document: removed unused configuration.
+ * dln_find.c (dln_find_exe, dln_find_file): remove deprecated
+ non-reentrant functions.
-Sat May 24 19:08:47 2014 Tanaka Akira <akr@fsij.org>
+Sun Jun 2 15:04:35 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/lib/minitest/spec.rb: Unused file removed.
+ * lib/cgi/util.rb, lib/erb.rb: Use String#b [Feature #8394] by znz
- * test/lib/minitest/autorun.rb: Don't require minitest/spec.
+Sun Jun 2 14:10:21 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/lib/minitest/benchmark.rb: Ditto.
+ * lib/irb/lc/help-message: Apply english updates for irb --help #7510
-Sat May 24 18:45:30 2014 Tanaka Akira <akr@fsij.org>
+Sun Jun 2 12:03:58 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/benchmark/test_benchmark.rb: Use test/unit.
+ * range.c: Fix rdoc on Range#bsearch [Bug #8242] [ruby-core:54143]
-Sat May 24 16:20:59 2014 Eric Wong <e@80x24.org>
+Sun Jun 2 02:08:37 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * process.c (proc_getgroups, proc_setgroups): use ALLOCV_N
- [Bug #9856]
+ * enc/euc_jp.c: fix typo: the name of EUC-JIS-2004.
-Sat May 24 15:49:39 2014 Tanaka Akira <akr@fsij.org>
+Sat Jun 1 23:17:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * test/lib/minitest/unit.rb (parallelize_me!): Removed.
- This fixes the line-by-line structure of the test result in verbose
- mode. [ruby-core:54905]
+ * vm_eval.c (rb_mod_module_eval): mention in docs that arguments passed
+ to the method are passed to the block
- * test/lib/minitest/parallel_each.rb: Removed.
+Sat Jun 1 17:58:13 2013 Akinori MUSHA <knu@iDaemons.org>
- * test/minitest/test_minitest_mock.rb: Don't call parallelize_me!.
+ * lib/set.rb (Set#freeze, taint, untaint): Save a "self" by
+ utilizing super returning self, and add tests while at it.
- * test/minitest/test_minitest_spec.rb: Ditto.
+Sat Jun 1 17:24:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/minitest/test_minitest_unit.rb: Ditto.
- Tests for parallel feature removed.
+ * compile.c (iseq_set_arguments): not a simple single argument if any
+ keyword arguments exist. [ruby-core:55203] [Bug #8463]
-Sat May 24 15:29:10 2014 Tanaka Akira <akr@fsij.org>
+ * vm_insnhelper.c (vm_yield_setup_block_args): split single parameter
+ if any keyword arguments exist, and then extract keyword arguments.
+ [ruby-core:55203] [Bug #8463]
- * test/lib/minitest/hell.rb: Unused file removed.
+Sat Jun 1 11:16:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/lib/minitest/pride.rb: Ditto.
+ * error.c (rb_exc_new_cstr): rename from rb_exc_new2.
-Sat May 24 15:05:32 2014 yui-knk <spiketeika@gmail.com>
+ * error.c (rb_exc_new_str): rename from rb_exc_new3.
- * enumerator.c (yielder_yield_push): Insert a break after the
- method return value. [fix GH-617]
+Sat Jun 1 10:13:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat May 24 14:59:12 2014 Tanaka Akira <akr@fsij.org>
+ * string.c (rb_str_new[2-5], rb_{tainted,usascii}_str_new2),
+ (rb_str_buf_new2): remove old interfaces.
- * test/lib/minitest: Remove comments not appropriate now.
+Sat Jun 1 08:00:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/minitest: Ditto.
+ * ext/zlib/zlib.c (gzfile_read, gzfile_read_all, gzfile_getc),
+ (gzreader_gets): check EOF. [ruby-core:55220] [Bug #8467]
-Sat May 24 14:02:04 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Jun 1 07:32:15 2013 Tanaka Akira <akr@fsij.org>
- * NEWS: added minitest changes.
+ * bignum.c: Use BDIGIT type for hbase.
-Sat May 24 13:42:46 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Sat Jun 1 02:37:35 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/lib/test/unit/test-unit.gemspec: removed needless gemspec file.
+ * ext/socket/option.c (sockopt_s_byte): constructor of the sockopt
+ whose value's is byte.
-Sat May 24 09:39:06 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/socket/option.c (sockopt_byte): getter for above.
- * defs/default_gems: removed minitest entry.
+ * ext/socket/option.c (inspect_byte): inspect for above.
-Sat May 24 06:17:33 2014 Ryan Davis <ryand-ruby@zenspider.com>
+ * ext/socket/option.c (sockopt_s_ip_multicast_loop): constructor of
+ the sockopt whose optname is IP_MULTICAST_LOOP.
- * lib/minitest: minitest 4.7.5 removed. Need to support proper
- gem packaging / installation before minitest 5 can be added.
+ * ext/socket/option.c (sockopt_ip_multicast_loop): getter for above.
-Sat May 24 05:54:06 2014 Tanaka Akira <akr@fsij.org>
+ * ext/socket/option.c (sockopt_s_ip_multicast_ttl): constructor of
+ the sockopt whose optname is IP_MULTICAST_TTL.
- * ext/socket/mkconstants.rb: More constants
+ * ext/socket/option.c (sockopt_ip_multicast_ttl): getter for above.
-Sat May 24 00:25:34 2014 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+ * ext/socket/option.c (sockopt_inspect): use above.
- * NEWS: add information of incompatibility about Prime.prime?
- * lib/prime.rb: fix docs.
+Sat Jun 01 01:50:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Fri May 23 21:36:28 2014 Josh Goebel <dreamer3@gmail.com>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_power): use rb_dbl2big
+ to convert a double value to a Bignum.
- * net/protocol.rb (using_each_crlf_line): fix SMTP dot-stuffing
- for messages not ending with a new-line.
- [ruby-core:61441] [Bug #9627] [fix GH-616]
+Sat Jun 1 00:19:50 2013 Tanaka Akira <akr@fsij.org>
-Fri May 23 03:48:08 2014 Eric Wong <e@80x24.org>
+ * bignum.c (calc_hbase): Make hbase the maximum power of base
+ representable in BDIGIT.
- * gc.c (rb_free_m_tbl): mark function as static
+Fri May 31 23:56:13 2013 Tanaka Akira <akr@fsij.org>
- * method.h (rb_free_m_tbl): remove prototype
+ * bignum.c (calc_hbase): Extracted from rb_big2str0.
-Thu May 22 22:58:27 2014 Tanaka Akira <akr@fsij.org>
+Fri May 31 23:22:24 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/mkconstants.rb: More TCP option constants.
- Describe Linux and glibc versions.
+ * bignum.c: Don't hard code SIZEOF_BDIGITS for log_base(hbase).
+ (big2str_orig): hbase_numdigits argument added.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str0): Calculate hbase_numdigits.
-Thu May 22 20:38:10 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Fri May 31 17:57:21 2013 Zachary Scott <zachary@zacharyscott.net>
- * file.c (stat_birthtime): add birthtime support [Feature #9647]
+ * process.c: Improve Process::exec documentation
- * file.c (rb_stat_birthtime): add File::Stat.birthtime
+Fri May 31 17:26:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (rb_file_s_birthtime): add File.birthtime
+ * vm_eval.c (rb_funcallv): add better names of rb_funcall2.
- * file.c (rb_file_birthtime): add File#birthtime
+ * vm_eval.c (rb_funcallv_public): ditto for rb_funcall3.
- * configure.in: check struct stat.st_birthtimespec.
+Fri May 31 17:04:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu May 22 19:38:14 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * array.c (rb_ary_new_capa): add better names of rb_ary_new2.
- * file.c: remove IO::Statfs because of reject. [Feature #9772]
+ * array.c (rb_ary_new_from_args): ditto for rb_ary_new3.
-Thu May 22 14:02:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (rb_ary_new_from_values): ditto for rb_ary_new4.
- * enc/jis/props.kwd: constify character property tables of JIS
- based encodings by perfect hash.
+Fri May 31 16:35:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * enc/euc_jp.c, enc/shift_jis.c: use character property functions.
+ * configure.in (HAVE_ATTRIBUTE_FUNCTION_ALIAS): define to tell if
+ alias attribute is available.
-Wed May 21 12:21:10 2014 Tanaka Akira <akr@fsij.org>
+Fri May 31 16:03:23 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/socket/option.c: Fix compilation error on Android.
- Bionic doesn't define TCP state constants.
+ * object.c, proc.c: s/call_seq/call-seq in rdoc. [Fixes GH-322]
-Wed May 21 11:42:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri May 31 15:56:36 2013 Zachary Scott <zachary@zacharyscott.net>
- * configure.in: workaround for Info.plist to get rid of `dsymutil`
- crash by wrong files in parent directories.
- [ruby-core:62594] [Bug #9840]
+ * ext/openssl/ossl_ssl.c: Add missing paren in rdoc [Fixes GH-321]
-Tue May 20 20:57:34 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Fri May 31 11:58:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_dir.rb (test_glob): added testcase of double
- slash path.
+ * vm_method.c (set_visibility): extract from rb_mod_public(),
+ rb_mod_protected() and rb_mod_private().
-Tue May 20 04:58:54 2014 Tanaka Akira <akr@fsij.org>
+Thu May 30 19:47:42 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * ext/socket/extconf.rb: Don't check fields of struct tcp_info if the
- structure is not available.
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg,
+ vm_callee_setup_arg_complex): consider a hash argument for keyword
+ only when the number of arguments is more than the expected
+ mandatory parameters. [ruby-core:53199] [ruby-trunk - Bug #8040]
-Mon May 19 23:13:33 2014 Tanaka Akira <akr@fsij.org>
+ * test/ruby/test_keyword.rb: update a test for above.
- * ext/socket/option.c (inspect_tcp_info): Permit longer data. (glibc
- 2.7 adds tcpi_rcv_rtt, tcpi_rcv_space and tcpi_total_retrans to
- struct tcp_info.)
+Thu May 30 17:55:04 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon May 19 20:49:07 2014 Tanaka Akira <akr@fsij.org>
+ * process.c: RDoc on Process.spawn
- * ext/socket/option.c (inspect_tcp_info): New function to inspect
- struct tcp_info.
- (sockopt_inspect): Use inspect_tcp_info.
+Thu May 30 00:08:14 2013 Koichi Sasada <ko1@atdot.net>
- * ext/socket/extconf.rb: Check tcp_info related things.
+ * gc.c (gc_profile_enable): rest_sweep() to finish last GC.
+ Profiling record is allocated at first of marking phase.
+ Enable at lazy sweeping may cause an error (SEGV).
- * ext/socket/rubysocket.h: Include netinet/tcp_fsm.h if available.
+Wed May 29 10:33:27 2013 Koichi Sasada <ko1@atdot.net>
-Mon May 19 19:36:39 2014 Tanaka Akira <akr@fsij.org>
+ * hash.c: fix WB bug.
+ (1) Hash's key also needs WB.
+ (2) callback parameter *key and *value of st_update() is not a
+ storage of st_table itself (only local variable). So that
+ OBJ_WRITE() is not suitable, especially for `!existing'.
+ OBJ_WRITTEN() is used instead of OBJ_WRITE().
- * test/dbm/test_dbm.rb: Use Etc.uname.
+Tue May 28 12:31:21 2013 Koichi Sasada <ko1@atdot.net>
- * test/gdbm/test_gdbm.rb: Ditto.
+ * ext/objspace/object_tracing.c: fix a bug reported at
+ "[ruby-core:55182] [ruby-trunk - Bug #8456][Open] Sugfault in Ruby Head"
+ Care about the case TracePoint#path #=> `nil'.
-Mon May 19 16:54:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/object_tracing.c: add two new methods:
+ * ObjectSpace.allocation_class_path(o)
+ * ObjectSpace.allocation_method_id(o)
+ They are not useful for Object.new because they are always
+ "Class" and :new.
+ To trace more useful information, we need to maintain call-tree
+ using call/return hooks, which is implemented by
+ ll-prof <http://sunagae.net/wiki/doku.php?id=software:llprof>
- * ext/etc/etc.c (etc_uname): add support for Windows using
- GetVersionExW(), GetSystemInfo(), and GetComputerNameExW() with
- `ComputerNameDnsHostname`. [Feature #9842]
+ * test/objspace/test_objspace.rb: add a test.
-Mon May 19 16:29:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue May 28 11:30:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_pat_search): advance by byte offset but not by char
- offset. [ruby-core:62669] [Bug #9849]
+ * ext/extmk.rb (extmake): leave makefiles untouched if the content is
+ not changed, to get rid of unnecessary re-linking.
-Mon May 19 14:06:18 2014 Shota Fukumori <her@sorah.jp>
+Tue May 28 03:11:02 2013 Koichi Sasada <ko1@atdot.net>
- * bin/testrb: Removed. Forgot to remove in r45971.
- [Feature #9711] [ruby-core:62620]
+ * ext/objspace/gc_hook.c, ext/objspace/objspace.c: add new methods to
+ hook GC invocation.
+ * ObjectSpace.after_gc_start_hook=(proc)
+ * ObjectSpace.after_gc_end_hook=(proc)
-Sun May 18 16:42:08 2014 Tanaka Akira <akr@fsij.org>
+ Note that hooks are not kicked immediately. Procs are kicked
+ at postponed_job.
- * test/ruby/test_m17n_comb.rb (test_str_crypt): Use Etc.confstr to
- detect the glibc version.
- libc.so is not an executable on Debian GNU/kFreeBSD 7.0 (wheezy).
+ This feature is a sample of new internal event and
+ rb_postponed_job API.
-Sun May 18 12:15:54 2014 Jonathan Mukai-Heidt <johnnymukai@gmail.com>
+Tue May 28 02:56:15 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (argf_each_line, argf_inplace_mode_set): [DOC] Update ARGF
- documentation examples. `ARGF.lines` has been deprecated in
- favor of `ARGF.each_line`. [Fixes GH-615]
+ * gc.c (gc_stat): remove wrong rest_sweep().
-Sun May 18 11:59:25 2014 Tanaka Akira <akr@fsij.org>
+Tue May 28 02:44:23 2013 Koichi Sasada <ko1@atdot.net>
- * missing/nextafter.c: Include ruby/missing.h.
+ * gc.c (garbage_collect_body): fix GC_ENABLE_LAZY_SWEEP condition.
-Sun May 18 11:09:28 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (GC_NOTIFY): move debug print location and use stderr instead
+ of stdout.
- * win32/Makefile.sub: Add nextafter.obj to MISSING.
+Tue May 28 02:07:21 2013 Koichi Sasada <ko1@atdot.net>
-Sun May 18 10:46:04 2014 Tanaka Akira <akr@fsij.org>
+ * vm_trace.c (rb_postponed_job_register_one): fix iteration bug.
- * ext/etc/etc.c: Etc.sysconf, Etc.confstr and IO#pathconf implemented.
+ * ext/-test-/postponed_job/postponed_job.c,
+ test/-ext-/postponed_job/test_postponed_job.rb: add a test.
- * ext/etc/extconf.rb: Check sysconf(), confstr() and fpathconf().
+Tue May 28 00:34:23 2013 Koichi Sasada <ko1@atdot.net>
- * ext/etc/mkconstants.rb: New file.
+ * include/ruby/ruby.h, gc.c: add new internal event
+ RUBY_INTERNAL_EVENT_GC_END. This event invokes at the end of
+ after_sweep().
+ Time chart with lazy sweep is:
+ (1) Kick RUBY_INTERNAL_EVENT_GC_START
+ (2) [gc_marks()]
+ (3) [lazy_sweep()]
+ (4) [... run Ruby program (mutator) with lazy_sweep() ...]
+ (5) [after_sweep()]
+ (6) Kick RUBY_INTERNAL_EVENT_GC_END
+ (7) [... run Ruby program (mutator), and go to (1) ...]
+ Time chart without lazy sweep (GC.start, etc) is:
+ (1) Kick RUBY_INTERNAL_EVENT_GC_START
+ (2) [gc_marks()]
+ (3) [gc_sweep()]
+ (4) [after_sweep()]
+ (5) Kick RUBY_INTERNAL_EVENT_GC_END
+ (6) [... run Ruby program (mutator), and go to (1) ...]
- [ruby-core:62600] [Feature #9842]
+ * ext/-test-/tracepoint/tracepoint.c,
+ test/-ext-/tracepoint/test_tracepoint.rb: modify a test.
-Sun May 18 09:58:17 2014 Tanaka Akira <akr@fsij.org>
+Tue May 28 00:18:57 2013 Koichi Sasada <ko1@atdot.net>
- * ext/etc/etc.c: Etc.uname method implemented.
+ * vm_trace.c (rb_postponed_job_flush): remove a wrong comment.
- * ext/etc/extconf.rb: Check uname() function.
+Mon May 27 22:09:33 2013 Tanaka Akira <akr@fsij.org>
- [ruby-core:62139] [Feature #9770]
+ * include/ruby/ruby.h (RHASH_SIZE): Add a cast to suppress a
+ warning, comparison between signed and unsigned integer
+ expressions [-Wsign-compare], on ILP32.
-Sun May 18 09:16:33 2014 Tanaka Akira <akr@fsij.org>
+Mon May 27 19:25:47 2013 Koichi Sasada <ko1@atdot.net>
- * configure.in: Check nextafter() availability.
+ * include/ruby/ruby.h: rename RUBY_INTERNAL_EVENT_FREE to
+ RUBY_INTERNAL_EVENT_FREEOBJ.
- * include/ruby/missing.h (nextafter): New optional declaration.
+ * ext/-test-/tracepoint/tracepoint.c,
+ ext/objspace/object_tracing.c,
+ gc.c, vm_trace.c: catch up this change.
- * missing/nextafter.c: New file.
+Mon May 27 18:57:28 2013 Koichi Sasada <ko1@atdot.net>
- * numeric.c: Float#next_float and Float#prev_float implemented.
+ * ext/objspace/objspace.c: support ObjectSpace.trace_object_allocations.
+ Read the following test to know HOWTO.
+ This feature is a sample of RUBY_INTERNAL_EVENT.
- [ruby-core:62562] [Feature #9834]
+ * test/objspace/test_objspace.rb: add a test.
-Sun May 18 09:02:17 2014 Tanaka Akira <akr@fsij.org>
+ * ext/objspace/object_tracing.c: ditto.
- * enum.c: Enumerable#slice_after implemented.
+ * gc.c (rb_gc_count): add. This function returns GC count.
- * enumerator.c: Enumerator::Lazy#slice_after implemented.
+ * internal.h: add decl. of rb_gc_count(). Same as `GC.count'.
- Requested by Tsuyoshi Sawada. [ruby-core:58123] [Feature #9071]
+Mon May 27 17:33:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun May 18 08:22:25 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/rbinstall.rb (install_recursive): add maxdepth option.
- * io.c (io_setstrbuf): always check if the buffer is modifiable.
- [ruby-core:62643] [Bug #9847]
+ * tool/rbinstall.rb (bin-comm): limit depth of bindir and reject empty
+ files. [ruby-core:55101] [Bug #8432]
-Sun May 18 01:21:23 2014 Tanaka Akira <akr@fsij.org>
+Mon May 27 16:16:18 2013 Koichi Sasada <ko1@atdot.net>
- * include/ruby/ruby.h: Hide Rational internal.
- (RRational): Moved to internal.h
- (RRATIONAL): Ditto.
- (RRATIONAL_SET_NUM): Moved to rational.c.
- (RRATIONAL_SET_DEN): Ditto.
+ * vm_trace.c (rb_postponed_job_flush, rb_postponed_job_register): use
+ ruby_xmalloc/xfree. It is safe during GC.
- * rational.c (rb_rational_num): New function.
- (rb_rational_den): Ditto.
+Mon May 27 09:24:03 2013 Koichi Sasada <ko1@atdot.net>
- * include/ruby/intern.h (rb_rational_num): Declared.
- (rb_rational_den): Ditto.
+ * test/-ext-/postponed_job/test_postponed_job.rb: fix typo and class name.
- * ext/bigdecimal/bigdecimal.c: Follow the above change.
+Mon May 27 09:05:17 2013 Koichi Sasada <ko1@atdot.net>
- * ext/date/date_core.c: Ditto.
+ * include/ruby/ruby.h, gc.c, vm_trace.c: add internal events.
+ * RUBY_INTERNAL_EVENT_NEWOBJ: object created.
+ * RUBY_INTERNAL_EVENT_FREE: object freed.
+ * RUBY_INTERNAL_EVENT_GC_START: GC started.
+ And rename `RUBY_EVENT_SWITCH' to `RUBY_INTERNAL_EVENT_SWITCH'.
- [ruby-core:60665] [Feature #9513]
+ Internal events can not invoke any Ruby program because the tracing
+ timing may be critical (under huge restriction).
+ These events can be hooked only by C-extensions.
+ We recommend to use rb_postponed_job_register() API to call Ruby
+ program safely.
-Sat May 17 17:04:32 2014 Shota Fukumori <her@sorah.jp>
+ This change is mostly written by Aman Gupta (tmm1).
+ https://bugs.ruby-lang.org/issues/8107#note-12
+ [Feature #8107]
- * NEWS: Add news about removal of lib/test/**/*.rb.
+ * include/ruby/debug.h, vm_trace.c: added two new APIs.
+ * rb_tracearg_event_flag() returns rb_event_flag_t of this event.
+ * rb_tracearg_object() returns created/freed object.
-Sat May 17 16:57:33 2014 Shota Fukumori <her@sorah.jp>
+ * ext/-test-/tracepoint/extconf.rb,
+ ext/-test-/tracepoint/tracepoint.c,
+ test/-ext-/tracepoint/test_tracepoint.rb: add a test.
- * lib/test: Removed because ruby's test cases now independent to
- lib/test by r45970. [Feature #9711] [ruby-core:62620]
+Mon May 27 08:38:21 2013 Koichi Sasada <ko1@atdot.net>
- I'm still considering about the future of lib/minitest, lib/test.
- (bundling gems?)
+ * ext/-test-/postponed_job/postponed_job.c: fix `init' function name.
-Sat May 17 15:06:40 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon May 27 06:22:41 2013 Koichi Sasada <ko1@atdot.net>
- * test/runner.rb: remove dependency test-unit and minitest
- from stdlib when running with test-all.
- [Feature #9711][ruby-core:61890]
- * test/testunit/*.rb: ditto.
- * test/lib: ditto.
+ * include/ruby/debug.h, vm_trace.c: add rb_postponed_job API.
+ Postponed jobs are registered with this API. Registered jobs
+ are invoked at `ruby-running-safe-point' as soon as possible.
+ This timing is completely same as finalizer timing.
-Sat May 17 11:02:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ There are two APIs:
+ * rb_postponed_job_register(flags, func, data): register a
+ postponed job with data. flags are reserved.
+ * rb_postponed_job_register_one(flags, func, data): same as
+ `rb_postponed_job_register', but only one `func' job is
+ registered (skip if `func' is already registered).
- * dir.c (glob_helper): try match PLAIN as well as ALPHA, which are
- separated by previous commits. [ruby-core:61552] [Bug #9648]
+ This change is mostly written by Aman Gupta (tmm1).
+ https://bugs.ruby-lang.org/issues/8107#note-15
+ [Feature #8107]
- * dir.c (glob_make_pattern): set PLAIN for non-magical path to
- skip parts which not need to glob.
- [ruby-core:61552] [Bug #9648]
+ * gc.c: use postponed job API for finalizer.
- * dir.c (has_magic): return ALPHA at alphabetical name regardless
- FNM_CASEFOLD flag.
+ * common.mk: add dependency from vm_trace.c to debug.h.
- * dir.c (glob_helper): fix conditions for ALPHA.
- [ruby-core:61552] [Bug #9648]
+ * ext/-test-/postponed_job/extconf.rb, postponed_job.c,
+ test/-ext-/postponed_job/test_postponed_job.rb: add a test.
-Sat May 17 01:49:27 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c: implement postponed API.
- * dir.c (glob_helper): reduce matching at non-magical path on
- Windows.
+ * vm_core.h: ditto.
-Sat May 17 01:49:23 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 27 02:26:02 2013 Koichi Sasada <ko1@atdot.net>
- * dir.c (glob_pattern_type): separate names with alphabet but no
- magical from plain.
+ * gc.c (gc_stat): collect promote_operation_count and
+ types (RGENGC_PROFILE >= 2).
- * dir.c (glob_helper): match plain names as-is to treat super-root
- same as the root. [ruby-core:61552] [Bug #9648]
+Mon May 27 01:40:58 2013 Koichi Sasada <ko1@atdot.net>
-Fri May 16 17:38:22 2014 Koichi Sasada <ko1@atdot.net>
+ * gc.c (gc_stat): collect shade_operation_count,
+ remembered_sunny_object_count and remembered_shady_object_count
+ for each types when RGENGC_PROFILE >= 2.
+ They are informative for optimization.
- * gc.c (gc_marks, gc_marks_body): increase the counter of young objects
- at the major GC because AGE2Promotion changes all old objects into
- young objects at major GC.
+Mon May 27 01:15:22 2013 Koichi Sasada <ko1@atdot.net>
-Fri May 16 17:26:24 2014 Koichi Sasada <ko1@atdot.net>
+ * hash.c (rb_hash_tbl_raw), internal.h: added.
+ Returns st_table without shading hash.
- * gc.c (gc_before_sweep): heap_pages_swept_slots should contains
- heap_pages_increment.
+ * array.c: use rb_hash_tbl_raw() for read-only purpose.
- For example, GC by exceeding malloc_limit can remain
- heap_pages_increment.
+ * compile.c (iseq_compile_each): ditto.
-Thu May 15 21:18:43 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+ * gc.c (count_objects): ditto.
- * configure.in: enable SSE2 on mingw. target='i386-pc-mingw32'.
- [ruby-core:62095] [Bug #8358]
+ * insns.def: ditto.
-Thu May 15 21:04:06 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+ * process.c: ditto.
- * lib/test/unit/parallel.rb: fix test-all parallel failure if a test
- is skipped after raise.
- DL::TestFunc#test_sinf is skipped after raise on mingw ruby.
- But it causes Marshal.load failure due to undefined class/module
- DL::DLError when doing test-all parallel and test-all doesn't
- complete. We create new MiniTest::Skip object to avoid Marshal.load
- failure.
- [ruby-core:62133] [Bug #9767]
+ * thread.c (clear_coverage): ditto.
- * test/testunit/test_parallel.rb (TestParallel): add a test.
+ * vm_insnhelper.c: ditto.
- * test/testunit/tests_for_parallel/ptest_forth.rb: ditto.
+Mon May 27 00:31:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Thu May 15 18:57:23 2014 Koichi Sasada <ko1@atdot.net>
+ * tool/make-snapshot: use ENV["AUTOCONF"] instead of directly using
+ literal "autoconf".
- * gc.c (garbage_collect_body): move gc_heap_prepare_minimum_pages()
- from gc_sweep().
+Sun May 26 21:31:46 2013 Koichi Sasada <ko1@atdot.net>
-Thu May 15 18:51:25 2014 Koichi Sasada <ko1@atdot.net>
+ * hash.c, include/ruby/ruby.h: support WB protected hash.
+ * constify RHash::ifnone and make new macro RHASH_SET_IFNONE().
+ * insert write barrier for st_update().
- * gc.c (heap_extend_pages): calculate next growing heap size.
+ * include/ruby/intern.h: declare rb_hash_set_ifnone(hash, ifnone).
- * gc.c (heap_set_increment): accept addition pages instead of
- minimum pages.
+ * marshal.c (r_object0): use RHASH_SET_IFNONE().
- * gc.c (gc_after_sweep): use heap_etend_pages().
+ * ext/openssl/ossl_x509name.c (Init_ossl_x509name): ditto.
- * gc.c (gc_heap_prepare_minimum_pages): add only 1 page.
+Sat May 25 23:22:38 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * gc.c (heap_ready_to_gc): add only 1 page.
+ * test/fiddle/test_c_struct_entry.rb,
+ test/fiddle/test_c_union_entity.rb,
+ test/fiddle/test_cparser.rb, test/fiddle/test_func.rb,
+ test/fiddle/test_handle.rb, test/fiddle/test_import.rb,
+ test/fiddle/test_pointer.rb: don't run test if the system
+ don't support fiddle.
-Thu May 15 18:42:49 2014 Koichi Sasada <ko1@atdot.net>
+Sat May 25 21:29:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * gc.c: introduce macros to remove magic number.
+ * ext/pty/pty.c (get_device_once): FreeBSD 10-current and 9-stable
+ added O_CLOEXEC support to posix_openpt, so assume FreeBSD 9.2 or
+ later supports it.
+ http://www.freebsd.org/cgi/query-pr.cgi?pr=162374
- GC_HEAP_FREE_SLOTS_MIN_RATIO = 0.3: guarantee minimum empty slots
- ratio after sweep.
- GC_HEAP_FREE_SLOTS_MAX_RATIO = 0.8: allow to free pages 0.2 (= 1-0.8)
- of current existing slots.
+Sat May 25 18:46:23 2013 Yusuke Endoh <mame@tsg.ne.jp>
-Thu May 15 17:32:51 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+ * proc.c (rb_method_entry_min_max_arity): fix missing break in switch.
+ This was introduced in r38236, which is not intentional apparently.
+ This has caused no actual harm because VM_METHOD_TYPE_OPTIMIZED is
+ not used except for OPTIMIZED_METHOD_TYPE_SEND, but may do in
+ future. Coverity Scan found this inadequacy.
- * thread_win32.c (rb_w32_stack_overflow_handler): use Structured
- Exception Handling by AddVectoredExceptionHandler() for machine
- stack overflow on mingw.
- This would be equivalent to the handling using __try and __except
- on mswin introduced by r43748.
+Sat May 25 18:08:06 2013 Yusuke Endoh <mame@tsg.ne.jp>
-Wed May 14 19:31:03 2014 Koichi Sasada <ko1@atdot.net>
+ * dir.c (bracket): fix copy-paste error. When the first and last
+ characters of fnmatch range have different length, fnmatch may
+ have wrongly matched a path that does not really match.
+ Coverity Scan found this bug.
- * ext/openssl/depend: remove dependency from internal headers.
- [Feature #9612]
+Sat May 25 17:06:25 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/ossl.c (ossl_fips_mode_set): ditto.
+ * gc.c (after_gc_sweep): reduce full GC timing.
- * ext/coverage/depend: ditto.
+Sat May 25 11:28:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * include/ruby/thread_native.h: added.
+ * variable.c (set_const_visibility): return without clearing method
+ cache if no arguments.
- This header file only provides wrapper functions to control
- native threads. These wrapper functions are used by MRI
- implementation.
+ * vm_method.c (set_method_visibility): ditto.
- * vm_core.h: use include/ruby/thread_native.h.
+Sat May 25 11:27:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * thread.c: ditto.
+ * vm_method.c (set_method_visibility): quote unprintable method name.
- * thread_pthread.h: ditto.
+Sat May 25 11:24:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * thread_win32.h: ditto.
+ * eval.c (rb_frame_callee): returns the called name of the current
+ frame, not the previous frame.
- * thread_native.h: removed.
+ * eval.c (prev_frame_callee, prev_frame_func): rename and make static,
+ as these are used by rb_f_method_name() and rb_f_callee_name() only.
-Wed May 14 18:03:28 2014 Koichi Sasada <ko1@atdot.net>
+ * variable.c (set_const_visibility): use the called name.
- * gc.c: enable RGENGC_AGE2_PROMOTION.
+Sat May 25 08:58:23 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed May 14 18:02:30 2014 Koichi Sasada <ko1@atdot.net>
+ * string.c (rb_str_quote_unprintable): check if argument is a string.
- * gc.c (rgengc_rememberset_mark): promote remembered object earlier.
+Fri May 24 19:32:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Mon May 12 23:57:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * variable.c (set_const_visibility): use rb_frame_this_func() instead
+ of rb_frame_callee() for getting the name of the called method
- * configure.in (rb_cv_atan2_inf_c99): check whether runtime atan2
- handles Inf as C99. [ruby-core:62536] [Bug #9831]
+ * test/ruby/test_module.rb: add test for private_constant with no args
-Mon May 12 20:33:01 2014 Tanaka Akira <akr@fsij.org>
+Fri May 24 18:53:10 2013 Koichi Sasada <ko1@atdot.net>
- * configure.in: Invoke AC_REPLACE_FUNCS for each function.
+ * gc.c: do major/full GC when:
+ * number of oldgen object is bigger than twice of
+ number of oldgen object at last full GC.
+ * number of remembered shady object is bigger than twice of
+ number of remembered shady object at last full GC.
+ * number of oldgen object and remembered shady object is bigger
+ than half of total object space.
+ (please fix my English!)
-Mon May 12 19:52:11 2014 Koichi Sasada <ko1@atdot.net>
+Fri May 24 17:07:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * gc.c: count young object correctly and show it in GC.stat
- on RGENGC_AGE2_PROMOTION.
+ * intern.h: remove dangling rb_class_init_copy declaration
+ [ruby-core:55120] [Bug #8434]
- * gc.c (RVALUE_PROMOTE_YOUNG): decrement young object count on
- YOUNG->OLD.
+Fri May 24 16:31:23 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * gc.c (obj_free): decrement young object count when young object
- freed.
+ * ext/strscan/strscan.c (strscan_aref): raise error if given
+ name reference is not found.
- * gc.c (gc_marks): should not clear young object count.
+Fri May 24 15:48:18 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (gc_stat_internal): GC.stat :young_object information.
+ * gc.c (after_gc_sweep, garbage_collect_body): do major GC (full GC)
+ before extending heaps.
+ TODO: do major GC when there are many old (promoted) objects.
-Mon May 12 01:30:59 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (after_gc_sweep): remove TODO comments.
- * ext/socket/ifaddr.c (IS_IFADDRS): Unused macro removed.
+Fri May 24 11:04:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/strscan/strscan.c (BUFSIZE): Ditto.
+ * configure.in (LIBRUBY_RPATHFLAGS): do not append -L option with
+ runtime library directory if cross compiling, but only -R option.
+ runtime path makes no sense on the host system. [ruby-dev:47363]
+ [Bug #8443]
- * ext/zlib/zlib.c (OBJ_IS_FREED): Ditto.
+Fri May 24 02:57:17 2013 Koichi Sasada <ko1@atdot.net>
-Sun May 11 22:27:18 2014 Tanaka Akira <akr@fsij.org>
+ * object.c (rb_obj_clone): should not propagate OLDGEN status.
+ This propagation had caused WB miss for class.
- * compile.c (BUFSIZE): Unused macro removed.
+Thu May 23 17:35:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c (BUFSIZE): Ditto.
+ * load.c (loaded_feature_path): fix invalid read by index underflow.
+ the beginning of name is also a boundary as well as just after '/'.
- * pack.c (INT64toNUM): Ditto.
- (UINT64toNUM): Ditto.
- (BYTEWIDTH): Ditto.
+Thu May 23 17:21:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * time.c (lshift): Ditto.
- (UINT64toNUM): Ditto.
- (id_lshift): Unused variable removed.
+ * gc.c (gc_profile_dump_on): revert r40898. ok to show the record
+ accumulating while lazy_sweep().
-Sun May 11 21:23:27 2014 Tanaka Akira <akr@fsij.org>
+Wed May 22 16:50:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * pack.c (swaps): Unused macro removed.
- (swapi): Ditto.
- (swapl): Ditto.
- (swapll): Ditto.
+ * gc.c (gc_profile_dump_on): use size_t to get rid of overflow and
+ show the header when next_index > 0, instead of next_index != 1.
-Sun May 11 08:02:49 2014 Eric Wong <e@80x24.org>
+Wed May 22 15:18:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm_core.h (rb_vm_t): list_head and counter for living_threads
- (rb_thread_t): vmlt_node for living_threads linkage
- (rb_vm_living_threads_init): new function wrapper
- (rb_vm_living_threads_insert): ditto
- (rb_vm_living_threads_remove): ditto
- * vm.c (rb_vm_living_threads_foreach): new function wrapper
- * thread.c (terminate_i, thread_start_func_2, thread_create_core,
- thread_fd_close_i, thread_fd_close): update to use new APIs
- * vm.c (vm_mark_each_thread_func, rb_vm_mark, ruby_vm_destruct,
- vm_memsize, vm_init2, Init_VM): ditto
- * vm_trace.c (clear_trace_func_i, rb_clear_trace_func): ditto
- * benchmark/bm_vm_thread_close.rb: added to show improvement
- * ccan/build_assert/build_assert.h: added as a dependency of list.h
- * ccan/check_type/check_type.h: ditto
- * ccan/container_of/container_of.h: ditto
- * ccan/licenses/BSD-MIT: ditto
- * ccan/licenses/CC0: ditto
- * ccan/str/str.h: ditto (stripped of unused macros)
- * ccan/list/list.h: ditto
- * common.mk: add CCAN_LIST_INCLUDES
- [ruby-core:61871][Feature #9632 (part 1)]
+ * win32/win32.c (setup_overlapped): check the error code in addition
+ to the result of SetFilePointer() to determine if an error occurred,
+ because INVALID_SET_FILE_POINTER is a valid value.
+ [ruby-core:55098] [Bug #8431]
-Sun May 11 01:10:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/win32.c (setup_overlapped, finish_overlapped): extract from
+ rb_w32_read() and rb_w32_write().
- * signal.c (rb_f_kill): directly enqueue an ignored signal to self,
- except for SIGSEGV and SIGBUS. [ruby-dev:48203] [Bug #9820]
+Wed May 22 14:19:56 2013 Koichi Sasada <ko1@atdot.net>
-Sat May 10 22:37:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_prepare_free_objects, rest_sweep, lazy_sweep): fix position
+ of `during_gc' setting.
- * dir.c (push_glob): match in UTF-8 on Mac OS X.
- [ruby-dev:48213] [Bug #9825]
+Wed May 22 07:36:08 2013 Koichi Sasada <ko1@atdot.net>
-Sat May 10 13:32:18 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (garbage_collect): all GC is start from garbage_collect()
+ (or garbage_collect_body()). `garbage_collect()' accept additional
+ two parameters `full_mark' and `immediate_sweep'.
+ If `full_mark' is TRUE, then force it full gc (major gc), otherwise,
+ it depends on status of object space. Now, it will be minor gc.
+ If `immediate_sweep' is TRUE, then disable lazy sweep.
+ To allocate free memory, `full_mark' and `immediate_sweep' should be
+ TRUE. Otherwise, they should be FALSE.
- * thread.c (thread_start_func_2): stop if forked in a sub-thread,
- the thread has become the main thread.
- [ruby-core:62070] [Bug #9751]
+ * gc.c (gc_prepare_free_objects): use `garbage_collect_body()'.
-Sat May 10 09:32:19 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * gc.c (slot_sweep, before_gc_sweep, after_gc_sweep): add logging code.
- * man/ruby.1: remove deadlink. [ruby-core:62145][Bug #9773]
+Tue May 21 22:47:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sat May 10 08:47:36 2014 Tanaka Akira <akr@fsij.org>
+ * ext/strscan/strscan.c (strscan_aref): support named captures.
+ patched by Konstantin Haase [ruby-core:54664] [Feature #8343]
- * signal.c (trap): Return "SYSTEM_DEFAULT" if SIG_DFL is set.
+Tue May 21 21:48:44 2013 Kouhei Sutou <kou@cozmixng.org>
-Fri May 9 14:27:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_dir_m17n.rb (TestDir_M17N#test_entries_compose):
+ Use #each instead of #map just for iteration.
- * configure.in (RUBY_SETJMP_TYPE): check for setjmp type after
- CCDLFLAGS is appended to CFLAGS, since __builtin_setjmp can be
- affected. [ruby-core:62469] [Bug #9818]
+Tue May 21 19:57:22 2013 Akinori MUSHA <knu@iDaemons.org>
-Fri May 9 03:59:06 2014 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+ * ext/digest/lib/digest.rb (Digest::Class.file): Take optional
+ arguments that are passed to the constructor of the digest
+ class.
- * lib/delegate.rb: Fix example of using delegator.
- patched from Andrey Koleshko. [Fixes GH-505]
+Tue May 21 17:21:12 2013 Koichi Sasada <ko1@atdot.net>
-Fri May 9 03:42:43 2014 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+ * gc.c: remove gc_profile_record::is_marked. always true.
- * lib/shell.rb: add documentation in lib/shell.rb
- patched from reprah. [Fixes GH-516]
+Tue May 21 17:13:40 2013 Koichi Sasada <ko1@atdot.net>
-Fri May 9 03:28:04 2014 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+ * gc.c: fix to collect additional information for GC::Profiler.
+ * major/minor GC
+ * trigger reason of GC
- * lib/fileutils.rb: show fileutils require at top.
- patched from Richard Schneeman. [Fixes GH-604]
+ * gc.c (gc_profile_dump_on): change reporting format with
+ added information.
-Fri May 9 03:07:09 2014 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+ * gc.c (gc_profile_record_get): return added information by
+ :GC_FLAGS => array.
- * lib/prime.rb (Prime#prime?): negative numbers can't be primes
- by definition. reported by Ivan Kataitsev. [Bug #7395]
- * test/test_prime.rb: add test.
+Tue May 21 16:45:31 2013 Koichi Sasada <ko1@atdot.net>
-Thu May 8 14:34:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: GC::Profiler's sweeping time is accumulated all slot
+ sweeping time. At lazy GC, GC::Profiler makes new record entry
+ for each lazy_sweep(). In this change, accumulating all
+ slot_sweep() time.
+ And change indentation.
- * class.c (rb_mod_init_copy): always clear instance variable,
- constant and method tables first, regardless the source tables.
- [ruby-dev:48182] [Bug #9813]
+Tue May 21 16:29:09 2013 Koichi Sasada <ko1@atdot.net>
-Thu May 8 10:53:14 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * common.mk (rdoc-bench): add a benchmark rule
+ using RDoc. Generate all rdoc related files
+ (same as `make rdoc') in temporary directory
+ and remove them. Execution time, GC::Profiler
+ and results of GC.stat are printed.
- * configure.in: OpenBSD needs to include sys/param.h before include
- sys/mount.h. [ruby-dev:48167]
+ * tool/rdocbench.rb: added for `rdoc-bench'.
-Thu May 8 10:17:04 2014 Karsten Sperling <karsten@sperling.co.nz>
+Tue May 21 16:25:05 2013 Koichi Sasada <ko1@atdot.net>
- * lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): stop
- handling requests on shutdown, even if the socket is readable
- and IO.select() returns true. [Fixes GH-607]
+ * gc.c (gc_profile_dump_on): `count' should be (int) because it
+ can be negative number.
+ And use pointer for `record' (don't copy).
- * lib/webrick/server.rb (WEBrick::GenericServer#start): IO.select()
- raises ENOTSOCK on shutdown on Windows.
+Tue May 21 03:11:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed May 7 21:45:00 2014 Tanaka Akira <akr@fsij.org>
+ * dir.c (dir_each): compose HFS file names from
+ UTF8-MAC. [ruby-core:48745] [Bug #7267]
- * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#accept):
- Consider Socket#accept as well as TCPServer#accept.
- Reported by Sam Stelfox. [ruby-core:62064] [Bug #9750]
+Tue May 21 03:08:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed May 7 17:24:07 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/envutil.rb (assert_separately): require envutil in the
+ child process too.
- * numeric.c (num_step_scan_args): check keyword arguments and fail
- if they conflict with positional arguments.
- [ruby-dev:48177] [Bug #9811]
+Tue May 21 03:07:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed May 7 12:06:14 2014 Koichi Sasada <ko1@atdot.net>
+ * string.c (rb_str_conv_enc_opts): should infect.
- * benchmark/driver.rb: remove debug output and output results into
- specified file.
+Mon May 20 22:24:45 2013 Akinori MUSHA <knu@iDaemons.org>
-Wed May 7 11:55:40 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/set.rb (Set#delete_if, Set#keep_if): Avoid blockless call of
+ proc, which is not portable to JRuby. Replace &method() with
+ faster and simpler literal blocks while at it.
- * benchmark/driver.rb: add '--rawdata-output=[FILE] option to output
- raw results into FILE.
+Mon May 20 22:00:31 2013 Zachary Scott <zachary@zacharyscott.net>
-Wed May 7 11:25:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/e2mmap.rb: Format of E2MM documentation
- * vm_eval.c (rb_f_local_variables): exclude variables hidden by
- shadowing. [ruby-core:60501] [Bug #9486]
+Mon May 20 21:41:15 2013 Zachary Scott <zachary@zacharyscott.net>
- * vm.c (collect_local_variables_in_iseq): ditto.
+ * ext/extmk.rb: nodoc this file
-Tue May 6 23:29:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 20 20:43:32 2013 Zachary Scott <zachary@zacharyscott.net>
- * parse.y (new_bv_gen): no duplicated names, if already added in
- shadowing_lvar().
+ * lib/cmath.rb: Remove duplicate RDoc heading from overview
- * parse.y (local_tbl_gen): remove local variables duplicated with
- arguments.
- [ruby-core:60501] [Bug #9486]
+Mon May 20 20:36:19 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue May 6 18:48:50 2014 Tanaka Akira <akr@fsij.org>
+ * lib/securerandom.rb: Update position of overview for RDoc
- * lib/time.rb (Time.make_time): Adjust the time zone of "now".
+Mon May 20 19:33:55 2013 Benoit Daloze <eregontp@gmail.com>
-Tue May 6 18:33:12 2014 Tadayoshi Funaba <tadf@dotrb.org>
+ * math.c: improve and fix documentation of sin, tan and log
- * io.c (io_{read,write}_nonblock): use rb_get_kwargs instead of
- rb_hash_aref.
+Mon May 20 19:31:49 2013 Benoit Daloze <eregontp@gmail.com>
-Tue May 6 18:03:05 2014 Tanaka Akira <akr@fsij.org>
+ * lib/logger.rb (Logger::Application): show namespace in documentation
- * lib/time.rb (Time.make_time): Argument validation code moved from
- Time.parse and Time.strptime.
+Mon May 20 11:50:12 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue May 6 17:27:06 2014 Tanaka Akira <akr@fsij.org>
+ * lib/pp.rb: Revert part of r40834 and nodoc PP::ObjectMixin
+ [ruby-core:55068]
- * lib/time.rb (Time.parse): [DOC] Fix an example in the documentation
- to use EST.
- Reported by Marcus Stollsteimer.
- [ruby-core:60778] [Bug #9521] and [ruby-core:61718] [Bug #9682]
+Mon May 20 10:40:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue May 6 04:31:48 2014 Tadayoshi Funaba <tadf@dotrb.org>
+ * lib/webrick/htmlutils.rb (WEBrick::HTMLUtils#escape): replace HTML
+ meta chars even in non-ascii string. [Bug #8425] [ruby-core:55052]
- * file.c (rb_f_test): removed meaningless "case 'a'".
+ * lib/webrick/httputils.rb (WEBrick::HTTPUtils#{_escape,_unescape}):
+ fix %-escape encodings. [Bug #8425] [ruby-core:55052]
-Tue May 6 01:28:14 2014 Tanaka Akira <akr@fsij.org>
+ * lib/webrick/httpservlet/filehandler.rb (set_dir_list): revert r20152
+ partially and fix misuse of bytesize and regexp repetition operator.
- * lib/open-uri.rb (OpenURI.open_uri): Call StringIO#close only if
- the StringIO object is not closed yet.
- Reported by Jordi Massaguer Pla. [ruby-core:42538] [Bug #6010]
+Mon May 20 08:03:51 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue May 6 01:08:01 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/profiler.rb: Document Profiler__ methods
- * benchmark/driver.rb: define File::NULL if not defined and /dev/null
- is available to run benchmark driver on ruby 1.9.2.
+Mon May 20 08:02:13 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon May 5 23:53:24 2014 Tanaka Akira <akr@fsij.org>
+ * lib/tempfile.rb: nodoc Tempfile#inspect
- * ext/socket/mkconstants.rb: Add IP_TRANSPARENT.
- IP_TRANSPARENT is provieded since glibc-2.12.
- Reported by Eliezer Croitoru. [ruby-core:50372] [Bug #7476]
+Mon May 20 07:48:24 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon May 5 22:29:47 2014 Tanaka Akira <akr@fsij.org>
+ * ext/stringio/stringio.c: Correct position of method rdoc
- * process.c (check_exec_redirect): Open the file in write mode for
- redirect from [:out, :err].
- Proposed and implemented by Yusuke Endoh.
- [ruby-dev:41430] [Feature #3348]
+Mon May 20 07:27:41 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon May 5 21:52:35 2014 Tanaka Akira <akr@fsij.org>
+ * math.c: RDoc formatting of Math core docs with domains and codomains
+ Patch by @eLobato [Fixes GH-309]
- * ext/pathname/lib/pathname.rb (cleanpath_aggressive): make all
- separators File::SEPARATOR from File::ALT_SEPARATOR.
- Reported by Daniel Rikowski.
- Fixed by Nobuyoshi Nakada. [Bug #9618]
+Mon May 20 05:58:12 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/pathname/lib/pathname.rb (cleanpath_conservative): ditto.
+ * ext/bigdecimal/bigdecimal.c: Formatting for BigMath [Fixes GH-306]
+ Based on a patch by @eLobato.
+ * ext/bigdecimal/lib/bigdecimal/math.rb: ditto
-Mon May 5 21:48:04 2014 Tanaka Akira <akr@fsij.org>
+Mon May 20 04:56:59 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/pathname/lib/pathname.rb (Pathname#/): Aliased to Pathname#+.
- Suggested by Alexey Muranov. [ruby-core:61432] [Feature #9625]
+ * lib/forwardable.rb: Forwardable examples in overview were broken
+ Based on patch by @joem [Fixes GH-303] [Bug #8392]
-Mon May 5 17:26:09 2014 Tadayoshi Funaba <tadf@dotrb.org>
+Mon May 20 03:35:26 2013 Zachary Scott <zachary@zacharyscott.net>
- * math.c (rb_math_sqrt): omitted exporting an unused function,
- anyway.
- * internal.h: follows the above change.
+ * lib/optparse.rb: nodoc OptionParser::Version and SPLAT_PROC
-Mon May 5 11:44:03 2014 Tanaka Akira <akr@fsij.org>
+Mon May 20 03:16:52 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/time.rb (Time.strptime): Raise ArgumentError if Date._strptime
- doesn't extract date information.
- Reported by tadayoshi funaba. [ruby-core:62349]
+ * lib/pp.rb: Document PP::ObjectMixin [Fixes GH-312]
-Mon May 5 01:12:27 2014 Tadayoshi Funaba <tadf@dotrb.org>
+Sun May 19 23:52:22 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * ext/date/date_core.c (rt_rewrite_frags): a new feature (not a
- bug fix) of strptime. applies offset even if the given date is
- not local time (%s and %Q). This is an exceptional feature and
- I do NOT recommend to use this at all. Thank you git community.
+ * test/webrick/test_htmlutils.rb: add test for WEBrick::HTMLUtils.
-Sun May 4 20:51:32 2014 Tanaka Akira <akr@fsij.org>
+Sun May 19 23:12:07 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * lib/time.rb (Time.force_zone!): Use usual local time if it has
- expected offset from UTC.
+ * encoding.c: document fix, change default script encoding.
+ patched by @windwiny [Fixes GH-310]
-Sun May 4 17:58:12 2014 Tanaka Akira <akr@fsij.org>
+Sun May 19 17:29:07 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/time.rb (Time.force_zone!): New private method.
- (Time.make_time): Use Time.force_zone!.
- (Time.strptime): Ditto.
- (Time.rfc2822): Ditto.
- (Time.xmlschema): Ditto.
+ * lib/set.rb (Set#delete_if, Set#keep_if): Add comments.
- * lib/rss/rss.rb (Time.w3cdtf): Use Time.force_zone!.
+Sun May 19 11:37:36 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Sun May 4 10:22:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/fiddle/extconf.rb: ignore rc version of libffi to fix build failure.
- * math.c (math_atan2): return values like as expected by C99 if
- both two arguments are infinity. based on the patch by cremno
- phobia <cremno AT mail.ru> in [ruby-core:62310]. [Feature #9799]
+Sun May 19 10:38:50 2013 Akinori MUSHA <knu@iDaemons.org>
-Sun May 4 03:46:42 2014 Tanaka Akira <akr@fsij.org>
+ * misc/ruby-electric.el (ruby-electric-delete-backward-char): Use
+ delete-char instead of delete-backward-char, which is an
+ interactive function.
- * lib/time.rb (Time.httpdate): Always return a UTC Time object.
+Sun May 19 03:59:29 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun May 4 03:26:39 2014 Tanaka Akira <akr@fsij.org>
+ * string.c (str_scrub0): added for refactoring.
- * lib/time.rb (Time.make_time): Refactored.
+Sun May 19 03:48:26 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun May 4 02:53:17 2014 Tanaka Akira <akr@fsij.org>
+ * lib/uri/common.rb (URI.decode_www_form): scrub string if decoded
+ bytes are invalid for the encoding.
- * lib/time.rb (Time.rfc2822): Fix year completion.
- Produce fixed-offset time object if appropriate.
- (Time.xmlschema): Produce fixed-offset time object if appropriate.
+Sun May 19 02:46:32 2013 Akinori MUSHA <knu@iDaemons.org>
-Sat May 3 23:52:20 2014 Tanaka Akira <akr@fsij.org>
+ * lib/set.rb (Set#delete_if, Set#keep_if): Make Set#delete_if and
+ Set#keep_if more space and time efficient by avoiding to_a.
- * lib/time.rb (make_time): Produce fixed-offset time object if
- appropriate.
- (Time.strptime): Use d[:zone] instead of d[:offset].
+Sun May 19 02:33:09 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/rss/rss.rb (Time.w3cdtf): Produce fixed-offset time object if
- appropriate.
+ * misc/ruby-electric.el (ruby-electric-setup-keymap): Make
+ backquotes electric as well. It was listed in
+ ruby-electric-expand-delimiters-list but not activated.
-Sat May 3 20:21:38 2014 Tanaka Akira <akr@fsij.org>
+ * misc/ruby-electric.el (ruby-electric-delete-backward-char):
+ Introduce electric DEL that deletes what the previous electric
+ command has input.
- * lib/time.rb (Time.strptime): Use d[:offset] if d[:seconds] is not
- given.
- Reported by tadayoshi funaba. [ruby-core:62322]
+ * misc/ruby-electric.el (ruby-electric-matching-char): Make
+ electric quotes work again at the end of buffer.
-Sat May 3 04:04:16 2014 Eric Wong <e@80x24.org>
+Sun May 19 01:39:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * complex.c (parse_comp): replace ALLOCA_N with ALLOCV_N/ALLOCV_END
- [Bug #9608]
- * rational.c (read_digits): ditto
+ * configure.in (setjmp-type): check if setjmpex() is really available.
+ workaround for i686-w64-mingw32 which declares it but lacks its
+ definition.
-Sat May 3 00:06:30 2014 Naohisa Goto <ngotogenome@gmail.com>
+ * include/ruby/defines.h: include setjmpex.h only if also setjmpex()
+ is available.
- * file.c (HAVE_STRUCT_STATVFS_F_BASETYPE): File::Statfs#fstypename
- is supported on AIX, HP-UX, and Solaris, by using the value of
- struct statvfs.f_basetype.
+Sat May 18 23:57:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in (HAVE_STRUCT_STATVFS_F_BASETYPE): check struct
- statvfs.f_basetype which is available on AIX, HP-UX, and Solaris.
+ * configure.in (setjmp-type): use setjmpex() on w64-mingw32 to get rid
+ of -Wclobbered warnings.
-Fri May 2 21:04:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/defines.h: include setjmpex.h here becase setjmp.h is
+ included from win32.h via intrin.h, winnt.h, and so on.
- * parse.y (next_id): no reason to set ID_STATIC_SYM here, as ID
- returned by rb_intern3 can be a dynamic symbol and the static
- symbol flag is set otherwise. [Bug #9787]
+Sat May 18 20:28:12 2013 Tanaka Akira <akr@fsij.org>
-Fri May 2 11:32:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/mkconstants.rb (INTEGER2NUM): Make less comparisons.
- * test/ruby/test_io.rb (test_seek, test_seek_symwhence): defer
- File::Statfs#type call which may not be implemented, to mitigate
- errors on platforms where SEEK_DATA is available but f_type in
- struct statfs is not. [ruby-dev:48154] [Bug #9789]
+Sat May 18 20:15:28 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri May 2 10:37:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c (str_scrub_bang): add String#scrub!. [Feature #8414]
- * parse.y (rb_id_attrset): turn dynamically interned Symbol into
- an ID, since rb_str_dynamic_intern returns a Symbol but not an
- ID. [ruby-core:62226] [Bug #9787]
+Sat May 18 16:59:52 2013 Tanaka Akira <akr@fsij.org>
-Thu May 1 22:19:34 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * ext/socket/mkconstants.rb (INTEGER2NUM): Renamed from INTEGER2VALUE.
- * file.c: Change AND condition to nested condition.
+Sat May 18 16:57:58 2013 Tanaka Akira <akr@fsij.org>
-Thu May 1 00:36:26 2014 Naohisa Goto <ngotogenome@gmail.com>
+ * ext/socket/mkconstants.rb (INTEGER2VALUE): Suppress a warning:
+ comparison between signed and unsigned integer expressions
- * file.c (FSTATFS): check availability of struct statfs and
- struct statvfs in addition to fstatfs(2) and fstatvfs(2).
- This fixes error in Solaris. [Bug #9788] [ruby-dev:48145]
+Sat May 18 16:38:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Apr 30 19:46:23 2014 Narihiro Nakamura <authornari@gmail.com>
+ * compile.c (iseq_compile_each): forward anonymous and first keyword
+ rest argument one. [ruby-core:55033] [Bug #8416].
- * gc.c (gc_after_sweep): suppress unnecessary expanding heap.
- Tomb heap pages are freed pages here, so expanding heap is
- not required.
+Sat May 18 15:49:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Apr 30 17:58:40 2014 Koichi Sasada <ko1@atdot.net>
+ * vm_core.h (rb_vm_tag): move jmpbuf between tag and prev so ensure to
+ be accessible.
- * vm.c (invoke_block_from_c): add VM_FRAME_FLAG_BMETHOD to record
- it is bmethod frame.
+Sat May 18 11:05:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm.c (vm_exec): invoke RUBY_EVENT_RETURN event if rollbacked frame
- is VM_FRAME_FLAG_BMETHOD.
- [Bug #9759]
+ * enumerator.c (inspect_enumerator): use VALUE instead of mere char*
+ by using rb_sprintf() and rb_id2str().
- * test/ruby/test_settracefunc.rb: add a test for TracePoint/set_trace_func.
+ * enumerator.c (append_method): extract from inspect_enumerator().
- * vm_core.h: rename rb_thread_t::passed_me to
- rb_thread_t::passed_bmethod_me to clarify the usage.
+Sat May 18 09:00:32 2013 Tanaka Akira <akr@fsij.org>
- * vm_insnhelper.c (vm_call_bmethod_body): use renamed member.
+ * ext/socket/mkconstants.rb (INTEGER2VALUE): Use LONG2FIX if possible.
-Wed Apr 30 17:06:49 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat May 18 00:38:47 2013 Tanaka Akira <akr@fsij.org>
- * parse.y (rb_id_attrset): pin down dynamic symbol only. it is
- possible that attrset ID can be registered as a static symbol
- after the corresponding attrget ID has been registered as a
- dynamic, and then the latter may be collected.
- [ruby-core:62226] [Bug #9787]
+ * ext/socket/mkconstants.rb: Convert integer constants bigger than int
+ correctly.
-Tue Apr 29 14:17:57 2014 Tanaka Akira <akr@fsij.org>
+Fri May 17 22:02:15 2013 Tanaka Akira <akr@fsij.org>
- * lib/tmpdir.rb: Rescue LoadError on etc.so for miniruby.
- Revert r45707, r45711, r45717.
+ * ext/socket/ifaddr.c: Use unsigned LONG_LONG to represent flags
+ because SunOS 5.11 (OpenIndiana) defines ifa_flags as uint64_t.
-Tue Apr 29 12:50:02 2014 Tanaka Akira <akr@fsij.org>
+Fri May 17 21:47:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/fileutils.rb: Don't need to define fu_get_gid and fu_get_gid in
- rescue LoadError on 'etc'.
+ * cont.c: Typo in constant MAX_MACHINE_STACK_CACHE from '..MAHINE..'
+ patch by @schmurfy [Fixes GH-307]
-Tue Apr 29 10:21:38 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Fri May 17 19:18:24 2013 Akinori MUSHA <knu@iDaemons.org>
- * parse.y (symbols_i): like r45492, call rb_gc_resurrect().
+ * misc/ruby-electric.el (ruby-electric-matching-char): Do not put
+ a closing quote when the quote typed does not start a string, as
+ in $', ?\' or ?\".
-Tue Apr 29 04:29:05 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Fri May 17 18:06:15 2013 Tanaka Akira <akr@fsij.org>
- * file.c (HAVE_STRUCT_STATFS_T_F_FSTYPENAME): Add new macro for
- statfs_t.
- * file.c (HAVE_STRUCT_STATFS_T_F_TYPE): ditto.
+ * configure.in: Consider error messages to find out version option of
+ C compiler.
+ The C compiler of Sun Studio C emits "Warning: Option -qversion
+ passed to ld, if ld is invoked, ignored otherwise" and exit
+ successfully.
- * file.c (rb_io_statfs): check FSTATFS macro only instead of
- HAVE_FSTATFS and HAVE_FSTATVFS.
+Fri May 17 17:34:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (statfs_type): use new macro.
- * file.c (statfs_fstypename): ditto.
- * file.c (statfs_inspect): ditto.
+ * gc.c (rb_gc_guarded_ptr): unoptimize on other compilers than gcc and
+ msvc.
-Tue Apr 29 00:20:26 2014 Rajarshi Das <rajarshid@cybage.com>
+Fri May 17 11:06:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * bootstraptest/test_literal.rb: fix typo of "dynamic". [ci skip]
+ * eval_intern.h (TH_PUSH_TAG): ensure jmpbuf to be accessible before
+ pushing tag to get rid of unaccessible tag by stack overflow.
- * regexp.rdoc: fix typo of "organized". [ci skip]
+Thu May 16 17:15:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/session.rb: fix typo of "recognized". [ci skip]
+ * vm_eval.c (rb_catch_obj): add volatile to tag to prevent crash
+ experimentally.
+ http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20130515T133500Z.log.html.gz
-Mon Apr 28 21:40:27 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Thu May 16 16:19:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in (HAVE_STRUCT_STATFS_F_TYPE): check struct statfs.f_type
- to support OpenBSD.
+ * win32/Makefile.sub (verconf.in): no longer used.
- * file.c (statfs_type): use above macro to switch.
+ * win32/Makefile.sub (config.status): fix typo.
- * file.c (statfs_inspect): ditto.
+ * configure.in, template/verconf.h.in (RUBY_EXEC_PREFIX): fix for
+ default prefix.
-Mon Apr 28 18:06:08 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Thu May 16 13:12:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in: check struct statvfs and struct statvfs.f_fstypename.
+ * template/verconf.h.in: generate verconf.h from the template and
+ rbconfig.rb.
- * configure.in: on NetBSD fstatfs is obsoleted.
+Thu May 16 05:47:18 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * file.c: support NetBSD for File::Statfs.
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: fix syntax error.
+ Thanks @spastorino! [ruby-core:55011]
-Mon Apr 28 17:42:42 2014 Narihiro Nakamura <authornari@gmail.com>
+Thu May 16 03:05:45 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c: This argument must be a pointer.
+ * gc.c (rb_node_newnode): use newobj_of() instead of rb_newobj().
-Mon Apr 28 17:40:15 2014 Narihiro Nakamura <authornari@gmail.com>
+Thu May 16 02:03:39 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: Fix typos. These are undefined variables.
+ * ext/socket/depend: Add a dependency for ifaddr.o.
-Sun Apr 27 19:39:42 2014 Tadayoshi Funaba <tadf@dotrb.org>
+Thu May 16 01:44:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/date/date_strptime.c (date__strptime_internal): do not
- overwrite century.
+ * common.mk (verconf.h): $< cannot be used in explicit rules with
+ nmake.
-Sat Apr 26 11:50:08 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * win32/Makefile.sub (CONFIG_H): create verconf.in instead of
+ verconf.h.
- * test/ruby/test_enum.rb (test_flat_map): Added test for flat_map.
- Contribute from @igaiga. [fix GH-598]
+Thu May 16 01:25:07 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Sat Apr 26 10:55:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: only emit warnings when
+ -w is enabled.
- * compile.c (compile_array_): make copy a first hash not to modify
- the argument itself. keyword splat should be non-destructive.
- [ruby-core:62161] [Bug #9776]
+Wed May 15 18:58:17 2013 Koichi Sasada <ko1@atdot.net>
-Sat Apr 26 08:05:36 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (newobj): rename to `newobj_of' and accept additional
+ three parameters v1, v2, v3. newobj_of() do OBJSETUP() and
+ fill values with v1, v2, v3.
- * test/ruby/test_process.rb (test_rlimit_nofile): Don't limit
- RLIMIT_NOFILE too small.
- This fix sporadic "[ASYNC BUG] thread_timer: select" on GNU/Linux.
+ * gc.c (rb_data_object_alloc, rb_data_typed_object_alloc):
+ use newobj_of().
-Fri Apr 25 22:54:34 2014 Naohisa Goto <ngotogenome@gmail.com>
+Wed May 15 17:55:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/fileutils.rb (rmdir): rescue Errno::EEXIST in addition to
- ENOTEMPTY (and ENOENT), because SUSv3 describes that "If the
- directory is not an empty directory, rmdir() shall fail and set
- errno to [EEXIST] or [ENOTEMPTY]" and Solaris uses EEXIST.
- [Bug #9571] [ruby-dev:48017]
+ * configure.in (RUBY_PLATFORM): move to config.h as needed by
+ version.c.
-Fri Apr 25 19:16:30 2014 Tanaka Akira <akr@fsij.org>
+Wed May 15 17:04:11 2013 Koichi Sasada <ko1@atdot.net>
- * lib/webrick/utils.rb: Don't rescue LoadError for 'etc' extension.
+ * gc.c: add an additional RGENGC_PROFILE mode (2).
+ Profiling result can be check by GC.stat.
-Fri Apr 25 14:55:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (type_name): separate from obj_type_name().
- * configure.in (rb_cv_func___builtin_unreachable): try with an
- external variable not only by a warning, which might not be
- shown due to the optimization. [ruby-core:61647] [Bug #9665]
+Wed May 15 16:58:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Apr 25 13:11:49 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * configure.in: save configured load path values into verconf.in.
- * configure.in: NetBSD's ksh, used by configure, needs escapes.
+ * common.mk (verconf.h): create from verconf.in with shvar_to_cpp.rb.
-Fri Apr 25 12:51:08 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * tool/shvar_to_cpp.rb: turn shell variables into C macros.
+ [Bug #7959]
- * configure.in: correct pthread_setname_np's prototype on NetBSD.
- [Bug #9586]
+ * loadpath.c: split load path staffs from version.c.
-Thu Apr 24 23:17:25 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * dmyloadpath.c: miniruby has no builtin load paths, so verconf.h is
+ not needed.
- * lib/fileutils.rb (fu_get_uid, fu_get_gid): Etc.getpwnam/getgrnam may
- returns nil.
+Wed May 15 03:56:09 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * lib/webrick/utils.rb (su): ditto.
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: adding backwards
+ compatible YAMLTree.new method
-Thu Apr 24 22:55:22 2014 Tanaka Akira <akr@fsij.org>
+Wed May 15 02:22:16 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * bootstraptest/test_io.rb: Add etc.so to $" before require 'tmpdir'.
+ * ext/psych/lib/psych.rb: Adding Psych.safe_load for loading a user
+ defined, restricted subset of Ruby object types.
+ * ext/psych/lib/psych/class_loader.rb: A class loader for
+ encapsulating the logic for which objects are allowed to be
+ deserialized.
+ * ext/psych/lib/psych/deprecated.rb: Changes to use the class loader
+ * ext/psych/lib/psych/exception.rb: ditto
+ * ext/psych/lib/psych/json/stream.rb: ditto
+ * ext/psych/lib/psych/nodes/node.rb: ditto
+ * ext/psych/lib/psych/scalar_scanner.rb: ditto
+ * ext/psych/lib/psych/stream.rb: ditto
+ * ext/psych/lib/psych/streaming.rb: ditto
+ * ext/psych/lib/psych/visitors/json_tree.rb: ditto
+ * ext/psych/lib/psych/visitors/to_ruby.rb: ditto
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: ditto
+ * ext/psych/psych_to_ruby.c: ditto
+ * test/psych/helper.rb: ditto
+ * test/psych/test_safe_load.rb: tests for restricted subset.
+ * test/psych/test_scalar_scanner.rb: ditto
+ * test/psych/visitors/test_to_ruby.rb: ditto
+ * test/psych/visitors/test_yaml_tree.rb: ditto
-Thu Apr 24 21:09:55 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Wed May 15 02:06:35 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * man/ruby.1: fix broken link.
+ * test/psych/helper.rb: envutil is not available outside Ruby, so
+ port the functions from envutil to the test helper.
-Thu Apr 24 20:53:02 2014 Tanaka Akira <akr@fsij.org>
+ * test/psych/test_deprecated.rb: ditto
- * lib/tmpdir.rb: Don't need to rescue LoadError for etc.so.
+ * test/psych/test_encoding.rb: ditto
-Thu Apr 24 17:39:53 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed May 15 00:42:54 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * file.c (statfs_inspect): suppress warnings.
- assume those values won't be larger than LONG_LONG_MAX.
+ * signal.c: need to include unistd.h for write(2).
+ unistd.h is now included via ruby/defines.h, but should explicitly
+ include here. (suggested by kosaki)
-Thu Apr 24 11:53:28 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue May 14 23:43:05 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_asn1.c (ossl_asn1_initialize): SYMID on a value
- other than Symbol is an undefined behavior. fix up r31699.
- [ruby-core:62142] [Bug #9771]
+ * ext/socket/.document: Add ifaddr.c.
-Thu Apr 24 11:21:37 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue May 14 23:24:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (rb_sym2id, rb_sym2id_without_pindown): return 0 for
- non-symbol values, for the time being.
+ * ext/socket/extconf.rb: check for if_nametoindex() for
+ i686-w64-mingw32, and check for declarations of if_indextoname() and
+ if_nametoindex().
-Thu Apr 24 05:50:13 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/socket/ifaddr.c (ifaddr_ifindex): not-implement unless
+ if_nametoindex() is available.
- * parse.y (dsym_node_gen): like r45492, call rb_gc_resurrect().
+ * ext/socket/rubysocket.h: declare if_indextoname() and
+ if_nametoindex() if available but not declared.
-Wed Apr 23 20:36:22 2014 Tanaka Akira <akr@fsij.org>
+Tue May 14 19:58:17 2013 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
- * ext/etc/extconf.rb: Build ext/etc unconditionally.
+ * ext/dl/lib/dl/func.rb (DL::Function#call): check tainted when
+ $SAFE > 0.
+ * ext/fiddle/function.c (function_call): check tainted when $SAFE > 0.
+ * test/fiddle/test_func.rb (module Fiddle): add test for above.
-Wed Apr 23 14:10:50 2014 NARUSE, Yui <naruse@ruby-lang.org>
- * file.c (statfs_fsid): remove statfs.f_fsid because it doesn't return
- meaningful value portably. http://togetter.com/li/658517
+Tue May 14 14:51:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Apr 23 11:03:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/win32.h (INTPTR_MAX, INTPTR_MIN, UINTPTR_MAX): split
+ from intptr_t and uintptr_t, since VC9 defines the latter only in
+ crtdefs.h.
- * ext/stringio/stringio.c (strio_write): use rb_str_append to
- reuse coderange bits other than ASCII-8BIT, and keep
- taintedness. [ruby-dev:48118] [Bug #9769]
+Tue May 14 12:21:28 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Wed Apr 23 00:43:00 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * win32/win32.c (NET_LUID): mingw may have NET_LUID and not defined
+ _IFDEF_.
- * win32/win32.c, include/ruby/win32.h (ustatfs): implementation of
- statfs(2) clone. [EXPERIMENTAL]
+Tue May 14 03:33:17 2013 Koichi Sasada <ko1@atdot.net>
- * file.c (rb_io_statfs): use above function.
+ * string.c (rb_str_new_frozen): remove debug print.
- * configure.in, win32/Makefile.sub (struct statfs): available.
+Tue May 14 03:22:51 2013 Koichi Sasada <ko1@atdot.net>
-Tue Apr 22 23:56:24 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * include/ruby/ruby.h: enable to generate write barrier protected
+ arrays (T_ARRAY).
- * file.c (rb_io_stafs): use statfs(2) if fstatfs(2) is unavailable.
+Tue May 14 03:21:42 2013 Koichi Sasada <ko1@atdot.net>
- * configure.in (fstatfs): check it.
+ * include/ruby/ruby.h: enable to generate write barrier protected
+ strings (T_STRING).
-Tue Apr 22 22:15:51 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue May 14 03:19:59 2013 Koichi Sasada <ko1@atdot.net>
- * file.c (rb_io_statfs): need to define even if the system doesn't have
- fstatfs(2).
+ * include/ruby/ruby.h: enable to generate write barrier protected
+ objects (T_OBJECT).
- * test/ruby/test_file.rb (TestFile#test_statfs): skip if IO#stafs is not
- implemented.
+Tue May 14 03:17:15 2013 Koichi Sasada <ko1@atdot.net>
-Tue Apr 22 19:32:48 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * include/ruby/ruby.h: enable to generate write barrier protected
+ objects for numeric types (Float, Complex, Rational, Bignum).
- * file.c: newly added a class File::Statfs. (experimental)
+Tue May 14 03:10:59 2013 Koichi Sasada <ko1@atdot.net>
-Tue Apr 22 08:22:33 2014 Koichi Sasada <ko1@atdot.net>
+ * include/ruby/ruby.h: enable RGENGC (USE_RGENGC)
+ but no type creates write protected (sunny) objects
+ (RGENGC_WB_PROTECTED_* == 0).
- * gc.c (objspace_malloc_increase): don't cause GC by malloc_increase
- when memop type is MEMOP_TYPE_REALLOC.
+Tue May 14 02:47:30 2013 Koichi Sasada <ko1@atdot.net>
- GC at realloc is not well maintained.
- We need a time to make it safe.
- [ruby-dev:48117]
+ * gc.c: support RGENGC. [ruby-trunk - Feature #8339]
+ See this ticket about RGENGC.
-Tue Apr 22 06:54:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: Add several flags:
+ * RGENGC_DEBUG: if >0, then prints debug information.
+ * RGENGC_CHECK_MODE: if >0, add assertions.
+ * RGENGC_PROFILE: if >0, add profiling features.
+ check GC.stat and GC::Profiler.
- * gc.c (objspace_malloc_increase): run full mark if 0x04 bit is
- set in ruby_gc_stress. [ruby-core:62103] [Feature #9761]
+ * include/ruby/ruby.h: disable RGENGC by default (USE_RGENGC == 0).
- * gc.c (objspace_malloc_increase): run GC after realloc not only
- malloc and calloc by GC.stress. [ruby-core:62103] [Feature #9761]
+ * array.c: add write barriers for T_ARRAY and generate sunny objects.
-Mon Apr 21 19:12:20 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * include/ruby/ruby.h (RARRAY_PTR_USE): added. Use this macro if
+ you want to access raw pointers. If you modify the contents which
+ pointer pointed, then you need to care write barrier.
- * string.c (rb_str_coderange_scan_restartable): coderange is always
- ENC_CODERANGE_VALID if the string is ASCII-8BIT and already has a non
- ASCII character.
+ * bignum.c, marshal.c, random.c: generate T_BIGNUM sunny objects.
-Mon Apr 21 19:02:44 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * complex.c, include/ruby/ruby.h: add write barriers for T_COMPLEX
+ and generate sunny objects.
- * string.c (coderange_scan): remove useless condition `p < e` after
- search_nonascii.
+ * rational.c (nurat_s_new_internal), include/ruby/ruby.h: add write
+ barriers for T_RATIONAL and generate sunny objects.
- * string.c (rb_str_coderange_scan_restartable): ditto.
+ * internal.h: add write barriers for RBasic::klass.
-Mon Apr 21 18:55:21 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * numeric.c (rb_float_new_in_heap): generate sunny T_FLOAT objects.
- * ext/-test-/string/coderange.c: add Bug::String.new#coderange_scan
- to explicitly scan coderange.
+ * object.c (rb_class_allocate_instance), range.c:
+ generate sunny T_OBJECT objects.
-Mon Apr 21 18:19:35 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * string.c: add write barriers for T_STRING and generate sunny objects.
- * string.c (coderange_scan): remove unused logic.
+ * variable.c: add write barriers for ivars.
- * string.c (rb_str_coderange_scan_restartable): ditto.
+ * vm_insnhelper.c (vm_setivar): ditto.
-Mon Apr 21 14:11:48 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/ruby.h, debug.c: use two flags
+ FL_WB_PROTECTED and FL_OLDGEN.
- * ext/stringio/stringio.c (strio_putc): fix for non-ascii
- encoding, like as IO#putc. [ruby-dev:48114] [Bug #9765]
+ * node.h (NODE_FL_CREF_PUSHED_BY_EVAL, NODE_FL_CREF_OMOD_SHARED):
+ move flag bits.
-Sun Apr 20 12:57:15 2014 Masaya Tarui <tarui@ruby-lang.org>
+Tue May 14 01:54:48 2013 Koichi Sasada <ko1@atdot.net>
- * st.c (st_foreach_check): change start point of search at check
- from top to current. [ruby-dev:48047] [Bug #9646]
+ * gc.c: remove rb_objspace_t::marked_num.
+ We can use `objspace_live_num()' instead of removed `marked_num'
+ if it is after `after_gc_sweep()' function call.
-Sun Apr 20 08:41:33 2014 Andrew DeMaria <ademariad@gmail.com>
+ * gc.c (after_gc_sweep): use objspace_live_num() instead of removed
+ rb_objspace_t::marked_num.
- * lib/mkmf.rb (link_command, libpathflag, create_makefile): prefer
- user specified `$LIBPATH` than `$DEFLIBPATH`. [ruby-core:62100]
- [ruby-trunk - Bug #9760]
+ * gc.c (gc_mark_ptr, gc_marks): remove rb_objspace_t::marked_num code.
-Sun Apr 20 06:01:18 2014 Eric Wong <e@80x24.org>
+ * gc.c (gc_prepare_free_objects): do not call set_heaps_increment()
+ with checking objspace->heap.marked_num. At this point, we only
+ need to check availability of free-cell.
- * gc.c (rb_gc_writebarrier): drop special case for big hash/array
- [Bug #9518]
+ * gc.c (lazy_sweep): call after_gc_sweep() if there are no sweep_able entry.
-Sat Apr 19 15:38:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (rest_sweep, gc_prepare_free_objects): remove after_gc_sweep() call.
- * parse.y (primary): flush cmdarg flags inside left-paren in a
- command argument, to allow parenthesed do-block as an argument
- without arguments parentheses. [ruby-core:61950] [Bug #9726]
+Tue May 14 01:50:41 2013 Koichi Sasada <ko1@atdot.net>
-Sat Apr 19 10:07:24 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c: disable GC_PROFILE_MORE_DETAIL (fix last commit).
- * internal.h (struct RBignum): Use size_t for len.
+ * gc.c (gc_prof_set_malloc_info): fix "objspace->heap.live_num" to
+ "objspace_live_num(objspace)". There is no such member variable.
- * include/ruby/intern.h (rb_big_new): Use size_t instead of long to
- specify the size of bignum.
- (rb_big_resize): Ditto.
+Tue May 14 01:25:55 2013 Koichi Sasada <ko1@atdot.net>
- * bignum.c: Follow above changes.
+ * gc.c: refactoring GC::Profiler.
- * rational.c: Follow above changes.
+ * gc.c (gc_prof_sweep_timer_start/stop): removed because
+ they doesn't support lazy sweep.
- * marshal.c: Follow above changes.
+ * gc.c (gc_prof_sweep_slot_timer_start/stop): added.
+ redefine `sweeping time' to accumulated time of all of
+ slot_sweep().
-Sat Apr 19 00:32:07 2014 Tanaka Akira <akr@fsij.org>
+ * gc.c (rb_objspace_t::profile::count): renamed to
+ rb_objspace_t::profile::next_index. `counter' seems ambiguous.
+ increment it when next record is acquired.
- * numeric.c (rb_num2long): Returns a long.
- (rb_num2ulong): Returns a unsigned long.
+Tue May 14 00:48:55 2013 Koichi Sasada <ko1@atdot.net>
- * bignum.c (rb_big2long): Returns a long.
- (rb_big2ulong): Returns a unsigned long.
+ * include/ruby/ruby.h: constify RRational::(num,den) and
+ RComplex::(real,imag).
+ Add macro to set these values:
+ * RRATIONAL_SET_NUM()
+ * RRATIONAL_SET_DEN()
+ * RCOMPLEX_SET_REAL()
+ * RCOMPLEX_SET_IMAG()
+ This change is a part of RGENGC branch [ruby-trunk - Feature #8339].
- * include/ruby/intern.h: Follow above changes.
+ TODO: API design. RRATIONAL_SET(rat,num,den) is enough?
+ TODO: Setting constify variable with cast has same issue of r40691.
- * include/ruby/ruby.h: Follow above changes.
- (rb_num2long_inline): No need to cast.
- (rb_num2ulong_inline): Ditto.
+ * complex.c, rational.c: use above macros.
-Sat Apr 19 00:17:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 13 21:49:17 2013 Tanaka Akira <akr@fsij.org>
- * string.c (SHARABLE_SUBSTRING_P): predicate if substring can be
- shared with the original string. true if just at the end of the
- original string, for the time being. all substring will be able to
- be shared in the future.
+ * ext/socket/extconf.rb: Check socketpair again.
+ It is required on Unix.
-Fri Apr 18 21:48:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 13 21:20:32 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * string.c (rb_str_new_frozen): consider the shared string at
- middle.
+ * win32/win32.c (getipaddrs): use alternative interface name if
+ available, because if_nametoindex() requires them.
- * string.c (rb_str_subseq, rb_str_substr, str_byte_substr): share
- middle of a string.
+Mon May 13 20:23:24 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Fri Apr 18 15:40:05 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * win32/win32.c, include/ruby/win32.h (getipaddrs): [experimental]
+ emulate getipaddrs(3) on Unix.
- * string.c: use uintptr_t instead of VALUE because they are not ruby
- object.
+ * win32/Makefile.sub, configure.in (LIBS): need iphlpapi.lib for above
+ function.
-Fri Apr 18 14:51:42 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * include/ruby/win32.h (socketpair): rb_w32_socketpair() doesn't
+ substitute for any function, so use non-prefixed name.
- * string.c: check str_strlen's argument, and add comment or
- use NULL if simply it uses str's enc.
+ * ext/socket/extconf.rb (socketpair); follow above change.
-Fri Apr 18 14:32:40 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon May 13 20:11:06 2013 Koichi Sasada <ko1@atdot.net>
- * string.c (str_strlen): use enc_strlen if the coderange is known.
+ * iseq.c (prepare_iseq_build): remove additional line break.
-Fri Apr 18 14:21:21 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon May 13 19:29:54 2013 Koichi Sasada <ko1@atdot.net>
- * string.c (enc_strlen): move UTF-8 optimization from str_strlen to
- enc_strlen.
+ * include/ruby/ruby.h: constify RBasic::klass and add
+ RBASIC_CLASS(obj) macro which returns a class of `obj'.
+ This change is a part of RGENGC branch [ruby-trunk - Feature #8339].
-Fri Apr 18 08:50:18 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * object.c: add new function rb_obj_reveal().
+ This function reveal internal (hidden) object by rb_obj_hide().
+ Note that do not change class before and after hiding.
+ Only permitted example is:
+ klass = RBASIC_CLASS(obj);
+ rb_obj_hide(obj);
+ ....
+ rb_obj_reveal(obj, klass);
- * configure.in (rb_cv_getcwd_malloc): check if getcwd allocates
- buffer if NULL is given [ruby-core:62072] [Bug #9752]
+ TODO: API design. rb_obj_reveal() should be replaced with others.
-Thu Apr 17 16:28:10 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ TODO: modify constified variables using cast may be harmful for
+ compiler's analysis and optimization.
+ Any idea to prohibit inserting RBasic::klass directly?
+ If rename RBasic::klass and force to use RBASIC_CLASS(obj),
+ then all codes such as `RBASIC(obj)->klass' will be
+ compilation error. Is it acceptable? (We have similar
+ experience at Ruby 1.9,
+ for example "RARRAY(ary)->ptr" to "RARRAY_PTR(ary)".
- * prelude.rb: [DOC] Update Thread::exclusive docs by @stevenharman.
+ * internal.h: add some macros.
+ * RBASIC_CLEAR_CLASS(obj) clear RBasic::klass to make it internal
+ object.
+ * RBASIC_SET_CLASS(obj, cls) set RBasic::klass.
+ * RBASIC_SET_CLASS_RAW(obj, cls) same as RBASIC_SET_CLASS
+ without write barrier (planned).
+ * RCLASS_SET_SUPER(a, b) set super class of a.
-Thu Apr 17 10:03:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c, class.c, compile.c, encoding.c, enum.c, error.c, eval.c,
+ file.c, gc.c, hash.c, io.c, iseq.c, marshal.c, object.c,
+ parse.y, proc.c, process.c, random.c, ruby.c, sprintf.c,
+ string.c, thread.c, transcode.c, vm.c, vm_eval.c, win32/file.c:
+ Use above macros and functions to access RBasic::klass.
- * lib/fileutils.rb (FileUtils#copy_entry): update rdoc about
- preserve option and permissions, following r31123.
- [ruby-core:62065] [Bug #9748]
+ * ext/coverage/coverage.c, ext/readline/readline.c,
+ ext/socket/ancdata.c, ext/socket/init.c,
+ * ext/zlib/zlib.c: ditto.
-Wed Apr 16 23:47:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 13 18:44:14 2013 Koichi Sasada <ko1@atdot.net>
- * enum.c (dont_recycle_block_arg): fix condition to recycle block
- argument. lambda with rest can get internal array directly.
- [ruby-core:62060] [Bug #9749]
+ * *.c, parse.y, insns.def: use RARRAY_AREF/ASET macro
+ instead of using RARRAY_PTR().
-Wed Apr 16 09:51:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 13 16:53:53 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/ossl_pkey.c (ossl_pkey_verify): as EVP_VerifyFinal()
- finalizes only a copy of the digest context, the context must be
- cleaned up after initialization by EVP_MD_CTX_cleanup() or a
- memory leak will occur. [ruby-core:62038] [Bug #9743]
+ * include/ruby/ruby.h: add new utility macros to access
+ Array's element.
+ * RARRAY_AREF(a, i) returns i-th element of an array `a'
+ * RARRAY_ASET(a, i, v) set i-th element of `a' to `v'
+ This change is a part of RGENGC branch [ruby-trunk - Feature #8339].
-Tue Apr 15 19:36:42 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon May 13 15:31:10 2013 Koichi Sasada <ko1@atdot.net>
- * include/ruby/win32.h (rb_w32_cmdvector): removed.
+ * object.c (rb_obj_setup): added.
- * win32/win32.c (rb_w32_sysinit): use WCHAR version of GetCommandLine()
- internally.
+ * include/ruby/ruby.h (OBJSETUP): use rb_obj_setup() instead of
+ a macro.
- * win32/win32.c (w32_cmdvector): renamed from rb_w32_cmdvector. use
- WCHAR* instead of char* internally.
+Mon May 13 15:24:16 2013 Koichi Sasada <ko1@atdot.net>
- these changes are expected to not changing the behavior yet.
+ * gc.c (rb_data_object_alloc): check klass only if klass is not 0.
+ klass==0 means internal object.
-Tue Apr 15 19:26:05 2014 Tanaka Akira <akr@fsij.org>
+Mon May 13 14:57:28 2013 Koichi Sasada <ko1@atdot.net>
- * ext/extmk.rb: Re-generate extmk.mk and dummy makefiles only if
- really required.
- This fixes a problem to run multiple test-all concurrently as:
- make test-all & make test-all & make test-all & ...
+ * gc.c (rb_data_object_alloc, rb_data_typed_object_alloc):
+ use NEWOBJ_OF() instead of NEWOBJ().
-Tue Apr 15 12:49:53 2014 Sam Rawlins <sam.rawlins@gmail.com>
+Mon May 13 14:51:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * enum.c (enum_each_slice, enum_each_cons): make more efficient by
- allocating less and recycling block argument arrays if possible.
- [Fixes GH-596]
+ * proc.c (rb_obj_singleton_method): new method Kernel#singleton_method
+ which returns a Method object of the singleton method.
+ non-singleton method causes NameError, but not aliased or zsuper
+ method, right now.
+ [ruby-core:54914] [Feature #8391]
-Mon Apr 14 18:44:45 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * vm_method.c (rb_method_entry_at): return the method entry for id at
+ klass, without ancestors.
- * addr2line.c (fill_lines): get base addrs in fill_lines to use it
- with dladdr_fbases introduced at r45563.
- it didn't get before if the executable is not pie.
+ * class.c (rb_singleton_class_get): get the singleton class if exists,
+ or nil.
-Mon Apr 14 18:05:48 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon May 13 10:20:59 2013 Yuki Yugui Sonoda <yugui@google.com>
- * addr2line.c (main_exe_path): support FreeBSD.
- At least sh, csh, tcsh, bash, and zsh sets realpath of the main
- executable for dladdr, but gdb doesn't.
+ * ext/openssl/ossl_ssl.c: Disabled OpenSSL::SSL::SSLSocket if
+ defined(OPENSSL_NO_SOCK).
-Mon Apr 14 17:20:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ This fixes a linkage error on platforms which do not have socket.
+ OpenSSL itself is still useful as a set of cryptographic functions
+ even on such platforms.
- * proc.c (umethod_bind): use the ancestor iclass instead of new
- iclass to get rid of infinite recursion, if the defined module
- is already included. [ruby-core:62014] [Bug #9721]
+Mon May 13 10:30:04 2013 Zachary Scott <zachary@zacharyscott.net>
-Sun Apr 13 12:46:58 2014 Tanaka Akira <akr@fsij.org>
+ * hash.c: Hash[] and {} are not equivalent by @eam [Fixes GH-301]
- * bignum.c (SIZEOF_BDIGIT): Renamed from SIZEOF_BDIGITS.
+Mon May 13 10:04:22 2013 Zachary Scott <zachary@zacharyscott.net>
- * internal.h: Ditto.
+ * random.c: Document Random::DEFAULT by @eLobato [Fixes GH-304]
- * marshal.c: Ditto.
+Sun May 12 21:12:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * rational.c: Ditto.
+ * include/ruby/ruby.h (OFFT2NUM): RUBY_REPLACE_TYPE also defines macro
+ to convert int type to VALUE if found.
-Sun Apr 13 10:18:09 2014 Tanaka Akira <akr@fsij.org>
+Wed May 8 13:46:52 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * common.mk: Unused target, $(MKMAIN_CMD), removed.
+ * include/ruby/intern.h (rb_iv_set, rb_iv_get): removed. Because
+ ruby.h has a declaration for that.
- * Makefile.in (MKMAIN_CMD): Unused macro removed.
+Wed May 8 13:49:06 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * win32/Makefile.sub (MKMAIN_CMD): Ditto.
+ * include/ruby/intern.h (rb_uint2big, rb_int2big, rb_uint2inum)
+ (rb_int2inum, rb_ll2inum, rb_ull2inum): removed because ruby.h
+ has a declaration for these.
-Sat Apr 12 22:11:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun May 12 17:52:23 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * string.c (sym_to_proc), proc.c (rb_block_clear_env_self): clear
- caller's self which is useless, so that it can get collected.
- [Fixes GH-592]
+ * configure.in: removes 'ac_cv_func_fseeko=yes' form MinGW
+ specific definitions.
-Sat Apr 12 09:26:48 2014 Eric Hodel <drbrain@segment7.net>
+Sun May 12 17:25:46 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/openssl/ossl_ocsp.c: [DOC] Document OpenSSL::OCSP.
+ * file.c (rb_file_s_truncate): use correct type. chsize takes
+ a long.
-Fri Apr 11 18:52:38 2014 Koichi Sasada <ko1@atdot.net>
+Sun May 12 17:18:46 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * array.c (ARY_SET): added.
+ * process.c: move '#define HAVE_SPAWNV 1' to win32/Makefile.sub.
+ * win32/Makefile.sub: see above.
- ARY_SET() is same functionality of RARRAY_ASET(), but
- it has an assertion (`ary' doesn't have shared array).
+Sun May 12 17:13:32 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Fri Apr 11 16:54:26 2014 Koichi Sasada <ko1@atdot.net>
+ * configure.in: removes AC_CHECK_FUNCS(setitimer) because it's
+ unused.
- * array.c: make shared arrays WB-protected objects.
+Sun May 12 17:08:16 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- Shared arrays were WB-unprotected object because
- sharing array can modify shared array's buffer
- if it occupied shared array.
+ * configure.in: removes AC_CHECK_FUNCS(pause) because it's unused.
- [sharing array (ary)] -> [shared array (shared)] -> <buff>
- | A
- +---------------------------------------+
- write `buff' with WB(ary, &buff[i], obj)
- -> if `ary' and `shared' are old, then only `ary'
- will be remembered.
- -> traverse from `ary'. But `shared' is old, so
- that written `obj' is not marked.
+Sun May 12 17:05:18 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- It cause WB miss so that shared arrays were WB-unprotected.
- (WB-unprotected objects are marked everytime if it is living)
+ * signal.c (rb_f_kill): fixes typo. s/HAS_KILLPG/HAVE_KILLPG/.
- This patch insert WB() for `shared' if it is needed.
+Sun May 12 17:03:27 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Fri Apr 11 15:05:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: abort if gettimeofday doesn't exist.
- * proc.c (rb_method_call_with_block, umethod_bind): call with
- IClass including the module for a module instance method.
- [ruby-core:61936] [Bug #9721]
+Sun May 12 16:31:27 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * vm_insnhelper.c (vm_search_super_method): allow bound
- UnboundMethod case.
+ * configure.in: adds RUBY_REPLACE_TYPE(off_t) for creating
+ NUM2OFFT.
+ * file.c (rb_file_truncate): use correct type. chsize() take
+ a long.
+ * include/ruby/ruby.h (NUM2OFFT): use a definition created by
+ a configure script by default.
-Fri Apr 11 12:02:30 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Sun May 12 16:03:41 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * addr2line.c (rb_dump_backtrace_with_lines): set base address
- which is retrieved from dladdr to dladdr_fbases, to skip already
- parsed objects.
+ * configure.in: removes AC_CHECK_FUNC(fseeko, fseeko64, ftello,
+ ftello64). They are not used from anywhere.
-Fri Apr 11 12:44:50 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/win32.c (fseeko): removes.
+ * win32/win32.c (rb_w32_ftello): removes.
+ * include/ruby/win32.h: removes declarations of rb_w32_ftello and
+ rb_w32_fseeko.
+ * win32/Makefile.sub: removes '#define HAVE_FTELLO 1'.
- * array.c (ary_reject): may be turned into a shared array during
- the given block. [ruby-dev:48101] [Bug #9727]
+Sun May 12 15:51:47 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Thu Apr 10 23:41:21 2014 Akinori MUSHA <knu@iDaemons.org>
+ * configure.in: remove AC_CHECK_FUNC(close). It is not used from
+ anywhere.
- * lib/net/ftp.rb (Net::FTP#login): [DOC] The default password for
- anonymous login was changed to "anonymous@" in r25313.
+Sun May 12 15:50:45 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Thu Apr 10 19:22:58 2014 Koichi Sasada <ko1@atdot.net>
+ * configure.in: adds comments for setjmp check.
- * test/ruby/test_array.rb: remove useless `assert'.
+Sun May 12 15:38:09 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Thu Apr 10 19:11:11 2014 Koichi Sasada <ko1@atdot.net>
+ * configure.in: move clock_gettime() check into regular place.
- * array.c (rb_ary_modify): remember shared array owner if a shared
- array owner is promoted and a shared array is not promoted.
+Wed May 8 13:45:53 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- Now, shared array is WB-unprotected so that shared arrays are not
- promoted. All objects referred from shared array should be marked
- correctly.
+ * configure.in: add getenv() declaration check.
+ * dln_find.c: add HAVE_DECL_GETENV test.
- [ruby-core:61919] [ruby-trunk - Bug #9718]
+Sun May 12 15:33:18 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * test/ruby/test_array.rb: add a test for above.
+ * configure.in: sorts AC_CHECK_FUNCS()s as alphabetical order.
-Thu Apr 10 18:57:12 2014 Koichi Sasada <ko1@atdot.net>
+Wed May 8 13:41:57 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * gc.c (gc_verify_internal_consistency): move lines and enable
- allrefs_dump() on RGENGC_CHECK_MODE >= 4.
+ * bignum.c: remove redundant decl for big_lshift() big_rshift().
-Thu Apr 10 15:01:06 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Sun May 12 16:06:43 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * addr2line.c (append_obj): clear allocated memory.
+ * ext/socket/rubysocket.h (rsock_inspect_sockaddr): as r40646
+ check HAVE_TYPE_STRUCT_SOCKADDR_DL.
- * addr2line.c (rb_dump_backtrace_with_lines): free `base_addrs'.
+Sat May 11 23:01:58 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Thu Apr 10 14:40:18 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/socket/rubysocket.h (HAVE_TYPE_STRUCT_SOCKADDR_DL):
+ MSVC has struct sockaddr_dl, but its content is broken.
+ http://ruby-mswin.cloudapp.net/vc10-x64/ruby-trunk/log/20130511T103938Z.log.html.gz
- * gc.c (rb_gc_writebarrier_unprotect_promoted): disable to dump debug
- message when RGENGC_CHECK_MODE == 0.
+Sat May 11 22:07:42 2013 Tanaka Akira <akr@fsij.org>
-Thu Apr 10 08:13:47 2014 Tanaka Akira <akr@fsij.org>
+ * test/rinda/test_rinda.rb: Socket.getifaddrs may returns an interface
+ which #addr method returns nil for venet0 in OpenVZ.
- * signal.c (check_stack_overflow): Don't use ucontext_t if ucontext.h
- is not available.
- Fixes build on Android (x86).
+Sat May 11 21:56:34 2013 Tanaka Akira <akr@fsij.org>
-Wed Apr 9 23:22:44 2014 Tanaka Akira <akr@fsij.org>
+ * ext/socket/raddrinfo.c (rsock_inspect_sockaddr): Add casts to
+ suppress warnings.
- * gc.c (mark_current_machine_context): Call SET_STACK_END.
- This reverts a hunk of r40703 by ko1.
- This fixes [ruby-dev:48098] [Bug #9717].
+Sat May 11 17:28:51 2013 Tanaka Akira <akr@fsij.org>
-Wed Apr 9 21:02:04 2014 Tanaka Akira <akr@fsij.org>
+ * ext/socket: New method, Socket.getifaddrs, implemented.
+ [ruby-core:54777] [Feature #8368]
- * process.c (OBJ2UID1): Defined even if getpwnam_r is not usable.
- (OBJ2GID1): Defined even if getgrnam_r is not usable.
- This fixes compilation error on Android.
+Sat May 11 00:47:22 2013 Tanaka Akira <akr@fsij.org>
-Wed Apr 9 15:16:59 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.h (SET_MACHINE_STACK_END): Add !defined(_ILP32) to a defining
+ condition to avoid compilation error on x32.
+ https://sites.google.com/site/x32abi/
- * encoding.c (rb_enc_default_internal): fix rdoc. `__FILE__` is
- in filesystem encoding but not `default_internal`.
- [ruby-core:61894] [Bug #9713]
+Fri May 10 23:56:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Apr 9 14:43:00 2014 Koichi Sasada <ko1@atdot.net>
+ * parse.y (parser_peek_variable_name): treat invalid global, class,
+ and instance variable names as mere strings rather than errors.
+ [ruby-core:54885] [Bug #8375]
- * test/ruby/test_gc.rb: more long timeout.
- This test failed under RGENGC_CHECK_MODE >= 2.
+Fri May 10 20:22:40 2013 Tanaka Akira <akr@fsij.org>
-Wed Apr 9 13:07:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: Move library checks into "Checks for libraries." part.
- * configure.in: get rid of __builtin_setjmp/__builtin_longjmp on
- x64-mingw, which causes SEGV with callcc.
- [ruby-core:61887] [Bug #9710]
+Fri May 10 19:32:01 2013 Tanaka Akira <akr@fsij.org>
-Wed Apr 9 12:44:54 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: Reformat arguments of AC_CHECK_HEADERS and
+ AC_CHECK_FUNCS to track modifications easily.
- * string.c (str_buf_cat): should round up the capacity by 4KiB,
- but not number of rooms. [ruby-core:61886] [Bug #9709]
+Fri May 10 12:01:36 2013 Tanaka Akira <akr@fsij.org>
-Tue Apr 8 22:55:32 2014 Akinori MUSHA <knu@iDaemons.org>
+ * configure.in: Don't link librt if clock_gettime is available in
+ the main C library.
+ glibc 2.17 moves clock_* from librt to the main C library.
+ http://sourceware.org/ml/libc-announce/2012/msg00001.html
- * lib/mkmf.rb (MakeMakefile#dir_config): [DOC] Improve
- documentation.
+Thu May 9 22:00:35 2013 Tanaka Akira <akr@fsij.org>
-Tue Apr 8 22:31:44 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/socket/ancdata.c (bsock_sendmsg_internal): controls_num should
+ not be negative.
- * gc.c: rename `RGENGC_THREEGEN' to `RGENGC_AGE2_PROMOTION'.
+Thu May 9 21:09:57 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (rgengc_rememberset_mark): don't promote, but remain in
- remember set for infant objects.
+ * file.c, ext/etc/etc.c, ext/socket/unixsocket.c,
+ ext/openssl/ossl.h, ext/openssl/openssl_missing.c: Use
+ HAVE_AGGREGATE_MEMBER instead of HAVE_ST_MEMBER.
- * gc.c (RVALUE_PROMOTE_INFANT, RVALUE_PROMOTE_YOUNG): count numbers
- in these functions.
+Thu May 9 20:43:41 2013 Tanaka Akira <akr@fsij.org>
-Mon Apr 7 21:11:49 2014 Tanaka Akira <akr@fsij.org>
+ * ext/socket/ancdata.c (bsock_sendmsg_internal): Always set
+ controls_num to raise NotImplementedError appropriately.
+ (bsock_recvmsg_internal): Raise NotImplementedError if
+ :scm_rights=>true is given on platforms which don't have
+ 4.4BSD style control message.
- * ext/socket/socket.c (sock_s_getnameinfo): Save errno for EAI_SYSTEM.
- Reported by Saravana kumar. [ruby-core:61820] [Bug #9697]
- Fixed by Heesob Park. [ruby-core:61868]
+Thu May 9 12:06:07 2013 Tanaka Akira <akr@fsij.org>
-Mon Apr 7 07:20:23 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/socket/rubysocket.h, ext/socket/unixsocket.c,
+ ext/socket/ancdata.c: Use HAVE_STRUCT_MSGHDR_MSG_CONTROL instead
+ of HAVE_ST_MSG_CONTROL.
- * lib/xmlrpc/client.rb (do_rpc): don't check body length.
- If HTTP content-encoding is used, the length may be different.
- [Bug #8182] [ruby-core:53811]
+Thu May 9 11:30:02 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Apr 7 02:39:48 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * string.c: Add call-seq alias for String#=== [Bug #8381]
- * lib/matrix.rb: Add Matrix#cofactor [fix GH-568]
- Add first_minor [fix GH-568]
- Handle empty diagonal matrix case [fix GH-576]
- Patches by gogotanaka
+Thu May 9 11:14:18 2013 Zachary Scott <zachary@zacharyscott.net>
-Sun Apr 6 08:52:50 2014 Bugra Barin <bugrabarin@hotmail.com>
+ * doc/contributing.rdoc: Add guide for contributing to CRuby
- * dln.c (dln_load): use wchar version to load a library in
- non-ascii path on Windows. based on the patch by Bugra Barin
- <bugrabarin AT hotmail.com> in [ruby-core:61845]. [Bug #9699]
+Thu May 9 04:55:49 2013 Tanaka Akira <akr@fsij.org>
-Sat Apr 5 19:36:33 2014 Tadayoshi Funaba <tadf@dotrb.org>
+ * configure.in: Check socket library again. shutdown() is used in
+ io.c.
- * ext/date/date_core.c (d_lite_cmp): should compare with #<.
+Thu May 9 01:52:31 2013 Tanaka Akira <akr@fsij.org>
-Sat Apr 5 00:31:21 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: Don't check socketpair. socketpair is not used in
+ ruby command itself.
- * ext/readline/extconf.rb (rl_hook_func_t): check pointer type.
- [ruby-dev:48089] [Bug #9702]
+Thu May 9 01:05:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Apr 4 07:13:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * class.c (rb_mod_included_modules): should not include non-modules.
+ [ruby-core:53158] [Bug #8025]
- * configure.in (ac_cv_func___builtin_setjmp): should not skip
- flags restoration in RUBY_WERROR_FLAG by `break`.
- [ruby-dev:48086] [Bug #9698]
+Wed May 8 22:46:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Apr 2 21:50:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * class.c (rb_mod_included_modules): should not include the original
+ module itself. [ruby-core:53158] [Bug #8025]
- * configure.in (ac_cv_func___builtin_setjmp): __builtin_longjmp()
- in Apple LLVM 5.1 (LLVM 3.4svn) uses `void**`, not `jmp_buf`.
- [Bug #9692]
+Wed May 8 17:43:55 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Wed Apr 2 20:57:15 2014 Koichi Sasada <ko1@atdot.net>
+ * io.c (rb_io_ext_int_to_encs): ignore internal encoding if external
+ encoding is ASCII-8BIT. [Bug #8342]
- * gc.c, gc.h (rb_objspace_each_objects_without_setup):
- Add a new (hidden) C-API to iterate objspace snapshot.
+Wed May 8 13:49:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
- This API is not safe to call any C-APIs in a given callback
- function. Be careful to use this C-API.
+ * ext/json/generator/generator.c (isArrayOrObject): cast char to
+ unsigned char. [Bug #8378]
-Wed Apr 2 17:43:17 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed May 8 13:46:10 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * configure.in (ac_cv_func___builtin_setjmp): gcc 4.9 disallows a
- variable as the second argument of __builtin_longjmp().
- [ruby-core:61800] [Bug #9692]
+ * ext/json/generator/depend: fix dependencies [Bug #8379]
-Wed Apr 2 15:12:18 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/json/parser/depend: ditto.
- * common.mk: Use redmine-2.x url for DeveloperHowto wiki.
- [ruby-core:60657] [Bug #9511]
+Wed May 8 13:07:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Apr 2 11:46:29 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * parse.y (parser_yylex): fail if $, @, @@ are not followed by a valid
+ name character. [ruby-core:54846] [Bug #8375].
- * ext/pathname/lib/pathname.rb (Pathname#join): Fix error with
- empty args. Reported by ko1 via IRC.
+Wed May 8 13:06:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/pathname/test_pathname.rb (TestPathname#test_join): Add the
- test for above case.
+ * include/ruby/ruby.h (ISGRAPH): add missing macro.
-Tue Apr 1 11:39:57 2014 James Edward Gray II <james@graysoftinc.com>
+Wed May 8 06:42:56 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/csv.rb: Symbol HeaderConverter: strip leading/trailing space.
- Reported by Skye Shaw
- [Fixes GH-575]
+ * ext/socket/socket.c (socket_s_ip_address_list): fix wrongly filled
+ sin6_scope_id on KAME introduced by r40593 for OpenIndiana.
+ KAME uses fe80:<scope_id>::<interface id> for link-local address
+ internally.
+ Setting sin6_scope_id causes it leaked.
+ see also comments of sockaddr_obj().
-Tue Apr 1 11:34:04 2014 James Edward Gray II <james@graysoftinc.com>
+Tue May 7 22:12:34 2013 Tanaka Akira <akr@fsij.org>
- * lib/csv.rb: Don't attempt to convert nil headers.
- Reported by Skye Shaw
+ * ext/readline/readline.c (insert_ignore_escape): Add a cast to
+ unsigned char * before dereference.
+ This suppress a warning on Cygwin.
-Tue Apr 1 17:29:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue May 7 12:15:24 2013 Tanaka Akira <akr@fsij.org>
- * tool/config_files.rb (ConfigFiles.download): show failed URI.
- [ruby-core:61792] [Bug #9690]
+ * ext/socket/ancdata.c (bsock_recvmsg_internal): Add a cast to
+ suppress warning.
+ Bionic defines socklen_t as int.
+ Bionic defines msg_controllen as unsigned int (__kernel_size_t)
+ instead of socklen_t as POSIX.
-Tue Apr 1 12:06:49 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Tue May 7 12:12:42 2013 Tanaka Akira <akr@fsij.org>
- * addr2line.c (rb_dump_backtrace_with_lines): don't depend hard coded
- symbol '_start'.
+ * ext/socket/ancdata.c (ancillary_inspect): Don't call
+ anc_inspect_ipv6_pktinfo if !HAVE_TYPE_STRUCT_IN6_PKTINFO.
+ anc_inspect_ipv6_pktinfo is not defined in the case.
- * addr2line.c (fill_lines): instead of above, get a dynamic symbol
- in the main executable and use it to know the base address.
+Tue May 7 12:10:52 2013 Tanaka Akira <akr@fsij.org>
- * addr2line.c (follow_debuglink0): use obj_info_t instead of
- line_info_t to handle object related data.
+ * ext/socket/socket.c (socket_s_ip_address_list): Cast EXTRA_SPACE as
+ int. This suppress a warning.
- * addr2line.c (main_exe_path): defined for Linux.
+Tue May 7 12:09:29 2013 Tanaka Akira <akr@fsij.org>
-Tue Apr 1 08:58:39 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+ * ext/socket/extconf.rb: Set close_fds false for Cygwin.
+ Cygwin doesn't support fd passing.
+ This enables socket extension library cross-compilable by default.
- * parse.y (rb_str_dynamic_intern): set mark bit if dynamic symbol
- is before sweeping.
+Tue May 7 12:07:35 2013 Tanaka Akira <akr@fsij.org>
-Tue Apr 1 07:37:00 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * pack.c (swap32): Don't redefine it if it is already defined.
+ Bionic defines it.
+ (swap64): Ditto.
- * addr2line.c (fill_lines): use dynsym, which is used for dynamic
- linking and always exists, if there's no symtab.
+Mon May 6 20:50:37 2013 Tanaka Akira <akr@fsij.org>
-Tue Apr 1 07:27:15 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/socket/socket.c (socket_s_ip_address_list): Fill sin6_scope_id
+ if getifaddrs() returns an IPv6 link local address which
+ sin6_scope_id is zero, such as on OpenIndiana SunOS 5.11.
- * vm_dump.c (rb_print_backtrace): current implementation
- uses dladdr to get the path of objects.
+Sun May 5 18:56:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Mar 31 23:57:45 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * insns.def (defined): use vm_search_superclass() like as normal super
+ call. based on a patch <https://gist.github.com/wanabe/5520026> by
+ wanabe.
- * ext/readline/extconf.rb: fix typo, `$defs` not `$DEFS`.
- [ruby-core:61756] [Bug #9578]
+ * vm_insnhelper.c (vm_search_superclass): return error but not raise
+ exceptions.
-Mon Mar 31 17:23:50 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm_insnhelper.c (vm_search_super_method): check the result of
+ vm_search_superclass and raise exceptions on error.
- * test/ruby/memory_status.rb: require envutil before accessing EnvUtil
- module. reported by ko1 via twitter.
+Sun May 5 16:29:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Mar 31 10:28:01 2014 Eric Wong <e@80x24.org>
+ * insns.def (defined): get method entry from the method top level
+ frame, not block frame. [ruby-core:54769] [Bug #8367]
- * st.c (st_init_table_with_size): update comment
- [Feature #9425]
+Sun May 5 13:28:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 30 23:39:26 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * template/ruby.pc.in (Cflags): use rubyarchhdrdir for multiarch.
+ [Bug #7874]
- * win32/win32.c (rb_w32_accept, open_ifs_socket, socketpair_internal):
- reset inherit flag of socket to avoid unintentional inheritance of
- socket. note that the return value of SetHandleInformation() is not
- verified intentionally because old Windows may return an error.
- [Bug #9688] [ruby-core:61754]
+Sat May 4 07:20:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Mar 29 13:04:22 2014 Koichi Sasada <ko1@atdot.net>
+ * doc/security.rdoc: Add note about reporting security vulns
- * gc.c (gc_before_sweep): cap `malloc_limit' to
- gc_params.malloc_limit_max. It can grow and grow with such case:
- `loop{"a" * (1024 ** 2)}'
- [Bug #9687]
+Sat May 4 04:13:27 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- This issue is pointed by Tim Robertson.
- http://www.omniref.com/blog/blog/2014/03/27/ruby-garbage-collection-still-not-ready-for-production/
+ * include/ruby/defines.h (RUBY_ATTR_ALLOC_SIZE): New for
+ attribute((alloc_size(params))).
-Fri Mar 28 19:32:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/defines.h (xmalloc, xmalloc2, xcalloc)
+ (xrealloc, xrealloc2): Annotated by RUBY_ATTR_ALLOC_SIZE.
+ * include/ruby/ruby.h (rb_alloc_tmp_buffer): ditto.
- * struct.c (not_a_member): extract name error and use same error
- messages. based on the patch by Marcus Stollsteimer <sto.mar AT
- web.de> at [ruby-core:61721]. [Bug #9684]
+Fri May 3 19:32:13 2013 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
-Fri Mar 28 09:21:54 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * lib/cgi/util.rb: All class methods modulized.
+ We can use these methods like a function when "include CGI::Util".
+ [Feature #8354]
- * ext/psych/psych.gemspec: update gemspec for psych-2.0.5
+Fri May 3 14:09:45 2013 Tanaka Akira <akr@fsij.org>
-Fri Mar 28 09:11:06 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/socket/extconf.rb: Make default_ipv6 true for Cygwin.
+ Cygwin supports IPv6 since Cygwin 1.7.1 (2009-12).
+ http://cygwin.com/ml/cygwin-announce/2009-12/msg00027.html
- * ext/psych/lib/psych.rb: Merge psych-2.0.5. bump version to
- libyaml-0.1.6 for CVE-2014-2525.
- * ext/psych/yaml/config.h: ditto.
- * ext/psych/yaml/scanner.c: ditto.
- * ext/psych/yaml/yaml_private.h: ditto.
+Fri May 3 13:35:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Mar 27 18:58:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/{getaddrinfo,getnameinfo}.c: define socklen_t if not
+ defined, e.g., older VC.
- * re.c (match_regexp): set regexp for MatchData from string.
+Fri May 3 13:29:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * re.c (rb_backref_set_string): create MatchData from string and
- set backref.
+ * include/ruby/win32.h (INTPTR_MAX, INTPTR_MIN, UINTPTR_MAX): also
+ should be defined when defining intptr_t and uintptr_t.
+ bigdecimal.c requires the former two now.
- * string.c (rb_pat_search, rb_str_sub, rb_str_sub_bang, str_gsub),
- (scan_once, rb_str_scan, rb_str_partition): use rb_str_index
- instead of rb_reg_search() when pattern is a String. based on
- the patch by Sam Rawlins <sam.rawlins@gmail.com> [Fixes GH-579]
+Fri May 3 13:22:12 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Mar 27 11:58:55 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * win32/win32.c (poll_child_status): fix build error on older mingw.
- * addr2line.c (fill_lines): check shdr[i].sh_type because even if
- .symtab section exists, the section's type can be SHT_NOBITS and
- actual data doesn't exist in the file.
- revert r45441.
+Fri May 3 00:15:58 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
-Wed Mar 26 14:57:35 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * common.mk: remove timestamps in distclean-ext realclean-ext.
- * parse.y: inline must be static (for mswin).
- fixed build error introduced at r45426.
+Thu May 2 23:23:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Mar 26 14:33:00 2014 Narihiro Nakamura <authornari@gmail.com>
+ * object.c (rb_obj_is_kind_of): skip prepending modules.
+ [ruby-core:54742] [Bug #8357]
- * internal.h (USE_SYMBOL_GC): enable Symbol GC by default (USE_SYMBOL_GC == 1).
+ * object.c (rb_class_inherited_p): ditto.
+ [ruby-core:54736] [Bug #8357]
-Tue Mar 25 22:57:11 2014 Narihiro Nakamura <authornari@gmail.com>
+Thu May 2 22:11:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y: support Symbol GC. [ruby-trunk Feature #9634]
- See this ticket about Symbol GC.
+ * bin/irb: remove dead code from sample/irb.rb.
- * include/ruby/ruby.h:
- Declare few functions.
- * rb_sym2id: almost same as old SYM2ID but support dynamic symbols.
- * rb_id2sym: almost same as old ID2SYM but support dynamic symbols.
- * rb_sym2str: almost same as `rb_id2str(SYM2ID(sym))` but not
- pin down a dynamic symbol.
- Declare a new struct.
- * struct RSymbol: represents a dynamic symbol as object in
- Ruby's heaps.
- Add few macros.
- * STATIC_SYM_P: check a static symbol.
- * DYNAMIC_SYM_P: check a dynamic symbol.
- * RSYMBOL: cast to RSymbol
+Thu May 2 17:32:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c: declare RSymbol. support T_SYMBOL.
+ * marshal.c (copy_ivar_i): get rid of overwriting already copied
+ instance variables. c.f. [Bug #8276]
- * internal.h: Declare few functions.
- * rb_gc_free_dsymbol: free up a dynamic symbol. GC call this
- function at a sweep phase.
- * rb_str_dynamic_intern: convert a string to a dynamic symbol.
- * rb_check_id_without_pindown: not pinning function.
- * rb_sym2id_without_pindown: ditto.
- * rb_check_id_cstr_without_pindown: ditto.
+Thu May 2 16:55:43 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (Init_String): String#intern and String#to_sym use
- rb_str_dynamic_intern.
+ * thread.c (id_locals): use cached ID.
- * template/id.h.tmpl: use LSB of ID as a flag for determining a
- static symbol, so we shift left other ruby_id_types.
+ * vm.c (ruby_thread_init): ditto.
- * string.c: use rb_sym2str instead `rb_id2str(SYM2ID(sym))` to
- avoid pinning.
+ * defs/id.def: add more predefined IDs used in core.
- * load.c: use xx_without_pindown function at creating temporary ID
- to avoid pinning.
+Thu May 2 13:42:42 2013 Ryan Davis <ryand-ruby@zenspider.com>
- * object.c: ditto.
+ * lib/minitest/*: Imported minitest 4.7.4 (r8483)
+ * test/minitest/*: ditto
- * sprintf.c: ditto.
+Thu May 2 11:32:22 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * struct.c: ditto.
+ * win32/win32.c (poll_child_status): [experimental] set the cause of
+ a child's death to status if its exitcode seems to be an error.
- * thread.c: ditto.
+ * test/ruby/test_process.rb (TestProcess#test_no_curdir): maybe now
+ we can test it.
- * variable.c: ditto.
+ * test/ruby/test_thread.rb (TestThread#test_thread_timer_and_interrupt):
+ ditto.
- * vm_method.c: ditto.
+Thu May 2 11:24:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Wed Mar 26 13:25:54 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * lib/yaml.rb: nodoc EngineManager, add History doc #8344
- * addr2line.c (fill_lines): loop reverse order not to overwrite
- the basis of base addresses comparison.
+Wed May 1 21:11:17 2013 Tanaka Akira <akr@fsij.org>
- * addr2line.c: use uintptr_t instead of intptr_t for pointers.
+ * time.c (localtime_with_gmtoff_zone): musl libc may return NULL for
+ tm_zone.
- * addr2line.c (rb_dump_backtrace_with_lines): don't use syms.
+Wed May 1 18:59:36 2013 Benoit Daloze <eregontp@gmail.com>
- * vm_dump.c (rb_print_backtrace): ditto.
+ * enum.c (Enumerable#chunk): fix grammar of error message
+ for symbols beginning with an underscore [Bug #8351]
- * addr2line.h: ditto.
+Wed May 1 16:47:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Mar 26 11:20:50 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/curses/extconf.rb (curses_version): try once for each tests, a
+ function or a variable. fallback to variable for old SVR4.
- * marshal.c (w_object): internal objects are not dumpable.
- [ruby-core:61677] [Bug #9674]
+Wed May 1 16:17:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/thread/thread.c (undumpable): ConditionVariable and Queue
- are not dumpable. [ruby-core:61677] [Bug #9674]
+ * ext/extmk.rb (extmake): extensions not to be installed should not
+ make static libraries, but make dynamic libraries always.
-Wed Mar 26 10:36:39 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed May 1 12:20:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * addr2line.c (follow_debuglink): show message if it closes opened
- (and maybe used) elf binary.
+ * lib/rake/version.rb: Fix RDoc warning with :include: [Bug #8347]
-Wed Mar 26 10:34:25 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed May 1 11:40:25 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * addr2line.c (fill_line): pass and use offset instead of
- curobj_baseaddr.
+ * defs/id.def (predefined): add "idProc".
-Wed Mar 26 09:07:48 2014 Yutaka Kanemoto <kanemoto@ruby-lang.org>
+ * eval.c (frame_func_id): use predefined IDs.
- * configure.in: add --disable-pie. [Feature #9673]
+ * proc.c (mnew, mproc, mlambda): use predefined IDs.
-Wed Mar 26 08:47:04 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * vm.c (rb_vm_control_frame_id_and_class): ditto.
- * addr2line.c (fill_lines): don't run fill_lines multiple times.
+ * vm.c (Init_VM): ditto.
-Wed Mar 26 08:45:00 2014 Sam Rawlins <sam.rawlins@gmail.com>
+Tue Apr 30 23:18:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * internal.h: add prototype for rb_reg_search0
+ * lib/benchmark.rb: Update Benchmark results on newer CPU
- * re.c: rename rb_reg_search to rb_reg_search0, add set_backref_str
- argument to allow callers to indicate that they don't require the
- backref string to be allocated.
+Tue Apr 30 12:31:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c: don't allocate backref str if replacement string is provided
+ * proc.c (mproc, mlambda): use frozen core methods instead of plain
+ global methods, so that methods cannot be overridden.
+ [ruby-core:54687] [Bug #8345]
- [GH-578] [Bug #9676] [ruby-core:61682]
+ * vm.c (Init_VM): define proc and lambda on the frozen core object.
-Wed Mar 26 08:29:43 2014 mo khan <mo@mokhan.ca>
+ * include/ruby/intern.h (rb_block_lambda): add declaration instead of
+ deprecated rb_f_lambda.
- * lib/rubygems.rb: fix spelling of Jim Weirich. [Fixes GH-577]
+Mon Apr 29 17:02:30 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Wed Mar 26 01:55:45 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/nkf/nkf-utf8/nkf.h: Bionic libc doesn't have locale.
+ [Feature #8338]
- * addr2line.c (rb_dump_backtrace_with_lines): a function to get must
- be a function in the main executable, whose absolute path is not
- available by dladdr, and ruby get it by /proc/self/exe on Linux.
-Wed Mar 26 01:34:50 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Apr 29 06:58:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * addr2line.c (fill_lines): skip if path is NULL.
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): no need of alloca for
+ small fixed size array.
-Tue Mar 25 23:57:17 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): check overflow first,
+ and use alloca for small size input.
- * parse.y (parser_yylex): only a newline after label should be
- significant. [ruby-core:61658] [Bug #9669]
+Mon Apr 29 00:40:13 2013 Benoit Daloze <eregontp@gmail.com>
-Tue Mar 25 23:32:25 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * lib/yaml.rb: Clarify documentation about YAML being always Psych.
+ Give a tip about using Syck. See #8344.
- * ext/pathname/lib/pathname.rb (Pathname#join): remove unnecessary
- unshift.
+Sun Apr 28 23:34:01 2013 Benoit Daloze <eregontp@gmail.com>
- * test/pathname/test_pathname.rb (TestPathname#test_join): add tests.
+ * lib/yaml.rb: Use another trick to define the YAML module.
+ https://twitter.com/n0kada/status/328342207511801856
-Tue Mar 25 16:47:36 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Apr 28 23:19:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * parse.y (lex_state_e, parser_params, f_arglist, parser_yylex):
- separate EXPR_LABELARG from EXPR_BEG and let newline significant,
- so that required keyword argument can place at the end of
- argument list without parentheses. [ruby-core:61658] [Bug #9669]
+ * lib/pp.rb: Update PP module overview by @geopet
-Mon Mar 24 22:19:56 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Apr 28 22:04:37 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * parse.y (ripper_initialize): filename can not be modified.
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): fix buffer overflow on
+ x64 Windows and memory leak when initializing with integer.
+ [ruby-core:54615] [Bug #8337]
-Mon Mar 24 15:19:47 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Sun Apr 28 12:38:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * addr2line.c (rb_dump_backtrace_with_lines): fetch path of the
- executable from /proc/self/exe on Linux.
+ * README.EXT: correct method name to be used. [Bug #7982]
-Mon Mar 24 14:14:37 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * README.EXT.ja: add notes too.
- * gc.c: Fix up default GC params by @csfrancis [fix GH-556]
+Sun Apr 28 10:35:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Mar 24 13:13:36 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * object.c: With feedback from Steve Klabnik, reverted a change to
+ #untrusted? and #tainted?. Also adjusted grammar for $SAFE levels
- * addr2line.c (parse_debug_line_cu): explicitly specify signed char
- because DWARF's line_Base is signed char and char maybe unsigned.
- patched by Rei Odaira. [ruby-dev:48068] [Bug #9654]
+Sun Apr 28 10:10:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sun Mar 23 11:03:50 2014 Kohei Suzuki <eagletmt@gmail.com>
+ * lib/yaml.rb: Disable setting YAML const twice [ruby-core:54642]
- * vm_method.c (rb_method_entry_get_without_cache): me->klass is 0
- for a method aliased in a module. [ruby-core:61636] [Bug #9663]
+Sun Apr 28 09:50:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sun Mar 23 08:12:27 2014 Eric Wong <e@80x24.org>
+ * object.c: Documentation for taint and trust [Bug #8162]
- * st.c (hash_pos): use bitwise AND to avoid slow modulo op
- (new_size): power-of-two sizes for hash_pos change
- (st_numhash): adjust for common keys due to lack of prime modulo
- [Feature #9425]
- * hash.c (rb_any_hash): right shift for symbols
- * benchmark/bm_hash_aref_miss.rb: added to show improvement
- * benchmark/bm_hash_aref_sym_long.rb: ditto
- * benchmark/bm_hash_aref_str.rb: ditto
- * benchmark/bm_hash_aref_sym.rb: ditto
- * benchmark/bm_hash_ident_num.rb: added to prevent regression
- * benchmark/bm_hash_ident_obj.rb: ditto
- * benchmark/bm_hash_ident_str.rb: ditto
- * benchmark/bm_hash_ident_sym.rb: ditto
+Sun Apr 28 09:40:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Mar 22 22:56:45 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * README.EXT: Copy note from r40505 for rb_sprintf() [Bug #7982]
- * addr2line.c (fill_lines): compare the file names of object in which
- symbols exist. [Bug #9654] [ruby-dev:48058]
+Sun Apr 28 08:28:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Mar 22 06:46:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/curses/curses.c: Update Curses::Window example for nicer output
+ Patch by Michal Suchanek [Bug #8121] [ruby-core:53520]
- * lib/cgi/util.rb (escape_html, unescape_html): make synonyms
- aliases instead of wrapper methods.
+Sun Apr 28 08:10:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/cgi/util.rb (escape_element, unescape_element): ditto.
- [Fixes GH-573]
+ * README.EXT: Update note from r40504, by Jeremy Evans [Bug #7982]
-Fri Mar 21 21:57:34 2014 Akinori MUSHA <knu@iDaemons.org>
+Sun Apr 28 08:02:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * configure.in: Fix a build problem with clang and --with-opt-dir.
- If ruby is configured with --with-opt-dir=dir when using clang
- as compiler, a warning `clang: warning: argument unused during
- compilation: '-I dir'` is emitted almost every time clang
- compiles a file. Unfortunately, RUBY_CHECK_PRINTF_PREFIX takes
- any output from the compiler as fatal error, and the check thus
- fails due to the warning. This is an attempt to fix the problem
- by adding a flag -Qunused-arguments to CFLAGS locally in the
- function to suppress the warning. [ruby-dev:48062] [Bug #9658]
- [Fixes GH-571] https://github.com/ruby/ruby/pull/571
+ * README.EXT: Add note to warn use of %i in Exceptions [Bug #7982]
-Fri Mar 21 16:31:56 2014 Zachary Scott <e@zzak.io>
+Sun Apr 28 02:41:05 2013 Tanaka Akira <akr@fsij.org>
- * gc.c: [DOC] Fix call-seq for GC.start by @jasonrclark [Fixes GH-572]
- https://github.com/ruby/ruby/pull/572
+ * configure.in: Fix a typo. Should check endgrent() instead of
+ endgrnam().
-Thu Mar 20 11:37:28 2014 James Edward Gray II <james@graysoftinc.com>
+Sun Apr 28 00:35:45 2013 Tanaka Akira <akr@fsij.org>
- * lib/csv.rb: Fixed a broken regular expression that was causing
- CSV to miss escaping some special meaning characters when used
- in parsing.
- Reported by David Unric
- [ruby-core:54986] [Bug #8405]
+ * process.c (obj2gid): Don't call endgrent() if not exist.
+ Bionic (Android's libc) don't have endgrent().
-Thu Mar 20 16:53:07 2014 Koichi Sasada <ko1@atdot.net>
+ * configure.in: Check endgrnam function.
- * gc.c (objspace_malloc_increase): should not invoke
- garbage_collect_with_gvl() here on non-ruby threads.
+Sat Apr 27 23:53:00 2013 Charlie Somerville <charlie@charliesomerville.com>
- Should just ignore the malloc_increase.
+ * lib/yaml.rb: add security warning to YAML documentation
- This issue is pointed by Eric Wong [ruby-core:61519].
+Sat Apr 27 23:25:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Thu Mar 20 13:05:16 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/yaml.rb: Documentation for YAML module [Bug #8213]
- * struct.c (rb_struct_alloc): use RARRAY_CONST_PTR() instead of
- RARRAY_PTR().
+Sat Apr 27 20:19:21 2013 Tanaka Akira <akr@fsij.org>
-Thu Mar 20 12:59:39 2014 Koichi Sasada <ko1@atdot.net>
+ * thread_pthread.c (ruby_init_stack): Add STACK_GROW_DIR_DETECTION.
+ This fixes a compilation failure while cross-compiling for Tensilica
+ Xtensa Processor.
- * include/ruby/intern.h (rb_obj_call_init, rb_class_new_instance):
- constify a parameter (VALUE *).
- I believe this incompatibility doesn't break any code.
- However, if you have trouble, please tell us.
+Sat Apr 27 19:32:44 2013 Benoit Daloze <eregontp@gmail.com>
- * eval.c, object.c: ditto.
+ * thread.c: fix typos and documentation
-Thu Mar 20 12:31:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Apr 27 19:04:55 2013 Tanaka Akira <akr@fsij.org>
- * vm_method.c (rb_method_entry_get_without_cache): get rid of
- infinite recursion at aliases in a subclass and a superclass.
- return actually defined class for other than singleton class.
- [ruby-core:60431] [Bug #9475]
+ * sparc.c: Use __asm__ instead of asm for gcc.
+ gcc doesn't provide asm keyword if -ansi option is given.
+ http://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
-Wed Mar 19 17:13:06 2014 Eric Wong <e@80x24.org>
+Sat Apr 27 17:22:50 2013 Tanaka Akira <akr@fsij.org>
- * time.c (time_mload): freeze and preserve marshal-loaded time zone
- * test/ruby/test_time.rb: add test for GC on loaded object
- [Bug #9652]
+ * ext/socket/extconf.rb: Redundant test removed.
-Tue Mar 18 23:20:12 2014 Shota Fukumori <her@sorah.jp>
+Sat Apr 27 16:00:10 2013 Tanaka Akira <akr@fsij.org>
- * vm_eval.c (eval_string_with_cref): Unify to use NIL_P.
+ * ext/socket/extconf.rb (test_recvmsg_with_msg_peek_creates_fds):
+ Extracted.
-Tue Mar 18 22:03:41 2014 Shota Fukumori <her@sorah.jp>
+Sat Apr 27 15:50:40 2013 Tanaka Akira <akr@fsij.org>
- * vm_eval.c (eval_string_with_cref): Use file path even if scope is
- given. Related to [ruby-core:56099] [Bug #8662] and r42103.
+ * internal.h (SIGNED_INTEGER_TYPE_P): New macro.
+ (SIGNED_INTEGER_MAX): Ditto.
+ (SIGNED_INTEGER_MIN): Ditto.
+ (UNSIGNED_INTEGER_MAX): Ditto.
+ (TIMET_MAX): Use SIGNED_INTEGER_MAX and UNSIGNED_INTEGER_MAX.
+ (TIMET_MIN): Use SIGNED_INTEGER_MIN.
-Mon Mar 17 13:17:47 2014 Koichi Sasada <ko1@atdot.net>
+ * thread.c (TIMEVAL_SEC_MAX): Use SIGNED_INTEGER_MAX.
+ (TIMEVAL_SEC_MIN): Use SIGNED_INTEGER_MIN.
- * enumerator.c (enumerator_block_call): use RARRAY_CONST_PTR()
- instead of RARRAY_PTR().
+Sat Apr 27 10:52:52 2013 Tanaka Akira <akr@fsij.org>
- * io.c (rb_io_s_popen): ditto.
+ * thread.c (TIMEVAL_SEC_MAX, TIMEVAL_SEC_MIN): Consider environments,
+ sizeof(time_t) is smaller than sizeof(tv_sec), such as
+ OpenBSD 5.2 (amd64).
- * numeric.c (num_step_size): ditto.
+Fri Apr 26 23:34:59 2013 Kouhei Sutou <kou@cozmixng.org>
- * vm_eval.c (rb_apply): ditto.
+ * lib/rexml/text.rb (REXML::Text.normalize): Fix a bug that all
+ entity filters are ignored. [ruby-dev:47278] [Bug #8302]
+ Patch by Ippei Obayashi. Thanks!!!
+ * test/rexml/test_entity.rb (EntityTester#test_entity_filter): Add
+ a test of the above change.
- * vm_eval.c (rb_eval_cmd): ditto.
+Fri Apr 26 22:53:55 2013 Kouhei Sutou <kou@cozmixng.org>
-Mon Mar 17 10:11:59 2014 Eric Wong <e@80x24.org>
+ * lib/rexml/element.rb (REXML::Attributes#to_a): Support
+ namespaced attributes. [ruby-dev:47277] [Bug #8301]
+ Patch by Ippei Obayashi. Thanks!!!
+ * test/rexml/test_attributes.rb
+ (AttributesTester#test_to_a_with_namespaces): Add a test of the
+ above change.
- * variable.c (rb_const_set): delete existing entry on redefinition
- [Bug #9645]
- * test/ruby/test_const.rb (test_redefinition): test for leak
+Fri Apr 26 21:48:29 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Mar 16 21:33:01 2014 Zachary Scott <e@zzak.io>
+ * lib/rss/atom.rb (RSS::Atom::Entry): Fix indent of document comment.
- * lib/time.rb: [DOC] Fix timezone in example of Time.parse [Bug #9521]
- Based on patch by @stomar
+Fri Apr 26 21:21:17 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Mar 16 13:21:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rss/maker.rb (RSS::Maker): Fix indent of document comment.
- * configure.in (DLDFLAGS): insert a space between option and its
- argument for non-GCC compilers. [ruby-core:61429] [Bug #9624]
+Fri Apr 26 18:41:04 2013 Tanaka Akira <akr@fsij.org>
-Sun Mar 16 08:05:06 2014 Eric Wong <e@80x24.org>
+ * ext/socket/extconf.rb: Use a block of enable_config() for
+ --{enable,disable}-close-fds-by-recvmsg-with-peek configure option
- * gc.c (objspace_xcalloc): fix GC accounting
+Fri Apr 26 18:08:08 2013 Tanaka Akira <akr@fsij.org>
-Sun Mar 16 06:33:35 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * dir.c (dir_set_pos): Fix a compilation error when seekdir() is not
+ exist.
- * addr2line.c (fill_lines): return address is just after calling
- address. Therefore noreturn function with tail call's return
- address may be in another function.
+Fri Apr 26 17:41:17 2013 Tanaka Akira <akr@fsij.org>
-Sun Mar 16 05:51:55 2014 Zachary Scott <e@zzak.io>
+ * thread_pthread.c (ruby_init_stack): Add STACK_GROW_DIR_DETECTION.
+ This fixes a compilation failure while cross-compiling for ARM.
- * lib/gserver.rb: [DOC] Fixed typo in example by @stomar [Bug #9543]
+Fri Apr 26 14:35:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Mar 15 18:54:03 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+ * lib/rss/atom.rb: Documentation for RSS::Atom based on a patch by
+ Michael Denomy
+ * lib/rss/maker.rb: Documentation for RSS::Maker also by @mdenomy
- * ext/.document: remove refinement from documentable directories.
+Fri Apr 26 12:41:22 2013 Tanaka Akira <akr@fsij.org>
-Sat Mar 15 11:02:58 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/curses/extconf.rb: Test linkability of curses_version at first.
- * configure.in (DLDFLAGS): check for each options to control
- symbol resolution. [ruby-core:61429] [Bug #9624]
+ * ext/socket/extconf.rb: Test the behavior of fd passing with MSG_PEEK
+ only if recvmsg(), msg_control member, AF_UNIX and SCM_RIGHTS are
+ available.
-Sat Mar 15 07:02:35 2014 Eric Wong <e@80x24.org>
+Fri Apr 26 00:07:52 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * st.c (st_update): remove unnecessary assignment
+ * lib/rinda/ring.rb (Rinda::RingServer#initialize): accept array
+ arguments of address to specify multicast interface.
-Fri Mar 14 14:58:38 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * lib/rinda/ring.rb (Rinda::RingServer#make_socket): add optional
+ arguments for multicast interface.
- * addr2line.c (fill_lines): fetch symbol names from ELF binary's
- symbol table if it is built with cc -g and not stripped.
- Now ruby can show static symbols on Linux though glibc's
- backtrace_symbols(3) don't show them.
+ * test/rinda/test_rinda.rb
+ (TestRingFinger#test_ring_server_ipv4_multicast,
+ TestRingFinger#test_ring_server_ipv6_multicast): add tests for
+ above change.
- * addr2line.c (rb_dump_backtrace_with_lines): use dladdr(3) to
- detect what object file declares the symbol because
- dl_iterate_phdr can't detect the main executable file
- and codes on the stack.
- NOTE: signal trampolines sometimes on the user stack. (FreeBSD)
+ * test/rinda/test_rinda.rb
+ (TestRingServer#test_make_socket_ipv4_multicast,
+ TestRingServer#test_make_socket_ipv6_multicast): change bound
+ interface address because multicast address is not allowed on Linux
+ or Windows.
+ [ruby-core:53692] [Bug #8159]
- * addr2line.c (rb_dump_backtrace_with_lines): stop showing
- backtrace if the function's name is main.
- NOTE: FreeBSD's backtrace (libexecinfo) shows _start and
- an additional address. Why it doesn't remove them on dladdr phase
- is, dladdr may fail to detect the main function but detect
- as _start function. Therefore it must be after scanning
- the symbol table and getting correct name.
+Thu Apr 25 23:45:02 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+ * lib/rinda/ring.rb (Rinda::RingServer#initialize): add a socket
+ to @sockets in make_socket() to close sockets on shutdown even if
+ make_socket() is called after initialize.
-Fri Mar 14 12:07:46 2014 Zachary Scott <e@zzak.io>
+ * lib/rinda/ring.rb (Rinda::RingServer#make_socket): ditto.
- * doc/syntax/literals.rdoc: [DOC] Single quote strings allows escape
- of backslash as well, patch by @idupree [Fixes GH-553]
- https://github.com/ruby/ruby/pull/553
+Thu Apr 25 23:39:42 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
-Fri Mar 14 01:18:24 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rinda/test_rinda.rb (TupleSpaceProxyTest#test_take_bug_8215):
+ use KILL on Windows since TERM doen't work and ruby process remains
+ after test-all on Windows.
- * vm.c (invoke_block_from_c): add splattable argument.
+Thu Apr 25 23:16:28 2013 Tanaka Akira <akr@fsij.org>
- * vm.c (vm_invoke_proc): disallow to splat when directly invoked.
+ * ext/curses/extconf.rb: Implement
+ --with-curses-version={function,variable} configure option for
+ cross-compiling.
- * vm_insnhelper.c (vm_callee_setup_arg_complex, vm_callee_setup_arg):
- relax arity check of yielded lambda. [ruby-core:61340] [Bug #9605]
+Thu Apr 25 18:15:46 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_yield.rb (TestRubyYieldGen#emu_bind_params): no
- longer raise ArgumentError when splatting to lambda.
+ * ext/socket/extconf.rb: Don't use WIDE getaddrinfo by default.
-Thu Mar 13 23:51:02 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Apr 25 17:56:39 2013 Tanaka Akira <akr@fsij.org>
- * ext/-test-/win32/dln/libdlntest.c (dlntest_ordinal): no need to
- specify export in the source file because .def file do it.
- get rid of warning on linking.
+ * ext/socket/extconf.rb: Remove obsolete options: ---with-ipv6-lib and
+ --with-ipv6-libdir.
-Wed Mar 12 11:19:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Apr 25 17:43:49 2013 Tanaka Akira <akr@fsij.org>
- * vm_insnhelper.c (vm_callee_setup_arg): disable fastpath if splat
- argument, since argc may differ for each calls.
- [ruby-core:61422] [Bug #9622]
+ * ext/socket/extconf.rb: Implement
+ --{enable,disable}-close-fds-by-recvmsg-with-peek configure option
+ for cross-compiling.
+ Make --{enable,disable}-wide-getaddrinfo configure option
+ cross-compiling friendly.
- * vm_insnhelper.c (vm_callee_setup_arg): turn a macro into an
- inline function.
+Thu Apr 25 16:11:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Mar 12 07:26:05 2014 Eric Wong <e@80x24.org>
+ * io.c (rb_io_ext_int_to_encs, parse_mode_enc): bom-prefixed name is
+ not a real encoding name, just a fallback. so the proper conversion
+ should take place even if if the internal encoding is equal to the
+ bom-prefixed name, unless actual encoding is equal to the internal
+ encoding. [ruby-core:54563] [Bug #8323]
- * insns.def (opt_regexpmatch2): respect redefined match op
- Thanks to Sam Rawlins for the fix.
- * test/ruby/test_string.rb: test based on Tsuyoshi Sawada's report
- [Bug #9581]
+ * io.c (io_set_encoding_by_bom): reset extenal encoding if no BOM
+ found. [ruby-core:54569]
-Tue Mar 11 22:31:25 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Thu Apr 25 14:35:01 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/.document: add objspace/objspace_dump.c to document file.
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): allow Fixnum and Bignum.
+ [ruby-core:53986] [Feature #8217]
-Tue Mar 11 22:22:38 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Thu Apr 25 14:26:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/objspace/test_objspace.rb (TestObjSpace#test_dump_uninitialized_file):
- remove dependency on json library.
+ * lib/uri/common.rb (URI.decode_www_form): follow current URL Standard.
+ It gets encoding argument to specify the character encoding.
+ It now allows loose percent encoded strings, but denies ;-separator.
+ [ruby-core:53475] [Bug #8103]
-Tue Mar 11 10:55:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/uri/common.rb (URI.decode_www_form): follow current URL Standard.
+ It gets encoding argument to convert before percent encode.
+ Now UTF-16 strings aren't converted to UTF-8 before percent encode
+ by default.
- * README.EXT{,.ja} (Appendix B): update contents of `ruby_options`
- and replace `ruby_run` with `ruby_run_node`. based on the patch
- by Kaneko Yuichiro at [ruby-dev:48030] [Bug #9619].
+Wed Apr 25 14:26:00 2013 Charlie Somerville <charlie@charliesomerville.com>
-Tue Mar 11 06:54:00 2014 Scott Francis <scott.francis@shopify.com>
+ * benchmark/bm_hash_shift.rb: add benchmark for Hash#shift
- * ext/objspace/objspace_dump.c: Check fptr before trying to dump RFILE
- object fd. [GH-562]
+ * hash.c (rb_hash_shift): use st_shift if hash is not being iterated to
+ delete element without iterating the whole hash.
- * test/objspace/test_objspace.rb: add test
+ * hash.c (shift_i): remove function
-Tue Mar 11 02:04:36 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * include/ruby/st.h (st_shift): add st_shift function
- * vm_dump.c (rb_vm_bugreport): show vm maps on FreeBSD.
+ * st.c (st_shift): ditto
- * vm_dump.c (procstat_vm): copied from FreeBSD.
- http://svnweb.freebsd.org/base/head/usr.bin/procstat/procstat_vm.c?revision=261780
+ [Bug #8312] [ruby-core:54524] Patch by funny-falcon
-Mon Mar 10 12:14:26 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Thu Apr 25 12:03:38 2013 Tanaka Akira <akr@fsij.org>
- * configure.in: always check dladdr(1).
+ * ext/socket/extconf.rb: Extract C programs as toplevel constants.
- * addr2line.c (fill_lines): show the line number in C backtrace if
- ruby is built without --enable-shared (PIE) on Linux.
- patch is originally by Shinichiro Hamaji
- https://twitter.com/shinh/status/441957774264504321
- NOTE: ld doesn't insert __executable_start for PIE.
- dladdr(3)'s argument must be a function pointer.
+Thu Apr 25 02:23:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Mar 10 10:51:17 2014 ksss <co000ri@gmail.com>
+ * configure.in (RUBY_RM_RECURSIVE): this hack is needed by only
+ autoconf 2.69 or earlier on darwin.
- * test/ruby/test_enumerator.rb (test_iterators): fix test for hash
- iterators. [Fixes GH-558]
+Thu Apr 25 01:22:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Mar 9 14:14:49 2014 Eric Wong <e@80x24.org>
+ * lib/tracer.rb (get_line): simply read by File.readlines.
- * class.c (rb_class_subclass_add): use xmalloc
- * class.c (rb_module_add_to_subclasses_list): ditto
- * class.c (rb_class_remove_from_super_subclasses): use xfree
- * class.c (rb_class_remove_from_module_subclasses): ditto
- [Bug #9616]
+ * lib/debug.rb (script_lines): get source lines from SCRIPT_LINES__ or
+ read from the file.
-Sun Mar 9 13:51:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/debug.rb (display_list): use script_lines instead of recursion.
+ [Bug #8318]
- * ext/fiddle/function.c (function_call): fix memory leak when an
- exception occurs at argument conversion or the function call.
+ * lib/debug.rb (line_at): use script_lines same as display_list.
-Sun Mar 9 06:42:40 2014 Eric Wong <e@80x24.org>
+ * lib/debug.rb (display_list): Fix debug listing when called from the
+ same file it has been required. patch by Dario Bertini <berdario AT
+ gmail.com> [Bug #8318] [fix GH-280]
- * variable.c (struct global_variable): shrink by 8 bytes on 64-bit
+Wed Apr 24 21:51:13 2013 Tanaka Akira <akr@fsij.org>
-Sat Mar 8 17:42:51 2014 Eric Wong <e@80x24.org>
+ * configure.in: Check mblen().
+ mblen() is optional in uClibc.
- * vm.c (add_opt_method): cleanup to use rb_method_entry_at
+ * eval_intern.h (CharNext): Don't use mblen() is not available.
-Sat Mar 8 13:46:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Apr 24 15:55:06 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/dl/cptr.c (dlptr_free), ext/dl/handle.c (dlhandle_free),
- ext/fiddle/handle.c (fiddle_handle_free),
- ext/fiddle/pointer.c (fiddle_ptr_free): fix memory leak.
- based on the patch Heesob Park at [ruby-dev:48021] [Bug #9599].
+ * io.c (rb_fd_fix_cloexec): use rb_update_max_fd().
-Sat Mar 8 13:30:39 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Apr 24 14:08:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * process.c (obj2uid, obj2gid): now getpwnam_r() and getgrnam_r()
- may need larger buffers than sysconf values, so retry with
- expanding the buffer when ERANGE is returned.
- [ruby-core:61325] [Bug #9600]
+ * numeric.c: Fix wiki link on Float imprecision in overview, patched
+ by Makoto Kishimoto [Bug #8304] [ruby-dev:47280]
-Fri Mar 7 19:29:13 2014 Eric Wong <e@80x24.org>
+Wed Apr 24 14:03:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm_eval.c (vm_call0_body): use RARRAY_CONST_PTR
- (check_funcall_exec): ditto
- [ruby-core:61360]
+ * parse.y (parser_yylex): disallow $- without following identifier
+ character. [ruby-talk:406969]
-Fri Mar 7 19:14:11 2014 Eric Wong <e@80x24.org>
+ * parse.y (is_special_global_name): mere $- is not a valid global
+ variable name.
- * vm_eval.c (vm_call0_body): fix RB_GC_GUARD location
- (check_funcall_exec): ditto
- [Bug #9609]
+Wed Apr 24 13:54:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Mar 7 14:48:17 2014 Narihiro Nakamura <authornari@gmail.com>
+ * string.c: Document String#setbyte return value by @gjmurakami-10gen
+ [Fixes GH-294]
- * parse.y (ENC_SINGLE): Unused macro removed.
+Wed Apr 24 13:45:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Mar 7 12:06:19 2014 Martin Bosslet <Martin.Bosslet@gmail.com>
+ * class.c: Example of Object#methods by @windwiny [Fixes GH-293]
+ * ruby.c: Document return values of Kernel #sub, #gsub, and #chop
- * test/openssl/test_ssl.rb: Reuse TLS default options from
- OpenSSL::SSL::SSLContext::DEFAULT_PARAMS.
+Wed Apr 24 12:54:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Thu Mar 6 15:15:24 2014 Zachary Scott <e@zzak.io>
+ * ext/socket/lib/socket.rb: Doc typos by @vipulnsward [Fixes GH-292]
- * doc/syntax/assignment.rdoc: [DOC] Fix assignment directions
- By @idupree [Fixes GH-555] https://github.com/ruby/ruby/pull/555
-Thu Mar 6 15:07:18 2014 Zachary Scott <e@zzak.io>
+Wed Apr 24 12:54:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * doc/syntax/methods.rdoc: [DOC] Fix example for block arguments
- By @idupree [Fixes GH-554] https://github.com/ruby/ruby/pull/554
+ * ext/socket/lib/socket.rb: Doc typos by @vipulnsward [Fixes GH-292]
-Thu Mar 6 10:33:31 2014 Martin Bosslet <Martin.Bosslet@gmail.com>
+Wed Apr 24 12:27:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/openssl/ssl.rb: Explicitly whitelist the default
- SSL/TLS ciphers. Forbid SSLv2 and SSLv3, disable
- compression by default.
- Reported by Jeff Hodges.
- [ruby-core:59829] [Bug #9424]
+ * array.c: Fix documentation for Array#index and #replace aliases
+ Based on a patch by @phiggins [Fixes GH-282]
-Wed Mar 5 15:56:18 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Apr 23 21:14:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * parse.y (f_arg_asgn): define optional arguments as argument
- variables in the rhs default expressions.
- [ruby-core:61299] [Bug #9593]
+ * string.c (rb_str_inspect): refix r40413, on Ruby 1.9 usual character
+ escape uses hex/Unicode escapes, so fix to use Unicode escape on
+ Unicode strings and hex on others. [ruby-core:54458] [Bug #8290]
-Wed Mar 5 11:58:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Apr 23 20:10:02 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl.c (ossl_make_error): check NULL for unknown
- error reasons with old OpenSSL, and insert a colon iff formatted
- message is not empty.
+ * missing/isnan.c (isnan): Don't define if isnan() macro is defined.
+ This fixes a compilation failure on uClibc based Gentoo system.
+
+Tue Apr 23 17:40:40 2013 Martin Duerst <duerst@it.aoyama.ac.jp>
+
+ * lib/rexml/document.rb, lib/rexml/element.rb,
+ lib/rexml/formatters/pretty.rb: remove opinionated
+ language in documentation. [Bug #8309],
+ reported by Charles Beckmann
+
+Tue Apr 23 14:04:44 2013 Shugo Maeda <shugo@ruby-lang.org>
+
+ * lib/net/imap.rb (getacl_response): parse the mailbox of an ACL
+ response correctly. [ruby-core:54365] [Bug #8281]
+
+Tue Apr 23 11:58:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * string.c (rb_str_scrub): fix for UTF-32. strlen() on strings
+ contain NUL returns wrong result, use sizeof operator instead.
+ [ruby-dev:45975] [Feature #6752]
+
+Tue Apr 23 10:26:50 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * test/ruby/test_module.rb
+ (TestModule#test_const_get_invalid_name)
+ (test_const_defined_invalid_name): Fix expected values.
+
+Tue Apr 23 09:51:26 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * string.c (rb_str_inspect): NUL should not be represented as "\0"
+ when octal digits may follow. [ruby-core:54458] [Bug #8290]
+
+Mon Apr 22 22:54:00 2013 Charlie Somerville <charlie@charliesomerville.com>
+
+ * insns.def (opt_mod): Use % operator if both operands are positive for
+ a significant performance improvement. Thanks to @samsaffron.
+
+Mon Apr 22 17:09:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * marshal.c (r_object0): copy all instance variables not only generic
+ ivars, before calling post proc. [ruby-core:51163] [Bug #7627]
+
+Mon Apr 22 10:25:21 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * util.c (ruby_hdtoa): revert r29729.
+ If you want ruby to behave as before on x86, specify to use SSE like
+ -msse2 -mfpmath=sse for gcc.
+
+Sun Apr 21 23:19:00 2013 Charlie Somerville <charlie@charliesomerville.com>
+
+ * configure.in: Revert using sigsetjmp by default due to performance
+ problems on some systems (eg. older Linux)
+
+Sun Apr 21 21:35:00 2013 Charlie Somerville <charlie@charliesomerville.com>
+
+ * configure.in: Use sigsetjmp by default so jumping out of signal
+ handlers properly restores the signal mask and SS_ONSTACK flag.
+ [ruby-core:54175] [Bug #8254]
+
+ * configure.in: Manually check for presence of sigsetjmp. It is not a
+ function on some systems, so AC_CHECK_FUNCS cannot be used.
-Wed Mar 5 00:42:00 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Sun Apr 21 08:00:55 2013 Tanaka Akira <akr@fsij.org>
- * ext/pathname/lib/pathname.rb (Pathname#find): add "ignore_error"
- keyword argument defaulted to true as well as Find#find.
+ * test/csv/test_features.rb, test/logger/test_logger.rb
+ test/mkmf/test_have_macro.rb, test/net/http/test_http.rb,
+ test/openssl/test_config.rb, test/psych/test_encoding.rb,
+ test/psych/test_exception.rb, test/psych/test_psych.rb,
+ test/psych/test_tainted.rb, test/readline/test_readline.rb,
+ test/rexml/test_contrib.rb, test/ruby/test_autoload.rb,
+ test/ruby/test_beginendblock.rb, test/ruby/test_exception.rb,
+ test/ruby/test_file.rb, test/ruby/test_io.rb,
+ test/ruby/test_marshal.rb, test/ruby/test_process.rb,
+ test/ruby/test_require.rb, test/ruby/test_rubyoptions.rb,
+ test/syslog/test_syslog_logger.rb, test/webrick/test_httpauth.rb,
+ test/zlib/test_zlib.rb: Use Tempfile.create.
-Tue Mar 4 23:00:18 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Sun Apr 21 00:15:36 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_eval.rb (TestEval#make_test_binding): renamed.
- it's not test method.
+ * lib/tempfile.rb (Tempfile.create): Close when the block exits.
-Tue Mar 4 20:50:59 2014 Masaya Tarui <tarui@ruby-lang.org>
+Sat Apr 20 23:38:14 2013 Tanaka Akira <akr@fsij.org>
- * st.c (st_foreach): fix type of hash. not st_data_t but st_index_t.
+ * lib/webrick/httpauth/htpasswd.rb: Use Tempfile.create to avoid
+ unintentional unlink() by the finalizer.
+ lib/webrick/httpauth/htdigest.rb: Ditto.
-Tue Mar 4 19:41:40 2014 Tanaka Akira <akr@fsij.org>
+Sat Apr 20 22:47:48 2013 Tanaka Akira <akr@fsij.org>
- * Makefile.in: ".DEFAULT" target removed because it is not for
- specifying default target.
+ * lib/tempfile.rb (Tempfile.create): New method.
+ The method name is proposed by Shugo Maeda. [ruby-dev:47220]
+ [ruby-core:41478] [Feature #5707]
-Tue Mar 4 00:25:35 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Sat Apr 20 14:22:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/find.rb (Find#find): should pass ignore_error option to enumerators.
+ * marshal.c (w_object): dump no ivars to the original by marshal_dump.
+ [ruby-core:54334] [Bug #8276]
-Mon Mar 3 13:27:35 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * marshal.c (r_object0): copy all ivars of marshal_dump data to the
+ result object instead. [ruby-core:51163] [Bug #7627]
- * test/test_find.rb (TestFind#test_unsearchable_dir): ruby cannot make
- directory unreachable by owner on Windows.
+Sat Apr 20 02:33:27 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Mon Mar 3 08:10:04 2014 Eric Wong <e@80x24.org>
+ * string.c (str_scrub): add ruby method String#scrub which verify and
+ fix invalid byte sequence. [ruby-dev:45975] [Feature #6752]
- * vm_method.c (rb_method_entry_get_without_cache): disable GMC
- writing if GMC is disabled.
- [ruby-core:61218]
+ * string.c (str_compat_and_valid): check given string is compatible
+ and valid with given encoding.
-Mon Mar 3 07:47:17 2014 Eric Wong <e@80x24.org>
+ * transcode.c (str_transcode0): If invalid: :replace is specified for
+ String#encode, replace invalid byte sequence even if the destination
+ encoding equals to the source encoding.
- * README.EXT: wrap GetDBM with do/while(0)
- * README.EXT.ja: ditto
- * ext/dbm/dbm.c: ditto, likewise for GetDBM2
+Fri Apr 19 21:55:40 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * README.EXT.ja (Data_Wrap_Struct): Remove a description about
+ orphan argument. Oh, I renamed the argument name without
+ changing description at r36180... Sorry....
+ Patch by Makoto Kishimoto. Thanks!!! [ruby-dev:47269] [Bug #8292]
+ * README.EXT.ja (Data_Make_Struct): Add a sample code that describes
+ how it works.
+ Patch by Makoto Kishimoto. Thanks!!! [ruby-dev:47269] [Bug #8292]
+
+Fri Apr 19 17:54:57 2013 Shugo Maeda <shugo@ruby-lang.org>
+
+ * lib/net/imap.rb (body_type_msg): should accept
+ message/delivery-status with extra data.
+ [ruby-core:53741] [Bug #8167]
+
+ * test/net/imap/test_imap_response_parser.rb: related test.
+
+Fri Apr 19 13:03:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * marshal.c (w_object): do not dump encoding which is dumped with
+ marshal_dump data. [ruby-core:54334] [Bug #8276]
+
+Fri Apr 19 11:36:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (stack_protector): control use of -fstack-protector.
+
+ * configure.in (debugflags): let -fstack-protector precede and disable
+ debugflags, because they can't work together on SmartOS. [Bug #8268]
+
+Fri Apr 19 07:43:52 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * test/openssl/test_cipher.rb: Correct a typo
+ by jgls <joerg@joergleis.com>
+ https://github.com/ruby/ruby/pull/291 fix GH-291
+
+Thu Apr 18 16:58:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * vm_method.c (rb_mod_public_method): fix visibility on anonymous
+ module. set visibility of singleton method, not method in base
+ class. [ruby-core:54404] [Bug #8284]
+
+Thu Apr 18 16:20:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * dir.c (glob_helper): should skip dot directories only for recursion,
+ but should not if matching to the given pattern. [ruby-core:54387]
+ [Bug #8283]
+
+Thu Apr 18 16:20:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * pack.c (pack_unpack): increase buffer size to fix buffer overflow,
+ and fix garbage just after unpacking without missing paddings.
+ [Bug #8286]
+
+Thu Apr 18 13:35:54 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * pack.c (pack_unpack): output characters even if the input doesn't
+ have paddings. [Bug #8286]
+
+Thu Apr 18 08:20:48 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * common.mk (clean-ext): remove timestamps.
+
+Wed Apr 17 22:07:50 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/rubysocket.h (SOCKLEN_MAX): Expression simplified.
+
+Wed Apr 17 20:09:19 2013 Aman Gupta <ruby@tmm1.net>
+
+ * compile.c (iseq_add_mark_object): Use new rb_iseq_add_mark_object().
+
+ * insns.def (setinlinecache): Ditto.
+
+ * iseq.c (rb_iseq_add_mark_object): New function to allocate
+ iseq->mark_ary on demand. [Bug #8142]
+
+ * iseq.h (rb_iseq_add_mark_object): Ditto.
+
+ * iseq.c (prepare_iseq_build): Avoid allocating mark_ary until needed.
+
+ * iseq.c (rb_iseq_build_for_ruby2cext): Ditto.
+
+Wed Apr 17 20:00:18 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/rubysocket.h (SOCKLEN_MAX): Defined.
+
+ * ext/socket/raddrinfo.c (ext/socket/raddrinfo.c): Reject too long
+ Linux abstract socket name.
+
+Wed Apr 17 19:45:27 2013 Aman Gupta <tmm1@ruby-lang.org>
+
+ * iseq.c (iseq_location_setup): re-use existing string when iseq has
+ the same path and absolute_path. [Bug #8149]
+
+Wed Apr 17 11:38:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):
+ UNASSIGNED is not a valid message.
+
+Wed Apr 17 10:58:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * thread.c (sleep_timeval): get rid of overflow on Windows where
+ timeval.tv_sec is not time_t but mere long.
+
+Tue Apr 16 23:07:12 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/unixsocket.c (unix_send_io): Suppress a warning by clang.
+ (unix_recv_io): Ditto.
+
+Tue Apr 16 12:27:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * ext/sdbm/init.c: Fix comment indentation, by windwiny [Fixes GH-277]
+
+Tue Apr 16 12:25:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * ext/socket/option.c: Document synonymous methods, by windwiny [GH-277]
+ * ext/stringio/stringio.c: ditto
+ * ext/io/wait/wait.c: ditto
* ext/gdbm/gdbm.c: ditto
- * ext/sdbm/init.c: ditto
- [ruby-core:61217]
+ * ext/dl/cfunc.c: ditto
+ * ext/zlib/zlib.c: ditto
+ * ext/win32ole/win32ole.c: ditto
+ * ext/dbm/dbm.c: ditto
+ * ext/json/generator/generator.c: ditto
+ * ext/date/date_core.c: ditto
-Mon Mar 3 07:17:31 2014 Zachary Scott <e@zzak.io>
+Tue Apr 16 11:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * NEWS: [DOC] Update doc regarding filesystem load when flushing IO
+ * ext/openssl/*: Document synonymous methods, by windwiny [GH-277]
-Mon Mar 3 04:37:50 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Apr 15 22:21:42 2013 Tanaka Akira <akr@fsij.org>
- * io.c (rb_io_fsync): need to fsync even if on Windows. fixed mistake
- of r45254 and r45256.
+ * ext/fiddle/depend: New file.
-Mon Mar 3 04:21:34 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Apr 15 22:01:02 2013 Akinori MUSHA <knu@iDaemons.org>
- * test/win32ole: get rid of warnings (unused variable).
+ * misc/ruby-electric.el (ruby-electric-insert): Check
+ ruby-electric-is-last-command-char-expandable-punct-p here.
-Mon Mar 3 02:53:53 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * misc/ruby-electric.el (ruby-electric-closing-char): New
+ interactive function bound to closing characters. Typing one of
+ those closing characters right after the matching counterpart
+ cancels the effect of automatic closing. For example, typing
+ "{" followed by "}" simply makes "{}" instead of "{ } }".
- * io.c (rb_io_flush_raw): [EXPERIMENTAL] remove force syncing for Win32
- to speed up IO. this may break some tests, and they'll be fixed
- later.
- [ruby-core:58570] [Bug #9153]
+Mon Apr 15 12:54:42 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
-Mon Mar 3 00:17:43 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/openssl/ossl_ssl.c: Correct shutdown behavior w.r.t GC.
- * test/ruby/test_backtrace.rb: get rid of warnings. unused variable,
- shadowing.
+ * test/openssl/test_ssl.rb: Add tests to verify correct behavior.
-Sun Mar 2 11:15:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ [Bug #8240] Patch provided by Shugo Maeda. Thanks!
- * lib/find.rb (Find#find): add "ignore_error" keyword argument
- defaulted to true. [ruby-core:51025] [Feature #7596]
+Mon Apr 15 10:23:39 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Mar 2 11:13:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/coverage/depend: fix id.h place as r40283.
- * ext/readline/extconf.rb (rl_hook_func_t): define as Function for
- very old readline versions. [ruby-core:61209] [Bug #9578]
+ * ext/coverage/extconf.rb: add topdir and topsrcdir to VPATH.
-Sun Mar 2 10:47:58 2014 Eric Wong <e@80x24.org>
+Sun Apr 14 19:46:14 2013 Tanaka Akira <akr@fsij.org>
- * load.c (ruby_init_ext): make idempotent to suppress warnings
+ * ext/-test-/debug/depend: New file.
-Sat Mar 1 19:51:42 2014 Tanaka Akira <akr@fsij.org>
+ * ext/-test-/exception/depend: Ditto.
- * lib/open3.rb (Open3.capture3): Ignore Errno::EPIPE for writing
- stdin_data.
- (Open3.capture2): Ditto.
- (Open3.capture2e): Ditto.
+ * ext/-test-/printf/depend: Ditto.
-Sat Mar 1 19:06:47 2014 Eric Wong <e@80x24.org>
+ * ext/-test-/string/depend: Ditto.
- * gc.c (ruby_gc_set_params): simplify condition
+ * ext/coverage/depend: Ditto.
-Sat Mar 1 16:18:40 2014 Tanaka Akira <akr@fsij.org>
+ * ext/io/console/depend: Ditto.
- * ext/readline/readline.c (Init_readline): Use rl_hook_func_t instead
- of Function to support readline-6.3. (rl_hook_func_t is available
- since readline-4.2.)
- Reported by Dmitry Medvinsky. [ruby-core:61141] [Bug #9578]
+ * ext/io/nonblock/depend: Ditto.
-Sat Mar 1 16:05:58 2014 Eric Wong <e@80x24.org>
+ * ext/io/wait/depend: Ditto.
- * gc.c (ruby_gc_set_params): fix building without RGenGC
+ * ext/openssl/depend: Ditto.
-Sat Mar 1 11:08:00 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * ext/pathname/depend: Ditto.
- * ext/psych/lib/psych/visitors/yaml_tree.rb: support dumping Encoding
- objects.
+ * ext/psych/depend: Ditto.
- * ext/psych/lib/psych/visitors/to_ruby.rb: support loading Encoding
- objects.
+ * ext/zlib/depend: Ditto.
- * test/psych/test_encoding.rb: add test
+Sun Apr 14 02:46:50 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/psych/lib/psych.rb: add version
+ * lib/mkmf.rb (MakeMakefile#create_makefile): remove {$(VPATH)} other
+ than nmake.
-Sat Mar 1 10:52:34 2014 Zachary Scott <e@zzak.io>
+ * ext/ripper/depend: use VPATH expecting removed by above.
- * README.EXT.ja: [DOC] Fix typo "macro macro" @utenmiki [Fixes GH-551]
- https://github.com/ruby/ruby/pull/551
+Sat Apr 13 23:06:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Feb 28 11:16:55 2014 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+ * lib/mkmf.rb (timestamp_file): gather timestamp files in one
+ directory from each extension directories.
- * numeric.c: Fix Numeric#step with 0 unit [Bug #9575]
+Sat Apr 13 21:09:02 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Thu Feb 27 17:59:01 2014 Zachary Scott <e@zzak.io>
+ * lib/mkmf.rb (MakeMakefile#create_makefile): output new macro
+ disthdrdir to specify the path of id.h, parse.h and etc.
- * lib/optparse.rb: [DOC] Add example of generating help with optparse.
- Patch by @joelmccracken documenting-ruby/ruby#19
- https://github.com/documenting-ruby/ruby/pull/19
+ * ext/ripper/depend: use above macro.
-Thu Feb 27 12:10:09 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Apr 13 20:28:08 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * numeric.c (ruby_num_interval_step_size): check signs and get rid
- of implementation dependent behavior of negative division.
- [ruby-core:61106] [Bug #9570]
+ * Merge Onigmo 5.13.4 f22cf2e566712cace60d17f84d63119d7c5764ee.
+ [bug] fix problem with optimization of \z (Issue #16) [Bug #8210]
-Thu Feb 27 03:55:45 2014 Zachary Scott <e@zzak.io>
+Sat Apr 13 18:56:15 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * thread.c: [DOC] Typo in comment for _FORTIFY_SOURCE [Fixes GH-548]
- Patch by @qnet-herwin https://github.com/ruby/ruby/pull/548
+ * ext/ripper/depend: parse.h and id.h may be created on topdir.
-Wed Feb 26 18:43:43 2014 Koichi Sasada <ko1@atdot.net>
+Sat Apr 13 12:08:16 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * gc.c (heap_pages_free_unused_pages): check tomb page availability
- at first.
- And return immediately if we don't touch sorted list any more.
+ * lib/matrix.rb: Add Vector#cross_product, patch by Luis Ezcurdia
+ [fix GH-276] [rubyspec:81eec89a124]
-Wed Feb 26 14:10:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Apr 13 10:20:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (setup_exception): preserve exception class name encoding
- in debug mode messages.
+ * struct.c (rb_struct_define_without_accessor, rb_struct_define),
+ (rb_struct_s_def): hide member names array.
- * eval.c (setup_exception): preserve errinfo across calling #to_s
- method on the exception. [ruby-core:61091] [Bug #9568]
+ * struct.c (anonymous_struct, new_struct, setup_struct): split
+ make_struct() for each purpose.
-Wed Feb 26 01:29:27 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Sat Apr 13 09:34:31 2013 Tanaka Akira <akr@fsij.org>
- * string.c (sym_find): Add Symbol.find(str), which returns whether given
- string is defined as symbol or not. [Feature #7854]
+ * lib/mkmf.rb: Add ruby/ruby.h, ruby/missing.h, ruby/intern.h,
+ ruby/st.h and ruby/subst.h for ruby_headers in generated Makefile.
-Tue Feb 25 22:52:02 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * ext/-test-/old_thread_select/depend: Update dependencies.
- * ext/dl/dl.c (rb_dl_realloc): use NUM2SIZET instead of NUM2INT.
+ * ext/-test-/wait_for_single_fd/depend: Ditto.
- * ext/fiddle/fiddle.c (rb_fiddle_realloc): ditto.
+ * ext/bigdecimal/depend: Ditto.
-Tue Feb 25 22:49:30 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * ext/curses/depend: Ditto.
- * ext/dl/dl.c (rb_dl_malloc): use NUM2SIZET instead of NUM2INT.
- Coverity Scan found this bug.
+ * ext/digest/bubblebabble/depend: Ditto.
- * ext/fiddle/fiddle.c (rb_fiddle_malloc): ditto.
+ * ext/digest/depend: Ditto.
-Tue Feb 25 12:06:13 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/digest/md5/depend: Ditto.
- * win32/Makefile.sub: define PACKED_STRUCT.
+ * ext/digest/rmd160/depend: Ditto.
-Mon Feb 24 21:41:56 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/digest/sha1/depend: Ditto.
- * README.md, README.ja.md: removed (wrong) mode setting for emacs.
+ * ext/digest/sha2/depend: Ditto.
-Mon Feb 24 20:05:41 2014 Eric Wong <e@80x24.org>
+ * ext/dl/callback/depend: Ditto.
- * configure.in: define PACKED_STRUCT_UNALIGNED for x86*
- * timev.h (struct vtm): use PACKED_STRUCT_UNALIGNED
- * time.c (struct time_object): ditto
- [Bug #9558] non-x86 cannot safely access unaligned addresses
+ * ext/dl/depend: Ditto.
-Mon Feb 24 18:10:02 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/etc/depend: Ditto.
- * test/fiddle/test_function.rb: remove unused variables.
- * test/fileutils/test_fileutils.rb: ditto.
- * test/io/console/test_io_console.rb: ditto.
+ * ext/nkf/depend: Ditto.
-Mon Feb 24 12:37:51 2014 Eric Wong <e@80x24.org>
+ * ext/objspace/depend: Ditto.
- * configure.in: use -Wno-packed-bitfield-compat for GCC 4.4+
- use __attribute__((packed)) if available
- * timev.h: shrink and pack struct vtm
- * time.c: pack struct time_object and adjust/introduce helpers
- [ruby-core:60794]
+ * ext/pty/depend: Ditto.
-Sun Feb 23 17:55:50 2014 Kouhei Sutou <kou@cozmixng.org>
+ * ext/readline/depend: Ditto.
- * lib/rexml/xmltokens.rb: Add missing non ASCII valid characters
- to element name characters. Now, REXML name tokens exactly
- match "[5] Name" in the XML spec and "[4] NCName" in the
- Namespaces in XML spec. See comment about the details.
- [Bug #9539] [ruby-core:60901]
- Reported by Mario Barcala. Thanks!!!
+ * ext/ripper/depend: Ditto.
- * test/rexml/xpath/test_node.rb: Add tests for the above case.
+ * ext/sdbm/depend: Ditto.
-Sun Feb 23 12:18:54 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/depend: Ditto.
- * ext/socket/raddrinfo.c (inet_pton): use rb_w32_inet_pton, instead of
- inet_pton directly, which is unavailable on older version Windows.
+ * ext/stringio/depend: Ditto.
- * include/ruby/win32.h, win32/win32.c (rb_w32_inet_pton): add a
- wrapper function for inet_pton minimum supported client is
- Vista, as well as inet_ntop.
+ * ext/strscan/depend: Ditto.
-Sun Feb 23 11:33:25 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/syslog/depend: Ditto.
- * test/net/imap/test_imap.rb: remove unused variables.
- * test/net/imap/test_imap_response_parser.rb: ditto.
- * test/net/pop/test_pop.rb: ditto.
+ * ext/-test-/num2int/depend: Removed.
-Sun Feb 23 02:19:51 2014 Tanaka Akira <akr@fsij.org>
+ * ext/dbm/depend: Ditto.
- * lib/resolv.rb (bind_random_port): Rescue EPERM for FreeBSD which
- security.mac.portacl.port_high is changed.
- See mac_portacl(4) for details.
- Reported by Jakub Szafranski. [ruby-core:60917] [Bug #9544]
+ * ext/fcntl/depend: Ditto.
-Sat Feb 22 23:17:01 2014 Kouhei Sutou <kou@cozmixng.org>
+ * ext/gdbm/depend: Ditto.
- * lib/rexml/xpath_parser.rb: Fix indent.
+ * ext/racc/cparse/depend: Ditto.
-Sat Feb 22 23:15:35 2014 Kouhei Sutou <kou@cozmixng.org>
+Sat Apr 13 00:15:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/rexml/xpath/test_attribute.rb: Simplify.
+ * ext/etc/etc.c (Init_etc): move Passwd and Group under Etc namespace
+ as primary names.
-Sat Feb 22 20:28:47 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Apr 12 21:06:55 2013 Tanaka Akira <akr@fsij.org>
- * tool/redmine-backporter.rb: more friendly.
+ * common.mk: pack.o depends on internal.h.
-Sat Feb 22 20:24:43 2014 Kouhei Sutou <kou@cozmixng.org>
+Fri Apr 12 20:59:24 2013 Tanaka Akira <akr@fsij.org>
- * test/rexml/test_xpath*.rb: Move to ...
- * test/rexml/xpath/*.rb: ... here.
+ * bignum.c (ones): Use __builtin_popcountl if available.
-Sat Feb 22 20:04:41 2014 Kouhei Sutou <kou@cozmixng.org>
+ * internal.h (GCC_VERSION_SINCE): Macro moved from pack.c.
- * test/rexml/listener.rb: Untabify.
+ * pack.c: Include internal.h for GCC_VERSION_SINCE.
-Sat Feb 22 19:07:31 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Apr 12 18:29:42 2013 Tanaka Akira <akr@fsij.org>
- * ext/io/console/console.c (console_dev): need read access for conout$
- because some functions need it. [Bug#9554]
+ * common.mk: version.o depends on $(srcdir)/include/ruby/version.h
+ instead of {$(VPATH)}version.h to avoid confusion by VPATH between
+ top level version.h and include/ruby/version.h for build in-place.
+ [ruby-dev:47249] [Bug #8256]
-Sat Feb 22 18:40:58 2014 Eric Wong <e@80x24.org>
+Fri Apr 12 15:21:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * .gitignore: ignore benchmark files
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg): non-symbol key is not
+ a keyword argument, keep it as a positional argument.
-Sat Feb 22 01:22:24 2014 Yusuke Endoh <mame@tsg.ne.jp>
+Fri Apr 12 11:58:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * bignum.c (bary_mul_precheck): fix a copy-paste error.
- Coverity Scan found this bug.
+ * array.c: Document synonymous methods, by windwiny [GH-277]
+ * bignum.c: ditto
+ * complex.c: ditto
+ * dir.c: ditto
+ * encoding.c: ditto
+ * enumerator.c: ditto
+ * numeric.c: ditto
+ * proc.c: ditto
+ * re.c: ditto
+ * string.c: ditto
-Sat Feb 22 00:58:51 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Thu Apr 11 23:41:46 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/raddrinfo.c (rb_getaddrinfo): second argument of
- MEMZERO is type. Coverity Scan found this bug.
+ * common.mk: Add dependencies for include/ruby.h
-Fri Feb 21 23:47:24 2014 Shugo Maeda <shugo@ruby-lang.org>
+ * tool/update-deps: Use "make -p all miniruby ruby golf" to extract
+ dependencies in makefiles.
- * ext/socket/init.c (wait_connectable): break if the socket is
- writable to avoid infinite loops on FreeBSD and other platforms
- which conforms to SUSv3. This problem cannot be reproduced with
- loopback interfaces, so it's hard to write test code.
- rsock_connect() and wait_connectable() are overly complicated, so
- they should be refactored, but I commit this fix as a workaround
- for the release of Ruby 1.9.3 scheduled on Feb 24.
- [ruby-core:60940] [Bug #9547]
+Thu Apr 11 23:21:17 2013 Tanaka Akira <akr@fsij.org>
-Fri Feb 21 23:03:39 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * tool/update-deps: Use "make -p all golf" to extract dependencies in
+ makefiles.
- * tool/redmine-backporter.rb: added to handle redmine tickets.
+Thu Apr 11 21:02:19 2013 Tanaka Akira <akr@fsij.org>
-Fri Feb 21 20:42:01 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * common.mk: Dependency updated.
- * class.c (rb_mod_init_copy): do nothing if copying self.
- [ruby-dev:47989] [Bug #9535]
+ * tool/update-deps: Rewritten.
- * hash.c (rb_hash_initialize_copy): ditto.
+Thu Apr 11 19:59:48 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Feb 21 16:45:54 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * common.mk: partially revert r40183, which breaks building on
+ other than source directory. (its commit log also says the same
+ thing, but such failure is not reproducible on my environment
+ and the commit breaks build on my environment)
- * lib/logger.rb (next_rotate_time, previous_period_end): consider
- DST change.
+Thu Apr 11 16:10:01 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/logger.rb (Logger::LogDevice#check_shift_log): compare the
- current time with the time for the next rotation to fix rotation
- miss when date changed between the comparison and log writing.
- based on the patch by megayu <yuhg2310 AT gmail.com>.
- [Fixes GH-539]
+ * ext/fiddle/closure.c (USE_FFI_CLOSURE_ALLOC): define 0 on
+ Mac OS X and Linux [Bug #3371]
-Fri Feb 21 10:39:33 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Thu Apr 11 13:19:22 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * test/monitor/test_monitor.rb: remove unused variables.
- * test/resolv/test_dns.rb: ditto.
- * test/rexml/test_functions.rb: ditto.
- * test/rss/test_setup_maker_itunes.rb: ditto.
+ * test/drb/drbtest.rb (Drb{Core,Ary}#teardown): retry Process.kill
+ if it fails with Errno::EPERM on Windows (workaround).
+ [ruby-dev:47245] [Bug #8251]
-Fri Feb 21 09:48:56 2014 Eric Wong <e@80x24.org>
+Thu Apr 11 11:11:38 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/socket/ancdata.c (bsock_sendmsg_internal): only retry on error
- (bsock_recvmsg_internal): ditto
- * test/socket/test_unix.rb: test above for infinite loop
+ * dir.c: Fix a typo.
-Fri Feb 21 08:27:19 2014 Eric Wong <e@80x24.org>
+Thu Apr 11 10:39:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * include/ruby/ruby.h (RB_GC_GUARD):
- use rb_gc_guarded_ptr_val on non-GCC/MSC
- * gc.c (rb_gc_guarded_ptr_val): rename and adjust argument.
- RB_GC_GUARD should be robust enough for any compiler.
- [ruby-core:60816] [Bug #7805]
+ * ext/fiddle/closure.c (USE_FFI_CLOSURE_ALLOC): add missing case:
+ RUBY_LIBFFI_MODVERSION is not defined (usually on Windows).
-Thu Feb 20 22:21:26 2014 Tanaka Akira <akr@fsij.org>
+Thu Apr 11 09:27:04 2013 Konstantin Haase <me@rkh.im>
- * ext/socket/raddrinfo.c (numeric_getaddrinfo): Use xcalloc.
- Suggested by Eric Wong.
- https://bugs.ruby-lang.org/issues/9525#note-14
+ * dir.c (file_s_fnmatch): Document File::FNM_EXTGLOB flag.
-Thu Feb 20 11:21:13 2014 Masaki Matsushita <glass.saga@gmail.com>
+Thu Apr 11 09:17:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * hash.c (rb_hash_flatten): fix behavior of flatten(-1).
- [ruby-dev:47988] [Bug #9533]
+ * README: Fix typo by Benjamin Winkler [Fixes GH-281]
- * test/ruby/test_array.rb: test for above.
+Thu Apr 11 06:15:51 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Wed Feb 19 18:57:02 2014 Tanaka Akira <akr@fsij.org>
+ * regint.h: fix typo: _M_AMD86 -> _M_AMD64.
- * ext/socket: Bypass getaddrinfo() if node and serv are numeric.
- Reporeted by Naotoshi Seo. [ruby-core:60801] [Bug #9525]
+ * siphash.c: ditto.
- * ext/socket/extconf.rb: Detect struct sockaddr_in6.sin6_len.
+ * st.c: ditto.
- * ext/socket/sockport.h (SET_SIN6_LEN): New macro.
- (INIT_SOCKADDR_IN6): Ditto.
+Thu Apr 11 06:09:57 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/socket/rubysocket.h (struct rb_addrinfo): Add
- allocated_by_malloc field.
+ * ext/fiddle/extconf.rb: define RUBY_LIBFFI_MODVERSION macro.
- * ext/socket/raddrinfo.c (numeric_getaddrinfo): New function.
- (rb_getaddrinfo): Call numeric_getaddrinfo at first.
- (rb_freeaddrinfo): Free struct addrinfo properly when it is
- allocated by numeric_getaddrinfo.
+ * ext/fiddle/closure.c (USE_FFI_CLOSURE_ALLOC): define 0 or 1
+ with platform and libffi's version. [Bug #3371]
-Wed Feb 19 18:31:48 2014 Tanaka Akira <akr@fsij.org>
+Thu Apr 11 05:30:43 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/socket: Wrap struct addrinfo by struct rb_addrinfo.
+ * lib/mkmf.rb (pkg_config): Add optional argument "option".
+ If it is given, it returns the result of
+ `pkg-config --<option> <pkgname>`.
-Wed Feb 19 17:47:01 2014 Tanaka Akira <akr@fsij.org>
+Thu Apr 11 03:33:05 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/socket/ipsocket.c (ip_s_getaddress): Don't access freed memory.
+ * ext/fiddle/closure.c (initialize): check mprotect's return value.
+ If mprotect is failed because of PaX or something, its function call
+ will cause SEGV.
+ http://c5664.rubyci.org/~chkbuild/ruby-trunk/log/20130401T210301Z.diff.html.gz
-Wed Feb 19 11:39:41 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Wed Apr 10 17:39:13 2013 Tanaka Akira <akr@fsij.org>
- * configure.in: it must see rb_cv_broken_memmem not rb_cv_func_memmem.
+ * ext/bigdecimal/bigdecimal.c (VpCtoV): Initialize a local variable
+ even when overflow.
-Tue Feb 18 23:18:41 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Wed Apr 10 12:32:37 2013 Tanaka Akira <akr@fsij.org>
- * test/socket/test_socket.rb: unix socket is required by test case.
+ * bignum.c (rb_ll2big): Don't overflow on signed integer negation.
-Tue Feb 18 20:48:38 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * ext/bigdecimal/bigdecimal.c (MUL_OVERFLOW_SIGNED_VALUE_P): New
+ macro.
+ (AddExponent): Don't overflow on signed integer multiplication.
+ (VpCtoV): Don't overflow on signed integer arithmetic.
+ (VpCtoV): Don't overflow on signed integer arithmetic.
- * test/socket/test_addrinfo.rb: remove unused variables.
- * test/socket/test_nonblock.rb: ditto.
- * test/socket/test_socket.rb: ditto.
- * test/socket/test_unix.rb: ditto.
- * test/testunit/test_parallel.rb: ditto.
- * test/webrick/test_filehandler.rb: ditto.
- * test/xmlrpc/test_features.rb: ditto.
- * test/zlib/test_zlib.rb: ditto.
+Wed Apr 10 06:32:12 2013 Tanaka Akira <akr@fsij.org>
-Tue Feb 18 14:27:18 2014 Shota Fukumori <her@sorah.jp>
+ * internal.h (MUL_OVERFLOW_INT_P): New macro.
- * lib/test/unit.rb: Requires minitest < 5.0.0 if Gem is available.
+ * sprintf.c (GETNUM): Don't overflow on signed integer multiplication.
-Tue Feb 18 14:24:07 2014 Shota Fukumori <her@sorah.jp>
+Tue Apr 9 20:38:20 2013 Tanaka Akira <akr@fsij.org>
- * lib/test/unit/test-unit.gemspec: Add minitest < 5.0.0 dependency
+ * internal.h (MUL_OVERFLOW_SIGNED_INTEGER_P): New macro.
+ (MUL_OVERFLOW_FIXNUM_P): Ditto.
+ (MUL_OVERFLOW_LONG_P): Ditto.
- * tool/rbinstall.rb: Add empty implementations for `add_dependency`,
- `add_runtime_dependency`, `add_development_dependency` for
- Gem::Specification.
+ * array.c (rb_ary_product): Don't overflow on signed integer
+ multiplication.
-Tue Feb 18 12:06:39 2014 Tanaka Akira <akr@fsij.org>
+ * numeric.c (fix_mul): Ditto.
+ (int_pow): Ditto.
- * configure.in (FILE_COUNT): Removed. (win32.c defines it in itself.)
- (FILE_READPTR): Ditto.
+ * rational.c (f_imul): Ditto.
-Tue Feb 18 09:35:44 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+ * insns.def (opt_mult): Ditto.
- * test/test/psych/test_string.rb: remove unused variables.
- * test/test/psych/test_yaml.rb: ditto.
+ * thread.c (sleep_timeval): Don't overflow on signed integer addition.
-Mon Feb 17 21:31:31 2014 Koichi Sasada <ko1@atdot.net>
+ * bignum.c (rb_int2big): Don't overflow on signed integer negation.
+ (rb_big2ulong): Ditto.
+ (rb_big2long): Ditto.
+ (rb_big2ull): Ditto.
+ (rb_big2ll): Ditto.
- * test/ruby/test_gc.rb: ignore warning messages for running with -w
- option such as chkbuild.
+Tue Apr 9 19:45:44 2013 Tanaka Akira <akr@fsij.org>
-Mon Feb 17 20:00:27 2014 Tanaka Akira <akr@fsij.org>
+ * lib/open-uri.rb: Support multiple fields with same field
+ name (like Set-Cookie).
+ (OpenURI::Meta#metas): New accessor to obtain fields as a Hash from
+ field name (string) to field values (array of strings).
+ [ruby-core:37734] [Bug #4964] reported by ren li.
- * internal.h: Move BDIGIT and related definitions from
- include/ruby/defines.h.
+Tue Apr 9 15:26:12 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Feb 17 17:41:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (iseq_compile_each): append keyword hash to argument array
+ to splat if needed. [ruby-core:54094] [Bug #8236]
- * marshal.c (marshal_dump, marshal_load): do not recycle wrapper
- objects, to prevent from segfault with continuation.
- [ruby-dev:47970] [Bug #9523]
+Tue Apr 9 10:02:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Feb 17 15:43:59 2014 Zachary Scott <e@zzak.io>
+ * lib/mkmf.rb (timestamp_file): gather timestamp files in one
+ directory from each extension directories, with considering
+ target_prefix.
- * doc/keywords.rdoc: [DOC] Add keywords doc by documenting-ruby/ruby#29
- https://github.com/documenting-ruby/ruby/pull/29
+Tue Apr 9 04:57:59 JST 2013 Charles Oliver Nutter <headius@headius.com>
-Mon Feb 17 12:31:31 2014 Koichi Sasada <ko1@atdot.net>
+ * error.c: Capture EAGAIN, EWOULDBLOCK, EINPROGRESS exceptions and
+ export them for use in WaitReadable/Writable exceptions.
+ * io.c: Create versions of EAGAIN, EWOULDBLOCK, EINPROGRESS that
+ include WaitReadable and WaitWritable. Add rb_readwrite_sys_fail
+ for nonblocking failures using those exceptions. Use that
+ function in io_getpartial and io_write_nonblock instead of
+ rb_mod_sys_fail
+ * ext/openssl/ossl_ssl.c: Add new SSLError subclasses that include
+ WaitReadable and WaitWritable. Use those classes for
+ write_would_block and read_would_block instead of rb_mod_sys_fail.
+ * ext/socket/ancdata.c: Use rb_readwrite_sys_fail instead of
+ rb_mod_sys_fail in bsock_sendmsg_internal and
+ bsock_recvmsg_internal.
+ * ext/socket/init.c: Use rb_readwrite_sys_fail instead of
+ rb_mod_sys_fail in rsock_s_recvfrom_nonblock and
+ rsock_s_connect_nonblock.
+ * ext/socket/socket.c: Use rb_readwrite_sys_fail instead of
+ rb_mod_sys_fail in sock_connect_nonblock.
+ * include/ruby/ruby.h: Export rb_readwrite_sys_fail for use instead
+ of rb_mod_sys_fail. Introduce new constants RB_IO_WAIT_READABLE and
+ RB_IO_WAIT_WRITABLE for first arg to rb_readwrite_sys_fail.
- * gc.c (get_envparam_double): fix a warning message.
+Tue Apr 9 02:44:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Feb 17 12:09:52 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/socket/extconf.rb: $defs needs -D or -U. nothing is added
+ otherwize.
- * gc.c: introduce new environment variable
- "RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR" to control major/minor GC
- frequency.
+ * ext/socket/extconf.rb: check struct in_addr6, which is defined in
+ VC6 instead of in6_addr.
- Do full GC when the number of old objects is more than R * N
- where R is this factor and
- N is the number of old objects just after last full GC.
+ * ext/socket/option.c (optname_to_sym): fix macro name.
- * test/ruby/test_gc.rb: add a test.
+ * ext/socket/constants.c (rsock_cmsg_type_arg): fix macro name.
-Mon Feb 17 11:28:40 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Apr 8 23:57:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/test_pty.rb: ignore warnings to unused variables.
+ * object.c (id_for_setter): extract common code from const, class
+ variable, instance variable setters.
-Mon Feb 17 11:27:36 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Apr 8 23:55:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/test_find.rb: remove unused variables.
+ * ext/depend (ENCOBJS, TRANSOBJS): use explicit path to ruby.h for
+ nmake.
-Sun Feb 17 02:12:00 2014 Kenta Murata <mrkn@mrkn.jp>
+ * ext/depend (ENCOBJS, TRANSOBJS): fix header dependency, VPATH has
+ $(srcdir)/include/ruby but not $(srcdir)/include, so cannot find out
+ ruby/ruby.h. use ruby.h instead and ../ruby for include/ruby.h.
- * ext/bigdecimal/bigdecimal.c (BigDecimal_initialize): Insert GC guard.
+Mon Apr 8 20:30:37 2013 Yuki Yugui Sonoda <yugui@google.com>
- * ext/bigdecimal/bigdecimal.c (BigDecimal_global_new): ditto.
+ * ext/depend (ENCOBJS, TRANSOBJS): Add missing dependencies.
-Sun Feb 16 15:53:36 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Apr 8 17:19:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/test_securerandom.rb: File.exists? is deprecated. use File.exist?
+ * ext/win32ole/win32ole.c (fole_missing): should check actual argument
+ count before accessing.
-Sun Feb 16 15:05:00 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Apr 8 16:03:55 2013 Yuki Yugui Sonoda <yugui@google.com>
- * test/pathname/test_pathname.rb: File.exists? is deprecated. use File.exist?
+ Fixes a build failure of ext/ripper/ripper.c on building out of place.
+ * common.mk (id.h, id.c): Always generated in $(srcdir).
+ (ext/ripper/ripper.c): Passes $(PATH_SEPARATOR) too to the sub make.
-Sun Feb 16 15:00:28 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
+Mon Apr 8 12:05:02 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/net/ftp/test_ftp.rb: remove unused variables.
- * test/logger/test_logger.rb: ditto.
+ * object.c (rb_obj_ivar_set): call to_str for string only once.
+ to_str was called from rb_is_const_name and rb_to_id before.
-Sun Feb 16 14:52:46 2014 Eric Wong <e@80x24.org>
+ * object.c (rb_mod_const_set): ditto.
- * dir.c (dir_s_glob): RB_GC_GUARD instead of volatile
+ * object.c (rb_mod_cvar_set): ditto.
-Sun Feb 16 14:33:52 2014 Tanaka Akira <akr@fsij.org>
+Sun Apr 7 13:56:16 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * include/ruby/ruby.h (RBIGNUM_SIGN): Defined for compatibility.
- (RBIGNUM_POSITIVE_P): Ditto.
- (RBIGNUM_NEGATIVE_P): Ditto.
+ * test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
+ RUBY_PLATFORM should escape as Regexp,
+ because RUBY_PLATFORM may contain '.'.
-Sun Feb 16 12:46:47 2014 Eric Wong <e@80x24.org>
+Sun Apr 7 10:44:01 2013 Tanaka Akira <akr@fsij.org>
- * io.c (rb_f_backquote): trade volatile for manual recycle
- rb_gc_force_recycle ensures object is visible until recycle
+ * include/ruby/defines.h: Simplify the logic to include sys/select.h.
+ This fixes a compilation error on Haiku (gcc2 and gcc4).
-Sun Feb 16 11:55:14 2014 Eric Wong <e@80x24.org>
+ * configure.in: Use shared linker as $(CC) for Haiku.
+ This fixes a build error on Haiku (gcc2).
- * marshal.c (marshal_dump): use rb_gc_force_recycle for GC-safety
- (marshal_load): ditto
- [ruby-core:60730] [Bug #7805]
+Sun Apr 7 10:41:30 2013 Tanaka Akira <akr@fsij.org>
-Sun Feb 16 08:11:23 2014 Zachary Scott <e@zzak.io>
+ * lib/resolv.rb (MDNSOneShot#sender): Delete an unused variable.
- * README.EXT.ja: [DOC] Fix typo by @utenmiki [Fixes GH-534]
- https://github.com/ruby/ruby/pull/534
+Sun Apr 7 03:24:36 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Feb 16 07:48:20 2014 Tanaka Akira <akr@fsij.org>
+ * addr2line.c: use more generic type:
+ * u_char -> unsigned char
+ * u_short -> unsigned short
+ * u_int -> unsigned int
+ * u_long -> unsigned long
+ * quad_t -> int64_t
+ * u_quad_t -> uint64_t
- * ext/bigdecimal/bigdecimal.c (BIGNUM_ZERO_P): Unused macro removed.
+ * addr2line.c (imax): inline is defined by configure.
-Sun Feb 16 06:12:23 2014 Tanaka Akira <akr@fsij.org>
+Sun Apr 7 01:40:39 2013 Akinori MUSHA <knu@iDaemons.org>
- * internal.h: Rename macro names: RBIGNUM_FOO to BIGNUM_FOO.
- (BIGNUM_EMBED_LEN_NUMBITS): Renamed from RBIGNUM_EMBED_LEN_NUMBITS.
- (BIGNUM_EMBED_LEN_MAX): Renamed from RBIGNUM_EMBED_LEN_MAX.
- (BIGNUM_SIGN_BIT): Renamed from RBIGNUM_SIGN_BIT.
- (BIGNUM_SIGN): Renamed from RBIGNUM_SIGN.
- (BIGNUM_SET_SIGN): Renamed from RBIGNUM_SET_SIGN.
- (BIGNUM_POSITIVE_P): Renamed from RBIGNUM_POSITIVE_P.
- (BIGNUM_NEGATIVE_P): Renamed from RBIGNUM_NEGATIVE_P.
- (BIGNUM_EMBED_FLAG): Renamed from RBIGNUM_EMBED_FLAG.
- (BIGNUM_EMBED_LEN_MASK): Renamed from RBIGNUM_EMBED_LEN_MASK.
- (BIGNUM_EMBED_LEN_SHIFT): Renamed from RBIGNUM_EMBED_LEN_SHIFT.
- (BIGNUM_LEN): Renamed from RBIGNUM_LEN.
- (RBIGNUM_DIGITS): Renamed from RBIGNUM_DIGITS.
- (BIGNUM_LENINT): Renamed from RBIGNUM_LENINT.
+ * misc/ruby-electric.el (ruby-electric-hash): New electric
+ function that expands a hash sign inside a string or regexp to
+ "#{}".
- * bignum.c: Follow the above change.
+ * misc/ruby-electric.el (ruby-electric-curlies): Do not insert
+ spaces inside when the curly brace is a delimiter of %r, %w,
+ etc.
- * gc.c: Ditto.
+ * misc/ruby-electric.el (ruby-electric-curlies): Insert another
+ space before a closing curly brace when
+ ruby-electric-newline-before-closing-bracket is nil.
- * marshal.c: Ditto.
+Sun Apr 7 01:01:26 2013 Tanaka Akira <akr@fsij.org>
- * math.c: Ditto.
+ * strftime.c (rb_strftime_with_timespec): Test yday range.
+ [ruby-core:44088] [Bug #6247] reported by Ruby Submit.
- * numeric.c: Ditto.
+Sat Apr 6 23:46:54 2013 Naohisa Goto <ngotogenome@gmail.com>
- * random.c: Ditto.
+ * configure.in (AC_CHECK_HEADERS): atomic.h for Solaris atomic_ops.
- * rational.c: Ditto.
+ * ruby_atomic.h: Skip using Solaris10 atomic_ops on Solaris 9 or
+ earlier if atomic.h is not available. [ruby-dev:47229] [Bug #8228]
- * sprintf.c: Ditto.
+Sat Apr 6 23:40:40 2013 Tanaka Akira <akr@fsij.org>
- * ext/-test-/bignum/bigzero.c: Ditto.
+ * lib/resolv.rb: Support LOC resources.
+ [ruby-core:23361] [Feature #1436] by JB Smith.
- * ext/-test-/bignum/intpack.c: Ditto.
+Sat Apr 6 23:38:09 2013 Naohisa Goto <ngotogenome@gmail.com>
- * ext/bigdecimal/bigdecimal.c: Ditto.
+ * addr2line.c: quad_t and u_quad_t is not available on Solaris.
+ __inline is not available with old compilers on Solaris.
+ [ruby-dev:47229] [Bug #8227]
-Sat Feb 15 20:48:49 2014 Tanaka Akira <akr@fsij.org>
+Sat Apr 6 23:31:38 2013 Tanaka Akira <akr@fsij.org>
- * configure.in (FILE_READEND): Don't detect it because it is not used.
+ * lib/resolv.rb: Add one-shot multicast DNS support.
+ [ruby-core:53387] [Feature #8089] by Eric Hodel.
-Sat Feb 15 13:22:28 2014 Eric Wong <e@80x24.org>
+Sat Apr 6 22:12:01 2013 Tanaka Akira <akr@fsij.org>
- * probes_helper.h (RUBY_DTRACE_HOOK): correct type for _id
+ * lib/resolv.rb (Resolv::DNS.fetch_resource): New method to obtain
+ full result.
+ [ruby-dev:43587] [Feature #4788] proposed by Makoto Kishimoto.
-Sat Feb 15 11:47:47 2014 Tanaka Akira <akr@fsij.org>
+Sat Apr 6 20:17:51 2013 Tanaka Akira <akr@fsij.org>
- * bignum.c (rb_big_cmp): Avoid bignum allocation for comparison
- between bignum and fixnum.
+ * ext/socket/socket.c (rsock_sys_fail_raddrinfo): Renamed from
+ rsock_sys_fail_addrinfo.
+ (rsock_sys_fail_raddrinfo_or_sockaddr): Renamed from
+ rsock_sys_fail_addrinfo_or_sockaddr.
-Sat Feb 15 10:55:12 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+ * ext/socket/rubysocket.h: Follow the above change.
- * ext/-test-/win32/fd_setsize/depend: fix wrong dependencies.
- [ruby-dev:47253]
+Sat Apr 6 19:24:59 2013 Tanaka Akira <akr@fsij.org>
-Sat Feb 15 00:38:54 2014 Tanaka Akira <akr@fsij.org>
+ * ext/socket/socket.c (rsock_sys_fail_sockaddr): Takes struct sockaddr
+ and socklen_t instead of String object.
+ (rsock_sys_fail_addrinfo_or_sockaddr): Follow the above change.
- * enum.c: Enumerable#{min,min_by,max,max_by} extended to take an
- optional argument.
- (nmin_cmp): New function.
- (nmin_block_cmp): Ditto
- (nmin_filter): Ditto.
- (nmin_i): Ditto.
- (nmin_run): Ditto.
- (enum_min): Call nmin_run if the optional argument is given.
- (nmin_max): Ditto.
- (nmin_min_by): Ditto.
- (nmin_max_by): Ditto.
+ * ext/socket/rubysocket.h (rsock_sys_fail_sockaddr): Follow the above
+ change.
- * range.c: Range#{min,max} extended to take an optional argument.
- (range_min): Call range_first if the optional argument is given.
- (range_max): Call rb_call_super if the optional argument is given.
+Sat Apr 6 14:28:23 2013 Tanaka Akira <akr@fsij.org>
- [ruby-core:57111] [Feature #8887]
+ * ext/socket/rubysocket.h (SockAddrStringValueWithAddrinfo): New macro.
+ (rsock_sockaddr_string_value_with_addrinfo): New declaration.
+ (rsock_addrinfo_inspect_sockaddr): Ditto.
+ (rsock_sys_fail_addrinfo): Ditto.
+ (rsock_sys_fail_sockaddr_or_addrinfo): Ditto.
-Sat Feb 15 00:27:46 2014 Tanaka Akira <akr@fsij.org>
+ * ext/socket/raddrinfo.c (rsock_addrinfo_inspect_sockaddr): Renamed
+ from addrinfo_inspect_sockaddr and exported.
+ (rsock_sockaddr_string_value_with_addrinfo): New function to obtain
+ string and possibly addrinfo object.
- * include/ruby/ruby.h,
- internal.h,
- ext/-test-/bignum/bigzero.c: Hide a Bignum definition.
- [ruby-core:42891] [Feature #6083]
+ * ext/socket/socket.c (rsock_sys_fail_sockaddr): Don't use
+ rsock_sys_fail_host_port which is IP dependent. Invoke
+ rsock_sys_fail_addrinfo.
+ (rsock_sys_fail_addrinfo): New function using
+ rsock_addrinfo_inspect_sockaddr.
+ (rsock_sys_fail_addrinfo_or_sockaddr): New function.
+ (sock_connect): Use SockAddrStringValueWithAddrinfo and
+ rsock_sys_fail_addrinfo_or_sockaddr.
+ (sock_connect_nonblock): Ditto.
+ (sock_bind): Ditto.
-Sat Feb 15 00:13:14 2014 Tanaka Akira <akr@fsij.org>
+Sat Apr 6 13:34:20 2013 Tanaka Akira <akr@fsij.org>
- * include/ruby/intern.h,
- include/ruby/io.h,
- include/ruby/ruby.h,
- include/ruby/win32.h,
- include/ruby/backward/rubysig.h,
- bignum.c,
- gc.c,
- io.c,
- process.c,
- safe.c,
- struct.c,
- thread.c,
- ext/socket/rubysocket.h,
- ext/-test-/old_thread_select: Remove deprecated definitions
- [ruby-core:60581] [Feature #9502]
+ * ext/socket/socket.c (rsock_sys_fail_sockaddr): Delete 2nd argument.
-Fri Feb 14 18:38:46 2014 Eric Wong <e@80x24.org>
+ * ext/socket/rubysocket.h (rsock_sys_fail_sockaddr): Follow above
+ change.
- * string.c (rb_str_format_m): trade volatile for RB_GC_GUARD
- RB_GC_GUARD meaning is clear and has better code generation.
- [ruby-core:60688]
+Sat Apr 6 13:13:39 2013 Tanaka Akira <akr@fsij.org>
-Thu Feb 13 23:30:30 2014 Shugo Maeda <shugo@ruby-lang.org>
+ * ext/socket/socket.c (rsock_sys_fail_path): Use rb_str_inspect only
+ for String to avoid SEGV.
- * vm_insnhelper.c (vm_call_method): should check ci->me->flag of
- a refining method in case the method is private.
- [ruby-core:60111] [Bug #9452]
+Sat Apr 6 12:40:16 2013 Tanaka Akira <akr@fsij.org>
- * vm_method.c (make_method_entry_refined): set me->flag of a refined
- method entry to NOEX_PUBLIC in case the original method is private
- and it is refined as a public method. The original flag is stored
- in me->def->body.orig_me, so it's OK to make a refined method
- entry public. [ruby-core:60111] [Bug #9452]
+ * ext/socket/rubysocket.h (rsock_sys_fail_host_port): Wrap by NORETURN.
+ (rsock_sys_fail_path): Ditto.
+ (rsock_sys_fail_sockaddr): Ditto.
- * test/ruby/test_refinement.rb: related tests.
+Sat Apr 6 11:49:35 2013 Tanaka Akira <akr@fsij.org>
-Thu Feb 13 18:38:15 2014 Eric Wong <e@80x24.org>
+ * ext/socket/socket.c (rsock_sys_fail_path): Use rb_str_inspect if the
+ path contains a NUL.
- * re.c (rb_reg_raise): remove volatile
- Unnecessary since r41597
+Sat Apr 6 11:39:19 2013 Tanaka Akira <akr@fsij.org>
-Thu Feb 13 18:28:51 2014 Eric Wong <e@80x24.org>
+ * ext/socket: Improve socket exception message to show socket address.
+ [ruby-core:45617] [Feature #6583] proposed Eric Hodel.
- * re.c (rb_reg_regcomp): remove volatile
- Unnecessary since r13261
+ * ext/socket/rubysocket.h (rsock_sys_fail_host_port): Declared.
+ (rsock_sys_fail_path): Ditto.
+ (rsock_sys_fail_sockaddr): Ditto.
-Thu Feb 13 16:54:32 2014 Zachary Scott <e@zzak.io>
+ * ext/socket/udpsocket.c (udp_connect): Use rsock_sys_fail_host_port.
+ (udp_bind): Ditto.
+ (udp_send): Ditto.
- * test/ruby/test_array.rb: Ensure flatten! is used for test_flatten
- Patch by @ksss [Fixes GH-530] https://github.com/ruby/ruby/pull/530
+ * ext/socket/init.c (rsock_init_sock): Specify a string for rb_sys_fail
+ argument.
+ (make_fd_nonblock): Ditto.
+ (rsock_s_accept): Ditto.
-Thu Feb 13 15:43:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/ipsocket.c (init_inetsock_internal): Use
+ rsock_sys_fail_host_port.
- * parse.y (IDSET_ATTRSET_FOR_INTERN): fix off-by-one bug.
+ * ext/socket/socket.c (rsock_sys_fail_host_port): Defined.
+ (rsock_sys_fail_path): Ditto.
+ (rsock_sys_fail_sockaddr): Ditto.
+ (setup_domain_and_type): Use rsock_sys_fail_sockaddr.
+ (sock_connect_nonblock): Ditto.
+ (sock_bind): Ditto.
+ (sock_gethostname): Specify a string for rb_sys_fail argument.
+ (socket_s_ip_address_list): Ditto.
- * parse.y (rb_enc_symname_type): junk ID succeeded by '=' is also
- attrset ID. [ruby-core:60668] [Bug #8756]
+ * ext/socket/basicsocket.c (bsock_shutdown): Specify a string for
+ rb_sys_fail argument.
+ (bsock_setsockopt): Use rsock_sys_fail_path.
+ (bsock_getsockopt): Ditto.
+ (bsock_getpeereid): Refine the argument for rb_sys_fail.
-Thu Feb 13 11:06:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/unixsocket.c (rsock_init_unixsock): Use
+ rsock_sys_fail_path.
+ (unix_path): Ditto.
+ (unix_send_io): Ditto.
+ (unix_recv_io): Ditto.
+ (unix_addr): Ditto.
+ (unix_peeraddr): Ditto.
- * configure.in: check if pthread_setname_np is available.
+Sat Apr 6 11:23:18 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * thread_pthread.c: pthread_setname_np is not available on old
- Darwins. [ruby-core:60524] [Bug #9492]
+ * test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
+ fix load path for encoding to run the test as stand-alone.
-Thu Feb 13 00:56:59 2014 Masaki Matsushita <glass.saga@gmail.com>
+Sat Apr 6 09:54:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in: revert r44922. I should have used AC_CHECK_FUNCS()
- to just define a symbol if the function is available.
+ * pack.c (NATINT_LEN): fix definition order, must be after
+ NATINT_PACK.
-Thu Feb 13 00:20:58 2014 Masaki Matsushita <glass.saga@gmail.com>
+Sat Apr 6 03:11:07 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * configure.in: use AC_CHECK_FUNC instead of AC_CHECK_FUNCS
- if available.
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: fix symbol keys in coder
+ emission. Thanks @tjwallace
+ * test/psych/test_coder.rb: test for change
-Thu Feb 13 00:15:10 2014 Masaki Matsushita <glass.saga@gmail.com>
+Sat Apr 6 02:54:08 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * configure.in: fix to undefine HAVE_MEMMEM correctly if it is broken.
+ * ext/psych/lib/psych/exception.rb: there should be only one exception
+ base class. Fixes tenderlove/psych #125
+ * ext/psych/lib/psych.rb: require the correct exception class
+ * ext/psych/lib/psych/syntax_error.rb: ditto
+ * ext/psych/lib/psych/visitors/to_ruby.rb: ditto
-Tue Feb 11 23:54:40 2014 Tanaka Akira <akr@fsij.org>
+Sat Apr 6 02:30:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * bignum.c (rb_big_cmp): Specialize a comparison to zero.
+ * parse.y (new_defined): remove all extra parentheses, and return
+ "nil" for defined? with empty expression.
+ [ruby-core:54024] [Bug #8224]
- * ext/bigdecimal/bigdecimal.c (is_negative): Use rb_big_cmp instead of
- RBIGNUM_NEGATIVE_P.
- (BigMath_s_log): Ditto.
+Sat Apr 6 02:06:04 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Tue Feb 11 22:59:10 2014 Tanaka Akira <akr@fsij.org>
+ * ext/psych/lib/psych/visitors/to_ruby.rb: correctly register
+ self-referential strings. Fixes tenderlove/psych #135
- * ext/openssl/ossl_bn.c (ossl_bn_initialize): Use rb_integer_pack.
- Fix SEGV by OpenSSL::BN.new(1 << (2**34)).
+ * test/psych/test_string.rb: appropriate test.
-Tue Feb 11 17:00:38 2014 Zachary Scott <e@zzak.io>
+Sat Apr 6 01:21:56 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/README.tcltklib: [DOC] Fix typo by @xta [Fixes GH-532]
+ * ext/socket/init.c (cloexec_accept): Fix a compile error on
+ Debian GNU/kFreeBSD. Consider HAVE_ACCEPT4 is defined
+ but SOCK_CLOEXEC is not defined.
-Sun Feb 9 13:59:29 2014 Tanaka Akira <akr@fsij.org>
+Sat Apr 6 00:19:30 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * configure.in: Fix compilation error.
- https://bugs.ruby-lang.org/issues/8358#note-16
+ * load.c (features_index_add): use rb_str_subseq() to specify C string
+ position properly to fix require non ascii path.
+ [ruby-core:53733] [Bug #8165]
-Sun Feb 9 05:20:24 2014 NARUSE, Yui <naruse@ruby-lang.org>
+ * test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
+ a test for the above.
- * configure.in (rb_cv_gnu_qsort_r): use compile error "conflicting
- types for 'qsort_r'" instead of AC_RUN_IFELSE.
+Fri Apr 5 20:41:49 2013 Tanaka Akira <akr@fsij.org>
-Sun Feb 9 04:07:34 2014 Zachary Scott <e@zzak.io>
+ * include/ruby/defines.h (HAVE_TRUE_LONG_LONG): Defined to distinguish
+ availability of long long and availability of 64bit integer type.
- * lib/yaml.rb: [DOC] Add links to syck and psych on github [Bug #9501]
- Based on a patch by Giorgos Tsiftsis
+ * pack.c: Use HAVE_TRUE_LONG_LONG to distinguish q! and Q! support.
-Sun Feb 9 02:13:53 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Apr 5 20:19:42 2013 Tanaka Akira <akr@fsij.org>
- * include/ruby/ruby.h (OBJ_TAINTABLE, OBJ_TAINT, OBJ_INFECT),
- marshal.c (r_entry0): all Numerics never be tainted now.
- [ruby-core:57346] [Bug #8945]
+ * addr2line.c: Include ruby/missing.h to fix compile error on Debian.
-Sat Feb 8 23:40:35 2014 Vit Ondruch <vondruch@redhat.com>
+Fri Apr 5 19:39:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in: add quoting brackets and append wildcard for the
- rest after target_cpu, to properly detect platform for SSE2
- instructions. [ruby-core:60576] [Bug #8358]
+ * compile.c (iseq_compile_each): fix of defined? with empty
+ expression. [ruby-core:53999] [Bug #8220]
-Sat Feb 8 21:44:07 2014 Masaki Matsushita <glass.saga@gmail.com>
+Fri Apr 5 13:22:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in: check qsort_r(3) and whether it is GNU version.
- BSD version has different prototype.
+ * ext/curses/curses.c (Init_curses): fix implementation function,
+ crmode should be same as cbreak. [ruby-core:54013] [Bug #8222]
- * util.h: use qsort_r() as ruby_qsort() if it is GNU version.
+Fri Apr 5 12:06:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * util.c: define ruby_qsort() if needed.
+ * ext/curses/hello.rb: Typo in Curses example by Drew Blas
+ [Fixes GH-273]
-Sat Feb 8 16:34:36 2014 Tanaka Akira <akr@fsij.org>
+Thu Apr 4 23:45:13 2013 Tanaka Akira <akr@fsij.org>
- * lib/resolv.rb (Resolv::DNS::Message::MessageDecoder#get_labels):
- Make it iterative.
+ * lib/resolv.rb (bind_random_port): Rescue EACCES for SunOS.
+ bind() on SunOS for port 2049 (nfs) and 4045 (lockd) causes
+ EACCES with unprivileged process. cf. PRIV_SYS_NFS in privileges(5)
+ [ruby-core:48064] [Bug #7183] reported by Frank Meier.
-Sat Feb 8 15:54:12 2014 Koichi Sasada <ko1@atdot.net>
+Thu Apr 4 23:24:45 2013 Tanaka Akira <akr@fsij.org>
- * gc.c, gc.h (rb_objspace_marked_object_p): added.
- This function *ONLY* works just after marking phase,
- before any sweeping.
- This function is highly depending current GC implementation
- and can be removed future version.
+ * ext/socket/extconf.rb: Remove condition for bcc.
-Sat Feb 8 15:41:37 2014 Tanaka Akira <akr@fsij.org>
+Thu Apr 4 22:53:23 2013 Tanaka Akira <akr@fsij.org>
- * lib/resolv.rb: Don't set CLOEXEC flag explicitly. (Ruby set it by
- default.)
+ * include/ruby/ruby.h (FIX2LONG): Parenthesize the macro body.
-Sat Feb 8 15:27:02 2014 Tanaka Akira <akr@fsij.org>
+Thu Apr 4 22:32:32 2013 Tanaka Akira <akr@fsij.org>
- * lib/resolv.rb (Resolv::DNS::Message::MessageDecoder): Raise
- DecodeError if no data before the limit.
- Reported by Will Bryant. [ruby-core:60557] [Bug #9498]
+ * time.c (time_strftime): Describe %L and %N truncates digits under
+ the specified length.
+ [ruby-core:52130] [Bug #7829]
-Sat Feb 8 15:11:21 2014 Tanaka Akira <akr@fsij.org>
+Thu Apr 4 22:08:46 2013 Tanaka Akira <akr@fsij.org>
- * io.c (SMALLBUF): Unused macro removed.
+ * object.c (rb_mod_cvar_set): Reverted "avoid inadvertent
+ symbol creation" to avoid SEGV by
+ Class.new.class_variable_set(1, 2).
-Fri Feb 7 23:37:49 2014 Tanaka Akira <akr@fsij.org>
+Thu Apr 4 20:07:19 2013 Tanaka Akira <akr@fsij.org>
- * lib/resolv.rb: Ignore name servers which cause EAFNOSUPPORT on
- socket creation.
- Reported by Bjoern Rennhak. [ruby-core:60442] [Bug #9477]
+ * ext/pathname/pathname.c (path_write): New method.
+ (path_binwrite): Ditto.
+ [ruby-core:49468] [Feature #7378]
-Fri Feb 7 21:58:48 2014 Zachary Scott <e@zzak.io>
+Thu Apr 4 16:51:29 2013 Yuki Yugui Sonoda <yugui@google.com>
- * lib/open-uri.rb: [DOC] use lower case version of core classes, same
- as commit r44878, based on patch by Jonathan Jackson [Bug #9483]
+ * thread_pthread.c: Fixes wrong scopes of #if USE_SLEEPY_TIMER_THREAD
+ .. #endif sections. This fixes a build error on NativeClient.
-Fri Feb 7 21:54:53 2014 Zachary Scott <e@zzak.io>
+Wed Apr 3 17:25:31 2013 Yuki Yugui Sonoda <yugui@google.com>
- * ext/ripper/lib/ripper/lexer.rb: [DOC] use lower case version of core
- classes when referring to return value, since we aren't directly
- talking about the class. Patch by Jonathan Jackson [Bug #9483]
+ * thread_pthread.c (ruby_init_stack): Avoid using uninitialized value.
+ stackaddr and size are not set if get_stack() fails.
-Fri Feb 7 05:28:38 2014 Eric Wong <e@80x24.org>
+Thu Apr 4 16:55:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * constant.h: reduce rb_const_entry_t size on 64-bit
- Patch by Adam Avilla [ruby-core:60542] [Feature #9496]
+ * struct.c (make_struct): avoid inadvertent symbol creation.
+ (rb_struct_aref): ditto.
+ (rb_struct_aset): ditto.
-Thu Feb 6 15:27:46 2014 Koichi Sasada <ko1@atdot.net>
+Thu Apr 4 16:54:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (get_envparam_int): correct warning messages.
+ * object.c (rb_mod_const_set): avoid inadvertent symbol creation.
+ (rb_obj_ivar_set): ditto.
+ (rb_mod_cvar_set): ditto.
- * gc.c (get_envparam_double): ditto.
+Thu Apr 4 15:46:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Feb 6 15:17:30 2014 Koichi Sasada <ko1@atdot.net>
+ * enum.c (enum_inject): avoid inadvertent symbol creation.
- * gc.c (get_envparam_int): don't accept a value equals to lowerbound
- (changed by last commit) because "" or "foo" (not a number) strings
- are parsed as 0. They should be rejected.
+Thu Apr 4 14:37:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (get_envparam_double): ditto.
+ * thread.c (rb_thread_aref): avoid inadvertent symbol creation.
+ (rb_thread_variable_get): ditto.
+ (rb_thread_key_p): ditto.
+ (rb_thread_variable_p): ditto.
-Thu Feb 6 09:00:35 2014 Koichi Sasada <ko1@atdot.net>
+Thu Apr 4 11:33:57 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * gc.c (ruby_gc_set_params): if RUBY_GC_OLDMALLOC_LIMIT is provided,
- then set objspace->rgengc.oldmalloc_increase_limit.
- Without this fix, the env variable RUBY_GC_OLDMALLOC_LIMIT
- does not work.
+ * ext/openssl/ossl_bn.c (ossl_bn_to_i): Use bn2hex to speed up.
+ In general, binary to/from decimal needs extra cost.
- * gc.c (get_envparam_int): accept a value equals to lowerbound.
+Thu Apr 4 07:24:18 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (get_envparam_double): ditto.
+ * ext/socket/extconf.rb: Specify arguments to test functions.
-Thu Feb 6 08:23:28 2014 Eric Wong <e@80x24.org>
+Thu Apr 4 03:25:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/thread/thread.c (rb_szqueue_max_set): use correct queue and
- limit wakeups. [Bug #9343][ruby-core:60517]
- * test/thread/test_queue.rb (test_sized_queue_assign_max):
- test for bug
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): fix can't create from bn.
-Thu Feb 6 07:18:01 2014 Eric Hodel <drbrain@segment7.net>
+Wed Apr 3 22:09:25 2013 Tanaka Akira <akr@fsij.org>
- * lib/rubygems: Update to RubyGems 2.2.2. Complete history at:
+ * ext/socket/extconf.rb: Test functions and libraries after headers.
- http://rubygems.rubyforge.org/rubygems-update/History_txt.html#label-2.2.2+%2F+2014-02-05
+Wed Apr 3 21:23:29 2013 Tanaka Akira <akr@fsij.org>
- * test/rubygems: ditto.
+ * io.c (rb_io_seek_m): Accept :CUR, :END, :SET as "whence" argument.
+ (interpret_seek_whence): New function.
+ [ruby-dev:45818] [Feature #6643]
-Wed Feb 5 20:56:32 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Apr 3 20:52:49 2013 Tanaka Akira <akr@fsij.org>
- * marshal.c (to_be_skipped_id): ignore anonymous attributes.
+ * process.c: Describe the behavior which Ruby invokes a commandline
+ directly without shell if the commandline is simple enough.
+ [ruby-core:50459] [Bug #7489]
- * pack.c (Init_pack): use anonymous ID so that associated objects
- do not appear in the packed result.
+Wed Apr 3 20:27:37 2013 Tanaka Akira <akr@fsij.org>
- * parse.y (rb_make_internal_id): return an anonymous ID for
- internal use.
+ * ext/extmk.rb (extmake): Invoke Logging::log_close in a ensure
+ clause.
-Wed Feb 5 14:41:56 2014 Koichi Sasada <ko1@atdot.net>
+Wed Apr 3 18:53:58 2013 Tanaka Akira <akr@fsij.org>
- * vsnprintf.c: remove duplicated def of `UNINITIALIZED_VAR()'.
+ * ext/extmk.rb (extmake): Use Logging.open to switch stdout and
+ stderr. Delay Logging::log_close until the failure message is
+ written. Write the failure message only if log file is opened.
-Wed Feb 5 14:40:16 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/mkmf.rb (Logging.log_opened?): New method.
- * ext/objspace/objspace_dump.c (dump_object): use STR_SHARED_P()
- instead of removed STR_NOCAPA_P() macro.
+ [ruby-dev:47215] [Bug #8209]
-Wed Feb 5 13:51:33 2014 Koichi Sasada <ko1@atdot.net>
+Wed Apr 3 17:11:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * internal.h, vm_core.h: move LIKELY/UNLIKELY/UNINITIALIZED_VAR()
- macros from vm_core.h to internal.h.
+ * win32/win32.c (constat_apply): pass through unknown sequence which
+ starts with ESC but is not followed by a bracket. [ruby-core:53879]
+ [Bug #8201]
- * string.c: remove dependency to "vm_core.h".
+Wed Apr 3 16:35:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * common.mk: ditto.
+ * bignum.c (rb_big_eq): hide intermediate Bignums not just freeing
+ memory. [ruby-core:53893] [Bug #8204]
-Wed Feb 5 13:29:01 2014 Koichi Sasada <ko1@atdot.net>
+ * object.c (rb_obj_hide): hide an object by clearing klass.
- * string.c (rb_str_free): use FL_TEST(str, STR_SHARED) directly
- because str is not embed.
+ * bignum.c (rb_big_eq): test as Fixnum if possible and get rid of zero
+ length Bignum. [ruby-core:53893] [Bug #8204]
- * string.c (str_replace): remove `FL_SET(str, STR_SHARED)' line
- because STR_SET_SHARED() set STR_SHARED.
+Tue Apr 2 23:56:03 2013 Tanaka Akira <akr@fsij.org>
-Wed Feb 5 13:18:08 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/securerandom.rb (SecureRandom.random_bytes): Use
+ OpenSSL::Random.random_add instead of OpenSSL::Random.seed and
+ specify 0.0 as the entropy.
+ [ruby-core:47308] [Bug #6928]
- * internal.h: remove macros STR_NOCAPA and STR_NOCAPA_P().
+Tue Apr 2 20:24:52 2013 Tanaka Akira <akr@fsij.org>
- * string.c (rb_str_resize): remove `STR_SET_NOEMBED(str)' because
- str_make_independent_expand() set NOEMBED flag.
+ * pack.c: Support Q! and q! for long long.
+ (natstr): Moved to toplevel. Add q and Q if there is long long type.
+ (endstr): Moved to toplevel.
+ (NATINT_PACK): Consider long long.
+ (NATINT_LEN_Q): New macro.
+ (pack_pack): Support Q! and q!.
+ (pack_unpack): Ditto.
+ [ruby-dev:43970] [Feature #3946]
- * string.c (rb_str_resize): remove `STR_NOCAPA_P(str)' check because
- `str' is independent (not shared).
+Tue Apr 2 19:24:26 2013 Tanaka Akira <akr@fsij.org>
-Wed Feb 5 12:54:25 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/-test-/num2int/num2int.c: Define utility methods
+ as module methods of Num2int.
- * string.c: refactoring, especially about string flags.
+ * test/-ext-/num2int/test_num2int.rb: Follow the above change.
- * string.c (STR_UNSET_NOCAPA): removed.
- Use FL_UNSET() with STR_SHARED.
+Tue Apr 2 18:49:01 2013 Tanaka Akira <akr@fsij.org>
- * string.c (rb_str_capacity): check STR_SHARED directly
- because it is not a embed string.
+ * lib/securerandom.rb: Don't use Array#to_s.
+ [ruby-core:52058] [Bug #7811] fixed by zzak (Zachary Scott).
- * string.c (rb_str_modify_expand): ditto.
+Tue Apr 2 17:38:20 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * string.c (rb_str_shared_replace): use STR_SET_SHARED().
+ * re.c (rb_reg_to_s): suppress duplicated charclass warning.
+ Regexp#to_s suppress extra its whole regexp options by calling
+ onig_new with its source, but it doesn't call rb_reg_preprocess.
+ Therefore its Unicode escapes (\u{XXXX}) are given as is,
+ and it may cause duplicated charclass warning for example
+ "[\u{33}]" (3 is duplicated) or "[\u{a}\u{b}]" (u is duplicated).
+ [ruby-core:53649] [Bug #8151]
- * string.c (str_make_independent_expand): remove STR_UNSET_NOCAPA()
- because `str' is not shared string.
+Tue Apr 2 16:00:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Wed Feb 5 12:11:04 2014 Koichi Sasada <ko1@atdot.net>
+ * vm_dump.c (rb_print_backtrace): separate to ease showing C backtrace.
- * string.c (RESIZE_CAPA): should not resize shared string.
+ * internal.h (rb_print_backtrace): ditto.
-Wed Feb 5 11:46:42 2014 Koichi Sasada <ko1@atdot.net>
+Tue Apr 2 15:22:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * gc.c (gc_mark_children): STR_ASSOC is no longer available.
- Reported by @nagachika.
- http://d.hatena.ne.jp/nagachika/20140204
+ * test/ruby/envutil.rb (assert_separately): stop_auto_run of
+ Test::Unit::Runner to prevent auto runner use ARGV.
-Wed Feb 5 11:27:22 2014 Koichi Sasada <ko1@atdot.net>
+ * test/ruby/envutil.rb (assert_separately): add $: to separate process.
- * string.c (rb_str_new_frozen): refactoring code.
- * Move code from str_new_frozen_with_klass() (and remove it)
- * `aux.shared' should not be 0 for STR_SHARED strings.
+ * test/ruby/envutil.rb (assert_separately): fail if stderr is not
+ empty and ignore_stderr is false.
-Wed Feb 5 04:23:41 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+Tue Apr 2 06:46:59 2013 Tanaka Akira <akr@fsij.org>
- * ext/psych/lib/psych.rb: New release of psych.
- * ext/psych/psych.gemspec: ditto
+ * ext/-test-/num2int/num2int.c: Rename utility methods
+ to global functions to ease manual experiments.
-Wed Feb 5 04:16:41 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * test/-ext-/num2int/test_num2int.rb: Follow the above change.
- * ext/psych/yaml/emitter.c: merge libyaml 0.1.5
- * ext/psych/yaml/loader.c: ditto
- * ext/psych/yaml/parser.c: ditto
- * ext/psych/yaml/reader.c: ditto
- * ext/psych/yaml/scanner.c: ditto
- * ext/psych/yaml/writer.c: ditto
- * ext/psych/yaml/yaml_private.h: ditto
+Mon Apr 1 22:26:17 2013 Tanaka Akira <akr@fsij.org>
-Tue Feb 4 19:10:29 2014 Koichi Sasada <ko1@atdot.net>
+ * ext/zlib/zlib.c (rb_gzfile_set_mtime): Use NUM2UINT.
+ The old logic doesn't work well on LP64 platforms as:
+ .. -2**63-1 => error,
+ -2**63 .. -2**62-1 => success,
+ -2**62 .. -2**31-1 => error,
+ -2**31 .. 2**31-1 => success,
+ 2**31 .. 2**62-1 => error,
+ 2**62 .. 2**64-1 => success,
+ 2**64 .. => error.
- * string.c: use long allocator names instead of numbered
- allocator names.
- * rb_str_new2 -> rb_str_new_cstr
- * rb_str_new4 -> rb_str_new_frozen
- * rb_str_new5 -> rb_str_new_with_class
- * str_new3 -> str_new_shared
- * str_new4 -> str_new_frozen_with_klass
+Mon Apr 1 22:08:02 2013 Benoit Daloze <eregontp@gmail.com>
-Tue Feb 4 17:20:03 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/zlib/zlib.c (Zlib::Inflate.new):
+ Fix documentation syntax and naming errors.
+ Based on patch by Robin Dupret. Fix GH-271.
- * dir.c (glob_helper): return the filename with actual cases on
- the filesystem if it is case-insensitive. [ruby-core:42469]
- [Feature #5994]
+Mon Apr 1 21:22:31 2013 Tanaka Akira <akr@fsij.org>
-Tue Feb 4 16:16:58 2014 Koichi Sasada <ko1@atdot.net>
+ * test/-ext-/num2int/test_num2int.rb: Test small bignums.
- * string.c: use STR_SHARED instead of ELTS_SHARED.
- (same value, but more clear meaning)
+Mon Apr 1 21:10:56 2013 Tanaka Akira <akr@fsij.org>
-Tue Feb 4 16:09:14 2014 Koichi Sasada <ko1@atdot.net>
+ * numeric.c (rb_num2ulong_internal): Don't cast a negative double value
+ into unsigned long, which is undefined behavior.
+ (rb_num2ull): Don't cast a value bigger than LLONG_MAX into
+ long long, which is undefined behavior.
- * string.c: remove STR_ASSOC related code.
- By r44804, string objects can not have STR_ASSOC flag.
+Mon Apr 1 20:57:57 2013 Tanaka Akira <akr@fsij.org>
- * internal.h: ditto.
+ * ext/-test-/num2int/num2int.c: Return string for result, instead of
+ printing.
- * ext/objspace/objspace_dump.c (dump_object): ditto.
+ * test/-ext-/num2int/test_num2int.rb: updated to follow above change.
-Tue Feb 4 14:07:20 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Apr 1 20:08:07 2013 Tanaka Akira <akr@fsij.org>
- * pack.c (str_associate, str_associated): keep associated objects
- in an instance variables, instead of in the internal structure.
+ * numeric.c (rb_num2long): Don't use SIGNED_VALUE uselessly.
+ (check_int): Ditto.
+ (check_short): Ditto.
+ (rb_num2fix): Ditto.
+ (rb_num2ulong_internal): Add a cast.
- * string.c (rb_str_associate, rb_str_associated): deprecate.
+Mon Apr 1 18:41:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Feb 4 12:55:31 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: skip autoconf 2.64 and 2.66, 2.67 seems short-lived
+ but stick on it for Debian Squeeze.
- * string.c (rb_str_modify_expand): enable capacity and disable
- association with packed objects when setting capa, so that
- pack("p") string fails to unpack properly after modified.
+Mon Apr 1 14:22:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Feb 4 12:45:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: check clang version by predefined macro values.
+ [Bug #8192]
- * dir.c (glob_make_pattern): all alphabets are magic characters on
- case-insensitive filesystems. [ruby-core:42469] [Feature #5994]
+Mon Apr 1 12:05:15 2013 Tanaka Akira <akr@fsij.org>
-Tue Feb 4 09:47:57 2014 Eric Hodel <drbrain@segment7.net>
+ * numeric.c (check_uint): Take the 1st argument as unsigned long,
+ instead of VALUE. Refine the validity test conditions.
+ (check_ushort): Ditto.
- * lib/rubygems: Update to RubyGems 2.2.2 prerelease to check fixes to
- CI.
- * test/rubygems: ditto.
+Mon Apr 1 07:15:03 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
-Mon Feb 3 12:04:47 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * configure.in: use quadrigraph to put '[' or ']'. [Bug #8192]
- * error.c: [DOC] Exception#cause may return nil. [ci skip]
+Mon Apr 1 04:16:41 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Feb 2 05:48:42 2014 Eric Wong <e@80x24.org>
+ * configure.in: kick old clang. [ruby-dev:47204] [Bug #8192]
- * io.c (rb_io_syswrite): add RB_GC_GUARD
- [Bug #9472][ruby-core:60407]
+Mon Apr 1 01:12:46 2013 Tanaka Akira <akr@fsij.org>
-Sat Feb 1 15:09:16 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * include/ruby/ruby.h (FIX2ULONG): Make it consistent with NUM2ULONG.
- * ext/win32ole/win32ole.c (ole_typedesc2val): add VT_RECORD case.
+ * ext/-test-/num2int/num2int.c: Add utility methods for FIX2XXX tests.
-Sat Feb 1 06:38:51 2014 Zachary Scott <e@zzak.io>
+ * test/-ext-/num2int/test_num2int.rb: Add tests for FIX2XXX.
- * lib/drb/drb.rb: [DOC] Add note about start_service for each process
- Based on a patch by @rosenfeld [Fixes GH-514] [ci skip]
- https://github.com/ruby/ruby/pull/514
+Sun Mar 31 17:17:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Feb 1 06:30:20 2014 Zachary Scott <e@zzak.io>
+ * proc.c (rb_mod_define_method): consider visibility in define_method.
+ patch by mashiro <mail AT mashiro.org>. fix GH-268.
- * error.c: [DOC] Document Exception#cause by @jasonrclark [ci skip]
- [Fixes GH-519] https://github.com/ruby/ruby/pull/519
+Sun Mar 31 15:40:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Feb 1 06:10:49 2014 Zachary Scott <e@zzak.io>
+ * win32/configure.bat: try to fix option arguments split by commas and
+ equals here. this batch file no longer run with old command.com.
- * lib/securerandom.rb: [DOC] Add note on require for examples
- Based on a patch by @schneems [Fixes GH-518] [ci skip]
- https://github.com/ruby/ruby/pull/518
+ * tool/mkconfig.rb: no hacks for cmd.exe.
-Sat Feb 1 06:04:56 2014 Zachary Scott <e@zzak.io>
+Sun Mar 31 13:47:04 2013 Tanaka Akira <akr@fsij.org>
- * numeric.c: [DOC] Fix typo in example for #step [ci skip]
- Patch by @ksss [Fixes GH-522] https://github.com/ruby/ruby/pull/522
+ * numeric.c (rb_num2ulong_internal): New function similar to
+ rb_num2ulong but integer wrap around flag is also returned.
+ (rb_num2ulong): Use rb_num2ulong_internal.
+ (rb_num2uint): Use rb_num2ulong_internal and the wrap around flag is
+ used instead of negative_int_p(val).
+ (rb_num2ushort): ditto.
-Fri Jan 31 17:01:47 2014 Eric Wong <e@80x24.org>
+Sun Mar 31 06:27:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/socket/init.c (rsock_socket0): split out SOCK_CLOEXEC version
- * ext/socket/socket.c (rsock_socketpair0): ditto
- [ruby-core:60377]
+ * class.c (HAVE_METACLASS_P): should check FL_SINGLETON flag before get
+ instance variable to get rid of wrong warning about __attached__.
+ [ruby-core:53839] [Bug #8188]
-Fri Jan 31 03:48:40 2014 Eric Wong <e@80x24.org>
+Sat Mar 30 14:11:28 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * benchmark/driver: avoid large alloc in driver process
- [ruby-core:59869] [Bug #9430]
+ * bcc32: removed. agreed at
+ http://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20130223Japan
-Thu Jan 30 14:45:49 2014 Shugo Maeda <shugo@ruby-lang.org>
+Sat Mar 30 03:58:00 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * configure.in: use $@ instead of $(.TARGET) because .TARGET is not
- supported by GNU make.
+ * win32/file.c (code_page): use cp1252 instead of cp20127 as US-ASCII.
+ fix [ruby-core:53079] [Bug #7996]
+ reported and patched by mmeltner (Michael Meltner).
-Thu Jan 30 08:26:21 2014 Yusuke Endoh <mame@tsg.ne.jp>
+Sat Mar 30 03:49:21 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/fiddle/closure.c: use sizeof(*pcl) for correct sizeof value.
- [ruby-core:57599] [Bug #8978].
+ * win32/win32.c (wrename): use MoveFileExW instead of MoveFileW,
+ because the latter fails on cross device file move of some
+ environments.
+ fix [ruby-core:53492] [Bug #8109]
+ reported by mitchellh (Mitchell Hashimoto).
-Wed Jan 29 20:08:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Mar 29 22:09:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (nogvl_copy_stream_sendfile): check socket on other than
- linux, as sendfile(2) on non-socket fd works only on linux.
- [Feature #9427]
+ * thread.c (rb_mutex_synchronize_m): yield no block params. patch by
+ splattael (Peter Suschlik) in [ruby-core:53773] [Bug #8097].
+ fix GH-266.
-Wed Jan 29 18:09:48 2014 Eric Wong <e@80x24.org>
+Fri Mar 29 16:51:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (nogvl_copy_stream_sendfile): remove socket check
- [ruby-core:59856][Feature #9427]
+ * io.c (argf_next_argv): set init flag if succeeded to forward, after
+ skipping.
-Wed Jan 29 04:29:54 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+ * io.c (argf_block_call_i, argf_block_call): no more forwarding if
+ forwarded after skipping. [ruby-list:49185]
- * ext/openssl/ossl_ssl.c: pass read_nonblock options to underlying IO
- when SSL session has not been started.
+ * io.c (argf_close): deal with init flag.
- * test/openssl/test_ssl.rb: test for change.
+ * io.c (argf_block_call_i, argf_block_call): forward next file if
+ skipped while iteration, to get rid of IOError. [ruby-list:49185]
-Wed Jan 29 03:49:36 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+Fri Mar 29 11:09:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/fiddle/closure.c: use sizeof(*pcl) for correct sizeof value.
- [ruby-core:57599] [Bug #8978]. Thanks mame!
+ * lib/mkmf.rb (configuration): not include all CFLAGS in CXXFLAGS, to
+ use different set than C for C++. [ruby-core:45273] [Bug #6504]
-Wed Jan 29 03:36:42 2014 Eric Wong <e@80x24.org>
+Fri Mar 29 10:24:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * doc/contributing.rdoc: allow/encourage other git hosts
- [ruby-core:59807][misc #9421]
+ * include/ruby/io.h: undef POSIX compliant names on AIX, which are no
+ longer needed. patch suggested by edelsohn (David Edelsohn) in
+ [ruby-core:53815]. [Bug #8174]
-Tue Jan 28 23:36:01 2014 Tanaka Akira <akr@fsij.org>
+Fri Mar 29 06:39:42 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket: Avoid redundant fcntl/fstat syscalls for cloexec
- sockets.
- Patch by Eric Wong. [ruby-core:59429] [Feature #9330]
+ * numeric.c (rb_num2ull): Cast double to unsigned LONG_LONG via
+ LONG_LONG instead of double to unsigned LONG_LONG directly.
+ This is a challenge to fix a test_num2ull(TestNum2int)
+ failure (NUM2ULL(-1.0) should be "18446744073709551615" but was "0")
+ on Mac OS X with 32bit clang.
+ http://a.mrkn.jp/~mrkn/chkbuild/mountain_lion/ruby-trunk-m32-o0/log/20130328T191100Z.diff.html.gz
-Tue Jan 28 20:51:07 2014 Tanaka Akira <akr@fsij.org>
+Fri Mar 29 00:54:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * process.c (READ_FROM_CHILD): Apply the last hunk of
- 0001-process.c-avoid-EINTR-from-Process.spawn.patch written by
- Eric Wong in [Bug #8770].
+ * lib/mkmf.rb (MAIN_DOES_NOTHING): ensure symbols for tests to be
+ preserved. [ruby-core:53745] [Bug #8169]
-Tue Jan 28 16:31:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Mar 28 23:11:25 2013 Tanaka Akira <akr@fsij.org>
- * thread_pthread.c (ruby_init_stack, ruby_stack_overflowed_p):
- place get_stack above others to get stack boundary information.
- [ruby-core:60113] [Bug #9454]
+ * lib/resolv.rb: Test Windows platform by detecting LoadError when
+ require 'win32/resolv' suggested by Nobuyoshi Nakada [ruby-core:53389].
+ [ruby-core:53388] [Feature #8090] Reported by Charles Nutter.
-Tue Jan 28 15:27:36 2014 NARUSE, Yui <naruse@ruby-lang.org>
+Thu Mar 28 23:10:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * thread_pthread.c: rlimit is only available on Linux.
- At least r44712 breaks FreeBSD.
- [ruby-core:60113] [Bug #9454]
+ * include/ruby/io.h: rename SVR3,4 member names as POSIX compliant,
+ to get rid of conflict on AIX. [ruby-core:53765] [Bug #8174]
-Tue Jan 28 15:17:59 2014 Zachary Scott <e@zzak.io>
+Thu Mar 28 18:22:21 2013 Tanaka Akira <akr@fsij.org>
- * lib/set.rb: [DOC] Add examples for Set#intersect? and Set#disjoint?
- Patch by xavier nayrac [Bug #9331] [ci skip]
+ * test/-ext-/num2int/test_num2int.rb: extract
+ assert_num2i_success_internal and assert_num2i_error_internal and
+ provide assertion messages as "NUM2XXX(NNN)".
-Tue Jan 28 15:12:22 2014 Zachary Scott <e@zzak.io>
+Thu Mar 28 07:05:25 2013 Tanaka Akira <akr@fsij.org>
- * ext/zlib/zlib.c (rb_zlib_adler32): [DOC] Add example for adler32
- Patch by Vajrasky Kok [Bug #9307] [ci skip]
+ * include/ruby/intern.h: Delete redundant inclusions caused by
+ AC_INCLUDES_DEFAULT in defines.h.
-Tue Jan 28 08:56:00 2014 Charlie Somerville <charliesome@ruby-lang.org>
+ * include/ruby/defines.h: Ditto.
- * compile.c (iseq_build_from_ary_body): Use :blockptr instead of :block
- as hash key when loading serialized instruction sequences from arrays.
- [Bug #9455] [ruby-core:60146]
+ * include/ruby/ruby.h: Ditto.
-Mon Jan 27 21:52:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/st.h: Ditto.
- * thread_pthread.c: get current main thread stack size, which may
- be expanded than allocated size at initialization, by rlimit().
- [ruby-core:60113] [Bug #9454]
+Thu Mar 28 06:51:31 2013 Tanaka Akira <akr@fsij.org>
-Sat Jan 25 22:17:02 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * include/ruby/defines.h: Fix a compilation error on NetBSD,
+ "type of formal parameter 1 is incomplete" for the rb_thread_wait_for
+ invocation in rb_file_flock, by including header files as
+ AC_INCLUDES_DEFAULT of autoconf.
- * README.ja.md, README.md: update the controller address of
- mailing lists.
+Wed Mar 27 22:09:14 2013 Tanaka Akira <akr@fsij.org>
-Sat Jan 25 14:50:42 2014 Eric Wong <normalperson@yhbt.net>
+ * numeric.c (LONG_MIN_MINUS_ONE_IS_LESS_THAN): New macro.
+ (LLONG_MIN_MINUS_ONE_IS_LESS_THAN): Ditto.
+ (rb_num2long): Use LONG_MIN_MINUS_ONE_IS_LESS_THAN.
+ (rb_num2ulong): Ditto.
+ (rb_num2ll): Use LLONG_MIN_MINUS_ONE_IS_LESS_THAN.
+ (rb_num2ull): Ditto.
- * process.c (send_child_error): retry write on EINTR to fix
- occasional Errno::EINTR from Process.spawn.
+ * test/-ext-/num2int/test_num2int.rb (assert_num2i_success): Test the
+ value converted into a Float if Float can represent the value
+ exactly.
+ (assert_num2i_error): Ditto.
- * process.c (recv_child_error): retry read on EINTR to fix
- occasional Errno::EINTR from Process.spawn.
+Wed Mar 27 20:59:47 2013 Tanaka Akira <akr@fsij.org>
-Sat Jan 25 14:21:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/-ext-/num2int/test_num2int.rb (assert_num2i_success): New
+ utility method.
+ (assert_num2i_error): Ditto.
- * compile.c (iseq_compile_each): result of assignment should be
- its rhs instead of returned value from a method.
- [ruby-core:60071] [Bug #9448]
+Wed Mar 27 20:37:59 2013 Tanaka Akira <akr@fsij.org>
-Sat Jan 25 11:16:19 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * time.c (num_exact): Use to_r method only if to_int method is
+ available.
+ [ruby-core:53764] [Bug #8173] Reported by Hiro Asari.
- * class.c (rb_extract_keywords): treat nil keyword_hash same as 0,
- for the case rb_scan_args returns nil if no keyword hash.
+Wed Mar 27 12:07:40 2013 Tanaka Akira <akr@fsij.org>
-Fri Jan 24 15:13:20 2014 Zachary Scott <e@zzak.io>
+ * test/-ext-/num2int/test_num2int.rb (test_num2ll): test LLONG_MIN,
+ not LONG_MIN.
- * lib/racc/rdoc/grammar.en.rdoc: [DOC] Correct grammar and typos
- Patch by Giorgos Tsiftsis [Bug #9429] [ci skip]
+Wed Mar 27 12:02:45 2013 Tanaka Akira <akr@fsij.org>
-Thu Jan 23 20:20:17 2014 Koichi Sasada <ko1@atdot.net>
+ * internal.h (TIMET_MAX_PLUS_ONE): definition simplified.
- * test/ruby/envutil.rb: try to wait a bit (0.1sec) when ruby process
- exits by signals because some SEGV tests fail because of not enough
- error output.
+Wed Mar 27 06:39:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jan 23 20:06:27 2014 Koichi Sasada <ko1@atdot.net>
+ * lib/mkmf.rb (MAIN_DOES_NOTHING): force to refer symbols for tests
+ to be preserved. [ruby-core:53745] [Bug #8169]
- * test/ruby/test_settracefunc.rb: check the target thread.
+Wed Mar 27 05:15:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jan 23 19:59:16 2014 Koichi Sasada <ko1@atdot.net>
+ * configure.in (RUBY_REPLACE_TYPE): define SIGNEDNESS_OF_type same as
+ check_signedness of mkmf.rb.
- * test/ruby/test_settracefunc.rb: check the target thread.
+ * internal.h (TIMET_MAX, TIMET_MIN, TIMET_MAX_PLUS_ONE): use
+ SIGNEDNESS_OF_TIME_T.
-Thu Jan 23 14:26:44 2014 Zachary Scott <e@zzak.io>
+Wed Mar 27 00:28:45 2013 Tanaka Akira <akr@fsij.org>
- * lib/fileutils.rb: [DOC] Fix typo in options_of() example [Bug #9392]
- Patch by Giorgos Tsiftsis
+ * internal.h (TIMET_MAX_PLUS_ONE): Defined.
-Thu Jan 23 13:56:16 2014 Zachary Scott <e@zzak.io>
+ * thread.c (double2timeval): Saturate out-of-range values.
- * README -> README.md: [DOC] Format README with Markdown [Bug #9255]
- * README.ja -> README.ja.md: ditto
+Tue Mar 26 23:41:18 2013 Tanaka Akira <akr@fsij.org>
-Wed Jan 22 15:59:39 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h: Define TIMET_MAX and TIMET_MIN here.
- * ext/thread/thread.c (Init_thread): ConditionVariable and Queue
- are not able to copy. [ruby-core:59961] [Bug #9440]
+ * time.c: Remove TIMET_MAX and TIMET_MIN definitions.
-Tue Jan 21 20:14:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c: Ditto.
- * thread_pthread.c (rb_thread_create_timer_thread): fix for platforms
- where PTHREAD_STACK_MIN is a dynamic value and not a compile-time
- constant. [ruby-dev:47911] [Bug #9436]
+ * thread_pthread.c: Remove TIMET_MAX definition.
-Tue Jan 21 17:55:09 2014 Zachary Scott <e@zzak.io>
+ * thread_win32.c: Ditto.
- * lib/uri/common.rb: [DOC] Use static w3.org uri [ci skip]
- Patch by @ykzts [Fix GH-484] https://github.com/ruby/ruby/pull/484
+Tue Mar 26 22:31:10 2013 Tanaka Akira <akr@fsij.org>
-Tue Jan 21 16:43:22 2014 Zachary Scott <e@zzak.io>
+ * ext/socket/socket.c (sockaddr_len): return the shortest length for
+ unknown socket address.
- * enum.c: [DOC] Add simple example of Enumerable#zip [ci skip]
- Patch by @nruth on documenting-ruby/ruby#22
- https://github.com/documenting-ruby/ruby/pull/22
+Tue Mar 26 22:14:46 2013 Tanaka Akira <akr@fsij.org>
-Tue Jan 21 16:26:44 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c (double2timeval): convert the infinity to TIME_MAX to avoid
+ SEGV by Thread.new {}.join(Float::INFINITY) on
+ Debian GNU/Linux (amd64).
- * thread_pthread.c (rb_thread_create_timer_thread): expand timer
- thread stack size to get rid of segfault on FreeBSD/powerpc64.
- based on the patch by Steve Wills at [ruby-core:59923].
- [ruby-core:56590] [Bug #8783]
+Mon Mar 25 07:09:20 2013 Eric Hodel <drbrain@segment7.net>
-Tue Jan 21 04:31:23 2014 Tanaka Akira <akr@fsij.org>
+ * lib/rinda/tuplespace.rb: Only return tuple entry once on move,
+ either through port or regular return, not both. This results in a
+ 120% speedup when combined with #8125. Patch by Joel VanderWerf.
+ [ruby-trunk - Feature #8119]
- * ext/socket/option.c: Use "int" for IP_MULTICAST_LOOP and
- IP_MULTICAST_TTL on Mac OS X and Windows.
+Mon Mar 25 06:59:01 2013 Eric Hodel <drbrain@segment7.net>
-Tue Jan 21 00:39:15 2014 Tanaka Akira <akr@fsij.org>
+ * test/rinda/test_rinda.rb: Skip IPv6 tests if no IPv6 addresses
+ exist. Skip fork-dependent test if fork is not available.
+ [ruby-trunk - Bug #8159]
- * ext/socket/option.c: Use "byte" as default argument for
- IP_MULTICAST_LOOP and IP_MULTICAST_TTL socket option to follow
- the original multicast implementation.
+Sun Mar 24 10:38:24 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Jan 20 20:20:27 2014 Tanaka Akira <akr@fsij.org>
+ * addr2line.c (putce): suppress unused return value warning.
- * ext/socket/option.c: Use preprocessor macros to avoid repeated
- conditionals.
+Mon Mar 25 02:01:03 2013 Narihiro Nakamura <authornari@gmail.com>
-Mon Jan 20 13:55:03 2014 Zachary Scott <e@zzak.io>
+ * proc.c (bm_free): need to clean up the mark flag of a free and
+ unlinked method entry. [Bug #8100] [ruby-core:53439]
- * lib/rubygems/version.rb: [DOC] Use gender-neutral pronouns [ci skip]
- * lib/rubygems/security.rb: ditto
+Sun Mar 24 22:13:51 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Jan 19 06:38:48 2014 Benoit Daloze <eregontp@gmail.com>
+ * string.c (rb_str_rpartition): revert r39903, and convert byte offset
+ to char offset; the return value of rb_reg_search is byte offset,
+ but other than it of rb_str_rpartition expects char offset.
+ [Bug #8138] [ruby-dev:47183]
- * compar.c (cmp_equal): warn for this release and still rescue
- standard exceptions for a nicer transition. See #7688.
- Partly reverts r44502.
+Sun Mar 24 18:29:46 2013 Akinori MUSHA <knu@iDaemons.org>
- * test/ruby/test_comparable.rb: adapt assertion to match new behavior.
+ * string.c (rb_str_rpartition): Fix String#rpartition(/re/)
+ against a multibyte string. [Bug #8138] [ruby-dev:47183]
-Sun Jan 19 06:27:18 2014 Benoit Daloze <eregontp@gmail.com>
+Sun Mar 24 13:42:24 2013 Narihiro Nakamura <authornari@gmail.com>
- * test/ruby/test_comparable.rb: specify behavior for the different
- kind of exceptions rescued (or not) by Comparable#==.
+ * gc.c (GC_ENABLE_LAZY_SWEEP): new macro to switch lazy sweeping
+ for debugging. [Feature #8024] [ruby-dev:47135]
-Sat Jan 18 23:12:19 2014 Tanaka Akira <akr@fsij.org>
+Sun Mar 24 12:55:47 2013 Narihiro Nakamura <authornari@gmail.com>
- * ext/socket: Avoid unnecessary ppoll/select on Linux.
- Patch by Eric Wong. [ruby-core:57950] [Bug #9039]
+ * gc.c: We have no chance to expand the heap when lazy sweeping is
+ restricted. So collecting is often invoked if there is not
+ enough free space in the heap. Try to expand heap when this is
+ the case.
-Sat Jan 18 22:57:44 2014 Tanaka Akira <akr@fsij.org>
+Sun Mar 24 11:03:31 2013 Tanaka Akira <akr@fsij.org>
- * lib/resolv.rb (Resolv::DNS::Resource::TXT#data): Return concatenated
- string.
- Patch by Ryan Brunner. [ruby-core:58220] [Bug #9093]
+ * test/ruby/test_require.rb: Remove temporally files in the tests.
-Sat Jan 18 22:35:15 2014 Tanaka Akira <akr@fsij.org>
+ * test/ruby/test_rubyoptions.rb: Ditto.
- * io.c (rb_update_max_fd): Return immediately if the given fd is small
- enough.
+ * test/logger/test_logger.rb: Ditto.
-Sat Jan 18 22:25:53 2014 Tanaka Akira <akr@fsij.org>
+ * test/psych/test_psych.rb: Ditto.
- * io.c: Test O_CLOEXEC only once.
- Patch by Eric Wong. [ruby-core:59419] [Feature #9328]
+ * test/readline/test_readline.rb: Ditto.
-Sat Jan 18 21:24:49 2014 Tanaka Akira <akr@fsij.org>
+ * test/syslog/test_syslog_logger.rb: Ditto.
- * ext/socket/option.c: IP_MULTICAST_LOOP and IP_MULTICAST_TTL socket
- option takes a byte on OpenBSD.
- Fixed by Jeremy Evans. [ruby-core:59496] [Bug #9350]
+ * test/webrick/test_httpauth.rb: Ditto.
-Sat Jan 18 21:19:04 2014 Tanaka Akira <akr@fsij.org>
+ * test/zlib/test_zlib.rb: Ditto.
- * lib/open-uri.rb: Make proxy disabling working again.
- Fixed by Christophe Philemotte. [ruby-core:59650] [Bug #9385]
+Sun Mar 24 05:36:29 2013 Eric Hodel <drbrain@segment7.net>
-Fri Jan 17 20:05:02 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rinda/ring.rb: Added documentation for multicast support.
- * lib/delegate.rb (Delegator): keep source information methods
- which start and end with '__'. [ruby-core:59718] [Bug #9403]
+ * NEWS: Point to above documentation.
-Fri Jan 17 17:58:04 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 24 05:32:39 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (rb_mod_s_constants): return its own constants for other
- than Module itself. [ruby-core:59763] [Bug #9413]
+ * test/rinda/test_rinda.rb: Restore tests commented out while fixing
+ test slowdown bug before r39895.
-Tue Jan 16 00:17:00 2014 Kenta Murata <mrkn@mrkn.jp>
+Sun Mar 24 05:03:36 2013 Eric Hodel <drbrain@segment7.net>
- * ext/bigdecimal/bigdecimal.gemspec: bigdecimal version 1.2.5.
+ * lib/rinda/ring.rb: Add multicast support to Rinda::RingFinger and
+ Rinda::RingServer. [ruby-trunk - Bug #8073]
+ * test/rinda/test_rinda.rb: Test for the above.
-Wed Jan 15 20:30:31 2014 Masaki Matsushita <glass.saga@gmail.com>
+ * NEWS: Update with Rinda multicast support
- * io.c (io_binwrite): use writev(2) to avoid double write if available.
+Sun Mar 24 04:13:27 2013 Eric Hodel <drbrain@segment7.net>
- * configure.in: check writev(2)
+ * test/rinda/test_rinda.rb: Fixed test failures in r39890 and r39891
+ due to stopping DRb service.
-Wed Jan 15 14:04:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 24 03:34:02 2013 Eric Hodel <drbrain@segment7.net>
- * string.c (get_encoding): respect BOM on pseudo encodings.
- [ruby-dev:47895] [Bug #9415]
+ * lib/rinda/rinda.rb: Fixed loss of tuple when remote is alive but the
+ call stack was unwound. Patch by Joel VanderWerf.
+ [ruby-trunk - Bug #8125]
+ * test/rinda/test_rinda.rb: Test for the above.
-Wed Jan 15 14:03:47 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 24 02:14:53 2013 Tanaka Akira <akr@fsij.org>
- * string.c (get_actual_encoding): get actual encoding according to
- the BOM if exists.
+ * test/mkmf/test_have_macro.rb: remove temporally files in the tests.
- * string.c (rb_str_inspect): use according encoding, instead of
- pseudo encodings, UTF-{16,32}. [ruby-core:59757] [Bug #8940]
+Sat Mar 23 23:50:04 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Tue Jan 14 21:07:22 2014 Masaki Matsushita <glass.saga@gmail.com>
+ * addr2line.c (kprintf): added from FreeBSD libstand's printf.
+ this is consided as async signal safe function.
- * ext/thread/thread.c (rb_szqueue_clear): notify SZQUEUE_WAITERS
- on SizedQueue#clear. [ruby-core:59462] [Bug #9342]
+ * addr2line.c (rb_dump_backtrace_with_lines): use kfprintf.
+ [Bug #8144] [ruby-core:53632]
- * test/thread/test_queue.rb: add test. the patch is from
- Justin Collins.
+Sat Mar 23 23:28:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Tue Jan 14 15:58:43 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_divide): Use Qnil and NIL_P
+ instead of (VALUE)0 as a return value.
- * ext/bigdecimal/bigdecimal.c (CLASS_NAME): macro to wrap
- depending on PRIsVALUE for 1.9. [Backport #9406]
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_div): ditto.
- * ext/bigdecimal/bigdecimal.c (DECIMAL_SIZE_OF_BITS): fallback
- definition for 2.1 or older. [ruby-core:59750] [Backport #9406]
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_divremain): ditto.
-Tue Jan 14 11:28:44 2014 Yuki Yugui Sonoda <yugui@google.com>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_remainder): ditto.
- * vm_exec.c (cfp): Fixes a SEGV issue in r44554.
- r11 can be broken by subroutine and sometimes causes SEGV at
- runtime. Use r13 instead.
+Sat Mar 23 17:39:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Jan 14 02:20:00 2014 Kenta Murata <mrkn@mrkn.jp>
+ * vm_eval.c (check_funcall_respond_to): preserve passed_block, which
+ is modified in vm_call0_body() via vm_call0(), and caused a bug of
+ rb_check_funcall() by false negative result of rb_block_given_p().
+ re-fix [ruby-core:53650] [Bug #8153].
+ [ruby-core:53653] [Bug #8154]
- * ext/bigdecimal/bigdecimal.c (BigDecimal_divide): Add an additional
- digit for the quotient to be compatible with bigdecimal 1.2.1 and
- the former. [ruby-core:59365] [#9316] [#9305]
+Fri Mar 22 17:48:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/bigdecimal/test_bigdecimal.rb: tests for the above change.
+ * lib/forwardable.rb (Forwardable::FILE_REGEXP): create regexp object
+ outside sources for eval, to reduce allocations in def_delegators
+ wrappers. //o option does not make each regexps shared. patch by
+ tmm1 (Aman Gupta) in [ruby-core:53620] [Bug #8143].
- * ext/bigdecimal/bigdecimal.gemspec: bigdecimal version 1.2.4.
+Fri Mar 22 17:38:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jan 13 14:55:31 2014 Zachary Scott <e@zzak.io>
+ * load.c (rb_feature_p), vm_core.h (rb_vm_struct): turn
+ loaded_features_index into st_table. patches by tmm1 (Aman Gupta)
+ in [ruby-core:53251] and [ruby-core:53274] [Bug #8048]
- * lib/xmlrpc/client.rb: [DOC] Remove note about SSL package on RAA
- Since RAA has been deprecated, and the SSL package has been replaced
- with net/https this statement is entirely false and should be
- deleted. [Bug #9152]
+Fri Mar 22 10:29:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jan 13 14:47:07 2014 Zachary Scott <e@zzak.io>
+ * ext/bigdecimal/bigdecimal.c: Fix style.
- * lib/net/smtp.rb: [DOC] Remove dead link to RAA by Giorgos Tsiftsis
- Fixes the following bugs: [Bug #9152] [Bug #9268] [Bug #9394]
- * lib/open-uri.rb: ditto
+Fri Mar 22 05:30:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jan 13 14:25:55 2014 Zachary Scott <e@zzak.io>
+ * parse.y (ambiguous_operator): refine warning message, since this
+ warning is shown after literal too.
- * ext/openssl/ossl_pkey_dh.c: Fixed typo by Sandor Szuecs [Bug #9243]
+Fri Mar 22 04:51:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jan 13 12:03:00 2014 Charlie Somerville <charliesome@ruby-lang.org>
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg): should check required
+ keyword arguments even if rest hash is defined. [ruby-core:53608]
+ [Bug #8139]
- * ext/thread/thread.c (rb_szqueue_push): check GET_SZQUEUE_WAITERS
- instead of GET_QUEUE_WAITERS to prevent deadlock. Patch by Eric Wong.
- [Bug #9302] [ruby-core:59324]
+Fri Mar 22 01:00:17 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * test/thread/test_queue.rb: add test
+ * process.c (rb_execarg_addopt, run_exec_pgroup): use rb_pid_t
+ instead of pid_t.
-Sun Jan 12 16:41:10 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/pty/pty.c (raise_from_check, pty_check): ditto.
- * iseq.c (iseq_load): keep type_map to get rid of memory leak.
- based on a patch by Eric Wong at [ruby-core:59699]. [Bug #9399]
+Fri Mar 22 00:04:15 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Jan 12 09:21:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * addr2line.c (rb_dump_backtrace_with_lines): output line at once.
- * include/ruby/util.h (DECIMAL_SIZE_OF_BITS): a preprocessor
- constant macro to approximate decimal representation size of n-bits
- integer.
+Thu Mar 21 23:17:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * iseq.c (register_label): use DECIMAL_SIZE_OF_BITS for better
- approximation.
+ * thread.c (ruby_kill): get rid of deadlock on signal 0.
+ [ruby-dev:47182] [Bug #8137]
- * ext/bigdecimal/bigdecimal.c (BigMath_s_log): ditto.
+Thu Mar 21 22:39:46 2013 Naohisa Goto <ngotogenome@gmail.com>
- * common.mk (iseq.o), ext/bigdecimal/depend (bigdecimal.o): add
- dependency to ruby/util.h for DECIMAL_SIZE_OF_BITS.
+ * marshal.c (marshal_dump, marshal_load): workaround for segv on
+ Intel Solaris compiled with Oracle SolarisStudio 12.3.
+ Partly revert r38174. [ruby-core:52042] [Bug #7805]
-Fri Jan 10 16:27:20 2014 Yuki Yugui Sonoda <yugui@google.com>
+Thu Mar 21 16:48:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm_exec.c (cfp): Avoid generating invalid binary for
- NativeClient.
- r15 on x86_64 is reserved by NativeClient. So r15 to cfp used to
- generate invalid binary under some combinations of compiler
- optimization flags.
+ * parse.y (simple_re_meta): escape all closing characters, not only
+ round parenthesis. [ruby-core:53578] [Bug #8133]
-Fri Jan 10 18:01:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Mar 21 13:50:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * vm_insnhelper.c (vm_search_super_method): allow bound method from a
- module, yet another method transplanting.
+ * vm_core.h (UNINITIALIZED_VAR): suppress warnings by clang 4.2.
+ [ruby-core:51742] [Bug #7756]
-Fri Jan 10 13:34:04 2014 Aman Gupta <ruby@tmm1.net>
+Thu Mar 21 07:34:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * insns.def (opt_aref_with): new instruction to optimize Hash#[],
- removing any allocation overhead when used with a string literal
- key. Patch by normalperson (Eric Wong). [ruby-core:59640] [Bug #9382]
- * insns.def (opt_aset_with): new instruction to optimize Hash#[]=
- * compile.c (iseq_compile_each): compiler shortcuts for new
- instructions
- * hash.c (static VALUE rb_hash_compare_by_id_p): fix documentation for
- Hash#compare_by_identity to reflect frozen string sharing
- * test/ruby/test_hash.rb (class TestHash): test for new behavior
+ * ext/date/date_core.c: Typo in Date::MONTHNAMES by Matt Gauger
+ [GH fixes #261]
-Fri Jan 10 06:23:21 2014 Benoit Daloze <eregontp@gmail.com>
+Wed Mar 20 22:53:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * range.c (Range#size): [DOC] improve description and add examples.
- Patch by @skade. [Fixes GH-501]
+ * lib/mkmf.rb (find_library): fix to format message.
+ [ruby-core:53568] [Bug #8130]
-Fri Jan 10 00:47:52 2014 Josef Stribny <strzibny@gmail.com>
+Wed Mar 20 22:52:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/extconf.rb: fix to pass arrays instead of strings to
- libpathflag. patch at [ruby-core:59665]. [Bug #9386]
+ * lib/mkmf.rb (install_dirs, with_destdir): prefix with DESTDIR
+ directories to install only unless bundled extension libraries.
+ [ruby-core:53502] [Bug #8115]
-Thu Jan 9 20:49:22 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Mar 20 17:47:53 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * configure.in: -mstackrealign is necessary for -msse2 working.
- [ruby-core:54716] [Bug #8349]
+ * test/win32ole/test_err_in_callback.rb (TestErrInCallBack#setup):
+ allow using different root for source and build directories.
+ this may fixes a minor problem of r39834.
- * configure.in: use SSE2 instructions to drop unexpected precisions on
- other than mingw. [ruby-core:59472] [Bug #8358]
+Wed Mar 20 16:40:48 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
-Thu Jan 9 20:31:10 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/ruby/test_signal.rb (test_hup_me): skip if HUP isn't supported.
+ On Windows this test causes ArgumentError.
- * hash.c (rb_objid_hash): should return `long'. brushup r44534.
+Wed Mar 20 16:24:12 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * object.c (rb_obj_hash): follow above change.
+ * test/rubygems/test_gem_installer.rb (test_install_extension_flat):
+ use ruby in build directory in case ruby is not installed.
+ [ruby-core:53265] [Bug #8058]
-Thu Jan 9 19:12:37 2014 Koichi Sasada <ko1@atdot.net>
+Wed Mar 20 15:22:07 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * vm.c (rb_vm_pop_cfunc_frame): added. It cares c_return event.
- The patch base by drkaes (Stefan Kaes).
- [Bug #9321]
+ * test/win32ole/test_err_in_callback.rb (TestErrInCallBack#setup): use
+ relative path to get rid of "too long commandline" error.
- * variable.c (rb_mod_const_missing): use rb_vm_pop_cfunc_frame()
- instead of rb_frame_pop().
+Wed Mar 20 04:27:42 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * vm_eval.c (raise_method_missing): ditto.
+ * test/rinda/test_rinda.rb: remove unused variables.
+ patched by Vipul A M <vipulnsward@gmail.com>
- * vm_eval.c (rb_iterate): ditto.
+Wed Mar 20 04:15:32 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * internal.h (rb_vm_pop_cfunc_frame): add decl.
+ * ext/bigdecimal/bigdecimal.c: fixed typo.
+ patched by Vipul A M <vipulnsward@gmail.com>
- * test/ruby/test_settracefunc.rb: add tests.
- provided by drkaes (Stefan Kaes).
+Sat Mar 16 03:40:49 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * vm.c, eval.c, include/ruby/intern.h (rb_frame_pop):
- move definition of rb_frame_pop() and deprecate it.
- It doesn't care about `return' events.
+ * test/ruby/test_signal.rb (test_hup_me): added a few comments.
-Thu Jan 9 17:40:28 2014 NAKAMURA Usaku <usa@ruby-lang.org>
+Sat Mar 16 03:39:38 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * hash.c (rb_any_hash): should treat the return value of rb_objid_hash()
- as `long', because ruby assumes the hash value of the object id of
- an object is `long'.
- this fixes test failures on mswin64 introduced at r44525.
+ * thread.c (ruby_kill): added a few comments.
-Thu Jan 9 09:55:20 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+Sat Mar 16 03:36:56 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/psych/lib/psych/visitors/yaml_tree.rb: dumping strings with
- quotes should not have changed. [ruby-core:59316] [Bug #9300]
+ * thread.c (ruby_kill): release GVL while waiting signal delivered.
- * ext/psych/lib/psych.rb: fixed missing require.
+Tue Mar 19 19:50:48 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * test/psych/test_string.rb: test
+ * ruby_kill (internal.h, thread.c): use rb_pid_t instead of pid_t.
+ this fixes the build failure of mswin introduced at r39819.
-Thu Jan 9 09:51:00 2014 Aaron Patterson <aaron@tenderlovemaking.com>
+Tue Mar 19 17:09:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/psych/lib/psych/visitors/to_ruby.rb: anonymous structs
- should be able to roundtrip. Thanks @splattael!
+ * string.c (rb_str_conv_enc_opts): convert with one converter, instead
+ of re-creating converters for each buffer expansion.
- * test/psych/test_object_references.rb: test for change
+Tue Mar 19 17:06:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Jan 8 22:53:16 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * dir.c (glob_helper): compose HFS file names from UTF8-MAC.
+ [ruby-core:48745] [Bug #7267]
- * vm_insnhelper.c (vm_search_super_method): when super called in a
- bound UnboundMethod generated from a module, no superclass is
- found since the current defined class is the module, then call
- method_missing in that case. [ruby-core:59619] [Bug #9377]
+Sat Mar 16 01:44:29 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Jan 8 15:55:21 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h: added a declaration of ruby_kill().
+ * thread.c (ruby_kill): helper function of kill().
- * hash.c (rb_objid_hash): return hash value from object ID with a
- salt, extract from rb_any_hash().
+ * signal.c (rb_f_kill): use ruby_kill() instead of kill().
+ * signal.c (rb_f_kill): call rb_thread_execute_interrupts()
+ to ensure that make SignalException if sent a signal
+ to myself. [Bug #7951] [ruby-core:52864]
- * object.c (rb_obj_hash): return same value as rb_any_hash().
- fix r44125. [ruby-core:59638] [Bug #9381]
+ * vm_core.h (typedef struct rb_thread_struct): added
+ th->interrupt_cond.
+ * thread.c (rb_threadptr_interrupt_common): added to
+ initialization of th->interrupt_cond.
+ * thread.c (thread_create_core): ditto.
-Wed Jan 8 13:12:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_signal.rb (TestSignal#test_hup_me): test for
+ the above.
- * lib/timeout.rb (Timeout::ExitException.catch): pass arguments
- for new instance.
+Sat Mar 16 00:42:39 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * lib/timeout.rb (Timeout::ExitException#exception): fallback to
- Timeout::Error if couldn't throw. [ruby-dev:47872] [Bug #9380]
+ * io.c (linux_iocparm_len): enable only exist _IOC_SIZE().
+ Because musl libc doesn't have it. [Bug #8051] [ruby-core:53229]
- * lib/timeout.rb (Timeout#timeout): initialize ExitException with
- message for the fallback case.
+Tue Mar 19 10:05:04 2013 Shota Fukumori <her@sorah.jp>
-Tue Jan 7 12:43:06 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/objspace.c: Fix typo in doc. Patch by Sho Hashimoto.
+ [Bug #8116] [ruby-dev:47177]
- * lib/timeout.rb (Timeout#timeout): should not rescue ordinarily
- raised ExitException, which should not be thrown.
+Tue Mar 19 02:13:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * lib/timeout.rb (Timeout::ExitException.catch): set @thread only if
- it ought to be caught.
+ * configure.in: set ac_cv_prog_cxx if CXX is supplied.
- * lib/timeout.rb (Timeout#timeout): when a custom exception is given,
- no instance is needed to be caught, so defer creating new instance
- until it is raised. [ruby-core:59511] [Bug #9354]
+Tue Mar 19 01:18:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Tue Jan 7 10:16:02 2014 Eric Hodel <drbrain@segment7.net>
+ * configure.in: Fix c++ compiler auto-selection not only for
+ Darwin 11.x, but also the other versions of Darwin.
- * lib/rubygems: Update to RubyGems master 21e409d / RubyGems 2.2.1.
+Tue Mar 19 00:26:22 2013 Narihiro Nakamura <authornari@gmail.com>
- See http://rubygems.rubyforge.org/rubygems-update/History_txt.html
- for a list of bug fixes.
+ * gc.c: Improve accuracy of objspace_live_num() and
+ allocated/freed counters. patched by tmm1(Aman Gupta).
+ [Bug #8092] [ruby-core:53392]
- * test/rubygems: ditto.
+Mon Mar 18 21:42:48 2013 Narihiro Nakamura <authornari@gmail.com>
-Tue Jan 7 10:10:46 2014 Eric Wong <e@80x24.org>
+ * gc.c: Avoid unnecessary heap growth. patched by tmm1(Aman Gupta).
+ [Bug #8093] [ruby-core:53393]
- * ext/json/generator/depend: add build dependencies for json extension
- [Bug #9374] [ruby-core:59609]
- * ext/json/parser/depend: ditto
+Mon Mar 18 17:58:36 2013 Narihiro Nakamura <authornari@gmail.com>
-Tue Jan 7 04:35:46 2014 Aman Gupta <ruby@tmm1.net>
+ * gc.c: Fix unlimited memory growth with large values of
+ RUBY_FREE_MIN. patched by tmm1(Aman Gupta).
+ [Bug #8095] [ruby-core:53405]
- * array.c (ary_add_hash): Fix consistency issue between Array#uniq and
- Array#uniq! [Bug #9340] [ruby-core:59457]
- * test/ruby/test_array.rb (class TestArray): regression test for above.
+Mon Mar 18 14:46:19 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Jan 6 21:28:48 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * test/win32ole/test_err_in_callback.rb
+ (TestErrInCallBack#test_err_in_callback): shouldn't create a file in
+ the top of build directory.
- * .gitignore: ignore *-fake.rb generated even when CROSS_COMPILING = no
- since r42862.
+Mon Mar 18 13:29:52 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Jan 5 20:14:14 2014 Benoit Daloze <eregontp@gmail.com>
+ * vm_dump.c (backtrace): on darwin use custom backtrace() to trace
+ beyond _sigtramp. darwin's backtrace can't trace beyond signal
+ trampoline with sigaltstack.
- * compar.c (cmp_equal): remove error hiding in Comparable#==.
- Comparable#== no longer rescues exceptions silently.
- This was the cause of quite a couple bugs. See #7688. [EXPERIMENTAL]
+ * configure.in: check execinfo.h on darwin.
- * test/ruby/test_comparable.rb: adapt assertion to match new behavior.
+Mon Mar 18 11:03:23 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/rdoc/method_attr.rb: fix bugs discovered by this change.
+ * vm_exec.h (END_INSN): revert r39517 because the segv seems fixed by
+ r39806.
- * test/rdoc/test_rdoc_normal_class.rb: fix bugs in tests.
+Mon Mar 18 10:41:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sat Jan 4 22:44:00 2014 Charlie Somerville <charliesome@ruby-lang.org>
+ * vm_exec.c: Correct predefined macro name. This typo is introduced by
+ r36534 and should be backported to ruby_2_0_0.
- * struct.c (rb_struct_set): return assigned value from setter method
- rather than struct object. [Bug #9353] [ruby-core:59509]
+Mon Mar 18 03:18:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/ruby/test_struct.rb (test_setter_method_returns_value): add test
+ * array.c: Typo in Array#delete by Timo Sand [GH fixes #258]
-Sat Jan 4 21:44:31 2014 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Mon Mar 18 01:14:56 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/ruby/test_gc.rb (TestGc#test_latest_gc_info): use
- GC.stat(:key) instead of GC.stat.
+ * io.c (io_fillbuf): show fd number on failure to debug.
+ http://c5632.rubyci.org/~chkbuild/ruby-trunk/log/20130316T050302Z.diff.html.gz
-Sat Jan 4 19:15:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 17 02:38:21 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/socket/socket.c (rsock_syserr_fail_host_port): use format flags,
- '+' to inspect, ' ' to quote unprintables.
+ * ext/date/date_core.c: include sys/time.h for avoiding implicit
+ declaration of gettimeofday().
- * ext/socket/socket.c (rsock_syserr_fail_path): ditto.
+Sun Mar 17 00:55:31 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/socket/socket.c (rsock_syserr_fail_raddrinfo): ditto.
+ * include/ruby/missing.h: removed __linux__. it's unnecessary.
- * ext/socket/socket.c (rsock_syserr_fail_host_port): add errno
- argument version and use rb_syserr_fail_str() instead of
- rb_sys_fail_str() with restoring errno.
+Fri Mar 15 14:57:16 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/socket/socket.c (rsock_syserr_fail_path): ditto, and
- rb_syserr_fail().
+ * thread.c: disabled _FORTIFY_SOURCE for avoid to hit glibc bug.
+ [Bug #8080] [ruby-core:53349]
+ * test/ruby/test_io.rb (TestIO#test_io_select_with_many_files):
+ test for the above.
- * ext/socket/socket.c (rsock_sys_fail_sockaddr): ditto, use
- rsock_syserr_fail_raddrinfo().
+Wed Mar 13 15:16:35 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/socket/socket.c (rsock_sys_fail_raddrinfo): ditto.
+ * include/ruby/missing.h (__syscall): moved to...
+ * io.c: here. because __syscall() is only used from io.c.
- * ext/socket/socket.c (setup_domain_and_type): ditto.
+ * include/ruby/missing.h: move "#include <sys/type.h>" to ....
+ * include/ruby/intern.h: here. because it was introduced for
+ fixing NFDBITS issue. [ruby-core:05179].
-Sat Jan 4 17:18:58 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+Wed Mar 13 14:38:53 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * vm.c (RubyVM::OPTS): get rid of a garbage character.
+ * include/ruby/missing.h (struct timespec): include <sys/time.h>
-Sat Jan 4 10:17:54 2014 Eric Hodel <drbrain@segment7.net>
+Wed Mar 13 13:54:45 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * lib/rinda/ring.rb (Rinda::RingFinger#make_socket): Use
- ipv4_multicast_ttl option for portability.
+ * configure.in: check struct timeval exist or not.
+ * include/ruby/missing.h (struct timeval): check HAVE_STRUCT_TIMEVAL
+ properly. and don't include sys/time.h if struct timeval exist.
-Sat Jan 4 10:15:47 2014 Eric Hodel <drbrain@segment7.net>
+ * file.c: include sys/time.h explicitly.
+ * random.c: ditto.
+ * thread_pthread.c: ditto.
+ * time.c: ditto.
+ * ext/date/date_strftime.c: ditto.
- * lib/rinda/ring.rb (Rinda::RingFinger#make_socket): Use
- ipv4_multicast_loop option for portability. Patch by Jeremy Evans.
- [ruby-trunk - Bug #9351]
+Fri Mar 15 14:45:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Fri Jan 3 19:09:00 2014 Eric Wong <normalperson@yhbt.net>
+ * configure.in (_FORTIFY_SOURCE): added a few comments.
- * ext/socket/socket.c (rsock_sys_fail_host_port): save and restore errno
- before calling rb_sys_fail_str to prevent [BUG] errno == 0.
- Patch by Eric Wong. [ruby-core:59498] [Bug #9352]
+Fri Mar 15 14:17:55 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/socket/socket.c (rsock_sys_fail_path): ditto
- * ext/socket/socket.c (rsock_sys_fail_sockaddr): ditto
- * ext/socket/socket.c (rsock_sys_fail_raddrinfo): ditto
- * ext/socket/socket.c (rsock_sys_fail_raddrinfo_or_sockaddr): ditto
+ * thread_pthread.c (numberof): renamed from ARRAY_SIZE() because
+ other all files use numberof().
-Fri Jan 3 10:43:57 2014 Aman Gupta <ruby@tmm1.net>
+Say Mar 15 01:33:00 2013 Charles Oliver Nutter <headius@headius.com>
- * test/net/imap/cacert.pem: generate new CA cert, since the last one
- expired. [Bug #9341] [ruby-core:59459]
- * test/net/imap/server.crt: new server cert signed with updated CA.
- * test/net/imap/Makefile: add `make regen_certs` to automate this
- process.
+ * test/ruby/test_lazy_enumerator.rb (TestLazyEnumerator#test_drop_while):
+ Modify while condition to show dropping remains off after first false
+ value. This change was made in 39711.
-Fri Jan 3 00:09:54 2014 Benoit Daloze <eregontp@gmail.com>
+Fri Mar 15 23:06:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/bigdecimal: update class method call style from :: to .
- in documentation and usage.
+ * time.c (GetTimeval): check if already initialized instance.
- * ext/bigdecimal/lib/bigdecimal/math.rb: [DOC] fix examples values.
- Computations were made using ruby 2.0.0p247 to ensure
- no effect of the recent BigDecimal bug.
+ * time.c (GetNewTimeval): check if newly created instance.
- * ext/bigdecimal/sample/nlsolve.rb: fix indent.
+ * time.c (time_init_0, time_init_1, time_init_copy, time_mload): must
+ be newly created instance. [ruby-core:53436] [Bug #8099]
-Thu Jan 2 16:07:21 2014 Masaki Matsushita <glass.saga@gmail.com>
+Fri Mar 15 14:51:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (io_fwrite): freeze converted str.
+ * file.c (rb_sys_fail_path_with_func): share same function, and path
+ may be nil.
-Thu Jan 2 04:15:13 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Mar 15 08:24:51 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * eval.c (rb_longjmp): remove an extra modifier from the forward
- declaration to match the actual definition. [ruby-core:59451]
- [Bug #9338]
+ * io.c (rb_sys_fail_path): define & use rb_sys_fail_path0 like r39752
-Thu Jan 2 01:23:30 2014 Masaki Matsushita <glass.saga@gmail.com>
+Fri Mar 15 04:08:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * vm_eval.c (method_missing): use ALLOCV_N() instead of
- ALLOCA_N() and rb_ary_tmp_new().
+ * proc.c: Typo in Proc.arity found by Jack Nagel [Bug #8094]
-Thu Jan 2 00:53:16 2014 Masaki Matsushita <glass.saga@gmail.com>
+Thu Mar 14 16:59:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c (rb_ary_zip): use ALLOCV_N() instead of ALLOCA_N().
+ * configure.in (rb_cv_function_name_string): macro for function name
+ string predefined identifier, __func__ in C99, or __FUNCTION__ in
+ gcc.
-Thu Jan 2 00:04:29 2014 Masaki Matsushita <glass.saga@gmail.com>
+ * file.c (rb_sys_fail_path): use RUBY_FUNCTION_NAME_STRING.
- * hash.c (rb_hash_keys): make rb_hash_keys() static.
- it is no longer used from array.c since r43969.
- the patch is from normalperson (Eric Wong).
- [ruby-core:59449] [Feature #9336]
+Thu Mar 14 14:12:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * internal.h: remove definition of rb_hash_keys().
+ * file.c (rb_sys_fail_path): use rb_sys_fail_path0 only on GCC.
+ __func__ is C99 feature.
-Wed Jan 1 18:19:35 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Mar 14 12:59:59 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * configure.in: reset LDFLAGS and DLDFLAGS for opt-dir again after
- LIBPATHFLAG and RPATHFLAG are set. [ruby-dev:47868] [Bug #9317]
+ * file.c (rb_sys_fail_path0): add to append the name of called function
+ to ease debugging for example blow umask_spec failure.
+ http://fbsd.rubyci.org/~chkbuild/ruby-trunk/log/20130309T010202Z.diff.html.gz
-Wed Jan 1 11:12:29 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * file.c (rb_sys_fail_path): use rb_sys_fail_path0.
- * configure.in: use SSE2 instructions for drop unexpected
- precisions. [ruby-core:54738] [Bug #8358]
+Thu Mar 14 12:53:15 2013 Luis Lavena <luislavena@gmail.com>
-Tue Dec 31 23:49:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/file.c (get_user_from_path): add internal function that retrieves
+ username from supplied path (refactored).
+ * win32/file.c (rb_file_expand_path_internal): refactor expansion of user
+ home to use get_user_from_path and cover dir_string corner cases.
+ [ruby-core:53168] [Bug #8034]
- * eval.c (rb_f_raise): add cause: optional keyword argument.
- [ruby-core:58610] [Feature #8257] [EXPERIMENTAL]
+Thu Mar 14 11:53:01 2013 Narihiro Nakamura <authornari@gmail.com>
-Tue Dec 31 21:44:17 2013 Akio Tajima <artonx@yahoo.co.jp>
+ * NEWS: describe RUBY_HEAP_SLOTS_GROWTH_FACTOR.
- * win32/Makefile.sub: remove HAVE_FSEEKO because fseeko removed from win32/win32.c
- Fixed [Bug #9333].
+Thu Mar 14 10:01:12 2013 Eric Hodel <drbrain@segment7.net>
-Tue Dec 31 21:02:27 2013 Masaki Matsushita <glass.saga@gmail.com>
+ * doc/globals.rdoc: $? is thread-local
- * io.c (io_fwrite): allocate frozen str only when str is not converted.
+Wed Mar 13 23:25:59 2013 Narihiro Nakamura <authornari@gmail.com>
-Tue Dec 31 15:44:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: allow to tune growth of heap by environment variable
+ RUBY_HEAP_SLOTS_GROWTH_FACTOR. patched by tmm1(Aman Gupta).
+ [Feature #8015] [ruby-core:53131]
- * lib/mkmf.rb (RbConfig): expand RUBY_SO_NAME for extensions
- backward compatibility. [ruby-core:59426] [Bug #9329]
+Wed Mar 13 19:43:46 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Mon Dec 30 23:33:07 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+ * doc/irb/irb.rd.ja: fix typo
- * variable.c: [DOC] adding extra example in docs.
- patched by Steve Klabnik. [Bug #9210]
+ * ext/tk/MANUAL_tcltklib.eng: fix typos
-Mon Dec 30 18:34:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/tk/sample/tktextframe.rb (Tk#component_delegates): fix typo
- * encoding.c (must_encindex, rb_enc_from_index, rb_obj_encoding): mask
- encoding index and ignore dummy flags. [ruby-core:59354] [Bug #9314]
+Wed Mar 13 15:13:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Dec 30 16:11:52 2013 WATANABE Hirofumi <eban@ruby-lang.org>
+ * class.c (rb_obj_singleton_methods): collect methods from the origin
+ class. [ruby-core:53207] [Bug #8044]
- * tool/make-snapshot: needs CXXFLAGS. [ruby-core:59393][Bug #9320]
+Wed Mar 13 14:51:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Dec 29 18:36:54 2013 Shota Fukumori <her@sorah.jp>
+ * vm_method.c (rb_export_method): directly override the flag of method
+ defined in prepending class too, not adding zsuper entry.
+ [ruby-core:53106] [Bug #8005]
- * lib/mkmf.rb (configuration): Make CXXFLAGS customizable.
- Patch by Kohei Suzuki (eagletmt). [Fixes GH-492]
+Wed Mar 13 13:06:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Dec 29 12:11:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (rm, shvar_to_cpp, unexpand_shvar): local is not
+ available on old shells.
- * proc.c (mnew_from_me): keep iclass as-is, to make inheritance
- chain consistent. [ruby-core:59358] [Bug #9315]
+ * configure.in (shvar_to_cpp): escape quotes for old shells.
+ [Bug #7959] [Bug #8071]
- * proc.c (method_owner): return the original defined_class from
- prepended iclass, instead.
+Wed Mar 13 11:11:07 2013 Shugo Maeda <shugo@ruby-lang.org>
-Sun Dec 29 08:47:24 2013 Lucas Allan Amorim <lucas.allan@gmail.com>
+ * object.c (Init_Object): remove Module#used, which has been
+ introduced in Ruby 2.0 by mistake. [Bug #7916] [ruby-core:52719]
- * test/ruby/test_sprintf.rb (test_hash): Added tests for sprintf
- with a hash as parameter. [Fixes GH-491]
+Wed Mar 13 05:49:29 2013 Eric Hodel <drbrain@segment7.net>
-Sun Dec 29 07:27:51 2013 Benoit Daloze <eregontp@gmail.com>
+ * lib/irb.rb: Fix typo
- * compar.c (cmp_eq_recursive): Fix the return value, the value for
- failed #<=> should be nil. It was raising a NoMethodError for
- the test case TestComparable#test_no_cmp (undefined method `>'
- for false:FalseClass). Yet one more reason for #7688.
+Tue Mar 12 22:20:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Dec 28 22:21:59 2013 Benoit Daloze <eregontp@gmail.com>
+ * compile.c (iseq_set_arguments, iseq_compile_each): support required
+ keyword arguments. [ruby-core:51454] [Feature #7701]
- * object.c (Kernel#<=>) surround Comparable operators with <code> tags.
- The #== method was hidden in ri/rdoc's output and was highlighting
- the line instead.
+ * iseq.c (rb_iseq_parameters): ditto.
-Sat Dec 28 17:24:00 2013 DV Suresh <e@dvsuresh.me>
+ * parse.y (f_kw, f_block_kw): ditto. this syntax is still
+ experimental, the notation may change.
- * benchmark/bm_so_meteor_contest.rb: [DOC] Fix a few typos
- * ext/fiddle/lib/fiddle/import.rb: ditto
- * ext/psych/lib/psych.rb: ditto
- * ext/psych/lib/psych/nodes/sequence.rb: ditto
- * ext/tk/lib/multi-tk.rb: ditto
- * ext/tk/lib/tcltk.rb: ditto
+ * vm_core.h (rb_iseq_struct): ditto.
-Sat Dec 28 00:42:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg): ditto.
- * parse.y (local_push_gen, local_pop_gen): save cmdarg_stack to
- isolate command argument state from outer scope.
- [ruby-core:59342] [Bug #9308]
+Tue Mar 12 17:02:53 2013 TAKANO Mitsuhiro <tak@no32.tk>
-Fri Dec 27 13:25:03 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+ * date_core.c: clearly specify operator precedence.
- * win32/{setup.mak,Makefile.sub}: update fake.rb like
- template/fake.rb.in.
+Tue Mar 12 17:00:45 2013 TAKANO Mitsuhiro <tak@no32.tk>
-Thu Dec 26 16:10:41 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+ * insns.def: fix condition.
- * win32/Makefile.sub (fake.rb): should depend on version.h because
- if RUBY_VERSION is updated, fake.rb need to say the new version
- to avoid install error in rbconfig.rb.
+Tue Mar 12 16:48:19 2013 TAKANO Mitsuhiro <tak@no32.tk>
-Thu Dec 26 14:25:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * rational.c: fix dangling if, else-if and else.
- * hash.c (HASH_REJECT_COPY_EXTRA_STATES): turn off the old
- behavior, copying extra states by accident.
+Tue Mar 12 06:27:59 2013 Eric Hodel <drbrain@segment7.net>
-Thu Dec 26 10:49:14 2013 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems/commands/setup_command.rb: Don't delete non-rubygems
+ files when installing RubyGems.
+ * test/rubygems/test_gem_commands_setup_command.rb: Test for the
+ above.
- * version.h (RUBY_VERSION): 2.2.0 development has started.
+ * lib/rubygems/ext/ext_conf_builder.rb: Use full path to siteconf.rb
+ in case the extconf.rb changes directories (like memcached does).
-Thu Dec 26 10:27:53 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+ * lib/rubygems/package.rb: Remove double slash from path.
+ * test/rubygems/test_gem_package.rb: Test for the above.
+ * test/rubygems/test_gem_package_old.rb: ditto.
- * tool/merger.rb (tag): support 2.1.1 semi-automatic tagging and 2.2.0
- explicit tagging.
+ * lib/rubygems/source.rb: Revert automatic HTTPS upgrade
+ * lib/rubygems/spec_fetcher.rb: ditto.
+ * test/rubygems/test_gem_remote_fetcher.rb: ditto.
+ * test/rubygems/test_gem_source.rb: ditto.
+ * test/rubygems/test_gem_spec_fetcher.rb: ditto.
-Thu Dec 26 06:35:25 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+Tue Mar 12 02:25:19 2013 Eric Hodel <drbrain@segment7.net>
- * proc.c: Having any mandatory keyword argument increases min arity
- [#9299]
+ * lib/net/smtp.rb: Added Net::SMTP#rset method to implement the SMTP
+ RSET command. [ruby-trunk - Feature #5373]
+ * NEWS: ditto.
+ * test/net/smtp/test_smtp.rb: Test for the above.
-Thu Dec 26 06:27:08 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+Mon Mar 11 22:44:57 2013 Tanaka Akira <akr@fsij.org>
- * proc.c: Having optional keyword arguments makes maximum arity +1,
- not unlimited [#8072]
+ * lib/resolv-replace.rb (TCPSocket#initialize): resolve the 3rd
+ argument only if non-nil value is given.
+ [ruby-dev:47150] [ruby-trunk - Bug #8054] reported and analyzed by
+ mrkn.
-Thu Dec 26 01:09:57 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Mar 11 19:22:54 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * tool/release.sh: make symbolic links.
+ * test/mkmf/base.rb: class name conflict.
-Thu Dec 26 00:45:33 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Mar 11 18:45:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * tool/make-snapshot: support new version scheme.
+ * enumerator.c (enumerator_with_index): try to convert given offset to
+ integer. fix bug introduced in r39594.
-Wed Dec 25 22:44:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Mar 11 17:27:57 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * compile.c (iseq_set_arguments): set arg_keyword_check from
- nd_cflag, which is set by parser. internal ID is used for
- unnamed keyword rest argument, which should be separated from no
- keyword check.
+ * test/ruby/envutil.rb (EnvUtil.with_default_external): add for
+ changing Encoding.default_external without warnings.
- * iseq.c (rb_iseq_parameters): if no keyword check, keyword rest is
- present.
+ * test/ruby/envutil.rb (EnvUtil.with_default_internal): ditto.
- * parse.y (new_args_tail_gen): set keywords check to nd_cflag, which
- equals to that keyword rest is not present.
+ * test/ruby/test_io_m17n.rb: use above with_default_external.
-Wed Dec 25 22:32:19 2013 Zachary Scott <e@zzak.io>
+Mon Mar 11 16:57:00 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/abbrev.rb: [DOC] rdoc format patch by Giorgos Tsiftsis [Bug #9146]
+ * io.c (extract_binmode): raise error even if binmode and textmode
+ don't conflict. [Bug #5918] [ruby-core:42199]
-Wed Dec 25 20:30:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Mar 11 12:25:12 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * iseq.c (rb_iseq_parameters): push argument type symbol only for
- unnamed rest keywords argument.
+ * Merge Onigmo d4bad41e16e3eccd97ccce6f1f96712e557c4518.
+ fix lookbehind assertion fails with /m mode enabled. [Bug #8023]
+ fix \Z matches where it shouldn't. [Bug #8001]
-Wed Dec 25 20:28:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Mar 11 11:53:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * proc.c (rb_iseq_min_max_arity): maximum argument is unlimited if
- having rest keywords argument. [ruby-core:53298] [Bug #8072]
+ * lib/mkmf.rb (MakeMakefile#dir_config, MakeMakefile#_libdir_basename):
+ defer use of instance variable until needed. [Bug #8074]
-Wed Dec 25 18:29:22 2013 Koichi Sasada <ko1@atdot.net>
+Thu Mar 7 10:42:28 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * vm_insnhelper.c (argument_error): insert dummy frame to make
- a backtrace object intead of modify backtrace string array.
- [Bug #9295]
+ * lib/thread.rb (Queue#clear): return self.
+ Patch by Cubing Cube. Thank you! [Bug #7947] [ruby-dev:47098]
+ * lib/thread.rb (Queue#push): ditto.
+ * lib/thread.rb (SizedQueue#push): ditto.
+ * test/thread/test_queue.rb: add tests for the above.
- * test/ruby/test_backtrace.rb: add a test for this patch.
- fix test to compare a result of Exception#backtrace with
- a result of Exception#backtrace_locations.
+Thu Mar 7 10:40:49 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Dec 25 13:00:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/change_maker.rb (#diff2index): check Encoding::BINARY.
+ BASERUBY may still be 1.8.x.
- * configure.in: let mingw do something black-magic, and check if
- _gmtime64_s() is available actually.
+Thu Mar 7 08:47:42 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * win32/win32.c (gmtime_s, localtime_s): use _gmtime64_s() and
- _localtime64_s() if available, not depending on very confusing
- mingw variants macros. based on the patch by phasis68 (Heesob
- Park) at [ruby-core:58764]. [ruby-core:58391] [Bug #9119]
+ * NEWS (Mutex#owned?): no longer experimental.
-Wed Dec 25 12:33:41 2013 Yusuke Endoh <mame@tsg.ne.jp>
+Sun Mar 10 23:38:15 2013 Luis Lavena <luislavena@gmail.com>
- * sample/trick2013/: added the award-winning entries of TRICK 2013.
- See https://github.com/tric/trick2013 for the contest outline.
- (Matz has approved the attachment.)
+ * win32/file.c (rb_file_expand_path_internal): Expand home directory when
+ used as second parameter (dir_string). [ruby-core:53168] [Bug #8034]
+ * test/ruby/test_file_exhaustive.rb: add test to verify.
-Wed Dec 25 10:42:02 2013 Yamashita Yuu <yamashita@geishatokyo.com>
+Sun Mar 10 23:27:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_ssl.c (Init_ossl_ssl): Declare a constant
- `OP_MSIE_SSLV2_RSA_PADDING` only if the macro is defined. The
- `SSL_OP_MSIE_SSLV2_RSA_PADDING` has been removed from latest
- snapshot of OpenSSL 1.0.1. [Fixes GH-488]
+ * lib/rubygems/ext/ext_conf_builder.rb (Gem::Ext::ExtConfBuilder.build):
+ it is impossible to predict which file will be installed to where,
+ by the arguments, so use intermediate destination directory always.
+ [Bug #7698]
-Wed Dec 25 01:03:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 10 17:00:22 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * proc.c (bind_local_variables): allowing binding to list its
- local variables. patch by Jack Danger Canty <jackdanger AT
- squareup.com> at [ruby-core:56543]. [Feature #8773]
+ * complex.c: edited rdoc.
+ * rational.c: ditto.
-Tue Dec 24 23:20:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 10 15:02:39 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * test/fileutils/fileasserts.rb (assert_ownership_user): new
- assertion for user ownership.
+ * process.c (setup_communication_pipe): remove unused function.
+ it was unintentionally added r39683.
- * test/fileutils/test_fileutils.rb (test_chown_error),
- (test_chown_without_permission, test_chown_with_root):
- based on the patch by vajrasky (Vajrasky Kok) at
- [ruby-core:59298]. [Feature #9292]
+Wed Mar 6 00:30:40 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Tue Dec 24 16:28:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/gen_ruby_tapset.rb: add tapset generator.
- * proc.c (rb_mod_define_method): consider visibility only if self
- in the caller is same as the receiver, otherwise make public as
- well as old behavior. [ruby-core:57747] [Bug #9005]
- [ruby-core:58497] [Bug #9141]
+Wed Mar 6 03:27:43 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * vm.c (rb_vm_cref_in_context): return ruby level cref if self is
- same.
+ * probes.d (symbol-create): change argument name `string' to
+ `str'. `string' is a keyword for systemtap.
-Tue Dec 24 14:13:14 2013 Koichi Sasada <ko1@atdot.net>
+Tue Mar 5 22:23:01 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * README.EXT: add a refer to URL.
+ * probes.d: added argument name
-Tue Dec 24 13:48:45 2013 Koichi Sasada <ko1@atdot.net>
+Thu Mar 7 01:17:00 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * README.EXT: add a document about RGenGC.
- Reviewed by havenwood.
- [misc #8962]
+ * test/thread/test_queue.rb (TestQueue#test_thr_kill): reduce
+ iterations from 2000 to 250. When running on uniprocessor
+ systems, every th.kill needs TIME_QUANTUM_USEC time (i.e.
+ 100msec on posix systems). Because, "r.read 1" is 3 steps
+ operations that 1) release GVL 2) read 3) acquire gvl and
+ (1) invoke context switch to main thread. and then, main
+ thread's th.kill resume (1), but not (2). Thus read interrupt
+ need TIME_QUANTUM_USEC. Then maximum iteration is 30sec/100msec
+ = 300.
- * README.EXT.ja: ditto.
+Thu Mar 7 00:14:51 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Tue Dec 24 12:11:43 2013 Koichi Sasada <ko1@atdot.net>
+ * io.c (rb_update_max_fd): use ATOMIC_CAS because this function
+ is used from timer thread too.
- * include/ruby/ruby.h (RARRAY_ASET): try to avoid compiler warning.
- [Bug #9287]
+Wed Mar 6 23:30:21 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Tue Dec 24 05:04:56 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+ * thread_pthread.c (ARRAY_SIZE): new.
+ * thread_pthread.c (gvl_acquire_common): use low priority
+ notification for avoiding timer thread interval confusion.
+ If we use timer_thread_pipe[1], every gvl_yield() request
+ one more gvl_yield(). It lead to thread starvation.
+ [Bug #7999] [ruby-core:53095]
+ * thread_pthread.c (rb_reserved_fd_p): adds timer_thread_pipe_low
+ to reserved fds.
- * test/fileutils/test_fileutils.rb (setup): should not call
- Process.groups for Windows. get rid of many errors introduced by
- r44364.
+Wed Mar 6 22:36:19 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Dec 23 18:37:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread_pthread.c (rb_thread_wakeup_timer_thread_fd): add fd
+ argument and remove hardcoded dependency of timer_thread_pipe[1].
+ * thread_pthread.c (consume_communication_pipe): add fd argument.
+ * thread_pthread.c (close_communication_pipe): ditto.
- * test/fileutils/fileasserts.rb (assert_ownership_group): new
- assertion for group ownership.
+ * thread_pthread.c (timer_thread_sleep): adjust the above changes.
- * test/fileutils/test_fileutils.rb (test_chown{,_verbose,_noop}):
- based on the patch by vajrasky (Vajrasky Kok) at
- [ruby-core:59281]. [Feature #9286]
+ * thread_pthread.c (setup_communication_pipe_internal): factor
+ out pipe initialize logic.
-Mon Dec 23 15:53:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Mar 6 22:56:14 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * hash.c (HAS_EXTRA_STATES): warn extra states only when something
- differ. [ruby-core:59254] [Bug #9275]
+ * thread_pthread.c (ubf_select): add to small comments why we
+ need to call rb_thread_wakeup_timer_thread().
-Mon Dec 23 12:42:13 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+Wed Mar 6 21:42:24 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * array.c: Have to_h raise on elements that are not key-value pairs
- [#9239]
+ * thread_pthread.c (rb_thread_create_timer_thread): factor out
+ creating communication pipe logic into separate function.
+ * thread_pthread.c (setup_communication_pipe): new helper function.
+ * thread_pthread.c (set_nonblock): moves a definition before
+ setup_communication_pipe.
- * enum.c: ditto
+Sun Mar 3 02:42:29 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Dec 23 05:01:55 2013 Zachary Scott <e@zzak.io>
+ * thread_pthread.c (consume_communication_pipe): retry when
+ read returned CCP_READ_BUFF_SIZE.
- * doc/syntax/methods.rdoc: [DOC] Added example for underscore
- conventions in method names. Also added doc to clarify encoding
- character set support for Ruby programs and elaborated on defining
- predicate and bang methods. Based on a patch by @gaurish
- [Fixes GH-477] https://github.com/ruby/ruby/pull/477
+Wed Mar 6 21:31:35 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Dec 23 03:18:09 2013 Zachary Scott <e@zzak.io>
+ * thread_pthread.c (timer_thread_sleep): use poll() instead of
+ select(). select doesn't work if timer_thread_pipe[0] is
+ greater than FD_SETSIZE.
+ * thread_pthread.c (USE_SLEEPY_TIMER_THREAD): add a dependency
+ against poll.
- * doc/ChangeLog-1.9.3: [DOC] Fix typos by @dvsuresh
- [Fixes GH-485] https://github.com/ruby/ruby/pull/485
- * ext/openssl/ossl_config.c: ditto
- * lib/rss/utils.rb, lib/time.rb: ditto
- * test/ruby/envutil.rb: ditto
+Wed Mar 6 21:00:23 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Sun Dec 22 23:56:56 2013 Zachary Scott <e@zzak.io>
+ * thread_pthread.c (USE_SLEEPY_TIMER_THREAD): use more accurate
+ ifdef conditions.
- * lib/{rake,rdoc,rss}/*, test/rexml/test_listener.rb: [DOC] Fix typos
- by @dvsuresh [Fixes GH-486] https://github.com/ruby/ruby/pull/486
+Sun Mar 3 02:30:36 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Sun Dec 22 11:08:47 2013 Eric Hodel <drbrain@segment7.net>
+ * thread_pthread.c (set_nonblock): new helper function for set
+ O_NONBLOCK.
+ * thread_pthread.c (rb_thread_create_timer_thread): set O_NONBLOCK
+ to timer_thread_pipe[0] too.
- * test/rubygems/test_gem_ext_builder.rb: Fix warning due to ambiguous
- expression.
+Sun Mar 10 09:12:51 2013 Tadayoshi Funaba <tadf@dotrb.org>
-Sun Dec 22 11:05:53 2013 Eric Hodel <drbrain@segment7.net>
+ * complex.c: described syntax of string form.
+ * rational.c: ditto.
- * lib/rubygems/commands/install_command.rb: Restore gem install
- --ignore-dependencies for remote gems
- * test/rubygems/test_gem_commands_install_command.rb: Test for the
+Sat Mar 9 11:58:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * marshal.c (w_extended): check for prepended object.
+ [ruby-core:53206] [Bug #8043]
+
+Sat Mar 9 08:36:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * load.c (features_index_add_single, rb_feature_p): store single index
+ as Fixnum to reduce the number of arrays for the indexes. based on
+ the patch by tmm1 (Aman Gupta) in [ruby-core:53216] [Bug #8048].
+
+Sat Mar 9 00:25:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * marshal.c (r_object0): load prepended objects. treat the class of
+ extended object in the included modules as prepended singleton
+ class. [ruby-core:53202] [Bug #8041]
+
+Fri Mar 8 19:44:00 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * man/rake.1, man/ruby.1: Use the Pa macro to make URLs stand out.
+
+Fri Mar 8 13:20:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * ext/pathname/pathname.c (path_f_pathname): rdoc for Pathname()
+
+Fri Mar 8 12:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * man/rake.1: Document ENVIRONMENT variables on RAKE(1) manpage
+
+Fri Mar 8 10:44:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * lib/webrick/httpproxy.rb: Fix typos in HTTPProxyServer [Bug #8013]
+ Patch by Nobuhiro IMAI [ruby-core:53127]
+
+Fri Mar 8 03:16:15 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+
+ * class.c (rb_mod_ancestors): Include singleton_class in ancestors
+ list [Feature #8035]
+
+ * test/ruby/test_module.rb (class): test for above
+
+ * test/ruby/marshaltestlib.rb (module): adapt test
+
+ * NEWS: list change
+
+Thu Mar 7 14:21:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * compile.c (iseq_compile_each): pass keyword arguments to zsuper,
+ with current values. [ruby-core:53114] [Bug #8008]
+
+Thu Mar 7 12:53:47 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/commands/setup_command.rb: Install .pem files.
+ * test/rubygems/test_gem_commands_setup_command.rb: Test for the
above.
-Sun Dec 22 10:23:40 2013 Eric Hodel <drbrain@segment7.net>
+ * lib/rubygems/spec_fetcher.rb: Test HTTPS upgrade with URI::HTTPS,
+ not URI::HTTP. Fixes bug in automatic HTTPS upgrade.
+ * test/rubygems/test_gem_spec_fetcher.rb: Test for the above.
- * lib/rdoc.rb: Set RDoc to release version.
+ * lib/rubygems.rb: Version 2.0.2
-Sun Dec 22 10:19:07 2013 Eric Hodel <drbrain@segment7.net>
+ * lib/rubygems/test_utilities.rb: Ensure scheme and uri class match.
- * lib/rubygems.rb: Set RubyGems to release version.
+Thu Mar 7 10:39:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Dec 22 10:16:08 2013 Eric Hodel <drbrain@segment7.net>
+ * tool/rbinstall.rb (gem): Gem.ensure_gem_subdirectories now has mode
+ option since r39607. refix of r38870.
- * lib/rubygems.rb (module Gem): Fix comment for
- Gem::load_path_insert_index.
+Wed Mar 6 13:14:28 2013 Eric Hodel <drbrain@segment7.net>
-Sun Dec 22 04:07:55 2013 Koichi Sasada <ko1@atdot.net>
+ * test/rubygems/test_gem_spec_fetcher.rb: Removed unused variable.
- * gc.c (ruby_gc_set_params): don't show obsolete warnings for
- RUBY_FREE_MIN/RUBY_HEAP_MIN_SLOTS if
- RUBY_GC_HEAP_FREE_SLOTS/RUBY_GC_HEAP_INIT_SLOTS are given.
- [Bug #9276]
+Wed Mar 6 08:10:15 2013 Eric Hodel <drbrain@segment7.net>
-Sat Dec 21 13:00:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems/test_require.rb: Fix tests when 'a.rb' exists.
+ [ruby-trunk - Bug #7749]
- * file.c: remove unnecessary the source path from EEXIST error
- messages and show the destination path only. [ruby-core:59202]
- [Feature #9263]
+Wed Mar 6 08:00:59 2013 Eric Hodel <drbrain@segment7.net>
-Sat Dec 21 12:37:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems.rb: Allow specification of directory permissions.
+ [ruby-trunk - Bug #7713]
+ * test/rubygems/test_gem.rb: Test for the above.
- * lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not
- consider encodings in hosts file. [ruby-core:59239] [Bug #9273]
+Wed Mar 6 07:40:21 2013 Eric Hodel <drbrain@segment7.net>
- * lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.
+ * lib/rubygems/commands/query_command.rb: Only fetch remote specs when
+ showing details. [ruby-trunk - Bug #8019] RubyGems bug #487
+ * lib/rubygems/remote_fetcher.rb: ditto.
+ * lib/rubygems/security/policy.rb: ditto.
+ * test/rubygems/test_gem_commands_query_command.rb: Test for the
+ above.
-Sat Dec 21 05:43:27 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+ * lib/rubygems/security.rb: Make OpenSSL optional for RubyGems.
+ * lib/rubygems/commands/cert_command.rb: ditto.
- * tool/make-snapshot: replace RUBY_PATCHLEVEL_STR in version.h to
- show users that this ruby is a preview/rc version.
+ * lib/rubygems/config_file.rb: Display file with YAML error, not
+ ~/.gemrc
-Sat Dec 21 05:03:49 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+ * lib/rubygems/remote_fetcher.rb: Only create gem subdirectories when
+ installing gems.
+ * lib/rubygems/dependency_resolver.rb: ditto.
+ * lib/rubygems/test_utilities.rb: ditto.
+ * test/rubygems/test_gem_commands_fetch_command.rb: Test for the
+ above.
- * win32/Makefile.sub (fake.rb): fixed wrong RUBY_PLATFORM, to correctly
- install win32.h.
- [ruby-core:58801][Bug #9199] reported by arton.
+ * lib/rubygems/spec_fetcher.rb: Only try to upgrade
+ http://rubygems.org to HTTPS
+ * test/rubygems/test_gem_spec_fetcher.rb: Test for the above.
+
+ * lib/rubygems.rb: Update win_platform? check for JRuby compatibility.
+
+ * test/rubygems/test_gem_installer.rb: Update for Ruby 1.9.2
+ compatibility
+
+Wed Mar 6 01:19:28 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+
+ * enumerator.c (enumerator_with_index, lazy_take): use INT2FIX(0)
+ instead of INT2NUM(0).
+
+ * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): ditto.
+
+ * ext/fiddle/function.c (function_call): ditto.
+
+ * ext/openssl/ossl_x509store.c (ossl_x509store_initialize): ditto.
+
+ * process.c (proc_getsid): ditto.
+
+ * transcode.c (econv_finish): ditto.
+
+Tue Mar 5 21:36:43 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * class.c (rb_prepend_module): check redefinition of built-in optimized
+ methods. [ruby-dev:47124] [Bug #7983]
+
+ * vm.c (rb_vm_check_redefinition_by_prepend): ditto.
+
+Tue Mar 5 20:29:25 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * proc.c (mnew): revert r39224. [ruby-core:53038] [Bug #7988]
+
+Tue Mar 5 20:23:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * include/ruby/intern.h (rb_check_arity): make a static inline
+ function so it can be used as an expression and argc would be
+ evaluated only once.
+
+Tue Mar 5 12:30:55 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems.rb: Bump version to 2.0.1 for upcoming bugfix release
+
+ * lib/rubygems/ext/ext_conf_builder.rb: Restore ruby 1.8 compatibility
+ for [Bug #7698]
+ * test/rubygems/test_gem_installer.rb: Ditto.
+
+ * lib/rubygems/package.rb: Restore ruby 1.8 compatibility.
+
+ * test/rubygems/test_gem_dependency_installer.rb: Fix warnings
+
+Tue Mar 5 12:24:23 2013 Eric Hodel <drbrain@segment7.net>
+
+ * enumerator.c (enumerator_with_index): Restore handling of a nil memo
+ from r39594.
+
+Tue Mar 5 10:40:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/objspace/objspace.c (count_nodes): count also newly added nodes,
+ and fix key for unknown node. patch by tmm1 (Aman Gupta) in
+ [ruby-core:53130] [Bug #8014]
+
+Tue Mar 5 10:20:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enumerator.c (enumerator_with_index_i): allow Bignum as offset, to
+ get rid of conversion exception and integer overflow.
+ [ruby-dev:47131] [Bug #8010]
+
+ * numeric.c (rb_int_succ, rb_int_pred): shortcut optimization for
+ Bignum.
+
+Tue Mar 5 10:02:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/rubygems/ext/ext_conf_builder.rb (Gem::Ext::ExtConfBuilder.build):
+ clear DESTDIR so RUBYARCHDIR and RUBYLIBDIR are not be overridden.
+ [Bug #7698]
+
+Mon Mar 4 15:33:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/rubygems/ext/ext_conf_builder.rb (Gem::Ext::ExtConfBuilder.build):
+ fix for unusual cases again. install to a temporary directory once
+ and move installed files to the destination directory, if it is same
+ as the current directory. [Bug #7698]
+
+Mon Mar 4 14:13:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * Makefile.in (miniruby, ruby): move MAINLIBC because linker arguments
+ must appear after object files with newer versions of gcc. patch by
+ tmm1 (Aman Gupta) in [ruby-core:53121] [Bug #8009]
+
+Mon Mar 4 10:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * encoding.c: Typo in Encoding overview by Tom Wardrop [GH fixes #255]
+
+Sun Mar 3 12:35:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (MakeMakefile#libpath_env): set runtime library path for
+ the case rpath is disabled.
+
+Sun Mar 3 12:17:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/rubygems/ext/ext_conf_builder.rb
+ (Gem::Ext::ExtConfBuilder.hack_for_obsolete_style_gems): remove
+ circular dependencies in install-so too. [ruby-core:52882]
+ [Bug #7698]
+
+Sun Mar 3 07:33:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * ext/socket/tcpserver.c: Grammar for TCPServer.new from r39554
+
+Sun Mar 3 01:17:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/rubygems/ext/ext_conf_builder.rb
+ (Gem::Ext::ExtConfBuilder.hack_for_obsolete_style_gems): remove
+ circular dependencies for old style gems which locate extconf.rb on
+ the toplevel. [ruby-core:53059] [ruby-trunk - Bug #7698]
+
+ * lib/rubygems/ext/ext_conf_builder.rb (Gem::Ext::ExtConfBuilder.build):
+ use RUBYOPT instead of -r option, and revert some tests. [Bug #7698]
+
+ * lib/rubygems/ext/ext_conf_builder.rb (Gem::Ext::ExtConfBuilder.build):
+ revert use of temporary directory for build, to work some buggy
+ extconf.rb which cannot build outside the source directory.
+ [ruby-core:53056] [Bug #7698]
+
+Sun Mar 3 00:04:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enc/depend (CPPFLAGS), lib/mkmf.rb (MakeMakefile#create_makefile):
+ define RUBY_EXPORT for static-linked-ext mswin. [Bug #7960]
+
+Sat Mar 2 22:49:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/Makefile.sub (ENCOBJS, EXTOBJS, config.h): definitions for
+ static-linked-ext. [Bug #7960]
+
+Sat Mar 2 17:34:19 2013 Tanaka Akira <akr@fsij.org>
+
+ * lib/webrick/utils.rb: use Socket.tcp_server_sockets to create server
+ sockets.
+ fix [Bug #7100] https://bugs.ruby-lang.org/issues/7100
+ reported by sho-h (Sho Hashimoto).
+
+Sat Mar 2 02:45:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * array.c: typo in comment patch by Nami-Doc [Github fixes #253]
+
+Sat Mar 2 01:33:17 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * Merge Onigmo 0fe387da2fee089254f6b04990541c731a26757f
+ v5.13.3 [Bug#7972] [Bug#7974]
+
+Fri Mar 1 11:09:06 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/fileutils.rb: Revert r34669 which altered the way
+ metaprogramming in FileUtils occurred. [ruby-trunk - Bug #7958]
+
+ * test/fileutils/visibility_tests.rb: Refactored tests of FileUtils
+ options modules to expose bug found in #7958
+ * test/fileutils/test_dryrun.rb: ditto.
+ * test/fileutils/test_nowrite.rb: ditto.
+ * test/fileutils/test_verbose.rb: ditto.
+
+Fri Mar 1 09:18:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * lib/psych.rb: specify in rdoc what object is returned in parser
+ By Adam Stankiewicz [Github tenderlove/psych#133]
+
+Fri Mar 1 07:21:41 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/ext/builder.rb: Fix incompatibilities when installing
+ extensions. Patch by Nobu.
+ [ruby-trunk - Bug #7698] [ruby-trunk - Bug #7971]
+ * lib/rubygems/ext/ext_conf_builder.rb: ditto.
+ * lib/rubygems/installer.rb: ditto.
+ * test/rubygems/test_gem_ext_ext_conf_builder.rb: Test for the above.
+ * test/rubygems/test_gem_installer.rb: ditto.
+
+ * lib/rubygems/commands/sources_command.rb: Prefer HTTPS over HTTP.
+ * lib/rubygems/defaults.rb: ditto
+ * lib/rubygems/dependency_resolver.rb: Ditto.
+ * lib/rubygems/source.rb: ditto.
+ * lib/rubygems/spec_fetcher.rb: ditto.
+ * lib/rubygems/specification.rb: ditto.
+ * lib/rubygems/test_utilities.rb: ditto.
+ * test/rubygems/test_gem.rb: Test for the above.
+ * test/rubygems/test_gem_commands_sources_command.rb: ditto.
+ * test/rubygems/test_gem_dependency_resolver_api_set.rb: ditto.
+ * test/rubygems/test_gem_remote_fetcher.rb: ditto.
+ * test/rubygems/test_gem_source.rb: ditto.
+ * test/rubygems/test_gem_spec_fetcher.rb: ditto.
+
+Fri Mar 1 03:25:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * ext/psych/lib/psych.rb: rdoc for Psych overview by Adam Stankiewicz
+ [Github tenderlove/psych#134]
+
+Thu Feb 28 22:57:48 2013 Koichi Sasada <ko1@atdot.net>
+
+ * compile.c (iseq_compile_each): remove redundant trace(line)
+ instruction. for example, at the following script
+ def m()
+ p:xyzzy
+ 1
+ 2
+ end
+ compiler ignores `1' because there is no effect. However,
+ `trace(line)' instruction remains in bytecode.
+ This modification removes such redundant trace(line) instruction.
+
+ * test/ruby/test_iseq.rb: add a test.
+
+Thu Feb 28 22:23:27 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/raddrinfo.c (inspect_sockaddr): don't show that Unix
+ domain socket filename is bigger than sizeof(sun_path).
+ This limit is not rigid on some platforms such as Darwin and SunOS.
+
+Thu Feb 28 21:33:01 2013 WATANABE Hirofumi <eban@ruby-lang.org>
+
+ * configure.in(AC_DISABLE_OPTION_CHECKING): avoid warning "WARNING:
+ Unrecognized options: --with-PACKAGE".
+
+Thu Feb 28 20:22:04 2013 Koichi Sasada <ko1@atdot.net>
+
+ * iseq.c (iseq_data_to_ary): fix condition.
+ r34303 introduces a bug to avoid all line information from
+ a result of ISeq#to_a. This is a regression problem from 2.0.0p0.
+
+ * test/ruby/test_iseq.rb: add a test of lines after ISeq#to_a.
+
+Thu Feb 28 08:20:33 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/available_set.rb: Undent for style
+
+ * lib/rubygems/dependency_installer.rb: Pick latest prerelease gem to
+ install. Fixes RubyGems bug #468.
+ * test/rubygems/test_gem_dependency_installer.rb: Test for the above.
+
+ * lib/rubygems/dependency_installer.rb: Don't display "Done installing
+ documentation" if documentation will not be installed.
+ * lib/rubygems/rdoc.rb: ditto
+
+ * lib/rubygems/dependency_list.rb: Use Array#concat for Ruby 1.x
+ performance.
+
+ * lib/rubygems/installer.rb: Use formatted program name when comparing
+ executables. RubyGems pull request #471
+ * test/rubygems/test_gem_installer.rb: Test for the above.
+
+ * lib/rubygems/package.rb: Use more explicit feature check to work
+ around JRuby bug #552
+
+ * lib/rubygems/ssl_certs/GeoTrust_Global_CA.pem: Added GeoTrust root
+ certificate.
+
+ * test/rubygems/test_gem_source_list.rb: Use "example" instead of real
+ hostname
+
+Thu Feb 28 05:57:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c: rdoc formatting for Thread, ThreadGroup, and ThreadError
+
+Thu Feb 28 02:42:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * vm.c: Typo in overview for example of Thread#status returning false
+ Reported by Lee Jarvis
+
+Wed Feb 27 22:54:27 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/rubysocket.h (union_sockaddr): make it longer for SunOS
+ and Darwin.
+
+Wed Feb 27 21:14:34 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/security.rb (REXML::Security): create.
+ * lib/rexml/rexml.rb: move entity_expansion_limit and
+ entity_expansion_text_limit accessors to ...
+ * lib/rexml/security.rb: ... here.
+ * lib/rexml/document.rb: use REXML::Security.
+ * lib/rexml/text.rb: use REXML::Security.
+ * test/rexml/test_document.rb: use REXML::Security.
+
+Wed Feb 27 19:53:32 2013 Benoit Daloze <eregontp@gmail.com>
+
+ * vm.c (Thread): fix typos in overview
+
+Wed Feb 27 13:21:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * vm.c (Thread): Typo in overview, swap setting and getting
+
+Wed Feb 27 13:02:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * vm.c (Thread): Documentation overview of Thread class
+
+Wed Feb 27 12:57:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c (rb_thread_wakeup): rdoc formatting
+
+Wed Feb 27 12:53:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c (rb_thread_group): rdoc formatting
+
+Wed Feb 27 12:33:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * lib/ostruct.rb: Typo in OpenStruct overview [Github Fixes #251]
+ Patch by Chun-wei Kuo
+
+Wed Feb 27 12:13:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * vm_exec.h (END_INSN): llvm-gcc may optimize out reg_cfp and cause
+ Stack/cfp consistency error when the instruction doesn't use reg_cfp.
+ Usually instructions use PUSH() but for example trace doesn't.
+ This hack cause speed down but you shouldn't use llvm-gcc, use clang.
+ [Bug #7938]
+
+Wed Feb 27 10:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c (thread_raise_m): rdoc formatting
+
+Tue Feb 26 23:32:44 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/document.rb: move entity_expansion_limit accessor to ...
+ * lib/rexml/rexml.rb: ... here for consistency.
+ * lib/rexml/document.rb (REXML::Document.entity_expansion_limit):
+ deprecated.
+ * lib/rexml/document.rb (REXML::Document.entity_expansion_limit=):
+ deprecated.
+
+Tue Feb 26 23:26:13 2013 Kouhei Sutou <kou@cozmixng.org>
+
+ * lib/rexml/document.rb: move entity_expansion_text_limit accessor to ...
+ * lib/rexml/rexml.rb: ... here to make rexml/text independent from
+ REXML::Document. It causes circular require.
+ * lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit):
+ deprecated.
+ * lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit=):
+ deprecated.
+ * lib/rexml/text.rb: add missing require "rexml/rexml" for
+ REXML.entity_expansion_text_limit.
+ Reported by Robert Ulejczyk. Thanks!!! [ruby-core:52895] [Bug #7961]
+
+Tue Feb 26 15:12:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * tool/mkconfig.rb: reconstruct comma separated list values. a
+ command line to Windows batch file is split not only by spaces
+ and equal signs but also by commas and semicolons.
+
+Tue Feb 26 15:04:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (unexpand_shvar): get rid of non-portable shell
+ behavior on OpenBSD, so no extra quotes. [Bug #7959]
+
+Tue Feb 26 10:24:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (IS_LABEL_POSSIBLE): allow labels for keyword arguments just
+ after method definition without a parenthesis. [ruby-core:52820]
+ [Bug #7942]
+
+Tue Feb 26 04:50:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * error.c: clarify reason for sleep in SignalException example
+
+Tue Feb 26 03:47:00 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * error.c: clarify a document of SignalException. Process.kill()
+ doesn't have any guarantee when signal will be delivered.
+ [Bug #7951] [ruby-core:52864]
+
+Mon Feb 25 23:51:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * include/ruby/version.h: bump RUBY_API_VERSION same as RUBY_VERSION.
+
+Mon Feb 25 21:03:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * string.c (str_byte_substr): don't set coderange if it's not known.
+ [Bug #7954] [ruby-dev:47108]
+
+Mon Feb 25 16:47:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * common.mk (realclean-local): miniprelude.c is made by srcs, so it
+ should not removed by distclean but by realclean. [Bug #6807]
+
+Mon Feb 25 16:30:30 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/config_file.rb: Lazily load .gem/credentials to only
+ check permissions when necessary. RubyGems bug #465
+ * test/rubygems/test_gem_config_file.rb: Test for the above.
+
+ * test/rubygems/test_gem_commands_push_command.rb: Remove duplicated
+ test.
+
+Mon Feb 25 15:47:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enc/depend (ARFLAGS): VisualC++ linker does not allow spaces between
+ output option and the output file name. [Bug #7950]
+
+ * enc/depend (RANLIB): set default command to do nothing, or make the
+ entire line a label on Windows.
+
+Mon Feb 25 14:41:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (MakeMakefile#init_mkmf): default libdirname to libdir.
+
+ * tool/rbinstall.rb: ditto.
+
+Mon Feb 25 13:12:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (setup): find Setup file from target_os 1. by
+ suffix (e.g. Setup.nacl, Setup.atheos), 2. by "platform"
+ option (e.g. Setup.nt, Setup.emx), and 3. default Setup. And
+ Setup.dj had been removed.
+
+Mon Feb 25 12:48:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c: Document Thread::new, clean up ::fork and mention calling
+ super if subclassing Thread
+
+Mon Feb 25 12:38:50 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: don't test ss_family and ss_len member of
+ struct sockaddr_storage. They are not used now except SunOS
+ specific code.
+
+Mon Feb 25 11:03:38 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * configure.in (unexpand_shvar): Use the numeric comparison
+ operator instead of '==' which is a ksh extension. [Bug #7941]
+
+Mon Feb 25 02:37:56 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket: define and use union_sockaddr instead of struct
+ sockaddr_storage for less casts.
+
+ * ext/socket/rubysocket.h (union_sockaddr): defined.
+
+ * ext/socket/socket.c (sock_accept): use union_sockaddr.
+ (sock_accept_nonblock): ditto.
+ (sock_sysaccept): ditto.
+ (sock_s_getnameinfo): ditto.
+
+ * ext/socket/basicsocket.c (bsock_getsockname): ditto.
+ (bsock_getpeername): ditto.
+ (bsock_local_address): ditto.
+ (bsock_remote_address): ditto.
+
+ * ext/socket/ancdata.c (bsock_recvmsg_internal): ditto.
+
+ * ext/socket/init.c (recvfrom_arg): ditto.
+ (recvfrom_blocking): ditto.
+ (rsock_s_recvfrom): ditto.
+ (rsock_s_recvfrom_nonblock): ditto.
+ (rsock_getfamily): ditto.
+
+ * ext/socket/raddrinfo.c (rb_addrinfo_t): ditto.
+ (ai_get_afamily): ditto.
+ (inspect_sockaddr): ditto.
+ (addrinfo_mdump): ditto.
+ (addrinfo_mload): ditto.
+ (addrinfo_getnameinfo): ditto.
+ (addrinfo_ip_port): ditto.
+ (extract_in_addr): ditto.
+ (addrinfo_ipv6_to_ipv4): ditto.
+ (addrinfo_unix_path): ditto.
+
+ * ext/socket/tcpserver.c (tcp_accept): ditto.
+ (tcp_accept_nonblock): ditto.
+ (tcp_sysaccept): ditto.
+
+ * ext/socket/ipsocket.c (ip_addr): ditto.
+ (ip_peeraddr): ditto.
+ (ip_s_getaddress): ditto.
+
+Sun Feb 24 21:15:05 2013 Tadayoshi Funaba <tadf@dotrb.org>
+
+ * ext/date/date_core.c: [ruby-core:52303]
+
+Sun Feb 24 15:33:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * random.c (rb_random_ulong_limited): limit is inclusive, but generic
+ rand method should return a number less than it, so increase for the
+ difference. [ruby-core:52779] [Bug #7935]
+
+Sun Feb 24 15:32:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * random.c (rb_random_ulong_limited): limit is inclusive, but generic
+ rand method should return a number less than it, so increase for the
+ difference. [ruby-core:52779] [Bug #7935]
+
+Sun Feb 24 15:14:43 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/net/http.rb: Removed duplicate Accept-Encoding in Net::HTTP#get.
+ [ruby-trunk - Bug #7924]
+ * test/net/http/test_http.rb: Test for the above.
+
+Wed Feb 20 14:28:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c: Document ThreadGroup::Default
+
+Wed Feb 20 14:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c: Grammar for #backtrace_locations and ::handle_interrupt
+
+Sun Feb 24 13:35:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * vm_insnhelper.c (vm_call_method): block level control frame does not
+ have method entry, so obtain the method entry from method top-level
+ control frame to be compared with refined method entry.
+ [ruby-core:52750] [Bug #7925]
+
+Wed Feb 20 13:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * object.c: Document methods receiving string and convert to symbol
+ Patch by Stefan Rusterholz
+ * vm_eval.c: ditto
+ * vm_method.c: ditto
+
+Wed Feb 20 07:20:56 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * signal.c (sigsegv): suppress unused result warning. Because
+ write(2) is marked __warn_unused_result__ on Linux glibc.
+
+Sun Feb 24 07:50:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * compile.c (iseq_set_arguments): no keyword check if any keyword rest
+ argument exists, even unnamed. [ruby-core:52744] [Bug #7922]
+
+Sat Feb 23 16:51:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c: Documentation for Thread#backtrace_locations
+
+Sat Feb 23 16:05:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * vm.c: Typo in ObjectSpace::WeakMap overview
+
+Sat Feb 23 16:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * thread.c: Improved rdoc for ::handle_interrupt, ::pending_interrupt?
+ and #pending_interrupt?
+
+Sat Feb 23 12:26:43 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * misc/ruby-electric.el (ruby-electric-curlies)
+ (ruby-electric-matching-char, ruby-electric-bar): Avoid electric
+ insertion when there is a prefix argument.
+
+ * misc/ruby-electric.el (ruby-electric-insert)
+ (ruby-electric-cua-replace-region-p)
+ (ruby-electric-cua-replace-region): Avoid electric insertion and
+ fall back when cua-mode is enabled and a region is active.
+
+Sat Feb 23 12:35:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * array.c: Document #<=> return values and formatting
+ * bignum.c: ditto
+ * file.c: ditto
+ * object.c: ditto
+ * numeric.c: ditto
+ * rational.c: ditto
+ * string.c: ditto
+ * time.c: ditto
+
+Sat Feb 23 10:50:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * array.c (rb_ary_diff, rb_ary_and, rb_ary_or): Document return order
+ [RubySpec #7803]
+
+Sat Feb 23 10:17:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * object.c (rb_obj_comp): Documenting Object#<=> return values
+ Patch by Stefan Rusterholz
+
+Sat Feb 23 09:48:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * dir.c (file_s_fnmatch, fnmatch_brace): encoding-incompatible pattern
+ and string do not match, instead of exception. [ruby-dev:47069]
+ [Bug #7911]
+
+Sat Feb 23 08:57:46 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+
+ * doc/NEWS-*: Update NEWS from their respective branches
+
+Sat Feb 23 08:14:43 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
+
+ * NEWS: many additions for Ruby 2.0.0
+
+ * object.c: Add doc for Module.prepended
+
+Sat Feb 23 07:52:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * template/ruby.pc.in: reorder library flags which may refer library
+ names. [Bug #7913]
+
+Fri Feb 22 23:46:20 2013 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
+
+ * lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit):
+ fix a typo in comment in r39384.
+
+Fri Feb 22 18:31:46 2013 Aaron Patterson <aaron@tenderlovemaking.com>
+
+ * lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit):
+ new attribute to read/write entity expansion text limit. the default
+ limit is 10Kb.
+
+ * lib/rexml/text.rb (REXML::Text.unnormalize): check above attribute.
+
+Fri Feb 22 17:36:23 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * test/test_rbconfig.rb (TestRbConfig): fix r39372.
+ It must see RbConfig::CONFIG instead of CONFIG.
+
+Fri Feb 22 14:55:41 2013 Naohisa Goto <ngotogenome@gmail.com>
+
+ * signal.c (ruby_abort): fix typo in r39354 [Bug #5014]
+
+Fri Feb 22 12:46:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * random.c (rb_random_ulong_limited): fix error message for negative
+ value. [ruby-dev:47061] [Bug #7903]
+
+Fri Feb 22 11:36:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * test/test_rbconfig.rb (TestRbConfig): skip user defined values by
+ configuration options. [Bug #7902]
+
+Fri Feb 22 11:33:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (MakeMakefile#init_mkmf): adjust default library path
+ for multiarch. [Bug #7874]
+
+Fri Feb 22 11:10:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * enum.c (Enumerable#chunk: Improved examples, grammar, and formatting
+ Patch by Dan Bernier and Rich Bruchal of newhaven.rb
+ [Github documenting-ruby/ruby#8]
+
+Fri Feb 22 11:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * numeric.c: Examples and formatting for Numeric and Float
+ Based on a patch by Zach Morek and Oren K of newhaven.rb
+ [Github documenting-ruby/ruby#5]
+
+Fri Feb 22 07:04:41 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/installer.rb (build_extensions): Create extension
+ install destination before building extension. Patch by Kenta Murata.
+ [ruby-trunk - Bug #7897]
+ * test/rubygems/test_gem_installer.rb: Test for the above.
+
+Fri Feb 22 06:30:57 2013 Eric Hodel <drbrain@segment7.net>
+
+ * doc/globals.rdoc: Document what setting $DEBUG does.
+
+ * doc/globals.rdoc: Added pointer to $-d for full documentation.
+
+Fri Feb 22 06:27:07 2013 Eric Hodel <drbrain@segment7.net>
+
+ * doc/globals.rdoc: Document what setting $VERBOSE does. [Bug #7899]
+
+ * doc/globals.rdoc: Added pointer to $-w and $-v for full
+ documentation.
+
+Fri Feb 22 02:33:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * lib/abbrev.rb: Add words parameter to Abbrev::abbrev
+ Patch by Devin Weaver [Github documenting-ruby/ruby#7]
+
+Thu Feb 21 17:28:14 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * tool/merger.rb: add interaction when only ChangeLog is modified.
+
+Thu Feb 21 16:34:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * signal.c (check_stack_overflow): extract duplicated code and get rid
+ of declaration-after-statement. [Bug #5014]
+
+Thu Feb 21 14:14:13 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * signal.c (sigsegv): avoid to use async signal unsafe functions
+ when nested sigsegv is happen.
+ [Bug #5014] [ruby-dev:44082]
+
+Thu Feb 21 13:47:59 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * file.c (rb_group_member): added an error check. SUS says,
+ getgroups(small_value) may return EINVAL.
+
+Thu Feb 21 13:37:07 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * process.c (RB_MAX_GROUPS): moved to
+ * internal.h (RB_MAX_GROUPS): here.
+
+ * file.c (rb_group_member): use RB_MAX_GROUPS instead of
+ RUBY_GROUP_MAX. They are the same.
+
+Thu Feb 21 13:15:40 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * file.c (access_internal): removed.
+ * file.c (rb_file_readable_real): use access() instead of
+ access_internal().
+ * file.c (rb_file_writable_real): ditto.
+ * file.c (rb_file_executable_real): ditto.
+
+Thu Feb 21 13:04:59 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * file.c (eaccess): use access() when not using setuid nor setgid.
+ This is minor optimization.
+
+Thu Feb 21 12:56:19 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * file.c (rb_group_member): get rid of NGROUPS dependency.
+ [Bug #7886] [ruby-core:52537]
+
+Thu Feb 21 12:45:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ruby.c (ruby_init_loadpath_safe): try two levels upper for stripping
+ libdir name. [Bug #7874]
+
+ * configure.in (libdir_basename): expand with multiarch in configure,
+ not to defer the expansion till ruby.pc.in and mkmf.rb. [Bug #7874]
+
+ * configure.in (libdir_basename): also -rpath and -install_name flags
+ are affected when libruby directory changes. [Bug #7874]
+
+Wed Feb 20 19:27:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * include/ruby/ruby.h (HAVE_RB_SCAN_ARGS_OPTIONAL_HASH): for
+ rb_scan_args() optional hash feature. [Bug #7861]
+
+Wed Feb 20 18:02:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (target_os): do not strip -gnu suffix on Linux if
+ --target is given explicitly. [Bug #7874]
+
+ * configure.in (libdirname): adjust library path name which libruby
+ files will be installed. [Bug #7874]
+
+ * tool/rbinstall.rb (libdir): ditto.
+
+Wed Feb 20 13:37:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * ext/pty/pty.c: Documentation for the PTY module
+
+Wed Feb 20 12:18:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * object.c: Document Data class [Bug #7890] [ruby-core:52549]
+ Patch by Matthew Mongeau
+
+Wed Feb 20 11:50:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * lib/mutex_m.rb: Add rdoc for Mutex_m module
+
+Wed Feb 20 09:34:43 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/commands/update_command.rb: Create the installer after
+ options are processed. [ruby-trunk - Bug #7779]
+ * test/rubygems/test_gem_commands_update_command.rb: Test for the
+ above.
+
+Wed Feb 20 07:51:19 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/installer.rb: Use gsub instead of gsub! to avoid
+ altering @bin_dir. Fixes tests on windows. [ruby-trunk - Bug #7885]
+
+Tue Feb 19 20:50:00 2013 Kenta MURATA <mrkn@mrkn.jp>
+
+ * ext/bigdecimal/bigdecimal.gemspec: bump to 1.2.0.
+ [ruby-core:51777] [Bug #7761]
+
+Tue Feb 19 13:07:25 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * ext/syslog/syslog.c (Init_syslog): Define inspect as a singleton
+ method and remove it as an instance method. [Bug #6502]
+
+Tue Feb 19 12:30:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * object.c: rdoc formatting for Kernel#Array()
+ * array.c: Add rdoc for Array() method to Creating Arrays section
+
+Tue Feb 19 10:35:52 2013 Eric Hodel <drbrain@segment7.net>
+
+ * ext/openssl/ossl.c (class OpenSSL): Use only inner parenthesis in
+ create_extension examples.
+
+Tue Feb 19 10:27:12 2013 Eric Hodel <drbrain@segment7.net>
+
+ * ext/openssl/ossl.c (class OpenSSL): Fixed ExtensionFactory example.
+ Patch by Richard Bradley. [ruby-trunk - Bug #7551]
+
+Tue Feb 19 08:32:11 2013 Koichi Sasada <ko1@atdot.net>
+
+ * vm_eval.c (vm_call0_body): check interrupts after method dispatch
+ from C methods. [Bug #7878]
+
+Tue Feb 19 08:14:40 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/installer.rb: Fixed placement of executables with
+ --user-install. [ruby-trunk - Bug #7779]
+ * test/rubygems/test_gem_installer.rb: Test for above.
+
+Tue Feb 19 06:04:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * vm_dump: FreeBSD ports' libexecinfo's backtrace(3) can't trace
+ beyond signal trampoline, and as described in r38342 it can't
+ trace on -O because it see stack frame pointers.
+ libunwind unw_backtrace see dwarf information in the binary
+ and it works with -O (without frame pointers).
+
+ * configure.in: remove r38342's hack and check libunwind.
+
+Tue Feb 19 04:26:29 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * configure.in: check whether backtrace(3) works well or not.
+
+ * vm_dump.c: set HAVE_BACKTRACE 0 if BROKEN_BACKTRACE.
+
+Mon Feb 18 16:30:18 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * lib/ipaddr.rb (IPAddr#in6_addr): Fix a typo with the closing
+ parenthesis.
+
+Mon Feb 18 12:32:24 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * lib/ipaddr.rb (IPAddr#in6_addr): Fix the parser so that it can
+ recognize IPv6 addresses with only one edge 16-bit piece
+ compressed, like [::2:3:4:5:6:7:8] or [1:2:3:4:5:6:7::].
+ [Bug #7477]
+
+Mon Feb 18 10:09:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (unexpand_shvar): regularize a shell variable by
+ unexpanding shell variables in it.
+
+Sun Feb 17 20:55:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * compar.c (rb_invcmp): compare by inversed comparison, with preventing
+ from infinite recursion. [ruby-core:52305] [Bug #7870]
+
+ * string.c (rb_str_cmp_m), time.c (time_cmp): get rid of infinite
+ recursion.
+
+Sun Feb 17 17:23:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb: remove extra topdir in VPATH, which was in
+ win32/Makefile.sub for some reason and moved from there.
+ [ruby-dev:46998] [Bug #7864]
+
+Sun Feb 17 01:19:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * ext/psych/lib/psych/y.rb: Document Kernel#y by Adam Stankiewicz
+ [Github tenderlove/psych#127]
+
+Sun Feb 17 00:52:14 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * tool/mkconfig.rb: remove prefix from rubyarchdir.
+ r39267 expands variables, it changes expansion timing,
+ breaks RbConfig::CONFIG["includedir"] and building
+ extension libraries with installed ruby.
+
+Sat Feb 16 20:51:17 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * vm.c (ENV_IN_HEAP_P): fix off-by-one error.
+
+Sat Feb 16 20:47:16 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * configure.in (LIBRUBY_DLDFLAGS): Fix a bug where --with-opt-dir
+ options given were not reflected to LIBRUBY_DLDFLAGS on many
+ platforms including Linux and other GNU-based systems, NetBSD,
+ AIX and BeOS.
+
+Sat Feb 16 20:43:20 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/ancdata.c (rsock_recvmsg): ignore truncated part of
+ socket address returned from recvmsg().
+
+ * ext/socket/init.c (recvfrom_blocking): ignore truncated part of
+ socket address returned from recvfrom().
+ (rsock_s_recvfrom_nonblock): ditto.
+
+Sat Feb 16 20:05:26 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
+
+ * test/ruby/test_thread.rb: fixed typo
+ patched by Hiroki Matsue via https://github.com/ruby/ruby/pull/248
+
+Sat Feb 16 16:08:35 2013 Koichi Sasada <ko1@atdot.net>
+
+ * vm.c (rb_thread_mark): mark a working Proc of bmethod
+ (a method defined by define_method) even if the method was removed.
+ We could not trace working Proc object which represents the body
+ of bmethod if the method was removed (alias/undef/overridden).
+ Simply, it was mark miss.
+ This patch by Kazuki Tsujimoto. [Bug #7825]
+
+ NOTE: We can brush up this marking because we do not need to mark
+ `me' on each living control frame. We need to mark `me's
+ only if `me' was free'ed. This is future work after Ruby 2.0.0.
+
+ * test/ruby/test_method.rb: add a test.
+
+Sat Feb 16 15:45:56 2013 Koichi Sasada <ko1@atdot.net>
+
+ * proc.c (rb_binding_new_with_cfp): create binding object even if
+ the frame is IFUNC. But return a ruby-level binding to keep
+ compatibility.
+ This patch fix degradation introduced from r39067.
+ [Bug #7774] [ruby-dev:46960]
+
+ * test/ruby/test_settracefunc.rb: add a test.
+
+Sat Feb 16 13:40:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (shvar_to_cpp): do not substitute exec_prefix itself
+ with RUBY_EXEC_PREFIX, which cause recursive definition.
+ [ruby-core:52296] [Bug #7860]
+
+Sat Feb 16 13:13:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/io/console/io-console.gemspec: bump to 0.4.2. now explicitly
+ requires ruby 1.9.3 or later. [Bug #7847]
+
+ * ext/io/console/console.c (console_dev): compatibility with ruby 1.8.
+
+ * ext/io/console/console.c (rawmode_opt, console_dev): compatibility
+ with ruby 1.9. [ruby-core:52220] [Bug #7847]
+
+Sat Feb 16 12:45:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in: unexpand arch sitearch and exec_prefix values, so
+ directly specified bindir, libdir, rubyprefix, etc can be properly
+ substituted. [ruby-core:52296] [Bug #7860]
+
+Sat Feb 16 12:15:20 2013 Aaron Patterson <aaron@tenderlovemaking.com>
+
+ * parse.y: add dtrace probe for symbol create.
+
+ * probes.d: ditto
+
+Sat Feb 16 09:27:37 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: don't test sys/feature_tests.h which is not
+ used now.
+ It was included in r7901 as "bug of gcc 3.0 on Solaris 8 ?".
+
+Sat Feb 16 09:24:37 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: reorder header tests to consider inclusion
+ order in rubysocket.h.
+
+Sat Feb 16 08:42:58 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in, ext/socket/extconf.rb: test netinet/in_systm.h in
+ ext/socket/extconf.rb instead of configure.in.
+
+ Originally, netinet/in_systm.h is included for NextStep, OpenStep,
+ and Rhapsody. [ruby-core:1596]
+
+Sat Feb 16 07:55:40 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: don't test xti.h here.
+
+ * ext/socket/extconf.rb: test xti.h here.
+
+ Originally, xti.h is included for IRIX [ruby-core:14447].
+
+Sat Feb 16 07:16:49 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: test struct sockaddr_un and its member,
+ sun_len.
+
+ * ext/socket/sockport.h (INIT_SOCKADDR_UN): new macro defined.
+
+ * ext/socket/socket.c (sock_s_pack_sockaddr_un): use INIT_SOCKADDR_UN.
+
+ * ext/socket/unixsocket.c (rsock_init_unixsock): ditto.
+
+ * ext/socket/raddrinfo.c (init_unix_addrinfo): ditto.
+ (addrinfo_mload): ditto.
+
+Sat Feb 16 07:05:59 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/sockport.h (INIT_SOCKADDR_IN): don't need family
+ argument. it is always AF_INET.
+
+ * ext/socket/raddrinfo.c (make_inetaddr): follow INIT_SOCKADDR_IN
+ change.
+ (addrinfo_ipv6_to_ipv4): ditto.
+
+Sat Feb 16 04:21:07 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * ext/socket/extconf.rb: workaround for mswin/mingw build problem.
+ sendmsg emulation in win32/win32.c is not enough.
+
+Sat Feb 16 00:19:20 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: use all all tested available headers for
+ have_func.
+
+Fri Feb 15 22:21:37 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * configure.in: Fix a bug introduced in r38342 that the cflagspat
+ substitution is messed up by the way CFLAGS and optflags are
+ modified, which affected FreeBSD and NetBSD/amd64 when
+ configured to use libexecinfo. This bug resulted in CFLAGS and
+ CXXFLAGS in RbConfig::CONFIG having warnflags expanded in them,
+ forcing third-party C/C++ extensions to follow what warnflags
+ demands, like ANSI/ISO-C90 conformance. ref [Bug #7101]
+
+Fri Feb 15 20:29:11 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/sockport.h (SET_SIN_LEN): defined for strict-aliasing
+ rule.
+ (INIT_SOCKADDR_IN): ditto.
+
+ * ext/socket/raddrinfo.c (make_inetaddr): use INIT_SOCKADDR_IN.
+ (addrinfo_ipv6_to_ipv4): ditto.
+
+Fri Feb 15 18:24:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (MakeMakefile#try_run): bail out explicitly if cross
+ compiling, because it cannot work of course.
+
+Fri Feb 15 12:34:58 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: test struct sockaddr_storage directly.
+
+ * ext/socket/rubysocket.h: use HAVE_TYPE_STRUCT_SOCKADDR_STORAGE.
+
+Fri Feb 15 12:26:13 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/getaddrinfo.c (GET_AI): don't cast 1st argument for
+ INIT_SOCKADDR.
+
+Fri Feb 15 08:12:11 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/sockport.h (SET_SS_LEN): removed.
+ (SET_SIN_LEN): removed.
+ (INIT_SOCKADDR): new macro.
+
+ * ext/socket/ancdata.c (extract_ipv6_pktinfo): use INIT_SOCKADDR.
+
+ * ext/socket/raddrinfo.c (make_inetaddr): use INIT_SOCKADDR.
+ (addrinfo_ipv6_to_ipv4): ditto.
+
+ * ext/socket/getaddrinfo.c (GET_AI): use INIT_SOCKADDR.
+
+Fri Feb 15 07:49:27 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rdoc.rb: Update to release version of 4.0.0
+
+ * lib/rubygems.rb: Update to release version of 2.0.0
+
+Fri Feb 15 07:07:27 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/sockport.h (SA_LEN): removed because unused now.
+ (SS_LEN): ditto.
+ (SIN_LEN): ditto.
+
+Thu Feb 14 10:45:31 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * test/ruby/test_process.rb (test_setsid): Added a workaround for
+ MacOS X. Patch by nagachika. [Bug #7826] [ruby-core:52126]
+
+Fri Feb 15 00:15:31 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/sockport.h (VALIDATE_SOCKLEN): new macro to validate
+ sa_len member of 4.4BSD socket address.
+
+ * ext/socket/getnameinfo.c (getnameinfo): use VALIDATE_SOCKLEN,
+ instead of SA_LEN.
+
+ * ext/socket/socket.c (sock_s_getnameinfo): use VALIDATE_SOCKLEN
+ instead of SS_LEN.
+
+Thu Feb 14 22:25:54 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/socket.c (sockaddr_len): extracted from sockaddr_obj.
+ (sockaddr_obj): add an argument to length of socket address.
+ (socket_s_ip_address_list): call sockaddr_obj with actual socket
+ address length if given, use sockaddr_len otherwise.
+
+Thu Feb 14 20:11:23 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket: always operate length of socket address companion with
+ socket address.
+
+ * ext/socket/rubysocket.h (rsock_make_ipaddr): add an argument for
+ socket address length.
+ (rsock_ipaddr): ditto.
+
+ * ext/socket/ipsocket.c (ip_addr): pass length to rsock_ipaddr.
+ (ip_peeraddr): ditto.
+ (ip_s_getaddress): pass length to rsock_make_ipaddr.
+
+ * ext/socket/socket.c (make_addrinfo): pass length to rsock_ipaddr.
+ (sock_s_getnameinfo): pass actual address length to rb_getnameinfo.
+ (sock_s_unpack_sockaddr_in): pass length to rsock_make_ipaddr.
+
+ * ext/socket/init.c (rsock_s_recvfrom): pass length to rsock_ipaddr.
+ (rsock_s_recvfrom_nonblock): ditto.
+
+ * ext/socket/tcpsocket.c (tcp_sockaddr): pass length to
+ rsock_make_ipaddr.
+
+ * ext/socket/raddrinfo.c (make_ipaddr0): add an argument for socket
+ address length. pass the length to rb_getnameinfo.
+ (rsock_ipaddr): ditto.
+ (rsock_make_ipaddr): add an argument for socket address length.
+ pass the length to make_ipaddr0.
+ (make_inetaddr): pass length to make_ipaddr0.
+ a local variable renamed.
+ (host_str): a local variable renamed.
+ (port_str): ditto.
+
+Thu Feb 14 14:31:43 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/net/http.rb: Removed OpenSSL dependency from Net::HTTP.
+
+ * test/net/http/test_http.rb: Remove Zlib dependency from tests.
+ * test/net/http/test_http_request.rb: ditto.
+
+Thu Feb 14 11:08:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * class.c (include_modules_at): detect cyclic prepend with original
+ method table. [ruby-core:52205] [Bug #7841]
+
+Thu Feb 14 10:30:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * vm_method.c: call method_removed hook on called class, not on
+ prepending iclass. [ruby-core:52207] [Bug #7843]
+
+Thu Feb 14 10:05:57 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/net/http: Do not handle Content-Encoding when the user sets
+ Accept-Encoding. This allows users to handle Content-Encoding for
+ themselves. This restores backwards-compatibility with Ruby 1.x.
+ [ruby-trunk - Bug #7831]
+ * lib/net/http/generic_request.rb: ditto.
+ * lib/net/http/response.rb: ditto
+ * test/net/http/test_http.rb: Test for the above.
+ * test/net/http/test_http_request.rb: ditto.
+ * test/net/http/test_httpresponse.rb: ditto.
+
+Thu Feb 14 08:18:47 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: don't define HAVE_SA_LEN and HAVE_SA_LEN.
+ use HAVE_STRUCT_SOCKADDR_SA_LEN and HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
+ instead.
+
+Wed Feb 13 20:59:48 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: don't define socklen_t here, just test.
+
+ * ext/socket/rubysocket.h: define socklen_t if not available.
+
+Wed Feb 13 18:37:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * proc.c (mnew): skip prepending modules and return the method bound
+ on the given class. [ruby-core:52160] [Bug #7836]
+
+Wed Feb 13 18:11:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * proc.c (method_original_name): new methods Method#original_name and
+ UnboundMethod#original_name. [ruby-core:52048] [Bug #7806]
+ [EXPERIMENTAL]
+
+ * proc.c (method_inspect): show the given name primarily, and
+ original_id if aliased. [ruby-core:52048] [Bug #7806]
+
+Wed Feb 13 17:56:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (warnflags): disable -Werror by default unless
+ development. [ruby-core:52131] [Bug #7830]
+
+Wed Feb 13 06:05:52 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems.rb: Return BINARY strings from Gem.gzip and Gem.gunzip.
+ Fixes intermittent test failures. RubyGems issue #450 by Jeremey
+ Kemper.
+ * test/rubygems/test_gem.rb: Test for the above.
+
+Wed Feb 13 05:49:21 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: test functions just after struct members.
+
+Tue Feb 12 12:02:35 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * ext/json: merge JSON 1.7.7.
+ This includes security fix. [CVE-2013-0269]
+ https://github.com/flori/json/commit/d0a62f3ced7560daba2ad546d83f0479a5ae2cf2
+ https://groups.google.com/d/topic/rubyonrails-security/4_YvCpLzL58/discussion
+
+Mon Feb 11 23:08:48 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: enable rb_cv_page_size_log test for MirOS BSD.
+
+Mon Feb 11 20:06:38 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: use -pthread on mirbsd*.
+
+Mon Feb 11 16:07:09 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: add SOLIBS and LIBRUBY_SO definition for mirbsd*.
+
+Mon Feb 11 13:17:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (rubysitearchprefix): sitearchdir and vendorarchdir
+ should use sitearch, not arch. [ruby-dev:46964] [Bug #7823]
+
+ * win32/Makefile.sub (config.status): site and vendor directories
+ should use sitearch, not arch. [ruby-dev:46964] [Bug #7823]
+
+Mon Feb 11 12:31:25 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: move OS specific header/function knowledge before
+ automatic header tests.
+
+Mon Feb 11 11:04:29 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: move the test for -march=i486 just after
+ RUBY_UNIVERSAL_ARCH/RUBY_DEFAULT_ARCH.
+
+Sun Feb 10 23:42:26 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: test structure members just after types test.
+
+Sun Feb 10 20:58:17 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: test types just after headers test.
+
+Sun Feb 10 16:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * lib/rake/doc/MIT-LICENSE: Add license file from upstream
+ * lib/rake/doc/README.rdoc: Link to license file from Rake README
+ * lib/rake/version.rb: Include README rdoc for Rake module overview
+
+Sun Feb 10 15:26:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * lib/rake/doc/*: Sync Rake rdoc files from upstream
+
+Sun Feb 10 15:50:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * vm_exec.h (DISPATCH_ARCH_DEPEND_WAY): use __asm__ __volatile__
+ instead of asm volatile.
+
+Sun Feb 10 15:50:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * gc.h (SET_MACHINE_STACK_END): use __volatile__ instead of volatile.
+
+Sun Feb 10 14:25:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * doc/rake/, lib/rake/doc/: Move Rake rdoc files to lib/rake
+
+Sun Feb 10 12:10:25 2013 Tanaka Akira <akr@fsij.org>
+
+ * ext/socket/extconf.rb: test headers at first.
+
+Sun Feb 10 12:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * doc/rake/*: Removed stale Rake static files
+
+Sun Feb 10 09:10:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * lib/pp.rb, lib/prettyprint.rb: Documentation for PP and PrettyPrint
+ Based on a patch by Vincent Batts [ruby-core:51253] [Bug #7656]
+
+Sat Feb 9 21:11:21 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: move header files check to the beginning of
+ "header and library section".
+ test rlim_t with sys/types.h and sys/time.h for MirOS BSD.
+ sys/types.h and sys/time.h is guarded by #ifdef and the above
+ move is required for this change.
+
+Sat Feb 9 17:45:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in, version.c: prevent duplicated load paths by empty
+ version string, it does not work right now.
+
+Sat Feb 9 17:38:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in: fix arch parameters in help message. [Bug #7804]
+
+Sat Feb 9 13:13:00 2013 Zachary Scott <zachary@zacharyscott.net>
+
+ * vm_trace.c: Note about TracePoint events set, and comment on
+ Kernel#set_trace_func to prefer new TracePoint API
+
+Sat Feb 9 10:07:47 2013 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * BSDL: update copyright notice for 2013.
+
+Sat Feb 9 09:24:38 2013 Eric Hodel <drbrain@segment7.net>
+
+ * lib/rubygems/package/old.rb: Fix behavior only on ruby 1.8.
+
+ * lib/rubygems/package.rb: Include checksums.yaml.gz signatures for
+ verification.
+ * test/rubygems/test_gem_package.rb: Test for the above.
+
+Sat Feb 9 01:23:24 2013 Tanaka Akira <akr@fsij.org>
+
+ * test/fiddle/helper.rb: specify libc and libm locations for MirOS BSD.
+
+ * test/dl/test_base.rb: ditto.
+
+Fri Feb 8 23:25:33 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: change CFLAGS temporally to test
+ ARCH_FLAG="-march=i486".
+
+Fri Feb 8 21:19:41 2013 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: don't define ARCH_FLAG="-march=i486" if it causes
+ compilation problem.
-For the changes before 2.1.0, see doc/ChangeLog-2.1.0
For the changes before 2.0.0, see doc/ChangeLog-2.0.0
For the changes before 1.9.3, see doc/ChangeLog-1.9.3
For the changes before 1.8.0, see doc/ChangeLog-1.8.0
diff --git a/LEGAL b/LEGAL
index 24e36e6231..65706459cd 100644
--- a/LEGAL
+++ b/LEGAL
@@ -5,37 +5,6 @@ All the files in this distribution are covered under either the Ruby's
license (see the file COPYING) or public-domain except some files
mentioned below.
-ccan/build_assert/build_assert.h
-ccan/check_type/check_type.h
-ccan/container_of/container_of.h
-ccan/str/str.h
-
- These files are licensed under the CC0.
-
- http://creativecommons.org/choose/zero/
-
-ccan/list/list.h
-
- This file is licensed under the MIT License.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-
include/ruby/oniguruma.h:
regcomp.c:
regenc.[ch]:
@@ -87,7 +56,7 @@ http://www.geocities.jp/kosako3/oniguruma/
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/oniguruma/
http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/oniguruma/
- When this software is partly used or it is distributed with Ruby,
+ When this software is partly used or it is distributed with Ruby,
this of Ruby follows the license of Ruby.
configure:
@@ -129,7 +98,7 @@ tool/config.sub:
parse.c:
- This file is licensed under the GPL, but is incorporated into Ruby and
+ This file is licensed under the GPL, but is incorporated into Ruby and
redistributed under the terms of the Ruby license, as permitted by the
exception to the GPL below.
@@ -224,11 +193,11 @@ random.c
This is a faster version by taking Shawn Cokus's optimization,
Matthe Bellew's simplification, Isaku Wada's real version.
- Before using, initialize the state by using init_genrand(seed)
+ Before using, initialize the state by using init_genrand(seed)
or init_by_array(init_key, key_length).
Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
- All rights reserved.
+ All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -241,8 +210,8 @@ random.c
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- 3. The names of its contributors may not be used to endorse or promote
- products derived from this software without specific prior written
+ 3. The names of its contributors may not be used to endorse or promote
+ products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
@@ -262,34 +231,6 @@ random.c
http://www.math.keio.ac.jp/matumoto/emt.html
email: matumoto@math.keio.ac.jp
-vm_dump.c:procstat_vm
-
- * Copyright (c) 2007 Robert N. M. Watson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: head/usr.bin/procstat/procstat_vm.c 261780 2014-02-11 21:57:37Z jhb $
-
vsnprintf.c:
This file is under the old-style BSD license. Note that the
@@ -535,7 +476,7 @@ ext/nkf/nkf-utf8/utf8tbl.c:
copyrighted semi-public-domain software.
Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)
- Everyone is permitted to do anything on this program
+ Everyone is permitted to do anything on this program
including copying, modifying, improving,
as long as you don't try to pretend that you wrote it.
i.e., the above copyright notice has to appear in all copies.
@@ -586,7 +527,7 @@ ext/win32ole/win32ole.c:
Other modifications Copyright (c) 1997, 1998 by Gurusamy Sarathy
<gsar@umich.edu> and Jan Dubois <jan.dubois@ibm.net>
-
+
You may distribute under the terms of either the GNU General Public
License or the Artistic License, as specified in the README file
of the Perl distribution.
diff --git a/Makefile.in b/Makefile.in
index 7da2488b46..d3313bea2e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
SHELL = /bin/sh
NULLCMD = @NULLCMD@
n=$(NULLCMD)
-ECHO1 = $(V:1=$n)
+ECHO1 = $(V:1=@$n)
RUNCMD = $(SHELL)
CDPATH = .
CHDIR = @CHDIR@
@@ -25,7 +25,6 @@ AUTOCONF = autoconf
@SET_MAKE@
MKFILES = @MAKEFILES@
BASERUBY = @BASERUBY@
-HAVE_BASERUBY = @HAVE_BASERUBY@
TEST_RUNNABLE = @TEST_RUNNABLE@
CROSS_COMPILING = @CROSS_COMPILING@
DOXYGEN = @DOXYGEN@
@@ -58,8 +57,7 @@ CC_VERSION = @CC_VERSION@
OUTFLAG = @OUTFLAG@$(empty)
COUTFLAG = @COUTFLAG@$(empty)
ARCH_FLAG = @ARCH_FLAG@
-CFLAGS_NO_ARCH = @CFLAGS@
-CFLAGS = $(CFLAGS_NO_ARCH) $(ARCH_FLAG)
+CFLAGS = @CFLAGS@ $(ARCH_FLAG)
cflags = @cflags@
optflags = @optflags@
debugflags = @debugflags@
@@ -91,6 +89,7 @@ RUBY_BASE_NAME=@RUBY_BASE_NAME@
RUBY_PROGRAM_VERSION=@RUBY_PROGRAM_VERSION@
RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@
RUBY_SO_NAME=@RUBY_SO_NAME@
+RUBY_RELEASE_DATE=@RUBY_RELEASE_DATE@
EXEEXT = @EXEEXT@
LIBEXT = @LIBEXT@
PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
@@ -114,6 +113,8 @@ XRUBY_LIBDIR = @XRUBY_LIBDIR@
XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@
XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@
+DEFAULT_PRELUDES = $(GEM_PRELUDE)
+
#### End of system configuration section. ####
MAJOR= @MAJOR@
@@ -130,26 +131,12 @@ LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
LIBRUBY_RELATIVE = @LIBRUBY_RELATIVE@
LIBRUBY_A_OBJS = @LIBRUBY_A_OBJS@
-DTRACE_REBUILD_OBJS = $(DTRACE_REBUILD:yes=$(DTRACE_DEPENDENT_OBJS))
-
-DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \
- eval.$(OBJEXT) \
- gc.$(OBJEXT) \
- hash.$(OBJEXT) \
- load.$(OBJEXT) \
- object.$(OBJEXT) \
- parse.$(OBJEXT) \
- string.$(OBJEXT) \
- symbol.$(OBJEXT) \
- vm.$(OBJEXT)
-
THREAD_MODEL = @THREAD_MODEL@
PREP = @PREP@
ARCHFILE = @ARCHFILE@
SETUP =
EXTSTATIC = @EXTSTATIC@
-ENCSTATIC = @ENCSTATIC@
SET_LC_MESSAGES = env LC_MESSAGES=C
MAKEDIRS = @MKDIR_P@
@@ -173,9 +160,8 @@ VCS = @VCS@
VCSUP = @VCSUP@
DTRACE = @DTRACE@
DTRACE_EXT = @DTRACE_EXT@
-DTRACE_OBJ = @DTRACE_OBJ@
-DTRACE_REBUILD= @DTRACE_REBUILD@
-DTRACE_GLOMMED_OBJ = $(DTRACE_REBUILD:yes=ruby-glommed.$(OBJEXT))
+DTRACE_OBJ = @DTRACE_OBJ@
+DTRACE_GLOMMED_OBJ = @DTRACE_GLOMMED_OBJ@
OBJEXT = @OBJEXT@
ASMEXT = S
@@ -185,9 +171,10 @@ SYMBOL_PREFIX = @SYMBOL_PREFIX@
INSTALLED_LIST= .installed.list
+MKMAIN_CMD = mkmain.sh
+
NEWLINE_C = newline.c
MINIPRELUDE_C = miniprelude.c
-PRELUDE_C = prelude.c
RBCONFIG = .rbconfig.time
SRC_FILE = $<
@@ -200,8 +187,6 @@ MESSAGE_END = ; do echo "$$line"; done
ECHO_BEGIN = @sep=''; for word in
ECHO_END = ; do echo @ECHO_N@ "$$sep'$$word'@ECHO_C@"; sep=' '; done; echo
-DESTDIR = @DESTDIR@
-
configure_args = @configure_args@
#### End of variables
@@ -209,13 +194,15 @@ configure_args = @configure_args@
all:
+.DEFAULT: all
+
# Prevent GNU make v3 from overflowing arg limit on SysV.
.NOEXPORT:
miniruby$(EXEEXT):
@-if test -f $@; then $(MV) -f $@ $@.old; $(RM) $@.old; fi
$(ECHO) linking $@
- $(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@
+ $(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(DTRACE_OBJ) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@
$(PROGRAM):
@$(RM) $@
@@ -229,7 +216,7 @@ $(PROGRAM):
$(LIBRUBY_A):
@$(RM) $@
$(ECHO) linking static-library $@
- $(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(INITOBJS)
+ $(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(DMYEXT)
@-$(RANLIB) $@ 2> /dev/null || true
$(ECHO) verifying static-library $@
@$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)conftest$(EXEEXT)
@@ -238,7 +225,7 @@ $(LIBRUBY_A):
$(LIBRUBY_SO):
@-$(PRE_LIBRUBY_UPDATE)
$(ECHO) linking shared-library $@
- $(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@
+ $(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(DTRACE_OBJ) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@
-$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)*_threadptr_*' $@
$(Q) $(POSTLINK)
@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link rescue nil; \
@@ -271,7 +258,7 @@ install-cross: $(arch)-fake.rb $(RBCONFIG) rbconfig.rb $(arch_hdrdir)/ruby/confi
Makefile: $(srcdir)/Makefile.in $(srcdir)/enc/Makefile.in
-$(MKFILES): config.status $(srcdir)/version.h
+$(MKFILES): config.status
@[ -f $@ ] && mv $@ $@.old
MAKE=$(MAKE) $(SHELL) ./config.status $@
@cmp $@ $@.old > /dev/null 2>&1 && echo $@ unchanged && exit 0; \
@@ -342,22 +329,6 @@ enc/unicode/name2ctype.h: enc/unicode/name2ctype.kwd
$(CP) $@ $(?:.kwd=.h.blt); \
fi
-JIS_PROPS_OPTIONS = -k1,3 -7 -c -j1 -i1 -t -C -P -t --ignore-case -H onig_jis_property_hash -Q onig_jis_property_pool -N onig_jis_property
-
-enc/jis/props.h: enc/jis/props.kwd
- $(MAKEDIRS) $(@D)
- @set +e; \
- if cmp -s $(?:.kwd=.src) $?; then \
- set -x; \
- $(CP) $(?:.kwd=.h.blt) $@; \
- else \
- set -x; \
- gperf $(JIS_PROPS_OPTIONS) $? | \
- sed 's/(int)(long)&((\([a-zA-Z_0-9 ]*[a-zA-Z_0-9]\) *\*)0)->\([a-zA-Z0-9_]*\),/(char)offsetof(\1, \2),/g' > $@ && \
- $(CP) $? $(?:.kwd=.src) && \
- $(CP) $@ $(?:.kwd=.h.blt); \
- fi
-
.c.@OBJEXT@:
@$(ECHO) compiling $<
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
@@ -384,24 +355,25 @@ enc/jis/props.h: enc/jis/props.kwd
@$(ECHO) copying dummy $(DEST_FILE)
$(Q) $(CP) $(OS_SRC_FILE) $(OS_DEST_FILE)
-probes.stamp: $(DTRACE_REBUILD_OBJS)
- $(Q) if test -f $@ -o -f probes.$(OBJEXT); then \
- $(RM) $(DTRACE_REBUILD_OBJS) $@; \
- $(ECHO0) "rebuilding objects which were modified by \"dtrace -G\""; \
- $(MAKE) $(DTRACE_REBUILD_OBJS); \
- fi
- $(Q) touch $@
-
-probes.@OBJEXT@: $(srcdir)/probes.d probes.stamp
+probes.@OBJEXT@: $(srcdir)/probes.d
@$(ECHO) processing probes in object files
- $(Q) $(RM) $@
- $(Q) $(DTRACE) -G -C $(INCFLAGS) -s $(srcdir)/probes.d -o $@ $(DTRACE_REBUILD_OBJS)
+ $(Q) stamp="$*.stamp"; \
+ if test -f "$$stamp" -o -f "$@"; then \
+ $(RM) $(DTRACE_DEPENDENT_OBJS) "$$stamp"; \
+ for o in $(DTRACE_DEPENDENT_OBJS); do \
+ echo "rebuilding $$o which was modified by \"dtrace -G\""; \
+ $(MAKE) "$$o"; \
+ done; \
+ fi; \
+ touch "$$stamp"
+ $(RM) $@
+ $(Q) $(DTRACE) -G -C $(INCFLAGS) -s $(srcdir)/probes.d -o $@ $(DTRACE_DEPENDENT_OBJS)
# DTrace static library hacks described here:
# http://mail.opensolaris.org/pipermail/dtrace-discuss/2005-August/000207.html
ruby-glommed.$(OBJEXT):
@$(ECHO) generating a glommed object with DTrace probes for static library
- $(Q) $(LD) -r -o $@ $(OBJS)
+ $(Q) $(LD) -r -o $@ $(OBJS) $(DTRACE_OBJ)
clean-local::
$(Q)$(RM) ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output \
@@ -436,12 +408,24 @@ distclean-ext realclean-ext::
-$(Q)$(RMDIR) ext 2> /dev/null || true
clean-extout:
+ -$(Q)$(RMDIRS) $(EXTOUT) 2> /dev/null || true
clean-enc distclean-enc realclean-enc:
@test -f "$(ENC_MK)" || exit 0; \
echo $(@:-enc=ing) encodings; \
exec $(MAKE) -f $(ENC_MK) $(MFLAGS) $(@:-enc=)
+clean-rdoc distclean-rdoc realclean-rdoc:
+ @echo $(@:-rdoc=ing) rdoc
+ $(Q)$(RMALL) $(RDOCOUT)
+clean-capi distclean-capi realclean-capi:
+ @echo $(@:-capi=ing) capi
+ $(Q)$(RMALL) $(CAPIOUT)
+
+clean-platform:
+ @$(RM) $(PLATFORM_D)
+ -$(Q) $(RMDIR) $(PLATFORM_DIR) 2> /dev/null || true
+
ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)
$(ECHO) compiling $@
$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c
@@ -451,7 +435,10 @@ enc/encinit.$(OBJEXT): enc/encinit.c $(SETUP)
up::
@$(CHDIR) "$(srcdir)" && LC_TIME=C exec $(VCSUP)
-after-update:: update-config_files common-srcs
+up::
+ -$(Q)$(MAKE) $(MFLAGS) after-update
+
+after-update:: update-config_files
update-mspec:
@$(CHDIR) $(srcdir); \
@@ -478,17 +465,6 @@ update-rubyspec: update-mspec
test-rubyspec-precheck:
@if [ ! -d $(srcdir)/spec/rubyspec ]; then echo No rubyspec here. make update-rubyspec first.; exit 1; fi
-update-coverage:
- @$(CHDIR) $(srcdir); \
- if [ -d coverage/simplecov ]; then \
- cd coverage/simplecov; \
- echo updating simplecov ...; \
- exec git pull; \
- else \
- echo retrieving simplecov ...; \
- exec git clone $(SIMPLECOV_GIT_URL) coverage/simplecov; \
- fi
-
INSNS = opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \
vmtc.inc vm.inc
@@ -498,8 +474,6 @@ $(INSNS): $(srcdir)/insns.def vm_opts.h \
$(ECHO) generating $@
$(Q) $(BASERUBY) -Ku $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@
-verconf.h: $(RBCONFIG)
-
loadpath: verconf.h
@$(CPP) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/loadpath.c | \
sed -e '1,/^const char ruby_initial_load_paths/d;/;/,$$d' \
diff --git a/NEWS b/NEWS
index 5ac07db507..afd15faf3b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
# -*- rdoc -*-
-= NEWS for Ruby 2.2.0
+= NEWS for Ruby 2.1.0
This document is a list of user visible feature changes made between
releases except for bug fixes.
@@ -9,355 +9,372 @@ Note that each entry is kept so brief that no reason behind or
reference information is supplied with. For a full list of changes
with all sufficient information, see the ChangeLog file.
-== Changes since the 2.1.0 release
+== Changes since the 2.0.0 release
=== Language changes
-* nil/true/false
- * nil/true/false objects are frozen. [Feature #8923]
+* Now the default values of keyword arguments can be omitted. Those
+ "required keyword arguments" need giving explicitly at the call time.
-* Hash literal
- * Symbol key followed by a colon can be quoted. [Feature #4276]
+* Added suffixes for integer and float literals: 'r', 'i', and 'ri'.
+ * "42r" and "3.14r" are evaluated as Rational(42, 1) and 3.14.rationalize,
+ respectively. But exponential form with 'r' suffix like "6.022e+23r" is
+ not accepted because it is misleading.
+ * "42i" and "3.14i" are evaluated as Complex(0, 42) and Complex(0, 3.14),
+ respectively.
+ * "42ri" and "3.14ri" are evaluated as Complex(0, 42r) and Complex(0, 3.14r),
+ respectively.
-* default argument
- fixed a very longstanding bug that an optional argument was not
- accessible in its default value expression. [Bug #9593]
+* def-expr now returns the symbol of its name instead of nil.
=== Core classes updates (outstanding ones only)
-* Binding
- * New methods:
- * Binding#local_variables
- * Binding#receiver
+* Array
+ * New methods
+ * Array#to_h converts an array of key-value pairs into a Hash.
-* Dir
- * New methods:
- * Dir#fileno
+* Binding
+ * New methods
+ * Binding#local_variable_get(symbol)
+ * Binding#local_variable_set(symbol, obj)
+ * Binding#local_variable_defined?(symbol)
* Enumerable
- * New methods:
- * Enumerable#slice_after
- * Enumerable#slice_when
- * Extended methods:
- * min, min_by, max and max_by supports optional argument to return
- multiple elements.
+ * New methods
+ * Enumerable#to_h converts a list of key-value pairs into a Hash.
-* Float
- * New methods:
- * Float#next_float
- * Float#prev_float
-
-* File
- * New methods:
- * File.birthtime
- * File#birthtime
-
-* File::Stat
- * New methods:
- * File::Stat#birthtime
+* Exception
+ * New methods
+ * Exception#cause provides the previous exception which has been caught
+ at where raising the new exception.
* GC
- * GC.latest_gc_info returns :state to represent current GC status.
- * Improvements
- * Introduce incremental marking for major GC. [Feature #10137]
+ * improvements:
+ * introduced the generational GC a.k.a RGenGC.
+ * added environment variables:
+ * RUBY_GC_HEAP_INIT_SLOTS
+ * RUBY_GC_HEAP_FREE_SLOTS
+ * RUBY_GC_HEAP_GROWTH_FACTOR
+ * RUBY_GC_HEAP_GROWTH_MAX_SLOTS
+ * RUBY_GC_MALLOC_LIMIT_MAX
+ * RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR
+ * RUBY_GC_OLDMALLOC_LIMIT
+ * RUBY_GC_OLDMALLOC_LIMIT_MAX
+ * RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR
+ * obsoleted environment variables:
+ * RUBY_FREE_MIN (Use RUBY_GC_HEAP_FREE_SLOTS instead)
+ * RUBY_HEAP_MIN_SLOTS (Use RUBY_GC_HEAP_INIT_SLOTS instead)
+
+* Integer
+ * New methods
+ * Fixnum#bit_length
+ * Bignum#bit_length
+ * Bignum performance improvement
+ * Use GMP if available.
+ GMP is used only for several operations:
+ multiplication, division, radix conversion, GCD
* IO
- * Improvements
- * IO#nonblock_read and IO#nonblock_write for pipes on Windows are supported.
+ * extended methods:
+ * IO#seek supports SEEK_DATA and SEEK_HOLE as whence.
+ * IO#seek accepts symbols (:CUR, :END, :SET, :DATA, :HOLE) for 2nd argument.
+ * IO#read_nonblock accepts optional `exception: false` to return symbols
+ * IO#write_nonblock accepts optional `exception: false` to return symbols
* Kernel
* New methods:
- * Kernel#itself
- * Improvements
- * Kernel#throw raises UncaughtThrowError, subclass of ArgumentError when
- there is no corresponding catch block, instead of ArgumentError.
+ * Kernel#singleton_method
+
+* Module
+ * New methods:
+ * Module#using, which activates refinements of the specified module only
+ in the current class or module definition.
+ * Module#singleton_class? returns true if the receiver is a singleton class
+ or false if it is an ordinary class or module.
+ * extended methods:
+ * Module#refine is no longer experimental.
+ * Module#include and Module#prepend are now public methods.
+
+* Mutex
+ * misc
+ * Mutex#owned? is no longer experimental.
+
+* Numeric
+ * extended methods:
+ * Numeric#step allows the limit argument to be omitted, in which
+ case an infinite sequence of numbers is generated. Keyword
+ arguments `to` and `by` are introduced for ease of use.
* Process
- * Extended method:
- * Process execution methods such as Process.spawn opens the file in write
- mode for redirect from [:out, :err].
+ * New methods:
+ * alternative methods to $0/$0=:
+ * Process.argv0() returns the original value of $0.
+ * Process.setproctitle() sets the process title without affecting $0.
+ * Process.clock_gettime
+ * Process.clock_getres
* String
+ * "literal".freeze is now optimized to return the same object
* New methods:
- * String#unicode_normalize
- * String#unicode_normalize!
- * String#unicode_normalized?
+ * String#scrub and String#scrub! verify and fix invalid byte sequence.
+ If you want to use this function with older Ruby,
+ consider to use string-scrub.gem.
* Symbol
- * Improvements
- * Most symbols which are returned by String#to_sym and
- String#intern are GC-able.
+ * All symbols are now frozen.
-* Method
- * New methods:
- * Method#curry([arity]) returns a curried Proc.
- * Method#super_method returns a Method of superclass, which would be called
- when super is used.
+* pack/unpack (Array/String)
+ * Q! and q! directives for long long type if platform has the type.
-=== Core classes compatibility issues (excluding feature bug fixes)
+* toplevel
+ * extended methods:
+ * main.using is no longer experimental. The method activates refinements
+ in the ancestors of the argument module to support refinement
+ inheritance by Module#include.
-* Enumerable
- * Enumerable#slice_before's state management deprecated.
- * Enumerable#chunk's state management deprecated.
+=== Core classes compatibility issues (excluding feature bug fixes)
-* GC
+* Dir
* incompatible changes:
- * Rename GC.stat entries. [Feature #9924]
- See https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing
+ * Dir#glob returns composed characters (previously Apple Modofied UTF-8).
* Hash
* incompatible changes:
- * Change overriding policy for duplicated key. [Bug #10315]
- { **hash1, **hash2 } contains values of hash2 for duplicated keys.
+ * Hash#reject will return plain Hash object in the future versions, that
+ is the original object's subclass, instance variables, default value,
+ and taintedness will be no longer copied, so now warnings are emitted
+ when called with such Hash.
* IO
* incompatible changes:
- * When flushing file IO with IO#flush, you cannot assume that the metadata
- of the file is updated immediately. On some platforms (especially
- Windows), it is delayed until the filesystem load is decreased.
- Use IO#fsync if you want to guarantee updating metadata.
- * IO#each_codepoint raises an exception at incomplete character
- before EOF when conversion takes place. [Bug #11444]
-
-* Math
- * incompatible changes:
- * Math.log now raises Math::DomainError instead of returning NaN if the
- base is less than 0, and returns NaN instead of -infinity if both of
- two arguments are 0.
- * Math.atan2 now returns values like as expected by C99 if both two
- arguments are infinity.
+ * open ignore internal encoding if external encoding is ASCII-8BIT.
-* Proc
- * incompatible changes:
- * ArgumentError is no longer raised when lambda Proc is passed as a
- block, and the number of yielded arguments does not match the formal
- arguments of the lambda, if just an array is yielded and its length
- matches.
+* Kernel#eval, Kernel#instance_eval, and Module#module_eval.
+ * Copies the scope information of the original environment, which means
+ that private, protected, public, and module_function without arguments
+ do not affect the environment outside the eval string.
+ For example, `class Foo; eval "private"; def foo; end; end' doesn't make
+ Foo#foo private.
-* Process
- * Process execution methods such as Process.spawn opens the file in write
- mode for redirect from [:out, :err].
- Before Ruby 2.2, it was opened in read mode.
+* Kernel#untrusted?, untrust, and trust
+ * These methods are deprecated and their behavior is same as tainted?,
+ taint, and untaint, respectively. If $VERBOSE is true, they show warnings.
-=== Stdlib updates (outstanding ones only)
+* Module#ancestors
+ * The ancestors of a singleton class now include singleton classes,
+ in particular itself.
-* Continuation
- * callcc is obsolete. use Fiber instead.
+* Module#define_method and Object#define_singleton_method
+ * Now they return the symbols of the defined methods, not the methods/procs
+ themselves.
-* Digest
+* Numeric#quo
+ * Raises TypeError instead of ArgumentError if the receiver doesn't have
+ to_r method.
- * Digest() should now be thread-safe. If you have a problem with
- regard to on-demand loading under a multi-threaded environment,
- preload "digest/*" modules on boot or use this method instead of
- directly referencing Digest::*.
- * Digest::HMAC has been removed just as previously noticed.
+* Proc
+ * Returning from lambda proc now always exits from the Proc, not from the
+ method where the lambda is created. Returning from non-lambda proc exits
+ from the method, same as the former behavior.
-* DL
- * DL has been removed from stdlib. Please use Fiddle instead!
+String
+ * If invalid: :replace is specified for String#encode, replace
+ invalid byte sequence even if the destination encoding equals to
+ the source encoding.
-* Etc
- * New methods:
- * Etc.uname
- * Etc.sysconf
- * Etc.confstr
- * IO#pathconf
- * Etc.nprocessors
+=== Stdlib updates (outstanding ones only)
+
+* CGI::Util
+ * All class methods modulized.
-* Find, Pathname
- * Extended methods:
- * find method accepts "ignore_error" keyword argument.
+* Digest
+ * extended methods:
+ * Digest::Class.file takes optional arguments for its constructor
* Matrix
- * New methods:
- * Matrix#first_minor(row, column) returns the submatrix obtained
- by deleting the specified row and column.
- * Matrix#cofactor(row, column) returns the (row, column) cofactor
- which is obtained by multiplying the first minor by (-1)**(row + column).
- * Matrix#adjugate returns the adjugate of the matrix.
- * hstack and vstack are new instance and class methods to stack matrices
- horizontally and vertically.
- * Matrix#laplace_expansion(row_or_column: num) returns the laplace_expansion
- along the +num+ -th row or column.
- * Vector.basis(size:, index:) returns the specified basis vector.
- * Unary - and + added for Vector and Matrix.
- * Vector#cross_product generalized to arbitrary dimensions.
- * Vector#dot and #cross are aliases for #inner_product and #cross_product.
- * Vector#angle_with returns the angle with its argument
- * New instance and class method independent? to test linear independence.
+ * Added Vector#cross_product.
+
+* Net::SMTP
+ * Added Net::SMTP#rset to implement the RSET command
+
+* objspace
+ * new method:
+ * ObjectSpace.trace_object_allocations
+ * ObjectSpace.trace_object_allocations_start
+ * ObjectSpace.trace_object_allocations_stop
+ * ObjectSpace.trace_object_allocations_clear
+ * ObjectSpace.allocation_sourcefile
+ * ObjectSpace.allocation_sourceline
+ * ObjectSpace.allocation_class_path
+ * ObjectSpace.allocation_method_id
+ * ObjectSpace.allocation_generation
+ * ObjectSpace.reachable_objects_from_root
+ * ObjectSpace.dump
+ * ObjectSpace.dump_all
+
+* OpenSSL::BN
+ * extended methods:
+ * OpenSSL::BN.new allows Fixnum/Bignum argument.
+
+* open-uri
+ * Support multiple fields with same field name (like Set-Cookie).
* Pathname
- * Pathname#/ is aliased to Pathname#+.
* New methods:
- * Pathname#birthtime
+ * Pathname#write
+ * Pathname#binwrite
-* Rake
- * Updated to Rake 10.4.0. For full release notes see:
+* rake
+ * Updated to 10.1.0. Major changes include removal of the class namespace,
+ Rake::DSL to hold the rake DSL methods and removal of support for legacy
+ rake features.
- http://docs.seattlerb.org/rake/History_rdoc.html#label-10.4.0
+ For a complete list of changes since rake 0.9.6 see:
-* RubyGems
- * Updated to RubyGems 2.4.2. For full release notes see:
+ http://rake.rubyforge.org/doc/release_notes/rake-10_1_0_rdoc.html
- http://docs.seattlerb.org/rubygems/History_txt.html#label-2.4.2+%2F+2014-10-01
+ http://rake.rubyforge.org/doc/release_notes/rake-10_0_3_rdoc.html
-* TSort
- * TSort.tsort_each, TSort.each_strongly_connected_component and
- TSort.each_strongly_connected_component_from returns an enumerator if
- no block given.
+* RbConfig
+ * New constants:
+ * RbConfig::SIZEOF is added to provide the size of C types.
-* XMLRPC
- * Added new parser class named LibXMLStreamParser.
+* RDoc
+ * Updated to 4.1.0. Major enhancements include a modified default template
+ * and accessibility enhancements.
-=== Stdlib compatibility issues (excluding feature bug fixes)
+ For a list of minor enhancements and bug fixes see:
+ https://github.com/rdoc/rdoc/blob/v4.1.0.preview.1/History.rdoc
-* lib/mathn.rb
- * Show deprecated warning [Feature #10169]
+* Resolv
+ * New methods:
+ * Resolv::DNS.fetch_resource
+ * One-shot multicast DNS support
+ * Support LOC resources
-* ext/date/lib/date/format.rb
- * Removed because it's empty file.
+* REXML::Parsers::SAX2Parser
+ * Fixes wrong number of arguments of entitydecl event. Document of the event
+ says "an array of the entity declaration" but implementation passes two
+ or more arguments. It is an implementation bug but it breaks backward
+ compatibility.
-* Digest
- * Digest::HMAC has finally ceased to exist. Use OpenSSL::HMAC or an external gem instead.
+* REXML::Parsers::StreamParser
+ * Supports "entity" event.
-* time.rb
- * Time.parse, Time.strptime, Time.rfc2822, Time.xmlschema may produce
- fixed-offset Time objects.
- It is happen when usual localtime doesn't preserve the offset from UTC.
- * Time.httpdate produces always UTC Time object.
- * Time.strptime raises ArgumentError when no date information.
+* REXML::Text
+ * REXML::Text#<< supports method chain like 'text << "XXX" << "YYY"'.
+ * REXML::Text#<< supports not "raw" mode.
-* lib/rational.rb
- * Removed because it is deprecated from 2009.
+* Rinda::RingServer, Rinda::RingFinger
+ * Rinda now supports multicast sockets. See Rinda::RingServer and
+ Rinda::RingFinger for details.
-* lib/complex.rb
- * Removed because it is deprecated from 2009.
+* RubyGems
+ * Updated to 2.2.0. Notable new features include:
-* lib/prettyprint.rb
- * Removed PrettyPrint#first?
+ * Gemfile or gem.deps.rb support including Gem.file.lock (experimental)
+ * Improved, iterative resolver (compared to RubyGems 2.1 and earlier)
+ * Support for a sharing a GEM_HOME across ruby platforms and versions
-* lib/minitest/*.rb
- * Removed because it conflicts to minitest 5. [Feature #9711]
+ * Updated to 2.2.2. Fixes some minor bugs and performance regressions.
-* lib/test/**/*.rb
- * Removed because it conflicts to minitest 5, and it was just an wrapper
- of minitest 4. [Feature #9711]
+ For a complete list of enhancements and bug fixes see:
+ https://github.com/rubygems/rubygems/tree/master/History.txt
-* lib/uri
- * support RFC 3986. [Feature #2542]
+* Set
+ * New methods:
+ * Set#intersect?
+ * Set#disjoint?
-* GServer
- * GServer is extracted to gserver gem. It's unmaintain code.
+* Socket
+ * New methods:
+ * Socket.getifaddrs
-* Logger
- * Logger::Application is extracted to logger-application gem. It's unmaintain code.
+* StringScanner
+ * extended methods:
+ * StringScanner#[] supports named captures.
-* ObjectSpace (after requiring "objspace")
- * ObjectSpace.memsize_of(obj) returns a size includes sizeof(RVALUE).
- [Bug #8984]
+* Syslog::Logger
+ * Added facility.
-* Prime
- * incompatible changes:
- * Prime.prime? now returns false for negative numbers. This method
- should not be used to know the number is composite or not. [Bug #7395]
+* Tempfile
+ * New methods:
+ * Tempfile.create
-* Psych
- * Removed Psych::EngineManager [Bug #8344]
+* Timeout
+ * The exception to terminate the given block can no longer be rescued
+ inside the block, by default, unless the exception class is given
+ explicitly.
-=== Built-in global variables compatibility issues
+* TSort
+ * New methods:
+ * TSort.tsort
+ * TSort.tsort_each
+ * TSort.strongly_connected_components
+ * TSort.each_strongly_connected_component
+ * TSort.each_strongly_connected_component_from
-=== C API updates
+* WEBrick
+ * The body of a response may now be a StringIO or other IO-like that responds
+ to #readpartial and #read.
-* Deprecated APIs removed. [Feature #9502]
-
- Check_SafeStr -> SafeStringValue
- rb_check_safe_str -> SafeStringValue
- rb_quad_pack -> rb_integer_pack
- rb_quad_unpack -> rb_integer_unpack
- rb_read_check : access struct FILE internal. no replacement.
- rb_struct_iv_get : internal function. no replacement.
- struct rb_blocking_region_buffer : internal type. no replacement.
- rb_thread_blocking_region_begin -> rb_thread_call_without_gvl family
- rb_thread_blocking_region_end -> rb_thread_call_without_gvl family
- TRAP_BEG -> rb_thread_call_without_gvl family
- TRAP_END -> rb_thread_call_without_gvl family
- rb_thread_select -> rb_thread_fd_select
- struct rb_exec_arg : internal type. no replacement.
- rb_exec : internal function. no replacement.
- rb_exec_arg_addopt : internal function. no replacement.
- rb_exec_arg_fixup : internal function. no replacement.
- rb_exec_arg_init : internal function. no replacement.
- rb_exec_err : internal function. no replacement.
- rb_fork : internal function. no replacement.
- rb_fork_err : internal function. no replacement.
- rb_proc_exec_n : internal function. no replacement.
- rb_run_exec_options : internal function. no replacement.
- rb_run_exec_options_err : internal function. no replacement.
- rb_thread_blocking_region -> rb_thread_call_without_gvl family
- rb_thread_polling -> rb_thread_wait_for
- rb_big2str0 : internal function. no replacement.
- rb_big2ulong_pack -> rb_integer_pack
- rb_gc_set_params : internal function. no replacement.
- rb_io_mode_flags -> rb_io_modestr_fmode
- rb_io_modenum_flags -> rb_io_oflags_fmode
-
-* struct RBignum is hidden. [Feature #6083]
- Use rb_integer_pack and rb_integer_unpack instead.
-
-* struct RRational is hidden. [Feature #9513]
- Use rb_rational_num and rb_rational_den instead.
-
-* rb_big_new and rb_big_resize takes a size_t instead of long.
-
-* rb_num2long returns a long instead of SIGNED_VALUE.
-
-* rb_num2ulong returns an unsigned long instead of VALUE.
-
-* st hash table uses power-of-two sizes for speed [Feature #9425].
- Lookups are 10-25% faster if using appropriate hash functions.
- However, weaknesses in hash distribution can no longer be masked
- by prime number-sized tables, so extensions may need to tweak
- hash functions to ensure good distribution.
-
-* rb_sym2str() added. This is almost same as `rb_id2str(SYM2ID(sym))`
- but not pinning a dynamic symbol.
-
-* rb_str_cat_cstr() added. This is same as `rb_str_cat2()`.
-
-* `rb_str_substr()` and `rb_str_subseq()` will share middle of a string,
- but not only the end of a string, in the future. Therefore, result
- strings may not be NUL-terminated, `StringValueCStr()` is needed
- calling to obtain a NUL-terminated C string.
+* XMLRPC::Client
+ * New methods:
+ * XMLRPC::Client#http. It returns Net::HTTP for the client. Normally,
+ it is not needed. It is useful when you want to change minor HTTP client
+ options. You can change major HTTP client options by XMLRPC::Client
+ methods. You should use XMLRPC::Client methods for changing major
+ HTTP client options instead of XMLRPC::Client#http.
-* rb_tracepoint_new() supports new internal events accessible only from C:
- * RUBY_INTERNAL_EVENT_GC_ENTER
- * RUBY_INTERNAL_EVENT_GC_EXIT
- r47528
+=== Stdlib compatibility issues (excluding feature bug fixes)
-* rb_hash_delete() now does not call the block given to the current method.
+* Set
+ * incompatible changes:
+ * Set#to_set now returns self instead of generating a copy.
-* rb_extract_keywords() and rb_get_kwargs() exported. See README.EXT
- for details.
+* URI
+ * incompatible changes:
+ * URI.decode_www_form follows current WHATWG URL Standard.
+ It gets encoding argument to specify the character encoding.
+ It now allows loose percent encoded strings, but denies ;-separator.
+ * URI.encode_www_form follows current WHATWG URL Standard.
+ It gets encoding argument to convert before percent encode.
+ UTF-16 strings aren't converted to UTF-8 before percent encode by default.
+
+* curses
+ * Removed.
+ curses is now available as a gem.
+ See https://rubygems.org/gems/curses for details.
-=== Build system updates
+=== Built-in global variables compatibility issues
-* jemalloc is optionally supported via `./configure --with-jemalloc`
- jemalloc may be suitable when system malloc is slow or prone
- to fragmentation. [Feature #9113]
+* $SAFE
+ * $SAFE=4 is obsolete. If $SAFE is set to 4 or larger, an ArgumentError
+ is raised.
-=== Implementation changes
+=== C API updates
-* GC
- * Most symbols which are returned by String#to_sym and
- String#intern are GC-able [Feature #9634]
- * Introduce incremental marking for major GC. [Feature #10137]
- * Enable lazy sweep on GC caused by malloc().
+* rb_gc_set_params() is deprecated. This is only used in Ruby internal.
-* VM
- * Use frozen string literals for Hash#[] and Hash#[]=
- * Fast keyword arguments passing [Feature #10440]
- * Allow to receive huge splatted array by a rest argument
- [Feature #10440]
+* rb_gc_count() added. This returns the number of times GC occurred.
-* Process
- * Process creation methods, such as spawn(), uses vfork() system call.
- vfork() is faster than fork() when the parent process uses huge memory.
+* rb_gc_stat() added. This allows access to specific GC.stat() values from C
+ without any allocation overhead.
+
+* rb_gc_latest_gc_info() added. This allows access to GC.latest_gc_info().
+
+* rb_postponed_job_register() added. Takes a function callback which is invoked
+ when the VM is in a consistent state, i.e. to perform work from a C signal
+ handler.
+
+* rb_profile_frames() added. Provides low-cost access to the current ruby stack
+ for callstack profiling.
+
+* rb_tracepoint_new() supports new internal events accessible only from C:
+ * RUBY_INTERNAL_EVENT_NEWOBJ
+ * RUBY_INTERNAL_EVENT_FREEOBJ
+ * RUBY_INTERNAL_EVENT_GC_START
+ * RUBY_INTERNAL_EVENT_GC_END_MARK
+ * RUBY_INTERNAL_EVENT_GC_END_SWEEP
+ * Note that you *can not* specify "internal events" with normal events
+ (such as RUBY_EVENT_CALL, RUBY_EVENT_RETURN) simultaneously.
diff --git a/README b/README
new file mode 100644
index 0000000000..3ffe3553a8
--- /dev/null
+++ b/README
@@ -0,0 +1,166 @@
+= What's Ruby
+
+Ruby is the interpreted scripting language for quick and
+easy object-oriented programming. It has many features to
+process text files and to do system management tasks (as in
+Perl). It is simple, straight-forward, and extensible.
+
+
+== Features of Ruby
+
+* Simple Syntax
+* *Normal* Object-Oriented features(ex. class, method calls)
+* *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
+* Operator Overloading
+* Exception Handling
+* Iterators and Closures
+* Garbage Collection
+* Dynamic Loading of Object files(on some architecture)
+* Highly Portable (works on many Unix-like/POSIX compatible platforms
+ as well as Windows, Mac OS X, BeOS etc.)
+ cf. http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatforms
+
+
+== How to get Ruby
+
+For a complete list of ways to install Ruby, including using third party
+tools like rvm, see:
+
+http://www.ruby-lang.org/en/downloads/
+
+The Ruby distribution files can be found in the following FTP site:
+
+ftp://ftp.ruby-lang.org/pub/ruby/
+
+The trunk of the Ruby source tree can be checked out with the
+following command:
+
+ $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby
+
+Or if you are using git then use the following command:
+
+ $ git clone git://github.com/ruby/ruby.git
+
+There are some other branches under development. Try the following
+command and see the list of branches:
+
+ $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/
+
+Or if you are using git then use the following command:
+
+ $ git ls-remote git://github.com/ruby/ruby.git
+
+== Ruby home-page
+
+The URL of the Ruby home-page is:
+
+http://www.ruby-lang.org/
+
+
+== Mailing list
+
+There is a mailing list to talk about Ruby.
+To subscribe this list, please send the following phrase
+
+ subscribe YourFirstName YourFamilyName
+e.g.
+ subscribe Joseph Smith
+
+in the mail body (not subject) to the address <mailto:ruby-talk-ctl@ruby-lang.org>.
+
+
+== How to compile and install
+
+This is what you need to do to compile and install Ruby:
+
+0. If you want to use Microsoft Visual C++ to compile ruby,
+ read win32/README.win32 instead of this document.
+
+1. If +./configure+ does not exist or is older than configure.in,
+ run autoconf to (re)generate configure.
+
+2. Run +./configure+, which will generate config.h and Makefile.
+
+ Some C compiler flags may be added by default depending on your
+ environment. Specify <tt>optflags=..</tt> and <tt>warnflags=..</tt> as
+ necessary to override them.
+
+3. Edit +defines.h+ if you need. Usually this step will not be needed.
+
+4. Remove comment mark(<tt>#</tt>) before the module names from +ext/Setup+
+ (or add module names if not present), if you want to link modules
+ statically.
+
+ If you don't want to compile non static extension modules
+ (probably on architectures which does not allow dynamic loading),
+ remove comment mark from the line "<tt>#option nodynamic</tt>" in
+ +ext/Setup+.
+
+ Usually this step will not be needed.
+
+5. Run +make+.
+
+6. Optionally, run '<tt>make check</tt>' to check whether the compiled Ruby
+ interpreter works well. If you see the message "<tt>check succeeded</tt>",
+ your ruby works as it should (hopefully).
+
+7. Run '<tt>make install</tt>'
+
+ This command will create following directories and install files
+ onto them.
+
+ * <tt>${DESTDIR}${prefix}/bin</tt>
+ * <tt>${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
+ * <tt>${DESTDIR}${prefix}/lib</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/share/man/man1</tt>
+ * <tt>${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system</tt>
+
+ If Ruby's API version is '_x.y.z_', the <tt>${MAJOR}</tt> is '_x_', the
+ <tt>${MINOR}</tt> is '_y_', and the <tt>${TEENY}</tt> is '_z_'.
+
+ *NOTE*: teeny of the API version may be different from one of
+ Ruby's program version
+
+ You may have to be a super user to install ruby.
+
+If you fail to compile ruby, please send the detailed error report with
+the error log and machine/OS type, to help others.
+
+Some extension libraries may not get compiled because of lack of
+necessary external libraries and/or headers, then you will need to run
+'<tt>make distclean-ext</tt>' to remove old configuration after
+installing them in such case.
+
+== Copying
+
+See the file +COPYING+.
+
+== Feedback
+
+Questions about the Ruby language can be asked on the Ruby-Talk mailing list
+(http://www.ruby-lang.org/en/community/mailing-lists) or on websites like
+(http://stackoverflow.com).
+
+Bug reports should be filed at http://bugs.ruby-lang.org
+
+== The Author
+
+Ruby was originally designed and developed by Yukihiro Matsumoto (Matz) in 1995.
+
+<mailto:matz@ruby-lang.org>
+
+--
+Local variables:
+mode: rdoc
+end:
diff --git a/README.EXT b/README.EXT
index 29cfbc27e9..6f7340ceda 100644
--- a/README.EXT
+++ b/README.EXT
@@ -9,7 +9,7 @@ Ruby variables do not have a static type, and data themselves have
types, so data will need to be converted between the languages.
Data in Ruby are represented by the C type `VALUE'. Each VALUE data
-has its data type.
+has its data-type.
To retrieve C data from a VALUE, you need to:
@@ -18,7 +18,7 @@ To retrieve C data from a VALUE, you need to:
Converting to the wrong data type may cause serious problems.
-== Data Types
+== Data-Types
The Ruby interpreter has the following data types:
@@ -74,7 +74,7 @@ data types, your code will look something like this:
break;
}
-There is the data type check function
+There is the data-type check function
void Check_Type(VALUE value, int type)
@@ -94,7 +94,7 @@ The equivalent C constants are: Qnil, Qfalse, Qtrue.
Note that Qfalse is false in C also (i.e. 0), but not Qnil.
The T_FIXNUM data is a 31bit or 63bit length fixed integer.
-This size depends on the size of long: if long is 32bit then
+This size is depend on the size of long: if long is 32bit then
T_FIXNUM is 31bit, if long is 64bit then T_FIXNUM is 63bit.
T_FIXNUM can be converted to a C integer by using the
FIX2INT() macro or FIX2LONG(). Though you have to check that the
@@ -102,32 +102,32 @@ data is really FIXNUM before using them, they are faster. FIX2LONG()
never raises exceptions, but FIX2INT() raises RangeError if the
result is bigger or smaller than the size of int.
There are also NUM2INT() and NUM2LONG() which converts any Ruby
-numbers into C integers. These macros include a type check,
+numbers into C integers. These macros includes a type check,
so an exception will be raised if the conversion failed. NUM2DBL()
can be used to retrieve the double float value in the same way.
You can use the macros
StringValue() and StringValuePtr() to get a char* from a VALUE.
StringValue(var) replaces var's value with the result of "var.to_str()".
-StringValuePtr(var) does the same replacement and returns char*
+StringValuePtr(var) does same replacement and returns char*
representation of var. These macros will skip the replacement if var
is a String. Notice that the macros take only the lvalue as their
argument, to change the value of var in place.
You can also use the macro named StringValueCStr(). This is just
-like StringValuePtr(), but always add NUL character at the end of
-the result. If the result contains NUL character, this macro causes
+like StringValuePtr(), but always add nul character at the end of
+the result. If the result contains nul character, this macro causes
the ArgumentError exception.
-StringValuePtr() doesn't guarantee the existence of a NUL at the end
-of the result, and the result may contain NUL.
+StringValuePtr() doesn't guarantee the existence of a nul at the end
+of the result, and the result may contain nul.
Other data types have corresponding C structures, e.g. struct RArray
for T_ARRAY etc. The VALUE of the type which has the corresponding
structure can be cast to retrieve the pointer to the struct. The
casting macro will be of the form RXXXX for each data type; for
instance, RARRAY(obj). See "ruby.h". However, we do not recommend
-to access RXXXX data directly because these data structures are complex.
-Use corresponding rb_xxx() functions to access the internal struct.
+to access RXXXX data directly because these data structure is complex.
+Use corresponding rb_xxx() functions to access internal struct.
For example, to access an entry of array, use rb_ary_entry(ary, offset)
and rb_ary_store(ary, offset, obj).
@@ -145,22 +145,22 @@ To convert C data to Ruby values:
FIXNUM ::
- left shift 1 bit, and turn on its least significant bit (LSB).
+ left shift 1 bit, and turn on LSB.
Other pointer values::
cast to VALUE.
-You can determine whether a VALUE is a pointer or not by checking its LSB.
+You can determine whether a VALUE is pointer or not by checking its LSB.
-Notice: Ruby does not allow arbitrary pointer values to be a VALUE. They
+Notice Ruby does not allow arbitrary pointer values to be a VALUE. They
should be pointers to the structures which Ruby knows about. The known
structures are defined in <ruby.h>.
-To convert C numbers to Ruby values, use these macros:
+To convert C numbers to Ruby values, use these macros.
INT2FIX() :: for integers within 31bits.
-INT2NUM() :: for arbitrary sized integers.
+INT2NUM() :: for arbitrary sized integer.
INT2NUM() converts an integer into a Bignum if it is out of the FIXNUM
range, but is a bit slower.
@@ -184,10 +184,6 @@ rb_str_new_cstr(const char *ptr) ::
Creates a new Ruby string from a C string. This is equivalent to
rb_str_new(ptr, strlen(ptr)).
-rb_str_new_literal(const char *ptr) ::
-
- Creates a new Ruby string from a C string literal.
-
rb_tainted_str_new(const char *ptr, long len) ::
Creates a new tainted Ruby string. Strings from external data
@@ -203,17 +199,15 @@ rb_vsprintf(const char *format, va_list ap) ::
Creates a new Ruby string with printf(3) format.
- Note: In the format string, "%"PRIsVALUE can be used for Object#to_s
- (or Object#inspect if '+' flag is set) output (and related argument
- must be a VALUE). Since it conflicts with "%i", for integers in
- format strings, use "%d".
+ Note: In the format string, %i is used for Object#to_s (or Object#inspect if
+ '+' flag is set) output (and related argument must be a VALUE). For integers
+ in format strings, use %d.
rb_str_cat(VALUE str, const char *ptr, long len) ::
Appends len bytes of data from ptr to the Ruby string.
rb_str_cat2(VALUE str, const char* ptr) ::
-rb_str_cat_cstr(VALUE str, const char* ptr) ::
Appends C string ptr to Ruby string str. This function is
equivalent to rb_str_cat(str, ptr, strlen(ptr)).
@@ -231,34 +225,14 @@ rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc) ::
Creates a new Ruby string with the specified encoding.
-rb_enc_str_new_literal(const char *ptr) ::
-
- Creates a new Ruby string from a C string literal with the specified
- encoding.
-
rb_usascii_str_new(const char *ptr, long len) ::
rb_usascii_str_new_cstr(const char *ptr) ::
Creates a new Ruby string with encoding US-ASCII.
-rb_usascii_str_new_literal(const char *ptr) ::
-
- Creates a new Ruby string from a C string literal with encoding
- US-ASCII.
-
-rb_utf8_str_new(const char *ptr, long len) ::
-rb_utf8_str_new_cstr(const char *ptr) ::
-
- Creates a new Ruby string with encoding UTF-8.
-
-rb_utf8_str_new_literal(const char *ptr) ::
-
- Creates a new Ruby string from a C string literal with encoding
- UTF-8.
-
rb_str_resize(VALUE str, long len) ::
- Resizes a Ruby string to len bytes. If str is not modifiable, this
+ Resizes Ruby string to len bytes. If str is not modifiable, this
function raises an exception. The length of str must be set in
advance. If len is less than the old length the content beyond
len bytes is discarded, else if len is greater than the old length
@@ -268,9 +242,9 @@ rb_str_resize(VALUE str, long len) ::
rb_str_set_len(VALUE str, long len) ::
- Sets the length of a Ruby string. If str is not modifiable, this
+ Sets the length of Ruby string. If str is not modifiable, this
function raises an exception. This function preserves the content
- up to len bytes, regardless RSTRING_LEN(str). len must not exceed
+ upto len bytes, regardless RSTRING_LEN(str). len must not exceed
the capacity of str.
=== Array Functions
@@ -398,9 +372,9 @@ There are two functions to define private/protected methods:
void rb_define_protected_method(VALUE klass, const char *name,
VALUE (*func)(), int argc)
-At last, rb_define_module_function defines a module function,
+At last, rb_define_module_function defines a module functions,
which are private AND singleton methods of the module.
-For example, sqrt is a module function defined in the Math module.
+For example, sqrt is the module function defined in Math module.
It can be called in the following way:
Math.sqrt(4)
@@ -437,16 +411,6 @@ func has to take the klass as the argument and return a newly
allocated instance. This instance should be as empty as possible,
without any expensive (including external) resources.
-If you are overriding an existing method of any ancestor of your class,
-you may rely on:
-
- VALUE rb_call_super(int argc, const VALUE *argv)
-
-To achieve the receiver of the current scope (if no other way is
-available), you can use:
-
- VALUE rb_current_receiver(void)
-
=== Constant Definition
We have 2 functions to define constants:
@@ -476,7 +440,7 @@ function:
VALUE rb_eval_string_protect(const char *str, int *state)
-It returns nil when an error occurred. Moreover, *state is zero if str was
+It returns nil when an error occur. Moreover, *state is zero if str was
successfully evaluated, or nonzero otherwise.
=== ID or Symbol
@@ -512,16 +476,6 @@ After this function returned a non-zero value, *name is always a
Symbol or a String, otherwise it is a String if the result is 0.
The third function takes NUL-terminated C string, not Ruby VALUE.
-You can retrieve Symbol from Ruby object (Symbol or String) given as
-an argument by using
-
- rb_to_symbol(VALUE name)
- rb_check_symbol(volatile VALUE *namep)
- rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc)
-
-These functions are similar to above functions except that these
-return a Symbol instead of an ID.
-
You can convert C ID to Ruby Symbol by using
VALUE ID2SYM(ID id)
@@ -560,7 +514,7 @@ See also Constant Definition above.
= Information Sharing Between Ruby and C
-=== Ruby Constants That Can Be Accessed From C
+=== Ruby Constants That C Can Be Accessed From C
As stated in section 1.3,
the following Ruby constants can be referred from C.
@@ -658,7 +612,7 @@ A pointer to the structure will be assigned to the variable sval.
See the example below for details.
-= Example - Creating the dbm Extension
+= Example - Creating dbm Extension
OK, here's the example of making an extension library. This is the
extension to access DBMs. The full source is included in the ext/
@@ -695,7 +649,7 @@ Here's the example of an initializing function.
Init_dbm(void)
{
/* define DBM class */
- VALUE cDBM = rb_define_class("DBM", rb_cObject);
+ cDBM = rb_define_class("DBM", rb_cObject);
/* DBM includes Enumerable module */
rb_include_module(cDBM, rb_mEnumerable);
@@ -729,11 +683,10 @@ wrapping DBM* directly, because we want to cache size information.
To retrieve the dbmdata structure from a Ruby object, we define the
following macro:
- #define GetDBM(obj, dbmp) do {\
- Data_Get_Struct((obj), struct dbmdata, (dbmp));\
- if ((dbmp) == 0) closed_dbm();\
- if ((dbmp)->di_dbm == 0) closed_dbm();\
- } while (0)
+ #define GetDBM(obj, dbmp) {\
+ Data_Get_Struct(obj, struct dbmdata, dbmp);\
+ if (dbmp->di_dbm == 0) closed_dbm();\
+ }
This sort of complicated macro does the retrieving and close checking for
the DBM.
@@ -1127,15 +1080,6 @@ rb_float_new(f) ::
double -> Float
-RSTRING_LEN(str) ::
-
- String -> length of String data in bytes
-
-RSTRING_PTR(str) ::
-
- String -> pointer to String data
- Note that the result pointer may not be NUL-terminated
-
StringValue(value) ::
Object with #to_str -> String
@@ -1146,14 +1090,13 @@ StringValuePtr(value) ::
StringValueCStr(value) ::
- Object with #to_str -> pointer to String data without NUL bytes
- It is guaranteed that the result data is NUL-terminated
+ Object with #to_str -> pointer to String data without NULL bytes
rb_str_new2(s) ::
char * -> String
-== Defining Classes and Modules
+== Defining Class and Module
VALUE rb_define_class(const char *name, VALUE super) ::
@@ -1193,7 +1136,7 @@ void rb_define_readonly_variable(const char *name, VALUE *var) ::
Defines a read-only global variable. Works just like
rb_define_variable(), except the defined variable is read-only.
-void rb_define_virtual_variable(const char *name, VALUE (*getter)(), void (*setter)()) ::
+void rb_define_virtual_variable(const char *name, VALUE (*getter)(), VALUE (*setter)()) ::
Defines a virtual variable, whose behavior is defined by a pair of C
functions. The getter function is called when the variable is
@@ -1205,7 +1148,7 @@ void rb_define_virtual_variable(const char *name, VALUE (*getter)(), void (*sett
The getter function must return the value for the access.
-void rb_define_hooked_variable(const char *name, VALUE *var, VALUE (*getter)(), void (*setter)()) ::
+void rb_define_hooked_variable(const char *name, VALUE *var, VALUE (*getter)(), VALUE (*setter)()) ::
Defines hooked variable. It's a virtual variable with a C variable.
The getter is called as
@@ -1232,7 +1175,7 @@ void rb_define_global_const(const char *name, VALUE val) ::
Defines a global constant. This is just the same as
- rb_define_const(rb_cObject, name, val)
+ rb_define_const(cKernal, name, val)
== Method Definition
@@ -1306,25 +1249,6 @@ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::
The number of given arguments, excluding an option hash or iterator
block, is returned.
-int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values)
-
- Retrieves argument VALUEs bound to keywords, which directed by +table+
- into +values+. First +required+ number of IDs referred by +table+ are
- mandatory, and succeeding +optional+ (- +optional+ - 1 if
- +optional+ is negative) number of IDs are optional. If a
- mandatory key is not contained in +keyword_hash+, raises "missing
- keyword" +ArgumentError+. If an optional key is not present in
- +keyword_hash+, the corresponding element in +values+ is set to +Qundef+.
- If +optional+ is negative, rest of +keyword_hash+ are ignored, otherwise
- raises "unknown keyword" +ArgumentError+.
-
-VALUE rb_extract_keywords(VALUE *original_hash)
-
- Extracts pairs whose key is a symbol into a new hash from a hash
- object referred by +original_hash+. If the original hash contains
- non-symbol keys, then they are copied to another hash and the new hash
- is stored through +original_hash+, else 0 is stored.
-
== Invoking Ruby method
VALUE rb_funcall(VALUE recv, ID mid, int narg, ...) ::
@@ -1359,7 +1283,7 @@ char *rb_class2name(VALUE klass) ::
Returns the name of the class.
-int rb_respond_to(VALUE obj, ID id) ::
+int rb_respond_to(VALUE object, ID id) ::
Returns true if the object responds to the message specified by id.
@@ -1387,7 +1311,7 @@ VALUE rb_block_call(VALUE recv, ID mid, int argc, VALUE * argv, VALUE (*func) (A
whereas yielded values can be gotten via argc/argv of the third/fourth
arguments.
-[OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2) ::
+[OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2) ::
Calls the function func1, supplying func2 as the block. func1 will be
called with the argument arg1. func2 receives the value from yield as
@@ -1469,10 +1393,9 @@ void rb_bug(const char *fmt, ...) ::
called under the situation caused by the bug in the interpreter. No
exception handling nor ensure execution will be done.
-Note: In the format string, "%"PRIsVALUE can be used for Object#to_s
-(or Object#inspect if '+' flag is set) output (and related argument
-must be a VALUE). Since it conflicts with "%i", for integers in
-format strings, use "%d".
+Note: In the format string, %i is used for Object#to_s (or Object#inspect if
+'+' flag is set) output (and related argument must be a VALUE). For integers
+in format strings, use %d.
== Initialize and Start the Interpreter
@@ -1482,18 +1405,13 @@ void ruby_init() ::
Initializes the interpreter.
-void *ruby_options(int argc, char **argv) ::
+void ruby_options(int argc, char **argv) ::
Process command line arguments for the interpreter.
- And compiles the Ruby source to execute.
- It returns an opaque pointer to the compiled source
- or an internal special value.
-int ruby_run_node(void *n) ::
+void ruby_run() ::
- Runs the given compiled source and exits this process.
- It returns EXIT_SUCCESS if successfully runs the source.
- Otherwise, it returns other value.
+ Starts execution of the interpreter.
void ruby_script(char *name) ::
@@ -1673,56 +1591,6 @@ available in in include/ruby/ruby.h. An example is available in iseq.c.
For a complete guide for RGenGC and write barriers, please refer to
<https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/RGenGC>.
-= Appendix E. RB_GC_GUARD to protect from premature GC
-
-C Ruby currently uses conservative garbage collection, thus VALUE
-variables must remain visible on the stack or registers to ensure any
-associated data remains usable. Optimizing C compilers are not designed
-with conservative garbage collection in mind, so they may optimize away
-the original VALUE even if the code depends on data associated with that
-VALUE.
-
-The following example illustrates the use of RB_GC_GUARD to ensure
-the contents of sptr remain valid while the second invocation of
-rb_str_new_cstr is running.
-
- VALUE s, w;
- const char *sptr;
-
- s = rb_str_new_cstr("hello world!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
- sptr = RSTRING_PTR(s);
- w = rb_str_new_cstr(sptr + 6); /* Possible GC invocation */
-
- RB_GC_GUARD(s); /* ensure s (and thus sptr) do not get GC-ed */
-
-In the above example, RB_GC_GUARD must be placed _after_ the last use of
-sptr. Placing RB_GC_GUARD before dereferencing sptr would be of no use.
-RB_GC_GUARD is only effective on the VALUE data type, not converted C
-data types.
-
-RB_GC_GUARD would not be necessary at all in the above example if
-non-inlined function calls are made on the `s' VALUE after sptr is
-dereferenced. Thus, in the above example, calling any un-inlined
-function on `s' such as:
-
- rb_str_modify(s);
-
-Will ensure `s' stays on the stack or register to prevent a
-GC invocation from prematurely freeing it.
-
-Using the RB_GC_GUARD macro is preferable to using the "volatile"
-keyword in C. RB_GC_GUARD has the following advantages:
-
-1) the intent of the macro use is clear
-
-2) RB_GC_GUARD only affects its call site, "volatile" generates some
- extra code every time the variable is used, hurting optimization.
-
-3) "volatile" implementations may be buggy/inconsistent in some
- compilers and architectures. RB_GC_GUARD is customizable for broken
- systems/compilers without those without negatively affecting other
- systems.
-
/*
* Local variables:
* fill-column: 70
diff --git a/README.EXT.ja b/README.EXT.ja
index 2a3fd69b9d..5ccc9306d1 100644
--- a/README.EXT.ja
+++ b/README.EXT.ja
@@ -111,8 +111,8 @@ FIXNUMとNILに関してはより高速な判別マクロが用意されてい
換結果がintのサイズに収まらない場合には例外を発生します.
それから,FIXNUMに限らずRubyのデータを整数に変換する
「NUM2INT()」および「NUM2LONG()」というマクロがあります.こ
-れらのマクロはデータタイプのチェック無しで使えます
-(整数に変換できない場合には例外が発生する).同様にチェック無し
+れらのマクロはマクロはデータタイプのチェック無しで使えます
+(整数に変換できない場合には例外が発生する).同様にチェック無
で使える変換マクロはdoubleを取り出す「NUM2DBL()」があります.
char* を取り出す場合, StringValue() と StringValuePtr()
@@ -126,10 +126,10 @@ var は lvalue である必要があります.
また,StringValuePtr() に類似した StringValueCStr() というマ
クロもあります.StringValueCStr(var) は var を String に置き
換えてから var の文字列表現に対する char* を返します.返され
-る文字列の末尾には NUL 文字が付加されます.なお,途中に NUL
+る文字列の末尾には nul 文字が付加されます.なお,途中に nul
文字が含まれる場合は ArgumentError が発生します.
-一方,StringValuePtr() では,末尾に NUL 文字がある保証はなく,
-途中に NUL 文字が含まれている可能性もあります.
+一方,StringValuePtr() では,末尾に nul 文字がある保証はなく,
+途中に nul 文字が含まれている可能性もあります.
それ以外のデータタイプは対応するCの構造体があります.対応す
る構造体のあるVALUEはそのままキャスト(型変換)すれば構造体の
@@ -209,10 +209,6 @@ rb_str_new_cstr(const char *ptr)
Cの文字列からRubyの文字列を生成する.この関数の機能は
rb_str_new(ptr, strlen(ptr))と同等である.
-rb_str_new_literal(const char *ptr)
-
- Cのリテラル文字列からRubyの文字列を生成する.
-
rb_tainted_str_new(const char *ptr, long len)
汚染マークが付加された新しいRubyの文字列を生成する.外部
@@ -230,16 +226,14 @@ rb_vsprintf(const char *format, va_list ap)
Cの文字列formatと続く引数をprintf(3)のフォーマットにしたがって
整形し,Rubyの文字列を生成する.
- 注意: "%"PRIsVALUEがObject#to_s('+'フラグが指定されている
- ときはObject#inspect)を使ったVALUEの出力に利用できる.これ
- は"%i"と衝突するため,整数には"%d"を使用すること.
+ 注意: %iはObject#to_s('+'フラグが指定されているときはObject#inspect)を
+ 使ったVALUEの出力に使用されているため,整数には%dを使用すること.
rb_str_cat(VALUE str, const char *ptr, long len)
Rubyの文字列strにlenバイトの文字列ptrを追加する.
rb_str_cat2(VALUE str, const char* ptr)
-rb_str_cat_cstr(VALUE str, const char* ptr)
Rubyの文字列strにCの文字列ptrを追加する.この関数の機能は
rb_str_cat(str, ptr, strlen(ptr))と同等である.
@@ -257,28 +251,11 @@ rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc)
指定されたエンコーディングでRubyの文字列を生成する.
-rb_enc_str_new_literal(const char *ptr)
-
- Cのリテラル文字列から指定されたエンコーディングでRubyの文字列を生成する.
-
rb_usascii_str_new(const char *ptr, long len)
rb_usascii_str_new_cstr(const char *ptr)
エンコーディングがUS-ASCIIのRubyの文字列を生成する.
-rb_usascii_str_new_literal(const char *ptr)
-
- Cのリテラル文字列からエンコーディングがUS-ASCIIのRubyの文字列を生成する.
-
-rb_utf8_str_new(const char *ptr, long len)
-rb_utf8_str_new_cstr(const char *ptr)
-
- エンコーディングがUTF-8のRubyの文字列を生成する.
-
-rb_utf8_str_new_literal(const char *ptr)
-
- Cのリテラル文字列からエンコーディングがUTF-8のRubyの文字列を生成する.
-
rb_str_resize(VALUE str, long len)
Rubyの文字列のサイズをlenバイトに変更する.strの長さは前
@@ -473,17 +450,6 @@ funcはクラスを引数として受け取って,新しく割り当てられ
ソースなどを含まない,できるだけ「空」のままにしておいたほう
がよいでしょう.
-継承したクラスにある既存のメソッドをオーバーライドしているな
-ら,オーバーライドされたメソッドを呼び出すには以下の関数を使
-います.
-
- VALUE rb_call_super(int argc, const VALUE *argv)
-
-現在のスコープのレシーバは(他に方法がなければ),以下の関数で
-得ることができます.
-
- VALUE rb_current_receiver(void)
-
=== 定数定義
拡張ライブラリが必要な定数はあらかじめ定義しておいた方が良い
@@ -550,23 +516,13 @@ IDとは変数名,メソッド名を表す整数です.Rubyの中では
rb_check_id(volatile VALUE *name)
rb_check_id_cstr(const char *name, long len, rb_encoding *enc)
-もし引数がシンボルでも文字列でもなければ,to_strメソッドで文
+もし引数がシンボルでも文字列でもなければ、to_strメソッドで文
字列に変換しようとします.第二の関数はその変換結果を*nameに保
存し,その名前が既知のシンボルでない場合は0を返します.この関
-数が0以外を返した場合は*nameは常にシンボルか文字列であり,0を
+数が0以外を返した場合は*nameは常にシンボルか文字列であり、0を
返した場合は常に文字列です.第三の関数はRubyの文字列ではなく
NUL終端されたCの文字列を使います.
-Rubyから引数として与えられたシンボル(または文字列)をシンボル
-に変換するには以下の関数を使います.
-
- rb_to_symbol(VALUE name)
- rb_check_symbol(volatile VALUE *namep)
- rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc)
-
-これらの関数は,IDの代わりにシンボルを返すことを除けば上記の
-関数と同じです.
-
=== CからRubyのメソッドを呼び出す
Cから文字列を経由せずにRubyのメソッドを呼び出すためには以下
@@ -769,7 +725,7 @@ Rubyは拡張ライブラリをロードする時に「Init_ライブラリ名
Init_dbm(void)
{
/* DBMクラスを定義する */
- VALUE cDBM = rb_define_class("DBM", rb_cObject);
+ cDBM = rb_define_class("DBM", rb_cObject);
/* DBMはEnumerableモジュールをインクルードする */
rb_include_module(cDBM, rb_mEnumerable);
@@ -807,11 +763,10 @@ dbm.cではData_Make_Structを以下のように使っています.
Dataオブジェクトからdbmstruct構造体のポインタを取り出すため
に以下のマクロを使っています.
- #define GetDBM(obj, dbmp) do {\
- Data_Get_Struct((obj), struct dbmdata, (dbmp));\
- if ((dbmp) == 0) closed_dbm();\
- if ((dbmp)->di_dbm == 0) closed_dbm();\
- } while (0)
+ #define GetDBM(obj, dbmp) {\
+ Data_Get_Struct(obj, struct dbmdata, dbmp);\
+ if (dbmp->di_dbm == 0) closed_dbm();\
+ }
ちょっと複雑なマクロですが,要するにdbmdata構造体のポインタ
の取り出しと,closeされているかどうかのチェックをまとめてい
@@ -987,10 +942,10 @@ variable.c :: 変数と定数
== Rubyの構文解析器
- parse.y : 字句解析器と構文定義
- -> parse.c : 自動生成
- defs/keywords : 予約語
- -> lex.c : 自動生成
+ parse.y : 字句解析器と構文定義
+ -> parse.c : 自動生成
+ keywords : 予約語
+ -> lex.c : 自動生成
== Rubyの評価器 (通称YARV)
compile.c
@@ -1010,12 +965,12 @@ variable.c :: 変数と定数
vm_insnhelper.c
vm_method.c
- defs/opt_insns_unif.def : 命令融合
- defs/opt_operand.def : 最適化のための定義
+ opt_insns_unif.def : 命令融合
+ opt_operand.def : 最適化のための定義
- -> insn*.inc : 自動生成
- -> opt*.inc : 自動生成
- -> vm.inc : 自動生成
+ -> insn*.inc : 自動生成
+ -> opt*.inc : 自動生成
+ -> vm.inc : 自動生成
== 正規表現エンジン (鬼車)
@@ -1163,8 +1118,6 @@ Data_Get_Struct(data, type, sval) ::
rb_integer_pack(value, words, numwords, wordsize, nails, flags), rb_integer_unpack(words, numwords, wordsize, nails, flags)
NUM2DBL(value)
rb_float_new(f)
- RSTRING_LEN(str)
- RSTRING_PTR(str)
StringValue(value)
StringValuePtr(value)
StringValueCStr(value)
@@ -1308,25 +1261,6 @@ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::
返り値は与えられた引数の数です.オプションハッシュおよびイ
テレータブロックは数えません.
-int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values)
-
- キーワードで指定された値をtableにしたがって取り出します.
- tableの最初のrequired個のIDは必須キーワードを表し,続く
- optional (optionalが負の場合は-optional-1) 個のIDは省略可能
- キーワードです.必須キーワードがkeyword_hash中にない場合,
- "missing keyword"ArgumentErrorが発生します.省略可能キーワー
- ドがない場合は,values中の対応する要素にはQundefがセットされ
- ます.keyword_hashに使用されない要素がある場合は,optionalが
- 負なら無視されますが,そうでなければ"unknown keyword"
- ArgumentErrorが発生します.
-
-VALUE rb_extract_keywords(VALUE *original_hash)
-
- original_hashで参照されるHashオブジェクトから,Symbolである
- キーとその値を新しいHashに取り出します.original_hashの指す
- 先には,元のHashがSymbol以外のキーを含んでいた場合はそれらが
- コピーされた別の新しいHash,そうでなければ0が保存されます.
-
== Rubyメソッド呼び出し
VALUE rb_funcall(VALUE recv, ID mid, int narg, ...) ::
@@ -1470,9 +1404,8 @@ void rb_bug(const char *fmt, ...) ::
状況の時呼ぶ.インタープリタはコアダンプし直ちに終了する.
例外処理は一切行なわれない.
-注意: "%"PRIsVALUEがObject#to_s('+'フラグが指定されていると
-きはObject#inspect)を使ったVALUEの出力に利用できる.これは
-"%i"と衝突するため,整数には"%d"を使用すること.
+注意: %iはObject#to_s('+'フラグが指定されているときはObject#inspect)を
+使ったVALUEの出力に使用されているため,整数には%dを使用すること.
== Rubyの初期化・実行
@@ -1483,16 +1416,13 @@ void ruby_init() ::
Rubyインタプリタの初期化を行なう.
-void *ruby_options(int argc, char **argv) ::
+void ruby_options(int argc, char **argv) ::
- Rubyインタプリタのコマンドライン引数の処理を行ない,
- Rubyのソースコードをコンパイルする.
- コンパイルされたソースへのポインタ,もしくは特殊値を返す.
+ Rubyインタプリタのコマンドライン引数の処理を行なう.
-int ruby_run_node(void *n) ::
+void ruby_run() ::
- コンパイルされたコードを実行する.
- 実行に成功した場合はEXIT_SUCCESSを,エラーが起こったときはそれ以外を返す.
+ Rubyインタプリタを実行する.
void ruby_script(char *name) ::
@@ -1694,24 +1624,24 @@ pkg_config(pkg, option=nil) ::
2. {pkg}-config {option}
3. pkg-config {option} {pkg}
- optionが指定された場合は,上記の配列の代わりにそのオプションを
+ optionが指定された場合は、上記の配列の代わりにそのオプションを
指定して得られた出力をstripしたものを返す.
= Appendix D. 世代別GC
-Ruby 2.1から世代別GCに対応しました.我々はこれをRGenGCと呼んでいます.
-RGenGCは,過去の拡張ライブラリに(ほぼ)互換性を保つように開発されている
-ため,拡張ライブラリ側の対応はほぼ不要です.
+Ruby 2.1から世代別GCに対応しました。我々はこれをRGenGCと呼んでいます。
+RGenGCは、過去の拡張ライブラリに(ほぼ)互換性を保つように開発されている
+ため、拡張ライブラリ側の対応はほぼ不要です。
-ただし,対応をすることで性能を向上することができる可能性があります.もし
-拡張ライブラリに高い性能が必要である場合は対応を検討して下さい.
+ただし、対応をすることで性能を向上することができる可能性があります。もし
+拡張ライブラリに高い性能が必要である場合は対応を検討して下さい。
とくにRARRAY_PTR()/RHASH_TBL()のようなマクロを用いてポインタに直接アクセ
-スするようなコードは書かないようにして下さい.代わりに,rb_ary_aref(),
-rb_ary_store() などの,適切な API 関数を利用するようにして下さい.
+スするようなコードは書かないようにして下さい。代わりに、rb_ary_aref(),
+rb_ary_store() などの、適切な API 関数を利用するようにして下さい。
-そのほか,対応についての詳細は README.EXT の「Appendix D. Generational
-GC」を参照して下さい.
+そのほか、対応についての詳細は README.ext の「Appendix D. Generational
+GC」を参照して下さい。
/*
* Local variables:
diff --git a/README.ja b/README.ja
new file mode 100644
index 0000000000..9ab2f3ca0e
--- /dev/null
+++ b/README.ja
@@ -0,0 +1,192 @@
+= Rubyとは
+
+Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です.
+Rubyは最初から純粋なオブジェクト指向言語として設計されていま
+すから,オブジェクト指向プログラミングを手軽に行う事が出来ま
+す.もちろん通常の手続き型のプログラミングも可能です.
+
+Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力
+です.さらにシンプルな文法と,例外処理やイテレータなどの機構
+によって,より分かりやすいプログラミングが出来ます.
+
+
+== Rubyの特長
+
+* シンプルな文法
+* 普通のオブジェクト指向機能(クラス,メソッドコールなど)
+* 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど)
+* 演算子オーバーロード
+* 例外処理機能
+* イテレータとクロージャ
+* ガーベージコレクタ
+* ダイナミックローディング (アーキテクチャによる)
+* 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で
+ 動くだけでなく,Windows, Mac OS X,BeOSなどの上でも動く
+ cf. http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatformsJa
+
+== 入手法
+
+=== FTPで
+
+以下の場所においてあります.
+
+ftp://ftp.ruby-lang.org/pub/ruby/
+
+=== Subversionで
+
+開発先端のソースコードは次のコマンドで取得できます.
+
+ $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby
+
+他に開発中のブランチの一覧は次のコマンドで見られます.
+
+ $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/
+
+=== Gitで
+
+SubversionのミラーをGitHubに公開しています.
+以下のコマンドでリポジトリを取得できます.
+
+ $ git clone git://github.com/ruby/ruby.git
+
+== ホームページ
+
+RubyのホームページのURLは
+
+http://www.ruby-lang.org/
+
+です.
+
+
+== メーリングリスト
+
+Rubyのメーリングリストがあります。参加希望の方は
+
+mailto:ruby-list-ctl@ruby-lang.org
+
+まで本文に
+
+ subscribe YourFirstName YourFamilyName
+
+と書いて送って下さい。
+
+Ruby開発者向けメーリングリストもあります。こちらではrubyのバ
+グ、将来の仕様拡張など実装上の問題について議論されています。
+参加希望の方は
+
+mailto:ruby-dev-ctl@ruby-lang.org
+
+までruby-listと同様の方法でメールしてください。
+
+Ruby拡張モジュールについて話し合うruby-extメーリングリストと
+数学関係の話題について話し合うruby-mathメーリングリストと
+英語で話し合うruby-talkメーリングリストもあります。参加方法
+はどれも同じです。
+
+
+== コンパイル・インストール
+
+以下の手順で行ってください.
+
+1. もし +configure+ ファイルが見つからない、もしくは
+ +configure.in+ より古いようなら、 +autoconf+ を実行して
+ 新しく +configure+ を生成する
+
+2. +configure+ を実行して +Makefile+ などを生成する
+
+ 環境によってはデフォルトのCコンパイラ用オプションが付き
+ ます. +configure+ オプションで <tt>optflags=..</tt> <tt>warnflags=..</tt> 等
+ で上書きできます.
+
+3. (必要ならば)+defines.h+ を編集する
+
+ 多分,必要無いと思います.
+
+4. (必要ならば)+ext/Setup+ に静的にリンクする拡張モジュールを
+ 指定する
+
+ +ext/Setup+ に記述したモジュールは静的にリンクされます.
+
+ ダイナミックローディングをサポートしていないアーキテク
+ チャでは +Setup+ の1行目の「<tt>option nodynamic</tt>」という行のコ
+ メントを外す必要があります.また,このアーキテクチャで
+ 拡張モジュールを利用するためには,あらかじめ静的にリン
+ クしておく必要があります.
+
+5. +make+ を実行してコンパイルする
+
+6. <tt>make check</tt>でテストを行う.
+
+ 「<tt>check succeeded</tt>」と表示されれば成功です.ただしテスト
+ に成功しても完璧だと保証されている訳ではありません.
+
+7. <tt>make install</tt>
+
+ 以下のディレクトリを作って,そこにファイルをインストー
+ ルします.
+
+ * <tt>${DESTDIR}${prefix}/bin</tt>
+ * <tt>${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
+ * <tt>${DESTDIR}${prefix}/lib</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
+ * <tt>${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}</tt>
+ * <tt>${DESTDIR}${prefix}/share/man/man1</tt>
+ * <tt>${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system</tt>
+
+ RubyのAPIバージョンが'_x.y.z_'であれば,<tt>${MAJOR}</tt>は
+ '_x_'で,<tt>${MINOR}</tt>は'_y_',<tt>${TEENY}</tt>は'_z_'です.
+
+ <b>注意</b>: APIバージョンの +teeny+ は,Rubyプログラムのバージョ
+ ンとは異なることがあります.
+
+ +root+ で作業する必要があるかもしれません.
+
+もし,コンパイル時にエラーが発生した場合にはエラーのログとマ
+シン,OSの種類を含むできるだけ詳しいレポートを作者に送ってく
+ださると他の方のためにもなります.
+
+
+== 移植
+
+UNIXであれば +configure+ がほとんどの差異を吸収してくれるはずで
+すが,思わぬ見落としがあった場合(あるに違いない),作者にその
+ことをレポートすれば,解決できるかも知れません.
+
+アーキテクチャにもっとも依存するのはGC部です.RubyのGCは対象
+のアーキテクチャが<tt>setjmp()</tt>または<tt>getcontext()</tt>によって全てのレ
+ジスタを +jmp_buf+ や +ucontext_t+ に格納することと, +jmp_buf+ や
++ucontext_t+ とスタックが32bitアラインメントされていることを仮定
+しています.特に前者が成立しない場合の対応は非常に困難でしょう.
+後者の解決は比較的簡単で, +gc.c+ でスタックをマークしている
+部分にアラインメントのバイト数だけずらしてマークするコードを
+追加するだけで済みます.<tt>defined(\_\_mc68000\_\_)</tt>で括られてい
+る部分を参考にしてください.
+
+レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタッ
+クにフラッシュするアセンブラコードを追加する必要があるかも知
+れません.
+
+
+== 配布条件
+
++COPYING.ja+ ファイルを参照してください。
+
+
+== 著者
+
+コメント,バグレポートその他は mailto:matz@ruby-lang.org まで.
+-------------------------------------------------------
+created at: Thu Aug 3 11:57:36 JST 1995
+--
+Local variables:
+mode: rdoc
+end:
diff --git a/README.ja.md b/README.ja.md
deleted file mode 100644
index 1e9bae7e0c..0000000000
--- a/README.ja.md
+++ /dev/null
@@ -1,163 +0,0 @@
-# Rubyとは
-
-Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です. Rubyは純粋なオブジェクト指向言語として設計されているので,
-オブジェクト指向プログラミングを手軽に行う事が出来ます.もちろん普通の手続き型のプログラミングも可能です.
-
-Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力です.さらにシンプルな文法と,
-例外処理やイテレータなどの機構によって,より分かりやすいプログラミングが出来ます.
-
-## Rubyの特長
-
-* シンプルな文法
-* 普通のオブジェクト指向機能(クラス,メソッドコールなど)
-* 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど)
-* 演算子オーバーロード
-* 例外処理機能
-* イテレータとクロージャ
-* ガーベージコレクタ
-* ダイナミックローディング (アーキテクチャによる)
-* 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で動くだけでなく,Windows, Mac OS
- X,BeOSなどの上でも動く cf.
- http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatformsJa
-
-
-## 入手法
-
-### FTPで
-
-以下の場所においてあります.
-
-ftp://ftp.ruby-lang.org/pub/ruby/
-
-### Subversionで
-
-開発先端のソースコードは次のコマンドで取得できます.
-
- $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby
-
-他に開発中のブランチの一覧は次のコマンドで見られます.
-
- $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/
-
-### Gitで
-
-SubversionのミラーをGitHubに公開しています. 以下のコマンドでリポジトリを取得できます.
-
- $ git clone git://github.com/ruby/ruby.git
-
-## ホームページ
-
-RubyのホームページのURLは
-
-http://www.ruby-lang.org/
-
-です.
-
-## メーリングリスト
-
-Rubyのメーリングリストがあります。参加希望の方は
-
-mailto:ruby-list-request@ruby-lang.org
-
-まで本文に
-
- subscribe
-
-と書いて送って下さい。
-
-Ruby開発者向けメーリングリストもあります。こちらではrubyのバグ、将来の仕様拡張など実装上の問題について議論されています。 参加希望の方は
-
-mailto:ruby-dev-request@ruby-lang.org
-
-までruby-listと同様の方法でメールしてください。
-
-Ruby拡張モジュールについて話し合うruby-extメーリングリストと数学関係の話題について話し合うruby-mathメーリングリストと
-英語でrubyについて話し合うruby-talkメーリングリストもあります。参加方法はどれも同じです。
-
-## コンパイル・インストール
-
-以下の手順で行ってください.
-
-1. もし `configure` ファイルが見つからない、もしくは `configure.in` より古いようなら、 `autoconf` を実行して
- 新しく `configure` を生成する
-
-2. `configure` を実行して `Makefile` などを生成する
-
- 環境によってはデフォルトのCコンパイラ用オプションが付きます. `configure` オプションで `optflags=..`
- `warnflags=..` 等で上書きできます.
-
-3. (必要ならば)`defines.h` を編集する
-
- 多分,必要無いと思います.
-
-4. (必要ならば)`ext/Setup` に静的にリンクする拡張モジュールを指定する
-
- `ext/Setup` に記述したモジュールは静的にリンクされます.
-
- ダイナミックローディングをサポートしていないアーキテクチャでは `Setup` の1行目の「`option nodynamic`」という行のコ
- メントを外す必要があります.また,このアーキテクチャで拡張モジュールを利用するためには,あらかじめ静的にリンクをしておく必要があります.
-
-5. `make` を実行してコンパイルする
-
-6. `make check`でテストを行う.
-
- 「`check succeeded`」と表示されれば成功です.ただしテストに成功しても完璧だと保証されている訳ではありません.
-
-7. `make install`
-
- 以下のディレクトリを作って,そこにファイルをインストー ルします.
-
- * `${DESTDIR}${prefix}/bin`
- * `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFOR
- M}`
- * `${DESTDIR}${prefix}/lib`
- * `${DESTDIR}${prefix}/lib/ruby`
- * `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${P
- LATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/$
- {PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/share/man/man1`
- * `${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system`
-
-
- RubyのAPIバージョンが'*x.y.z*'であれば,`${MAJOR}`は
- '*x*'で,`${MINOR}`は'*y*',`${TEENY}`は'*z*'です.
-
- **注意**: APIバージョンの `teeny` は,Rubyプログラムのバージョンとは異なることがあります.
-
- `root` で作業する必要があるかもしれません.
-
-
-もし,コンパイル時にエラーが発生した場合にはエラーのログとマシン,OSの種類を含むできるだけ詳しいレポートを作者に送って下さると他の方のためにもなります.
-
-## 移植
-
-UNIXであれば `configure` がほとんどの差異を吸収してくれるはずですが,思わぬ見落としがあった場合(ある事が多い),作者にその
-ことを報告すれば,解決できる可能性があります.
-
-アーキテクチャにもっとも依存するのはGC部です.RubyのGCは対象
-のアーキテクチャが`setjmp()`または`getcontext()`によって全てのレジスタを `jmp_buf` や `ucontext_t`
-に格納することと, `jmp_buf` や `ucontext_t` とスタックが32bitアラインメントされていることを仮定
-しています.特に前者が成立しない場合の対応は非常に困難でしょう. 後者の解決は比較的簡単で, `gc.c` でスタックをマークしている
-部分にアラインメントのバイト数だけずらしてマークするコードを追加するだけで済みます.`defined(_\*mc68000*\_)`で括られてい
-る部分を参考にしてください.
-
-レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタックにフラッシュするアセンブラコードを追加する必要があるかもしれません.
-
-## 配布条件
-
-`COPYING.ja` ファイルを参照してください。
-
-## 著者
-
-コメント,バグレポートその他は mailto:matz@ruby-lang.org まで.
----
-created at: Thu Aug 3 11:57:36 JST 1995
diff --git a/README.md b/README.md
deleted file mode 100644
index c6498a8cca..0000000000
--- a/README.md
+++ /dev/null
@@ -1,161 +0,0 @@
-# What's Ruby
-
-Ruby is the interpreted scripting language for quick and easy object-oriented
-programming. It has many features to process text files and to do system
-management tasks (as in Perl). It is simple, straight-forward, and
-extensible.
-
-## Features of Ruby
-
-* Simple Syntax
-* **Normal** Object-Oriented features(ex. class, method calls)
-* **Advanced** Object-Oriented features(ex. Mix-in, Singleton-method)
-* Operator Overloading
-* Exception Handling
-* Iterators and Closures
-* Garbage Collection
-* Dynamic Loading of Object files(on some architecture)
-* Highly Portable (works on many Unix-like/POSIX compatible platforms as
- well as Windows, Mac OS X, BeOS etc.) cf.
- http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatforms
-
-
-## How to get Ruby
-
-For a complete list of ways to install Ruby, including using third party tools
-like rvm, see:
-
-http://www.ruby-lang.org/en/downloads/
-
-The Ruby distribution files can be found in the following FTP site:
-
-ftp://ftp.ruby-lang.org/pub/ruby/
-
-The trunk of the Ruby source tree can be checked out with the following
-command:
-
- $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby
-
-Or if you are using git then use the following command:
-
- $ git clone git://github.com/ruby/ruby.git
-
-There are some other branches under development. Try the following command
-and see the list of branches:
-
- $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/
-
-Or if you are using git then use the following command:
-
- $ git ls-remote git://github.com/ruby/ruby.git
-
-## Ruby home-page
-
-The URL of the Ruby home-page is:
-
-http://www.ruby-lang.org/
-
-## Mailing list
-
-There is a mailing list to talk about Ruby. To subscribe this list, please
-send the following phrase
-
- subscribe
-
-in the mail body (not subject) to the address
-<mailto:ruby-talk-request@ruby-lang.org>.
-
-## How to compile and install
-
-This is what you need to do to compile and install Ruby:
-
-1. If you want to use Microsoft Visual C++ to compile ruby, read
- win32/README.win32 instead of this document.
-
-2. If `./configure` does not exist or is older than configure.in, run
- autoconf to (re)generate configure.
-
-3. Run `./configure`, which will generate config.h and Makefile.
-
- Some C compiler flags may be added by default depending on your
- environment. Specify `optflags=..` and `warnflags=..` as necessary to
- override them.
-
-4. Edit `defines.h` if you need. Usually this step will not be needed.
-
-5. Remove comment mark(`#`) before the module names from `ext/Setup` (or add
- module names if not present), if you want to link modules statically.
-
- If you don't want to compile non static extension modules (probably on
- architectures which do not allow dynamic loading), remove comment mark
- from the line "`#option nodynamic`" in `ext/Setup`.
-
- Usually this step will not be needed.
-
-6. Run `make`.
-
-7. Optionally, run '`make check`' to check whether the compiled Ruby
- interpreter works well. If you see the message "`check succeeded`", your
- ruby works as it should (hopefully).
-
-8. Run '`make install`'
-
- This command will create following directories and install files onto
- them.
-
- * `${DESTDIR}${prefix}/bin`
- * `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFOR
- M}`
- * `${DESTDIR}${prefix}/lib`
- * `${DESTDIR}${prefix}/lib/ruby`
- * `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${P
- LATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/$
- {PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/share/man/man1`
- * `${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system`
-
-
- If Ruby's API version is '*x.y.z*', the `${MAJOR}` is '*x*', the
- `${MINOR}` is '*y*', and the `${TEENY}` is '*z*'.
-
- **NOTE**: teeny of the API version may be different from one of Ruby's
- program version
-
- You may have to be a super user to install ruby.
-
-
-If you fail to compile ruby, please send the detailed error report with the
-error log and machine/OS type, to help others.
-
-Some extension libraries may not get compiled because of lack of necessary
-external libraries and/or headers, then you will need to run '`make
-distclean-ext`' to remove old configuration after installing them in such
-case.
-
-## Copying
-
-See the file `COPYING`.
-
-## Feedback
-
-Questions about the Ruby language can be asked on the Ruby-Talk mailing list
-(http://www.ruby-lang.org/en/community/mailing-lists) or on websites like
-(http://stackoverflow.com).
-
-Bug reports should be filed at http://bugs.ruby-lang.org
-
-## The Author
-
-Ruby was originally designed and developed by Yukihiro Matsumoto (Matz) in
-1995.
-
-<mailto:matz@ruby-lang.org>
diff --git a/addr2line.c b/addr2line.c
index c8faf48d62..f936694724 100644
--- a/addr2line.c
+++ b/addr2line.c
@@ -55,8 +55,11 @@ void *alloca();
# endif /* HAVE_ALLOCA_H */
#endif /* __GNUC__ */
-#ifdef HAVE_DLADDR
-# include <dlfcn.h>
+#ifdef HAVE_DL_ITERATE_PHDR
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+# endif
+# include <link.h>
#endif
#define DW_LNS_copy 0x01
@@ -85,13 +88,6 @@ void *alloca();
# define ElfW(x) Elf32##_##x
# endif
#endif
-#ifndef ELF_ST_TYPE
-# if SIZEOF_VOIDP == 8
-# define ELF_ST_TYPE ELF64_ST_TYPE
-# else
-# define ELF_ST_TYPE ELF32_ST_TYPE
-# endif
-#endif
#ifndef PATH_MAX
#define PATH_MAX 4096
#endif
@@ -101,22 +97,13 @@ int kprintf(const char *fmt, ...);
typedef struct {
const char *dirname;
const char *filename;
- const char *path; /* object path */
int line;
- uintptr_t base_addr;
- uintptr_t saddr;
- const char *sname; /* function name */
-} line_info_t;
-typedef struct obj_info obj_info_t;
-struct obj_info {
- const char *path; /* object path */
int fd;
void *mapped;
size_t mapped_size;
- uintptr_t base_addr;
- obj_info_t *next;
-};
+ unsigned long base_addr;
+} line_info_t;
/* Avoid consuming stack as this module may be used from signal handler */
static char binary_filename[PATH_MAX];
@@ -209,15 +196,34 @@ fill_filename(int file, char *include_directories, char *filenames,
}
}
+static int
+get_path_from_symbol(const char *symbol, const char **p, size_t *len)
+{
+ if (symbol[0] == '0') {
+ /* libexecinfo */
+ *p = strchr(symbol, '/');
+ if (*p == NULL) return 0;
+ *len = strlen(*p);
+ }
+ else {
+ /* glibc */
+ const char *q;
+ *p = symbol;
+ q = strchr(symbol, '(');
+ if (q == NULL) return 0;
+ *len = q - symbol;
+ }
+ return 1;
+}
+
static void
-fill_line(int num_traces, void **traces, uintptr_t addr, int file, int line,
- char *include_directories, char *filenames,
- obj_info_t *obj, line_info_t *lines, int offset)
+fill_line(int num_traces, void **traces,
+ unsigned long addr, int file, int line,
+ char *include_directories, char *filenames, line_info_t *lines)
{
int i;
- addr += obj->base_addr;
- for (i = offset; i < num_traces; i++) {
- uintptr_t a = (uintptr_t)traces[i];
+ for (i = 0; i < num_traces; i++) {
+ unsigned long a = (unsigned long)traces[i] - lines[i].base_addr;
/* We assume one line code doesn't result >100 bytes of native code.
We may want more reliable way eventually... */
if (addr < a && a < addr + 100) {
@@ -228,8 +234,8 @@ fill_line(int num_traces, void **traces, uintptr_t addr, int file, int line,
}
static void
-parse_debug_line_cu(int num_traces, void **traces, char **debug_line,
- obj_info_t *obj, line_info_t *lines, int offset)
+parse_debug_line_cu(int num_traces, void **traces,
+ char **debug_line, line_info_t *lines)
{
char *p, *cu_end, *cu_start, *include_directories, *filenames;
unsigned long unit_length;
@@ -275,7 +281,7 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,
is_stmt = default_is_stmt = *(unsigned char *)p;
p++;
- line_base = *(signed char *)p;
+ line_base = *(char *)p;
p++;
line_range = *(unsigned char *)p;
@@ -303,8 +309,7 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,
#define FILL_LINE() \
do { \
fill_line(num_traces, traces, addr, file, line, \
- include_directories, filenames, \
- obj, lines, offset); \
+ include_directories, filenames, lines); \
/*basic_block = prologue_end = epilogue_begin = 0;*/ \
} while (0)
@@ -403,12 +408,11 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,
static void
parse_debug_line(int num_traces, void **traces,
- char *debug_line, unsigned long size,
- obj_info_t *obj, line_info_t *lines, int offset)
+ char *debug_line, unsigned long size, line_info_t *lines)
{
char *debug_line_end = debug_line + size;
while (debug_line < debug_line_end) {
- parse_debug_line_cu(num_traces, traces, &debug_line, obj, lines, offset);
+ parse_debug_line_cu(num_traces, traces, &debug_line, lines);
}
if (debug_line != debug_line_end) {
kprintf("Unexpected size of .debug_line in %s\n",
@@ -417,27 +421,19 @@ parse_debug_line(int num_traces, void **traces,
}
/* read file and fill lines */
-static uintptr_t
-fill_lines(int num_traces, void **traces, int check_debuglink,
- obj_info_t **objp, line_info_t *lines, int offset);
-
static void
-append_obj(obj_info_t **objp) {
- obj_info_t *newobj = calloc(1, sizeof(obj_info_t));
- if (*objp) (*objp)->next = newobj;
- *objp = newobj;
-}
+fill_lines(int num_traces, void **traces, char **syms, int check_debuglink,
+ line_info_t *current_line, line_info_t *lines);
static void
-follow_debuglink(char *debuglink, int num_traces, void **traces,
- obj_info_t **objp, line_info_t *lines, int offset)
+follow_debuglink(char *debuglink, int num_traces, void **traces, char **syms,
+ line_info_t *current_line, line_info_t *lines)
{
/* Ideally we should check 4 paths to follow gnu_debuglink,
but we handle only one case for now as this format is used
by some linux distributions. See GDB's info for detail. */
static const char global_debug_dir[] = "/usr/lib/debug";
char *p, *subdir;
- obj_info_t *o1 = *objp, *o2;
p = strrchr(binary_filename, '/');
if (!p) {
@@ -448,22 +444,22 @@ follow_debuglink(char *debuglink, int num_traces, void **traces,
subdir = (char *)alloca(strlen(binary_filename) + 1);
strcpy(subdir, binary_filename);
strcpy(binary_filename, global_debug_dir);
- strlcat(binary_filename, subdir, PATH_MAX);
- strlcat(binary_filename, debuglink, PATH_MAX);
-
- append_obj(objp);
- o2 = *objp;
- o2->base_addr = o1->base_addr;
- o2->path = o1->path;
- fill_lines(num_traces, traces, 0, objp, lines, offset);
+ strncat(binary_filename, subdir,
+ PATH_MAX - strlen(binary_filename) - 1);
+ strncat(binary_filename, debuglink,
+ PATH_MAX - strlen(binary_filename) - 1);
+
+ munmap(current_line->mapped, current_line->mapped_size);
+ close(current_line->fd);
+ fill_lines(num_traces, traces, syms, 0, current_line, lines);
}
/* read file and fill lines */
-static uintptr_t
-fill_lines(int num_traces, void **traces, int check_debuglink,
- obj_info_t **objp, line_info_t *lines, int offset)
+static void
+fill_lines(int num_traces, void **traces, char **syms, int check_debuglink,
+ line_info_t *current_line, line_info_t *lines)
{
- int i, j;
+ int i;
char *shstr;
char *section_name;
ElfW(Ehdr) *ehdr;
@@ -472,27 +468,23 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
int fd;
off_t filesize;
char *file;
- ElfW(Shdr) *symtab_shdr = NULL, *strtab_shdr = NULL;
- ElfW(Shdr) *dynsym_shdr = NULL, *dynstr_shdr = NULL;
- obj_info_t *obj = *objp;
- uintptr_t dladdr_fbase = 0;
fd = open(binary_filename, O_RDONLY);
if (fd < 0) {
- goto fail;
+ return;
}
filesize = lseek(fd, 0, SEEK_END);
if (filesize < 0) {
int e = errno;
close(fd);
kprintf("lseek: %s\n", strerror(e));
- goto fail;
+ return;
}
#if SIZEOF_OFF_T > SIZEOF_SIZE_T
if (filesize > (off_t)SIZE_MAX) {
close(fd);
kprintf("Too large file %s\n", binary_filename);
- goto fail;
+ return;
}
#endif
lseek(fd, 0, SEEK_SET);
@@ -502,7 +494,7 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
int e = errno;
close(fd);
kprintf("mmap: %s\n", strerror(e));
- goto fail;
+ return;
}
ehdr = (ElfW(Ehdr) *)file;
@@ -512,12 +504,21 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
* it match non-elf file.
*/
close(fd);
- goto fail;
+ return;
}
- obj->fd = fd;
- obj->mapped = file;
- obj->mapped_size = (size_t)filesize;
+ current_line->fd = fd;
+ current_line->mapped = file;
+ current_line->mapped_size = (size_t)filesize;
+
+ for (i = 0; i < num_traces; i++) {
+ const char *path;
+ size_t len;
+ if (get_path_from_symbol(syms[i], &path, &len) &&
+ !strncmp(path, binary_filename, len)) {
+ lines[i].line = -1;
+ }
+ }
shdr = (ElfW(Shdr) *)(file + ehdr->e_shoff);
@@ -526,88 +527,11 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
for (i = 0; i < ehdr->e_shnum; i++) {
section_name = shstr + shdr[i].sh_name;
- switch (shdr[i].sh_type) {
- case SHT_STRTAB:
- if (!strcmp(section_name, ".strtab")) {
- strtab_shdr = shdr + i;
- }
- else if (!strcmp(section_name, ".dynstr")) {
- dynstr_shdr = shdr + i;
- }
- break;
- case SHT_SYMTAB:
- /* if (!strcmp(section_name, ".symtab")) */
- symtab_shdr = shdr + i;
- break;
- case SHT_DYNSYM:
- /* if (!strcmp(section_name, ".dynsym")) */
- dynsym_shdr = shdr + i;
+ if (!strcmp(section_name, ".debug_line")) {
+ debug_line_shdr = shdr + i;
break;
- case SHT_PROGBITS:
- if (!strcmp(section_name, ".debug_line")) {
- debug_line_shdr = shdr + i;
- }
- else if (!strcmp(section_name, ".gnu_debuglink")) {
- gnu_debuglink_shdr = shdr + i;
- }
- break;
- }
- }
-
- if (offset == -1) {
- /* main executable */
- offset = 0;
- if (dynsym_shdr && dynstr_shdr) {
- char *strtab = file + dynstr_shdr->sh_offset;
- ElfW(Sym) *symtab = (ElfW(Sym) *)(file + dynsym_shdr->sh_offset);
- int symtab_count = (int)(dynsym_shdr->sh_size / sizeof(ElfW(Sym)));
- for (j = 0; j < symtab_count; j++) {
- ElfW(Sym) *sym = &symtab[j];
- Dl_info info;
- void *h, *s;
- if (ELF_ST_TYPE(sym->st_info) != STT_FUNC || sym->st_size <= 0) continue;
- h = dlopen(NULL, RTLD_NOW|RTLD_LOCAL);
- if (!h) continue;
- s = dlsym(h, strtab + sym->st_name);
- if (!s) continue;
- if (dladdr(s, &info)) {
- dladdr_fbase = (uintptr_t)info.dli_fbase;
- break;
- }
- }
- if (ehdr->e_type == ET_EXEC) {
- obj->base_addr = 0;
- }
- else {
- /* PIE (position-independent executable) */
- obj->base_addr = dladdr_fbase;
- }
- }
- }
-
- if (!symtab_shdr) {
- symtab_shdr = dynsym_shdr;
- strtab_shdr = dynstr_shdr;
- }
-
- if (symtab_shdr && strtab_shdr) {
- char *strtab = file + strtab_shdr->sh_offset;
- ElfW(Sym) *symtab = (ElfW(Sym) *)(file + symtab_shdr->sh_offset);
- int symtab_count = (int)(symtab_shdr->sh_size / sizeof(ElfW(Sym)));
- for (j = 0; j < symtab_count; j++) {
- ElfW(Sym) *sym = &symtab[j];
- uintptr_t saddr = (uintptr_t)sym->st_value + obj->base_addr;
- if (ELF_ST_TYPE(sym->st_info) != STT_FUNC || sym->st_size <= 0) continue;
- for (i = offset; i < num_traces; i++) {
- uintptr_t d = (uintptr_t)traces[i] - saddr;
- if (lines[i].line > 0 || d <= 0 || d > (uintptr_t)sym->st_size)
- continue;
- /* fill symbol name and addr from .symtab */
- lines[i].sname = strtab + sym->st_name;
- lines[i].saddr = saddr;
- lines[i].path = obj->path;
- lines[i].base_addr = obj->base_addr;
- }
+ } else if (!strcmp(section_name, ".gnu_debuglink")) {
+ gnu_debuglink_shdr = shdr + i;
}
}
@@ -616,161 +540,111 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
let's check .gnu_debuglink section instead. */
if (gnu_debuglink_shdr && check_debuglink) {
follow_debuglink(file + gnu_debuglink_shdr->sh_offset,
- num_traces, traces,
- objp, lines, offset);
+ num_traces, traces, syms,
+ current_line, lines);
}
- goto finish;
+ return;
}
parse_debug_line(num_traces, traces,
file + debug_line_shdr->sh_offset,
debug_line_shdr->sh_size,
- obj, lines, offset);
-finish:
- return dladdr_fbase;
-fail:
- return (uintptr_t)-1;
+ lines);
}
-#define HAVE_MAIN_EXE_PATH
-#if defined(__FreeBSD__)
-# include <sys/sysctl.h>
-#endif
-/* ssize_t main_exe_path(void)
- *
- * store the path of the main executable to `binary_filename`,
- * and returns strlen(binary_filename).
- * it is NUL terminated.
- */
-#if defined(__linux__)
-ssize_t
-main_exe_path(void)
-{
-# define PROC_SELF_EXE "/proc/self/exe"
- ssize_t len = readlink(PROC_SELF_EXE, binary_filename, PATH_MAX);
- binary_filename[len] = 0;
- return len;
-}
-#elif defined(__FreeBSD__)
-ssize_t
-main_exe_path(void)
+#ifdef HAVE_DL_ITERATE_PHDR
+
+typedef struct {
+ int num_traces;
+ char **syms;
+ line_info_t *lines;
+} fill_base_addr_state_t;
+
+static int
+fill_base_addr(struct dl_phdr_info *info, size_t size, void *data)
{
- int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
- size_t len = PATH_MAX;
- int err = sysctl(mib, 4, binary_filename, &len, NULL, 0);
- if (err) {
- kprintf("Can't get the path of ruby");
- return -1;
+ int i;
+ fill_base_addr_state_t *st = (fill_base_addr_state_t *)data;
+ for (i = 0; i < st->num_traces; i++) {
+ const char *path;
+ size_t len;
+ size_t name_len = strlen(info->dlpi_name);
+
+ if (get_path_from_symbol(st->syms[i], &path, &len) &&
+ (len == name_len || (len > name_len && path[len-name_len-1] == '/')) &&
+ !strncmp(path+len-name_len, info->dlpi_name, name_len)) {
+ st->lines[i].base_addr = info->dlpi_addr;
+ }
}
- len--; /* sysctl sets strlen+1 */
- return len;
+ return 0;
}
-#else
-#undef HAVE_MAIN_EXE_PATH
-#endif
+
+#endif /* HAVE_DL_ITERATE_PHDR */
void
-rb_dump_backtrace_with_lines(int num_traces, void **traces)
+rb_dump_backtrace_with_lines(int num_traces, void **trace, char **syms)
{
int i;
/* async-signal unsafe */
- line_info_t *lines = (line_info_t *)calloc(num_traces, sizeof(line_info_t));
- obj_info_t *obj = NULL;
- /* 2 is NULL + main executable */
- void **dladdr_fbases = (void **)calloc(num_traces+2, sizeof(void *));
-#ifdef HAVE_MAIN_EXE_PATH
- char *main_path = NULL; /* used on printing backtrace */
- ssize_t len;
- if ((len = main_exe_path()) > 0) {
- main_path = (char *)alloca(len + 1);
- if (main_path) {
- uintptr_t addr;
- memcpy(main_path, binary_filename, len+1);
- append_obj(&obj);
- obj->path = main_path;
- addr = fill_lines(num_traces, traces, 1, &obj, lines, -1);
- if (addr != (uintptr_t)-1) {
- dladdr_fbases[0] = (void *)addr;
- }
+ line_info_t *lines = (line_info_t *)calloc(num_traces,
+ sizeof(line_info_t));
+
+ /* Note that line info of shared objects might not be shown
+ if we don't have dl_iterate_phdr */
+#ifdef HAVE_DL_ITERATE_PHDR
+ fill_base_addr_state_t fill_base_addr_state;
+
+ fill_base_addr_state.num_traces = num_traces;
+ fill_base_addr_state.syms = syms;
+ fill_base_addr_state.lines = lines;
+ /* maybe async-signal unsafe */
+ dl_iterate_phdr(fill_base_addr, &fill_base_addr_state);
+#endif /* HAVE_DL_ITERATE_PHDR */
+
+ for (i = 0; i < num_traces; i++) {
+ const char *path;
+ size_t len;
+ if (lines[i].line) {
+ continue;
+ }
+
+ if (!get_path_from_symbol(syms[i], &path, &len)) {
+ continue;
}
+
+ strncpy(binary_filename, path, len);
+ binary_filename[len] = '\0';
+
+ fill_lines(num_traces, trace, syms, 1, &lines[i], lines);
}
-#endif
- /* fill source lines by reading dwarf */
for (i = 0; i < num_traces; i++) {
- Dl_info info;
- if (lines[i].line) continue;
- if (dladdr(traces[i], &info)) {
- const char *path;
- void **p;
-
- /* skip symbols which is in already checked objects */
- /* if the binary is strip-ed, this may effect */
- for (p=dladdr_fbases; *p; p++) {
- if (*p == info.dli_fbase) {
- lines[i].path = info.dli_fname;
- lines[i].sname = info.dli_sname;
- goto next_line;
+ line_info_t *line = &lines[i];
+
+ if (line->line > 0) {
+ if (line->filename) {
+ if (line->dirname && line->dirname[0]) {
+ kprintf("%s %s/%s:%d\n", syms[i], line->dirname, line->filename, line->line);
}
+ else {
+ kprintf("%s %s:%d\n", syms[i], line->filename, line->line);
+ }
+ } else {
+ kprintf("%s ???:%d\n", syms[i], line->line);
}
- *p = info.dli_fbase;
-
- append_obj(&obj);
- obj->base_addr = (uintptr_t)info.dli_fbase;
- path = info.dli_fname;
- obj->path = path;
- lines[i].path = path;
- strcpy(binary_filename, path);
- fill_lines(num_traces, traces, 1, &obj, lines, i);
+ } else {
+ kprintf("%s\n", syms[i]);
}
-next_line:
- continue;
}
- /* output */
for (i = 0; i < num_traces; i++) {
line_info_t *line = &lines[i];
- uintptr_t addr = (uintptr_t)traces[i];
- uintptr_t d = addr - line->saddr;
- if (!line->path) {
- kprintf("[0x%lx]\n", addr);
- }
- else if (!line->saddr || !line->sname) {
- kprintf("%s [0x%lx]\n", line->path, addr);
- }
- else if (line->line <= 0) {
- kprintf("%s(%s+0x%lx) [0x%lx]\n", line->path, line->sname,
- d, addr);
- }
- else if (!line->filename) {
- kprintf("%s(%s+0x%lx) [0x%lx] ???:%d\n", line->path, line->sname,
- d, addr, line->line);
- }
- else if (line->dirname && line->dirname[0]) {
- kprintf("%s(%s+0x%lx) [0x%lx] %s/%s:%d\n", line->path, line->sname,
- d, addr, line->dirname, line->filename, line->line);
- }
- else {
- kprintf("%s(%s+0x%lx) [0x%lx] %s:%d\n", line->path, line->sname,
- d, addr, line->filename, line->line);
- }
- /* FreeBSD's backtrace may show _start and so on */
- if (line->sname && strcmp("main", line->sname) == 0)
- break;
- }
-
- /* free */
- while (obj) {
- obj_info_t *o = obj;
- obj = o->next;
- if (o->fd) {
- munmap(o->mapped, o->mapped_size);
- close(o->fd);
+ if (line->fd) {
+ munmap(line->mapped, line->mapped_size);
+ close(line->fd);
}
- free(o);
}
free(lines);
- free(dladdr_fbases);
}
/* From FreeBSD's lib/libstand/printf.c */
diff --git a/addr2line.h b/addr2line.h
index d99f010934..3782d89e07 100644
--- a/addr2line.h
+++ b/addr2line.h
@@ -14,7 +14,7 @@
#ifdef USE_ELF
void
-rb_dump_backtrace_with_lines(int num_traces, void **traces);
+rb_dump_backtrace_with_lines(int num_traces, void **traces, char **syms);
#endif /* USE_ELF */
diff --git a/array.c b/array.c
index 7ced6578a4..7760e3313e 100644
--- a/array.c
+++ b/array.c
@@ -11,9 +11,11 @@
**********************************************************************/
-#include "internal.h"
+#include "ruby/ruby.h"
#include "ruby/util.h"
#include "ruby/st.h"
+#include "ruby/encoding.h"
+#include "internal.h"
#include "probes.h"
#include "id.h"
@@ -29,6 +31,70 @@ static ID id_cmp, id_div, id_power;
#define ARY_DEFAULT_SIZE 16
#define ARY_MAX_SIZE (LONG_MAX / (int)sizeof(VALUE))
+void
+rb_mem_clear(register VALUE *mem, register long size)
+{
+ while (size--) {
+ *mem++ = Qnil;
+ }
+}
+
+static void
+ary_mem_clear(VALUE ary, long beg, long size)
+{
+ RARRAY_PTR_USE(ary, ptr, {
+ rb_mem_clear(ptr + beg, size);
+ });
+}
+
+static inline void
+memfill(register VALUE *mem, register long size, register VALUE val)
+{
+ while (size--) {
+ *mem++ = val;
+ }
+}
+
+static void
+ary_memfill(VALUE ary, long beg, long size, VALUE val)
+{
+ RARRAY_PTR_USE(ary, ptr, {
+ memfill(ptr + beg, size, val);
+ RB_OBJ_WRITTEN(ary, Qundef, val);
+ });
+}
+
+static void
+ary_memcpy(VALUE ary, long beg, long argc, const VALUE *argv)
+{
+#if 1
+ if (OBJ_PROMOTED(ary)) {
+ if (argc > (int)(128/sizeof(VALUE)) /* is magic number (cache line size) */) {
+ rb_gc_writebarrier_remember_promoted(ary);
+ RARRAY_PTR_USE(ary, ptr, {
+ MEMCPY(ptr+beg, argv, VALUE, argc);
+ });
+ }
+ else {
+ int i;
+ RARRAY_PTR_USE(ary, ptr, {
+ for (i=0; i<argc; i++) {
+ RB_OBJ_WRITE(ary, &ptr[i+beg], argv[i]);
+ }
+ });
+ }
+ }
+ else {
+ RARRAY_PTR_USE(ary, ptr, {
+ MEMCPY(ptr+beg, argv, VALUE, argc);
+ });
+ }
+#else
+ /* giveup write barrier (traditional way) */
+ MEMCPY(RARRAY_PTR(ary)+beg, argv, VALUE, argc);
+#endif
+}
+
# define ARY_SHARED_P(ary) \
(assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \
FL_TEST((ary),ELTS_SHARED)!=0)
@@ -129,74 +195,6 @@ static ID id_cmp, id_div, id_power;
FL_SET((ary), RARRAY_SHARED_ROOT_FLAG); \
} while (0)
-#define ARY_SET(a, i, v) RARRAY_ASET((assert(!ARY_SHARED_P(a)), (a)), (i), (v))
-
-void
-rb_mem_clear(register VALUE *mem, register long size)
-{
- while (size--) {
- *mem++ = Qnil;
- }
-}
-
-static void
-ary_mem_clear(VALUE ary, long beg, long size)
-{
- RARRAY_PTR_USE(ary, ptr, {
- rb_mem_clear(ptr + beg, size);
- });
-}
-
-static inline void
-memfill(register VALUE *mem, register long size, register VALUE val)
-{
- while (size--) {
- *mem++ = val;
- }
-}
-
-static void
-ary_memfill(VALUE ary, long beg, long size, VALUE val)
-{
- RARRAY_PTR_USE(ary, ptr, {
- memfill(ptr + beg, size, val);
- RB_OBJ_WRITTEN(ary, Qundef, val);
- });
-}
-
-static void
-ary_memcpy0(VALUE ary, long beg, long argc, const VALUE *argv, VALUE buff_owner_ary)
-{
-#if 1
- assert(!ARY_SHARED_P(buff_owner_ary));
-
- if (argc > (int)(128/sizeof(VALUE)) /* is magic number (cache line size) */) {
- rb_gc_writebarrier_remember(buff_owner_ary);
- RARRAY_PTR_USE(ary, ptr, {
- MEMCPY(ptr+beg, argv, VALUE, argc);
- });
- }
- else {
- int i;
- RARRAY_PTR_USE(ary, ptr, {
- for (i=0; i<argc; i++) {
- RB_OBJ_WRITE(buff_owner_ary, &ptr[i+beg], argv[i]);
- }
- });
- }
-#else
- /* giveup write barrier (traditional way) */
- RARRAY_PTR(buff_owner_ary);
- MEMCPY(RARRAY_PTR(ary)+beg, argv, VALUE, argc);
-#endif
-}
-
-static void
-ary_memcpy(VALUE ary, long beg, long argc, const VALUE *argv)
-{
- ary_memcpy0(ary, beg, argc, argv, ary);
-}
-
static void
ary_resize_capa(VALUE ary, long capacity)
{
@@ -346,27 +344,25 @@ rb_ary_modify(VALUE ary)
ARY_SET_PTR(ary, ptr);
}
- rb_gc_writebarrier_remember(ary);
+ /* TODO: age2 promotion, OBJ_PROMOTED() checks not infant. */
+ if (OBJ_PROMOTED(ary) && !OBJ_PROMOTED(shared)) {
+ rb_gc_writebarrier_remember_promoted(ary);
+ }
}
}
-static VALUE
+static void
ary_ensure_room_for_push(VALUE ary, long add_len)
{
- long old_len = RARRAY_LEN(ary);
- long new_len = old_len + add_len;
+ long new_len = RARRAY_LEN(ary) + add_len;
long capa;
- if (old_len > ARY_MAX_SIZE - add_len) {
- rb_raise(rb_eIndexError, "index %ld too big", new_len);
- }
if (ARY_SHARED_P(ary)) {
if (new_len > RARRAY_EMBED_LEN_MAX) {
VALUE shared = ARY_SHARED(ary);
if (ARY_SHARED_OCCUPIED(shared)) {
if (RARRAY_CONST_PTR(ary) - RARRAY_CONST_PTR(shared) + new_len <= RARRAY_LEN(shared)) {
rb_ary_modify_check(ary);
- return shared;
}
else {
/* if array is shared, then it is likely it participate in push/shift pattern */
@@ -375,8 +371,8 @@ ary_ensure_room_for_push(VALUE ary, long add_len)
if (new_len > capa - (capa >> 6)) {
ary_double_capa(ary, new_len);
}
- return ary;
}
+ return;
}
}
}
@@ -385,8 +381,6 @@ ary_ensure_room_for_push(VALUE ary, long add_len)
if (new_len > capa) {
ary_double_capa(ary, new_len);
}
-
- return ary;
}
/*
@@ -476,14 +470,17 @@ ary_new(VALUE klass, long capa)
RUBY_DTRACE_ARRAY_CREATE(capa, rb_sourcefile(), rb_sourceline());
}
- ary = ary_alloc(klass);
if (capa > RARRAY_EMBED_LEN_MAX) {
ptr = ALLOC_N(VALUE, capa);
+ ary = ary_alloc(klass);
FL_UNSET_EMBED(ary);
ARY_SET_PTR(ary, ptr);
ARY_SET_CAPA(ary, capa);
ARY_SET_HEAP_LEN(ary, 0);
}
+ else {
+ ary = ary_alloc(klass);
+ }
return ary;
}
@@ -501,7 +498,7 @@ rb_ary_new(void)
}
VALUE
-(rb_ary_new_from_args)(long n, ...)
+rb_ary_new_from_args(long n, ...)
{
va_list ar;
VALUE ary;
@@ -511,7 +508,7 @@ VALUE
va_start(ar, n);
for (i=0; i<n; i++) {
- ARY_SET(ary, i, va_arg(ar, VALUE));
+ RARRAY_ASET(ary, i, va_arg(ar, VALUE));
}
va_end(ar);
@@ -539,15 +536,6 @@ rb_ary_tmp_new(long capa)
return ary_new(0, capa);
}
-VALUE
-rb_ary_tmp_new_fill(long capa)
-{
- VALUE ary = ary_new(0, capa);
- ary_memfill(ary, 0, capa, Qnil);
- ARY_SET_LEN(ary, capa);
- return ary;
-}
-
void
rb_ary_free(VALUE ary)
{
@@ -593,7 +581,7 @@ ary_make_shared(VALUE ary)
}
else {
long capa = ARY_CAPA(ary), len = RARRAY_LEN(ary);
- NEWOBJ_OF(shared, struct RArray, 0, T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));
+ NEWOBJ_OF(shared, struct RArray, 0, T_ARRAY); /* keep shared ary as non-WB-protected */
FL_UNSET_EMBED(shared);
ARY_SET_LEN((VALUE)shared, capa);
@@ -669,16 +657,16 @@ rb_ary_s_try_convert(VALUE dummy, VALUE ary)
/*
* call-seq:
- * Array.new(size=0, default=nil)
+ * Array.new(size=0, obj=nil)
* Array.new(array)
* Array.new(size) {|index| block }
*
* Returns a new array.
*
* In the first form, if no arguments are sent, the new array will be empty.
- * When a +size+ and an optional +default+ are sent, an array is created with
- * +size+ copies of +default+. Take notice that all elements will reference the
- * same object +default+.
+ * When a +size+ and an optional +obj+ are sent, an array is created with
+ * +size+ copies of +obj+. Take notice that all elements will reference the
+ * same object +obj+.
*
* The second form creates a copy of the array passed as a parameter (the
* array is generated by calling to_ary on the parameter).
@@ -752,14 +740,12 @@ rb_ary_initialize(int argc, VALUE *argv, VALUE ary)
}
len = NUM2LONG(size);
- /* NUM2LONG() may call size.to_int, ary can be frozen, modified, etc */
if (len < 0) {
rb_raise(rb_eArgError, "negative array size");
}
if (len > ARY_MAX_SIZE) {
rb_raise(rb_eArgError, "array size too big");
}
- /* recheck after argument conversion */
rb_ary_modify(ary);
ary_resize_capa(ary, len);
if (rb_block_given_p()) {
@@ -827,7 +813,7 @@ rb_ary_store(VALUE ary, long idx, VALUE val)
if (idx >= len) {
ARY_SET_LEN(ary, idx + 1);
}
- ARY_SET(ary, idx, val);
+ RARRAY_ASET(ary, idx, val);
}
static VALUE
@@ -871,7 +857,7 @@ enum ary_take_pos_flags
};
static VALUE
-ary_take_first_or_last(int argc, const VALUE *argv, VALUE ary, enum ary_take_pos_flags last)
+ary_take_first_or_last(int argc, VALUE *argv, VALUE ary, enum ary_take_pos_flags last)
{
VALUE nv;
long n;
@@ -910,20 +896,20 @@ VALUE
rb_ary_push(VALUE ary, VALUE item)
{
long idx = RARRAY_LEN(ary);
- VALUE target_ary = ary_ensure_room_for_push(ary, 1);
- RARRAY_PTR_USE(ary, ptr, {
- RB_OBJ_WRITE(target_ary, &ptr[idx], item);
- });
+
+ ary_ensure_room_for_push(ary, 1);
+ RARRAY_ASET(ary, idx, item);
ARY_SET_LEN(ary, idx + 1);
return ary;
}
VALUE
-rb_ary_cat(VALUE ary, const VALUE *argv, long len)
+rb_ary_cat(VALUE ary, const VALUE *ptr, long len)
{
long oldlen = RARRAY_LEN(ary);
- VALUE target_ary = ary_ensure_room_for_push(ary, len);
- ary_memcpy0(ary, oldlen, len, argv, target_ary);
+
+ ary_ensure_room_for_push(ary, len);
+ ary_memcpy(ary, oldlen, len, ptr);
ARY_SET_LEN(ary, oldlen + len);
return ary;
}
@@ -1020,11 +1006,11 @@ rb_ary_shift(VALUE ary)
}
assert(!ARY_EMBED_P(ary)); /* ARY_EMBED_LEN_MAX < ARY_DEFAULT_SIZE */
- ARY_SET(ary, 0, Qnil);
+ RARRAY_ASET(ary, 0, Qnil);
ary_make_shared(ary);
}
else if (ARY_SHARED_OCCUPIED(ARY_SHARED(ary))) {
- RARRAY_PTR_USE(ary, ptr, ptr[0] = Qnil);
+ RARRAY_ASET(ary, 0, Qnil);
}
ARY_INCREASE_PTR(ary, 1); /* shift ptr */
ARY_INCREASE_LEN(ary, -1);
@@ -1084,7 +1070,7 @@ rb_ary_shift_m(int argc, VALUE *argv, VALUE ary)
return result;
}
-static VALUE
+static void
ary_ensure_room_for_unshift(VALUE ary, int argc)
{
long len = RARRAY_LEN(ary);
@@ -1092,10 +1078,6 @@ ary_ensure_room_for_unshift(VALUE ary, int argc)
long capa;
const VALUE *head, *sharedp;
- if (len > ARY_MAX_SIZE - argc) {
- rb_raise(rb_eIndexError, "index %ld too big", new_len);
- }
-
if (ARY_SHARED_P(ary)) {
VALUE shared = ARY_SHARED(ary);
capa = RARRAY_LEN(shared);
@@ -1130,16 +1112,12 @@ ary_ensure_room_for_unshift(VALUE ary, int argc)
head = sharedp + argc + room;
}
ARY_SET_PTR(ary, head - argc);
- assert(ARY_SHARED_OCCUPIED(ARY_SHARED(ary)));
- return ARY_SHARED(ary);
}
else {
/* sliding items */
RARRAY_PTR_USE(ary, ptr, {
MEMMOVE(ptr + argc, ptr, VALUE, len);
});
-
- return ary;
}
}
@@ -1159,15 +1137,14 @@ static VALUE
rb_ary_unshift_m(int argc, VALUE *argv, VALUE ary)
{
long len = RARRAY_LEN(ary);
- VALUE target_ary;
if (argc == 0) {
rb_ary_modify_check(ary);
return ary;
}
- target_ary = ary_ensure_room_for_unshift(ary, argc);
- ary_memcpy0(ary, 0, argc, argv, target_ary);
+ ary_ensure_room_for_unshift(ary, argc);
+ ary_memcpy(ary, 0, argc, argv);
ARY_SET_LEN(ary, len + argc);
return ary;
}
@@ -1254,7 +1231,7 @@ rb_ary_subseq(VALUE ary, long beg, long len)
*/
VALUE
-rb_ary_aref(int argc, const VALUE *argv, VALUE ary)
+rb_ary_aref(int argc, VALUE *argv, VALUE ary)
{
VALUE arg;
long beg, len;
@@ -1349,7 +1326,7 @@ rb_ary_first(int argc, VALUE *argv, VALUE ary)
*/
VALUE
-rb_ary_last(int argc, const VALUE *argv, VALUE ary)
+rb_ary_last(int argc, VALUE *argv, VALUE ary)
{
if (argc == 0) {
long len = RARRAY_LEN(ary);
@@ -1578,24 +1555,20 @@ rb_ary_splice(VALUE ary, long beg, long len, VALUE rpl)
olen = RARRAY_LEN(ary); /* ary may be resized in rpl.to_ary too */
}
if (beg >= olen) {
- VALUE target_ary;
if (beg > ARY_MAX_SIZE - rlen) {
rb_raise(rb_eIndexError, "index %ld too big", beg);
}
- target_ary = ary_ensure_room_for_push(ary, rlen-len); /* len is 0 or negative */
+ ary_ensure_room_for_push(ary, rlen-len); /* len is 0 or negative */
len = beg + rlen;
ary_mem_clear(ary, olen, beg - olen);
if (rlen > 0) {
- ary_memcpy0(ary, beg, rlen, RARRAY_CONST_PTR(rpl), target_ary);
+ ary_memcpy(ary, beg, rlen, RARRAY_CONST_PTR(rpl));
}
ARY_SET_LEN(ary, len);
}
else {
long alen;
- if (olen - len > ARY_MAX_SIZE - rlen) {
- rb_raise(rb_eIndexError, "index %ld too big", olen + rlen - len);
- }
rb_ary_modify(ary);
alen = olen + rlen - len;
if (alen >= ARY_CAPA(ary)) {
@@ -1748,9 +1721,7 @@ fixnum:
* Inserts the given values before the element with the given +index+.
*
* Negative indices count backwards from the end of the array, where +-1+ is
- * the last element. If a negative index is used, the given values will be
- * inserted after that element, so using an index of +-1+ will insert the
- * values at the end of the array.
+ * the last element.
*
* a = %w{ a b c d }
* a.insert(2, 99) #=> ["a", "b", 99, "c", "d"]
@@ -2744,7 +2715,7 @@ rb_ary_collect_bang(VALUE ary)
}
VALUE
-rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func) (VALUE, long))
+rb_get_values_at(VALUE obj, long olen, int argc, VALUE *argv, VALUE (*func) (VALUE, long))
{
VALUE result = rb_ary_new2(argc);
long beg, len, i, j;
@@ -3262,10 +3233,8 @@ rb_ary_zip(int argc, VALUE *argv, VALUE ary)
if (rb_block_given_p()) {
int arity = rb_block_arity();
- if (arity > 1) {
- VALUE work, *tmp;
-
- tmp = ALLOCV_N(VALUE, work, argc+1);
+ if (arity > 1 && argc+1 < 0x100) {
+ VALUE *tmp = ALLOCA_N(VALUE, argc+1);
for (i=0; i<RARRAY_LEN(ary); i++) {
tmp[0] = RARRAY_AREF(ary, i);
@@ -3274,8 +3243,6 @@ rb_ary_zip(int argc, VALUE *argv, VALUE ary)
}
rb_yield_values2(argc+1, tmp);
}
-
- if (work) ALLOCV_END(work);
}
else {
for (i=0; i<RARRAY_LEN(ary); i++) {
@@ -3514,7 +3481,7 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary)
for (i=beg; i<end; i++) {
v = rb_yield(LONG2NUM(i));
if (i>=RARRAY_LEN(ary)) break;
- ARY_SET(ary, i, v);
+ RARRAY_ASET(ary, i, v);
}
}
else {
@@ -3536,13 +3503,6 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary)
* c #=> [ "a", "b", "c", "d", "e", "f" ]
* a #=> [ "a", "b", "c" ]
*
- * Note that
- * x += y
- * is the same as
- * x = x + y
- * This means that it produces a new array. As a consequence,
- * repeated use of <code>+=</code> on arrays can be quite inefficient.
- *
* See also Array#concat.
*/
@@ -3774,7 +3734,7 @@ rb_ary_equal(VALUE ary1, VALUE ary2)
{
if (ary1 == ary2) return Qtrue;
if (!RB_TYPE_P(ary2, T_ARRAY)) {
- if (!rb_respond_to(ary2, idTo_ary)) {
+ if (!rb_respond_to(ary2, rb_intern("to_ary"))) {
return Qfalse;
}
return rb_equal(ary2, ary1);
@@ -3823,8 +3783,6 @@ rb_ary_eql(VALUE ary1, VALUE ary2)
*
* Two arrays with the same content will have the same hash code (and will
* compare using #eql?).
- *
- * See also Object#hash.
*/
static VALUE
@@ -3860,15 +3818,9 @@ VALUE
rb_ary_includes(VALUE ary, VALUE item)
{
long i;
- VALUE e;
for (i=0; i<RARRAY_LEN(ary); i++) {
- e = RARRAY_AREF(ary, i);
- switch (rb_equal_opt(e, item)) {
- case Qundef:
- if (rb_equal(e, item)) return Qtrue;
- break;
- case Qtrue:
+ if (rb_equal(RARRAY_AREF(ary, i), item)) {
return Qtrue;
}
}
@@ -3903,26 +3855,21 @@ recursive_cmp(VALUE ary1, VALUE ary2, int recur)
* Comparison --- Returns an integer (+-1+, +0+, or <code>+1</code>) if this
* array is less than, equal to, or greater than +other_ary+.
*
+ * +nil+ is returned if the two values are incomparable.
+ *
* Each object in each array is compared (using the <=> operator).
*
- * Arrays are compared in an "element-wise" manner; the first element of +ary+
- * is compared with the first one of +other_ary+ using the <=> operator, then
- * each of the second elements, etc...
- * As soon as the result of any such comparison is non zero (i.e. the two
- * corresponding elements are not equal), that result is returned for the
- * whole array comparison.
+ * Arrays are compared in an "element-wise" manner; the first two elements
+ * that are not equal will determine the return value for the whole
+ * comparison.
*
- * If all the elements are equal, then the result is based on a comparison of
+ * If all the values are equal, then the return is based on a comparison of
* the array lengths. Thus, two arrays are "equal" according to Array#<=> if,
* and only if, they have the same length and the value of each element is
* equal to the value of the corresponding element in the other array.
*
- * +nil+ is returned if the +other_ary+ is not an array or if the comparison
- * of two elements returned +nil+.
- *
* [ "a", "a", "c" ] <=> [ "a", "b", "c" ] #=> -1
* [ 1, 2, 3, 4, 5, 6 ] <=> [ 1, 2 ] #=> +1
- * [ 1, 2 ] <=> [ 1, :two ] #=> nil
*
*/
@@ -4383,7 +4330,7 @@ flatten(VALUE ary, int level, int *modified)
st_free_table(memo);
- RBASIC_SET_CLASS(result, rb_obj_class(ary));
+ RBASIC_SET_CLASS(result, rb_class_of(ary));
return result;
}
@@ -4481,13 +4428,7 @@ static ID id_random;
*
* Shuffles elements in +self+ in place.
*
- * a = [ 1, 2, 3 ] #=> [1, 2, 3]
- * a.shuffle! #=> [2, 3, 1]
- * a #=> [2, 3, 1]
- *
* The optional +rng+ argument will be used as the random number generator.
- *
- * a.shuffle!(random: Random.new(1)) #=> [1, 3, 2]
*/
static VALUE
@@ -4534,7 +4475,6 @@ rb_ary_shuffle_bang(int argc, VALUE *argv, VALUE ary)
*
* a = [ 1, 2, 3 ] #=> [1, 2, 3]
* a.shuffle #=> [2, 3, 1]
- * a #=> [1, 2, 3]
*
* The optional +rng+ argument will be used as the random number generator.
*
@@ -4764,7 +4704,8 @@ yield_indexed_values(const VALUE values, const long r, const long *const p)
}
/*
- * Compute permutations of +r+ elements of the set <code>[0..n-1]</code>.
+ * Recursively compute permutations of +r+ elements of the set
+ * <code>[0..n-1]</code>.
*
* When we have a complete permutation of array indexes, copy the values
* at those indexes into a new array and yield that array.
@@ -4772,40 +4713,28 @@ yield_indexed_values(const VALUE values, const long r, const long *const p)
* n: the size of the set
* r: the number of elements in each permutation
* p: the array (of size r) that we're filling in
+ * index: what index we're filling in now
* used: an array of booleans: whether a given index is already used
* values: the Ruby array that holds the actual values to permute
*/
static void
-permute0(const long n, const long r, long *const p, char *const used, const VALUE values)
+permute0(long n, long r, long *p, long index, char *used, VALUE values)
{
- long i = 0, index = 0;
-
- for (;;) {
- const char *const unused = memchr(&used[i], 0, n-i);
- if (!unused) {
- if (!index) break;
- i = p[--index]; /* pop index */
- used[i++] = 0; /* index unused */
- }
- else {
- i = unused - used;
+ long i;
+ for (i = 0; i < n; i++) {
+ if (used[i] == 0) {
p[index] = i;
- used[i] = 1; /* mark index used */
- ++index;
if (index < r-1) { /* if not done yet */
- p[index] = i = 0;
- continue;
+ used[i] = 1; /* mark index used */
+ permute0(n, r, p, index+1, /* recurse */
+ used, values);
+ used[i] = 0; /* index unused */
}
- for (i = 0; i < n; ++i) {
- if (used[i]) continue;
- p[index] = i;
+ else {
if (!yield_indexed_values(values, r, p)) {
rb_raise(rb_eRuntimeError, "permute reentered");
}
}
- i = p[--index]; /* pop index */
- used[i] = 0; /* index unused */
- p[index] = ++i;
}
}
}
@@ -4900,42 +4829,23 @@ rb_ary_permutation(int argc, VALUE *argv, VALUE ary)
}
}
else { /* this is the general case */
- volatile VALUE t0;
- long *p = (long*)ALLOCV(t0, r*sizeof(long)+n*sizeof(char));
- char *used = (char*)(p + r);
+ volatile VALUE t0 = tmpbuf(r,sizeof(long));
+ long *p = (long*)RSTRING_PTR(t0);
+ volatile VALUE t1 = tmpbuf(n,sizeof(char));
+ char *used = (char*)RSTRING_PTR(t1);
VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */
RBASIC_CLEAR_CLASS(ary0);
MEMZERO(used, char, n); /* initialize array */
- permute0(n, r, p, used, ary0); /* compute and yield permutations */
- ALLOCV_END(t0);
+ permute0(n, r, p, 0, used, ary0); /* compute and yield permutations */
+ tmpbuf_discard(t0);
+ tmpbuf_discard(t1);
RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
}
return ary;
}
-static void
-combinate0(const long len, const long n, long *const stack, const VALUE values)
-{
- long lev = 0;
-
- MEMZERO(stack+1, long, n);
- stack[0] = -1;
- for (;;) {
- for (lev++; lev < n; lev++) {
- stack[lev+1] = stack[lev]+1;
- }
- if (!yield_indexed_values(values, n, stack+1)) {
- rb_raise(rb_eRuntimeError, "combination reentered");
- }
- do {
- if (lev == 0) return;
- stack[lev--]++;
- } while (stack[lev+1]+n == len+lev+1);
- }
-}
-
static VALUE
rb_ary_combination_size(VALUE ary, VALUE args, VALUE eobj)
{
@@ -4973,7 +4883,7 @@ rb_ary_combination_size(VALUE ary, VALUE args, VALUE eobj)
static VALUE
rb_ary_combination(VALUE ary, VALUE num)
{
- long i, n, len;
+ long n, i, len;
n = NUM2LONG(num);
RETURN_SIZED_ENUMERATOR(ary, 1, &num, rb_ary_combination_size);
@@ -4985,7 +4895,7 @@ rb_ary_combination(VALUE ary, VALUE num)
rb_yield(rb_ary_new2(0));
}
else if (n == 1) {
- for (i = 0; i < RARRAY_LEN(ary); i++) {
+ for (i = 0; i < len; i++) {
rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
}
}
@@ -4993,9 +4903,24 @@ rb_ary_combination(VALUE ary, VALUE num)
VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */
volatile VALUE t0;
long *stack = ALLOCV_N(long, t0, n+1);
+ long lev = 0;
RBASIC_CLEAR_CLASS(ary0);
- combinate0(len, n, stack, ary0);
+ MEMZERO(stack+1, long, n);
+ stack[0] = -1;
+ for (;;) {
+ for (lev++; lev < n; lev++) {
+ stack[lev+1] = stack[lev]+1;
+ }
+ if (!yield_indexed_values(ary0, n, stack+1)) {
+ rb_raise(rb_eRuntimeError, "combination reentered");
+ }
+ do {
+ if (lev == 0) goto done;
+ stack[lev--]++;
+ } while (stack[lev+1]+n == len+lev+1);
+ }
+ done:
ALLOCV_END(t0);
RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
}
@@ -5003,7 +4928,7 @@ rb_ary_combination(VALUE ary, VALUE num)
}
/*
- * Compute repeated permutations of +r+ elements of the set
+ * Recursively compute repeated permutations of +r+ elements of the set
* <code>[0..n-1]</code>.
*
* When we have a complete repeated permutation of array indexes, copy the
@@ -5012,28 +4937,23 @@ rb_ary_combination(VALUE ary, VALUE num)
* n: the size of the set
* r: the number of elements in each permutation
* p: the array (of size r) that we're filling in
+ * index: what index we're filling in now
* values: the Ruby array that holds the actual values to permute
*/
static void
-rpermute0(const long n, const long r, long *const p, const VALUE values)
+rpermute0(long n, long r, long *p, long index, VALUE values)
{
- long i = 0, index = 0;
-
- p[index] = i;
- for (;;) {
- if (++index < r-1) {
- p[index] = i = 0;
- continue;
+ long i;
+ for (i = 0; i < n; i++) {
+ p[index] = i;
+ if (index < r-1) { /* if not done yet */
+ rpermute0(n, r, p, index+1, values); /* recurse */
}
- for (i = 0; i < n; ++i) {
- p[index] = i;
+ else {
if (!yield_indexed_values(values, r, p)) {
rb_raise(rb_eRuntimeError, "repeated permute reentered");
}
}
- do {
- if (index <= 0) return;
- } while ((i = ++p[--index]) >= n);
}
}
@@ -5096,38 +5016,31 @@ rb_ary_repeated_permutation(VALUE ary, VALUE num)
}
}
else { /* this is the general case */
- volatile VALUE t0;
- long *p = ALLOCV_N(long, t0, r);
+ volatile VALUE t0 = tmpbuf(r, sizeof(long));
+ long *p = (long*)RSTRING_PTR(t0);
VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */
RBASIC_CLEAR_CLASS(ary0);
- rpermute0(n, r, p, ary0); /* compute and yield repeated permutations */
- ALLOCV_END(t0);
+ rpermute0(n, r, p, 0, ary0); /* compute and yield repeated permutations */
+ tmpbuf_discard(t0);
RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
}
return ary;
}
static void
-rcombinate0(const long n, const long r, long *const p, const long rest, const VALUE values)
+rcombinate0(long n, long r, long *p, long index, long rest, VALUE values)
{
- long i = 0, index = 0;
-
- p[index] = i;
- for (;;) {
- if (++index < r-1) {
- p[index] = i;
- continue;
+ if (rest > 0) {
+ for (; index < n; ++index) {
+ p[r-rest] = index;
+ rcombinate0(n, r, p, index, rest-1, values);
}
- for (; i < n; ++i) {
- p[index] = i;
- if (!yield_indexed_values(values, r, p)) {
- rb_raise(rb_eRuntimeError, "repeated combination reentered");
- }
+ }
+ else {
+ if (!yield_indexed_values(values, r, p)) {
+ rb_raise(rb_eRuntimeError, "repeated combination reentered");
}
- do {
- if (index <= 0) return;
- } while ((i = ++p[--index]) >= n);
}
}
@@ -5184,7 +5097,7 @@ rb_ary_repeated_combination(VALUE ary, VALUE num)
rb_yield(rb_ary_new2(0));
}
else if (n == 1) {
- for (i = 0; i < RARRAY_LEN(ary); i++) {
+ for (i = 0; i < len; i++) {
rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
}
}
@@ -5192,13 +5105,13 @@ rb_ary_repeated_combination(VALUE ary, VALUE num)
/* yield nothing */
}
else {
- volatile VALUE t0;
- long *p = ALLOCV_N(long, t0, n);
+ volatile VALUE t0 = tmpbuf(n, sizeof(long));
+ long *p = (long*)RSTRING_PTR(t0);
VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */
RBASIC_CLEAR_CLASS(ary0);
- rcombinate0(len, n, p, n, ary0); /* compute and yield repeated combinations */
- ALLOCV_END(t0);
+ rcombinate0(len, n, p, 0, n, ary0); /* compute and yield repeated combinations */
+ tmpbuf_discard(t0);
RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
}
return ary;
@@ -5429,31 +5342,6 @@ rb_ary_drop_while(VALUE ary)
}
/*
- * call-seq:
- * ary.any? [{ |obj| block }] -> true or false
- *
- * See also Enumerable#any?
- */
-
-static VALUE
-rb_ary_any_p(VALUE ary)
-{
- long i, len = RARRAY_LEN(ary);
- const VALUE *ptr = RARRAY_CONST_PTR(ary);
-
- if (!len) return Qfalse;
- if (!rb_block_given_p()) {
- for (i = 0; i < len; ++i) if (RTEST(ptr[i])) return Qtrue;
- }
- else {
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qtrue;
- }
- }
- return Qfalse;
-}
-
-/*
* Arrays are ordered, integer-indexed collections of any object.
*
* Array indexing starts at 0, as in C or Java. A negative index is assumed
@@ -5486,8 +5374,7 @@ rb_ary_any_p(VALUE ary)
* This method is safe to use with mutable objects such as hashes, strings or
* other arrays:
*
- * Array.new(4) { Hash.new } #=> [{}, {}, {}, {}]
- * Array.new(4) {|i| i.to_s } #=> ["0", "1", "2", "3"]
+ * Array.new(4) { Hash.new } #=> [{}, {}, {}, {}]
*
* This is also a quick way to build up multi-dimensional arrays:
*
@@ -5803,7 +5690,6 @@ Init_Array(void)
rb_define_method(rb_cArray, "drop", rb_ary_drop, 1);
rb_define_method(rb_cArray, "drop_while", rb_ary_drop_while, 0);
rb_define_method(rb_cArray, "bsearch", rb_ary_bsearch, 0);
- rb_define_method(rb_cArray, "any?", rb_ary_any_p, 0);
id_cmp = rb_intern("<=>");
id_random = rb_intern("random");
diff --git a/benchmark/bm_app_aobench.rb b/benchmark/bm_app_aobench.rb
index ffab116fcd..807349089f 100644
--- a/benchmark/bm_app_aobench.rb
+++ b/benchmark/bm_app_aobench.rb
@@ -1,6 +1,7 @@
-# AO render benchmark
+# AO rebder benchmark
# Original program (C) Syoyo Fujita in Javascript (and other languages)
-# https://code.google.com/p/aobench/
+# http://lucille.atso-net.jp/blog/?p=642
+# http://lucille.atso-net.jp/blog/?p=711
# Ruby(yarv2llvm) version by Hideki Miura
#
diff --git a/benchmark/bm_app_lc_fizzbuzz.rb b/benchmark/bm_app_lc_fizzbuzz.rb
deleted file mode 100644
index f09574bbeb..0000000000
--- a/benchmark/bm_app_lc_fizzbuzz.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# FizzBuzz program using only lambda calculus
-#
-# This program is quoted from
-# "Understanding Computation" by Tom Stuart
-# http://computationbook.com/
-#
-# You can understand why this program works fine by reading this book.
-#
-
-solution = -> k { -> f { -> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> l { -> x { -> g { -> b { b }[-> p { p[-> x { -> y { x } }] }[l]][x][-> y { g[f[-> l { -> p { p[-> x { -> y { y } }] }[-> p { p[-> x { -> y { y } }] }[l]] }[l]][x][g]][-> l { -> p { p[-> x { -> y { x } }] }[-> p { p[-> x { -> y { y } }] }[l]] }[l]][y] }] } } } }][k][-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> l { -> x { -> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[l][f[x]] } }] } }[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[m][n]][-> x { -> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[f[-> n { -> p { -> x { p[n[p][x]] } } }[m]][n]][m][x] }][-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]] } } }][-> p { -> x { p[x] } }][-> p { -> x { p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[x]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] } }]][-> n { -> b { b }[-> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-> p { -> x { p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[x]]]]]]]]]]]]]]] } }]]][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]][-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]][-> b { b }[-> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-> p { -> x { p[p[p[x]]] } }]]][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]][-> b { b }[-> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-> p { -> x { p[p[p[p[p[x]]]]] } }]]][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]][-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]][-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> n { -> l { -> x { -> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> l { -> x { -> g { -> b { b }[-> p { p[-> x { -> y { x } }] }[l]][x][-> y { g[f[-> l { -> p { p[-> x { -> y { y } }] }[-> p { p[-> x { -> y { y } }] }[l]] }[l]][x][g]][-> l { -> p { p[-> x { -> y { x } }] }[-> p { p[-> x { -> y { y } }] }[l]] }[l]][y] }] } } } }][l][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][x]][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }] } }[-> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]][-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> x { f[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { -> n { -> p { -> x { p[n[p][x]] } } }[f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n]][x] }][-> p { -> x { x } }] } } }][n][-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]][x] }]][-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]] } }][n]]]] }]
-
-FIRST = -> l { LEFT[RIGHT[l]] }
-IF = -> b { b }
-LEFT = -> p { p[-> x { -> y { x } } ] }
-RIGHT = -> p { p[-> x { -> y { y } } ] }
-IS_EMPTY = LEFT
-REST = -> l { RIGHT[RIGHT[l]] }
-
-def to_integer(proc)
- proc[-> n { n + 1 }][0]
-end
-
-def to_boolean(proc)
- IF[proc][true][false]
-end
-
-def to_array(proc)
- array = []
-
- until to_boolean(IS_EMPTY[proc])
- array.push(FIRST[proc])
- proc = REST[proc]
- end
-
- array
-end
-
-def to_char(c)
- '0123456789BFiuz'.slice(to_integer(c))
-end
-
-def to_string(s)
- to_array(s).map { |c| to_char(c) }.join
-end
-
-answer = to_array(solution).map do |p|
- to_string(p)
-end
-
-answer_ary = answer.to_a
-# puts answer_ary
diff --git a/benchmark/bm_hash_aref_flo.rb b/benchmark/bm_hash_aref_flo.rb
deleted file mode 100644
index 2217274c82..0000000000
--- a/benchmark/bm_hash_aref_flo.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}
-strs = [*1..10000].map! {|i| i.fdiv(10)}
-strs.each { |s| h[s] = s }
-50.times { strs.each { |s| h[s] } }
diff --git a/benchmark/bm_hash_aref_miss.rb b/benchmark/bm_hash_aref_miss.rb
deleted file mode 100644
index b0913dd4bb..0000000000
--- a/benchmark/bm_hash_aref_miss.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-h = {}
-strs = ('a'..'z').to_a.map!(&:freeze)
-strs.each { |s| h[s] = s }
-strs = ('A'..'Z').to_a
-200_000.times { strs.each { |s| h[s] } }
diff --git a/benchmark/bm_hash_aref_str.rb b/benchmark/bm_hash_aref_str.rb
deleted file mode 100644
index 19439b061b..0000000000
--- a/benchmark/bm_hash_aref_str.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}
-strs = ('a'..'z').to_a.map!(&:freeze)
-strs.each { |s| h[s] = s }
-200_000.times { strs.each { |s| h[s] } }
diff --git a/benchmark/bm_hash_aref_sym.rb b/benchmark/bm_hash_aref_sym.rb
deleted file mode 100644
index f75d163fe6..0000000000
--- a/benchmark/bm_hash_aref_sym.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-h = {}
-syms = ('a'..'z').to_a
-begin
- syms = eval("%i[#{syms.join(' ')}]")
-rescue SyntaxError # <= 1.9.3
- syms.map!(&:to_sym)
-end
-syms.each { |s| h[s] = s }
-200_000.times { syms.each { |s| h[s] } }
diff --git a/benchmark/bm_hash_aref_sym_long.rb b/benchmark/bm_hash_aref_sym_long.rb
deleted file mode 100644
index 9dab8df7be..0000000000
--- a/benchmark/bm_hash_aref_sym_long.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-h = {}
-syms = %w[puts warn syswrite write stat bacon lettuce tomato
-some symbols in this array may already be interned others should not be
-hash browns make good breakfast but not cooked using prime numbers
-shift for division entries delete_if keys exist?
-]
-begin
- syms = eval("%i[#{syms.join(' ')}]")
-rescue SyntaxError # <= 1.9.3
- syms.map!(&:to_sym)
-end
-syms.each { |s| h[s] = s }
-200_000.times { syms.each { |s| h[s] } }
diff --git a/benchmark/bm_hash_ident_flo.rb b/benchmark/bm_hash_ident_flo.rb
deleted file mode 100644
index 0c7edfed3e..0000000000
--- a/benchmark/bm_hash_ident_flo.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-strs = (1..10000).to_a.map!(&:to_f)
-strs.each { |s| h[s] = s }
-50.times { strs.each { |s| h[s] } }
diff --git a/benchmark/bm_hash_ident_num.rb b/benchmark/bm_hash_ident_num.rb
deleted file mode 100644
index b226736c6f..0000000000
--- a/benchmark/bm_hash_ident_num.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-nums = (1..26).to_a
-nums.each { |n| h[n] = n }
-200_000.times { nums.each { |n| h[n] } }
diff --git a/benchmark/bm_hash_ident_obj.rb b/benchmark/bm_hash_ident_obj.rb
deleted file mode 100644
index 4b3b58edec..0000000000
--- a/benchmark/bm_hash_ident_obj.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-objs = 26.times.map { Object.new }
-objs.each { |o| h[o] = o }
-200_000.times { objs.each { |o| h[o] } }
diff --git a/benchmark/bm_hash_ident_str.rb b/benchmark/bm_hash_ident_str.rb
deleted file mode 100644
index 8582b38e31..0000000000
--- a/benchmark/bm_hash_ident_str.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-strs = ('a'..'z').to_a
-strs.each { |s| h[s] = s }
-200_000.times { strs.each { |s| h[s] } }
diff --git a/benchmark/bm_hash_ident_sym.rb b/benchmark/bm_hash_ident_sym.rb
deleted file mode 100644
index 4c81e3d28e..0000000000
--- a/benchmark/bm_hash_ident_sym.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-syms = ('a'..'z').to_a.map(&:to_sym)
-syms.each { |s| h[s] = s }
-200_000.times { syms.each { |s| h[s] } }
diff --git a/benchmark/bm_marshal_dump_flo.rb b/benchmark/bm_marshal_dump_flo.rb
deleted file mode 100644
index 9b8d0c6afb..0000000000
--- a/benchmark/bm_marshal_dump_flo.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-bug10761 = 10000.times.map { |x| x.to_f }
-100.times { Marshal.dump(bug10761) }
diff --git a/benchmark/bm_securerandom.rb b/benchmark/bm_securerandom.rb
deleted file mode 100644
index a082ea6d5b..0000000000
--- a/benchmark/bm_securerandom.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require "securerandom"
-
-20_0000.times do
- SecureRandom.random_number(100)
-end
diff --git a/benchmark/bm_so_meteor_contest.rb b/benchmark/bm_so_meteor_contest.rb
index b8e93bd150..99cf6a91cc 100644
--- a/benchmark/bm_so_meteor_contest.rb
+++ b/benchmark/bm_so_meteor_contest.rb
@@ -32,7 +32,7 @@ class Rotation
@start_masks = Array.new(60)
# create the rotational masks by placing the base mask at the location and seeing if
- # 1) it overlaps the boundaries and 2) it produces a prunable board. if either of these
+ # 1) it overlaps the boundries and 2) it produces a prunable board. if either of these
# is true the piece cannot be placed
0.upto(59) do | offset |
mask = is_even(offset) ? (@even_mask << offset) : (@odd_mask << offset)
@@ -326,9 +326,9 @@ end
# The exact procedure is described in-code
def prunable( board, location, slotting = false)
collectors = []
- # loop across the rows
+ # loop accross the rows
(location / 6).to_i.upto(9) do | row_on |
- # obtain a set of regions representing the bits of the current row.
+ # obtain a set of regions representing the bits of the curent row.
regions = $regions[(board >> (row_on * 6)) & 0b11111]
converter = $converter[row_on]
@@ -370,7 +370,7 @@ def prunable( board, location, slotting = false)
end
# check the existing collectors, if any collector overlapped no bits in the region its [2] value will
- # be zero. The size of any such reaason is tested if it is not a multiple of five true is returned since
+ # be zero. The size of any such reaason is tested if it is not a muliple of five true is returned since
# the board is prunable. if it is a multiple of five it is removed.
# Collector that are still active have a new adjacent value [0] set based n the matched bits
# and have [2] cleared out for the next cycle.
@@ -382,7 +382,7 @@ def prunable( board, location, slotting = false)
collectors[collector_num] = nil
else
# if a collector matches all bits in the row then we can return unprunable early for the
- # following reasons:
+ # follwing reasons:
# 1) there can be no more unavailable bits bince we fill from the top left downward
# 2) all previous regions have been closed or joined so only this region can fail
# 3) this region must be good since there can never be only 1 region that is nuot
@@ -526,7 +526,7 @@ def save( board_string)
@boards_found += 1
# the exit motif is a time saver. Ideally the function should return, but those tests
- # take noticeable time (performance).
+ # take noticable time (performance).
if (@boards_found == @stop_count) then
print_results
exit(0)
diff --git a/benchmark/bm_vm2_newlambda.rb b/benchmark/bm_vm2_newlambda.rb
deleted file mode 100644
index 6422c9b0d0..0000000000
--- a/benchmark/bm_vm2_newlambda.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-i = 0
-while i<6_000_000 # benchmark loop 2
- i += 1
- lambda {}
-end
diff --git a/benchmark/bm_vm2_struct_big_aref_hi.rb b/benchmark/bm_vm2_struct_big_aref_hi.rb
deleted file mode 100644
index 22cb26b0a5..0000000000
--- a/benchmark/bm_vm2_struct_big_aref_hi.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-s = Struct.new(*('a'..'z').map { |x| x.to_sym })
-x = s.new
-i = 0
-while i<6_000_000 # benchmark loop 2
- i += 1
- x.z # x[25]
-end
diff --git a/benchmark/bm_vm2_struct_big_aref_lo.rb b/benchmark/bm_vm2_struct_big_aref_lo.rb
deleted file mode 100644
index 5e61a7087e..0000000000
--- a/benchmark/bm_vm2_struct_big_aref_lo.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-s = Struct.new(*('a'..'z').map { |x| x.to_sym })
-x = s.new
-i = 0
-while i<6_000_000 # benchmark loop 2
- i += 1
- x.k # x[10]
-end
diff --git a/benchmark/bm_vm2_struct_big_aset.rb b/benchmark/bm_vm2_struct_big_aset.rb
deleted file mode 100644
index 5a1c3d16f3..0000000000
--- a/benchmark/bm_vm2_struct_big_aset.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-s = Struct.new(*('a'..'z').map { |x| x.to_sym })
-x = s.new
-i = 0
-while i<6_000_000 # benchmark loop 2
- i += 1
- x.k = i # x[10] = i
-end
diff --git a/benchmark/bm_vm2_struct_small_aref.rb b/benchmark/bm_vm2_struct_small_aref.rb
deleted file mode 100644
index 8eaa555b41..0000000000
--- a/benchmark/bm_vm2_struct_small_aref.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-s = Struct.new(:a, :b, :c)
-x = s.new
-i = 0
-while i<6_000_000 # benchmark loop 2
- i += 1
- x.a
-end
diff --git a/benchmark/bm_vm2_struct_small_aset.rb b/benchmark/bm_vm2_struct_small_aset.rb
deleted file mode 100644
index ecd0f95669..0000000000
--- a/benchmark/bm_vm2_struct_small_aset.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-s = Struct.new(:a, :b, :c)
-x = s.new
-i = 0
-while i<6_000_000 # benchmark loop 2
- i += 1
- x.a = i
-end
diff --git a/benchmark/bm_vm_thread_close.rb b/benchmark/bm_vm_thread_close.rb
deleted file mode 100644
index 3e9a265ce8..0000000000
--- a/benchmark/bm_vm_thread_close.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-1000.times { Thread.new { sleep } }
-i = 0
-while i<100_000 # benchmark loop 3
- i += 1
- IO.pipe.each(&:close)
-end
diff --git a/benchmark/driver.rb b/benchmark/driver.rb
index 3904e25503..cbc72cf604 100644
--- a/benchmark/driver.rb
+++ b/benchmark/driver.rb
@@ -77,7 +77,6 @@ class BenchmarkDriver
@exclude = opt[:exclude] || nil
@verbose = opt[:quiet] ? false : (opt[:verbose] || false)
@output = opt[:output] ? open(opt[:output], 'w') : nil
- @rawdata_output = opt[:rawdata_output] ? open(opt[:rawdata_output], 'w') : nil
@loop_wl1 = @loop_wl2 = nil
@ruby_arg = opt[:ruby_arg] || nil
@opt = opt
@@ -129,14 +128,6 @@ class BenchmarkDriver
message "Elapsed time: #{Time.now - @start_time} (sec)"
end
- if @rawdata_output
- h = {}
- h[:cpuinfo] = File.read('/proc/cpuinfo') if File.exist?('/proc/cpuinfo')
- h[:executables] = @execs
- h[:results] = @results
- @rawdata_output.puts h.inspect
- end
-
output '-----------------------------------------------------------'
output 'benchmark results:'
@@ -247,12 +238,6 @@ class BenchmarkDriver
result
end
- unless defined?(File::NULL)
- if File.exist?('/dev/null')
- File::NULL = '/dev/null'
- end
- end
-
def measure executable, file
cmd = "#{executable} #{@ruby_arg} #{file}"
@@ -275,7 +260,6 @@ if __FILE__ == $0
:dir => File.dirname(__FILE__),
:repeat => 1,
:output => "bmlog-#{Time.now.strftime('%Y%m%d-%H%M%S')}.#{$$}",
- :raw_output => nil
}
parser = OptionParser.new{|o|
@@ -303,16 +287,12 @@ if __FILE__ == $0
o.on('--ruby-arg [ARG]', "Optional argument for ruby"){|a|
opt[:ruby_arg] = a
}
- o.on('--rawdata-output [FILE]', 'output rawdata'){|r|
- opt[:rawdata_output] = r
+ o.on('-q', '--quiet', "Run without notify information except result table."){|q|
+ opt[:quiet] = q
}
o.on('-v', '--verbose'){|v|
opt[:verbose] = v
}
- o.on('-q', '--quiet', "Run without notify information except result table."){|q|
- opt[:quiet] = q
- opt[:verbose] = false
- }
}
parser.parse!(ARGV)
diff --git a/benchmark/prepare_so_k_nucleotide.rb b/benchmark/prepare_so_k_nucleotide.rb
index d83aeb7a7e..f28f4460a1 100644
--- a/benchmark/prepare_so_k_nucleotide.rb
+++ b/benchmark/prepare_so_k_nucleotide.rb