summaryrefslogtreecommitdiff
path: root/lib/rdoc/generator/pot/message_extractor.rb
diff options
context:
space:
mode:
authorNARUSE, Yui <naruse@airemix.jp>2024-12-25 16:43:20 +0900
committerNARUSE, Yui <naruse@airemix.jp>2024-12-25 16:43:20 +0900
commit48d4efcb85000e1ebae42004e963b5d0cedddcf2 (patch)
tree362da81e3405bae352a983160c2bcb53f5b1d4e6 /lib/rdoc/generator/pot/message_extractor.rb
parentf45010833071b953744658842369e3496dfacb48 (diff)
v3.4.1v3_4_1
Diffstat (limited to 'lib/rdoc/generator/pot/message_extractor.rb')
0 files changed, 0 insertions, 0 deletions
mp;id2=c22420d58f6306b8f58e016aef85dcc34b8ed57d'>.indent.pro21
-rw-r--r--.travis.yml86
-rw-r--r--BSDL22
-rw-r--r--COPYING4
-rw-r--r--COPYING.ja72
-rw-r--r--ChangeLog24970
-rw-r--r--GPL39
-rw-r--r--KNOWNBUGS.rb5
-rw-r--r--LEGAL335
-rw-r--r--LGPL504
-rw-r--r--Makefile.in423
-rw-r--r--NEWS413
-rw-r--r--README140
-rw-r--r--README.EXT1396
-rw-r--r--README.EXT.ja2016
-rw-r--r--README.ja224
-rw-r--r--ToDo126
-rw-r--r--addr2line.c1082
-rw-r--r--addr2line.h21
-rw-r--r--array.c5681
-rw-r--r--bcc32/Makefile.sub499
-rw-r--r--bcc32/README.bcc32137
-rwxr-xr-xbcc32/configure.bat92
-rwxr-xr-xbcc32/mkexports.rb27
-rw-r--r--bcc32/setup.mak133
-rw-r--r--benchmark/bm_app_answer.rb15
-rw-r--r--benchmark/bm_app_aobench.rb292
-rw-r--r--benchmark/bm_app_erb.rb26
-rw-r--r--benchmark/bm_app_factorial.rb11
-rw-r--r--benchmark/bm_app_fib.rb10
-rw-r--r--benchmark/bm_app_mandelbrot.rb23
-rw-r--r--benchmark/bm_app_pentomino.rb259
-rw-r--r--benchmark/bm_app_raise.rb8
-rw-r--r--benchmark/bm_app_strconcat.rb5
-rw-r--r--benchmark/bm_app_tak.rb13
-rw-r--r--benchmark/bm_app_tarai.rb10
-rw-r--r--benchmark/bm_app_uri.rb8
-rw-r--r--benchmark/bm_hash_shift.rb10
-rw-r--r--benchmark/bm_io_file_create.rb13
-rw-r--r--benchmark/bm_io_file_read.rb15
-rw-r--r--benchmark/bm_io_file_write.rb14
-rw-r--r--benchmark/bm_io_select.rb9
-rw-r--r--benchmark/bm_io_select2.rb22
-rw-r--r--benchmark/bm_io_select3.rb21
-rw-r--r--benchmark/bm_loop_for.rb3
-rw-r--r--benchmark/bm_loop_generator.rb14
-rw-r--r--benchmark/bm_loop_times.rb1
-rw-r--r--benchmark/bm_loop_whileloop.rb4
-rw-r--r--benchmark/bm_loop_whileloop2.rb4
-rw-r--r--benchmark/bm_so_ackermann.rb19
-rw-r--r--benchmark/bm_so_array.rb23
-rw-r--r--benchmark/bm_so_binary_trees.rb62
-rw-r--r--benchmark/bm_so_concatenate.rb18
-rw-r--r--benchmark/bm_so_count_words.rb19
-rw-r--r--benchmark/bm_so_exception.rb61
-rw-r--r--benchmark/bm_so_fannkuch.rb45
-rw-r--r--benchmark/bm_so_fasta.rb81
-rw-r--r--benchmark/bm_so_k_nucleotide.rb48
-rw-r--r--benchmark/bm_so_lists.rb47
-rw-r--r--benchmark/bm_so_mandelbrot.rb57
-rw-r--r--benchmark/bm_so_matrix.rb48
-rw-r--r--benchmark/bm_so_meteor_contest.rb564
-rw-r--r--benchmark/bm_so_nbody.rb148
-rw-r--r--benchmark/bm_so_nested_loop.rb24
-rw-r--r--benchmark/bm_so_nsieve.rb35
-rw-r--r--benchmark/bm_so_nsieve_bits.rb43
-rw-r--r--benchmark/bm_so_object.rb56
-rw-r--r--benchmark/bm_so_partial_sums.rb31
-rw-r--r--benchmark/bm_so_pidigits.rb92
-rw-r--r--benchmark/bm_so_random.rb20
-rw-r--r--benchmark/bm_so_reverse_complement.rb30
-rw-r--r--benchmark/bm_so_sieve.rb24
-rw-r--r--benchmark/bm_so_spectralnorm.rb50
-rw-r--r--benchmark/bm_vm1_attr_ivar.rb14
-rw-r--r--benchmark/bm_vm1_attr_ivar_set.rb14
-rw-r--r--benchmark/bm_vm1_block.rb10
-rw-r--r--benchmark/bm_vm1_const.rb8
-rw-r--r--benchmark/bm_vm1_ensure.rb11
-rw-r--r--benchmark/bm_vm1_float_simple.rb7
-rw-r--r--benchmark/bm_vm1_gc_short_lived.rb10
-rw-r--r--benchmark/bm_vm1_gc_short_with_complex_long.rb27
-rw-r--r--benchmark/bm_vm1_gc_short_with_long.rb13
-rw-r--r--benchmark/bm_vm1_gc_short_with_symbol.rb15
-rw-r--r--benchmark/bm_vm1_gc_wb_ary.rb10
-rw-r--r--benchmark/bm_vm1_gc_wb_obj.rb13
-rw-r--r--benchmark/bm_vm1_ivar.rb8
-rw-r--r--benchmark/bm_vm1_ivar_set.rb6
-rw-r--r--benchmark/bm_vm1_length.rb9
-rw-r--r--benchmark/bm_vm1_lvar_init.rb18
-rw-r--r--benchmark/bm_vm1_lvar_set.rb5
-rw-r--r--benchmark/bm_vm1_neq.rb8
-rw-r--r--benchmark/bm_vm1_not.rb7
-rw-r--r--benchmark/bm_vm1_rescue.rb7
-rw-r--r--benchmark/bm_vm1_simplereturn.rb9
-rw-r--r--benchmark/bm_vm1_swap.rb8
-rw-r--r--benchmark/bm_vm1_yield.rb10
-rw-r--r--benchmark/bm_vm2_array.rb5
-rw-r--r--benchmark/bm_vm2_bigarray.rb106
-rw-r--r--benchmark/bm_vm2_bighash.rb5
-rw-r--r--benchmark/bm_vm2_case.rb14
-rw-r--r--benchmark/bm_vm2_defined_method.rb9
-rw-r--r--benchmark/bm_vm2_dstr.rb6
-rw-r--r--benchmark/bm_vm2_eval.rb6
-rw-r--r--benchmark/bm_vm2_method.rb9
-rw-r--r--benchmark/bm_vm2_method_missing.rb12
-rw-r--r--benchmark/bm_vm2_method_with_block.rb9
-rw-r--r--benchmark/bm_vm2_mutex.rb9
-rw-r--r--benchmark/bm_vm2_poly_method.rb20
-rw-r--r--benchmark/bm_vm2_poly_method_ov.rb20
-rw-r--r--benchmark/bm_vm2_proc.rb14
-rw-r--r--benchmark/bm_vm2_raise1.rb18
-rw-r--r--benchmark/bm_vm2_raise2.rb18
-rw-r--r--benchmark/bm_vm2_regexp.rb6
-rw-r--r--benchmark/bm_vm2_send.rb12
-rw-r--r--benchmark/bm_vm2_super.rb20
-rw-r--r--benchmark/bm_vm2_unif1.rb8
-rw-r--r--benchmark/bm_vm2_zsuper.rb20
-rw-r--r--benchmark/bm_vm3_backtrace.rb22
-rw-r--r--benchmark/bm_vm3_clearmethodcache.rb8
-rwxr-xr-xbenchmark/bm_vm3_gc.rb7
-rw-r--r--benchmark/bm_vm_thread_alive_check1.rb6
-rw-r--r--benchmark/bm_vm_thread_create_join.rb6
-rw-r--r--benchmark/bm_vm_thread_mutex1.rb21
-rw-r--r--benchmark/bm_vm_thread_mutex2.rb21
-rw-r--r--benchmark/bm_vm_thread_mutex3.rb20
-rw-r--r--benchmark/bm_vm_thread_pass.rb15
-rw-r--r--benchmark/bm_vm_thread_pass_flood.rb8
-rw-r--r--benchmark/bm_vm_thread_pipe.rb17
-rw-r--r--benchmark/bm_vm_thread_queue.rb18
-rw-r--r--benchmark/driver.rb301
-rw-r--r--benchmark/gc/aobench.rb1
-rw-r--r--benchmark/gc/binary_trees.rb1
-rw-r--r--benchmark/gc/gcbench.rb56
-rw-r--r--benchmark/gc/hash1.rb11
-rw-r--r--benchmark/gc/hash2.rb7
-rw-r--r--benchmark/gc/null.rb1
-rw-r--r--benchmark/gc/pentomino.rb1
-rw-r--r--benchmark/gc/rdoc.rb13
-rw-r--r--benchmark/gc/redblack.rb366
-rw-r--r--benchmark/gc/ring.rb29
-rw-r--r--benchmark/make_fasta_output.rb19
-rw-r--r--benchmark/other-lang/ack.pl11
-rw-r--r--benchmark/other-lang/ack.py16
-rw-r--r--benchmark/other-lang/ack.rb12
-rw-r--r--benchmark/other-lang/ack.scm7
-rw-r--r--benchmark/other-lang/eval.rb66
-rw-r--r--benchmark/other-lang/fact.pl13
-rw-r--r--benchmark/other-lang/fact.py18
-rw-r--r--benchmark/other-lang/fact.rb13
-rw-r--r--benchmark/other-lang/fact.scm8
-rw-r--r--benchmark/other-lang/fib.pl11
-rw-r--r--benchmark/other-lang/fib.py7
-rw-r--r--benchmark/other-lang/fib.rb9
-rw-r--r--benchmark/other-lang/fib.scm7
-rw-r--r--benchmark/other-lang/loop.pl3
-rw-r--r--benchmark/other-lang/loop.py2
-rw-r--r--benchmark/other-lang/loop.rb4
-rw-r--r--benchmark/other-lang/loop.scm1
-rw-r--r--benchmark/other-lang/loop2.rb1
-rw-r--r--benchmark/other-lang/tak.pl11
-rw-r--r--benchmark/other-lang/tak.py8
-rw-r--r--benchmark/other-lang/tak.rb13
-rw-r--r--benchmark/other-lang/tak.scm10
-rw-r--r--benchmark/prepare_so_count_words.rb15
-rw-r--r--benchmark/prepare_so_k_nucleotide.rb2
-rw-r--r--benchmark/prepare_so_reverse_complement.rb2
-rw-r--r--benchmark/report.rb79
-rw-r--r--benchmark/run.rb127
-rw-r--r--benchmark/runc.rb27
-rw-r--r--benchmark/wc.input.base25
-rw-r--r--bignum.c7425
-rwxr-xr-xbin/erb74
-rwxr-xr-xbin/gem25
-rwxr-xr-x[-rw-r--r--]bin/irb16
-rwxr-xr-xbin/rake33
-rwxr-xr-x[-rw-r--r--]bin/rdoc81
-rwxr-xr-xbin/ri53
-rwxr-xr-xbin/testrb4
-rw-r--r--bootstraptest/pending.rb39
-rwxr-xr-xbootstraptest/runner.rb485
-rw-r--r--bootstraptest/test_attr.rb36
-rw-r--r--bootstraptest/test_autoload.rb70
-rw-r--r--bootstraptest/test_block.rb599
-rw-r--r--bootstraptest/test_class.rb169
-rw-r--r--bootstraptest/test_eval.rb324
-rw-r--r--bootstraptest/test_exception.rb432
-rw-r--r--bootstraptest/test_finalizer.rb8
-rw-r--r--bootstraptest/test_flip.rb1
-rw-r--r--bootstraptest/test_flow.rb591
-rw-r--r--bootstraptest/test_fork.rb69
-rw-r--r--bootstraptest/test_gc.rb34
-rw-r--r--bootstraptest/test_io.rb112
-rw-r--r--bootstraptest/test_jump.rb308
-rw-r--r--bootstraptest/test_literal.rb231
-rw-r--r--bootstraptest/test_literal_suffix.rb54
-rw-r--r--bootstraptest/test_load.rb27
-rw-r--r--bootstraptest/test_marshal.rb5
-rw-r--r--bootstraptest/test_massign.rb183
-rw-r--r--bootstraptest/test_method.rb1220
-rw-r--r--bootstraptest/test_objectspace.rb46
-rw-r--r--bootstraptest/test_proc.rb483
-rw-r--r--bootstraptest/test_struct.rb5
-rw-r--r--bootstraptest/test_syntax.rb902
-rw-r--r--bootstraptest/test_thread.rb464
-rw-r--r--class.c1719
-rw-r--r--common.mk1083
-rw-r--r--compar.c134
-rw-r--r--compile.c5933
-rw-r--r--complex.c2256
-rw-r--r--config.guess1459
-rw-r--r--config.sub1537
-rw-r--r--configure.in4167
-rw-r--r--constant.h36
-rw-r--r--cont.c1694
-rw-r--r--cygwin/GNUmakefile.in67
-rw-r--r--debug.c162
-rw-r--r--defines.h270
-rw-r--r--defs/default_gems5
-rw-r--r--defs/gmake.mk29
-rw-r--r--defs/id.def105
-rw-r--r--defs/keywords53
-rw-r--r--defs/known_errors.def145
-rw-r--r--defs/lex.c.src53
-rw-r--r--defs/opt_insn_unif.def29
-rw-r--r--defs/opt_operand.def22
-rw-r--r--dir.c1481
-rw-r--r--distruby.rb59
-rw-r--r--djgpp/GNUmakefile.in2
-rw-r--r--djgpp/README.djgpp21
-rw-r--r--djgpp/config.hin114
-rw-r--r--djgpp/config.sed128
-rwxr-xr-xdjgpp/configure.bat20
-rw-r--r--djgpp/mkver.sed1
-rw-r--r--dln.c853
-rw-r--r--dln.h21
-rw-r--r--dln_find.c294
-rw-r--r--dmydln.c11
-rw-r--r--dmyext.c7
-rw-r--r--doc/.document4
-rw-r--r--doc/ChangeLog-1.8.0157
-rw-r--r--doc/ChangeLog-1.9.392772
-rw-r--r--doc/ChangeLog-2.0.024015
-rw-r--r--doc/ChangeLog-YARV6917
-rw-r--r--doc/NEWS-1.8.0837
-rw-r--r--doc/NEWS-1.8.7669
-rw-r--r--doc/NEWS-1.9.1429
-rw-r--r--doc/NEWS-1.9.2509
-rw-r--r--doc/NEWS-1.9.3341
-rw-r--r--doc/NEWS-2.0.0531
-rw-r--r--doc/contributing.rdoc345
-rw-r--r--doc/etc.rd.ja75
-rw-r--r--doc/forwardable.rd84
-rw-r--r--doc/forwardable.rd.ja45
-rw-r--r--doc/globals.rdoc69
-rw-r--r--doc/images/boottime-classes.pngbin0 -> 28677 bytes-rw-r--r--doc/irb/irb-tools.rd.ja111
-rw-r--r--doc/irb/irb.rd392
-rw-r--r--doc/irb/irb.rd.ja375
-rw-r--r--doc/marshal.rdoc313
-rw-r--r--doc/pty/README.expect.ja21
-rw-r--r--doc/pty/README.ja76
-rw-r--r--doc/regexp.rdoc685
-rw-r--r--doc/security.rdoc144
-rw-r--r--doc/shell.rd348
-rw-r--r--doc/shell.rd.ja151
-rw-r--r--doc/standard_library.rdoc126
-rw-r--r--doc/syntax.rdoc34
-rw-r--r--doc/syntax/assignment.rdoc455
-rw-r--r--doc/syntax/calling_methods.rdoc349
-rw-r--r--doc/syntax/control_expressions.rdoc500
-rw-r--r--doc/syntax/exceptions.rdoc96
-rw-r--r--doc/syntax/literals.rdoc307
-rw-r--r--doc/syntax/methods.rdoc414
-rw-r--r--doc/syntax/miscellaneous.rdoc107
-rw-r--r--doc/syntax/modules_and_classes.rdoc345
-rw-r--r--doc/syntax/precedence.rdoc60
-rw-r--r--doc/syntax/refinements.rdoc266
-rw-r--r--enc/Makefile.in82
-rw-r--r--enc/ascii.c96
-rw-r--r--enc/big5.c373
-rw-r--r--enc/cp949.c221
-rw-r--r--enc/depend160
-rw-r--r--enc/emacs_mule.c341
-rw-r--r--enc/encdb.c31
-rw-r--r--enc/encinit.c.erb26
-rw-r--r--enc/euc_jp.c644
-rw-r--r--enc/euc_kr.c194
-rw-r--r--enc/euc_tw.c227
-rw-r--r--enc/gb18030.c603
-rw-r--r--enc/gb2312.c13
-rw-r--r--enc/gbk.c224
-rw-r--r--enc/iso_2022_jp.h47
-rw-r--r--enc/iso_8859_1.c289
-rw-r--r--enc/iso_8859_10.c246
-rw-r--r--enc/iso_8859_11.c113
-rw-r--r--enc/iso_8859_13.c245
-rw-r--r--enc/iso_8859_14.c248
-rw-r--r--enc/iso_8859_15.c242
-rw-r--r--enc/iso_8859_16.c244
-rw-r--r--enc/iso_8859_2.c254
-rw-r--r--enc/iso_8859_3.c242
-rw-r--r--enc/iso_8859_4.c244
-rw-r--r--enc/iso_8859_5.c232
-rw-r--r--enc/iso_8859_6.c109
-rw-r--r--enc/iso_8859_7.c239
-rw-r--r--enc/iso_8859_8.c109
-rw-r--r--enc/iso_8859_9.c245
-rw-r--r--enc/koi8_r.c221
-rw-r--r--enc/koi8_u.c223
-rwxr-xr-xenc/make_encmake.rb136
-rw-r--r--enc/mktable.c1162
-rw-r--r--enc/prelude.rb6
-rw-r--r--enc/shift_jis.c614
-rw-r--r--enc/trans/CP/CP932UDA%UCS.src1912
-rw-r--r--enc/trans/CP/CP932VDC@IBM%UCS.src420
-rw-r--r--enc/trans/CP/CP932VDC@NEC_IBM%UCS.src406
-rw-r--r--enc/trans/CP/UCS%CP932UDA.src1912
-rw-r--r--enc/trans/CP/UCS%CP932VDC@IBM.src420
-rw-r--r--enc/trans/CP/UCS%CP932VDC@NEC_IBM.src406
-rw-r--r--enc/trans/EMOJI/EMOJI_ISO-2022-JP-KDDI%UCS.src658
-rw-r--r--enc/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%UCS.src293
-rw-r--r--enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI%UCS.src658
-rw-r--r--enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%UCS.src658
-rw-r--r--enc/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%UCS.src496
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI-UNDOC.src658
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI.src658
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-DOCOMO.src293
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI-UNDOC.src658
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI.src658
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-SOFTBANK.src496
-rw-r--r--enc/trans/GB/GB12345%UCS.src7618
-rw-r--r--enc/trans/GB/GB2312%UCS.src7535
-rw-r--r--enc/trans/GB/UCS%GB12345.src7620
-rw-r--r--enc/trans/GB/UCS%GB2312.src7531
-rw-r--r--enc/trans/JIS/JISX0201-KANA%UCS.src127
-rw-r--r--enc/trans/JIS/JISX0208@1990%UCS.src6972
-rw-r--r--enc/trans/JIS/JISX0208@MS%UCS.src6893
-rw-r--r--enc/trans/JIS/JISX0208UDC%UCS.src954
-rw-r--r--enc/trans/JIS/JISX0208VDC@NEC%UCS.src97
-rw-r--r--enc/trans/JIS/JISX0212%UCS.src6167
-rw-r--r--enc/trans/JIS/JISX0212@MS%UCS.src6081
-rw-r--r--enc/trans/JIS/JISX0212UDC%UCS.src954
-rw-r--r--enc/trans/JIS/JISX0212VDC@IBM%UCS.src120
-rw-r--r--enc/trans/JIS/JISX0213-1%UCS@BMP.src1926
-rw-r--r--enc/trans/JIS/JISX0213-1%UCS@SIP.src60
-rw-r--r--enc/trans/JIS/JISX0213-2%UCS@BMP.src2193
-rw-r--r--enc/trans/JIS/JISX0213-2%UCS@SIP.src311
-rw-r--r--enc/trans/JIS/UCS%JISX0201-KANA.src127
-rw-r--r--enc/trans/JIS/UCS%JISX0208@1990.src6974
-rw-r--r--enc/trans/JIS/UCS%JISX0208@MS.src6894
-rw-r--r--enc/trans/JIS/UCS%JISX0208UDC.src955
-rw-r--r--enc/trans/JIS/UCS%JISX0208VDC@NEC.src98
-rw-r--r--enc/trans/JIS/UCS%JISX0212.src6170
-rw-r--r--enc/trans/JIS/UCS%JISX0212@MS.src6082
-rw-r--r--enc/trans/JIS/UCS%JISX0212UDC.src955
-rw-r--r--enc/trans/JIS/UCS%JISX0212VDC@IBM.src121
-rw-r--r--enc/trans/JIS/UCS@BMP%JISX0213-1.src1922
-rw-r--r--enc/trans/JIS/UCS@BMP%JISX0213-2.src2189
-rw-r--r--enc/trans/JIS/UCS@SIP%JISX0213-1.src56
-rw-r--r--enc/trans/JIS/UCS@SIP%JISX0213-2.src307
-rw-r--r--enc/trans/big5-hkscs-tbl.rb37302
-rw-r--r--enc/trans/big5-uao-tbl.rb19784
-rw-r--r--enc/trans/big5.trans32
-rw-r--r--enc/trans/chinese.trans31
-rw-r--r--enc/trans/cp850-tbl.rb130
-rw-r--r--enc/trans/cp852-tbl.rb130
-rw-r--r--enc/trans/cp855-tbl.rb130
-rw-r--r--enc/trans/cp949-tbl.rb8831
-rw-r--r--enc/trans/emoji-exchange-tbl.rb8407
-rw-r--r--enc/trans/emoji.trans36
-rw-r--r--enc/trans/emoji_iso2022_kddi.trans216
-rw-r--r--enc/trans/emoji_sjis_docomo.trans32
-rw-r--r--enc/trans/emoji_sjis_kddi.trans33
-rw-r--r--enc/trans/emoji_sjis_softbank.trans32
-rw-r--r--enc/trans/escape.trans93
-rw-r--r--enc/trans/euckr-tbl.rb8228
-rw-r--r--enc/trans/gb18030-tbl.rb63362
-rw-r--r--enc/trans/gb18030.trans183
-rw-r--r--enc/trans/gbk-tbl.rb21794
-rw-r--r--enc/trans/gbk.trans15
-rw-r--r--enc/trans/ibm437-tbl.rb130
-rw-r--r--enc/trans/ibm737-tbl.rb130
-rw-r--r--enc/trans/ibm775-tbl.rb130
-rw-r--r--enc/trans/ibm852-tbl.rb130
-rw-r--r--enc/trans/ibm855-tbl.rb130
-rw-r--r--enc/trans/ibm857-tbl.rb127
-rw-r--r--enc/trans/ibm860-tbl.rb130
-rw-r--r--enc/trans/ibm861-tbl.rb130
-rw-r--r--enc/trans/ibm862-tbl.rb130
-rw-r--r--enc/trans/ibm863-tbl.rb130
-rw-r--r--enc/trans/ibm865-tbl.rb130
-rw-r--r--enc/trans/ibm866-tbl.rb130
-rw-r--r--enc/trans/ibm869-tbl.rb121
-rw-r--r--enc/trans/iso-8859-1-tbl.rb98
-rw-r--r--enc/trans/iso-8859-10-tbl.rb98
-rw-r--r--enc/trans/iso-8859-11-tbl.rb90
-rw-r--r--enc/trans/iso-8859-13-tbl.rb98
-rw-r--r--enc/trans/iso-8859-14-tbl.rb98
-rw-r--r--enc/trans/iso-8859-15-tbl.rb98
-rw-r--r--enc/trans/iso-8859-16-tbl.rb98
-rw-r--r--enc/trans/iso-8859-2-tbl.rb98
-rw-r--r--enc/trans/iso-8859-3-tbl.rb91
-rw-r--r--enc/trans/iso-8859-4-tbl.rb98
-rw-r--r--enc/trans/iso-8859-5-tbl.rb98
-rw-r--r--enc/trans/iso-8859-6-tbl.rb53
-rw-r--r--enc/trans/iso-8859-7-tbl.rb95
-rw-r--r--enc/trans/iso-8859-8-tbl.rb62
-rw-r--r--enc/trans/iso-8859-9-tbl.rb98
-rw-r--r--enc/trans/iso2022.trans567
-rw-r--r--enc/trans/japanese.trans97
-rw-r--r--enc/trans/japanese_euc.trans57
-rw-r--r--enc/trans/japanese_sjis.trans33
-rw-r--r--enc/trans/koi8-r-tbl.rb130
-rw-r--r--enc/trans/koi8-u-tbl.rb130
-rw-r--r--enc/trans/korean.trans18
-rw-r--r--enc/trans/maccroatian-tbl.rb129
-rw-r--r--enc/trans/maccyrillic-tbl.rb130
-rw-r--r--enc/trans/macgreek-tbl.rb129
-rw-r--r--enc/trans/maciceland-tbl.rb129
-rw-r--r--enc/trans/macroman-tbl.rb129
-rw-r--r--enc/trans/macromania-tbl.rb129
-rw-r--r--enc/trans/macturkish-tbl.rb128
-rw-r--r--enc/trans/macukraine-tbl.rb130
-rw-r--r--enc/trans/newline.trans135
-rw-r--r--enc/trans/single_byte.trans91
-rw-r--r--enc/trans/tis-620-tbl.rb89
-rw-r--r--enc/trans/transdb.c18
-rw-r--r--enc/trans/ucm/glibc-BIG5-2.3.3.ucm14087
-rw-r--r--enc/trans/ucm/glibc-BIG5HKSCS-2.3.3.ucm18332
-rw-r--r--enc/trans/ucm/windows-950-2000.ucm20379
-rw-r--r--enc/trans/ucm/windows-950_hkscs-2001.ucm23446
-rw-r--r--enc/trans/utf8_mac-tbl.rb23154
-rw-r--r--enc/trans/utf8_mac.trans256
-rw-r--r--enc/trans/utf_16_32.trans556
-rw-r--r--enc/trans/windows-1250-tbl.rb125
-rw-r--r--enc/trans/windows-1251-tbl.rb129
-rw-r--r--enc/trans/windows-1252-tbl.rb125
-rw-r--r--enc/trans/windows-1253-tbl.rb113
-rw-r--r--enc/trans/windows-1254-tbl.rb123
-rw-r--r--enc/trans/windows-1255-tbl.rb141
-rw-r--r--enc/trans/windows-1256-tbl.rb130
-rw-r--r--enc/trans/windows-1257-tbl.rb118
-rw-r--r--enc/trans/windows-874-tbl.rb99
-rw-r--r--enc/unicode.c680
-rw-r--r--enc/unicode/casefold.h2238
-rw-r--r--enc/unicode/name2ctype.h28722
-rw-r--r--enc/unicode/name2ctype.h.blt28722
-rw-r--r--enc/unicode/name2ctype.kwd26550
-rw-r--r--enc/unicode/name2ctype.src26550
-rw-r--r--enc/us_ascii.c33
-rw-r--r--enc/utf_16_32.h5
-rw-r--r--enc/utf_16be.c256
-rw-r--r--enc/utf_16le.c248
-rw-r--r--enc/utf_32be.c193
-rw-r--r--enc/utf_32le.c192
-rw-r--r--enc/utf_7.h5
-rw-r--r--enc/utf_8.c457
-rw-r--r--enc/windows_1251.c210
-rw-r--r--enc/windows_31j.c80
-rw-r--r--enc/x_emoji.h26
-rw-r--r--encoding.c1947
-rw-r--r--enum.c2823
-rw-r--r--enumerator.c2087
-rw-r--r--env.h60
-rw-r--r--error.c2244
-rw-r--r--eval.c13487
-rw-r--r--eval_error.c304
-rw-r--r--eval_intern.h260
-rw-r--r--eval_jump.c142
-rw-r--r--ext/-test-/array/resize/extconf.rb1
-rw-r--r--ext/-test-/array/resize/resize.c14
-rw-r--r--ext/-test-/bignum/big2str.c54
-rw-r--r--ext/-test-/bignum/bigzero.c26
-rw-r--r--ext/-test-/bignum/depend7
-rw-r--r--ext/-test-/bignum/div.c36
-rw-r--r--ext/-test-/bignum/extconf.rb7
-rw-r--r--ext/-test-/bignum/init.c11
-rw-r--r--ext/-test-/bignum/intpack.c88
-rw-r--r--ext/-test-/bignum/mul.c66
-rw-r--r--ext/-test-/bignum/str2big.c39
-rw-r--r--ext/-test-/bug-3571/bug.c23
-rw-r--r--ext/-test-/bug-3571/extconf.rb1
-rw-r--r--ext/-test-/bug-3662/bug.c16
-rw-r--r--ext/-test-/bug-3662/extconf.rb1
-rw-r--r--ext/-test-/bug-5832/bug.c14
-rw-r--r--ext/-test-/bug-5832/extconf.rb1
-rw-r--r--ext/-test-/bug_reporter/bug_reporter.c24
-rw-r--r--ext/-test-/bug_reporter/extconf.rb1
-rw-r--r--ext/-test-/class/class2name.c14
-rw-r--r--ext/-test-/class/extconf.rb7
-rw-r--r--ext/-test-/class/init.c11
-rw-r--r--ext/-test-/debug/depend3
-rw-r--r--ext/-test-/debug/extconf.rb6
-rw-r--r--ext/-test-/debug/init.c11
-rw-r--r--ext/-test-/debug/inspector.c32
-rw-r--r--ext/-test-/debug/profile_frames.c43
-rw-r--r--ext/-test-/exception/depend3
-rw-r--r--ext/-test-/exception/enc_raise.c15
-rw-r--r--ext/-test-/exception/ensured.c25
-rw-r--r--ext/-test-/exception/extconf.rb6
-rw-r--r--ext/-test-/exception/init.c11
-rw-r--r--ext/-test-/fatal/extconf.rb1
-rw-r--r--ext/-test-/fatal/rb_fatal.c19
-rw-r--r--ext/-test-/file/depend2
-rw-r--r--ext/-test-/file/extconf.rb7
-rw-r--r--ext/-test-/file/init.c11
-rw-r--r--ext/-test-/file/stat.c27
-rw-r--r--ext/-test-/funcall/extconf.rb2
-rw-r--r--ext/-test-/funcall/passing_block.c30
-rw-r--r--ext/-test-/iter/break.c25
-rw-r--r--ext/-test-/iter/extconf.rb1
-rw-r--r--ext/-test-/load/dot.dot/dot.dot.c1
-rw-r--r--ext/-test-/load/dot.dot/extconf.rb1
-rw-r--r--ext/-test-/marshal/compat/extconf.rb1
-rw-r--r--ext/-test-/marshal/compat/usrcompat.c32
-rw-r--r--ext/-test-/marshal/usr/extconf.rb1
-rw-r--r--ext/-test-/marshal/usr/usrmarshal.c35
-rw-r--r--ext/-test-/method/arity.c22
-rw-r--r--ext/-test-/method/extconf.rb6
-rw-r--r--ext/-test-/method/init.c11
-rw-r--r--ext/-test-/num2int/extconf.rb1
-rw-r--r--ext/-test-/num2int/num2int.c136
-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-/path_to_class/extconf.rb6
-rw-r--r--ext/-test-/path_to_class/path_to_class.c15
-rw-r--r--ext/-test-/postponed_job/depend1
-rw-r--r--ext/-test-/postponed_job/extconf.rb1
-rw-r--r--ext/-test-/postponed_job/postponed_job.c53
-rw-r--r--ext/-test-/printf/depend3
-rw-r--r--ext/-test-/printf/extconf.rb1
-rw-r--r--ext/-test-/printf/printf.c100
-rw-r--r--ext/-test-/rational/depend3
-rw-r--r--ext/-test-/rational/extconf.rb7
-rw-r--r--ext/-test-/rational/rat.c38
-rw-r--r--ext/-test-/st/numhash/extconf.rb1
-rw-r--r--ext/-test-/st/numhash/numhash.c120
-rw-r--r--ext/-test-/st/update/extconf.rb1
-rw-r--r--ext/-test-/st/update/update.c34
-rw-r--r--ext/-test-/string/coderange.c30
-rw-r--r--ext/-test-/string/cstr.c26
-rw-r--r--ext/-test-/string/depend5
-rw-r--r--ext/-test-/string/ellipsize.c13
-rw-r--r--ext/-test-/string/enc_associate.c14
-rw-r--r--ext/-test-/string/enc_str_buf_cat.c14
-rw-r--r--ext/-test-/string/extconf.rb7
-rw-r--r--ext/-test-/string/init.c11
-rw-r--r--ext/-test-/string/modify.c22
-rw-r--r--ext/-test-/string/normalize.c18
-rw-r--r--ext/-test-/string/qsort.c61
-rw-r--r--ext/-test-/string/set_len.c14
-rw-r--r--ext/-test-/symbol/extconf.rb6
-rw-r--r--ext/-test-/symbol/init.c11
-rw-r--r--ext/-test-/symbol/intern.c14
-rw-r--r--ext/-test-/symbol/type.c43
-rw-r--r--ext/-test-/tracepoint/depend1
-rw-r--r--ext/-test-/tracepoint/extconf.rb1
-rw-r--r--ext/-test-/tracepoint/tracepoint.c77
-rw-r--r--ext/-test-/typeddata/extconf.rb1
-rw-r--r--ext/-test-/typeddata/typeddata.c20
-rw-r--r--ext/-test-/wait_for_single_fd/depend4
-rw-r--r--ext/-test-/wait_for_single_fd/extconf.rb1
-rw-r--r--ext/-test-/wait_for_single_fd/wait_for_single_fd.c30
-rw-r--r--ext/-test-/win32/dln/dlntest.c17
-rw-r--r--ext/-test-/win32/dln/extconf.rb37
-rw-r--r--ext/-test-/win32/dln/libdlntest.c4
-rw-r--r--ext/-test-/win32/dln/libdlntest.def2
-rw-r--r--ext/-test-/win32/fd_setsize/depend2
-rw-r--r--ext/-test-/win32/fd_setsize/extconf.rb3
-rw-r--r--ext/-test-/win32/fd_setsize/fd_setsize.c55
-rw-r--r--ext/.cvsignore2
-rw-r--r--ext/.document101
-rw-r--r--ext/Setup8
-rw-r--r--ext/Setup.atheos7
-rw-r--r--ext/Setup.dj34
-rw-r--r--ext/Setup.emx9
-rw-r--r--ext/Setup.nacl49
-rw-r--r--ext/Setup.nt8
-rw-r--r--ext/Setup.x6834
-rw-r--r--ext/Win32API/.cvsignore3
-rw-r--r--ext/Win32API/Win32API.c215
-rw-r--r--ext/Win32API/depend1
-rw-r--r--ext/Win32API/extconf.rb6
-rw-r--r--ext/Win32API/getch.rb5
-rw-r--r--ext/Win32API/lib/win32/registry.rb831
-rw-r--r--ext/Win32API/lib/win32/resolv.rb366
-rw-r--r--ext/Win32API/point.rb18
-rw-r--r--ext/bigdecimal/.cvsignore3
-rw-r--r--ext/bigdecimal/README6
-rw-r--r--ext/bigdecimal/bigdecimal.c6785
-rw-r--r--ext/bigdecimal/bigdecimal.def2
-rw-r--r--ext/bigdecimal/bigdecimal.gemspec30
-rw-r--r--ext/bigdecimal/bigdecimal.h218
-rw-r--r--ext/bigdecimal/bigdecimal_en.html796
-rw-r--r--ext/bigdecimal/bigdecimal_ja.html799
-rw-r--r--ext/bigdecimal/depend2
-rw-r--r--ext/bigdecimal/extconf.rb10
-rw-r--r--ext/bigdecimal/lib/bigdecimal/jacobian.rb34
-rw-r--r--ext/bigdecimal/lib/bigdecimal/ludcmp.rb44
-rw-r--r--ext/bigdecimal/lib/bigdecimal/math.rb159
-rw-r--r--ext/bigdecimal/lib/bigdecimal/newton.rb16
-rw-r--r--ext/bigdecimal/lib/bigdecimal/util.rb144
-rw-r--r--ext/bigdecimal/sample/linear.rb1
-rw-r--r--ext/bigdecimal/sample/nlsolve.rb2
-rw-r--r--ext/continuation/continuation.c8
-rw-r--r--ext/continuation/extconf.rb3
-rw-r--r--ext/coverage/coverage.c109
-rw-r--r--ext/coverage/depend11
-rw-r--r--ext/coverage/extconf.rb4
-rw-r--r--ext/curses/.cvsignore3
-rw-r--r--ext/curses/curses.c3243
-rw-r--r--ext/curses/depend6
-rw-r--r--ext/curses/extconf.rb140
-rw-r--r--ext/curses/hello.rb30
-rw-r--r--ext/curses/mouse.rb53
-rw-r--r--ext/curses/rain.rb76
-rw-r--r--ext/curses/view.rb91
-rw-r--r--ext/curses/view2.rb115
-rw-r--r--ext/date/date_core.c9564
-rw-r--r--ext/date/date_parse.c3128
-rw-r--r--ext/date/date_strftime.c633
-rw-r--r--ext/date/date_strptime.c699
-rw-r--r--ext/date/date_tmx.h56
-rw-r--r--ext/date/depend7
-rw-r--r--ext/date/extconf.rb2
-rw-r--r--ext/date/lib/date.rb61
-rw-r--r--ext/date/lib/date/format.rb1
-rw-r--r--ext/dbm/.cvsignore3
-rw-r--r--ext/dbm/dbm.c718
-rw-r--r--ext/dbm/depend1
-rw-r--r--ext/dbm/extconf.rb267
-rw-r--r--ext/digest/.cvsignore3
-rw-r--r--ext/digest/bubblebabble/.cvsignore3
-rw-r--r--ext/digest/bubblebabble/bubblebabble.c36
-rw-r--r--ext/digest/bubblebabble/depend4
-rw-r--r--ext/digest/defs.h14
-rw-r--r--ext/digest/depend3
-rw-r--r--ext/digest/digest.c122
-rw-r--r--ext/digest/extconf.rb2
-rw-r--r--ext/digest/lib/digest.rb58
-rw-r--r--ext/digest/lib/digest/hmac.rb302
-rw-r--r--ext/digest/lib/md5.rb23
-rw-r--r--ext/digest/lib/sha1.rb23
-rw-r--r--ext/digest/md5/.cvsignore3
-rw-r--r--ext/digest/md5/depend7
-rw-r--r--ext/digest/md5/extconf.rb9
-rw-r--r--ext/digest/md5/md5.c4
-rw-r--r--ext/digest/md5/md5init.c7
-rw-r--r--ext/digest/rmd160/.cvsignore3
-rw-r--r--ext/digest/rmd160/depend7
-rw-r--r--ext/digest/rmd160/extconf.rb9
-rw-r--r--ext/digest/rmd160/rmd160.c10
-rw-r--r--ext/digest/rmd160/rmd160.h2
-rw-r--r--ext/digest/rmd160/rmd160init.c7
-rw-r--r--ext/digest/sha1/.cvsignore3
-rw-r--r--ext/digest/sha1/depend9
-rw-r--r--ext/digest/sha1/extconf.rb9
-rw-r--r--ext/digest/sha1/sha1.h4
-rw-r--r--ext/digest/sha1/sha1init.c11
-rw-r--r--ext/digest/sha2/.cvsignore3
-rw-r--r--ext/digest/sha2/depend8
-rw-r--r--ext/digest/sha2/extconf.rb25
-rw-r--r--ext/digest/sha2/lib/sha2.rb50
-rw-r--r--ext/digest/sha2/sha2.c294
-rw-r--r--ext/digest/sha2/sha2.h170
-rw-r--r--ext/digest/sha2/sha2init.c8
-rw-r--r--ext/digest/sha2/sha2ossl.c13
-rw-r--r--ext/digest/sha2/sha2ossl.h17
-rw-r--r--ext/dl/.cvsignore8
-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.c670
-rw-r--r--ext/dl/depend54
-rw-r--r--ext/dl/dl.c1213
-rw-r--r--ext/dl/dl.def59
-rw-r--r--ext/dl/dl.h420
-rw-r--r--ext/dl/doc/dl.txt266
-rw-r--r--ext/dl/extconf.rb218
-rw-r--r--ext/dl/h2rb500
-rw-r--r--ext/dl/handle.c503
-rw-r--r--ext/dl/install.rb49
-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.rb439
-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.rb369
-rw-r--r--ext/dl/lib/dl/types.rb302
-rw-r--r--ext/dl/lib/dl/value.rb114
-rw-r--r--ext/dl/lib/dl/win32.rb25
-rw-r--r--ext/dl/mkcall.rb62
-rw-r--r--ext/dl/mkcallback.rb56
-rw-r--r--ext/dl/mkcbtable.rb18
-rw-r--r--ext/dl/ptr.c1058
-rw-r--r--ext/dl/sample/c++sample.C35
-rw-r--r--ext/dl/sample/c++sample.rb60
-rw-r--r--ext/dl/sample/drives.rb70
-rw-r--r--ext/dl/sample/getch.rb5
-rw-r--r--ext/dl/sample/libc.rb69
-rw-r--r--ext/dl/sample/msgbox.rb19
-rw-r--r--ext/dl/sample/msgbox2.rb18
-rw-r--r--ext/dl/sample/stream.rb87
-rw-r--r--ext/dl/sym.c992
-rw-r--r--ext/dl/test/libtest.def28
-rw-r--r--ext/dl/test/test.c247
-rw-r--r--ext/dl/test/test.rb306
-rw-r--r--ext/dl/type.rb115
-rw-r--r--ext/enumerator/.cvsignore2
-rw-r--r--ext/enumerator/enumerator.c298
-rw-r--r--ext/enumerator/enumerator.txt102
-rw-r--r--ext/enumerator/extconf.rb2
-rw-r--r--ext/etc/.cvsignore3
-rw-r--r--ext/etc/depend4
-rw-r--r--ext/etc/etc.c654
-rw-r--r--ext/etc/etc.txt72
-rw-r--r--ext/etc/etc.txt.ja72
-rw-r--r--ext/etc/extconf.rb19
-rwxr-xr-x[-rw-r--r--]ext/extmk.rb414
-rw-r--r--ext/fcntl/.cvsignore3
-rw-r--r--ext/fcntl/depend1
-rw-r--r--ext/fcntl/fcntl.c190
-rw-r--r--ext/fiber/extconf.rb3
-rw-r--r--ext/fiber/fiber.c8
-rw-r--r--ext/fiddle/closure.c316
-rw-r--r--ext/fiddle/closure.h8
-rw-r--r--ext/fiddle/conversions.c141
-rw-r--r--ext/fiddle/conversions.h44
-rw-r--r--ext/fiddle/depend4
-rw-r--r--ext/fiddle/extconf.rb59
-rw-r--r--ext/fiddle/fiddle.c454
-rw-r--r--ext/fiddle/fiddle.h143
-rw-r--r--ext/fiddle/function.c254
-rw-r--r--ext/fiddle/function.h8
-rw-r--r--ext/fiddle/handle.c477
-rw-r--r--ext/fiddle/lib/fiddle.rb55
-rw-r--r--ext/fiddle/lib/fiddle/closure.rb48
-rw-r--r--ext/fiddle/lib/fiddle/cparser.rb176
-rw-r--r--ext/fiddle/lib/fiddle/function.rb17
-rw-r--r--ext/fiddle/lib/fiddle/import.rb314
-rw-r--r--ext/fiddle/lib/fiddle/pack.rb128
-rw-r--r--ext/fiddle/lib/fiddle/struct.rb243
-rw-r--r--ext/fiddle/lib/fiddle/types.rb71
-rw-r--r--ext/fiddle/lib/fiddle/value.rb112
-rw-r--r--ext/fiddle/pointer.c713
-rw-r--r--ext/gdbm/.cvsignore3
-rw-r--r--ext/gdbm/depend1
-rw-r--r--ext/gdbm/gdbm.c482
-rw-r--r--ext/iconv/.cvsignore5
-rw-r--r--ext/iconv/charset_alias.rb103
-rw-r--r--ext/iconv/depend2
-rw-r--r--ext/iconv/extconf.rb51
-rw-r--r--ext/iconv/iconv.c913
-rw-r--r--ext/io/console/console.c798
-rw-r--r--ext/io/console/depend4
-rw-r--r--ext/io/console/extconf.rb26
-rw-r--r--ext/io/console/io-console.gemspec21
-rw-r--r--ext/io/console/lib/console/size.rb22
-rw-r--r--ext/io/nonblock/depend4
-rw-r--r--ext/io/nonblock/extconf.rb8
-rw-r--r--ext/io/nonblock/nonblock.c135
-rw-r--r--ext/io/wait/.cvsignore2
-rw-r--r--ext/io/wait/depend4
-rw-r--r--ext/io/wait/extconf.rb5
-rw-r--r--ext/io/wait/lib/nonblock.rb23
-rw-r--r--ext/io/wait/wait.c165
-rw-r--r--ext/json/extconf.rb3
-rw-r--r--ext/json/fbuffer/fbuffer.h181
-rw-r--r--ext/json/generator/depend1
-rw-r--r--ext/json/generator/extconf.rb4
-rw-r--r--ext/json/generator/generator.c1435
-rw-r--r--ext/json/generator/generator.h148
-rw-r--r--ext/json/lib/json.rb62
-rw-r--r--ext/json/lib/json/add/bigdecimal.rb28
-rw-r--r--ext/json/lib/json/add/complex.rb22
-rw-r--r--ext/json/lib/json/add/core.rb11
-rw-r--r--ext/json/lib/json/add/date.rb34
-rw-r--r--ext/json/lib/json/add/date_time.rb50
-rw-r--r--ext/json/lib/json/add/exception.rb31
-rw-r--r--ext/json/lib/json/add/ostruct.rb31
-rw-r--r--ext/json/lib/json/add/range.rb29
-rw-r--r--ext/json/lib/json/add/rational.rb22
-rw-r--r--ext/json/lib/json/add/regexp.rb30
-rw-r--r--ext/json/lib/json/add/struct.rb30
-rw-r--r--ext/json/lib/json/add/symbol.rb25
-rw-r--r--ext/json/lib/json/add/time.rb38
-rw-r--r--ext/json/lib/json/common.rb484
-rw-r--r--ext/json/lib/json/ext.rb21
-rw-r--r--ext/json/lib/json/generic_object.rb70
-rw-r--r--ext/json/lib/json/version.rb8
-rw-r--r--ext/json/parser/depend1
-rw-r--r--ext/json/parser/extconf.rb3
-rw-r--r--ext/json/parser/parser.c2204
-rw-r--r--ext/json/parser/parser.h77
-rw-r--r--ext/json/parser/parser.rl927
-rw-r--r--ext/json/parser/prereq.mk9
-rw-r--r--ext/mathn/complex/complex.c7
-rw-r--r--ext/mathn/complex/extconf.rb3
-rw-r--r--ext/mathn/rational/extconf.rb3
-rw-r--r--ext/mathn/rational/rational.c7
-rw-r--r--ext/nkf/.cvsignore3
-rw-r--r--ext/nkf/depend7
-rw-r--r--ext/nkf/lib/kconv.rb285
-rw-r--r--ext/nkf/nkf-utf8/config.h77
-rw-r--r--ext/nkf/nkf-utf8/nkf.c10011
-rw-r--r--ext/nkf/nkf-utf8/nkf.h189
-rw-r--r--ext/nkf/nkf-utf8/utf8tbl.c7346
-rw-r--r--ext/nkf/nkf-utf8/utf8tbl.h38
-rw-r--r--ext/nkf/nkf.c403
-rw-r--r--ext/objspace/depend14
-rw-r--r--ext/objspace/extconf.rb2
-rw-r--r--ext/objspace/gc_hook.c103
-rw-r--r--ext/objspace/object_tracing.c490
-rw-r--r--ext/objspace/objspace.c773
-rw-r--r--ext/objspace/objspace.h20
-rw-r--r--ext/objspace/objspace_dump.c409
-rw-r--r--ext/openssl/.cvsignore5
-rw-r--r--ext/openssl/depend6
-rw-r--r--ext/openssl/deprecation.rb21
-rw-r--r--ext/openssl/extconf.rb97
-rw-r--r--ext/openssl/lib/net/ftptls.rb53
-rw-r--r--ext/openssl/lib/net/telnets.rb251
-rw-r--r--ext/openssl/lib/openssl.rb4
-rw-r--r--ext/openssl/lib/openssl/bn.rb41
-rw-r--r--ext/openssl/lib/openssl/buffering.rb245
-rw-r--r--ext/openssl/lib/openssl/cipher.rb69
-rw-r--r--ext/openssl/lib/openssl/config.rb472
-rw-r--r--ext/openssl/lib/openssl/digest.rb87
-rw-r--r--ext/openssl/lib/openssl/ssl.rb123
-rw-r--r--ext/openssl/lib/openssl/x509.rb58
-rw-r--r--ext/openssl/openssl_missing.c41
-rw-r--r--ext/openssl/openssl_missing.h108
-rw-r--r--ext/openssl/ossl.c829
-rw-r--r--ext/openssl/ossl.h70
-rw-r--r--ext/openssl/ossl_asn1.c1267
-rw-r--r--ext/openssl/ossl_asn1.h4
-rw-r--r--ext/openssl/ossl_bio.c26
-rw-r--r--ext/openssl/ossl_bn.c323
-rw-r--r--ext/openssl/ossl_bn.h5
-rw-r--r--ext/openssl/ossl_cipher.c712
-rw-r--r--ext/openssl/ossl_cipher.h1
-rw-r--r--ext/openssl/ossl_config.c429
-rw-r--r--ext/openssl/ossl_digest.c404
-rw-r--r--ext/openssl/ossl_digest.h1
-rw-r--r--ext/openssl/ossl_engine.c252
-rw-r--r--ext/openssl/ossl_hmac.c226
-rw-r--r--ext/openssl/ossl_ns_spki.c190
-rw-r--r--ext/openssl/ossl_ocsp.c121
-rw-r--r--ext/openssl/ossl_pkcs12.c96
-rw-r--r--ext/openssl/ossl_pkcs12.h1
-rw-r--r--ext/openssl/ossl_pkcs5.c189
-rw-r--r--ext/openssl/ossl_pkcs7.c179
-rw-r--r--ext/openssl/ossl_pkcs7.h1
-rw-r--r--ext/openssl/ossl_pkey.c240
-rw-r--r--ext/openssl/ossl_pkey.h47
-rw-r--r--ext/openssl/ossl_pkey_dh.c288
-rw-r--r--ext/openssl/ossl_pkey_dsa.c291
-rw-r--r--ext/openssl/ossl_pkey_ec.c1683
-rw-r--r--ext/openssl/ossl_pkey_rsa.c331
-rw-r--r--ext/openssl/ossl_rand.c106
-rw-r--r--ext/openssl/ossl_ssl.c1710
-rw-r--r--ext/openssl/ossl_ssl.h15
-rw-r--r--ext/openssl/ossl_ssl_session.c323
-rw-r--r--ext/openssl/ossl_version.h2
-rw-r--r--ext/openssl/ossl_x509attr.c74
-rw-r--r--ext/openssl/ossl_x509cert.c343
-rw-r--r--ext/openssl/ossl_x509crl.c98
-rw-r--r--ext/openssl/ossl_x509ext.c107
-rw-r--r--ext/openssl/ossl_x509name.c223
-rw-r--r--ext/openssl/ossl_x509req.c88
-rw-r--r--ext/openssl/ossl_x509revoked.c46
-rw-r--r--ext/openssl/ossl_x509store.c168
-rw-r--r--ext/openssl/ruby_missing.h16
-rw-r--r--ext/pathname/depend3
-rw-r--r--ext/pathname/extconf.rb2
-rw-r--r--ext/pathname/lib/pathname.rb571
-rw-r--r--ext/pathname/pathname.c1442
-rw-r--r--ext/psych/.gitignore11
-rw-r--r--ext/psych/depend3
-rw-r--r--ext/psych/extconf.rb38
-rw-r--r--ext/psych/lib/psych.rb497
-rw-r--r--ext/psych/lib/psych/class_loader.rb101
-rw-r--r--ext/psych/lib/psych/coder.rb94
-rw-r--r--ext/psych/lib/psych/core_ext.rb35
-rw-r--r--ext/psych/lib/psych/deprecated.rb85
-rw-r--r--ext/psych/lib/psych/exception.rb13
-rw-r--r--ext/psych/lib/psych/handler.rb249
-rw-r--r--ext/psych/lib/psych/handlers/document_stream.rb22
-rw-r--r--ext/psych/lib/psych/handlers/recorder.rb39
-rw-r--r--ext/psych/lib/psych/json/ruby_events.rb19
-rw-r--r--ext/psych/lib/psych/json/stream.rb16
-rw-r--r--ext/psych/lib/psych/json/tree_builder.rb12
-rw-r--r--ext/psych/lib/psych/json/yaml_events.rb29
-rw-r--r--ext/psych/lib/psych/nodes.rb77
-rw-r--r--ext/psych/lib/psych/nodes/alias.rb18
-rw-r--r--ext/psych/lib/psych/nodes/document.rb60
-rw-r--r--ext/psych/lib/psych/nodes/mapping.rb56
-rw-r--r--ext/psych/lib/psych/nodes/node.rb55
-rw-r--r--ext/psych/lib/psych/nodes/scalar.rb67
-rw-r--r--ext/psych/lib/psych/nodes/sequence.rb81
-rw-r--r--ext/psych/lib/psych/nodes/stream.rb37
-rw-r--r--ext/psych/lib/psych/omap.rb4
-rw-r--r--ext/psych/lib/psych/parser.rb51
-rw-r--r--ext/psych/lib/psych/scalar_scanner.rb149
-rw-r--r--ext/psych/lib/psych/set.rb4
-rw-r--r--ext/psych/lib/psych/stream.rb37
-rw-r--r--ext/psych/lib/psych/streaming.rb27
-rw-r--r--ext/psych/lib/psych/syntax_error.rb21
-rw-r--r--ext/psych/lib/psych/tree_builder.rb96
-rw-r--r--ext/psych/lib/psych/visitors.rb6
-rw-r--r--ext/psych/lib/psych/visitors/depth_first.rb26
-rw-r--r--ext/psych/lib/psych/visitors/emitter.rb51
-rw-r--r--ext/psych/lib/psych/visitors/json_tree.rb24
-rw-r--r--ext/psych/lib/psych/visitors/to_ruby.rb368
-rw-r--r--ext/psych/lib/psych/visitors/visitor.rb19
-rw-r--r--ext/psych/lib/psych/visitors/yaml_tree.rb512
-rw-r--r--ext/psych/lib/psych/y.rb9
-rw-r--r--ext/psych/psych.c34
-rw-r--r--ext/psych/psych.gemspec23
-rw-r--r--ext/psych/psych.h20
-rw-r--r--ext/psych/psych_emitter.c538
-rw-r--r--ext/psych/psych_emitter.h8
-rw-r--r--ext/psych/psych_parser.c579
-rw-r--r--ext/psych/psych_parser.h6
-rw-r--r--ext/psych/psych_to_ruby.c43
-rw-r--r--ext/psych/psych_to_ruby.h8
-rw-r--r--ext/psych/psych_yaml_tree.c24
-rw-r--r--ext/psych/psych_yaml_tree.h8
-rw-r--r--ext/psych/yaml/LICENSE19
-rw-r--r--ext/psych/yaml/api.c1392
-rw-r--r--ext/psych/yaml/config.h11
-rw-r--r--ext/psych/yaml/dumper.c394
-rw-r--r--ext/psych/yaml/emitter.c2329
-rw-r--r--ext/psych/yaml/loader.c432
-rw-r--r--ext/psych/yaml/parser.c1374
-rw-r--r--ext/psych/yaml/reader.c465
-rw-r--r--ext/psych/yaml/scanner.c3570
-rw-r--r--ext/psych/yaml/writer.c141
-rw-r--r--ext/psych/yaml/yaml.h1971
-rw-r--r--ext/psych/yaml/yaml_private.h643
-rw-r--r--ext/pty/.cvsignore3
-rw-r--r--ext/pty/README65
-rw-r--r--ext/pty/README.expect22
-rw-r--r--ext/pty/README.expect.ja21
-rw-r--r--ext/pty/README.ja89
-rw-r--r--ext/pty/depend7
-rw-r--r--ext/pty/expect_sample.rb55
-rw-r--r--ext/pty/extconf.rb8
-rw-r--r--ext/pty/lib/expect.rb39
-rw-r--r--ext/pty/pty.c843
-rw-r--r--ext/pty/script.rb37
-rw-r--r--ext/purelib.rb3
-rw-r--r--ext/racc/cparse/.cvsignore3
-rw-r--r--ext/racc/cparse/README10
-rw-r--r--ext/racc/cparse/cparse.c99
-rw-r--r--ext/racc/cparse/depend1
-rw-r--r--ext/racc/cparse/extconf.rb1
-rw-r--r--ext/rbconfig/sizeof/depend3
-rw-r--r--ext/rbconfig/sizeof/extconf.rb2
-rw-r--r--ext/readline/.cvsignore3
-rw-r--r--ext/readline/README68
-rw-r--r--ext/readline/README.ja393
-rw-r--r--ext/readline/depend6
-rw-r--r--ext/readline/extconf.rb99
-rw-r--r--ext/readline/readline.c1919
-rw-r--r--ext/ripper/README30
-rw-r--r--ext/ripper/depend56
-rw-r--r--ext/ripper/eventids2.c293
-rw-r--r--ext/ripper/extconf.rb21
-rw-r--r--ext/ripper/lib/ripper.rb73
-rw-r--r--ext/ripper/lib/ripper/core.rb70
-rw-r--r--ext/ripper/lib/ripper/filter.rb77
-rw-r--r--ext/ripper/lib/ripper/lexer.rb186
-rw-r--r--ext/ripper/lib/ripper/sexp.rb114
-rwxr-xr-xext/ripper/tools/generate-param-macros.rb14
-rwxr-xr-xext/ripper/tools/generate.rb154
-rwxr-xr-xext/ripper/tools/preproc.rb91
-rwxr-xr-xext/ripper/tools/strip.rb12
-rw-r--r--ext/sdbm/.cvsignore3
-rw-r--r--ext/sdbm/_sdbm.c250
-rw-r--r--ext/sdbm/depend4
-rw-r--r--ext/sdbm/extconf.rb1
-rw-r--r--ext/sdbm/init.c717
-rw-r--r--ext/sdbm/sdbm.h10
-rw-r--r--ext/socket/.cvsignore3
-rw-r--r--ext/socket/.document17
-rw-r--r--ext/socket/addrinfo.h49
-rw-r--r--ext/socket/ancdata.c1834
-rw-r--r--ext/socket/basicsocket.c776
-rw-r--r--ext/socket/constants.c145
-rw-r--r--ext/socket/depend32
-rw-r--r--ext/socket/extconf.rb659
-rw-r--r--ext/socket/getaddrinfo.c112
-rw-r--r--ext/socket/getnameinfo.c46
-rw-r--r--ext/socket/ifaddr.c457
-rw-r--r--ext/socket/init.c632
-rw-r--r--ext/socket/ipsocket.c333
-rw-r--r--ext/socket/lib/socket.rb852
-rw-r--r--ext/socket/mkconstants.rb773
-rw-r--r--ext/socket/option.c1127
-rw-r--r--ext/socket/raddrinfo.c2455
-rw-r--r--ext/socket/rubysocket.h383
-rw-r--r--ext/socket/socket.c4943
-rw-r--r--ext/socket/sockport.h69
-rw-r--r--ext/socket/sockssocket.c71
-rw-r--r--ext/socket/tcpserver.c178
-rw-r--r--ext/socket/tcpsocket.c82
-rw-r--r--ext/socket/udpsocket.c266
-rw-r--r--ext/socket/unixserver.c155
-rw-r--r--ext/socket/unixsocket.c525
-rw-r--r--ext/stringio/.cvsignore3
-rw-r--r--ext/stringio/README3
-rw-r--r--ext/stringio/depend6
-rw-r--r--ext/stringio/stringio.c1078
-rw-r--r--ext/strscan/.cvsignore3
-rw-r--r--ext/strscan/depend8
-rw-r--r--ext/strscan/extconf.rb1
-rw-r--r--ext/strscan/strscan.c328
-rw-r--r--ext/syck/.cvsignore3
-rw-r--r--ext/syck/bytecode.c1166
-rw-r--r--ext/syck/depend12
-rw-r--r--ext/syck/emitter.c1242
-rw-r--r--ext/syck/extconf.rb5
-rw-r--r--ext/syck/gram.c1894
-rw-r--r--ext/syck/gram.h79
-rw-r--r--ext/syck/handler.c174
-rw-r--r--ext/syck/implicit.c2990
-rw-r--r--ext/syck/node.c408
-rw-r--r--ext/syck/rubyext.c2366
-rw-r--r--ext/syck/syck.c504
-rw-r--r--ext/syck/syck.h458
-rw-r--r--ext/syck/token.c2725
-rw-r--r--ext/syck/yaml2byte.c257
-rw-r--r--ext/syck/yamlbyte.h170
-rw-r--r--ext/syslog/.cvsignore3
-rw-r--r--ext/syslog/depend4
-rw-r--r--ext/syslog/lib/syslog/logger.rb208
-rw-r--r--ext/syslog/syslog.c386
-rw-r--r--ext/syslog/syslog.txt9
-rw-r--r--ext/syslog/test.rb164
-rw-r--r--ext/thread/extconf.rb8
-rw-r--r--ext/thread/lib/thread.rb5
-rw-r--r--ext/thread/thread.c1274
-rw-r--r--ext/tk/.cvsignore3
-rw-r--r--ext/tk/ChangeLog.tkextlib63
-rw-r--r--ext/tk/MANUAL_tcltklib.eng332
-rw-r--r--ext/tk/MANUAL_tcltklib.eucj557
-rw-r--r--ext/tk/MANUAL_tcltklib.ja584
-rw-r--r--ext/tk/README.1st29
-rw-r--r--ext/tk/README.ActiveTcl35
-rw-r--r--ext/tk/README.fork14
-rw-r--r--ext/tk/README.macosx-aqua20
-rw-r--r--ext/tk/README.tcltklib133
-rw-r--r--ext/tk/config_list.in41
-rw-r--r--ext/tk/depend4
-rw-r--r--ext/tk/extconf.rb2025
-rw-r--r--ext/tk/lib/README4
-rw-r--r--ext/tk/lib/multi-tk.rb969
-rw-r--r--ext/tk/lib/remote-tk.rb38
-rw-r--r--ext/tk/lib/tcltk.rb24
-rw-r--r--ext/tk/lib/tk.rb1878
-rw-r--r--ext/tk/lib/tk/autoload.rb704
-rw-r--r--ext/tk/lib/tk/bindtag.rb83
-rw-r--r--ext/tk/lib/tk/busy.rb118
-rw-r--r--ext/tk/lib/tk/button.rb8
-rw-r--r--ext/tk/lib/tk/canvas.rb171
-rw-r--r--ext/tk/lib/tk/canvastag.rb144
-rw-r--r--ext/tk/lib/tk/checkbutton.rb13
-rw-r--r--ext/tk/lib/tk/composite.rb118
-rw-r--r--ext/tk/lib/tk/console.rb6
-rw-r--r--ext/tk/lib/tk/dialog.rb30
-rw-r--r--ext/tk/lib/tk/encodedstr.rb90
-rw-r--r--ext/tk/lib/tk/entry.rb9
-rw-r--r--ext/tk/lib/tk/event.rb276
-rw-r--r--ext/tk/lib/tk/font.rb825
-rw-r--r--ext/tk/lib/tk/fontchooser.rb176
-rw-r--r--ext/tk/lib/tk/frame.rb8
-rw-r--r--ext/tk/lib/tk/grid.rb79
-rw-r--r--ext/tk/lib/tk/image.rb194
-rw-r--r--ext/tk/lib/tk/itemconfig.rb315
-rw-r--r--ext/tk/lib/tk/itemfont.rb69
-rw-r--r--ext/tk/lib/tk/kinput.rb6
-rw-r--r--ext/tk/lib/tk/label.rb8
-rw-r--r--ext/tk/lib/tk/labelframe.rb12
-rw-r--r--ext/tk/lib/tk/listbox.rb41
-rw-r--r--ext/tk/lib/tk/macpkg.rb11
-rw-r--r--ext/tk/lib/tk/menu.rb186
-rw-r--r--ext/tk/lib/tk/menubar.rb46
-rw-r--r--ext/tk/lib/tk/menuspec.rb259
-rw-r--r--ext/tk/lib/tk/message.rb9
-rw-r--r--ext/tk/lib/tk/mngfocus.rb4
-rw-r--r--ext/tk/lib/tk/msgcat.rb64
-rw-r--r--ext/tk/lib/tk/namespace.rb171
-rw-r--r--ext/tk/lib/tk/optiondb.rb62
-rw-r--r--ext/tk/lib/tk/optionobj.rb18
-rw-r--r--ext/tk/lib/tk/pack.rb17
-rw-r--r--ext/tk/lib/tk/package.rb4
-rw-r--r--ext/tk/lib/tk/palette.rb6
-rw-r--r--ext/tk/lib/tk/panedwindow.rb72
-rw-r--r--ext/tk/lib/tk/place.rb12
-rw-r--r--ext/tk/lib/tk/radiobutton.rb13
-rw-r--r--ext/tk/lib/tk/root.rb47
-rw-r--r--ext/tk/lib/tk/scale.rb38
-rw-r--r--ext/tk/lib/tk/scrollbar.rb75
-rw-r--r--ext/tk/lib/tk/scrollbox.rb7
-rw-r--r--ext/tk/lib/tk/selection.rb6
-rw-r--r--ext/tk/lib/tk/spinbox.rb67
-rw-r--r--ext/tk/lib/tk/text.rb336
-rw-r--r--ext/tk/lib/tk/textimage.rb24
-rw-r--r--ext/tk/lib/tk/textmark.rb108
-rw-r--r--ext/tk/lib/tk/texttag.rb136
-rw-r--r--ext/tk/lib/tk/textwindow.rb33
-rw-r--r--ext/tk/lib/tk/timer.rb89
-rw-r--r--ext/tk/lib/tk/toplevel.rb33
-rw-r--r--ext/tk/lib/tk/ttk_selector.rb98
-rw-r--r--ext/tk/lib/tk/validation.rb53
-rw-r--r--ext/tk/lib/tk/variable.rb630
-rw-r--r--ext/tk/lib/tk/virtevent.rb85
-rw-r--r--ext/tk/lib/tk/winfo.rb10
-rw-r--r--ext/tk/lib/tk/winpkg.rb25
-rw-r--r--ext/tk/lib/tk/wm.rb476
-rw-r--r--ext/tk/lib/tk/xim.rb4
-rw-r--r--ext/tk/lib/tkextlib/ICONS/icons.rb8
-rw-r--r--ext/tk/lib/tkextlib/ICONS/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/SUPPORT_STATUS84
-rw-r--r--ext/tk/lib/tkextlib/blt.rb6
-rw-r--r--ext/tk/lib/tkextlib/blt/barchart.rb6
-rw-r--r--ext/tk/lib/tkextlib/blt/bitmap.rb21
-rw-r--r--ext/tk/lib/tkextlib/blt/busy.rb3
-rw-r--r--ext/tk/lib/tkextlib/blt/component.rb625
-rw-r--r--ext/tk/lib/tkextlib/blt/container.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/dragdrop.rb77
-rw-r--r--ext/tk/lib/tkextlib/blt/eps.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/graph.rb4
-rw-r--r--ext/tk/lib/tkextlib/blt/htext.rb4
-rw-r--r--ext/tk/lib/tkextlib/blt/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/blt/stripchart.rb6
-rw-r--r--ext/tk/lib/tkextlib/blt/table.rb30
-rw-r--r--ext/tk/lib/tkextlib/blt/tabnotebook.rb93
-rw-r--r--ext/tk/lib/tkextlib/blt/tabset.rb185
-rw-r--r--ext/tk/lib/tkextlib/blt/ted.rb12
-rw-r--r--ext/tk/lib/tkextlib/blt/tile.rb4
-rw-r--r--ext/tk/lib/tkextlib/blt/tile/button.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/tile/checkbutton.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/tile/frame.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/tile/label.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/tile/radiobutton.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/tile/scrollbar.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/tile/toplevel.rb2
-rw-r--r--ext/tk/lib/tkextlib/blt/tree.rb385
-rw-r--r--ext/tk/lib/tkextlib/blt/treeview.rb283
-rw-r--r--ext/tk/lib/tkextlib/blt/unix_dnd.rb22
-rw-r--r--ext/tk/lib/tkextlib/blt/vector.rb49
-rw-r--r--ext/tk/lib/tkextlib/blt/watch.rb47
-rw-r--r--ext/tk/lib/tkextlib/blt/winop.rb12
-rw-r--r--ext/tk/lib/tkextlib/bwidget.rb2
-rw-r--r--ext/tk/lib/tkextlib/bwidget/arrowbutton.rb2
-rw-r--r--ext/tk/lib/tkextlib/bwidget/button.rb4
-rw-r--r--ext/tk/lib/tkextlib/bwidget/buttonbox.rb22
-rw-r--r--ext/tk/lib/tkextlib/bwidget/combobox.rb21
-rw-r--r--ext/tk/lib/tkextlib/bwidget/dialog.rb51
-rw-r--r--ext/tk/lib/tkextlib/bwidget/dynamichelp.rb7
-rw-r--r--ext/tk/lib/tkextlib/bwidget/entry.rb4
-rw-r--r--ext/tk/lib/tkextlib/bwidget/label.rb4
-rw-r--r--ext/tk/lib/tkextlib/bwidget/labelentry.rb4
-rw-r--r--ext/tk/lib/tkextlib/bwidget/labelframe.rb10
-rw-r--r--ext/tk/lib/tkextlib/bwidget/listbox.rb62
-rw-r--r--ext/tk/lib/tkextlib/bwidget/mainframe.rb54
-rw-r--r--ext/tk/lib/tkextlib/bwidget/messagedlg.rb18
-rw-r--r--ext/tk/lib/tkextlib/bwidget/notebook.rb32
-rw-r--r--ext/tk/lib/tkextlib/bwidget/pagesmanager.rb18
-rw-r--r--ext/tk/lib/tkextlib/bwidget/panedwindow.rb15
-rw-r--r--ext/tk/lib/tkextlib/bwidget/panelframe.rb22
-rw-r--r--ext/tk/lib/tkextlib/bwidget/passwddlg.rb8
-rw-r--r--ext/tk/lib/tkextlib/bwidget/progressbar.rb2
-rw-r--r--ext/tk/lib/tkextlib/bwidget/progressdlg.rb6
-rw-r--r--ext/tk/lib/tkextlib/bwidget/scrollableframe.rb10
-rw-r--r--ext/tk/lib/tkextlib/bwidget/scrolledwindow.rb20
-rw-r--r--ext/tk/lib/tkextlib/bwidget/scrollview.rb2
-rw-r--r--ext/tk/lib/tkextlib/bwidget/selectcolor.rb30
-rw-r--r--ext/tk/lib/tkextlib/bwidget/selectfont.rb14
-rw-r--r--ext/tk/lib/tkextlib/bwidget/separator.rb2
-rw-r--r--ext/tk/lib/tkextlib/bwidget/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/bwidget/spinbox.rb4
-rw-r--r--ext/tk/lib/tkextlib/bwidget/statusbar.rb26
-rw-r--r--ext/tk/lib/tkextlib/bwidget/titleframe.rb10
-rw-r--r--ext/tk/lib/tkextlib/bwidget/tree.rb116
-rw-r--r--ext/tk/lib/tkextlib/bwidget/widget.rb20
-rw-r--r--ext/tk/lib/tkextlib/itcl/incr_tcl.rb14
-rw-r--r--ext/tk/lib/tkextlib/itcl/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/itk/incr_tk.rb50
-rw-r--r--ext/tk/lib/tkextlib/itk/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/buttonbox.rb8
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/calendar.rb23
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/canvasprintbox.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/canvasprintdialog.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/checkbox.rb24
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/combobox.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/dateentry.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/datefield.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/dialog.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/dialogshell.rb8
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/disjointlistbox.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/entryfield.rb37
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/extbutton.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/extfileselectionbox.rb4
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/extfileselectiondialog.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/feedback.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/fileselectionbox.rb4
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/fileselectiondialog.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/finddialog.rb4
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/hierarchy.rb80
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/hyperhelp.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/labeledframe.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/labeledwidget.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/mainwindow.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/menubar.rb8
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/messagebox.rb8
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/messagedialog.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/notebook.rb19
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/optionmenu.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/panedwindow.rb8
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/promptdialog.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/pushbutton.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/radiobox.rb19
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/scopedobject.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb24
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/scrolledframe.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/scrolledhtml.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb6
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb94
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/scrolledwidget.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/selectionbox.rb4
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/selectiondialog.rb4
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/shell.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/spindate.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/spinint.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/spinner.rb37
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/spintime.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/tabnotebook.rb24
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/tabset.rb52
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/timeentry.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/timefield.rb2
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/toolbar.rb4
-rw-r--r--ext/tk/lib/tkextlib/iwidgets/watch.rb4
-rwxr-xr-xext/tk/lib/tkextlib/pkg_checker.rb6
-rw-r--r--ext/tk/lib/tkextlib/setup.rb8
-rw-r--r--ext/tk/lib/tkextlib/tcllib.rb29
-rw-r--r--ext/tk/lib/tkextlib/tcllib/README14
-rw-r--r--ext/tk/lib/tkextlib/tcllib/autoscroll.rb26
-rw-r--r--ext/tk/lib/tkextlib/tcllib/calendar.rb55
-rw-r--r--ext/tk/lib/tkextlib/tcllib/canvas_sqmap.rb36
-rw-r--r--ext/tk/lib/tkextlib/tcllib/canvas_zoom.rb21
-rw-r--r--ext/tk/lib/tkextlib/tcllib/chatwidget.rb151
-rw-r--r--ext/tk/lib/tkextlib/tcllib/crosshair.rb117
-rw-r--r--ext/tk/lib/tkextlib/tcllib/ctext.rb14
-rw-r--r--ext/tk/lib/tkextlib/tcllib/cursor.rb14
-rw-r--r--ext/tk/lib/tkextlib/tcllib/dateentry.rb62
-rw-r--r--ext/tk/lib/tkextlib/tcllib/datefield.rb14
-rw-r--r--ext/tk/lib/tkextlib/tcllib/diagrams.rb224
-rw-r--r--ext/tk/lib/tkextlib/tcllib/dialog.rb2
-rw-r--r--ext/tk/lib/tkextlib/tcllib/getstring.rb9
-rw-r--r--ext/tk/lib/tkextlib/tcllib/ico.rb52
-rw-r--r--ext/tk/lib/tkextlib/tcllib/ip_entry.rb17
-rw-r--r--ext/tk/lib/tkextlib/tcllib/khim.rb68
-rw-r--r--ext/tk/lib/tkextlib/tcllib/menuentry.rb47
-rw-r--r--ext/tk/lib/tkextlib/tcllib/ntext.rb146
-rw-r--r--ext/tk/lib/tkextlib/tcllib/panelframe.rb10
-rw-r--r--ext/tk/lib/tkextlib/tcllib/plotchart.rb785
-rw-r--r--ext/tk/lib/tkextlib/tcllib/ruler.rb2
-rw-r--r--ext/tk/lib/tkextlib/tcllib/screenruler.rb2
-rw-r--r--ext/tk/lib/tkextlib/tcllib/scrolledwindow.rb57
-rw-r--r--ext/tk/lib/tkextlib/tcllib/scrollwin.rb2
-rw-r--r--ext/tk/lib/tkextlib/tcllib/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/tcllib/statusbar.rb79
-rw-r--r--ext/tk/lib/tkextlib/tcllib/superframe.rb2
-rw-r--r--ext/tk/lib/tkextlib/tcllib/swaplist.rb15
-rw-r--r--ext/tk/lib/tkextlib/tcllib/tablelist.rb7
-rw-r--r--ext/tk/lib/tkextlib/tcllib/tablelist_core.rb342
-rw-r--r--ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb20
-rw-r--r--ext/tk/lib/tkextlib/tcllib/tkpiechart.rb36
-rw-r--r--ext/tk/lib/tkextlib/tcllib/toolbar.rb175
-rw-r--r--ext/tk/lib/tkextlib/tcllib/tooltip.rb13
-rw-r--r--ext/tk/lib/tkextlib/tcllib/widget.rb34
-rw-r--r--ext/tk/lib/tkextlib/tclx/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/tile.rb285
-rw-r--r--ext/tk/lib/tkextlib/tile/dialog.rb20
-rw-r--r--ext/tk/lib/tkextlib/tile/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/tile/sizegrip.rb9
-rw-r--r--ext/tk/lib/tkextlib/tile/style.rb259
-rw-r--r--ext/tk/lib/tkextlib/tile/tbutton.rb10
-rw-r--r--ext/tk/lib/tkextlib/tile/tcheckbutton.rb12
-rw-r--r--ext/tk/lib/tkextlib/tile/tcombobox.rb6
-rw-r--r--ext/tk/lib/tkextlib/tile/tentry.rb15
-rw-r--r--ext/tk/lib/tkextlib/tile/tframe.rb10
-rw-r--r--ext/tk/lib/tkextlib/tile/tlabel.rb10
-rw-r--r--ext/tk/lib/tkextlib/tile/tlabelframe.rb12
-rw-r--r--ext/tk/lib/tkextlib/tile/tmenubutton.rb16
-rw-r--r--ext/tk/lib/tkextlib/tile/tnotebook.rb45
-rw-r--r--ext/tk/lib/tkextlib/tile/tpaned.rb93
-rw-r--r--ext/tk/lib/tkextlib/tile/tprogressbar.rb6
-rw-r--r--ext/tk/lib/tkextlib/tile/tradiobutton.rb12
-rw-r--r--ext/tk/lib/tkextlib/tile/treeview.rb291
-rw-r--r--ext/tk/lib/tkextlib/tile/tscale.rb14
-rw-r--r--ext/tk/lib/tkextlib/tile/tscrollbar.rb39
-rw-r--r--ext/tk/lib/tkextlib/tile/tseparator.rb6
-rw-r--r--ext/tk/lib/tkextlib/tile/tspinbox.rb107
-rw-r--r--ext/tk/lib/tkextlib/tile/tsquare.rb2
-rw-r--r--ext/tk/lib/tkextlib/tkDND/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/tkDND/shape.rb32
-rw-r--r--ext/tk/lib/tkextlib/tkDND/tkdnd.rb70
-rw-r--r--ext/tk/lib/tkextlib/tkHTML/htmlwidget.rb25
-rw-r--r--ext/tk/lib/tkextlib/tkHTML/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/tkimg/README2
-rw-r--r--ext/tk/lib/tkextlib/tkimg/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/tktable/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/tktable/tktable.rb305
-rw-r--r--ext/tk/lib/tkextlib/tktrans/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/tktrans/tktrans.rb4
-rw-r--r--ext/tk/lib/tkextlib/treectrl/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/treectrl/tktreectrl.rb519
-rw-r--r--ext/tk/lib/tkextlib/trofs/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/version.rb2
-rw-r--r--ext/tk/lib/tkextlib/vu/bargraph.rb10
-rw-r--r--ext/tk/lib/tkextlib/vu/charts.rb2
-rw-r--r--ext/tk/lib/tkextlib/vu/dial.rb6
-rw-r--r--ext/tk/lib/tkextlib/vu/pie.rb83
-rw-r--r--ext/tk/lib/tkextlib/vu/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/vu/spinbox.rb4
-rw-r--r--ext/tk/lib/tkextlib/winico/setup.rb4
-rw-r--r--ext/tk/lib/tkextlib/winico/winico.rb89
-rw-r--r--ext/tk/old-README.tcltklib.eucj159
-rw-r--r--ext/tk/old-README.tcltklib.ja159
-rw-r--r--ext/tk/old-extconf.rb440
-rw-r--r--ext/tk/sample/24hr_clock.rb130
-rw-r--r--ext/tk/sample/binding_sample.rb8
-rw-r--r--ext/tk/sample/bindtag_sample.rb38
-rw-r--r--ext/tk/sample/binstr_usage.rb14
-rw-r--r--ext/tk/sample/cd_timer.rb16
-rw-r--r--ext/tk/sample/cmd_res_test.rb2
-rw-r--r--ext/tk/sample/demos-en/ChangeLog.prev2
-rw-r--r--ext/tk/sample/demos-en/README130
-rw-r--r--ext/tk/sample/demos-en/README.1st8
-rw-r--r--ext/tk/sample/demos-en/README.tkencoding22
-rw-r--r--ext/tk/sample/demos-en/anilabel.rb24
-rw-r--r--ext/tk/sample/demos-en/aniwave.rb19
-rw-r--r--ext/tk/sample/demos-en/arrow.rb80
-rw-r--r--ext/tk/sample/demos-en/bind.rb67
-rw-r--r--ext/tk/sample/demos-en/bitmap.rb16
-rw-r--r--ext/tk/sample/demos-en/browse122
-rw-r--r--ext/tk/sample/demos-en/browse222
-rw-r--r--ext/tk/sample/demos-en/button.rb12
-rw-r--r--ext/tk/sample/demos-en/check.rb22
-rw-r--r--ext/tk/sample/demos-en/check2.rb46
-rw-r--r--ext/tk/sample/demos-en/clrpick.rb30
-rw-r--r--ext/tk/sample/demos-en/colors.rb20
-rw-r--r--ext/tk/sample/demos-en/combo.rb96
-rw-r--r--ext/tk/sample/demos-en/cscroll.rb34
-rw-r--r--ext/tk/sample/demos-en/ctext.rb81
-rw-r--r--ext/tk/sample/demos-en/doc.org/license.terms2
-rw-r--r--ext/tk/sample/demos-en/doc.org/license.terms.tk802
-rw-r--r--ext/tk/sample/demos-en/entry1.rb18
-rw-r--r--ext/tk/sample/demos-en/entry2.rb12
-rw-r--r--ext/tk/sample/demos-en/entry3.rb70
-rw-r--r--ext/tk/sample/demos-en/filebox.rb47
-rw-r--r--ext/tk/sample/demos-en/floor.rb560
-rw-r--r--ext/tk/sample/demos-en/floor2.rb560
-rw-r--r--ext/tk/sample/demos-en/form.rb14
-rw-r--r--ext/tk/sample/demos-en/goldberg.rb419
-rw-r--r--ext/tk/sample/demos-en/hello6
-rw-r--r--ext/tk/sample/demos-en/hscale.rb29
-rw-r--r--ext/tk/sample/demos-en/icon.rb24
-rw-r--r--ext/tk/sample/demos-en/image1.rb15
-rw-r--r--ext/tk/sample/demos-en/image2.rb28
-rw-r--r--ext/tk/sample/demos-en/image3.rb43
-rw-r--r--ext/tk/sample/demos-en/items.rb103
-rw-r--r--ext/tk/sample/demos-en/ixset28
-rw-r--r--ext/tk/sample/demos-en/ixset254
-rw-r--r--ext/tk/sample/demos-en/knightstour.rb271
-rw-r--r--ext/tk/sample/demos-en/label.rb29
-rw-r--r--ext/tk/sample/demos-en/labelframe.rb18
-rw-r--r--ext/tk/sample/demos-en/mclist.rb117
-rw-r--r--ext/tk/sample/demos-en/menu.rb60
-rw-r--r--ext/tk/sample/demos-en/menu84.rb68
-rw-r--r--ext/tk/sample/demos-en/menubu.rb14
-rw-r--r--ext/tk/sample/demos-en/msgbox.rb34
-rw-r--r--ext/tk/sample/demos-en/msgbox2.rb91
-rw-r--r--ext/tk/sample/demos-en/paned1.rb18
-rw-r--r--ext/tk/sample/demos-en/paned2.rb52
-rw-r--r--ext/tk/sample/demos-en/patch_1.1c193
-rw-r--r--ext/tk/sample/demos-en/pendulum.rb75
-rw-r--r--ext/tk/sample/demos-en/plot.rb36
-rw-r--r--ext/tk/sample/demos-en/puzzle.rb38
-rw-r--r--ext/tk/sample/demos-en/radio.rb24
-rw-r--r--ext/tk/sample/demos-en/radio2.rb33
-rw-r--r--ext/tk/sample/demos-en/radio3.rb55
-rw-r--r--ext/tk/sample/demos-en/rmt68
-rw-r--r--ext/tk/sample/demos-en/rolodex6
-rw-r--r--ext/tk/sample/demos-en/rolodex-j323
-rw-r--r--ext/tk/sample/demos-en/ruler.rb42
-rw-r--r--ext/tk/sample/demos-en/sayings.rb16
-rw-r--r--ext/tk/sample/demos-en/search.rb51
-rw-r--r--ext/tk/sample/demos-en/spin.rb22
-rw-r--r--ext/tk/sample/demos-en/square12
-rw-r--r--ext/tk/sample/demos-en/states.rb30
-rw-r--r--ext/tk/sample/demos-en/style.rb80
-rw-r--r--ext/tk/sample/demos-en/tcolor18
-rw-r--r--ext/tk/sample/demos-en/text.rb16
-rw-r--r--ext/tk/sample/demos-en/textpeer.rb76
-rw-r--r--ext/tk/sample/demos-en/timer2
-rw-r--r--ext/tk/sample/demos-en/toolbar.rb130
-rw-r--r--ext/tk/sample/demos-en/tree.rb119
-rw-r--r--ext/tk/sample/demos-en/ttkbut.rb139
-rw-r--r--ext/tk/sample/demos-en/ttkmenu.rb85
-rw-r--r--ext/tk/sample/demos-en/ttknote.rb89
-rw-r--r--ext/tk/sample/demos-en/ttkpane.rb213
-rw-r--r--ext/tk/sample/demos-en/ttkprogress.rb66
-rw-r--r--ext/tk/sample/demos-en/twind.rb72
-rw-r--r--ext/tk/sample/demos-en/twind2.rb134
-rw-r--r--ext/tk/sample/demos-en/unicodeout.rb50
-rw-r--r--ext/tk/sample/demos-en/vscale.rb29
-rw-r--r--ext/tk/sample/demos-en/widget359
-rw-r--r--ext/tk/sample/demos-jp/README104
-rw-r--r--ext/tk/sample/demos-jp/README.1st28
-rw-r--r--ext/tk/sample/demos-jp/anilabel.rb45
-rw-r--r--ext/tk/sample/demos-jp/aniwave.rb28
-rw-r--r--ext/tk/sample/demos-jp/arrow.rb97
-rw-r--r--ext/tk/sample/demos-jp/bind.rb88
-rw-r--r--ext/tk/sample/demos-jp/bitmap.rb33
-rw-r--r--ext/tk/sample/demos-jp/browse122
-rw-r--r--ext/tk/sample/demos-jp/browse222
-rw-r--r--ext/tk/sample/demos-jp/button.rb24
-rw-r--r--ext/tk/sample/demos-jp/check.rb39
-rw-r--r--ext/tk/sample/demos-jp/check2.rb61
-rw-r--r--ext/tk/sample/demos-jp/clrpick.rb45
-rw-r--r--ext/tk/sample/demos-jp/colors.rb39
-rw-r--r--ext/tk/sample/demos-jp/combo.rb98
-rw-r--r--ext/tk/sample/demos-jp/cscroll.rb53
-rw-r--r--ext/tk/sample/demos-jp/ctext.rb108
-rw-r--r--ext/tk/sample/demos-jp/dialog1.rb11
-rw-r--r--ext/tk/sample/demos-jp/dialog2.rb11
-rw-r--r--ext/tk/sample/demos-jp/doc.org/license.terms2
-rw-r--r--ext/tk/sample/demos-jp/doc.org/license.terms.tk802
-rw-r--r--ext/tk/sample/demos-jp/entry1.rb45
-rw-r--r--ext/tk/sample/demos-jp/entry2.rb41
-rw-r--r--ext/tk/sample/demos-jp/entry3.rb105
-rw-r--r--ext/tk/sample/demos-jp/filebox.rb72
-rw-r--r--ext/tk/sample/demos-jp/floor.rb579
-rw-r--r--ext/tk/sample/demos-jp/floor2.rb579
-rw-r--r--ext/tk/sample/demos-jp/form.rb37
-rw-r--r--ext/tk/sample/demos-jp/goldberg.rb440
-rw-r--r--ext/tk/sample/demos-jp/hello5
-rw-r--r--ext/tk/sample/demos-jp/hscale.rb41
-rw-r--r--ext/tk/sample/demos-jp/icon.rb45
-rw-r--r--ext/tk/sample/demos-jp/image1.rb36
-rw-r--r--ext/tk/sample/demos-jp/image2.rb52
-rw-r--r--ext/tk/sample/demos-jp/image3.rb40
-rw-r--r--ext/tk/sample/demos-jp/items.rb156
-rw-r--r--ext/tk/sample/demos-jp/ixset30
-rw-r--r--ext/tk/sample/demos-jp/ixset277
-rw-r--r--ext/tk/sample/demos-jp/knightstour.rb273
-rw-r--r--ext/tk/sample/demos-jp/label.rb46
-rw-r--r--ext/tk/sample/demos-jp/labelframe.rb48
-rw-r--r--ext/tk/sample/demos-jp/mclist.rb121
-rw-r--r--ext/tk/sample/demos-jp/menu.rb141
-rw-r--r--ext/tk/sample/demos-jp/menu84.rb107
-rw-r--r--ext/tk/sample/demos-jp/menu8x.rb159
-rw-r--r--ext/tk/sample/demos-jp/menubu.rb41
-rw-r--r--ext/tk/sample/demos-jp/msgbox.rb63
-rw-r--r--ext/tk/sample/demos-jp/msgbox2.rb90
-rw-r--r--ext/tk/sample/demos-jp/paned1.rb34
-rw-r--r--ext/tk/sample/demos-jp/paned2.rb74
-rw-r--r--ext/tk/sample/demos-jp/pendulum.rb84
-rw-r--r--ext/tk/sample/demos-jp/plot.rb61
-rw-r--r--ext/tk/sample/demos-jp/puzzle.rb67
-rw-r--r--ext/tk/sample/demos-jp/radio.rb43
-rw-r--r--ext/tk/sample/demos-jp/radio2.rb49
-rw-r--r--ext/tk/sample/demos-jp/radio3.rb61
-rw-r--r--ext/tk/sample/demos-jp/rmt68
-rw-r--r--ext/tk/sample/demos-jp/rolodex6
-rw-r--r--ext/tk/sample/demos-jp/rolodex-j135
-rw-r--r--ext/tk/sample/demos-jp/ruler.rb59
-rw-r--r--ext/tk/sample/demos-jp/sayings.rb35
-rw-r--r--ext/tk/sample/demos-jp/search.rb80
-rw-r--r--ext/tk/sample/demos-jp/spin.rb64
-rw-r--r--ext/tk/sample/demos-jp/square12
-rw-r--r--ext/tk/sample/demos-jp/states.rb43
-rw-r--r--ext/tk/sample/demos-jp/style.rb258
-rw-r--r--ext/tk/sample/demos-jp/tcolor51
-rw-r--r--ext/tk/sample/demos-jp/text.rb111
-rw-r--r--ext/tk/sample/demos-jp/textpeer.rb82
-rw-r--r--ext/tk/sample/demos-jp/timer2
-rw-r--r--ext/tk/sample/demos-jp/toolbar.rb136
-rw-r--r--ext/tk/sample/demos-jp/tree.rb120
-rw-r--r--ext/tk/sample/demos-jp/ttkbut.rb145
-rw-r--r--ext/tk/sample/demos-jp/ttkmenu.rb91
-rw-r--r--ext/tk/sample/demos-jp/ttknote.rb97
-rw-r--r--ext/tk/sample/demos-jp/ttkpane.rb216
-rw-r--r--ext/tk/sample/demos-jp/ttkprogress.rb71
-rw-r--r--ext/tk/sample/demos-jp/twind.rb143
-rw-r--r--ext/tk/sample/demos-jp/twind2.rb223
-rw-r--r--ext/tk/sample/demos-jp/unicodeout.rb86
-rw-r--r--ext/tk/sample/demos-jp/vscale.rb44
-rw-r--r--ext/tk/sample/demos-jp/widget619
-rw-r--r--ext/tk/sample/editable_listbox.rb135
-rw-r--r--ext/tk/sample/encstr_usage.rb9
-rw-r--r--ext/tk/sample/figmemo_sample.rb456
-rw-r--r--ext/tk/sample/irbtk.rb4
-rw-r--r--ext/tk/sample/irbtkw.rbw50
-rw-r--r--ext/tk/sample/menubar1.rb20
-rw-r--r--ext/tk/sample/menubar2.rb24
-rw-r--r--ext/tk/sample/menubar3.rb72
-rw-r--r--ext/tk/sample/msgs_rb/README4
-rw-r--r--ext/tk/sample/msgs_rb/es.msg2
-rw-r--r--ext/tk/sample/msgs_rb/ru.msg4
-rw-r--r--ext/tk/sample/msgs_rb2/README2
-rw-r--r--ext/tk/sample/msgs_rb2/ja.msg154
-rw-r--r--ext/tk/sample/msgs_tk/README4
-rw-r--r--ext/tk/sample/msgs_tk/el.msg2
-rw-r--r--ext/tk/sample/msgs_tk/es.msg2
-rw-r--r--ext/tk/sample/msgs_tk/license.terms2
-rw-r--r--ext/tk/sample/msgs_tk/ru.msg4
-rw-r--r--ext/tk/sample/multi-ip_sample.rb7
-rw-r--r--ext/tk/sample/multi-ip_sample2.rb2
-rw-r--r--ext/tk/sample/optobj_sample.rb30
-rw-r--r--ext/tk/sample/propagate.rb2
-rw-r--r--ext/tk/sample/remote-ip_sample.rb10
-rw-r--r--ext/tk/sample/remote-ip_sample2.rb20
-rw-r--r--ext/tk/sample/safe-tk.rb57
-rw-r--r--ext/tk/sample/scrollframe.rb28
-rw-r--r--ext/tk/sample/tcltklib/sample0.rb12
-rw-r--r--ext/tk/sample/tcltklib/sample1.rb304
-rw-r--r--ext/tk/sample/tcltklib/sample2.rb120
-rw-r--r--ext/tk/sample/tkalignbox.rb102
-rw-r--r--ext/tk/sample/tkballoonhelp.rb118
-rw-r--r--ext/tk/sample/tkbiff.rb6
-rw-r--r--ext/tk/sample/tkbrowse.rb2
-rw-r--r--ext/tk/sample/tkcombobox.rb133
-rw-r--r--ext/tk/sample/tkdialog.rb2
-rw-r--r--ext/tk/sample/tkextlib/ICONS/viewIcons.rb38
-rw-r--r--ext/tk/sample/tkextlib/blt/barchart5.rb22
-rw-r--r--ext/tk/sample/tkextlib/blt/calendar.rb54
-rw-r--r--ext/tk/sample/tkextlib/blt/graph6.rb4056
-rw-r--r--ext/tk/sample/tkextlib/blt/graph7.rb8
-rw-r--r--ext/tk/sample/tkextlib/blt/graph7a.rb10
-rw-r--r--ext/tk/sample/tkextlib/blt/graph7b.rb8
-rw-r--r--ext/tk/sample/tkextlib/blt/graph7c.rb8
-rw-r--r--ext/tk/sample/tkextlib/blt/pareto.rb34
-rw-r--r--ext/tk/sample/tkextlib/blt/plot1b.rb2
-rw-r--r--ext/tk/sample/tkextlib/blt/readme.txt2
-rw-r--r--ext/tk/sample/tkextlib/blt/winop1.rb8
-rw-r--r--ext/tk/sample/tkextlib/blt/winop2.rb2
-rw-r--r--ext/tk/sample/tkextlib/bwidget/Orig_LICENSE.txt12
-rw-r--r--ext/tk/sample/tkextlib/bwidget/basic.rb96
-rw-r--r--ext/tk/sample/tkextlib/bwidget/demo.rb84
-rw-r--r--ext/tk/sample/tkextlib/bwidget/dnd.rb16
-rw-r--r--ext/tk/sample/tkextlib/bwidget/manager.rb28
-rw-r--r--ext/tk/sample/tkextlib/bwidget/select.rb56
-rw-r--r--ext/tk/sample/tkextlib/bwidget/tmpldlg.rb162
-rw-r--r--ext/tk/sample/tkextlib/bwidget/tree.rb96
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/catalog_demo/Orig_LICENSE.txt24
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb8
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb8
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/dialogshell.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/disjointlistbox.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/entryfield-1.rb12
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb16
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/entryfield-3.rb10
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/extbutton.rb12
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/fileselectionbox.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/hierarchy.rb16
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/labeledwidget.rb4
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/mainwindow.rb36
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/menubar.rb66
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/menubar2.rb12
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/messagebox1.rb6
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/messagebox2.rb6
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/messagedialog.rb8
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/notebook.rb4
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/notebook2.rb4
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/optionmenu.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/panedwindow.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/panedwindow2.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/promptdialog.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/pushbutton.rb4
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/scrolledframe.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/scrolledhtml.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/scrolledlistbox.rb6
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/scrolledtext.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/selectionbox.rb4
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/selectiondialog.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/shell.rb8
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/spinint.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/spinner.rb8
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/tabnotebook.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/tabnotebook2.rb2
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/toolbar.rb32
-rw-r--r--ext/tk/sample/tkextlib/iwidgets/sample/watch.rb2
-rw-r--r--ext/tk/sample/tkextlib/tcllib/Orig_LICENSE.txt8
-rw-r--r--ext/tk/sample/tkextlib/tcllib/datefield.rb4
-rw-r--r--ext/tk/sample/tkextlib/tcllib/plotdemos1.rb22
-rw-r--r--ext/tk/sample/tkextlib/tcllib/plotdemos2.rb8
-rw-r--r--ext/tk/sample/tkextlib/tcllib/plotdemos3.rb20
-rw-r--r--ext/tk/sample/tkextlib/tcllib/xyplot.rb2
-rw-r--r--ext/tk/sample/tkextlib/tile/demo.rb213
-rw-r--r--ext/tk/sample/tkextlib/tile/readme.txt4
-rw-r--r--ext/tk/sample/tkextlib/tile/repeater.tcl10
-rw-r--r--ext/tk/sample/tkextlib/tile/themes/blue/blue.tcl8
-rw-r--r--ext/tk/sample/tkextlib/tile/themes/blue/pkgIndex.tcl2
-rw-r--r--ext/tk/sample/tkextlib/tile/themes/keramik/keramik.tcl28
-rw-r--r--ext/tk/sample/tkextlib/tile/themes/keramik/pkgIndex.tcl2
-rw-r--r--ext/tk/sample/tkextlib/tile/themes/kroc.rb122
-rw-r--r--ext/tk/sample/tkextlib/tile/themes/kroc/kroc.tcl38
-rw-r--r--ext/tk/sample/tkextlib/tile/themes/kroc/pkgIndex.tcl2
-rw-r--r--ext/tk/sample/tkextlib/tile/themes/plastik/pkgIndex.tcl2
-rw-r--r--ext/tk/sample/tkextlib/tile/toolbutton.tcl34
-rw-r--r--ext/tk/sample/tkextlib/tkHTML/README6
-rw-r--r--ext/tk/sample/tkextlib/tkHTML/hv.rb48
-rw-r--r--ext/tk/sample/tkextlib/tkHTML/page1/index.html2
-rw-r--r--ext/tk/sample/tkextlib/tkHTML/page2/index.html48
-rw-r--r--ext/tk/sample/tkextlib/tkHTML/page3/index.html38
-rw-r--r--ext/tk/sample/tkextlib/tkHTML/ss.rb82
-rw-r--r--ext/tk/sample/tkextlib/tkimg/demo.rb10
-rw-r--r--ext/tk/sample/tkextlib/tkimg/license_terms_of_Img_extension4
-rw-r--r--ext/tk/sample/tkextlib/tkimg/readme.txt2
-rw-r--r--ext/tk/sample/tkextlib/tktable/Orig_LICENSE.txt4
-rw-r--r--ext/tk/sample/tkextlib/tktable/basic.rb14
-rw-r--r--ext/tk/sample/tkextlib/tktable/buttons.rb12
-rw-r--r--ext/tk/sample/tkextlib/tktable/command.rb22
-rw-r--r--ext/tk/sample/tkextlib/tktable/debug.rb16
-rw-r--r--ext/tk/sample/tkextlib/tktable/dynarows.rb14
-rw-r--r--ext/tk/sample/tkextlib/tktable/maxsize.rb14
-rw-r--r--ext/tk/sample/tkextlib/tktable/spreadsheet.rb16
-rw-r--r--[-rwxr-xr-x]ext/tk/sample/tkextlib/tktable/tcllogo.gifbin2341 -> 2341 bytes-rw-r--r--ext/tk/sample/tkextlib/tktable/valid.rb12
-rw-r--r--ext/tk/sample/tkextlib/treectrl/bitmaps.rb32
-rw-r--r--ext/tk/sample/tkextlib/treectrl/demo.rb349
-rw-r--r--ext/tk/sample/tkextlib/treectrl/explorer.rb126
-rw-r--r--ext/tk/sample/tkextlib/treectrl/help.rb106
-rw-r--r--ext/tk/sample/tkextlib/treectrl/imovie.rb30
-rw-r--r--ext/tk/sample/tkextlib/treectrl/layout.rb26
-rw-r--r--ext/tk/sample/tkextlib/treectrl/mailwasher.rb100
-rw-r--r--ext/tk/sample/tkextlib/treectrl/outlook-folders.rb52
-rw-r--r--ext/tk/sample/tkextlib/treectrl/outlook-newgroup.rb102
-rw-r--r--ext/tk/sample/tkextlib/treectrl/random.rb68
-rw-r--r--ext/tk/sample/tkextlib/treectrl/readme.txt2
-rw-r--r--ext/tk/sample/tkextlib/treectrl/www-options.rb72
-rw-r--r--ext/tk/sample/tkextlib/vu/Orig_LICENSE.txt4
-rw-r--r--ext/tk/sample/tkextlib/vu/canvItems.rb68
-rw-r--r--ext/tk/sample/tkextlib/vu/canvSticker.rb4
-rw-r--r--ext/tk/sample/tkextlib/vu/canvSticker2.rb16
-rw-r--r--ext/tk/sample/tkextlib/vu/dial_demo.rb62
-rw-r--r--ext/tk/sample/tkextlib/vu/oscilloscope.rb16
-rw-r--r--ext/tk/sample/tkextlib/vu/pie.rb10
-rw-r--r--ext/tk/sample/tkextlib/vu/vu_demo.rb14
-rw-r--r--ext/tk/sample/tkfrom.rb2
-rw-r--r--ext/tk/sample/tkhello.rb2
-rw-r--r--ext/tk/sample/tkmenubutton.rb56
-rw-r--r--ext/tk/sample/tkmsgcat-load_rb.rb16
-rw-r--r--ext/tk/sample/tkmsgcat-load_rb2.rb16
-rw-r--r--ext/tk/sample/tkmsgcat-load_tk.rb22
-rw-r--r--ext/tk/sample/tkmulticolumnlist.rb114
-rw-r--r--ext/tk/sample/tkmultilistbox.rb96
-rw-r--r--ext/tk/sample/tkmultilistframe.rb168
-rw-r--r--ext/tk/sample/tkoptdb-safeTk.rb30
-rw-r--r--ext/tk/sample/tkoptdb.rb34
-rw-r--r--ext/tk/sample/tkrttimer.rb17
-rw-r--r--ext/tk/sample/tksleep_sample.rb29
-rw-r--r--ext/tk/sample/tktextframe.rb267
-rw-r--r--ext/tk/sample/tktextio.rb66
-rw-r--r--ext/tk/sample/tktimer2.rb8
-rw-r--r--ext/tk/sample/tktimer3.rb8
-rw-r--r--ext/tk/sample/tktree.rb26
-rw-r--r--ext/tk/sample/ttk_wrapper.rb154
-rw-r--r--ext/tk/stubs.c134
-rw-r--r--ext/tk/tcltklib.c4519
-rw-r--r--ext/tk/tkutil/.cvsignore3
-rw-r--r--ext/tk/tkutil/extconf.rb7
-rw-r--r--ext/tk/tkutil/tkutil.c887
-rw-r--r--ext/win32/extconf.rb3
-rw-r--r--ext/win32/lib/Win32API.rb31
-rw-r--r--ext/win32/lib/win32/importer.rb14
-rw-r--r--ext/win32/lib/win32/registry.rb898
-rw-r--r--ext/win32/lib/win32/resolv.rb378
-rw-r--r--ext/win32/lib/win32/sspi.rb330
-rw-r--r--ext/win32ole/.cvsignore4
-rw-r--r--ext/win32ole/depend2
-rw-r--r--ext/win32ole/doc/win32ole.rd294
-rw-r--r--ext/win32ole/extconf.rb41
-rw-r--r--ext/win32ole/sample/excel1.rb15
-rw-r--r--ext/win32ole/sample/excel2.rb10
-rw-r--r--ext/win32ole/sample/ieconst.rb2
-rw-r--r--ext/win32ole/sample/ienavi.rb2
-rw-r--r--ext/win32ole/sample/ienavi2.rb40
-rw-r--r--ext/win32ole/sample/oledirs.rb2
-rw-r--r--ext/win32ole/sample/olegen.rb25
-rw-r--r--ext/win32ole/sample/xml.rb36
-rw-r--r--ext/win32ole/tests/oleserver.rb10
-rw-r--r--ext/win32ole/tests/testNIL2VTEMPTY.rb28
-rw-r--r--ext/win32ole/tests/testOLEEVENT.rb91
-rw-r--r--ext/win32ole/tests/testOLEMETHOD.rb92
-rw-r--r--ext/win32ole/tests/testOLEPARAM.rb65
-rw-r--r--ext/win32ole/tests/testOLETYPE.rb96
-rw-r--r--ext/win32ole/tests/testOLEVARIABLE.rb49
-rw-r--r--ext/win32ole/tests/testVARIANT.rb32
-rw-r--r--ext/win32ole/tests/testWIN32OLE.rb372
-rw-r--r--ext/win32ole/tests/test_ole_methods.rb36
-rw-r--r--ext/win32ole/tests/test_propertyputref.rb19
-rw-r--r--ext/win32ole/tests/test_word.rb37
-rw-r--r--ext/win32ole/tests/testall.rb15
-rw-r--r--ext/win32ole/win32ole.c6182
-rw-r--r--ext/zlib/.cvsignore3
-rw-r--r--ext/zlib/depend5
-rw-r--r--ext/zlib/doc/zlib.rd911
-rw-r--r--ext/zlib/extconf.rb13
-rw-r--r--ext/zlib/zlib.c2863
-rw-r--r--file.c4235
-rw-r--r--gc.c7520
-rw-r--r--gc.h101
-rw-r--r--gem_prelude.rb1
-rw-r--r--golf_prelude.rb123
-rw-r--r--goruby.c58
-rw-r--r--hash.c3149
-rw-r--r--ia64.s11
-rw-r--r--include/ruby.h35
-rw-r--r--include/ruby/backward/classext.h18
-rw-r--r--include/ruby/backward/rubyio.h6
-rw-r--r--include/ruby/backward/rubysig.h52
-rw-r--r--include/ruby/backward/st.h6
-rw-r--r--include/ruby/backward/util.h6
-rw-r--r--include/ruby/debug.h110
-rw-r--r--include/ruby/defines.h326
-rw-r--r--include/ruby/encoding.h363
-rw-r--r--include/ruby/intern.h953
-rw-r--r--include/ruby/io.h214
-rw-r--r--include/ruby/missing.h244
-rw-r--r--include/ruby/oniguruma.h835
-rw-r--r--include/ruby/re.h71
-rw-r--r--include/ruby/regex.h46
-rw-r--r--include/ruby/ruby.h1842
-rw-r--r--include/ruby/st.h143
-rw-r--r--include/ruby/subst.h19
-rw-r--r--include/ruby/thread.h45
-rw-r--r--include/ruby/util.h95
-rw-r--r--include/ruby/version.h74
-rw-r--r--include/ruby/vm.h64
-rw-r--r--include/ruby/win32.h827
-rw-r--r--inits.c119
-rw-r--r--insns.def2173
-rwxr-xr-xinstruby.rb355
-rw-r--r--intern.h509
-rw-r--r--internal.h849
-rw-r--r--io.c12176
-rw-r--r--iseq.c2312
-rw-r--r--iseq.h136
-rw-r--r--keywords42
-rw-r--r--lex.c136
-rw-r--r--lex.c.blt219
-rw-r--r--lib/.document106
-rw-r--r--lib/English.rb52
-rw-r--r--lib/Env.rb18
-rw-r--r--lib/README96
-rwxr-xr-x[-rw-r--r--]lib/abbrev.rb107
-rw-r--r--lib/base64.rb142
-rw-r--r--lib/benchmark.rb450
-rw-r--r--lib/cgi-lib.rb272
-rw-r--r--lib/cgi.rb2210
-rw-r--r--lib/cgi/.document2
-rw-r--r--lib/cgi/cookie.rb170
-rw-r--r--lib/cgi/core.rb858
-rw-r--r--lib/cgi/html.rb1034
-rw-r--r--lib/cgi/session.rb277
-rw-r--r--lib/cgi/session/pstore.rb60
-rw-r--r--lib/cgi/util.rb202
-rw-r--r--lib/cmath.rb400
-rw-r--r--lib/complex.rb633
-rw-r--r--lib/csv.rb3020
-rw-r--r--lib/date.rb1708
-rw-r--r--lib/date/format.rb1088
-rw-r--r--lib/date2.rb5
-rw-r--r--lib/debug.rb1706
-rw-r--r--lib/delegate.rb527
-rw-r--r--lib/drb/acl.rb152
-rw-r--r--lib/drb/drb.rb674
-rw-r--r--lib/drb/eq.rb4
-rw-r--r--lib/drb/extserv.rb23
-rw-r--r--lib/drb/extservm.rb71
-rw-r--r--lib/drb/gw.rb42
-rw-r--r--lib/drb/invokemethod.rb14
-rw-r--r--lib/drb/observer.rb23
-rw-r--r--lib/drb/ssl.rb339
-rw-r--r--lib/drb/timeridconv.rb96
-rw-r--r--lib/drb/unix.rb57
-rw-r--r--lib/e2mmap.rb127
-rw-r--r--lib/erb.rb847
-rw-r--r--lib/eregex.rb37
-rw-r--r--lib/fileutils.rb563
-rw-r--r--lib/finalize.rb193
-rw-r--r--lib/find.rb58
-rw-r--r--lib/forwardable.rb305
-rw-r--r--lib/ftools.rb261
-rw-r--r--lib/generator.rb380
-rw-r--r--lib/getoptlong.rb297
-rw-r--r--lib/getopts.rb127
-rw-r--r--lib/gserver.rb99
-rw-r--r--lib/importenv.rb33
-rw-r--r--lib/ipaddr.rb525
-rw-r--r--lib/irb.rb682
-rw-r--r--lib/irb/cmd/chws.rb10
-rw-r--r--lib/irb/cmd/fork.rb16
-rw-r--r--lib/irb/cmd/help.rb25
-rw-r--r--lib/irb/cmd/load.rb13
-rw-r--r--lib/irb/cmd/nop.rb12
-rw-r--r--lib/irb/cmd/pushws.rb9
-rw-r--r--lib/irb/cmd/subirb.rb11
-rw-r--r--lib/irb/completion.rb170
-rw-r--r--lib/irb/context.rb225
-rw-r--r--lib/irb/ext/change-ws.rb25
-rw-r--r--lib/irb/ext/history.rb26
-rw-r--r--lib/irb/ext/loader.rb30
-rw-r--r--lib/irb/ext/math-mode.rb20
-rw-r--r--lib/irb/ext/multi-irb.rb89
-rw-r--r--lib/irb/ext/save-history.rb95
-rw-r--r--lib/irb/ext/tracer.rb22
-rw-r--r--lib/irb/ext/use-loader.rb18
-rw-r--r--lib/irb/ext/workspaces.rb20
-rw-r--r--lib/irb/extend-command.rb124
-rw-r--r--lib/irb/frame.rb21
-rw-r--r--lib/irb/help.rb35
-rw-r--r--lib/irb/init.rb101
-rw-r--r--lib/irb/input-method.rb115
-rw-r--r--lib/irb/inspector.rb145
-rw-r--r--lib/irb/lc/.document4
-rw-r--r--lib/irb/lc/error.rb13
-rw-r--r--lib/irb/lc/help-message43
-rw-r--r--lib/irb/lc/ja/encoding_aliases.rb10
-rw-r--r--lib/irb/lc/ja/error.rb33
-rw-r--r--lib/irb/lc/ja/help-message71
-rw-r--r--lib/irb/locale.rb162
-rw-r--r--lib/irb/magic-file.rb37
-rw-r--r--lib/irb/notifier.rb114
-rw-r--r--lib/irb/output-method.rb68
-rw-r--r--lib/irb/ruby-lex.rb218
-rw-r--r--lib/irb/ruby-token.rb30
-rw-r--r--lib/irb/slex.rb49
-rw-r--r--lib/irb/src_encoding.rb4
-rw-r--r--lib/irb/version.rb11
-rw-r--r--lib/irb/workspace.rb35
-rw-r--r--lib/irb/ws-for-case-2.rb9
-rw-r--r--lib/irb/xmp.rb91
-rw-r--r--lib/jcode.rb220
-rw-r--r--lib/logger.rb414
-rw-r--r--lib/mailread.rb62
-rw-r--r--lib/mathn.rb432
-rw-r--r--lib/matrix.rb1781
-rw-r--r--lib/matrix/eigenvalue_decomposition.rb882
-rw-r--r--lib/matrix/lup_decomposition.rb218
-rw-r--r--lib/minitest/.document2
-rw-r--r--lib/minitest/README.txt457
-rw-r--r--lib/minitest/autorun.rb19
-rw-r--r--lib/minitest/benchmark.rb423
-rw-r--r--lib/minitest/hell.rb20
-rw-r--r--lib/minitest/mock.rb200
-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.rb1422
-rw-r--r--lib/mkmf.rb3518
-rw-r--r--lib/monitor.rb362
-rw-r--r--lib/mutex_m.rb129
-rw-r--r--lib/net/ftp.rb909
-rw-r--r--lib/net/http.rb2644
-rw-r--r--lib/net/http/backward.rb25
-rw-r--r--lib/net/http/exceptions.rb25
-rw-r--r--lib/net/http/generic_request.rb329
-rw-r--r--lib/net/http/header.rb452
-rw-r--r--lib/net/http/proxy_delta.rb16
-rw-r--r--lib/net/http/request.rb20
-rw-r--r--lib/net/http/requests.rb122
-rw-r--r--lib/net/http/response.rb405
-rw-r--r--lib/net/http/responses.rb268
-rw-r--r--lib/net/https.rb163
-rw-r--r--lib/net/imap.rb1222
-rw-r--r--lib/net/pop.rb368
-rw-r--r--lib/net/protocol.rb66
-rw-r--r--lib/net/smtp.rb826
-rw-r--r--lib/net/telnet.rb258
-rw-r--r--lib/observer.rb107
-rw-r--r--lib/open-uri.rb428
-rw-r--r--lib/open3.rb664
-rw-r--r--lib/optparse.rb416
-rw-r--r--lib/optparse/ac.rb50
-rw-r--r--lib/optparse/version.rb10
-rw-r--r--lib/ostruct.rb244
-rw-r--r--lib/parsearg.rb87
-rw-r--r--lib/parsedate.rb53
-rw-r--r--lib/pathname.rb1062
-rw-r--r--lib/ping.rb64
-rw-r--r--lib/pp.rb467
-rw-r--r--lib/prettyprint.rb756
-rw-r--r--lib/prime.rb490
-rw-r--r--lib/profile.rb4
-rw-r--r--lib/profiler.rb157
-rw-r--r--lib/pstore.rb373
-rw-r--r--lib/racc/parser.rb282
-rw-r--r--lib/racc/rdoc/grammar.en.rdoc226
-rw-r--r--lib/rake.rb73
-rw-r--r--lib/rake/alt_system.rb108
-rw-r--r--lib/rake/application.rb728
-rw-r--r--lib/rake/backtrace.rb20
-rw-r--r--lib/rake/clean.rb55
-rw-r--r--lib/rake/cloneable.rb16
-rw-r--r--lib/rake/contrib/compositepublisher.rb21
-rw-r--r--lib/rake/contrib/ftptools.rb139
-rw-r--r--lib/rake/contrib/publisher.rb73
-rw-r--r--lib/rake/contrib/rubyforgepublisher.rb16
-rw-r--r--lib/rake/contrib/sshpublisher.rb50
-rw-r--r--lib/rake/contrib/sys.rb2
-rw-r--r--lib/rake/default_loader.rb10
-rw-r--r--lib/rake/dsl_definition.rb157
-rw-r--r--lib/rake/early_time.rb18
-rw-r--r--lib/rake/ext/core.rb28
-rw-r--r--lib/rake/ext/module.rb1
-rw-r--r--lib/rake/ext/string.rb166
-rw-r--r--lib/rake/ext/time.rb15
-rw-r--r--lib/rake/file_creation_task.rb24
-rw-r--r--lib/rake/file_list.rb416
-rw-r--r--lib/rake/file_task.rb46
-rw-r--r--lib/rake/file_utils.rb116
-rw-r--r--lib/rake/file_utils_ext.rb144
-rw-r--r--lib/rake/gempackagetask.rb2
-rw-r--r--lib/rake/invocation_chain.rb57
-rw-r--r--lib/rake/invocation_exception_mixin.rb16
-rw-r--r--lib/rake/lib/.document1
-rw-r--r--lib/rake/lib/project.rake21
-rw-r--r--lib/rake/linked_list.rb103
-rw-r--r--lib/rake/loaders/makefile.rb40
-rw-r--r--lib/rake/multi_task.rb13
-rw-r--r--lib/rake/name_space.rb25
-rw-r--r--lib/rake/packagetask.rb190
-rw-r--r--lib/rake/pathmap.rb1
-rw-r--r--lib/rake/phony.rb15
-rw-r--r--lib/rake/private_reader.rb20
-rw-r--r--lib/rake/promise.rb99
-rw-r--r--lib/rake/pseudo_status.rb29
-rw-r--r--lib/rake/rake_module.rb37
-rw-r--r--lib/rake/rake_test_loader.rb22
-rw-r--r--lib/rake/rdoctask.rb2
-rw-r--r--lib/rake/ruby182_test_unit_fix.rb27
-rw-r--r--lib/rake/rule_recursion_overflow_error.rb20
-rw-r--r--lib/rake/runtest.rb22
-rw-r--r--lib/rake/scope.rb42
-rw-r--r--lib/rake/task.rb378
-rw-r--r--lib/rake/task_argument_error.rb7
-rw-r--r--lib/rake/task_arguments.rb89
-rw-r--r--lib/rake/task_manager.rb297
-rw-r--r--lib/rake/tasklib.rb22
-rw-r--r--lib/rake/testtask.rb201
-rw-r--r--lib/rake/thread_history_display.rb48
-rw-r--r--lib/rake/thread_pool.rb161
-rw-r--r--lib/rake/trace_output.rb22
-rw-r--r--lib/rake/version.rb9
-rw-r--r--lib/rake/win32.rb56
-rw-r--r--lib/rational.rb525
-rw-r--r--lib/rbconfig/.document1
-rw-r--r--lib/rbconfig/datadir.rb13
-rw-r--r--lib/rbconfig/obsolete.rb38
-rw-r--r--lib/rdoc.rb183
-rw-r--r--lib/rdoc/README489
-rw-r--r--lib/rdoc/alias.rb111
-rw-r--r--lib/rdoc/anon_class.rb10
-rw-r--r--lib/rdoc/any_method.rb308
-rw-r--r--lib/rdoc/attr.rb175
-rw-r--r--lib/rdoc/class_module.rb799
-rw-r--r--lib/rdoc/code_object.rb429
-rw-r--r--lib/rdoc/code_objects.rb766
-rw-r--r--lib/rdoc/comment.rb229
-rw-r--r--lib/rdoc/constant.rb186
-rw-r--r--lib/rdoc/context.rb1208
-rw-r--r--lib/rdoc/context/section.rb238
-rw-r--r--lib/rdoc/cross_reference.rb183
-rw-r--r--lib/rdoc/diagram.rb335
-rw-r--r--lib/rdoc/dot/dot.rb255
-rw-r--r--lib/rdoc/encoding.rb97
-rw-r--r--lib/rdoc/erb_partial.rb18
-rw-r--r--lib/rdoc/erbio.rb37
-rw-r--r--lib/rdoc/extend.rb9
-rw-r--r--lib/rdoc/generator.rb50
-rw-r--r--lib/rdoc/generator/darkfish.rb759
-rw-r--r--lib/rdoc/generator/json_index.rb248
-rw-r--r--lib/rdoc/generator/markup.rb169
-rw-r--r--lib/rdoc/generator/ri.rb30
-rw-r--r--lib/rdoc/generator/template/darkfish/.document (renamed from install-sh)0
-rw-r--r--lib/rdoc/generator/template/darkfish/_footer.rhtml5
-rw-r--r--lib/rdoc/generator/template/darkfish/_head.rhtml22
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml19
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml9
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml15
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml9
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml15
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml15
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml12
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml11
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml12
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml11
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml15
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml11
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml18
-rw-r--r--lib/rdoc/generator/template/darkfish/class.rhtml174
-rw-r--r--lib/rdoc/generator/template/darkfish/fonts.css167
-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttfbin0 -> 94668 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttfbin0 -> 94196 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttfbin0 -> 96184 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttfbin0 -> 95316 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttfbin0 -> 71200 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttfbin0 -> 71692 bytes-rwxr-xr-xlib/rdoc/generator/template/darkfish/images/add.pngbin0 -> 733 bytes-rwxr-xr-xlib/rdoc/generator/template/darkfish/images/arrow_up.pngbin0 -> 372 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/brick.pngbin0 -> 452 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/brick_link.pngbin0 -> 764 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/bug.pngbin0 -> 774 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/bullet_black.pngbin0 -> 211 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.pngbin0 -> 207 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.pngbin0 -> 209 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/date.pngbin0 -> 626 bytes-rwxr-xr-xlib/rdoc/generator/template/darkfish/images/delete.pngbin0 -> 715 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/find.pngbin0 -> 659 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/loadingAnimation.gifbin0 -> 5886 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/macFFBgHack.pngbin0 -> 207 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/package.pngbin0 -> 853 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/page_green.pngbin0 -> 621 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/page_white_text.pngbin0 -> 342 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/page_white_width.pngbin0 -> 309 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/plugin.pngbin0 -> 591 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/ruby.pngbin0 -> 592 bytes-rwxr-xr-xlib/rdoc/generator/template/darkfish/images/tag_blue.pngbin0 -> 1880 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/tag_green.pngbin0 -> 613 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/transparent.pngbin0 -> 97 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/wrench.pngbin0 -> 610 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/wrench_orange.pngbin0 -> 584 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/zoom.pngbin0 -> 692 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/index.rhtml23
-rw-r--r--lib/rdoc/generator/template/darkfish/js/darkfish.js140
-rw-r--r--lib/rdoc/generator/template/darkfish/js/jquery.js18
-rw-r--r--lib/rdoc/generator/template/darkfish/js/search.js102
-rw-r--r--lib/rdoc/generator/template/darkfish/page.rhtml18
-rw-r--r--lib/rdoc/generator/template/darkfish/rdoc.css580
-rw-r--r--lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml18
-rw-r--r--lib/rdoc/generator/template/darkfish/servlet_root.rhtml63
-rw-r--r--lib/rdoc/generator/template/darkfish/table_of_contents.rhtml58
-rw-r--r--lib/rdoc/generator/template/json_index/.document1
-rw-r--r--lib/rdoc/generator/template/json_index/js/navigation.js142
-rw-r--r--lib/rdoc/generator/template/json_index/js/searcher.js228
-rw-r--r--lib/rdoc/generators/chm_generator.rb112
-rw-r--r--lib/rdoc/generators/html_generator.rb1509
-rw-r--r--lib/rdoc/generators/ri_generator.rb268
-rw-r--r--lib/rdoc/generators/template/chm/chm.rb87
-rw-r--r--lib/rdoc/generators/template/html/hefss.rb418
-rw-r--r--lib/rdoc/generators/template/html/html.rb711
-rw-r--r--lib/rdoc/generators/template/html/kilmer.rb435
-rw-r--r--lib/rdoc/generators/template/html/old_html.rb728
-rw-r--r--lib/rdoc/generators/template/html/one_page_html.rb122
-rw-r--r--lib/rdoc/generators/template/xml/rdf.rb112
-rw-r--r--lib/rdoc/generators/template/xml/xml.rb112
-rw-r--r--lib/rdoc/generators/xml_generator.rb130
-rw-r--r--lib/rdoc/ghost_method.rb6
-rw-r--r--lib/rdoc/include.rb9
-rw-r--r--lib/rdoc/known_classes.rb73
-rw-r--r--lib/rdoc/markdown.rb15961
-rw-r--r--lib/rdoc/markdown/entities.rb2131
-rw-r--r--lib/rdoc/markdown/literals_1_9.rb420
-rw-r--r--lib/rdoc/markup.rb869
-rw-r--r--lib/rdoc/markup/.document2
-rw-r--r--lib/rdoc/markup/attr_changer.rb22
-rw-r--r--lib/rdoc/markup/attr_span.rb29
-rw-r--r--lib/rdoc/markup/attribute_manager.rb343
-rw-r--r--lib/rdoc/markup/attributes.rb70
-rw-r--r--lib/rdoc/markup/blank_line.rb27
-rw-r--r--lib/rdoc/markup/block_quote.rb14
-rw-r--r--lib/rdoc/markup/document.rb164
-rw-r--r--lib/rdoc/markup/formatter.rb264
-rw-r--r--lib/rdoc/markup/formatter_test_case.rb767
-rw-r--r--lib/rdoc/markup/hard_break.rb31
-rw-r--r--lib/rdoc/markup/heading.rb78
-rw-r--r--lib/rdoc/markup/include.rb42
-rw-r--r--lib/rdoc/markup/indented_paragraph.rb47
-rw-r--r--lib/rdoc/markup/inline.rb1
-rw-r--r--lib/rdoc/markup/list.rb101
-rw-r--r--lib/rdoc/markup/list_item.rb99
-rw-r--r--lib/rdoc/markup/paragraph.rb28
-rw-r--r--lib/rdoc/markup/parser.rb558
-rw-r--r--lib/rdoc/markup/pre_process.rb293
-rw-r--r--lib/rdoc/markup/raw.rb69
-rw-r--r--lib/rdoc/markup/rule.rb20
-rw-r--r--lib/rdoc/markup/sample/rdoc2latex.rb16
-rw-r--r--lib/rdoc/markup/sample/sample.rb42
-rw-r--r--lib/rdoc/markup/simple_markup.rb476
-rw-r--r--lib/rdoc/markup/simple_markup/fragments.rb328
-rw-r--r--lib/rdoc/markup/simple_markup/inline.rb340
-rw-r--r--lib/rdoc/markup/simple_markup/lines.rb151
-rw-r--r--lib/rdoc/markup/simple_markup/preprocess.rb73
-rw-r--r--lib/rdoc/markup/simple_markup/to_flow.rb188
-rw-r--r--lib/rdoc/markup/simple_markup/to_html.rb289
-rw-r--r--lib/rdoc/markup/simple_markup/to_latex.rb333
-rw-r--r--lib/rdoc/markup/special.rb40
-rw-r--r--lib/rdoc/markup/test/AllTests.rb2
-rw-r--r--lib/rdoc/markup/test/TestInline.rb154
-rw-r--r--lib/rdoc/markup/test/TestParse.rb503
-rw-r--r--lib/rdoc/markup/text_formatter_test_case.rb114
-rw-r--r--lib/rdoc/markup/to_ansi.rb93
-rw-r--r--lib/rdoc/markup/to_bs.rb78
-rw-r--r--lib/rdoc/markup/to_html.rb397
-rw-r--r--lib/rdoc/markup/to_html_crossref.rb160
-rw-r--r--lib/rdoc/markup/to_html_snippet.rb284
-rw-r--r--lib/rdoc/markup/to_joined_paragraph.rb71
-rw-r--r--lib/rdoc/markup/to_label.rb74
-rw-r--r--lib/rdoc/markup/to_markdown.rb191
-rw-r--r--lib/rdoc/markup/to_rdoc.rb333
-rw-r--r--lib/rdoc/markup/to_table_of_contents.rb87
-rw-r--r--lib/rdoc/markup/to_test.rb69
-rw-r--r--lib/rdoc/markup/to_tt_only.rb120
-rw-r--r--lib/rdoc/markup/verbatim.rb83
-rw-r--r--lib/rdoc/meta_method.rb6
-rw-r--r--lib/rdoc/method_attr.rb410
-rw-r--r--lib/rdoc/mixin.rb120
-rw-r--r--lib/rdoc/normal_class.rb92
-rw-r--r--lib/rdoc/normal_module.rb73
-rw-r--r--lib/rdoc/options.rb1611
-rw-r--r--lib/rdoc/parser.rb308
-rw-r--r--lib/rdoc/parser/c.rb1229
-rw-r--r--lib/rdoc/parser/changelog.rb194
-rw-r--r--lib/rdoc/parser/markdown.rb23
-rw-r--r--lib/rdoc/parser/rd.rb22
-rw-r--r--lib/rdoc/parser/ruby.rb2160
-rw-r--r--lib/rdoc/parser/ruby_tools.rb167
-rw-r--r--lib/rdoc/parser/simple.rb61
-rw-r--r--lib/rdoc/parser/text.rb11
-rw-r--r--lib/rdoc/parsers/parse_c.rb773
-rw-r--r--lib/rdoc/parsers/parse_f95.rb1841
-rw-r--r--lib/rdoc/parsers/parse_rb.rb2609
-rw-r--r--lib/rdoc/parsers/parse_simple.rb41
-rw-r--r--lib/rdoc/parsers/parserfactory.rb99
-rw-r--r--lib/rdoc/rd.rb99
-rw-r--r--lib/rdoc/rd/block_parser.rb1055
-rw-r--r--lib/rdoc/rd/inline.rb71
-rw-r--r--lib/rdoc/rd/inline_parser.rb1207
-rw-r--r--lib/rdoc/rdoc.rb724
-rw-r--r--lib/rdoc/require.rb51
-rw-r--r--lib/rdoc/ri.rb20
-rw-r--r--lib/rdoc/ri/driver.rb1497
-rw-r--r--lib/rdoc/ri/formatter.rb5
-rw-r--r--lib/rdoc/ri/paths.rb187
-rw-r--r--lib/rdoc/ri/ri_cache.rb187
-rw-r--r--lib/rdoc/ri/ri_descriptions.rb154
-rw-r--r--lib/rdoc/ri/ri_display.rb255
-rw-r--r--lib/rdoc/ri/ri_driver.rb143
-rw-r--r--lib/rdoc/ri/ri_formatter.rb672
-rw-r--r--lib/rdoc/ri/ri_options.rb313
-rw-r--r--lib/rdoc/ri/ri_paths.rb80
-rw-r--r--lib/rdoc/ri/ri_reader.rb100
-rw-r--r--lib/rdoc/ri/ri_util.rb75
-rw-r--r--lib/rdoc/ri/ri_writer.rb62
-rw-r--r--lib/rdoc/ri/store.rb6
-rw-r--r--lib/rdoc/ruby_lex.rb1377
-rw-r--r--lib/rdoc/ruby_token.rb460
-rw-r--r--lib/rdoc/rubygems_hook.rb247
-rw-r--r--lib/rdoc/servlet.rb441
-rw-r--r--lib/rdoc/single_class.rb21
-rw-r--r--lib/rdoc/stats.rb457
-rw-r--r--lib/rdoc/stats/normal.rb48
-rw-r--r--lib/rdoc/stats/quiet.rb59
-rw-r--r--lib/rdoc/stats/verbose.rb45
-rw-r--r--lib/rdoc/store.rb979
-rw-r--r--lib/rdoc/task.rb330
-rw-r--r--lib/rdoc/template.rb234
-rw-r--r--lib/rdoc/test_case.rb217
-rw-r--r--lib/rdoc/text.rb315
-rw-r--r--lib/rdoc/token_stream.rb95
-rw-r--r--lib/rdoc/tokenstream.rb25
-rw-r--r--lib/rdoc/tom_doc.rb257
-rw-r--r--lib/rdoc/top_level.rb282
-rw-r--r--lib/rdoc/usage.rb210
-rw-r--r--lib/readbytes.rb41
-rw-r--r--lib/resolv-replace.rb24
-rw-r--r--lib/resolv.rb1880
-rw-r--r--lib/rexml/attlistdecl.rb112
-rw-r--r--lib/rexml/attribute.rb304
-rw-r--r--lib/rexml/cdata.rb96
-rw-r--r--lib/rexml/child.rb164
-rw-r--r--lib/rexml/comment.rb118
-rw-r--r--lib/rexml/doctype.rb46
-rw-r--r--lib/rexml/document.rb328
-rw-r--r--lib/rexml/dtd/attlistdecl.rb14
-rw-r--r--lib/rexml/dtd/dtd.rb82
-rw-r--r--lib/rexml/dtd/elementdecl.rb26
-rw-r--r--lib/rexml/dtd/entitydecl.rb98
-rw-r--r--lib/rexml/dtd/notationdecl.rb64
-rw-r--r--lib/rexml/element.rb237
-rw-r--r--lib/rexml/encoding.rb95
-rw-r--r--lib/rexml/encodings/CP-1252.rb103
-rw-r--r--lib/rexml/encodings/EUC-JP.rb35
-rw-r--r--lib/rexml/encodings/ICONV.rb22
-rw-r--r--lib/rexml/encodings/ISO-8859-1.rb7
-rw-r--r--lib/rexml/encodings/ISO-8859-15.rb72
-rw-r--r--lib/rexml/encodings/SHIFT-JIS.rb37
-rw-r--r--lib/rexml/encodings/SHIFT_JIS.rb1
-rw-r--r--lib/rexml/encodings/UNILE.rb34
-rw-r--r--lib/rexml/encodings/US-ASCII.rb30
-rw-r--r--lib/rexml/encodings/UTF-16.rb35
-rw-r--r--lib/rexml/encodings/UTF-8.rb18
-rw-r--r--lib/rexml/entity.rb287
-rw-r--r--lib/rexml/formatters/default.rb10
-rw-r--r--lib/rexml/formatters/pretty.rb18
-rw-r--r--lib/rexml/formatters/transitive.rb7
-rw-r--r--lib/rexml/functions.rb56
-rw-r--r--lib/rexml/instruction.rb98
-rw-r--r--lib/rexml/light/node.rb381
-rw-r--r--lib/rexml/namespace.rb78
-rw-r--r--lib/rexml/node.rb78
-rw-r--r--lib/rexml/output.rb29
-rw-r--r--lib/rexml/parent.rb51
-rw-r--r--lib/rexml/parseexception.rb8
-rw-r--r--lib/rexml/parsers/baseparser.rb151
-rw-r--r--lib/rexml/parsers/lightparser.rb84
-rw-r--r--lib/rexml/parsers/pullparser.rb2
-rw-r--r--lib/rexml/parsers/sax2parser.rb431
-rw-r--r--lib/rexml/parsers/streamparser.rb10
-rw-r--r--lib/rexml/parsers/treeparser.rb15
-rw-r--r--lib/rexml/parsers/ultralightparser.rb80
-rw-r--r--lib/rexml/parsers/xpathparser.rb103
-rw-r--r--lib/rexml/quickpath.rb495
-rw-r--r--lib/rexml/rexml.rb21
-rw-r--r--lib/rexml/sax2listener.rb184
-rw-r--r--lib/rexml/security.rb27
-rw-r--r--lib/rexml/source.rb145
-rw-r--r--lib/rexml/streamlistener.rb180
-rw-r--r--lib/rexml/syncenumerator.rb7
-rw-r--r--lib/rexml/text.rb237
-rw-r--r--lib/rexml/validation/relaxng.rb36
-rw-r--r--lib/rexml/validation/validation.rb10
-rw-r--r--lib/rexml/xmldecl.rb122
-rw-r--r--lib/rexml/xmltokens.rb28
-rw-r--r--lib/rexml/xpath.rb120
-rw-r--r--lib/rexml/xpath_parser.rb87
-rw-r--r--lib/rinda/rinda.rb68
-rw-r--r--lib/rinda/ring.rb342
-rw-r--r--lib/rinda/tuplespace.rb116
-rw-r--r--lib/rss.rb85
-rw-r--r--lib/rss/0.9.rb95
-rw-r--r--lib/rss/1.0.rb93
-rw-r--r--lib/rss/2.0.rb39
-rw-r--r--lib/rss/atom.rb839
-rw-r--r--lib/rss/content.rb27
-rw-r--r--lib/rss/content/1.0.rb9
-rw-r--r--lib/rss/content/2.0.rb11
-rw-r--r--lib/rss/converter.rb44
-rw-r--r--lib/rss/dublincore.rb57
-rw-r--r--lib/rss/dublincore/1.0.rb12
-rw-r--r--lib/rss/dublincore/2.0.rb12
-rw-r--r--lib/rss/dublincore/atom.rb16
-rw-r--r--lib/rss/image.rb32
-rw-r--r--lib/rss/itunes.rb412
-rw-r--r--lib/rss/maker.rb59
-rw-r--r--lib/rss/maker/0.9.rb450
-rw-r--r--lib/rss/maker/1.0.rb343
-rw-r--r--lib/rss/maker/2.0.rb169
-rw-r--r--lib/rss/maker/atom.rb172
-rw-r--r--lib/rss/maker/base.rb968
-rw-r--r--lib/rss/maker/content.rb14
-rw-r--r--lib/rss/maker/dublincore.rb150
-rw-r--r--lib/rss/maker/entry.rb163
-rw-r--r--lib/rss/maker/feed.rb426
-rw-r--r--lib/rss/maker/image.rb118
-rw-r--r--lib/rss/maker/itunes.rb242
-rw-r--r--lib/rss/maker/slash.rb33
-rw-r--r--lib/rss/maker/syndication.rb13
-rw-r--r--lib/rss/maker/taxonomy.rb126
-rw-r--r--lib/rss/maker/trackback.rb117
-rw-r--r--lib/rss/parser.rb226
-rw-r--r--lib/rss/rexmlparser.rb15
-rw-r--r--lib/rss/rss.rb817
-rw-r--r--lib/rss/slash.rb51
-rw-r--r--lib/rss/syndication.rb18
-rw-r--r--lib/rss/taxonomy.rb24
-rw-r--r--lib/rss/trackback.rb40
-rw-r--r--lib/rss/utils.rb174
-rw-r--r--lib/rss/xml-stylesheet.rb8
-rw-r--r--lib/rss/xml.rb71
-rw-r--r--lib/rss/xmlparser.rb17
-rw-r--r--lib/rss/xmlscanner.rb10
-rw-r--r--lib/rubygems.rb1221
-rw-r--r--lib/rubygems/LICENSE.txt54
-rw-r--r--lib/rubygems/available_set.rb161
-rw-r--r--lib/rubygems/basic_specification.rb212
-rw-r--r--lib/rubygems/command.rb579
-rw-r--r--lib/rubygems/command_manager.rb217
-rw-r--r--lib/rubygems/commands/build_command.rb60
-rw-r--r--lib/rubygems/commands/cert_command.rb278
-rw-r--r--lib/rubygems/commands/check_command.rb93
-rw-r--r--lib/rubygems/commands/cleanup_command.rb165
-rw-r--r--lib/rubygems/commands/contents_command.rb170
-rw-r--r--lib/rubygems/commands/dependency_command.rb207
-rw-r--r--lib/rubygems/commands/environment_command.rb155
-rw-r--r--lib/rubygems/commands/fetch_command.rb77
-rw-r--r--lib/rubygems/commands/generate_index_command.rb84
-rw-r--r--lib/rubygems/commands/help_command.rb205
-rw-r--r--lib/rubygems/commands/install_command.rb270
-rw-r--r--lib/rubygems/commands/list_command.rb40
-rw-r--r--lib/rubygems/commands/lock_command.rb110
-rw-r--r--lib/rubygems/commands/mirror_command.rb23
-rw-r--r--lib/rubygems/commands/outdated_command.rb32
-rw-r--r--lib/rubygems/commands/owner_command.rb97
-rw-r--r--lib/rubygems/commands/pristine_command.rb151
-rw-r--r--lib/rubygems/commands/push_command.rb98
-rw-r--r--lib/rubygems/commands/query_command.rb343
-rw-r--r--lib/rubygems/commands/rdoc_command.rb96
-rw-r--r--lib/rubygems/commands/search_command.rb40
-rw-r--r--lib/rubygems/commands/server_command.rb86
-rw-r--r--lib/rubygems/commands/setup_command.rb483
-rw-r--r--lib/rubygems/commands/sources_command.rb210
-rw-r--r--lib/rubygems/commands/specification_command.rb145
-rw-r--r--lib/rubygems/commands/stale_command.rb38
-rw-r--r--lib/rubygems/commands/uninstall_command.rb152
-rw-r--r--lib/rubygems/commands/unpack_command.rb182
-rw-r--r--lib/rubygems/commands/update_command.rb275
-rw-r--r--lib/rubygems/commands/which_command.rb90
-rw-r--r--lib/rubygems/commands/yank_command.rb112
-rw-r--r--lib/rubygems/compatibility.rb58
-rw-r--r--lib/rubygems/config_file.rb471
-rw-r--r--lib/rubygems/core_ext/kernel_gem.rb59
-rwxr-xr-xlib/rubygems/core_ext/kernel_require.rb149
-rw-r--r--lib/rubygems/defaults.rb144
-rw-r--r--lib/rubygems/dependency.rb313
-rw-r--r--lib/rubygems/dependency_installer.rb439
-rw-r--r--lib/rubygems/dependency_list.rb244
-rw-r--r--lib/rubygems/deprecate.rb70
-rw-r--r--lib/rubygems/doctor.rb131
-rw-r--r--lib/rubygems/errors.rb107
-rw-r--r--lib/rubygems/exceptions.rb250
-rw-r--r--lib/rubygems/ext.rb18
-rw-r--r--lib/rubygems/ext/build_error.rb6
-rw-r--r--lib/rubygems/ext/builder.rb218
-rw-r--r--lib/rubygems/ext/cmake_builder.rb16
-rw-r--r--lib/rubygems/ext/configure_builder.rb23
-rw-r--r--lib/rubygems/ext/ext_conf_builder.rb70
-rw-r--r--lib/rubygems/ext/rake_builder.rb36
-rw-r--r--lib/rubygems/gem_runner.rb81
-rw-r--r--lib/rubygems/gemcutter_utilities.rb154
-rw-r--r--lib/rubygems/indexer.rb498
-rw-r--r--lib/rubygems/install_default_message.rb12
-rw-r--r--lib/rubygems/install_message.rb12
-rw-r--r--lib/rubygems/install_update_options.rb169
-rw-r--r--lib/rubygems/installer.rb787
-rw-r--r--lib/rubygems/installer_test_case.rb196
-rw-r--r--lib/rubygems/local_remote_options.rb148
-rw-r--r--lib/rubygems/mock_gem_ui.rb88
-rw-r--r--lib/rubygems/name_tuple.rb121
-rw-r--r--lib/rubygems/package.rb600
-rw-r--r--lib/rubygems/package/digest_io.rb64
-rw-r--r--lib/rubygems/package/old.rb178
-rw-r--r--lib/rubygems/package/tar_header.rb229
-rw-r--r--lib/rubygems/package/tar_reader.rb123
-rw-r--r--lib/rubygems/package/tar_reader/entry.rb145
-rw-r--r--lib/rubygems/package/tar_test_case.rb137
-rw-r--r--lib/rubygems/package/tar_writer.rb320
-rw-r--r--lib/rubygems/package_task.rb128
-rw-r--r--lib/rubygems/path_support.rb87
-rw-r--r--lib/rubygems/platform.rb203
-rw-r--r--lib/rubygems/psych_additions.rb9
-rw-r--r--lib/rubygems/psych_tree.rb31
-rw-r--r--lib/rubygems/rdoc.rb336
-rw-r--r--lib/rubygems/remote_fetcher.rb338
-rw-r--r--lib/rubygems/request.rb274
-rw-r--r--lib/rubygems/request_set.rb273
-rw-r--r--lib/rubygems/request_set/gem_dependency_api.rb513
-rw-r--r--lib/rubygems/request_set/lockfile.rb356
-rw-r--r--lib/rubygems/requirement.rb254
-rw-r--r--lib/rubygems/resolver.rb415
-rw-r--r--lib/rubygems/resolver/activation_request.rb138
-rw-r--r--lib/rubygems/resolver/api_set.rb110
-rw-r--r--lib/rubygems/resolver/api_specification.rb75
-rw-r--r--lib/rubygems/resolver/best_set.rb21
-rw-r--r--lib/rubygems/resolver/composed_set.rb39
-rw-r--r--lib/rubygems/resolver/conflict.rb123
-rw-r--r--lib/rubygems/resolver/current_set.rb13
-rw-r--r--lib/rubygems/resolver/dependency_request.rb71
-rw-r--r--lib/rubygems/resolver/git_set.rb70
-rw-r--r--lib/rubygems/resolver/git_specification.rb16
-rw-r--r--lib/rubygems/resolver/index_set.rb50
-rw-r--r--lib/rubygems/resolver/index_specification.rb69
-rw-r--r--lib/rubygems/resolver/installed_specification.rb34
-rw-r--r--lib/rubygems/resolver/installer_set.rb152
-rw-r--r--lib/rubygems/resolver/lock_set.rb60
-rw-r--r--lib/rubygems/resolver/requirement_list.rb44
-rw-r--r--lib/rubygems/resolver/set.rb27
-rw-r--r--lib/rubygems/resolver/spec_specification.rb58
-rw-r--r--lib/rubygems/resolver/specification.rb60
-rw-r--r--lib/rubygems/resolver/vendor_set.rb66
-rw-r--r--lib/rubygems/resolver/vendor_specification.rb16
-rw-r--r--lib/rubygems/security.rb595
-rw-r--r--lib/rubygems/security/policies.rb115
-rw-r--r--lib/rubygems/security/policy.rb294
-rw-r--r--lib/rubygems/security/signer.rb154
-rw-r--r--lib/rubygems/security/trust_dir.rb104
-rw-r--r--lib/rubygems/server.rb833
-rw-r--r--lib/rubygems/source.rb217
-rw-r--r--lib/rubygems/source/git.rb186
-rw-r--r--lib/rubygems/source/installed.rb34
-rw-r--r--lib/rubygems/source/local.rb128
-rw-r--r--lib/rubygems/source/specific_file.rb67
-rw-r--r--lib/rubygems/source/vendor.rb25
-rw-r--r--lib/rubygems/source_list.rb149
-rw-r--r--lib/rubygems/source_local.rb5
-rw-r--r--lib/rubygems/source_specific_file.rb4
-rw-r--r--lib/rubygems/spec_fetcher.rb276
-rw-r--r--lib/rubygems/specification.rb2758
-rw-r--r--lib/rubygems/ssl_certs/.document1
-rw-r--r--lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem14
-rw-r--r--lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem23
-rw-r--r--lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem28
-rw-r--r--lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem20
-rw-r--r--lib/rubygems/stub_specification.rb176
-rw-r--r--lib/rubygems/syck_hack.rb76
-rw-r--r--lib/rubygems/test_case.rb1358
-rw-r--r--lib/rubygems/test_utilities.rb348
-rw-r--r--lib/rubygems/text.rb65
-rw-r--r--lib/rubygems/uninstaller.rb342
-rw-r--r--lib/rubygems/uri_formatter.rb49
-rw-r--r--lib/rubygems/user_interaction.rb700
-rw-r--r--lib/rubygems/util.rb63
-rw-r--r--lib/rubygems/util/list.rb48
-rw-r--r--lib/rubygems/util/stringio.rb34
-rw-r--r--lib/rubygems/validator.rb164
-rw-r--r--lib/rubygems/version.rb346
-rw-r--r--lib/rubygems/version_option.rb71
-rw-r--r--lib/rubyunit.rb6
-rw-r--r--lib/runit/assert.rb73
-rw-r--r--lib/runit/cui/testrunner.rb51
-rw-r--r--lib/runit/error.rb9
-rw-r--r--lib/runit/testcase.rb45
-rw-r--r--lib/runit/testresult.rb44
-rw-r--r--lib/runit/testsuite.rb26
-rw-r--r--lib/runit/topublic.rb8
-rw-r--r--lib/scanf.rb775
-rw-r--r--lib/securerandom.rb260
-rw-r--r--lib/set.rb1159
-rw-r--r--lib/shell.rb292
-rw-r--r--lib/shell/builtin-command.rb68
-rw-r--r--lib/shell/command-processor.rb720
-rw-r--r--lib/shell/error.rb11
-rw-r--r--lib/shell/filter.rb91
-rw-r--r--lib/shell/process-controller.rb353
-rw-r--r--lib/shell/system-command.rb147
-rw-r--r--lib/shell/version.rb15
-rw-r--r--lib/shellwords.rb235
-rw-r--r--lib/singleton.rb417
-rw-r--r--lib/soap/attachment.rb107
-rw-r--r--lib/soap/baseData.rb942
-rw-r--r--lib/soap/element.rb258
-rw-r--r--lib/soap/encodingstyle/aspDotNetHandler.rb213
-rw-r--r--lib/soap/encodingstyle/handler.rb100
-rw-r--r--lib/soap/encodingstyle/literalHandler.rb226
-rw-r--r--lib/soap/encodingstyle/soapHandler.rb582
-rw-r--r--lib/soap/generator.rb268
-rw-r--r--lib/soap/header/handler.rb57
-rw-r--r--lib/soap/header/handlerset.rb70
-rw-r--r--lib/soap/header/simplehandler.rb44
-rw-r--r--lib/soap/httpconfigloader.rb119
-rw-r--r--lib/soap/mapping.rb10
-rw-r--r--lib/soap/mapping/factory.rb355
-rw-r--r--lib/soap/mapping/mapping.rb381
-rw-r--r--lib/soap/mapping/registry.rb541
-rw-r--r--lib/soap/mapping/rubytypeFactory.rb475
-rw-r--r--lib/soap/mapping/typeMap.rb50
-rw-r--r--lib/soap/mapping/wsdlencodedregistry.rb280
-rw-r--r--lib/soap/mapping/wsdlliteralregistry.rb418
-rw-r--r--lib/soap/marshal.rb59
-rw-r--r--lib/soap/mimemessage.rb240
-rw-r--r--lib/soap/netHttpClient.rb190
-rw-r--r--lib/soap/parser.rb251
-rw-r--r--lib/soap/processor.rb66
-rw-r--r--lib/soap/property.rb333
-rw-r--r--lib/soap/rpc/cgistub.rb206
-rw-r--r--lib/soap/rpc/driver.rb254
-rw-r--r--lib/soap/rpc/element.rb325
-rw-r--r--lib/soap/rpc/httpserver.rb129
-rw-r--r--lib/soap/rpc/proxy.rb497
-rw-r--r--lib/soap/rpc/router.rb594
-rw-r--r--lib/soap/rpc/rpc.rb25
-rw-r--r--lib/soap/rpc/soaplet.rb162
-rw-r--r--lib/soap/rpc/standaloneServer.rb43
-rw-r--r--lib/soap/soap.rb140
-rw-r--r--lib/soap/streamHandler.rb229
-rw-r--r--lib/soap/wsdlDriver.rb575
-rw-r--r--lib/sync.rb343
-rw-r--r--lib/tempfile.rb396
-rw-r--r--lib/test/unit.rb1130
-rw-r--r--lib/test/unit/assertionfailederror.rb14
-rw-r--r--lib/test/unit/assertions.rb828
-rw-r--r--lib/test/unit/autorunner.rb220
-rw-r--r--lib/test/unit/collector.rb43
-rw-r--r--lib/test/unit/collector/dir.rb107
-rw-r--r--lib/test/unit/collector/objectspace.rb34
-rw-r--r--lib/test/unit/error.rb56
-rw-r--r--lib/test/unit/failure.rb51
-rw-r--r--lib/test/unit/parallel.rb184
-rw-r--r--lib/test/unit/test-unit.gemspec14
-rw-r--r--lib/test/unit/testcase.rb160
-rw-r--r--lib/test/unit/testresult.rb80
-rw-r--r--lib/test/unit/testsuite.rb76
-rw-r--r--lib/test/unit/ui/console/testrunner.rb127
-rw-r--r--lib/test/unit/ui/fox/testrunner.rb268
-rw-r--r--lib/test/unit/ui/gtk/testrunner.rb416
-rw-r--r--lib/test/unit/ui/gtk2/testrunner.rb465
-rw-r--r--lib/test/unit/ui/testrunnermediator.rb68
-rw-r--r--lib/test/unit/ui/testrunnerutilities.rb46
-rw-r--r--lib/test/unit/ui/tk/testrunner.rb260
-rw-r--r--lib/test/unit/util/backtracefilter.rb40
-rw-r--r--lib/test/unit/util/observable.rb90
-rw-r--r--lib/test/unit/util/procwrapper.rb48
-rw-r--r--lib/thread.rb479
-rw-r--r--lib/thwait.rb97
-rw-r--r--lib/time.rb733
-rw-r--r--lib/timeout.rb170
-rw-r--r--lib/tmpdir.rb164
-rw-r--r--lib/tracer.rb245
-rw-r--r--lib/tsort.rb310
-rw-r--r--lib/ubygems.rb10
-rw-r--r--lib/un.rb230
-rw-r--r--lib/uri.rb93
-rw-r--r--lib/uri/common.rb1090
-rw-r--r--lib/uri/ftp.rb167
-rw-r--r--lib/uri/generic.rb877
-rw-r--r--lib/uri/http.rb42
-rw-r--r--lib/uri/https.rb4
-rw-r--r--lib/uri/ldap.rb78
-rw-r--r--lib/uri/ldaps.rb20
-rw-r--r--lib/uri/mailto.rb56
-rw-r--r--lib/weakref.rb165
-rw-r--r--lib/webrick.rb201
-rw-r--r--lib/webrick/accesslog.rb101
-rw-r--r--lib/webrick/cgi.rb107
-rw-r--r--lib/webrick/compat.rb20
-rw-r--r--lib/webrick/config.rb64
-rw-r--r--lib/webrick/cookie.rb71
-rw-r--r--lib/webrick/htmlutils.rb10
-rw-r--r--lib/webrick/httpauth.rb56
-rw-r--r--lib/webrick/httpauth/authenticator.rb69
-rw-r--r--lib/webrick/httpauth/basicauth.rb47
-rw-r--r--lib/webrick/httpauth/digestauth.rb99
-rw-r--r--lib/webrick/httpauth/htdigest.rb48
-rw-r--r--lib/webrick/httpauth/htgroup.rb32
-rw-r--r--lib/webrick/httpauth/htpasswd.rb51
-rw-r--r--lib/webrick/httpauth/userdb.rb31
-rw-r--r--lib/webrick/httpproxy.rb309
-rw-r--r--lib/webrick/httprequest.rb320
-rw-r--r--lib/webrick/httpresponse.rb215
-rw-r--r--lib/webrick/https.rb29
-rw-r--r--lib/webrick/httpserver.rb82
-rw-r--r--lib/webrick/httpservlet/abstract.rb92
-rw-r--r--lib/webrick/httpservlet/cgi_runner.rb5
-rw-r--r--lib/webrick/httpservlet/cgihandler.rb55
-rw-r--r--lib/webrick/httpservlet/erbhandler.rb47
-rw-r--r--lib/webrick/httpservlet/filehandler.rb141
-rw-r--r--lib/webrick/httpservlet/prochandler.rb21
-rw-r--r--lib/webrick/httpstatus.rb182
-rw-r--r--lib/webrick/httputils.rb182
-rw-r--r--lib/webrick/httpversion.rb30
-rw-r--r--lib/webrick/log.rb77
-rw-r--r--lib/webrick/server.rb191
-rw-r--r--lib/webrick/ssl.rb85
-rw-r--r--lib/webrick/utils.rb179
-rw-r--r--lib/webrick/version.rb6
-rw-r--r--lib/wsdl/binding.rb65
-rw-r--r--lib/wsdl/data.rb64
-rw-r--r--lib/wsdl/definitions.rb250
-rw-r--r--lib/wsdl/documentation.rb32
-rw-r--r--lib/wsdl/import.rb80
-rw-r--r--lib/wsdl/importer.rb38
-rw-r--r--lib/wsdl/info.rb39
-rw-r--r--lib/wsdl/message.rb54
-rw-r--r--lib/wsdl/operation.rb130
-rw-r--r--lib/wsdl/operationBinding.rb108
-rw-r--r--lib/wsdl/param.rb85
-rw-r--r--lib/wsdl/parser.rb163
-rw-r--r--lib/wsdl/part.rb52
-rw-r--r--lib/wsdl/port.rb84
-rw-r--r--lib/wsdl/portType.rb73
-rw-r--r--lib/wsdl/service.rb61
-rw-r--r--lib/wsdl/soap/address.rb40
-rw-r--r--lib/wsdl/soap/binding.rb49
-rw-r--r--lib/wsdl/soap/body.rb56
-rw-r--r--lib/wsdl/soap/cgiStubCreator.rb76
-rw-r--r--lib/wsdl/soap/classDefCreator.rb314
-rw-r--r--lib/wsdl/soap/classDefCreatorSupport.rb126
-rw-r--r--lib/wsdl/soap/clientSkeltonCreator.rb78
-rw-r--r--lib/wsdl/soap/complexType.rb161
-rw-r--r--lib/wsdl/soap/data.rb42
-rw-r--r--lib/wsdl/soap/definitions.rb149
-rw-r--r--lib/wsdl/soap/driverCreator.rb95
-rw-r--r--lib/wsdl/soap/element.rb28
-rw-r--r--lib/wsdl/soap/fault.rb56
-rw-r--r--lib/wsdl/soap/header.rb86
-rw-r--r--lib/wsdl/soap/headerfault.rb56
-rw-r--r--lib/wsdl/soap/mappingRegistryCreator.rb92
-rw-r--r--lib/wsdl/soap/methodDefCreator.rb228
-rw-r--r--lib/wsdl/soap/operation.rb122
-rw-r--r--lib/wsdl/soap/servantSkeltonCreator.rb67
-rw-r--r--lib/wsdl/soap/standaloneServerStubCreator.rb85
-rw-r--r--lib/wsdl/soap/wsdl2ruby.rb176
-rw-r--r--lib/wsdl/types.rb43
-rw-r--r--lib/wsdl/wsdl.rb23
-rw-r--r--lib/wsdl/xmlSchema/all.rb69
-rw-r--r--lib/wsdl/xmlSchema/annotation.rb34
-rw-r--r--lib/wsdl/xmlSchema/any.rb56
-rw-r--r--lib/wsdl/xmlSchema/attribute.rb127
-rw-r--r--lib/wsdl/xmlSchema/choice.rb69
-rw-r--r--lib/wsdl/xmlSchema/complexContent.rb92
-rw-r--r--lib/wsdl/xmlSchema/complexType.rb139
-rw-r--r--lib/wsdl/xmlSchema/content.rb96
-rw-r--r--lib/wsdl/xmlSchema/data.rb80
-rw-r--r--lib/wsdl/xmlSchema/element.rb154
-rw-r--r--lib/wsdl/xmlSchema/enumeration.rb36
-rw-r--r--lib/wsdl/xmlSchema/import.rb65
-rw-r--r--lib/wsdl/xmlSchema/importer.rb87
-rw-r--r--lib/wsdl/xmlSchema/include.rb54
-rw-r--r--lib/wsdl/xmlSchema/length.rb35
-rw-r--r--lib/wsdl/xmlSchema/parser.rb166
-rw-r--r--lib/wsdl/xmlSchema/pattern.rb36
-rw-r--r--lib/wsdl/xmlSchema/schema.rb143
-rw-r--r--lib/wsdl/xmlSchema/sequence.rb69
-rw-r--r--lib/wsdl/xmlSchema/simpleContent.rb65
-rw-r--r--lib/wsdl/xmlSchema/simpleExtension.rb54
-rw-r--r--lib/wsdl/xmlSchema/simpleRestriction.rb73
-rw-r--r--lib/wsdl/xmlSchema/simpleType.rb73
-rw-r--r--lib/wsdl/xmlSchema/unique.rb34
-rw-r--r--lib/wsdl/xmlSchema/xsd2ruby.rb107
-rw-r--r--lib/xmlrpc.rb301
-rw-r--r--lib/xmlrpc/.document1
-rw-r--r--lib/xmlrpc/README.txt31
-rw-r--r--lib/xmlrpc/base64.rb71
-rw-r--r--lib/xmlrpc/client.rb687
-rw-r--r--lib/xmlrpc/config.rb34
-rw-r--r--lib/xmlrpc/create.rb218
-rw-r--r--lib/xmlrpc/datetime.rb129
-rw-r--r--lib/xmlrpc/httpserver.rb79
-rw-r--r--lib/xmlrpc/marshal.rb20
-rw-r--r--lib/xmlrpc/parser.rb507
-rw-r--r--lib/xmlrpc/server.rb677
-rw-r--r--lib/xmlrpc/utils.rb74
-rw-r--r--lib/xsd/charset.rb187
-rw-r--r--lib/xsd/codegen.rb12
-rw-r--r--lib/xsd/codegen/classdef.rb203
-rw-r--r--lib/xsd/codegen/commentdef.rb34
-rw-r--r--lib/xsd/codegen/gensupport.rb166
-rw-r--r--lib/xsd/codegen/methoddef.rb63
-rw-r--r--lib/xsd/codegen/moduledef.rb191
-rw-r--r--lib/xsd/datatypes.rb1269
-rw-r--r--lib/xsd/datatypes1999.rb20
-rw-r--r--lib/xsd/iconvcharset.rb33
-rw-r--r--lib/xsd/mapping.rb42
-rw-r--r--lib/xsd/namedelements.rb95
-rw-r--r--lib/xsd/ns.rb140
-rw-r--r--lib/xsd/qname.rb78
-rw-r--r--lib/xsd/xmlparser.rb61
-rw-r--r--lib/xsd/xmlparser/parser.rb96
-rw-r--r--lib/xsd/xmlparser/rexmlparser.rb54
-rw-r--r--lib/xsd/xmlparser/xmlparser.rb50
-rw-r--r--lib/xsd/xmlparser/xmlscanner.rb147
-rw-r--r--lib/yaml.rb499
-rw-r--r--lib/yaml/baseemitter.rb247
-rw-r--r--lib/yaml/basenode.rb216
-rw-r--r--lib/yaml/constants.rb45
-rw-r--r--lib/yaml/dbm.rb200
-rw-r--r--lib/yaml/encoding.rb33
-rw-r--r--lib/yaml/error.rb34
-rw-r--r--lib/yaml/loader.rb14
-rw-r--r--lib/yaml/rubytypes.rb408
-rw-r--r--lib/yaml/store.rb76
-rw-r--r--lib/yaml/stream.rb40
-rw-r--r--lib/yaml/stringio.rb83
-rw-r--r--lib/yaml/syck.rb19
-rw-r--r--lib/yaml/tag.rb91
-rw-r--r--lib/yaml/types.rb192
-rw-r--r--lib/yaml/yamlnode.rb54
-rw-r--r--lib/yaml/ypath.rb52
-rw-r--r--load.c1184
-rw-r--r--loadpath.c92
-rw-r--r--localeinit.c65
-rw-r--r--main.c45
-rw-r--r--man/erb.1157
-rw-r--r--man/goruby.139
-rw-r--r--man/irb.1173
-rw-r--r--man/rake.1205
-rw-r--r--man/ri.1181
-rw-r--r--man/ruby.1518
-rw-r--r--marshal.c1735
-rw-r--r--math.c885
-rwxr-xr-xmdoc2man.rb465
-rw-r--r--method.h141
-rw-r--r--miniinit.c30
-rw-r--r--misc/README7
-rw-r--r--misc/inf-ruby.el249
-rw-r--r--misc/rb_optparse.bash20
-rwxr-xr-xmisc/rb_optparse.zsh38
-rw-r--r--misc/rdebug.el136
-rw-r--r--misc/rdoc-mode.el132
-rw-r--r--misc/ruby-additional.el113
-rw-r--r--misc/ruby-electric.el559
-rw-r--r--misc/ruby-mode.el1879
-rw-r--r--misc/ruby-style.el79
-rw-r--r--misc/rubydb3x.el42
-rw-r--r--missing.h142
-rw-r--r--missing/acosh.c19
-rw-r--r--missing/alloca.c13
-rw-r--r--missing/cbrt.c11
-rw-r--r--missing/close.c72
-rw-r--r--missing/crt_externs.h8
-rw-r--r--missing/crypt.c125
-rw-r--r--missing/dup2.c5
-rw-r--r--missing/erf.c13
-rw-r--r--missing/ffs.c49
-rw-r--r--missing/file.h2
-rw-r--r--missing/finite.c5
-rw-r--r--missing/flock.c25
-rw-r--r--missing/hypot.c4
-rw-r--r--missing/isinf.c19
-rw-r--r--missing/isnan.c25
-rw-r--r--missing/langinfo.c148
-rw-r--r--missing/lgamma_r.c80
-rw-r--r--missing/memcmp.c10
-rw-r--r--missing/memmove.c18
-rw-r--r--missing/os2.c29
-rw-r--r--missing/setproctitle.c170
-rw-r--r--missing/signbit.c19
-rw-r--r--missing/strcasecmp.c16
-rw-r--r--missing/strchr.c22
-rw-r--r--missing/strerror.c5
-rw-r--r--missing/strftime.c903
-rw-r--r--missing/strlcat.c74
-rw-r--r--missing/strlcpy.c70
-rw-r--r--missing/strncasecmp.c21
-rw-r--r--missing/strstr.c15
-rw-r--r--missing/strtod.c271
-rw-r--r--missing/strtol.c10
-rw-r--r--missing/strtoul.c184
-rw-r--r--missing/tgamma.c92
-rw-r--r--missing/vsnprintf.c1135
-rw-r--r--missing/x68.c40
-rw-r--r--missing/x86_64-chkstk.s10
-rwxr-xr-xmkconfig.rb191
-rw-r--r--nacl/GNUmakefile.in87
-rw-r--r--nacl/README.nacl34
-rw-r--r--nacl/create_nmf.rb70
-rw-r--r--nacl/dirent.h15
-rw-r--r--nacl/example.html150
-rw-r--r--nacl/ioctl.h7
-rw-r--r--nacl/nacl-config.rb61
-rw-r--r--nacl/package.rb109
-rw-r--r--nacl/pepper_main.c870
-rw-r--r--nacl/resource.h8
-rw-r--r--nacl/select.h7
-rw-r--r--nacl/signal.h6
-rw-r--r--nacl/stat.h10
-rw-r--r--nacl/unistd.h9
-rw-r--r--nacl/utime.h11
-rw-r--r--node.c899
-rw-r--r--node.h418
-rw-r--r--numeric.c3567
-rw-r--r--object.c2913
-rw-r--r--pack.c1895
-rw-r--r--parse.y10248
-rw-r--r--prec.c141
-rw-r--r--prelude.rb15
-rw-r--r--probes.d223
-rw-r--r--probes_helper.h67
-rw-r--r--proc.c2716
-rw-r--r--process.c6501
-rw-r--r--random.c1405
-rw-r--r--range.c1356
-rw-r--r--rational.c2638
-rw-r--r--re.c3664
-rw-r--r--re.h42
-rw-r--r--regcomp.c6694
-rw-r--r--regenc.c955
-rw-r--r--regenc.h223
-rw-r--r--regerror.c402
-rw-r--r--regex.c4661
-rw-r--r--regex.h221
-rw-r--r--regexec.c4343
-rw-r--r--regint.h911
-rw-r--r--regparse.c6328
-rw-r--r--regparse.h363
-rw-r--r--regsyntax.c387
-rw-r--r--ruby.1351
-rw-r--r--ruby.c2054
-rw-r--r--ruby.h759
-rw-r--r--ruby_atomic.h136
-rw-r--r--rubyio.h88
-rw-r--r--rubysig.h105
-rwxr-xr-xrubytest.rb49
-rwxr-xr-xrunruby.rb61
-rw-r--r--safe.c143
-rw-r--r--sample/README15
-rw-r--r--sample/biorhythm.rb134
-rw-r--r--sample/cal.rb86
-rw-r--r--sample/cbreak.rb4
-rw-r--r--sample/coverage.rb62
-rw-r--r--sample/curses/hello.rb27
-rw-r--r--sample/curses/mouse.rb52
-rw-r--r--sample/curses/rain.rb74
-rw-r--r--sample/curses/view.rb91
-rw-r--r--sample/curses/view2.rb149
-rw-r--r--sample/dbmtest.rb14
-rw-r--r--sample/drb/README.ja.rdoc59
-rw-r--r--sample/drb/README.rd56
-rw-r--r--sample/drb/README.rd.ja59
-rw-r--r--sample/drb/README.rdoc56
-rw-r--r--sample/drb/darray.rb2
-rw-r--r--sample/drb/darrayc.rb16
-rw-r--r--sample/drb/dbiff.rb24
-rw-r--r--sample/drb/dchatc.rb4
-rw-r--r--sample/drb/dchats.rb22
-rw-r--r--sample/drb/dhasen.rb4
-rw-r--r--sample/drb/dhasenc.rb7
-rw-r--r--sample/drb/dlogc.rb2
-rw-r--r--sample/drb/dlogd.rb6
-rw-r--r--sample/drb/dqin.rb2
-rw-r--r--sample/drb/dqout.rb2
-rw-r--r--sample/drb/dqueue.rb2
-rw-r--r--sample/drb/drbc.rb2
-rw-r--r--sample/drb/drbch.rb2
-rw-r--r--sample/drb/drbm.rb6
-rw-r--r--sample/drb/drbmc.rb2
-rw-r--r--sample/drb/drbs-acl.rb6
-rw-r--r--sample/drb/drbs.rb4
-rw-r--r--sample/drb/extserv_test.rb12
-rw-r--r--sample/drb/gw_cu.rb2
-rw-r--r--sample/drb/holderc.rb2
-rw-r--r--sample/drb/holders.rb6
-rw-r--r--sample/drb/http0.rb64
-rw-r--r--sample/drb/http0serv.rb118
-rw-r--r--sample/drb/name.rb16
-rw-r--r--sample/drb/namec.rb2
-rw-r--r--sample/drb/old_tuplespace.rb80
-rw-r--r--sample/drb/ring_echo.rb2
-rw-r--r--sample/drb/simpletuple.rb14
-rw-r--r--sample/drb/speedc.rb2
-rw-r--r--sample/drb/speeds.rb4
-rw-r--r--sample/dualstack-fetch.rb2
-rw-r--r--sample/dualstack-httpd.rb36
-rw-r--r--sample/eval.rb2
-rw-r--r--sample/exyacc.rb32
-rw-r--r--sample/fib.awk8
-rw-r--r--sample/fib.pl4
-rw-r--r--sample/fib.scm4
-rw-r--r--sample/freq.rb2
-rw-r--r--sample/from.rb161
-rw-r--r--sample/fullpath.rb2
-rw-r--r--sample/getopts.test36
-rw-r--r--sample/goodfriday.rb48
-rw-r--r--sample/list.rb1
-rw-r--r--sample/list2.rb2
-rw-r--r--sample/list3.rb2
-rw-r--r--sample/logger/app.rb2
-rwxr-xr-x[-rw-r--r--]sample/mine.rb39
-rw-r--r--sample/mkproto.rb24
-rw-r--r--sample/mrshtest.rb13
-rw-r--r--sample/observ.rb8
-rw-r--r--sample/occur.pl8
-rw-r--r--sample/occur.rb6
-rw-r--r--sample/occur2.rb13
-rw-r--r--sample/openssl/c_rehash.rb38
-rw-r--r--sample/openssl/cert_store_view.rb911
-rw-r--r--sample/openssl/certstore.rb54
-rw-r--r--sample/openssl/cipher.rb73
-rw-r--r--sample/openssl/crlstore.rb32
-rw-r--r--sample/openssl/echo_cli.rb21
-rw-r--r--sample/openssl/echo_svr.rb15
-rw-r--r--sample/openssl/gen_csr.rb13
-rw-r--r--sample/openssl/smime_read.rb10
-rw-r--r--sample/openssl/smime_write.rb12
-rw-r--r--sample/openssl/wget.rb17
-rwxr-xr-x[-rw-r--r--]sample/optparse/opttest.rb76
-rw-r--r--sample/philos.rb2
-rw-r--r--sample/pty/expect_sample.rb48
-rw-r--r--sample/pty/script.rb37
-rw-r--r--sample/pty/shl.rb (renamed from ext/pty/shl.rb)0
-rw-r--r--sample/rcs.awk54
-rw-r--r--sample/rdoc/markup/rdoc2latex.rb15
-rw-r--r--sample/rdoc/markup/sample.rb40
-rw-r--r--sample/regx.rb23
-rw-r--r--sample/ripper/ruby2html.rb112
-rw-r--r--sample/ripper/strip-comment.rb19
-rwxr-xr-xsample/rss/blend.rb6
-rwxr-xr-xsample/rss/convert.rb2
-rwxr-xr-x[-rw-r--r--]sample/rss/list_description.rb17
-rwxr-xr-xsample/rss/re_read.rb14
-rwxr-xr-x[-rw-r--r--]sample/rss/rss_recent.rb24
-rw-r--r--sample/svr.rb4
-rwxr-xr-x[-rw-r--r--]sample/test.rb960
-rw-r--r--sample/time.rb16
-rw-r--r--sample/timeout.rb42
-rw-r--r--sample/trojan.rb4
-rw-r--r--sample/tsvr.rb2
-rw-r--r--sample/webrick/httpproxy.rb7
-rw-r--r--signal.c1165
-rw-r--r--siphash.c483
-rw-r--r--siphash.h48
-rw-r--r--sparc.c40
-rw-r--r--spec/README31
-rw-r--r--spec/default.mspec21
-rw-r--r--sprintf.c1120
-rw-r--r--st.c1525
-rw-r--r--st.h72
-rw-r--r--strftime.c1163
-rw-r--r--string.c8436
-rw-r--r--struct.c1080
-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--template/Doxyfile.tmpl265
-rw-r--r--template/GNUmakefile.in6
-rw-r--r--template/encdb.h.tmpl91
-rw-r--r--template/fake.rb.in47
-rw-r--r--template/id.c.tmpl27
-rw-r--r--template/id.h.tmpl111
-rw-r--r--template/insns.inc.tmpl20
-rw-r--r--template/insns_info.inc.tmpl83
-rw-r--r--template/known_errors.inc.tmpl14
-rw-r--r--template/minsns.inc.tmpl14
-rw-r--r--template/opt_sc.inc.tmpl32
-rw-r--r--template/optinsn.inc.tmpl30
-rw-r--r--template/optunifs.inc.tmpl35
-rw-r--r--template/ruby.pc.in56
-rw-r--r--template/sizes.c.tmpl30
-rw-r--r--template/transdb.h.tmpl59
-rw-r--r--template/verconf.h.in61
-rw-r--r--template/vm.inc.tmpl29
-rw-r--r--template/vmtc.inc.tmpl18
-rw-r--r--template/yarvarch.en7
-rw-r--r--template/yarvarch.ja454
-rw-r--r--template/yasmdata.rb.tmpl20
-rw-r--r--test/-ext-/array/test_resize.rb29
-rw-r--r--test/-ext-/bignum/test_big2str.rb29
-rw-r--r--test/-ext-/bignum/test_bigzero.rb13
-rw-r--r--test/-ext-/bignum/test_div.rb28
-rw-r--r--test/-ext-/bignum/test_mul.rb137
-rw-r--r--test/-ext-/bignum/test_pack.rb374
-rw-r--r--test/-ext-/bignum/test_str2big.rb37
-rw-r--r--test/-ext-/bug_reporter/test_bug_reporter.rb9
-rw-r--r--test/-ext-/class/test_class2name.rb18
-rw-r--r--test/-ext-/debug/test_debug.rb58
-rw-r--r--test/-ext-/debug/test_profile_frames.rb104
-rw-r--r--test/-ext-/exception/test_enc_raise.rb15
-rw-r--r--test/-ext-/exception/test_ensured.rb32
-rw-r--r--test/-ext-/file/test_stat.rb14
-rw-r--r--test/-ext-/funcall/test_passing_block.rb22
-rw-r--r--test/-ext-/iter/test_iter_break.rb12
-rw-r--r--test/-ext-/load/test_dot_dot.rb10
-rw-r--r--test/-ext-/marshal/test_usrmarshal.rb33
-rw-r--r--test/-ext-/method/test_arity.rb37
-rw-r--r--test/-ext-/num2int/test_num2int.rb267
-rw-r--r--test/-ext-/old_thread_select/test_old_thread_select.rb103
-rw-r--r--test/-ext-/path_to_class/test_path_to_class.rb12
-rw-r--r--test/-ext-/postponed_job/test_postponed_job.rb28
-rw-r--r--test/-ext-/rational/test_rat.rb31
-rw-r--r--test/-ext-/st/test_numhash.rb49
-rw-r--r--test/-ext-/st/test_update.rb50
-rw-r--r--test/-ext-/string/test_cstr.rb42
-rw-r--r--test/-ext-/string/test_ellipsize.rb46
-rw-r--r--test/-ext-/string/test_enc_associate.rb12
-rw-r--r--test/-ext-/string/test_enc_str_buf_cat.rb15
-rw-r--r--test/-ext-/string/test_modify_expand.rb15
-rw-r--r--test/-ext-/string/test_normalize.rb106
-rw-r--r--test/-ext-/string/test_qsort.rb19
-rw-r--r--test/-ext-/string/test_set_len.rb25
-rw-r--r--test/-ext-/symbol/test_inadvertent_creation.rb266
-rw-r--r--test/-ext-/symbol/test_type.rb110
-rw-r--r--test/-ext-/test_bug-3571.rb21
-rw-r--r--test/-ext-/test_bug-3662.rb10
-rw-r--r--test/-ext-/test_bug-5832.rb21
-rw-r--r--test/-ext-/test_printf.rb184
-rw-r--r--test/-ext-/tracepoint/test_tracepoint.rb53
-rw-r--r--test/-ext-/typeddata/test_typeddata.rb16
-rw-r--r--test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb45
-rw-r--r--test/-ext-/win32/test_dln.rb13
-rw-r--r--test/-ext-/win32/test_fd_setsize.rb25
-rw-r--r--test/base64/test_base64.rb100
-rw-r--r--test/benchmark/test_benchmark.rb169
-rw-r--r--test/bigdecimal/test_bigdecimal.rb1510
-rw-r--r--test/bigdecimal/test_bigdecimal_util.rb44
-rw-r--r--test/bigdecimal/test_bigmath.rb63
-rw-r--r--test/bigdecimal/testbase.rb27
-rw-r--r--test/cgi/test_cgi_cookie.rb110
-rw-r--r--test/cgi/test_cgi_core.rb373
-rw-r--r--test/cgi/test_cgi_header.rb185
-rw-r--r--test/cgi/test_cgi_modruby.rb146
-rw-r--r--test/cgi/test_cgi_multipart.rb370
-rw-r--r--test/cgi/test_cgi_session.rb172
-rw-r--r--test/cgi/test_cgi_tag_helper.rb355
-rw-r--r--test/cgi/test_cgi_util.rb89
-rw-r--r--test/cgi/testdata/file1.html10
-rw-r--r--test/cgi/testdata/large.pngbin0 -> 156414 bytes-rw-r--r--test/cgi/testdata/small.pngbin0 -> 82 bytes-rw-r--r--test/coverage/test_coverage.rb64
-rw-r--r--test/csv/base.rb8
-rw-r--r--test/csv/line_endings.gzbin0 -> 59 bytes-rw-r--r--test/csv/test_csv.rb1753
-rwxr-xr-xtest/csv/test_csv_parsing.rb221
-rwxr-xr-xtest/csv/test_csv_writing.rb97
-rwxr-xr-xtest/csv/test_data_converters.rb263
-rwxr-xr-xtest/csv/test_encodings.rb339
-rwxr-xr-xtest/csv/test_features.rb310
-rwxr-xr-xtest/csv/test_headers.rb289
-rwxr-xr-xtest/csv/test_interface.rb343
-rwxr-xr-xtest/csv/test_row.rb344
-rwxr-xr-xtest/csv/test_table.rb420
-rw-r--r--test/csv/ts_all.rb20
-rw-r--r--test/date/test_date.rb144
-rw-r--r--test/date/test_date_arith.rb286
-rw-r--r--test/date/test_date_attr.rb112
-rw-r--r--test/date/test_date_base.rb442
-rw-r--r--test/date/test_date_compat.rb21
-rw-r--r--test/date/test_date_conv.rb137
-rw-r--r--test/date/test_date_marshal.rb41
-rw-r--r--test/date/test_date_new.rb271
-rw-r--r--test/date/test_date_parse.rb1137
-rw-r--r--test/date/test_date_strftime.rb422
-rw-r--r--test/date/test_date_strptime.rb492
-rw-r--r--test/date/test_switch_hitter.rb662
-rw-r--r--test/dbm/test_dbm.rb198
-rwxr-xr-x[-rw-r--r--]test/digest/test_digest.rb90
-rw-r--r--test/digest/test_digest_extend.rb158
-rw-r--r--test/digest/test_digest_hmac.rb2
-rw-r--r--test/dl/test_base.rb143
-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.rb222
-rw-r--r--test/dl/test_dl2.rb140
-rw-r--r--test/dl/test_func.rb184
-rw-r--r--test/dl/test_handle.rb187
-rw-r--r--test/dl/test_import.rb165
-rw-r--r--test/dl/test_win32.rb54
-rw-r--r--test/drb/drbtest.rb111
-rw-r--r--test/drb/ignore_test_drb.rb16
-rw-r--r--test/drb/test_acl.rb2
-rw-r--r--test/drb/test_drb.rb95
-rw-r--r--test/drb/test_drbssl.rb10
-rw-r--r--test/drb/test_drbunix.rb10
-rw-r--r--test/drb/ut_array.rb2
-rw-r--r--test/drb/ut_array_drbssl.rb13
-rw-r--r--test/drb/ut_drb.rb3
-rw-r--r--test/drb/ut_drb_drbssl.rb13
-rw-r--r--test/drb/ut_eq.rb30
-rw-r--r--test/drb/ut_large.rb2
-rw-r--r--test/drb/ut_safe1.rb2
-rw-r--r--test/drb/ut_timerholder.rb2
-rw-r--r--test/dtrace/dummy.rb1
-rw-r--r--test/dtrace/helper.rb51
-rw-r--r--test/dtrace/test_array_create.rb35
-rw-r--r--test/dtrace/test_cmethod.rb49
-rw-r--r--test/dtrace/test_function_entry.rb87
-rw-r--r--test/dtrace/test_gc.rb26
-rw-r--r--test/dtrace/test_hash_create.rb52
-rw-r--r--test/dtrace/test_load.rb52
-rw-r--r--test/dtrace/test_object_create_start.rb35
-rw-r--r--test/dtrace/test_raise.rb29
-rw-r--r--test/dtrace/test_require.rb34
-rw-r--r--test/dtrace/test_singleton_function.rb55
-rw-r--r--test/dtrace/test_string.rb27
-rw-r--r--test/erb/test_erb.rb173
-rw-r--r--test/erb/test_erb_m17n.rb123
-rw-r--r--test/etc/test_etc.rb115
-rw-r--r--test/fiddle/helper.rb122
-rw-r--r--test/fiddle/test_c_struct_entry.rb76
-rw-r--r--test/fiddle/test_c_union_entity.rb34
-rw-r--r--test/fiddle/test_closure.rb84
-rw-r--r--test/fiddle/test_cparser.rb35
-rw-r--r--test/fiddle/test_fiddle.rb16
-rw-r--r--test/fiddle/test_func.rb92
-rw-r--r--test/fiddle/test_function.rb74
-rw-r--r--test/fiddle/test_handle.rb189
-rw-r--r--test/fiddle/test_import.rb140
-rw-r--r--test/fiddle/test_pointer.rb234
-rw-r--r--test/fileutils/clobber.rb91
-rw-r--r--test/fileutils/fileasserts.rb112
-rw-r--r--test/fileutils/test_dryrun.rb20
-rw-r--r--test/fileutils/test_fileutils.rb434
-rw-r--r--test/fileutils/test_nowrite.rb90
-rw-r--r--test/fileutils/test_verbose.rb18
-rw-r--r--test/fileutils/visibility_tests.rb41
-rw-r--r--test/gdbm/test_gdbm.rb250
-rw-r--r--test/inlinetest.rb55
-rw-r--r--test/io/console/test_io_console.rb302
-rw-r--r--test/io/nonblock/test_flush.rb42
-rw-r--r--test/io/wait/test_io_wait.rb108
-rw-r--r--test/irb/test_completion.rb22
-rw-r--r--test/irb/test_option.rb12
-rw-r--r--test/json/fixtures/fail1.json1
-rw-r--r--test/json/fixtures/fail10.json1
-rw-r--r--test/json/fixtures/fail11.json1
-rw-r--r--test/json/fixtures/fail12.json1
-rw-r--r--test/json/fixtures/fail13.json1
-rw-r--r--test/json/fixtures/fail14.json1
-rw-r--r--test/json/fixtures/fail18.json1
-rw-r--r--test/json/fixtures/fail19.json1
-rw-r--r--test/json/fixtures/fail2.json1
-rw-r--r--test/json/fixtures/fail20.json1
-rw-r--r--test/json/fixtures/fail21.json1
-rw-r--r--test/json/fixtures/fail22.json1
-rw-r--r--test/json/fixtures/fail23.json1
-rw-r--r--test/json/fixtures/fail24.json1
-rw-r--r--test/json/fixtures/fail25.json1
-rw-r--r--test/json/fixtures/fail27.json2
-rw-r--r--test/json/fixtures/fail28.json2
-rw-r--r--test/json/fixtures/fail3.json1
-rw-r--r--test/json/fixtures/fail4.json1
-rw-r--r--test/json/fixtures/fail5.json1
-rw-r--r--test/json/fixtures/fail6.json1
-rw-r--r--test/json/fixtures/fail7.json1
-rw-r--r--test/json/fixtures/fail8.json1
-rw-r--r--test/json/fixtures/fail9.json1
-rw-r--r--test/json/fixtures/pass1.json56
-rw-r--r--test/json/fixtures/pass15.json1
-rw-r--r--test/json/fixtures/pass16.json1
-rw-r--r--test/json/fixtures/pass17.json1
-rw-r--r--test/json/fixtures/pass2.json1
-rw-r--r--test/json/fixtures/pass26.json1
-rw-r--r--test/json/fixtures/pass3.json6
-rw-r--r--test/json/setup_variant.rb11
-rwxr-xr-xtest/json/test_json.rb545
-rwxr-xr-xtest/json/test_json_addition.rb196
-rw-r--r--test/json/test_json_encoding.rb65
-rwxr-xr-xtest/json/test_json_fixtures.rb35
-rwxr-xr-xtest/json/test_json_generate.rb323
-rw-r--r--test/json/test_json_generic_object.rb75
-rw-r--r--test/json/test_json_string_matching.rb39
-rwxr-xr-xtest/json/test_json_unicode.rb72
-rw-r--r--test/logger/test_logger.rb269
-rw-r--r--test/matrix/test_matrix.rb426
-rw-r--r--test/matrix/test_vector.rb149
-rw-r--r--test/minitest/metametameta.rb74
-rw-r--r--test/minitest/test_minitest_benchmark.rb135
-rw-r--r--test/minitest/test_minitest_mock.rb412
-rw-r--r--test/minitest/test_minitest_spec.rb811
-rw-r--r--test/minitest/test_minitest_unit.rb1867
-rw-r--r--test/misc/test_ruby_mode.rb181
-rw-r--r--test/mkmf/base.rb129
-rw-r--r--test/mkmf/test_config.rb17
-rw-r--r--test/mkmf/test_constant.rb37
-rw-r--r--test/mkmf/test_convertible.rb34
-rw-r--r--test/mkmf/test_find_executable.rb50
-rw-r--r--test/mkmf/test_flags.rb35
-rw-r--r--test/mkmf/test_framework.rb46
-rw-r--r--test/mkmf/test_have_func.rb14
-rw-r--r--test/mkmf/test_have_library.rb55
-rw-r--r--test/mkmf/test_have_macro.rb35
-rw-r--r--test/mkmf/test_libs.rb86
-rw-r--r--test/mkmf/test_signedness.rb29
-rw-r--r--test/mkmf/test_sizeof.rb47
-rw-r--r--test/monitor/test_monitor.rb31
-rw-r--r--test/net/ftp/test_ftp.rb813
-rw-r--r--test/net/http/test_buffered_io.rb17
-rw-r--r--test/net/http/test_http.rb918
-rw-r--r--test/net/http/test_http_request.rb79
-rw-r--r--test/net/http/test_httpheader.rb29
-rw-r--r--test/net/http/test_httpresponse.rb254
-rw-r--r--test/net/http/test_httpresponses.rb24
-rw-r--r--test/net/http/test_https.rb153
-rw-r--r--test/net/http/test_https_proxy.rb17
-rw-r--r--test/net/http/utils.rb117
-rw-r--r--test/net/imap/cacert.pem60
-rw-r--r--test/net/imap/server.crt61
-rw-r--r--test/net/imap/server.key15
-rw-r--r--test/net/imap/test_imap.rb535
-rw-r--r--test/net/imap/test_imap_response_parser.rb251
-rw-r--r--test/net/pop/test_pop.rb132
-rw-r--r--test/net/protocol/test_protocol.rb19
-rw-r--r--test/net/smtp/test_response.rb99
-rw-r--r--test/net/smtp/test_smtp.rb41
-rw-r--r--test/net/smtp/test_ssl_socket.rb91
-rw-r--r--test/nkf/test_kconv.rb104
-rw-r--r--test/nkf/test_nkf.rb6
-rw-r--r--test/objspace/test_objspace.rb269
-rw-r--r--test/open-uri/test_open-uri.rb716
-rw-r--r--test/open-uri/test_ssl.rb325
-rw-r--r--test/openssl/ssl_server.rb2
-rw-r--r--test/openssl/test_asn1.rb426
-rw-r--r--test/openssl/test_bn.rb52
-rw-r--r--test/openssl/test_buffering.rb87
-rw-r--r--test/openssl/test_cipher.rb172
-rw-r--r--test/openssl/test_config.rb297
-rw-r--r--test/openssl/test_digest.rb50
-rw-r--r--test/openssl/test_engine.rb75
-rw-r--r--test/openssl/test_fips.rb14
-rw-r--r--test/openssl/test_hmac.rb28
-rw-r--r--test/openssl/test_ns_spki.rb12
-rw-r--r--test/openssl/test_ocsp.rb47
-rw-r--r--test/openssl/test_pair.rb182
-rw-r--r--test/openssl/test_pkcs12.rb209
-rw-r--r--test/openssl/test_pkcs5.rb97
-rw-r--r--test/openssl/test_pkcs7.rb38
-rw-r--r--test/openssl/test_pkey_dh.rb82
-rw-r--r--test/openssl/test_pkey_dsa.rb240
-rw-r--r--test/openssl/test_pkey_ec.rb211
-rw-r--r--test/openssl/test_pkey_rsa.rb246
-rw-r--r--test/openssl/test_ssl.rb731
-rw-r--r--test/openssl/test_ssl_session.rb367
-rw-r--r--test/openssl/test_x509cert.rb118
-rw-r--r--test/openssl/test_x509crl.rb34
-rw-r--r--test/openssl/test_x509ext.rb7
-rw-r--r--test/openssl/test_x509name.rb115
-rw-r--r--test/openssl/test_x509req.rb46
-rw-r--r--test/openssl/test_x509store.rb52
-rw-r--r--test/openssl/utils.rb206
-rw-r--r--test/optparse/test_acceptable.rb195
-rw-r--r--test/optparse/test_autoconf.rb63
-rw-r--r--test/optparse/test_bash_completion.rb42
-rw-r--r--test/optparse/test_getopts.rb5
-rw-r--r--test/optparse/test_noarg.rb14
-rw-r--r--test/optparse/test_optarg.rb4
-rw-r--r--test/optparse/test_optparse.rb22
-rw-r--r--test/optparse/test_placearg.rb13
-rw-r--r--test/optparse/test_reqarg.rb22
-rw-r--r--test/optparse/test_summary.rb46
-rw-r--r--test/optparse/test_zsh_completion.rb22
-rw-r--r--test/ostruct/test_ostruct.rb115
-rw-r--r--test/pathname/test_pathname.rb901
-rw-r--r--test/profile_test_all.rb90
-rw-r--r--test/psych/handlers/test_recorder.rb25
-rw-r--r--test/psych/helper.rb114
-rw-r--r--test/psych/json/test_stream.rb109
-rw-r--r--test/psych/nodes/test_enumerable.rb43
-rw-r--r--test/psych/test_alias_and_anchor.rb96
-rw-r--r--test/psych/test_array.rb57
-rw-r--r--test/psych/test_boolean.rb36
-rw-r--r--test/psych/test_class.rb36
-rw-r--r--test/psych/test_coder.rb184
-rw-r--r--test/psych/test_date_time.rb25
-rw-r--r--test/psych/test_deprecated.rb214
-rw-r--r--test/psych/test_document.rb46
-rw-r--r--test/psych/test_emitter.rb94
-rw-r--r--test/psych/test_encoding.rb254
-rw-r--r--test/psych/test_engine_manager.rb47
-rw-r--r--test/psych/test_exception.rb151
-rw-r--r--test/psych/test_hash.rb44
-rw-r--r--test/psych/test_json_tree.rb65
-rw-r--r--test/psych/test_merge_keys.rb150
-rw-r--r--test/psych/test_nil.rb18
-rw-r--r--test/psych/test_null.rb19
-rw-r--r--test/psych/test_numeric.rb45
-rw-r--r--test/psych/test_object.rb44
-rw-r--r--test/psych/test_object_references.rb67
-rw-r--r--test/psych/test_omap.rb75
-rw-r--r--test/psych/test_parser.rb339
-rw-r--r--test/psych/test_psych.rb168
-rw-r--r--test/psych/test_safe_load.rb97
-rw-r--r--test/psych/test_scalar.rb11
-rw-r--r--test/psych/test_scalar_scanner.rb106
-rw-r--r--test/psych/test_serialize_subclasses.rb38
-rw-r--r--test/psych/test_set.rb49
-rw-r--r--test/psych/test_stream.rb93
-rw-r--r--test/psych/test_string.rb158
-rw-r--r--test/psych/test_struct.rb49
-rw-r--r--test/psych/test_symbol.rb17
-rw-r--r--test/psych/test_tainted.rb130
-rw-r--r--test/psych/test_to_yaml_properties.rb63
-rw-r--r--test/psych/test_tree_builder.rb79
-rw-r--r--test/psych/test_yaml.rb1289
-rw-r--r--test/psych/test_yamldbm.rb197
-rw-r--r--test/psych/test_yamlstore.rb87
-rw-r--r--test/psych/visitors/test_depth_first.rb49
-rw-r--r--test/psych/visitors/test_emitter.rb144
-rw-r--r--test/psych/visitors/test_to_ruby.rb326
-rw-r--r--test/psych/visitors/test_yaml_tree.rb173
-rw-r--r--test/rake/file_creation.rb34
-rw-r--r--test/rake/helper.rb128
-rw-r--r--test/rake/support/rakefile_definitions.rb444
-rw-r--r--test/rake/support/ruby_runner.rb33
-rw-r--r--test/rake/test_private_reader.rb42
-rw-r--r--test/rake/test_rake.rb40
-rw-r--r--test/rake/test_rake_application.rb517
-rw-r--r--test/rake/test_rake_application_options.rb457
-rw-r--r--test/rake/test_rake_backtrace.rb113
-rw-r--r--test/rake/test_rake_clean.rb52
-rw-r--r--test/rake/test_rake_definitions.rb79
-rw-r--r--test/rake/test_rake_directory_task.rb57
-rw-r--r--test/rake/test_rake_dsl.rb40
-rw-r--r--test/rake/test_rake_early_time.rb31
-rw-r--r--test/rake/test_rake_extension.rb59
-rw-r--r--test/rake/test_rake_file_creation_task.rb56
-rw-r--r--test/rake/test_rake_file_list.rb627
-rw-r--r--test/rake/test_rake_file_list_path_map.rb8
-rw-r--r--test/rake/test_rake_file_task.rb122
-rw-r--r--test/rake/test_rake_file_utils.rb309
-rw-r--r--test/rake/test_rake_ftp_file.rb74
-rw-r--r--test/rake/test_rake_functional.rb466
-rw-r--r--test/rake/test_rake_invocation_chain.rb64
-rw-r--r--test/rake/test_rake_linked_list.rb84
-rw-r--r--test/rake/test_rake_makefile_loader.rb46
-rw-r--r--test/rake/test_rake_multi_task.rb58
-rw-r--r--test/rake/test_rake_name_space.rb43
-rw-r--r--test/rake/test_rake_package_task.rb79
-rw-r--r--test/rake/test_rake_path_map.rb168
-rw-r--r--test/rake/test_rake_path_map_explode.rb34
-rw-r--r--test/rake/test_rake_path_map_partial.rb18
-rw-r--r--test/rake/test_rake_pseudo_status.rb21
-rw-r--r--test/rake/test_rake_rake_test_loader.rb20
-rw-r--r--test/rake/test_rake_reduce_compat.rb26
-rw-r--r--test/rake/test_rake_require.rb40
-rw-r--r--test/rake/test_rake_rules.rb362
-rw-r--r--test/rake/test_rake_scope.rb44
-rw-r--r--test/rake/test_rake_task.rb376
-rw-r--r--test/rake/test_rake_task_argument_parsing.rb103
-rw-r--r--test/rake/test_rake_task_arguments.rb121
-rw-r--r--test/rake/test_rake_task_lib.rb9
-rw-r--r--test/rake/test_rake_task_manager.rb158
-rw-r--r--test/rake/test_rake_task_manager_argument_resolution.rb19
-rw-r--r--test/rake/test_rake_task_with_arguments.rb171
-rw-r--r--test/rake/test_rake_test_task.rb119
-rw-r--r--test/rake/test_rake_thread_pool.rb142
-rw-r--r--test/rake/test_rake_top_level_functions.rb71
-rw-r--r--test/rake/test_rake_win32.rb72
-rw-r--r--test/rake/test_thread_history_display.rb101
-rw-r--r--test/rake/test_trace_output.rb52
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Amps and angle encoding.text21
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Auto links.text13
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Backslash escapes.text120
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Blockquotes with code blocks.text11
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Code Blocks.text14
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Code Spans.text6
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text8
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Horizontal rules.text67
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Inline HTML (Advanced).text15
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Inline HTML (Simple).text69
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Inline HTML comments.text13
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Links, inline style.text12
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Links, reference style.text71
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Links, shortcut references.text20
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Literal quotes in titles.text7
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Markdown Documentation - Basics.text306
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text888
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Nested blockquotes.text5
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Ordered and unordered lists.text131
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Strong and em together.text7
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Tabs.text21
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Tidyness.text5
-rw-r--r--test/rdoc/README1
-rw-r--r--test/rdoc/binary.datbin0 -> 1024 bytes-rw-r--r--test/rdoc/hidden.zip.txt1
-rw-r--r--test/rdoc/parsers/test_parse_c.rb261
-rw-r--r--test/rdoc/test.ja.large.rdoc3
-rw-r--r--test/rdoc/test.ja.largedoc3
-rw-r--r--test/rdoc/test.ja.rdoc10
-rw-r--r--test/rdoc/test.ja.txt8
-rw-r--r--test/rdoc/test.txt1
-rw-r--r--test/rdoc/test_attribute_manager.rb120
-rw-r--r--test/rdoc/test_rdoc_alias.rb13
-rw-r--r--test/rdoc/test_rdoc_any_method.rb431
-rw-r--r--test/rdoc/test_rdoc_attr.rb190
-rw-r--r--test/rdoc/test_rdoc_class_module.rb1492
-rw-r--r--test/rdoc/test_rdoc_code_object.rb450
-rw-r--r--test/rdoc/test_rdoc_comment.rb504
-rw-r--r--test/rdoc/test_rdoc_constant.rb151
-rw-r--r--test/rdoc/test_rdoc_context.rb899
-rw-r--r--test/rdoc/test_rdoc_context_section.rb130
-rw-r--r--test/rdoc/test_rdoc_cross_reference.rb192
-rw-r--r--test/rdoc/test_rdoc_encoding.rb204
-rw-r--r--test/rdoc/test_rdoc_extend.rb94
-rw-r--r--test/rdoc/test_rdoc_generator_darkfish.rb229
-rw-r--r--test/rdoc/test_rdoc_generator_json_index.rb264
-rw-r--r--test/rdoc/test_rdoc_generator_markup.rb59
-rw-r--r--test/rdoc/test_rdoc_generator_ri.rb78
-rw-r--r--test/rdoc/test_rdoc_include.rb108
-rw-r--r--test/rdoc/test_rdoc_markdown.rb980
-rw-r--r--test/rdoc/test_rdoc_markdown_test.rb1884
-rw-r--r--test/rdoc/test_rdoc_markup.rb95
-rw-r--r--test/rdoc/test_rdoc_markup_attribute_manager.rb358
-rw-r--r--test/rdoc/test_rdoc_markup_attributes.rb39
-rw-r--r--test/rdoc/test_rdoc_markup_document.rb207
-rw-r--r--test/rdoc/test_rdoc_markup_formatter.rb175
-rw-r--r--test/rdoc/test_rdoc_markup_hard_break.rb31
-rw-r--r--test/rdoc/test_rdoc_markup_heading.rb29
-rw-r--r--test/rdoc/test_rdoc_markup_include.rb19
-rw-r--r--test/rdoc/test_rdoc_markup_indented_paragraph.rb53
-rw-r--r--test/rdoc/test_rdoc_markup_paragraph.rb32
-rw-r--r--test/rdoc/test_rdoc_markup_parser.rb1680
-rw-r--r--test/rdoc/test_rdoc_markup_pre_process.rb473
-rw-r--r--test/rdoc/test_rdoc_markup_raw.rb22
-rw-r--r--test/rdoc/test_rdoc_markup_to_ansi.rb369
-rw-r--r--test/rdoc/test_rdoc_markup_to_bs.rb366
-rw-r--r--test/rdoc/test_rdoc_markup_to_html.rb643
-rw-r--r--test/rdoc/test_rdoc_markup_to_html_crossref.rb225
-rw-r--r--test/rdoc/test_rdoc_markup_to_html_snippet.rb710
-rw-r--r--test/rdoc/test_rdoc_markup_to_joined_paragraph.rb32
-rw-r--r--test/rdoc/test_rdoc_markup_to_label.rb112
-rw-r--r--test/rdoc/test_rdoc_markup_to_markdown.rb389
-rw-r--r--test/rdoc/test_rdoc_markup_to_rdoc.rb377
-rw-r--r--test/rdoc/test_rdoc_markup_to_table_of_contents.rb126
-rw-r--r--test/rdoc/test_rdoc_markup_to_tt_only.rb246
-rw-r--r--test/rdoc/test_rdoc_markup_verbatim.rb29
-rw-r--r--test/rdoc/test_rdoc_method_attr.rb163
-rw-r--r--test/rdoc/test_rdoc_normal_class.rb47
-rw-r--r--test/rdoc/test_rdoc_normal_module.rb42
-rw-r--r--test/rdoc/test_rdoc_options.rb747
-rw-r--r--test/rdoc/test_rdoc_parser.rb302
-rw-r--r--test/rdoc/test_rdoc_parser_c.rb1825
-rw-r--r--test/rdoc/test_rdoc_parser_changelog.rb315
-rw-r--r--test/rdoc/test_rdoc_parser_markdown.rb61
-rw-r--r--test/rdoc/test_rdoc_parser_rd.rb55
-rw-r--r--test/rdoc/test_rdoc_parser_ruby.rb3310
-rw-r--r--test/rdoc/test_rdoc_parser_simple.rb115
-rw-r--r--test/rdoc/test_rdoc_rd.rb30
-rw-r--r--test/rdoc/test_rdoc_rd_block_parser.rb533
-rw-r--r--test/rdoc/test_rdoc_rd_inline.rb63
-rw-r--r--test/rdoc/test_rdoc_rd_inline_parser.rb177
-rw-r--r--test/rdoc/test_rdoc_rdoc.rb434
-rw-r--r--test/rdoc/test_rdoc_require.rb25
-rw-r--r--test/rdoc/test_rdoc_ri_driver.rb1436
-rw-r--r--test/rdoc/test_rdoc_ri_paths.rb155
-rw-r--r--test/rdoc/test_rdoc_ruby_lex.rb410
-rw-r--r--test/rdoc/test_rdoc_ruby_token.rb19
-rw-r--r--test/rdoc/test_rdoc_rubygems_hook.rb254
-rw-r--r--test/rdoc/test_rdoc_servlet.rb535
-rw-r--r--test/rdoc/test_rdoc_single_class.rb12
-rw-r--r--test/rdoc/test_rdoc_stats.rb667
-rw-r--r--test/rdoc/test_rdoc_store.rb993
-rw-r--r--test/rdoc/test_rdoc_task.rb120
-rw-r--r--test/rdoc/test_rdoc_text.rb554
-rw-r--r--test/rdoc/test_rdoc_token_stream.rb42
-rw-r--r--test/rdoc/test_rdoc_tom_doc.rb520
-rw-r--r--test/rdoc/test_rdoc_top_level.rb287
-rw-r--r--test/rdoc/xref_data.rb76
-rw-r--r--test/rdoc/xref_test_case.rb67
-rw-r--r--test/readline/test_readline.rb518
-rw-r--r--test/readline/test_readline_history.rb292
-rw-r--r--test/resolv/test_addr.rb16
-rw-r--r--test/resolv/test_dns.rb153
-rw-r--r--test/rexml/data/LostineRiver.kml.gzbin0 -> 50154 bytes-rw-r--r--test/rexml/data/ProductionSupport.xml29
-rw-r--r--test/rexml/data/axis.xml25
-rw-r--r--test/rexml/data/bad.xml5
-rw-r--r--test/rexml/data/basic.xml11
-rw-r--r--test/rexml/data/basicupdate.xml47
-rw-r--r--test/rexml/data/broken.rss20
-rw-r--r--test/rexml/data/contents.xml70
-rw-r--r--test/rexml/data/dash.xml12
-rw-r--r--test/rexml/data/defaultNamespace.xml6
-rw-r--r--test/rexml/data/doctype_test.xml34
-rw-r--r--test/rexml/data/documentation.xml542
-rw-r--r--test/rexml/data/euc.xml296
-rw-r--r--test/rexml/data/evaluate.xml28
-rw-r--r--test/rexml/data/fibo.xml29
-rw-r--r--test/rexml/data/foo.xml10
-rw-r--r--test/rexml/data/google.2.xml156
-rw-r--r--test/rexml/data/id.xml21
-rw-r--r--test/rexml/data/iso8859-1.xml4
-rw-r--r--test/rexml/data/jaxen24.xml2
-rw-r--r--test/rexml/data/jaxen3.xml15
-rw-r--r--test/rexml/data/lang.xml11
-rw-r--r--test/rexml/data/lang0.xml18
-rw-r--r--test/rexml/data/message.xml27
-rw-r--r--test/rexml/data/moreover.xml244
-rw-r--r--test/rexml/data/much_ado.xml6850
-rw-r--r--test/rexml/data/namespaces.xml18
-rw-r--r--test/rexml/data/nitf.xml67
-rw-r--r--test/rexml/data/numbers.xml18
-rw-r--r--test/rexml/data/ofbiz-issues-full-177.xml13971
-rw-r--r--test/rexml/data/pi.xml13
-rw-r--r--test/rexml/data/pi2.xml6
-rw-r--r--test/rexml/data/project.xml1
-rw-r--r--test/rexml/data/simple.xml2
-rw-r--r--test/rexml/data/stream_accents.xml4
-rw-r--r--test/rexml/data/t63-1.xmlbin0 -> 161690 bytes-rw-r--r--test/rexml/data/t63-2.svg2828
-rw-r--r--test/rexml/data/t75.xml31
-rw-r--r--test/rexml/data/test/tests.xml683
-rw-r--r--test/rexml/data/test/tests.xsl369
-rw-r--r--test/rexml/data/testNamespaces.xml22
-rw-r--r--test/rexml/data/testsrc.xml64
-rw-r--r--test/rexml/data/text.xml10
-rw-r--r--test/rexml/data/ticket_110_utf16.xmlbin0 -> 207464 bytes-rw-r--r--test/rexml/data/ticket_61.xml4
-rw-r--r--test/rexml/data/ticket_68.xml590
-rw-r--r--test/rexml/data/tutorial.xml678
-rw-r--r--test/rexml/data/underscore.xml6
-rw-r--r--test/rexml/data/web.xml42
-rw-r--r--test/rexml/data/web2.xml7
-rw-r--r--test/rexml/data/working.rss202
-rw-r--r--test/rexml/data/xmlfile-bug.xml15
-rw-r--r--test/rexml/data/xp.tst27
-rw-r--r--test/rexml/data/yahoo.xml80
-rw-r--r--test/rexml/listener.rb50
-rw-r--r--test/rexml/parse/test_document_type_declaration.rb47
-rw-r--r--test/rexml/parse/test_notation_declaration.rb97
-rw-r--r--test/rexml/parser/test_sax2.rb200
-rw-r--r--test/rexml/parser/test_tree.rb40
-rw-r--r--test/rexml/parser/test_ultra_light.rb67
-rw-r--r--test/rexml/rexml_test_utils.rb6
-rw-r--r--test/rexml/test_attributes.rb220
-rw-r--r--test/rexml/test_attributes_mixin.rb29
-rw-r--r--test/rexml/test_changing_encoding.rb43
-rw-r--r--test/rexml/test_comment.rb25
-rw-r--r--test/rexml/test_contrib.rb581
-rw-r--r--test/rexml/test_core.rb1462
-rw-r--r--test/rexml/test_doctype.rb104
-rw-r--r--test/rexml/test_document.rb319
-rw-r--r--test/rexml/test_elements.rb116
-rw-r--r--test/rexml/test_encoding.rb94
-rw-r--r--test/rexml/test_encoding_2.rb59
-rw-r--r--test/rexml/test_entity.rb187
-rw-r--r--test/rexml/test_functions.rb223
-rw-r--r--test/rexml/test_functions_number.rb32
-rw-r--r--test/rexml/test_jaxen.rb126
-rw-r--r--test/rexml/test_light.rb104
-rw-r--r--test/rexml/test_lightparser.rb12
-rw-r--r--test/rexml/test_listener.rb129
-rw-r--r--test/rexml/test_martin_fowler.rb37
-rw-r--r--test/rexml/test_namespace.rb38
-rw-r--r--test/rexml/test_order.rb105
-rw-r--r--test/rexml/test_preceding_sibling.rb38
-rw-r--r--test/rexml/test_pullparser.rb100
-rw-r--r--test/rexml/test_rexml_issuezilla.rb14
-rw-r--r--test/rexml/test_sax.rb279
-rw-r--r--test/rexml/test_stream.rb127
-rw-r--r--test/rexml/test_text.rb19
-rw-r--r--test/rexml/test_ticket_80.rb56
-rw-r--r--test/rexml/test_validation_rng.rb790
-rw-r--r--test/rexml/test_xml_declaration.rb33
-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/rinda/test_rinda.rb504
-rw-r--r--test/rinda/test_tuplebag.rb172
-rw-r--r--test/ripper/dummyparser.rb216
-rw-r--r--test/ripper/test_files.rb24
-rw-r--r--test/ripper/test_filter.rb83
-rw-r--r--test/ripper/test_parser_events.rb1190
-rw-r--r--test/ripper/test_ripper.rb49
-rw-r--r--test/ripper/test_scanner_events.rb888
-rw-r--r--test/rss/dot.pngbin0 -> 111 bytes-rw-r--r--test/rss/rss-assertions.rb1944
-rw-r--r--test/rss/rss-testcase.rb209
-rw-r--r--test/rss/test_1.0.rb212
-rw-r--r--test/rss/test_2.0.rb147
-rw-r--r--test/rss/test_accessor.rb34
-rw-r--r--test/rss/test_atom.rb683
-rw-r--r--test/rss/test_content.rb78
-rw-r--r--test/rss/test_dublincore.rb320
-rw-r--r--test/rss/test_image.rb24
-rw-r--r--test/rss/test_inherit.rb7
-rw-r--r--test/rss/test_itunes.rb347
-rw-r--r--test/rss/test_maker_0.9.rb217
-rw-r--r--test/rss/test_maker_1.0.rb283
-rw-r--r--test/rss/test_maker_2.0.rb200
-rw-r--r--test/rss/test_maker_atom_entry.rb393
-rw-r--r--test/rss/test_maker_atom_feed.rb454
-rw-r--r--test/rss/test_maker_content.rb17
-rw-r--r--test/rss/test_maker_dc.rb24
-rw-r--r--test/rss/test_maker_image.rb6
-rw-r--r--test/rss/test_maker_itunes.rb471
-rw-r--r--test/rss/test_maker_slash.rb37
-rw-r--r--test/rss/test_maker_sy.rb7
-rw-r--r--test/rss/test_maker_taxo.rb8
-rw-r--r--test/rss/test_maker_trackback.rb4
-rw-r--r--test/rss/test_maker_xml-stylesheet.rb16
-rw-r--r--test/rss/test_parser.rb36
-rw-r--r--test/rss/test_parser_1.0.rb20
-rw-r--r--test/rss/test_parser_2.0.rb2
-rw-r--r--test/rss/test_parser_atom_entry.rb163
-rw-r--r--test/rss/test_parser_atom_feed.rb276
-rw-r--r--test/rss/test_setup_maker_0.9.rb51
-rw-r--r--test/rss/test_setup_maker_1.0.rb112
-rw-r--r--test/rss/test_setup_maker_2.0.rb44
-rw-r--r--test/rss/test_setup_maker_atom_entry.rb409
-rw-r--r--test/rss/test_setup_maker_atom_feed.rb445
-rw-r--r--test/rss/test_setup_maker_itunes.rb144
-rw-r--r--test/rss/test_setup_maker_slash.rb38
-rw-r--r--test/rss/test_slash.rb64
-rw-r--r--test/rss/test_syndication.rb42
-rw-r--r--test/rss/test_taxonomy.rb16
-rw-r--r--test/rss/test_to_s.rb264
-rw-r--r--test/rss/test_trackback.rb30
-rw-r--r--test/rss/test_version.rb4
-rw-r--r--test/rss/test_xml-stylesheet.rb24
-rw-r--r--test/ruby/allpairs.rb102
-rw-r--r--test/ruby/beginmainend.rb2
-rw-r--r--test/ruby/enc/test_big5.rb28
-rw-r--r--test/ruby/enc/test_cp949.rb28
-rw-r--r--test/ruby/enc/test_emoji.rb442
-rw-r--r--test/ruby/enc/test_euc_jp.rb24
-rw-r--r--test/ruby/enc/test_euc_kr.rb28
-rw-r--r--test/ruby/enc/test_euc_tw.rb28
-rw-r--r--test/ruby/enc/test_gb18030.rb126
-rw-r--r--test/ruby/enc/test_gbk.rb28
-rw-r--r--test/ruby/enc/test_iso_8859.rb163
-rw-r--r--test/ruby/enc/test_koi8.rb22
-rw-r--r--test/ruby/enc/test_shift_jis.rb27
-rw-r--r--test/ruby/enc/test_utf16.rb384
-rw-r--r--test/ruby/enc/test_utf32.rb93
-rw-r--r--test/ruby/enc/test_windows_1251.rb16
-rw-r--r--test/ruby/endblockwarn_rb (renamed from test/ruby/endblockwarn.rb)0
-rw-r--r--test/ruby/envutil.rb436
-rw-r--r--test/ruby/lbtest.rb49
-rw-r--r--test/ruby/marshaltestlib.rb186
-rw-r--r--test/ruby/memory_status.rb114
-rw-r--r--test/ruby/sentence.rb668
-rw-r--r--test/ruby/suicide.rb2
-rw-r--r--test/ruby/test_alias.rb114
-rw-r--r--test/ruby/test_argf.rb853
-rw-r--r--test/ruby/test_arity.rb71
-rw-r--r--test/ruby/test_array.rb2251
-rw-r--r--test/ruby/test_assignment.rb710
-rw-r--r--test/ruby/test_autoload.rb176
-rw-r--r--test/ruby/test_backtrace.rb165
-rw-r--r--test/ruby/test_basicinstructions.rb700
-rw-r--r--test/ruby/test_beginendblock.rb171
-rw-r--r--test/ruby/test_bignum.rb624
-rw-r--r--test/ruby/test_call.rb4
-rw-r--r--test/ruby/test_case.rb57
-rw-r--r--test/ruby/test_class.rb381
-rw-r--r--test/ruby/test_clone.rb2
-rw-r--r--test/ruby/test_comparable.rb86
-rw-r--r--test/ruby/test_complex.rb1163
-rw-r--r--test/ruby/test_complex2.rb735
-rw-r--r--test/ruby/test_complexrational.rb407
-rw-r--r--test/ruby/test_const.rb35
-rw-r--r--test/ruby/test_continuation.rb135
-rw-r--r--test/ruby/test_defined.rb173
-rw-r--r--test/ruby/test_dir.rb225
-rw-r--r--test/ruby/test_dir_m17n.rb331
-rw-r--r--test/ruby/test_econv.rb924
-rw-r--r--test/ruby/test_encoding.rb120
-rw-r--r--test/ruby/test_enum.rb450
-rw-r--r--test/ruby/test_enumerator.rb606
-rw-r--r--test/ruby/test_env.rb365
-rw-r--r--test/ruby/test_eval.rb429
-rw-r--r--test/ruby/test_exception.rb398
-rw-r--r--test/ruby/test_fiber.rb345
-rw-r--r--test/ruby/test_file.rb414
-rw-r--r--test/ruby/test_file_exhaustive.rb1171
-rw-r--r--test/ruby/test_fixnum.rb302
-rw-r--r--test/ruby/test_flip.rb42
-rw-r--r--test/ruby/test_float.rb513
-rw-r--r--test/ruby/test_fnmatch.rb132
-rw-r--r--test/ruby/test_gc.rb168
-rw-r--r--test/ruby/test_hash.rb556
-rw-r--r--test/ruby/test_ifunless.rb14
-rw-r--r--test/ruby/test_integer.rb280
-rw-r--r--test/ruby/test_integer_comb.rb625
-rw-r--r--test/ruby/test_io.rb2966
-rw-r--r--test/ruby/test_io_m17n.rb2538
-rw-r--r--test/ruby/test_iseq.rb119
-rw-r--r--test/ruby/test_iterator.rb150
-rw-r--r--test/ruby/test_keyword.rb418
-rw-r--r--test/ruby/test_lambda.rb136
-rw-r--r--test/ruby/test_lazy_enumerator.rb493
-rw-r--r--test/ruby/test_literal.rb437
-rw-r--r--test/ruby/test_m17n.rb1556
-rw-r--r--test/ruby/test_m17n_comb.rb1603
-rw-r--r--test/ruby/test_marshal.rb572
-rw-r--r--test/ruby/test_math.rb284
-rw-r--r--test/ruby/test_metaclass.rb167
-rw-r--r--test/ruby/test_method.rb616
-rw-r--r--test/ruby/test_mixed_unicode_escapes.rb25
-rw-r--r--test/ruby/test_module.rb1851
-rw-r--r--test/ruby/test_not.rb12
-rw-r--r--test/ruby/test_notimp.rb84
-rw-r--r--test/ruby/test_numeric.rb281
-rw-r--r--test/ruby/test_object.rb808
-rw-r--r--test/ruby/test_objectspace.rb65
-rw-r--r--test/ruby/test_optimization.rb202
-rw-r--r--test/ruby/test_pack.rb661
-rw-r--r--test/ruby/test_parse.rb852
-rw-r--r--test/ruby/test_path.rb57
-rw-r--r--test/ruby/test_pipe.rb4
-rw-r--r--test/ruby/test_primitive.rb423
-rw-r--r--test/ruby/test_proc.rb1179
-rw-r--r--test/ruby/test_process.rb1808
-rw-r--r--test/ruby/test_rand.rb556
-rw-r--r--test/ruby/test_range.rb544
-rw-r--r--test/ruby/test_rational.rb1169
-rw-r--r--test/ruby/test_rational2.rb1386
-rw-r--r--test/ruby/test_readpartial.rb14
-rw-r--r--test/ruby/test_refinement.rb1115
-rw-r--r--test/ruby/test_regexp.rb1057
-rw-r--r--test/ruby/test_require.rb668
-rw-r--r--test/ruby/test_rubyoptions.rb681
-rw-r--r--test/ruby/test_settracefunc.rb1131
-rw-r--r--test/ruby/test_signal.rb286
-rw-r--r--test/ruby/test_sleep.rb22
-rw-r--r--test/ruby/test_sprintf.rb376
-rw-r--r--test/ruby/test_sprintf_comb.rb553
-rw-r--r--test/ruby/test_string.rb2209
-rw-r--r--test/ruby/test_stringchar.rb57
-rw-r--r--test/ruby/test_struct.rb287
-rw-r--r--test/ruby/test_super.rb282
-rw-r--r--test/ruby/test_symbol.rb160
-rw-r--r--test/ruby/test_syntax.rb432
-rw-r--r--test/ruby/test_system.rb186
-rw-r--r--test/ruby/test_thread.rb943
-rw-r--r--test/ruby/test_threadgroup.rb55
-rw-r--r--test/ruby/test_time.rb946
-rw-r--r--test/ruby/test_time_tz.rb353
-rw-r--r--test/ruby/test_trace.rb46
-rw-r--r--test/ruby/test_transcode.rb2083
-rw-r--r--test/ruby/test_undef.rb37
-rw-r--r--test/ruby/test_unicode_escape.rb271
-rw-r--r--test/ruby/test_variable.rb52
-rw-r--r--test/ruby/test_whileuntil.rb112
-rw-r--r--test/ruby/test_yield.rb393
-rw-r--r--test/ruby/ut_eof.rb12
-rw-r--r--test/rubygems/alternate_cert.pem18
-rw-r--r--test/rubygems/alternate_cert_32.pem18
-rw-r--r--test/rubygems/alternate_key.pem27
-rw-r--r--test/rubygems/bad_rake.rb1
-rw-r--r--test/rubygems/bogussources.rb8
-rw-r--r--test/rubygems/ca_cert.pem68
-rw-r--r--test/rubygems/child_cert.pem18
-rw-r--r--test/rubygems/child_cert_32.pem18
-rw-r--r--test/rubygems/child_key.pem27
-rw-r--r--test/rubygems/client.pem49
-rw-r--r--test/rubygems/data/gem-private_key.pem27
-rw-r--r--test/rubygems/data/gem-public_cert.pem20
-rw-r--r--test/rubygems/data/null-type.gemspec.rzbin0 -> 554 bytes-rw-r--r--test/rubygems/encrypted_private_key.pem30
-rw-r--r--test/rubygems/expired_cert.pem18
-rw-r--r--test/rubygems/fake_certlib/openssl.rb7
-rw-r--r--test/rubygems/fix_openssl_warnings.rb12
-rw-r--r--test/rubygems/foo/discover.rb (renamed from test/wsdl/datetime/datetime.rb)0
-rw-r--r--test/rubygems/future_cert.pem18
-rw-r--r--test/rubygems/future_cert_32.pem18
-rw-r--r--test/rubygems/good_rake.rb1
-rw-r--r--test/rubygems/grandchild_cert.pem18
-rw-r--r--test/rubygems/grandchild_cert_32.pem18
-rw-r--r--test/rubygems/grandchild_key.pem27
-rw-r--r--test/rubygems/invalid_client.pem49
-rw-r--r--test/rubygems/invalid_issuer_cert.pem18
-rw-r--r--test/rubygems/invalid_issuer_cert_32.pem18
-rw-r--r--test/rubygems/invalid_key.pem27
-rw-r--r--test/rubygems/invalid_signer_cert.pem18
-rw-r--r--test/rubygems/invalid_signer_cert_32.pem18
-rw-r--r--test/rubygems/invalidchild_cert.pem18
-rw-r--r--test/rubygems/invalidchild_cert_32.pem18
-rw-r--r--test/rubygems/invalidchild_key.pem27
-rw-r--r--test/rubygems/plugin/exception/rubygems_plugin.rb2
-rw-r--r--test/rubygems/plugin/load/rubygems_plugin.rb3
-rw-r--r--test/rubygems/plugin/standarderror/rubygems_plugin.rb2
-rw-r--r--test/rubygems/private_key.pem27
-rw-r--r--test/rubygems/public_cert.pem18
-rw-r--r--test/rubygems/public_cert_32.pem18
-rw-r--r--test/rubygems/public_key.pem9
-rw-r--r--test/rubygems/rubygems/commands/crash_command.rb5
-rw-r--r--test/rubygems/rubygems_plugin.rb21
-rw-r--r--test/rubygems/sff/discover.rb (renamed from test/wsdl/qualified/lp.rb)0
-rw-r--r--test/rubygems/simple_gem.rb66
-rw-r--r--test/rubygems/specifications/bar-0.0.2.gemspec9
-rw-r--r--test/rubygems/specifications/foo-0.0.1.gemspecbin0 -> 269 bytes-rw-r--r--test/rubygems/ssl_cert.pem (renamed from test/soap/ssl/server.cert)0
-rw-r--r--test/rubygems/ssl_key.pem (renamed from test/soap/ssl/server.key)0
-rw-r--r--test/rubygems/test_bundled_ca.rb60
-rw-r--r--test/rubygems/test_config.rb14
-rw-r--r--test/rubygems/test_deprecate.rb76
-rw-r--r--test/rubygems/test_gem.rb1395
-rw-r--r--test/rubygems/test_gem_available_set.rb106
-rw-r--r--test/rubygems/test_gem_command.rb188
-rw-r--r--test/rubygems/test_gem_command_manager.rb263
-rw-r--r--test/rubygems/test_gem_commands_build_command.rb110
-rw-r--r--test/rubygems/test_gem_commands_cert_command.rb669
-rw-r--r--test/rubygems/test_gem_commands_check_command.rb68
-rw-r--r--test/rubygems/test_gem_commands_cleanup_command.rb167
-rw-r--r--test/rubygems/test_gem_commands_contents_command.rb196
-rw-r--r--test/rubygems/test_gem_commands_dependency_command.rb221
-rw-r--r--test/rubygems/test_gem_commands_environment_command.rb152
-rw-r--r--test/rubygems/test_gem_commands_fetch_command.rb126
-rw-r--r--test/rubygems/test_gem_commands_generate_index_command.rb50
-rw-r--r--test/rubygems/test_gem_commands_help_command.rb67
-rw-r--r--test/rubygems/test_gem_commands_install_command.rb849
-rw-r--r--test/rubygems/test_gem_commands_list_command.rb33
-rw-r--r--test/rubygems/test_gem_commands_lock_command.rb68
-rw-r--r--test/rubygems/test_gem_commands_mirror.rb32
-rw-r--r--test/rubygems/test_gem_commands_outdated_command.rb33
-rw-r--r--test/rubygems/test_gem_commands_owner_command.rb204
-rw-r--r--test/rubygems/test_gem_commands_pristine_command.rb370
-rw-r--r--test/rubygems/test_gem_commands_push_command.rb262
-rw-r--r--test/rubygems/test_gem_commands_query_command.rb668
-rw-r--r--test/rubygems/test_gem_commands_search_command.rb17
-rw-r--r--test/rubygems/test_gem_commands_server_command.rb59
-rw-r--r--test/rubygems/test_gem_commands_setup_command.rb129
-rw-r--r--test/rubygems/test_gem_commands_sources_command.rb248
-rw-r--r--test/rubygems/test_gem_commands_specification_command.rb250
-rw-r--r--test/rubygems/test_gem_commands_stale_command.rb40
-rw-r--r--test/rubygems/test_gem_commands_uninstall_command.rb245
-rw-r--r--test/rubygems/test_gem_commands_unpack_command.rb210
-rw-r--r--test/rubygems/test_gem_commands_update_command.rb467
-rw-r--r--test/rubygems/test_gem_commands_which_command.rb85
-rw-r--r--test/rubygems/test_gem_commands_yank_command.rb97
-rw-r--r--test/rubygems/test_gem_config_file.rb455
-rw-r--r--test/rubygems/test_gem_dependency.rb223
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb1265
-rw-r--r--test/rubygems/test_gem_dependency_list.rb259
-rw-r--r--test/rubygems/test_gem_dependency_resolution_error.rb28
-rw-r--r--test/rubygems/test_gem_doctor.rb168
-rw-r--r--test/rubygems/test_gem_ext_builder.rb265
-rw-r--r--test/rubygems/test_gem_ext_cmake_builder.rb84
-rw-r--r--test/rubygems/test_gem_ext_configure_builder.rb82
-rw-r--r--test/rubygems/test_gem_ext_ext_conf_builder.rb192
-rw-r--r--test/rubygems/test_gem_ext_rake_builder.rb64
-rw-r--r--test/rubygems/test_gem_gem_runner.rb68
-rw-r--r--test/rubygems/test_gem_gemcutter_utilities.rb225
-rw-r--r--test/rubygems/test_gem_impossible_dependencies_error.rb45
-rw-r--r--test/rubygems/test_gem_indexer.rb366
-rw-r--r--test/rubygems/test_gem_install_update_options.rb150
-rw-r--r--test/rubygems/test_gem_installer.rb1444
-rw-r--r--test/rubygems/test_gem_local_remote_options.rb120
-rw-r--r--test/rubygems/test_gem_name_tuple.rb37
-rw-r--r--test/rubygems/test_gem_package.rb805
-rw-r--r--test/rubygems/test_gem_package_old.rb89
-rw-r--r--test/rubygems/test_gem_package_tar_header.rb130
-rw-r--r--test/rubygems/test_gem_package_tar_reader.rb79
-rw-r--r--test/rubygems/test_gem_package_tar_reader_entry.rb119
-rw-r--r--test/rubygems/test_gem_package_tar_writer.rb249
-rw-r--r--test/rubygems/test_gem_package_task.rb80
-rw-r--r--test/rubygems/test_gem_path_support.rb84
-rw-r--r--test/rubygems/test_gem_platform.rb292
-rw-r--r--test/rubygems/test_gem_rdoc.rb269
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb827
-rw-r--r--test/rubygems/test_gem_request.rb279
-rw-r--r--test/rubygems/test_gem_request_set.rb239
-rw-r--r--test/rubygems/test_gem_request_set_gem_dependency_api.rb663
-rw-r--r--test/rubygems/test_gem_request_set_lockfile.rb404
-rw-r--r--test/rubygems/test_gem_requirement.rb356
-rw-r--r--test/rubygems/test_gem_resolver.rb550
-rw-r--r--test/rubygems/test_gem_resolver_activation_request.rb63
-rw-r--r--test/rubygems/test_gem_resolver_api_set.rb167
-rw-r--r--test/rubygems/test_gem_resolver_api_specification.rb68
-rw-r--r--test/rubygems/test_gem_resolver_best_set.rb30
-rw-r--r--test/rubygems/test_gem_resolver_conflict.rb75
-rw-r--r--test/rubygems/test_gem_resolver_dependency_request.rb20
-rw-r--r--test/rubygems/test_gem_resolver_git_set.rb102
-rw-r--r--test/rubygems/test_gem_resolver_git_specification.rb36
-rw-r--r--test/rubygems/test_gem_resolver_index_set.rb28
-rw-r--r--test/rubygems/test_gem_resolver_index_specification.rb67
-rw-r--r--test/rubygems/test_gem_resolver_installed_specification.rb18
-rw-r--r--test/rubygems/test_gem_resolver_installer_set.rb22
-rw-r--r--test/rubygems/test_gem_resolver_lock_set.rb56
-rw-r--r--test/rubygems/test_gem_resolver_requirement_list.rb19
-rw-r--r--test/rubygems/test_gem_resolver_vendor_set.rb65
-rw-r--r--test/rubygems/test_gem_resolver_vendor_specification.rb71
-rw-r--r--test/rubygems/test_gem_security.rb306
-rw-r--r--test/rubygems/test_gem_security_policy.rb540
-rw-r--r--test/rubygems/test_gem_security_signer.rb208
-rw-r--r--test/rubygems/test_gem_security_trust_dir.rb98
-rw-r--r--test/rubygems/test_gem_server.rb339
-rw-r--r--test/rubygems/test_gem_silent_ui.rb111
-rw-r--r--test/rubygems/test_gem_source.rb211
-rw-r--r--test/rubygems/test_gem_source_fetch_problem.rb19
-rw-r--r--test/rubygems/test_gem_source_git.rb183
-rw-r--r--test/rubygems/test_gem_source_installed.rb28
-rw-r--r--test/rubygems/test_gem_source_list.rb111
-rw-r--r--test/rubygems/test_gem_source_local.rb106
-rw-r--r--test/rubygems/test_gem_source_specific_file.rb71
-rw-r--r--test/rubygems/test_gem_source_vendor.rb27
-rw-r--r--test/rubygems/test_gem_spec_fetcher.rb310
-rw-r--r--test/rubygems/test_gem_specification.rb2918
-rw-r--r--test/rubygems/test_gem_stream_ui.rb238
-rw-r--r--test/rubygems/test_gem_stub_specification.rb143
-rw-r--r--test/rubygems/test_gem_text.rb58
-rw-r--r--test/rubygems/test_gem_uninstaller.rb443
-rw-r--r--test/rubygems/test_gem_uri_formatter.rb28
-rw-r--r--test/rubygems/test_gem_util.rb15
-rw-r--r--test/rubygems/test_gem_validator.rb36
-rw-r--r--test/rubygems/test_gem_version.rb203
-rw-r--r--test/rubygems/test_gem_version_option.rb151
-rw-r--r--test/rubygems/test_kernel.rb55
-rw-r--r--test/rubygems/test_require.rb215
-rw-r--r--test/rubygems/wrong_key_cert.pem18
-rw-r--r--test/rubygems/wrong_key_cert_32.pem18
-rw-r--r--test/runner.rb36
-rw-r--r--test/scanf/data.txt6
-rw-r--r--test/scanf/test_scanf.rb325
-rw-r--r--test/scanf/test_scanfblocks.rb81
-rw-r--r--test/scanf/test_scanfio.rb20
-rw-r--r--test/sdbm/test_sdbm.rb144
-rw-r--r--test/shell/test_command_processor.rb69
-rw-r--r--test/soap/asp.net/hello.wsdl96
-rw-r--r--test/soap/asp.net/test_aspdotnet.rb111
-rw-r--r--test/soap/calc/calc.rb17
-rw-r--r--test/soap/calc/calc2.rb29
-rw-r--r--test/soap/calc/server.cgi13
-rw-r--r--test/soap/calc/server.rb17
-rw-r--r--test/soap/calc/server2.rb20
-rw-r--r--test/soap/calc/test_calc.rb49
-rw-r--r--test/soap/calc/test_calc2.rb53
-rw-r--r--test/soap/calc/test_calc_cgi.rb69
-rw-r--r--test/soap/fault/test_customfault.rb58
-rw-r--r--test/soap/header/server.cgi119
-rw-r--r--test/soap/header/test_authheader.rb240
-rw-r--r--test/soap/header/test_authheader_cgi.rb121
-rw-r--r--test/soap/header/test_simplehandler.rb116
-rw-r--r--test/soap/helloworld/hw_s.rb16
-rw-r--r--test/soap/helloworld/test_helloworld.rb40
-rw-r--r--test/soap/marshal/test_digraph.rb56
-rw-r--r--test/soap/marshal/test_marshal.rb26
-rw-r--r--test/soap/marshal/test_struct.rb47
-rw-r--r--test/soap/ssl/README1
-rw-r--r--test/soap/ssl/ca.cert23
-rw-r--r--test/soap/ssl/client.cert19
-rw-r--r--test/soap/ssl/client.key15
-rw-r--r--test/soap/ssl/sslsvr.rb57
-rw-r--r--test/soap/ssl/subca.cert21
-rw-r--r--test/soap/ssl/test_ssl.rb204
-rw-r--r--test/soap/struct/test_struct.rb77
-rw-r--r--test/soap/swa/test_file.rb73
-rw-r--r--test/soap/test_basetype.rb970
-rw-r--r--test/soap/test_envelopenamespace.rb92
-rw-r--r--test/soap/test_httpconfigloader.rb39
-rw-r--r--test/soap/test_mapping.rb59
-rw-r--r--test/soap/test_no_indent.rb86
-rw-r--r--test/soap/test_property.rb424
-rw-r--r--test/soap/test_soapelement.rb122
-rw-r--r--test/soap/test_streamhandler.rb209
-rw-r--r--test/soap/test_styleuse.rb333
-rw-r--r--test/soap/wsdlDriver/README.txt2
-rw-r--r--test/soap/wsdlDriver/calc.wsdl126
-rw-r--r--test/soap/wsdlDriver/document.wsdl54
-rw-r--r--test/soap/wsdlDriver/echo_version.rb20
-rw-r--r--test/soap/wsdlDriver/simpletype.wsdl63
-rw-r--r--test/soap/wsdlDriver/test_calc.rb100
-rw-r--r--test/soap/wsdlDriver/test_document.rb78
-rw-r--r--test/soap/wsdlDriver/test_simpletype.rb87
-rw-r--r--test/socket/test_addrinfo.rb640
-rw-r--r--test/socket/test_ancdata.rb66
-rw-r--r--test/socket/test_basicsocket.rb88
-rw-r--r--test/socket/test_nonblock.rb163
-rw-r--r--test/socket/test_socket.rb601
-rw-r--r--test/socket/test_sockopt.rb51
-rw-r--r--test/socket/test_tcp.rb80
-rw-r--r--test/socket/test_udp.rb72
-rw-r--r--test/socket/test_unix.rb480
-rw-r--r--test/stringio/test_stringio.rb520
-rw-r--r--test/strscan/test_stringscanner.rb240
-rw-r--r--test/syslog/test_syslog_logger.rb572
-rw-r--r--test/test_abbrev.rb54
-rw-r--r--test/test_cmath.rb16
-rw-r--r--test/test_curses.rb74
-rw-r--r--test/test_delegate.rb171
-rw-r--r--test/test_find.rb260
-rw-r--r--test/test_ipaddr.rb3
-rw-r--r--test/test_mathn.rb118
-rw-r--r--test/test_mutex_m.rb26
-rw-r--r--test/test_open3.rb243
-rw-r--r--test/test_pp.rb187
-rw-r--r--test/test_prettyprint.rb519
-rw-r--r--test/test_prime.rb174
-rw-r--r--test/test_pstore.rb137
-rw-r--r--test/test_pty.rb220
-rw-r--r--test/test_rbconfig.rb53
-rw-r--r--test/test_securerandom.rb185
-rw-r--r--test/test_set.rb718
-rw-r--r--test/test_shellwords.rb61
-rw-r--r--test/test_singleton.rb103
-rw-r--r--test/test_syslog.rb185
-rw-r--r--test/test_tempfile.rb343
-rw-r--r--test/test_time.rb416
-rw-r--r--test/test_timeout.rb60
-rw-r--r--test/test_tmpdir.rb33
-rw-r--r--test/test_tracer.rb61
-rw-r--r--test/test_tsort.rb100
-rw-r--r--test/test_weakref.rb58
-rw-r--r--test/testunit/collector/test_dir.rb406
-rw-r--r--test/testunit/collector/test_objectspace.rb98
-rw-r--r--test/testunit/runit/test_assert.rb402
-rw-r--r--test/testunit/runit/test_testcase.rb91
-rw-r--r--test/testunit/runit/test_testresult.rb144
-rw-r--r--test/testunit/runit/test_testsuite.rb49
-rw-r--r--test/testunit/test4test_hideskip.rb7
-rw-r--r--test/testunit/test4test_redefinition.rb11
-rw-r--r--test/testunit/test4test_sorting.rb15
-rw-r--r--test/testunit/test_assertion.rb8
-rw-r--r--test/testunit/test_assertions.rb528
-rw-r--r--test/testunit/test_error.rb26
-rw-r--r--test/testunit/test_failure.rb33
-rw-r--r--test/testunit/test_hideskip.rb16
-rw-r--r--test/testunit/test_parallel.rb189
-rw-r--r--test/testunit/test_rake_integration.rb35
-rw-r--r--test/testunit/test_redefinition.rb15
-rw-r--r--test/testunit/test_sorting.rb17
-rw-r--r--test/testunit/test_testcase.rb275
-rw-r--r--test/testunit/test_testresult.rb104
-rw-r--r--test/testunit/test_testsuite.rb129
-rw-r--r--test/testunit/tests_for_parallel/ptest_first.rb7
-rw-r--r--test/testunit/tests_for_parallel/ptest_forth.rb21
-rw-r--r--test/testunit/tests_for_parallel/ptest_second.rb11
-rw-r--r--test/testunit/tests_for_parallel/ptest_third.rb10
-rw-r--r--test/testunit/tests_for_parallel/runner.rb10
-rw-r--r--test/testunit/util/test_backtracefilter.rb41
-rw-r--r--test/testunit/util/test_observable.rb102
-rw-r--r--test/testunit/util/test_procwrapper.rb36
-rwxr-xr-xtest/thread/lbtest.rb51
-rw-r--r--test/thread/test_cv.rb191
-rw-r--r--test/thread/test_queue.rb158
-rw-r--r--test/thread/test_sync.rb57
-rw-r--r--test/thread/test_thread.rb119
-rw-r--r--test/uri/test_common.rb131
-rw-r--r--test/uri/test_ftp.rb30
-rw-r--r--test/uri/test_generic.rb272
-rw-r--r--test/uri/test_http.rb5
-rw-r--r--test/uri/test_ldap.rb32
-rw-r--r--test/uri/test_mailto.rb36
-rw-r--r--test/uri/test_parser.rb41
-rw-r--r--test/webrick/test_cgi.rb111
-rw-r--r--test/webrick/test_cookie.rb27
-rw-r--r--test/webrick/test_filehandler.rb163
-rw-r--r--test/webrick/test_htmlutils.rb20
-rw-r--r--test/webrick/test_httpauth.rb173
-rw-r--r--test/webrick/test_httpproxy.rb284
-rw-r--r--test/webrick/test_httprequest.rb145
-rw-r--r--test/webrick/test_httpresponse.rb141
-rw-r--r--test/webrick/test_httpserver.rb143
-rw-r--r--test/webrick/test_httputils.rb40
-rw-r--r--test/webrick/test_server.rb56
-rw-r--r--test/webrick/test_utils.rb64
-rw-r--r--test/webrick/utils.rb38
-rw-r--r--[-rwxr-xr-x]test/webrick/webrick_long_filename.cgi0
-rw-r--r--test/win32ole/err_in_callback.rb9
-rw-r--r--test/win32ole/orig_data.csv5
-rw-r--r--test/win32ole/test_err_in_callback.rb55
-rw-r--r--test/win32ole/test_folderitem2_invokeverb.rb65
-rw-r--r--test/win32ole/test_nil2vtempty.rb36
-rw-r--r--test/win32ole/test_ole_methods.rb36
-rw-r--r--test/win32ole/test_propertyputref.rb30
-rw-r--r--test/win32ole/test_thread.rb33
-rw-r--r--test/win32ole/test_win32ole.rb524
-rw-r--r--test/win32ole/test_win32ole_event.rb334
-rw-r--r--test/win32ole/test_win32ole_method.rb146
-rw-r--r--test/win32ole/test_win32ole_param.rb106
-rw-r--r--test/win32ole/test_win32ole_type.rb249
-rw-r--r--test/win32ole/test_win32ole_typelib.rb116
-rw-r--r--test/win32ole/test_win32ole_variable.rb61
-rw-r--r--test/win32ole/test_win32ole_variant.rb656
-rw-r--r--test/win32ole/test_win32ole_variant_m.rb35
-rw-r--r--test/win32ole/test_win32ole_variant_outarg.rb68
-rw-r--r--test/win32ole/test_word.rb72
-rw-r--r--test/with_different_ofs.rb17
-rw-r--r--test/wsdl/any/any.wsdl50
-rw-r--r--test/wsdl/any/expectedDriver.rb54
-rw-r--r--test/wsdl/any/expectedEcho.rb14
-rw-r--r--test/wsdl/any/expectedService.rb52
-rw-r--r--test/wsdl/any/test_any.rb58
-rw-r--r--test/wsdl/axisArray/axisArray.wsdl60
-rw-r--r--test/wsdl/axisArray/itemList.rb27
-rw-r--r--test/wsdl/axisArray/test_axisarray.rb69
-rw-r--r--test/wsdl/datetime/DatetimeService.rb44
-rw-r--r--test/wsdl/datetime/datetime.wsdl45
-rw-r--r--test/wsdl/datetime/datetimeServant.rb21
-rw-r--r--test/wsdl/datetime/test_datetime.rb82
-rw-r--r--test/wsdl/document/document.wsdl74
-rw-r--r--test/wsdl/document/echo.rb92
-rw-r--r--test/wsdl/document/number.wsdl54
-rw-r--r--test/wsdl/document/ping_nosoapaction.wsdl66
-rw-r--r--test/wsdl/document/test_nosoapaction.rb109
-rw-r--r--test/wsdl/document/test_number.rb99
-rw-r--r--test/wsdl/document/test_rpc.rb177
-rw-r--r--test/wsdl/emptycomplextype.wsdl31
-rw-r--r--test/wsdl/map/map.wsdl92
-rw-r--r--test/wsdl/map/map.xml43
-rw-r--r--test/wsdl/map/test_map.rb99
-rw-r--r--test/wsdl/marshal/person.wsdl21
-rw-r--r--test/wsdl/marshal/person_org.rb22
-rw-r--r--test/wsdl/marshal/test_wsdlmarshal.rb80
-rw-r--r--test/wsdl/multiplefault.wsdl68
-rw-r--r--test/wsdl/qualified/lp.wsdl47
-rw-r--r--test/wsdl/qualified/lp.xsd26
-rw-r--r--test/wsdl/qualified/np.wsdl50
-rw-r--r--test/wsdl/qualified/test_qualified.rb154
-rw-r--r--test/wsdl/qualified/test_unqualified.rb143
-rw-r--r--test/wsdl/raa/RAA.rb243
-rw-r--r--test/wsdl/raa/RAAServant.rb99
-rw-r--r--test/wsdl/raa/RAAService.rb100
-rw-r--r--test/wsdl/raa/README.txt8
-rw-r--r--test/wsdl/raa/raa.wsdl264
-rw-r--r--test/wsdl/raa/server.rb103
-rw-r--r--test/wsdl/raa/test_raa.rb71
-rw-r--r--test/wsdl/ref/expectedProduct.rb90
-rw-r--r--test/wsdl/ref/product.wsdl86
-rw-r--r--test/wsdl/ref/test_ref.rb54
-rw-r--r--test/wsdl/rpc/echoDriver.rb55
-rw-r--r--test/wsdl/rpc/echo_serviceClient.rb23
-rw-r--r--test/wsdl/rpc/rpc.wsdl75
-rw-r--r--test/wsdl/rpc/test-rpc-lit.wsdl364
-rw-r--r--test/wsdl/rpc/test-rpc-lit12.wsdl455
-rw-r--r--test/wsdl/rpc/test_rpc.rb118
-rw-r--r--test/wsdl/rpc/test_rpc_lit.rb399
-rw-r--r--test/wsdl/simpletype/rpc/expectedClient.rb34
-rw-r--r--test/wsdl/simpletype/rpc/expectedDriver.rb62
-rw-r--r--test/wsdl/simpletype/rpc/expectedEchoVersion.rb23
-rw-r--r--test/wsdl/simpletype/rpc/expectedServant.rb32
-rw-r--r--test/wsdl/simpletype/rpc/expectedService.rb60
-rw-r--r--test/wsdl/simpletype/rpc/rpc.wsdl80
-rw-r--r--test/wsdl/simpletype/rpc/test_rpc.rb62
-rw-r--r--test/wsdl/simpletype/simpletype.wsdl95
-rw-r--r--test/wsdl/simpletype/test_simpletype.rb99
-rw-r--r--test/wsdl/soap/soapbodyparts.wsdl103
-rw-r--r--test/wsdl/soap/test_soapbodyparts.rb79
-rw-r--r--test/wsdl/test_emptycomplextype.rb21
-rw-r--r--test/wsdl/test_fault.rb51
-rw-r--r--test/wsdl/test_multiplefault.rb39
-rw-r--r--test/xmlrpc/data/blog.xml18
-rw-r--r--test/xmlrpc/htpasswd2
-rw-r--r--test/xmlrpc/test_client.rb316
-rw-r--r--test/xmlrpc/test_cookie.rb97
-rw-r--r--test/xmlrpc/test_datetime.rb66
-rw-r--r--test/xmlrpc/test_features.rb8
-rw-r--r--test/xmlrpc/test_marshal.rb25
-rw-r--r--test/xmlrpc/test_parser.rb20
-rw-r--r--test/xmlrpc/test_webrick_server.rb65
-rw-r--r--test/xmlrpc/webrick_testing.rb43
-rw-r--r--test/xsd/codegen/test_classdef.rb214
-rw-r--r--test/xsd/noencoding.xml4
-rw-r--r--test/xsd/test_noencoding.rb32
-rw-r--r--test/xsd/test_xmlschemaparser.rb22
-rw-r--r--test/xsd/test_xsd.rb1511
-rw-r--r--test/xsd/xmlschema.xml12
-rw-r--r--test/yaml/test_yaml.rb1292
-rw-r--r--test/zlib/test_zlib.rb1061
-rw-r--r--thread.c5302
-rw-r--r--thread_native.h23
-rw-r--r--thread_pthread.c1614
-rw-r--r--thread_pthread.h56
-rw-r--r--thread_win32.c782
-rw-r--r--thread_win32.h45
-rw-r--r--time.c5382
-rw-r--r--timev.h42
-rw-r--r--tool/asm_parse.rb51
-rwxr-xr-xtool/bisect.sh42
-rwxr-xr-xtool/build-transcode16
-rwxr-xr-xtool/change_maker.rb34
-rw-r--r--tool/compile_prelude.rb198
-rw-r--r--tool/config_files.rb8
-rw-r--r--tool/enc-emoji-citrus-gen.rb131
-rw-r--r--tool/enc-emoji4unicode.rb133
-rwxr-xr-xtool/enc-unicode.rb365
-rw-r--r--tool/eval.rb159
-rwxr-xr-xtool/file2lastrev.rb63
-rwxr-xr-xtool/gen_dummy_probes.rb28
-rwxr-xr-xtool/gen_ruby_tapset.rb105
-rw-r--r--tool/generic_erb.rb42
-rwxr-xr-xtool/get-config_files7
-rwxr-xr-xtool/id2token.rb24
-rwxr-xr-xtool/ifchange61
-rwxr-xr-xtool/insns2vm.rb15
-rw-r--r--tool/install-sh17
-rwxr-xr-xtool/instruction.rb1343
-rw-r--r--tool/jisx0208.rb84
-rwxr-xr-xtool/make-snapshot286
-rwxr-xr-xtool/mdoc2man.rb465
-rwxr-xr-xtool/merger.rb242
-rwxr-xr-xtool/mkconfig.rb283
-rwxr-xr-xtool/mkrunnable.rb116
-rwxr-xr-xtool/node_name.rb6
-rw-r--r--tool/parse.rb13
-rw-r--r--tool/probes_to_wiki.rb16
-rwxr-xr-xtool/rbinstall.rb795
-rwxr-xr-xtool/rbuninstall.rb67
-rwxr-xr-xtool/rmdirs11
-rwxr-xr-xtool/rubytest.rb30
-rwxr-xr-xtool/runruby.rb99
-rwxr-xr-xtool/strip-rdoc.rb22
-rw-r--r--tool/test/test_jisx0208.rb40
-rw-r--r--tool/transcode-tblgen.rb1074
-rwxr-xr-xtool/update-deps157
-rw-r--r--tool/vcs.rb112
-rw-r--r--tool/vpath.rb82
-rw-r--r--tool/vtlh.rb15
-rwxr-xr-xtool/ytab.sed37
-rw-r--r--transcode.c4550
-rw-r--r--transcode_data.h123
-rw-r--r--util.c1032
-rw-r--r--util.h67
-rw-r--r--variable.c2329
-rw-r--r--version.c76
-rw-r--r--version.h65
-rw-r--r--vm.c2882
-rw-r--r--vm_backtrace.c1368
-rw-r--r--vm_core.h1043
-rw-r--r--vm_debug.h37
-rw-r--r--vm_dump.c805
-rw-r--r--vm_eval.c1979
-rw-r--r--vm_exec.c156
-rw-r--r--vm_exec.h175
-rw-r--r--vm_insnhelper.c2446
-rw-r--r--vm_insnhelper.h273
-rw-r--r--vm_method.c1709
-rw-r--r--vm_opts.h56
-rw-r--r--vm_trace.c1495
-rw-r--r--vms/config.h102
-rw-r--r--vms/vms.h10
-rw-r--r--vms/vmsruby_private.c52
-rw-r--r--vms/vmsruby_private.h7
-rw-r--r--vsnprintf.c1339
-rw-r--r--win32/Makefile.sub904
-rw-r--r--win32/README.win3283
-rwxr-xr-xwin32/configure.bat161
-rw-r--r--win32/dir.h26
-rw-r--r--win32/enc-setup.mak10
-rw-r--r--win32/file.c706
-rwxr-xr-xwin32/ifchange.bat77
-rwxr-xr-xwin32/makedirs.bat3
-rwxr-xr-xwin32/mkexports.rb187
-rwxr-xr-xwin32/resource.rb30
-rwxr-xr-xwin32/rm.bat12
-rwxr-xr-xwin32/rmall.bat6
-rwxr-xr-xwin32/rmdirs.bat29
-rw-r--r--win32/rtname.cmd18
-rw-r--r--win32/setup.mak190
-rw-r--r--win32/stub.c42
-rw-r--r--win32/win32.c5956
-rw-r--r--win32/win32.h560
-rw-r--r--win32/winmain.c4
-rw-r--r--wince/Makefile.sub505
-rw-r--r--wince/README.wince121
-rw-r--r--wince/assert.c11
-rw-r--r--wince/assert.h6
-rwxr-xr-xwince/configure.bat102
-rw-r--r--wince/direct.c54
-rw-r--r--wince/direct.h22
-rw-r--r--wince/errno.c11
-rw-r--r--wince/errno.h55
-rw-r--r--wince/fcntl.h42
-rw-r--r--wince/io.h76
-rw-r--r--wince/io_wce.c230
-rw-r--r--wince/mkconfig_wce.rb7
-rw-r--r--wince/mkexports.rb35
-rw-r--r--wince/process.h46
-rw-r--r--wince/process_wce.c47
-rw-r--r--wince/resource.rb96
-rw-r--r--wince/setup.mak245
-rw-r--r--wince/signal.h71
-rw-r--r--wince/signal_wce.c26
-rw-r--r--wince/stddef.h5
-rw-r--r--wince/stdio.c36
-rw-r--r--wince/stdlib.c57
-rw-r--r--wince/string_wce.c89
-rw-r--r--wince/sys/stat.c102
-rw-r--r--wince/sys/stat.h68
-rw-r--r--wince/sys/timeb.c25
-rw-r--r--wince/sys/timeb.h26
-rw-r--r--wince/sys/types.h60
-rw-r--r--wince/sys/utime.c44
-rw-r--r--wince/sys/utime.h27
-rw-r--r--wince/time.h63
-rw-r--r--wince/time_wce.c301
-rw-r--r--wince/varargs.h34
-rw-r--r--wince/wince.c583
-rw-r--r--wince/wince.h191
-rw-r--r--wince/wincemain.c19
-rw-r--r--wince/wincon.h7
-rw-r--r--wince/winsock2.c338
-rw-r--r--x68/_dtos18.c250
-rw-r--r--x68/_round.c45
-rw-r--r--x68/fconvert.c81
-rw-r--r--x68/select.c167
4283 files changed, 1370919 insertions, 251915 deletions
diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index a72211d03f..0000000000
--- a/.cvsignore
+++ /dev/null
@@ -1,48 +0,0 @@
-*.bak
-*.orig
-*.rej
-*.sav
-*~
-.*.list
-.*.time
-.ccmalloc
-.ppack
-.ext
-.git
-.svn
-.pc
-COPYING.LIB
-ChangeLog.pre-alpha
-ChangeLog.pre1_1
-Makefile
-README.fat-patch
-README.v6
-README.atheos
-archive
-autom4te*.cache
-automake
-beos
-config.cache
-config.h
-config.h.in
-config.log
-config.status
-configure
-libruby.so.*
-miniruby
-newdate.rb
-newver.rb
-parse.c
-patches
-ppack
-preview
-rbconfig.rb
-repack
-riscos
-rubicon
-ruby
-ruby-man.rd.gz
-tmp
-web
-y.output
-y.tab.c
diff --git a/.document b/.document
index 230c50e387..9a5067bc52 100644
--- a/.document
+++ b/.document
@@ -6,11 +6,23 @@
# Process all the C source files
*.c
-# the lib/ directory (which has its own .document file)
+# prelude
+prelude.rb
+# the lib/ directory (which has its own .document file)
lib
-
# and some of the ext/ directory (which has its own .document file)
-
ext
+
+# rdoc files
+ChangeLog
+
+NEWS
+
+README
+README.EXT
+README.EXT.ja
+README.ja
+
+doc
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000000..67abf4b978
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,16 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+tab_width = 8
+indent_style = tab
+indent_size = 4
+
+[**.bat]
+end_of_line = crlf
+
+[**.rb]
+indent_style = space
+indent_size = 2
diff --git a/.gdbinit b/.gdbinit
new file mode 100644
index 0000000000..78ab191c40
--- /dev/null
+++ b/.gdbinit
@@ -0,0 +1,881 @@
+define hook-run
+ set $color_type = 0
+ set $color_highlite = 0
+ set $color_end = 0
+end
+
+define ruby_gdb_init
+ if !$color_type
+ set $color_type = "\033[31m"
+ end
+ if !$color_highlite
+ set $color_highlite = "\033[36m"
+ end
+ if !$color_end
+ set $color_end = "\033[m"
+ end
+end
+
+# set prompt \033[36m(gdb)\033[m\040
+
+define rp
+ ruby_gdb_init
+ if ruby_dummy_gdb_enums.special_consts
+ end
+ if (VALUE)($arg0) & RUBY_FIXNUM_FLAG
+ printf "FIXNUM: %ld\n", (long)($arg0) >> 1
+ else
+ if ((VALUE)($arg0) & ~(~(VALUE)0<<RUBY_SPECIAL_SHIFT)) == RUBY_SYMBOL_FLAG
+ set $id = (($arg0) >> RUBY_SPECIAL_SHIFT)
+ printf "%sSYMBOL%s: ", $color_type, $color_end
+ rp_id $id
+ else
+ if ($arg0) == RUBY_Qfalse
+ echo false\n
+ else
+ if ($arg0) == RUBY_Qtrue
+ echo true\n
+ else
+ if ($arg0) == RUBY_Qnil
+ echo nil\n
+ else
+ if ($arg0) == RUBY_Qundef
+ echo undef\n
+ else
+ if (VALUE)($arg0) & RUBY_IMMEDIATE_MASK
+ if ((VALUE)($arg0) & RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG
+ printf "%sFLONUM%s: %g\n", $color_type, $color_end, (double)rb_float_value($arg0)
+ else
+ echo immediate\n
+ end
+ else
+ set $flags = ((struct RBasic*)($arg0))->flags
+ if ($flags & RUBY_FL_PROMOTED)
+ printf "[PROMOTED] "
+ end
+ if ($flags & RUBY_T_MASK) == RUBY_T_NONE
+ printf "%sT_NONE%s: ", $color_type, $color_end
+ print (struct RBasic *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_NIL
+ printf "%sT_NIL%s: ", $color_type, $color_end
+ print (struct RBasic *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_OBJECT
+ printf "%sT_OBJECT%s: ", $color_type, $color_end
+ print (struct RObject *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_CLASS
+ printf "%sT_CLASS%s%s: ", $color_type, ($flags & RUBY_FL_SINGLETON) ? "*" : "", $color_end
+ rp_class $arg0
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_ICLASS
+ printf "%sT_ICLASS%s: ", $color_type, $color_end
+ rp_class $arg0
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_MODULE
+ printf "%sT_MODULE%s: ", $color_type, $color_end
+ rp_class $arg0
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_FLOAT
+ printf "%sT_FLOAT%s: %.16g ", $color_type, $color_end, (((struct RFloat*)($arg0))->float_value)
+ print (struct RFloat *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_STRING
+ printf "%sT_STRING%s: ", $color_type, $color_end
+ rp_string $arg0 $flags
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_REGEXP
+ set $regsrc = ((struct RRegexp*)($arg0))->src
+ set $rsflags = ((struct RBasic*)$regsrc)->flags
+ printf "%sT_REGEXP%s: ", $color_type, $color_end
+ set print address off
+ output (char *)(($rsflags & RUBY_FL_USER1) ? \
+ ((struct RString*)$regsrc)->as.heap.ptr : \
+ ((struct RString*)$regsrc)->as.ary)
+ set print address on
+ printf " len:%ld ", ($rsflags & RUBY_FL_USER1) ? \
+ ((struct RString*)$regsrc)->as.heap.len : \
+ (($rsflags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2)
+ if $flags & RUBY_FL_USER6
+ printf "(none) "
+ end
+ if $flags & RUBY_FL_USER5
+ printf "(literal) "
+ end
+ if $flags & RUBY_FL_USER4
+ printf "(fixed) "
+ end
+ printf "encoding:%d ", ($flags & RUBY_ENCODING_MASK) >> RUBY_ENCODING_SHIFT
+ print (struct RRegexp *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_ARRAY
+ if ($flags & RUBY_FL_USER1)
+ set $len = (($flags & (RUBY_FL_USER3|RUBY_FL_USER4)) >> (RUBY_FL_USHIFT+3))
+ printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len
+ printf "(embed) "
+ if ($len == 0)
+ printf "{(empty)} "
+ else
+ output/x *((VALUE*)((struct RArray*)($arg0))->as.ary) @ $len
+ printf " "
+ end
+ else
+ set $len = ((struct RArray*)($arg0))->as.heap.len
+ printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len
+ if ($flags & RUBY_FL_USER2)
+ printf "(shared) shared="
+ output/x ((struct RArray*)($arg0))->as.heap.aux.shared
+ printf " "
+ else
+ printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))->as.heap.aux.capa
+ end
+ if ($len == 0)
+ printf "{(empty)} "
+ else
+ output/x *((VALUE*)((struct RArray*)($arg0))->as.heap.ptr) @ $len
+ printf " "
+ end
+ end
+ print (struct RArray *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_FIXNUM
+ printf "%sT_FIXNUM%s: ", $color_type, $color_end
+ print (struct RBasic *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_HASH
+ printf "%sT_HASH%s: ", $color_type, $color_end,
+ if ((struct RHash *)($arg0))->ntbl
+ printf "len=%ld ", ((struct RHash *)($arg0))->ntbl->num_entries
+ end
+ print (struct RHash *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_STRUCT
+ printf "%sT_STRUCT%s: len=%ld ", $color_type, $color_end, \
+ (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
+ ($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) >> (RUBY_FL_USHIFT+1) : \
+ ((struct RStruct *)($arg0))->as.heap.len)
+ print (struct RStruct *)($arg0)
+ x/xw (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
+ ((struct RStruct *)($arg0))->as.ary : \
+ ((struct RStruct *)($arg0))->as.heap.ptr)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_BIGNUM
+ printf "%sT_BIGNUM%s: sign=%d len=%ld ", $color_type, $color_end, \
+ (($flags & RUBY_FL_USER1) != 0), \
+ (($flags & RUBY_FL_USER2) ? \
+ ($flags & (RUBY_FL_USER5|RUBY_FL_USER4|RUBY_FL_USER3)) >> (RUBY_FL_USHIFT+3) : \
+ ((struct RBignum*)($arg0))->as.heap.len)
+ if $flags & RUBY_FL_USER2
+ printf "(embed) "
+ end
+ print (struct RBignum *)($arg0)
+ x/xw (($flags & RUBY_FL_USER2) ? \
+ ((struct RBignum*)($arg0))->as.ary : \
+ ((struct RBignum*)($arg0))->as.heap.digits)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_RATIONAL
+ printf "%sT_RATIONAL%s: ", $color_type, $color_end
+ print (struct RRational *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_COMPLEX
+ printf "%sT_COMPLEX%s: ", $color_type, $color_end
+ print (struct RComplex *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_FILE
+ printf "%sT_FILE%s: ", $color_type, $color_end
+ print (struct RFile *)($arg0)
+ output *((struct RFile *)($arg0))->fptr
+ printf "\n"
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_TRUE
+ printf "%sT_TRUE%s: ", $color_type, $color_end
+ print (struct RBasic *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_FALSE
+ printf "%sT_FALSE%s: ", $color_type, $color_end
+ print (struct RBasic *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_DATA
+ if ((struct RTypedData *)($arg0))->typed_flag == 1
+ printf "%sT_DATA%s(%s): ", $color_type, $color_end, ((struct RTypedData *)($arg0))->type->wrap_struct_name
+ print (struct RTypedData *)($arg0)
+ else
+ printf "%sT_DATA%s: ", $color_type, $color_end
+ print (struct RData *)($arg0)
+ end
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_MATCH
+ printf "%sT_MATCH%s: ", $color_type, $color_end
+ print (struct RMatch *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_SYMBOL
+ printf "%sT_SYMBOL%s: ", $color_type, $color_end
+ print (struct RBasic *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_UNDEF
+ printf "%sT_UNDEF%s: ", $color_type, $color_end
+ print (struct RBasic *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_NODE
+ printf "%sT_NODE%s(", $color_type, $color_end
+ output (enum node_type)(($flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
+ printf "): "
+ print *(NODE *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_ZOMBIE
+ printf "%sT_ZOMBIE%s: ", $color_type, $color_end
+ print (struct RData *)($arg0)
+ else
+ printf "%sunknown%s: ", $color_type, $color_end
+ print (struct RBasic *)($arg0)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+document rp
+ Print a Ruby's VALUE.
+end
+
+define rp_id
+ set $id = (ID)$arg0
+ if $id == '!' || $id == '+' || $id == '-' || $id == '*' || $id == '/' || $id == '%' || $id == '<' || $id == '>' || $id == '`'
+ printf "(:%c)\n", $id
+ else
+ if $id == idDot2
+ printf "(:..)\n"
+ else
+ if $id == idDot3
+ printf "(:...)\n"
+ else
+ if $id == idUPlus
+ printf "(:+@)\n"
+ else
+ if $id == idUMinus
+ printf "(:-@)\n"
+ else
+ if $id == idPow
+ printf "(:**)\n"
+ else
+ if $id == idCmp
+ printf "(:<=>)\n"
+ else
+ if $id == idLTLT
+ printf "(:<<)\n"
+ else
+ if $id == idLE
+ printf "(:<=)\n"
+ else
+ if $id == idGE
+ printf "(:>=)\n"
+ else
+ if $id == idEq
+ printf "(:==)\n"
+ else
+ if $id == idEqq
+ printf "(:===)\n"
+ else
+ if $id == idNeq
+ printf "(:!=)\n"
+ else
+ if $id == idEqTilde
+ printf "(:=~)\n"
+ else
+ if $id == idNeqTilde
+ printf "(:!~)\n"
+ else
+ if $id == idAREF
+ printf "(:[])\n"
+ else
+ if $id == idASET
+ printf "(:[]=)\n"
+ else
+ if $id <= tLAST_OP_ID
+ printf "O"
+ else
+ set $id_type = $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
+ end
+ printf "(%ld): ", $id
+ rb_numtable_entry global_symbols.id_str $id
+ if $rb_numtable_rec
+ rp_string $rb_numtable_rec
+ else
+ echo undef\n
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+document rp_id
+ Print an ID.
+end
+
+define rp_string
+ set $flags = ((struct RBasic*)($arg0))->flags
+ set print address off
+ output (char *)(($flags & RUBY_FL_USER1) ? \
+ ((struct RString*)($arg0))->as.heap.ptr : \
+ ((struct RString*)($arg0))->as.ary)
+ set print address on
+ printf " bytesize:%ld ", ($flags & RUBY_FL_USER1) ? \
+ ((struct RString*)($arg0))->as.heap.len : \
+ (($flags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2)
+ if !($flags & RUBY_FL_USER1)
+ printf "(embed) "
+ else
+ if ($flags & RUBY_FL_USER2)
+ printf "(shared) "
+ end
+ if ($flags & RUBY_FL_USER3)
+ printf "(assoc) "
+ end
+ end
+ printf "encoding:%d ", ($flags & RUBY_ENCODING_MASK) >> RUBY_ENCODING_SHIFT
+ if ($flags & RUBY_ENC_CODERANGE_MASK) == 0
+ printf "coderange:unknown "
+ else
+ if ($flags & RUBY_ENC_CODERANGE_MASK) == RUBY_ENC_CODERANGE_7BIT
+ printf "coderange:7bit "
+ else
+ if ($flags & RUBY_ENC_CODERANGE_MASK) == RUBY_ENC_CODERANGE_VALID
+ printf "coderange:valid "
+ else
+ printf "coderange:broken "
+ end
+ end
+ end
+ print (struct RString *)($arg0)
+end
+document rp_string
+ Print the content of a String.
+end
+
+define rp_class
+ printf "(struct RClass *) %p", (void*)$arg0
+ if ((struct RClass *)($arg0))->ptr.origin != $arg0
+ printf " -> %p", ((struct RClass *)($arg0))->ptr.origin
+ end
+ printf "\n"
+ rb_classname $arg0
+ print *(struct RClass *)($arg0)
+ print *((struct RClass *)($arg0))->ptr
+end
+document rp_class
+ Print the content of a Class/Module.
+end
+
+define nd_type
+ print (enum node_type)((((NODE*)($arg0))->flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
+end
+document nd_type
+ Print a Ruby' node type.
+end
+
+define nd_file
+ print ((NODE*)($arg0))->nd_file
+end
+document nd_file
+ Print the source file name of a node.
+end
+
+define nd_line
+ print ((unsigned int)((((NODE*)($arg0))->flags>>RUBY_NODE_LSHIFT)&RUBY_NODE_LMASK))
+end
+document nd_line
+ Print the source line number of a node.
+end
+
+# Print members of ruby node.
+
+define nd_head
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+define nd_alen
+ printf "%su2.argc%s: ", $color_highlite, $color_end
+ p ($arg0).u2.argc
+end
+
+define nd_next
+ printf "%su3.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.node
+end
+
+
+define nd_cond
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+define nd_body
+ printf "%su2.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u2.node
+end
+
+define nd_else
+ printf "%su3.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.node
+end
+
+
+define nd_orig
+ printf "%su3.value%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.value
+end
+
+
+define nd_resq
+ printf "%su2.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u2.node
+end
+
+define nd_ensr
+ printf "%su3.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.node
+end
+
+
+define nd_1st
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+define nd_2nd
+ printf "%su2.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u2.node
+end
+
+
+define nd_stts
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+
+define nd_entry
+ printf "%su3.entry%s: ", $color_highlite, $color_end
+ p ($arg0).u3.entry
+end
+
+define nd_vid
+ printf "%su1.id%s: ", $color_highlite, $color_end
+ p ($arg0).u1.id
+end
+
+define nd_cflag
+ printf "%su2.id%s: ", $color_highlite, $color_end
+ p ($arg0).u2.id
+end
+
+define nd_cval
+ printf "%su3.value%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.value
+end
+
+
+define nd_cnt
+ printf "%su3.cnt%s: ", $color_highlite, $color_end
+ p ($arg0).u3.cnt
+end
+
+define nd_tbl
+ printf "%su1.tbl%s: ", $color_highlite, $color_end
+ p ($arg0).u1.tbl
+end
+
+
+define nd_var
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+define nd_ibdy
+ printf "%su2.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u2.node
+end
+
+define nd_iter
+ printf "%su3.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.node
+end
+
+
+define nd_value
+ printf "%su2.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u2.node
+end
+
+define nd_aid
+ printf "%su3.id%s: ", $color_highlite, $color_end
+ p ($arg0).u3.id
+end
+
+
+define nd_lit
+ printf "%su1.value%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.value
+end
+
+
+define nd_frml
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+define nd_rest
+ printf "%su2.argc%s: ", $color_highlite, $color_end
+ p ($arg0).u2.argc
+end
+
+define nd_opt
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+
+define nd_recv
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+define nd_mid
+ printf "%su2.id%s: ", $color_highlite, $color_end
+ p ($arg0).u2.id
+end
+
+define nd_args
+ printf "%su3.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.node
+end
+
+
+define nd_noex
+ printf "%su1.id%s: ", $color_highlite, $color_end
+ p ($arg0).u1.id
+end
+
+define nd_defn
+ printf "%su3.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.node
+end
+
+
+define nd_old
+ printf "%su1.id%s: ", $color_highlite, $color_end
+ p ($arg0).u1.id
+end
+
+define nd_new
+ printf "%su2.id%s: ", $color_highlite, $color_end
+ p ($arg0).u2.id
+end
+
+
+define nd_cfnc
+ printf "%su1.cfunc%s: ", $color_highlite, $color_end
+ p ($arg0).u1.cfunc
+end
+
+define nd_argc
+ printf "%su2.argc%s: ", $color_highlite, $color_end
+ p ($arg0).u2.argc
+end
+
+
+define nd_cname
+ printf "%su1.id%s: ", $color_highlite, $color_end
+ p ($arg0).u1.id
+end
+
+define nd_super
+ printf "%su3.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u3.node
+end
+
+
+define nd_modl
+ printf "%su1.id%s: ", $color_highlite, $color_end
+ p ($arg0).u1.id
+end
+
+define nd_clss
+ printf "%su1.value%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.value
+end
+
+
+define nd_beg
+ printf "%su1.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u1.node
+end
+
+define nd_end
+ printf "%su2.node%s: ", $color_highlite, $color_end
+ rp ($arg0).u2.node
+end
+
+define nd_state
+ printf "%su3.state%s: ", $color_highlite, $color_end
+ p ($arg0).u3.state
+end
+
+define nd_rval
+ printf "%su2.value%s: ", $color_highlite, $color_end
+ rp ($arg0).u2.value
+end
+
+
+define nd_nth
+ printf "%su2.argc%s: ", $color_highlite, $color_end
+ p ($arg0).u2.argc
+end
+
+
+define nd_tag
+ printf "%su1.id%s: ", $color_highlite, $color_end
+ p ($arg0).u1.id
+end
+
+define nd_tval
+ printf "%su2.value%s: ", $color_highlite, $color_end
+ rp ($arg0).u2.value
+end
+
+define rb_p
+ call rb_p($arg0)
+end
+
+define rb_numtable_entry
+ set $rb_numtable_tbl = $arg0
+ set $rb_numtable_id = (st_data_t)$arg1
+ set $rb_numtable_key = 0
+ set $rb_numtable_rec = 0
+ if $rb_numtable_tbl->entries_packed
+ set $rb_numtable_p = $rb_numtable_tbl->as.packed.bins
+ while $rb_numtable_p && $rb_numtable_p < $rb_numtable_tbl->as.packed.bins+$rb_numtable_tbl->num_entries
+ if $rb_numtable_p.k == $rb_numtable_id
+ set $rb_numtable_key = $rb_numtable_p.k
+ set $rb_numtable_rec = $rb_numtable_p.v
+ set $rb_numtable_p = 0
+ else
+ set $rb_numtable_p = $rb_numtable_p + 1
+ end
+ end
+ else
+ 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
+ set $rb_numtable_rec = $rb_numtable_p->record
+ set $rb_numtable_p = 0
+ else
+ set $rb_numtable_p = $rb_numtable_p->next
+ end
+ end
+ end
+end
+
+define rb_id2name
+ printf "%sID%s: ", $color_type, $color_end
+ rp_id $arg0
+end
+document rb_id2name
+ Print the name of id
+end
+
+define rb_method_entry
+ set $rb_method_entry_klass = (struct RClass *)$arg0
+ set $rb_method_entry_id = (ID)$arg1
+ set $rb_method_entry_me = (rb_method_entry_t *)0
+ while !$rb_method_entry_me && $rb_method_entry_klass
+ rb_numtable_entry $rb_method_entry_klass->m_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 *)$rb_method_entry_klass->ptr->super
+ end
+ end
+ if $rb_method_entry_me
+ print *$rb_method_entry_klass
+ print *$rb_method_entry_me
+ else
+ echo method not found\n
+ end
+end
+document rb_method_entry
+ Search method entry by class and id
+end
+
+define rb_classname
+ # up to 128bit int
+ set $rb_classname_permanent = "0123456789ABCDEF"
+ set $rb_classname = classname($arg0, $rb_classname_permanent)
+ if $rb_classname != RUBY_Qnil
+ rp $rb_classname
+ else
+ echo anonymous class/module\n
+ end
+end
+
+define rb_ancestors
+ set $rb_ancestors_module = $arg0
+ while $rb_ancestors_module
+ rp_class $rb_ancestors_module
+ set $rb_ancestors_module = ((struct RClass *)($rb_ancestors_module))->ptr.super
+ end
+end
+document rb_ancestors
+ Print ancestors.
+end
+
+define rb_backtrace
+ call rb_backtrace()
+end
+
+define iseq
+ if ruby_dummy_gdb_enums.special_consts
+ end
+ if ($arg0)->type == ISEQ_ELEMENT_NONE
+ echo [none]\n
+ end
+ if ($arg0)->type == ISEQ_ELEMENT_LABEL
+ print *(LABEL*)($arg0)
+ end
+ if ($arg0)->type == ISEQ_ELEMENT_INSN
+ print *(INSN*)($arg0)
+ if ((INSN*)($arg0))->insn_id != YARVINSN_jump
+ set $i = 0
+ set $operand_size = ((INSN*)($arg0))->operand_size
+ set $operands = ((INSN*)($arg0))->operands
+ while $i < $operand_size
+ rp $operands[$i++]
+ end
+ end
+ end
+ if ($arg0)->type == ISEQ_ELEMENT_ADJUST
+ print *(ADJUST*)($arg0)
+ end
+end
+
+define rb_ps
+ rb_ps_vm ruby_current_vm
+end
+document rb_ps
+Dump all threads and their callstacks
+end
+
+define rb_ps_vm
+ print $ps_vm = (rb_vm_t*)$arg0
+ set $ps_threads = (st_table*)$ps_vm->living_threads
+ if $ps_threads->entries_packed
+ set $ps_threads_i = 0
+ while $ps_threads_i < $ps_threads->num_entries
+ set $ps_threads_key = (st_data_t)$ps_threads->as.packed.entries[$ps_threads_i].key
+ set $ps_threads_val = (st_data_t)$ps_threads->as.packed.entries[$ps_threads_i].val
+ rb_ps_thread $ps_threads_key $ps_threads_val
+ set $ps_threads_i = $ps_threads_i + 1
+ end
+ else
+ set $ps_threads_ptr = (st_table_entry*)$ps_threads->head
+ while $ps_threads_ptr
+ set $ps_threads_key = (st_data_t)$ps_threads_ptr->key
+ set $ps_threads_val = (st_data_t)$ps_threads_ptr->record
+ rb_ps_thread $ps_threads_key $ps_threads_val
+ set $ps_threads_ptr = (st_table_entry*)$ps_threads_ptr->fore
+ end
+ end
+end
+document rb_ps_vm
+Dump all threads in a (rb_vm_t*) and their callstacks
+end
+
+define rb_ps_thread
+ set $ps_thread = (struct RTypedData*)$arg0
+ set $ps_thread_id = $arg1
+ print $ps_thread_th = (rb_thread_t*)$ps_thread->data
+end
+
+# Details: https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/MachineInstructionsTraceWithGDB
+define trace_machine_instructions
+ set logging on
+ set height 0
+ set width 0
+ display/i $pc
+ while !$exit_code
+ info line *$pc
+ si
+ end
+end
+
+define SDR
+ call rb_vmdebug_stack_dump_raw_current()
+end
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000..9cd98beee1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,135 @@
+*-*-*.def
+*.a
+*.bak
+*.dSYM
+*.dmyh
+*.dylib
+*.elc
+*.inc
+*.log
+*.o
+*.orig
+*.rej
+*.sav
+*.swp
+*~
+.*-*
+.*.list
+.*.time
+.DS_Store
+.ccmalloc
+.ext
+.pc
+.ppack
+.svn
+Makefile
+extconf.h
+y.output
+y.tab.c
+
+# /
+/*.pc
+/*_prelude.c
+/COPYING.LIB
+/ChangeLog-1.8.0
+/ChangeLog.pre-alpha
+/ChangeLog.pre1_1
+/Doxyfile
+/GNUmakefile
+/README.atheos
+/README.fat-patch
+/README.v6
+/TAGS
+/archive
+/autom4te*.cache
+/automake
+/beos
+/breakpoints.gdb
+/config.cache
+/config.h
+/config.h.in
+/config.status
+/config.status.lineno
+/configure
+/doc/capi
+/enc.mk
+/encdb.h
+/exts.mk
+/goruby
+/id.[ch]
+/largefile.h
+/lex.c
+/libruby*.*
+/miniprelude.c
+/miniruby
+/newdate.rb
+/newline.c
+/newver.rb
+/parse.c
+/parse.h
+/patches
+/patches-master
+/pitest.rb
+/ppack
+/prelude.c
+/preview
+/probes.h
+/rbconfig.rb
+/rename2.h
+/repack
+/revision.h
+/riscos
+/rubicon
+/ruby
+/ruby-man.rd.gz
+/sizes.c
+/test.rb
+/tmp
+/transdb.h
+/uncommon.mk
+/verconf.h
+/web
+/yasmdata.rb
+
+# /benchmark/
+/benchmark/bmx_*.rb
+
+# /enc/trans/
+/enc/trans/*.c
+
+# /ext/
+/ext/extinit.c
+
+# /ext/dl/callback/
+/ext/dl/callback/callback-*.c
+/ext/dl/callback/callback.c
+
+# /ext/rbconfig/
+/ext/rbconfig/sizeof/sizes.c
+
+# /ext/ripper/
+/ext/ripper/eventids1.c
+/ext/ripper/eventids2table.c
+/ext/ripper/ripper.*
+/ext/ripper/ids1
+/ext/ripper/ids2
+
+# /ext/socket/
+/ext/socket/constants.h
+/ext/socket/constdefs.h
+/ext/socket/constdefs.c
+
+# /ext/tk/
+/ext/tk/config_list
+
+# /spec/
+/spec/mspec
+/spec/rubyspec
+
+# /tool/
+/tool/config.guess
+/tool/config.sub
+
+# /win32/
+/win32/*.ico
+/win32/.time
diff --git a/.indent.pro b/.indent.pro
new file mode 100644
index 0000000000..6a207a0554
--- /dev/null
+++ b/.indent.pro
@@ -0,0 +1,21 @@
+-bap
+-nbbb
+-nbc
+-br
+-nbs
+-ncdb
+-ce
+-cli0.5
+-ndj
+-ei
+-nfc1
+-i4
+-l120
+-lp
+-npcs
+-psl
+-sc
+-sob
+
+-TID
+-TVALUE
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..8db00587d6
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,86 @@
+# Copyright (C) 2011 Urabe, Shyouhei. All rights reserved.
+#
+# This file is a part of the programming language Ruby. Permission is hereby
+# granted, to either redistribute or modify this file, provided that the
+# conditions mentioned in the file COPYING are met. Consult the file for
+# details.
+
+# This is a Travis-CI build configuration file. The list of configurations
+# available is located in
+#
+# http://about.travis-ci.org/docs/user/build-configuration/
+#
+# and as Ruby itself is a project written in C language,
+#
+# http://about.travis-ci.org/docs/user/languages/c/
+#
+# is also a good place to look at.
+
+# Language specification.
+language: c
+
+# Compilers. Several compilers are provided in Travis, so we try them all.
+# The value set here is visible via $CC environment variable.
+compiler:
+ - gcc
+ - 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:
+ - "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:
+ - "make -f common.mk BASERUBY=ruby srcdir=. update-config_files"
+ - "autoconf"
+ - "mkdir config_1st config_2nd"
+ - "./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 -sj encs"
+ - "make -sj exts"
+script:
+ - "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_1_9_3
+
+# We want to be notified when something happens.
+notifications:
+ irc:
+ channels:
+ - "irc.freenode.org#ruby-core"
+ - "irc.freenode.org#ruby-ja"
+ on_success: change # [always|never|change] # default: always
+ on_failure: change # [always|never|change] # default: always
+ template:
+ - "%{message} by @%{author}: See %{build_url}"
+
+ # Update ruby-head installed on Travis CI so other projects can test against it.
+ webhooks:
+ urls:
+ - "https://rubies.travis-ci.org/rebuild/ruby-head"
+ on_success: always
+ on_failure: never
+
+# Local Variables:
+# mode: YAML
+# coding: utf-8-unix
+# indent-tabs-mode: nil
+# tab-width: 4
+# fill-column: 79
+# default-justification: full
+# End:
diff --git a/BSDL b/BSDL
new file mode 100644
index 0000000000..a009caefea
--- /dev/null
+++ b/BSDL
@@ -0,0 +1,22 @@
+Copyright (C) 1993-2013 Yukihiro Matsumoto. 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.
diff --git a/COPYING b/COPYING
index 9043404a83..a1f19ff99d 100644
--- a/COPYING
+++ b/COPYING
@@ -1,6 +1,6 @@
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
-You can redistribute it and/or modify it under either the terms of the GPL
-version 2 (see the file GPL), or the conditions below:
+You can redistribute it and/or modify it under either the terms of the
+2-clause BSDL (see the file BSDL), or the conditions below:
1. You may make and give away verbatim copies of the source form of the
software without restriction, provided that you duplicate all of the
diff --git a/COPYING.ja b/COPYING.ja
index 933cc7cb9a..e50d01c8d1 100644
--- a/COPYING.ja
+++ b/COPYING.ja
@@ -1,51 +1,51 @@
-$BK\%W%m%0%i%`$O%U%j!<%=%U%H%&%'%"$G$9!%(BGPL(the GNU General
-Public License)$B$^$?$O0J2<$K<($9>r7o$GK\%W%m%0%i%`$r:FG[I[$G(B
-$B$-$^$9!%(BGPL$B$K$D$$$F$O(BGPL$B%U%!%$%k$r;2>H$7$F2<$5$$!%(B
+本プログラムã¯ãƒ•リーソフトウェアã§ã™ï¼Ž2-clause BSDL
+ã¾ãŸã¯ä»¥ä¸‹ã«ç¤ºã™æ¡ä»¶ã§æœ¬ãƒ—ログラムをå†é…布ã§ãã¾ã™
+2-clause BSDLã«ã¤ã„ã¦ã¯BSDLファイルをå‚ç…§ã—ã¦ä¸‹ã•ã„.
- 1. $BJ#@=$O@)8B$J$/<+M3$G$9!%(B
+ 1. 複製ã¯åˆ¶é™ãªã自由ã§ã™ï¼Ž
- 2. $B0J2<$N>r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$N%=!<%9$r(B
- $B<+M3$KJQ99$G$-$^$9!%(B
+ 2. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’満ãŸã™æ™‚ã«æœ¬ãƒ—ログラムã®ã‚½ãƒ¼ã‚¹ã‚’
+ 自由ã«å¤‰æ›´ã§ãã¾ã™ï¼Ž
- (a) $B%M%C%H%K%e!<%:$K%]%9%H$7$?$j!$:n<T$KJQ99$rAwIU$9$k(B
- $B$J$I$NJ}K!$G!$JQ99$r8x3+$9$k!%(B
+ (a) ãƒãƒƒãƒˆãƒ‹ãƒ¥ãƒ¼ã‚ºã«ãƒã‚¹ãƒˆã—ãŸã‚Šï¼Œä½œè€…ã«å¤‰æ›´ã‚’é€ä»˜ã™ã‚‹
+ ãªã©ã®æ–¹æ³•ã§ï¼Œå¤‰æ›´ã‚’公開ã™ã‚‹ï¼Ž
- (b) $BJQ99$7$?K\%W%m%0%i%`$r<+J,$N=jB0$9$kAH?%FbIt$@$1$G(B
- $B;H$&!%(B
+ (b) 変更ã—ãŸæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’è‡ªåˆ†ã®æ‰€å±žã™ã‚‹çµ„織内部ã ã‘ã§
+ 使ã†ï¼Ž
- (c) $BJQ99E@$rL@<($7$?$&$(!$%=%U%H%&%'%"$NL>A0$rJQ99$9$k!%(B
- $B$=$N%=%U%H%&%'%"$rG[I[$9$k;~$K$OJQ99A0$NK\%W%m%0%i(B
- $B%`$bF1;~$KG[I[$9$k!%$^$?$OJQ99A0$NK\%W%m%0%i%`$N%=!<(B
- $B%9$NF~<jK!$rL@<($9$k!%(B
+ (c) 変更点を明示ã—ãŸã†ãˆï¼Œã‚½ãƒ•トウェアã®åå‰ã‚’変更ã™ã‚‹ï¼Ž
+ ãã®ã‚½ãƒ•トウェアをé…布ã™ã‚‹æ™‚ã«ã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ログラ
+ ãƒ ã‚‚åŒæ™‚ã«é…布ã™ã‚‹ï¼Žã¾ãŸã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ログラムã®ã‚½ãƒ¼
+ スã®å…¥æ‰‹æ³•を明示ã™ã‚‹ï¼Ž
- (d) $B$=$NB>$NJQ99>r7o$r:n<T$H9g0U$9$k!%(B
+ (d) ãã®ä»–ã®å¤‰æ›´æ¡ä»¶ã‚’作者ã¨åˆæ„ã™ã‚‹ï¼Ž
- 3. $B0J2<$N>r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$r%3%s%Q%$(B
- $B%k$7$?%*%V%8%'%/%H%3!<%I$d<B9T7A<0$G$bG[I[$G$-$^$9!%(B
+ 3. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’満ãŸã™æ™‚ã«æœ¬ãƒ—ログラムをコンパイ
+ ルã—ãŸã‚ªãƒ–ジェクトコードや実行形å¼ã§ã‚‚é…布ã§ãã¾ã™ï¼Ž
- (a) $B%P%$%J%j$r<u$1<h$C$??M$,%=!<%9$rF~<j$G$-$k$h$&$K!$(B
- $B%=!<%9$NF~<jK!$rL@<($9$k!%(B
+ (a) ãƒã‚¤ãƒŠãƒªã‚’å—ã‘å–ã£ãŸäººãŒã‚½ãƒ¼ã‚¹ã‚’入手ã§ãるよã†ã«ï¼Œ
+ ソースã®å…¥æ‰‹æ³•を明示ã™ã‚‹ï¼Ž
- (b) $B5!3#2DFI$J%=!<%9%3!<%I$rE:IU$9$k!%(B
+ (b) 機械å¯èª­ãªã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’添付ã™ã‚‹ï¼Ž
- (c) $BJQ99$r9T$C$?%P%$%J%j$OL>A0$rJQ99$7$?$&$(!$%*%j%8%J(B
- $B%k$N%=!<%9%3!<%I$NF~<jK!$rL@<($9$k!%(B
+ (c) 変更を行ã£ãŸãƒã‚¤ãƒŠãƒªã¯åå‰ã‚’変更ã—ãŸã†ãˆï¼Œã‚ªãƒªã‚¸ãƒŠ
+ ルã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®å…¥æ‰‹æ³•を明示ã™ã‚‹ï¼Ž
- (d) $B$=$NB>$NG[I[>r7o$r:n<T$H9g0U$9$k!%(B
+ (d) ãã®ä»–ã®é…布æ¡ä»¶ã‚’作者ã¨åˆæ„ã™ã‚‹ï¼Ž
- 4. $BB>$N%W%m%0%i%`$X$N0zMQ$O$$$+$J$kL\E*$G$"$l<+M3$G$9!%$?(B
- $B$@$7!$K\%W%m%0%i%`$K4^$^$l$kB>$N:n<T$K$h$k%3!<%I$O!$$=(B
- $B$l$>$l$N:n<T$N0U8~$K$h$k@)8B$,2C$($i$l$k>l9g$,$"$j$^$9!%(B
+ 4. ä»–ã®ãƒ—ログラムã¸ã®å¼•用ã¯ã„ã‹ãªã‚‹ç›®çš„ã§ã‚れ自由ã§ã™ï¼ŽãŸ
+ ã ã—,本プログラムã«å«ã¾ã‚Œã‚‹ä»–ã®ä½œè€…ã«ã‚ˆã‚‹ã‚³ãƒ¼ãƒ‰ã¯ï¼Œã
+ れãžã‚Œã®ä½œè€…ã®æ„å‘ã«ã‚ˆã‚‹åˆ¶é™ãŒåŠ ãˆã‚‰ã‚Œã‚‹å ´åˆãŒã‚りã¾ã™ï¼Ž
- $B$=$l$i%U%!%$%k$N0lMw$H$=$l$>$l$NG[I[>r7o$J$I$KIU$$$F$O(B
- LEGAL$B%U%!%$%k$r;2>H$7$F$/$@$5$$!%(B
+ ãれらファイルã®ä¸€è¦§ã¨ãれãžã‚Œã®é…布æ¡ä»¶ãªã©ã«ä»˜ã„ã¦ã¯
+ LEGALファイルをå‚ç…§ã—ã¦ãã ã•ã„.
- 5. $BK\%W%m%0%i%`$X$NF~NO$H$J$k%9%/%j%W%H$*$h$S!$K\%W%m%0%i(B
- $B%`$+$i$N=PNO$N8"Mx$OK\%W%m%0%i%`$N:n<T$G$O$J$/!$$=$l$>(B
- $B$l$NF~=PNO$r@8@.$7$??M$KB0$7$^$9!%$^$?!$K\%W%m%0%i%`$K(B
- $BAH$_9~$^$l$k$?$a$N3HD%%i%$%V%i%j$K$D$$$F$bF1MM$G$9!%(B
+ 5. 本プログラムã¸ã®å…¥åŠ›ã¨ãªã‚‹ã‚¹ã‚¯ãƒªãƒ—トãŠã‚ˆã³ï¼Œæœ¬ãƒ—ログラ
+ ムã‹ã‚‰ã®å‡ºåŠ›ã®æ¨©åˆ©ã¯æœ¬ãƒ—ログラムã®ä½œè€…ã§ã¯ãªã,ãれãž
+ れã®å…¥å‡ºåŠ›ã‚’ç”Ÿæˆã—ãŸäººã«å±žã—ã¾ã™ï¼Žã¾ãŸï¼Œæœ¬ãƒ—ログラムã«
+ 組ã¿è¾¼ã¾ã‚Œã‚‹ãŸã‚ã®æ‹¡å¼µãƒ©ã‚¤ãƒ–ラリã«ã¤ã„ã¦ã‚‚åŒæ§˜ã§ã™ï¼Ž
- 6. $BK\%W%m%0%i%`$OL5J]>Z$G$9!%:n<T$OK\%W%m%0%i%`$r%5%]!<%H(B
- $B$9$k0U;V$O$"$j$^$9$,!$%W%m%0%i%`<+?H$N%P%0$"$k$$$OK\%W(B
- $B%m%0%i%`$N<B9T$J$I$+$iH/@8$9$k$$$+$J$kB;32$KBP$7$F$b@U(B
- $BG$$r;}$A$^$;$s!%(B
+ 6. 本プログラムã¯ç„¡ä¿è¨¼ã§ã™ï¼Žä½œè€…ã¯æœ¬ãƒ—ログラムをサãƒãƒ¼ãƒˆ
+ ã™ã‚‹æ„å¿—ã¯ã‚りã¾ã™ãŒï¼Œãƒ—ログラム自身ã®ãƒã‚°ã‚ã‚‹ã„ã¯æœ¬ãƒ—
+ ログラムã®å®Ÿè¡Œãªã©ã‹ã‚‰ç™ºç”Ÿã™ã‚‹ã„ã‹ãªã‚‹æå®³ã«å¯¾ã—ã¦ã‚‚責
+ 任をæŒã¡ã¾ã›ã‚“.
diff --git a/ChangeLog b/ChangeLog
index 151f8b2052..2540307c53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,20637 +1,16191 @@
-Wed Jul 2 18:19:45 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 23 03:44:03 2013 Eric Hodel <drbrain@segment7.net>
- * lib/tmpdir.rb (@@systmpdir): prior LOCAL_APPDATA if possible, and
- should be clean. based on a patch from arton <artonx AT
- yahoo.co.jp> at [ruby-dev:35269]
+ * lib/rubygems: Update to RubyGems master dcce4ff. Important changes
+ in this commit:
-Wed Jul 2 18:13:30 2008 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ Remove automatic detection of gem dependencies files. This prevents a
+ security hole as described in [ruby-core:58490]
- * ext/win32ole/win32ole.c (date2time_str): fix the overflow in
- some situation. [ruby-bugs-20793]
+ Fixed bugs for installing git gems.
-Wed Jul 2 17:38:01 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems: ditto.
- * ext/iconv/iconv.c (iconv_iconv): fixed backport miss.
- [ruby-core:17115]
+Fri Nov 22 22:30:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Tue Jul 1 15:09:37 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_power):
+ Round the result value only if the precision is given.
- * array.c (rb_ary_fill): check if beg is too big.
+Fri Nov 22 17:20:50 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Mon Jun 30 20:34:05 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * transcode.c (str_transcode0): don't scrub invalid chars if
+ str.encode doesn't have explicit invalid: :replace.
+ workaround fix for see #8995
- * string.c (str_buf_cat): check for self concatenation.
+Fri Nov 22 17:11:26 2013 Narihiro Nakamura <authornari@gmail.com>
-Sun Jun 29 21:38:52 2008 Tanaka Akira <akr@fsij.org>
+ * include/ruby/intern.h, internal.h: Expose rb_gc_count().
- * eval.c (rb_obj_respond_to): use RTEST to test the result of
- respond_to? method.
+Fri Nov 22 17:07:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Sun Jun 29 20:40:57 2008 URABE Shyouhei <shyouhei@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.gemspec: version 1.2.2.
- * array.c (rb_ary_fill): (compatibility) do not raise
- ArgumentError on negative length. This behaviour shall change
- in a future release.
+Fri Nov 22 17:04:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Sun Jun 29 20:06:45 2008 Tanaka Akira <akr@fsij.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_data_type):
+ Use RUBY_TYPED_FREE_IMMEDIATELY only if it is available.
- * time.c (time_timeval): fix rounding negative float.
+Fri Nov 22 16:49:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Sun Jun 29 18:35:23 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_power): Round the result value.
+ [Bug #8818] [ruby-core:56802]
- * test/inlinetest.rb (InlineTest.in_progname): workaround for frozen
- $0. [ruby-dev:35261]
+ * test/bigdecimal/test_bigdecimal.rb: Add a test for the above fix.
- * lib/test/unit/ui/console/testrunner.rb (TestRunner#finished): ditto.
+Fri Nov 22 16:25:43 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jun 29 18:35:23 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (heap_set_increment): accept minimum additional page number.
- * ruby.c (set_arg0, ruby_prog_init): freeze $0. a patch from Keita
- Yamaguchi <keita.yamaguchi at gmail.com>.
+ * gc.c (gc_after_sweep): allocate pages to allocate at least
+ RUBY_HEAP_MIN_SLOTS.
+ [Bug #9137]
-Sun Jun 29 18:32:19 2008 Tanaka Akira <akr@fsij.org>
+Fri Nov 22 16:19:52 2013 Narihiro Nakamura <authornari@gmail.com>
- * process.c: include sys/resource.h if HAVE_SYS_RESOURCE_H is defined.
- pointed by TOYOFUKU Chikanobu. [ruby-dev:35258]
+ * include/ruby/intern.h (rb_gc_set_params): Deprecate
+ rb_gc_set_params because it's only used in ruby internal.
-Sun Jun 29 18:25:03 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * internal.h (ruby_gc_set_params): Declare rb_gc_set_params's
+ alias function.
- * variable.c (rb_f_trace_var): should not be allowed at safe level 4.
- a patch from Keita Yamaguchi <keita.yamaguchi at gmail.com>.
+ * gc.c: ditto.
- * eval.c (rb_call0): wrong condition to check insecure method.
- a patch from Keita Yamaguchi <keita.yamaguchi at gmail.com>.
+ * ruby.c: use ruby_gc_set_params.
-Sun Jun 29 18:24:13 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 14:55:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * array.c (rb_ary_fill): not depend on unspecified behavior at integer
- overflow. reported by Vincenzo Iozzo <snagg AT openssl.it>.
+ * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Insert rb_thread_check_ints.
-Sun Jun 29 18:21:23 2008 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Fri Nov 22 14:35:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * ext/win32ole/win32ole.c(ole_invoke): fix memory leak.
- [ruby-bugs-20792]
+ * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Fix the inserting points
+ of RB_GC_GUARDs.
-Sun Jun 29 17:34:11 2008 Akinori MUSHA <knu@iDaemons.org>
+Fri Nov 22 14:31:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * eval.c (PUSH_FRAME, PUSH_CLASS): Add volatile to avoid a
- possible optimization bug on OS X/PPC. This at least makes
- build with gcc -O1 and `make test' pass.
+ * ext/bigdecimal/bigdecimal.c: Fix indentation.
-Sun Jun 29 17:23:51 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 14:03:00 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/rdoc/parsers/parse_rb.rb (RDoc#collect_first_comment): skip
- magic comment.
+ * ext/nkf: merge nkf 2.1.3 2a2f2c5.
-Sun Jun 29 17:21:08 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 12:43:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/stringio/stringio.c (strio_each, strio_readlines): IO#each and
- IO#readlines do not affect $_. [ruby-core:17277]
+ * util.c (ruby_strtod): ignore too long fraction part, which does not
+ affect the result.
-Sun Jun 29 17:18:45 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 12:17:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/stringio/stringio.c (strio_readline, strio_each)
- (strio_readlines): set lastline. [ruby-core:17257]
+ * ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#initialize):
+ initialize of a module should pass arguments to super.
-Sun Jun 29 17:10:30 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Nov 22 12:02:58 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl.h: include winsock.h if USE_WINSOCK2 is not defined.
- a patch from arton <artonx at yahoo.co.jp> in [ruby-dev:35078]
+ * test/ruby/test_settracefunc.rb: Ignore events from other threads.
-Sun Jun 29 17:07:30 2008 wanabe <s.wanabe@gmail.com>
+Fri Nov 22 10:35:57 2013 Koichi Sasada <ko1@atdot.net>
- * util.c (ruby_strtod): ruby_strtod don't allow a trailing
- decimal point like "7.". [ruby-dev:34835] [ruby-dev:35009]
+ * vm.c (ruby_vm_destruct): do not use ruby_xfree() after freeing
+ objspace.
-Sun Jun 29 16:56:57 2008 Akinori MUSHA <knu@iDaemons.org>
+ * gc.c (ruby_mimfree): added. It is similar to ruby_mimmalloc().
- * lib/set.rb (Set#delete_if): Call to_a.
- (SortedSet#delete_if, TC_SortedSet#test_sortedset): Use super to
- yield elements in sorted order; [ruby-core:17144] by Arthur
- Schreiber.
- (SortedSet#each, SortedSet#each, TC_Set#test_each)
- (TC_SortedSet#test_sortedset): Return self; [ruby-dev:35002] by
- Arthur Schreiber.
+ * internal.h: ditto.
-Sun Jun 29 16:49:11 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 22 09:42:35 2013 Zachary Scott <e@zzak.io>
- * eval.c (search_method, remove_method, error_print, rb_alias)
- (rb_eval, rb_rescue2, search_required, Init_eval, rb_thread_create),
- gc.c (rb_source_filename, Init_stack), io.c (rb_io_getline),
- parse.y (rb_id2name, rb_parser_free): suppress warnings.
+ * test/digest/test_digest.rb: Reverse order of assert_equal
+ Reported by @splattael
-Sat Jun 28 19:26:43 2008 URABE Shyouhei <shyouhei@ruby-lang.org>
+Fri Nov 22 09:03:16 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * class.c (clone_method): use rb_copy_node_scope.
- fixed [ruby-list:45102]
- fixed [ruby-core:17393]
+ * gc.c: fix build failure on FreeBSD introduced by r43763.
+ malloc_usable_size() is defined by malloc_np.h on FreeBSD.
-Sat Jun 28 19:25:56 2008 Akinori MUSHA <knu@iDaemons.org>
+ * configure.in: check malloc.h and malloc_np.h.
- * eval.c (rb_copy_node_scope), node.h: Rename from copy_node_scope
- and export.
+Fri Nov 22 08:27:13 2013 Eric Hodel <drbrain@segment7.net>
-Fri Jun 27 17:38:21 2008 Akinori MUSHA <knu@iDaemons.org>
+ * lib/rubygems: Update to RubyGems master 50a8210. Important changes
+ in this commit:
- * ext/zlib/zlib.c (rb_deflate_initialize, Init_zlib): Fix up
- initialize_copy; [ruby-list:45016], [ruby-list:45018].
+ 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.
-Fri Jun 27 17:28:39 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/rubygems: ditto.
- * io.c (rb_open_file, rb_io_s_sysopen): fmode should be unsigned int.
- fixed [ruby-dev:34979]
+Thu Nov 21 22:33:59 2013 Koichi Sasada <ko1@atdot.net>
-Fri Jun 27 17:20:40 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c: RGENGC_CHECK_MODE should be 0.
- * win32/win32.h: include ws2tcpip.h. fixed [ruby-Bugs-20528]
+Thu Nov 21 21:40:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Fri Jun 27 15:57:05 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (VpAlloc): Fix the expr to adjust the size
+ of the digit array.
- * ext/iconv/iconv.c (iconv_iconv): fixed backport miss.
- [ruby-core:17115]
+Thu Nov 21 21:36:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Fri Jun 27 15:57:05 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_sqrt): Fix the precision of
+ the result BigDecimal of sqrt.
+ [Bug #5266] [ruby-dev:44450]
- * ext/iconv/iconv.c (iconv_iconv): fix for length argument and now
- allows range. [ruby-core:17092]
+ * test/bigdecimal/test_bigdecimal.rb: add tests for the above changes.
-Tue Jun 24 15:38:52 2008 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Thu Nov 21 18:49:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/erb.rb (ERB::Compiler::TrimScanner#explicit_trim_line): Fix
- without strscan problems. [ruby_core:17028].
+ * gc.c (vm_xrealloc, vm_xfree): use malloc_usable_size() to obtain old
+ size if available.
- * test/erb/test_erb.rb (TestERBCoreWOStrScan): Add test class for
- without strscan.
+Thu Nov 21 18:47:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Jun 22 00:09:20 2008 Akinori MUSHA <knu@iDaemons.org>
+ * lib/delegate.rb (SimpleDelegator#__getobj__): target object must be set.
- * lib/delegate.rb (DelegateClass, Delegator#respond_to?):
- respond_to? should now take optional second argument; submitted
- by Jeremy Kemper <jeremy at bitsweat.net> in [ruby-core:17045].
+ * lib/delegate.rb (DelegateClass#__getobj__): ditto.
-Fri Jun 20 18:24:18 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Nov 21 18:28:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_str_buf_append): should infect.
+ * lib/tempfile.rb (Tempfile#initialize): use class method to get rid
+ of warnings when $VERBOSE.
-Fri Jun 20 15:52:30 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Nov 21 17:43:29 2013 Koichi Sasada <ko1@atdot.net>
- * array.c (rb_ary_store, rb_ary_splice): not depend on unspecified
- behavior at integer overflow.
+ * gc.c: rename initial_xxx variables to gc_params.xxx.
+ They are not only used initial values.
- * string.c (str_buf_cat): ditto.
+ Chikanaga-san: Congratulations on RubyPrize!
-Wed Jun 18 22:25:10 2008 URABE Shyouhei <shyouhei@ruby-lang.org>
+Thu Nov 21 17:16:00 2013 Koichi Sasada <ko1@atdot.net>
- * array.c (ary_new, rb_ary_initialize, rb_ary_store,
- rb_ary_aplice, rb_ary_times): integer overflows should be
- checked. based on patches from Drew Yao <ayao at apple.com>
- fixed CVE-2008-2726
+ * 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)
- * string.c (rb_str_buf_append): fixed unsafe use of alloca,
- which led memory corruption. based on a patch from Drew Yao
- <ayao at apple.com> fixed CVE-2008-2726
+ 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)
- * sprintf.c (rb_str_format): backported from trunk.
+ * gc.c (initial_malloc_limit): rename to initial_malloc_limit_min.
- * intern.h: ditto.
+Thu Nov 21 16:51:34 2013 Zachary Scott <e@zzak.io>
-Fri Jun 20 01:40:21 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/digest/bubblebabble/bubblebabble.c: Teach RDoc digest/bubblebabble
- * array.c (rb_ary_equal, rb_ary_eql, rb_ary_hash, rb_ary_cmp):
- Make Array#eql?, #hash, #== and #<=> use rb_protect_inspect() and
- handle recursive data properly. [ruby-dev:35181]
+Thu Nov 21 16:50:16 2013 Zachary Scott <e@zzak.io>
-Wed Jun 18 15:20:21 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/digest/test_digest.rb: Add more tests for digest/bubblebabble
- * marshal.c (w_object, marshal_dump, r_object0, marshal_load): search
- public methods only. [ruby-core:17283]
+Thu Nov 21 16:32:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * object.c (convert_type): ditto.
+ * lib/delegate.rb (Delegator#method_missing): try private methods defined in
+ Kernel after the target. [Fixes GH-449]
- * lib/singleton.rb (Singleton#_dump): conversion method should be
- public.
+Thu Nov 21 16:25:08 2013 Akinori MUSHA <knu@iDaemons.org>
-Wed Jun 18 13:19:55 2008 URABE Shyouhei <shyouhei@ruby-lang.org>
+ * test/uri/test_generic.rb (URI#test_merge): Test uri + URI(path)
+ in addition to uri + path.
- * file.c: fixes to compile on mswin32. Patch from U. Nakamura
- <usa at garbagecollect.jp>. [ruby-dev:35127]
+Thu Nov 21 15:36:08 2013 Zachary Scott <e@zzak.io>
-Tue Jun 17 22:16:44 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/openssl/lib/openssl/buffering.rb: [DOC] Fix HEREDOC comment for
+ OpenSSL::Buffering which breaks overview because of RDoc bug
- * configure.in (LIBPATHFLAG, RPATHFLAG): no needs to be quoted,
- it is done by libpathflag in mkmf.rb.
+Thu Nov 21 14:46:57 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Jun 16 15:43:07 2008 Yukihiro Matsumoto <matz@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.
- * proc.c (proc_dup): should copy safe_level from src proc
- properly. a patch from Keita Yamaguchi
- <keita.yamaguchi at gmail.com>
+ * signal.c (check_stack_overflow, CHECK_STACK_OVERFLOW): now defined on
+ Windows, too.
-Sun Jun 15 23:31:10 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread_win32.c (ruby_stack_overflowed_p): ditto.
- * ext/zlib/extconf.rb: search zlib1, and regard mswin32 later than VC6
- as WIN32. [ruby-core:16984]
+Thu Nov 21 14:18:24 2013 Zachary Scott <e@zzak.io>
-Sun Jun 15 23:28:15 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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
- * marshal.c (w_object, marshal_dump, r_object0, marshal_load): search
- private methods too. [ruby-dev:34671]
+Thu Nov 21 14:06:02 2013 Koichi Sasada <ko1@atdot.net>
- * object.c (convert_type): ditto.
+ * gc.c (gc_marks_check): do not dump all refs.
-Sun Jun 15 23:26:50 2008 Akinori MUSHA <knu@iDaemons.org>
+ * gc.c (allrefs_dump_i): fix output format.
- * numeric.c (flo_divmod): Revert the behavior change; do not
- suppress an exception when div is NaN or Inf. [ruby-dev:34857]
+Thu Nov 21 13:43:07 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jun 15 23:24:32 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+ * 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.
- * file.c (BUFCHECK): wrong condition. [ruby-core:16921]
+ [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.
- * file.c (file_expand_buf): shouldn't use buflen for length of string.
+ [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.)
-Sun Jun 15 23:21:22 2008 Akinori MUSHA <knu@iDaemons.org>
+ [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".
- * marshal.c (r_object0, Init_marshal): Fix the garbled s_call
- definition; fixes [ruby-dev:34843].
+ * gc.c (init_mark_stack): do not use push_mark_stack_chunk() at init.
+ This pre-allocation causes failure on is_mark_stask_empty()
+ without any pushing.
-Sun Jun 15 23:19:53 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Nov 21 13:40:20 2013 Zachary Scott <e@zzak.io>
- * object.c (rb_cstr_to_dbl): should clear errno before calling
- strtod(3). [ruby-dev:34834]
+ * lib/observer.rb: [DOC] Clarify default observer method.
+ By @edward [Fixes GH-450] https://github.com/ruby/ruby/pull/450
-Sun Jun 15 23:18:15 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Nov 21 13:32:53 2013 Zachary Scott <e@zzak.io>
- * marshal.c (marshal_load): should initialize arg.data used for
- reentrant check. [ruby-dev:34837]
+ * 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
-Sun Jun 15 23:13:23 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Nov 21 10:45:22 2013 Zachary Scott <e@zzak.io>
- * parse.y (top_local_setup): fixed memory leak bug based on a
- patch from Roger Pack <rogerpack2005 at gmail.com> in
- [ruby-core:16610].
-Sun Jun 15 23:16:26 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/openssl/lib/openssl/buffering.rb: Remove unused arguments from
+ OpenSSL::Buffering.new [Fixes GH-445]
- * marshal.c (reentrant_check): check reentrance via callcc.
- [ruby-dev:34802]
+Thu Nov 21 10:30:47 2013 Zachary Scott <e@zzak.io>
+ * test/digest/test_digest.rb: Add test for Digest::SHA256.bubblebabble
-Sun Jun 15 23:09:00 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Nov 20 20:54:01 2013 Masaya Tarui <tarui@ruby-lang.org>
- * sprintf.c (rb_f_sprintf): fixed SEGV on win32 with "% 0e" % 1.0/0.0.
+ * tool/instruction.rb : fix typo.
-Sun Jun 15 23:07:46 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Nov 20 19:45:22 2013 Tanaka Akira <akr@fsij.org>
- * process.c (rb_f_system): set last_status when status == -1 because
- there is no path to set it on win32. this patch is derived from
- [ruby-core:16787], submitted by Luis Lavena <luislavena at gmail.com>
+ * random.c (rand_init): Make it possible to specify arbitrary array
+ for init_genrand().
-Sun Jun 15 23:02:12 2008 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Wed Nov 20 17:34:13 2013 Koichi Sasada <ko1@atdot.net>
- * lib/webrick/httpservlet/filehandler.rb: should normalize path
- name in path_info to prevent script disclosure vulnerability on
- DOSISH filesystems. (fix: CVE-2008-1891)
- Note: NTFS/FAT filesystem should not be published by the platforms
- other than Windows. Pathname interpretation (including short
- filename) is less than perfect.
+ * 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()).
- * lib/webrick/httpservlet/abstract.rb
- (WEBrick::HTTPServlet::AbstracServlet#redirect_to_directory_uri):
- should escape the value of Location: header.
+Wed Nov 20 11:46:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/webrick/httpservlet/cgi_runner.rb: accept interpreter
- command line arguments.
+ * 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.
-Sun Jun 15 23:02:12 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Nov 20 01:39:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (file_expand_path): support for alternative data stream
- and ignored trailing garbages of NTFS.
+ * lib/rdoc/constant.rb (RDoc::Constant#documented?): workaround for
+ NoMethodError when the original of alias is not found.
- * file.c (rb_file_s_basename): ditto.
+Tue Nov 19 23:38:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (rb_file_s_extname): ditto.
+ * configure.in (--with-os-version-style): option to transform target
+ OS version string.
-Sun Jun 15 22:53:20 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Nov 19 21:27:33 2013 Tanaka Akira <akr@fsij.org>
- * string.c (rb_str_cat): fixed buffer overrun reported by
- Christopher Thompson <cthompson at nexopia.com> in [ruby-core:16746]
+ * test/net/http/utils.rb (spawn_server): Specify zero for port to
+ avoid reusing an allocated port.
-Sun Jun 15 22:51:24 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/net/http/test_http.rb: Don't specify port here.
- * eval.c (is_defined): add NODE_OP_ASGN_{OR,AND}. "defined?(a||=1)"
- should not operate assignment. [ruby-dev:34645]
+ * test/net/http/test_https.rb: Ditto.
-Sun Jun 15 22:49:45 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Nov 19 18:52:10 2013 Koichi Sasada <ko1@atdot.net>
- * win32/win32.c (rb_w32_select): backport from trunk.
- [ruby-talk:300743]
+ * gc.c (heap_is_swept_object): use heap_page::before_sweep flag.
-Sun Jun 15 22:48:26 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 19 18:49:32 2013 Koichi Sasada <ko1@atdot.net>
- * lib/delegate.rb (SimpleDelegator::dup): removed needless argument.
- [ruby-list:44910]
+ * gc.c (rb_objspace_reachable_objects_from_root): do major marking.
- * lib/delegate.rb (clone, dup): keep relationship with the target
- object.
+Tue Nov 19 18:45:40 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jun 15 22:46:34 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * util.c (ruby_strtod): backported from 1.9. a patch from Satoshi
- Nakagawa <psychs at limechat.net> in [ruby-dev:34625].
- fixed: [ruby-dev:34623]
+ * string.c (rb_fstring): use rb_gc_resurrect.
-Sun Jun 15 22:44:25 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * internal.h: add decl.
- * struct.c (rb_struct_s_def): to_str should be called only once.
- [ruby-core:16647]
+Tue Nov 19 09:47:02 2013 Eric Hodel <drbrain@segment7.net>
-Sun Jun 15 22:42:54 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rdoc: Update to RDoc master a1195ce. Changes include:
- * ext/zlib/zlib.c (gzreader_gets): may cause infinite loop.
- a patch from Kouya <kouyataifu4 at gmail.com> in
- [ruby-reference-manual:762].
+ Improved accessibility of the main sidebar navigation.
-Sun Jun 15 22:34:09 2008 James Edward Gray II <jeg2@ruby-lang.org>
+ Fixed handling of regexp options in HTML source highlighting.
- Merged 16241 from trunk.
+ * test/rdoc: ditto.
- * lib/net/telnet.rb: Fixing a bug where line endings would not be properly
- escaped when the two character ending was broken up into separate TCP
- packets. Issue reported and patched by Brian Candler.
+Tue Nov 19 09:33:52 2013 Eric Hodel <drbrain@segment7.net>
-Sun Jun 15 22:31:47 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 6a3d9f9. Changes include:
- * re.c (rb_reg_search): use local variable. a patch from wanabe
- <s.wanabe AT gmail.com> in [ruby-dev:34537]. [ruby-dev:34492]
+ Compatibly renamed Gem::DependencyResolver to Gem::Resolver.
-Sun Jun 15 22:20:45 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ Added support for git gems in gem.deps.rb and Gemfile.
- * sprintf.c (rb_f_sprintf): should protect temporary string from
- GC. [ruby-dev:34480]
+ Fixed resolver bugs.
-Sun Jun 15 22:18:30 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/rubygems: ditto.
- * regex.c (re_search): string might be NULL. [ruby-core:16478]
+ * lib/rubygems/LICENSE.txt: Updated to license from RubyGems trunk.
+ [ruby-trunk - Bug #9086]
-Sun Jun 15 22:16:21 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+ * lib/rubygems/commands/which_command.rb: RubyGems now indicates
+ failure when any file is missing. [ruby-trunk - Bug #9004]
- * time.c (rb_strftime): check errno to detect strftime(3)'s error.
- this is workaround for recent version of MSVCRT.
- [ruby-dev:34456]
+ * 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]
-Sun Jun 15 22:12:07 2008 Akinori MUSHA <knu@iDaemons.org>
- * lib/yaml/types.rb: Likewise, pass self to YAML::quick_emit;
- merged from 1.9.
+Tue Nov 19 07:21:56 2013 Tanaka Akira <akr@fsij.org>
- * lib/yaml.rb (quick_emit): use combination of object_id and hash to
- identify repeated object references, since GC will reuse memory of
- objects during output of YAML. [ruby-Bugs-8548] [ruby-Bugs-3698];
- merged from 1.9.
+ * configure.in (LOCALTIME_OVERFLOW_PROBLEM): Define it for cross
+ compiling.
+ [ruby-core:58391] [Bug #9119] Reported by Luis Lavena.
+ Analyzed by Heesob Park.
-Sun Jun 15 22:09:02 2008 Akinori MUSHA <knu@iDaemons.org>
+Tue Nov 19 05:55:05 2013 Eric Hodel <drbrain@segment7.net>
- * ext/syck/rubyext.c: Node#value defined twice.
+ * lib/rdoc/rubygems_hook.rb: Remove debugging puts committed by
+ accident.
- * lib/yaml/: several method redefinitions causing warnings.
+Mon Nov 18 22:47:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Jun 15 22:04:44 2008 Yukihiro Matsumoto <matz@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]
- * marshal.c (w_object): add volatile to avoid potential GC bug. a
- patch from Tomoyuki Chikanaga <chikanag at nippon-control-system.co.jp>
- in [ruby-dev:34311].
+ * vm_eval.c (rb_catch_obj): now th->tag points previous tag until
+ TH_EXEC_TAG().
-Sun Jun 15 21:59:22 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * thread_pthread.c (ruby_init_stack): set stack_start properly by
+ get_main_stack() if possible.
- * re.c (rb_reg_quote): should always copy the quoting string.
- [ruby-core:16235]
+Mon Nov 18 22:45:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Jun 15 21:27:46 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * eval_jump.c (rb_exec_end_proc): unlink and free procs data before
+ calling for each procs. [Bug #9110]
- * lib/net/pop.rb (Net::POP3::do_finish): clear @n_mails and
- @n_bytes as well. [ruby-core:16144]
+Sun Nov 17 06:33:32 2013 Shota Fukumori <her@sorah.jp>
-Sun Jun 15 21:08:10 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: Use $LIBS for base of $SOLIBS, also in darwin.
+ By this fix, environment that libgmp is located in $LIBS can build
+ ruby.
- * lib/resolv.rb (Resolv::Config.default_config_hash): requires
- win32/resolv to use Win32::Resolv. [ruby-dev:34138]
+Sun Nov 17 01:56:32 2013 Tanaka Akira <akr@fsij.org>
-Sun Jun 15 20:54:07 2008 Akinori MUSHA <knu@iDaemons.org>
+ * thread_pthread.c (rb_thread_create_timer_thread): Show error
+ message instead of error number.
+ (thread_create_core): Ditto.
- * parse.y (yycompile): Always prepare a new array for each file's
- SCRIPT_LINES__ storage, instead of appending source lines every
- time a file is re-loaded; submitted by Rocky Bernstein in
- #18517.
+ * cont.c (fiber_machine_stack_alloc): Ditto.
-Sun Jun 15 20:30:01 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Nov 16 18:28:08 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/resolv.rb (Resolv::Hosts): should not use win32/resolv on cygwin.
- [ruby-dev:29945], [ruby-dev:34095]
+ * lib/rexml/parsers/ultralightparser.rb
+ (REXML::Parsers::UltraLightParser#parse): Fix wrong :start_doctype
+ position.
+ [Bug #9061] [ruby-dev:47778]
+ Patch by Ippei Obayashi. Thanks!!!
- * lib/win32/registry.rb (Win32::Registry.expand_environ): try upcased
- name too for cygwin. [ruby-dev:29945]
+ * test/rexml/parser/test_ultra_light.rb: Add a test for this case.
- * lib/win32/resolv.rb (Win32::Resolv.get_hosts_path): use expand_path.
+Sat Nov 16 02:13:56 2013 Masaya Tarui <tarui@ruby-lang.org>
-Sun Jun 15 20:27:59 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * cont.c : Introduce ensure rollback mechanism. Please see below.
- * misc/ruby-mode.el (ruby-mode): should use `run-mode-hooks' instead
- of calling `run-hooks' directly to run the mode hook. patch from
- Chiyuan Zhang <pluskid AT gmail.com> in [ruby-core:15915]
+ * internal.h (ruby_register_rollback_func_for_ensure): catch up above change.
+ Add rollback mechanism API.
-Sun Jun 15 20:20:59 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_core.h (typedef struct rb_vm_struct): catch up above change.
+ Introduce ensure-rollback relation table.
- * numeric.c (fix_coerce): try conversion before type check.
- [ruby-core:15838]
+ * vm_core.h (typedef struct rb_thread_struct): catch up above change.
+ Introduce ensure stack.
-Sun Jun 15 19:56:53 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * eval.c (rb_ensure): catch up above change.
+ Introduce ensure stack.
- * bignum.c (BIGZEROP): fix for longer Bignum zeros. [ruby-Bugs-17454]
+ * hash.c : New function for rollback ensure, and register it to
+ ensure-rollback relation table. [ruby-dev:47803] [Bug #9105]
-Sun Jun 15 19:54:21 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ 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.
- * bignum.c (big2str_find_n1): check integer overflow.
+ Current API is unstable, and only internal use.
-Sun Jun 15 19:52:20 2008 Tanaka Akira <akr@fsij.org>
+ 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.
- * gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed. [ruby-dev:33857]
+Sat Nov 16 00:18:36 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sun Jun 15 19:50:20 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * eval_jump.c (rb_exec_end_proc): fix double free or corruption error
+ when reentering by callcc. [ruby-core:58329] [Bug #9110]
- * ext/readline/readline.c (readline_event): prevent polling. based on
- a patch from error errorsson in [ruby-Bugs-17675].
+ * test/ruby/test_beginendblock.rb: test for above.
-Sun Jun 15 19:44:52 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 15 01:06:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (yycompile): clear ruby_eval_tree_begin if parse failed.
+ * 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]
-Sun Jun 15 19:44:52 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/objspace/test_objspace.rb (TestObjSpace#dump_my_heap_please):
+ remove temporary output file.
- * parse.y (yycompile): clear ruby_eval_tree_begin too before parse.
+Thu Nov 14 23:39:00 2013 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
-Sun Jun 15 19:22:21 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/lib/bigdecimal/util.rb: [DOC] remove example of
+ Rational#to_d without argument. [Bug #8958]
- * ext/pty/lib/expect.rb (IO#expect): check if peer is closed.
- [ruby-Bugs-17940]
+Thu Nov 14 20:24:15 2013 Naohisa Goto <ngotogenome@gmail.com>
-Sun Jun 15 19:20:13 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ruby_atomic.h (ATOMIC_SIZE_CAS): fix compile error on Solaris
+ since r43460.
- * ext/iconv/iconv.c (iconv_convert): check upper bound. a patch from
- Daniel Luz at [ruby-Bugs-17910].
+Thu Nov 14 19:53:00 2013 Tanaka Akira <akr@fsij.org>
-Sun Jun 15 19:13:46 2008 Nobuyoshi Nakada <nobu@ruby-lang.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.
- * configure.in (ftruncate): check if available.
+Thu Nov 14 11:33:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (rb_file_truncate): check if ftruncate instead of truncate.
+ * hash.c (foreach_safe_i, hash_foreach_iter): deal with error detected
+ by ST_CHECK.
-Sun Jun 15 19:02:46 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * st.c (st_foreach_check): call with non-error argument in normal case.
- * configure.in (sigsetmask): check when signal semantics is not POSIX.
+Thu Nov 14 02:37:14 2013 Zachary Scott <e@zzak.io>
- * signal.c (USE_TRAP_MASK): set true if sigprocmask or sigsetmask is
- available.
-
-Sat Jun 14 16:49:41 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/timeout.rb (Timeout::timeout): made sensitive to location on the
- stack. [ruby-core:15458]
-
-Fri Jun 13 13:14:31 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * ext/dl/ptr.c (dlmem_each_i): typo fixed. a patch from IKOMA
-Sun Jun 15 21:06:12 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * class.c (clone_method): should copy cref as well.
- [ruby-core:15833]
-
- Yoshiki <ikoma@mb.i-chubu.ne.jp> in [ruby-dev:33776].
-
-Fri Jun 13 13:13:23 2008 URABE Shyouhei <shyouhei@ice.uec.ac.jp>
-
- * gc.c (rb_newobj): prohibit call of rb_newobj() during gc.
- Submitted by Sylvain Joyeux [ruby-core:12099].
-
- * ext/dl/ptr.c: do not use LONG2NUM() inside dlptr_free().
- Slightly modified fix bassed on a patch by Sylvain Joyeux
- [ruby-core:12099] [ ruby-bugs-11859 ] [ ruby-bugs-11882 ]
- [ ruby-patches-13151 ].
-
-Fri Jun 13 12:10:13 2008 NARUSE, Yui <naruse@ruby-lang.org>
-
- * lib/benchmark.rb (Job::Benchmark#item): fix typo.
-
-Fri Jun 13 12:06:17 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for more
- precision. [ruby-talk:290296]
-
- * ext/bigdecimal/bigdecimal.c (BASE_FIG): made constant.
-
- * ext/bigdecimal/extconf.rb: ditto. [ruby-dev:33658]
-
-Fri Jun 13 12:01:57 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/irb.rb (IRB::Irb::eval_input): rescues Interrupt and other than
- SystemExit and SignalException. [ruby-core:15359]
-
-Fri Jun 13 11:57:46 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/benchmark.rb (Benchmark::realtime): make Benchmark#realtime
- a bit faster. a patch from Alexander Dymo <dymo@ukrpost.ua> in
- [ruby-core:15337].
-
-Fri Jun 13 11:50:59 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (rb_open_file): should check NUL in path.
- <http://www.rubyist.net/~matz/20080125.html#c01>.
-
- * io.c (rb_io_s_popen): ditto.
-
- * io.c (rb_io_reopen): ditto.
-
- * io.c (next_argv): ditto.
-
- * io.c (rb_io_s_foreach): ditto.
-
- * io.c (rb_io_s_readlines): ditto.
-
- * io.c (rb_io_s_read): ditto.
-
-Wed Jun 11 15:23:13 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/uri/generic.rb (URI::Generic::inspect): use Kernel#to_s instead
- object_id with printf. [ruby-dev:33347]
-
-Wed Jun 11 15:00:55 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * configure.in: Remove wrong assumptions about Cygwin. a patch from
- Corinna Vinschen in [ruby-Bugs-17018].
-
-Mon Jun 9 18:09:20 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (eval): check if backtrace is empty. [ruby-core:15040]
-
-Sun Jun 8 06:08:26 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_define_alloc_func, rb_undef_alloc_func): should
- define/undef on a signleton class. [ruby-core:09959]
-
-Sun Jun 8 06:04:41 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * time.c (time_arg): use converted object. [ruby-core:14759]
-
-Sun Jun 8 06:02:11 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * io.c (fptr_finalize): clear errno first. [ruby-talk:284492]
-
-Sun Jun 8 05:59:36 2008 Tadayoshi Funaba <tadf@dotrb.org>
-
- * lib/date.rb: don't freeze nil even if 1.8 will not be aware of
- the issue. [ruby-dev:32677]
-
-Sun Jun 8 05:54:44 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * configure.in (TIMEZONE_VOID): check whether timezone requires zero
- arguments. [ruby-dev:32631]
-
-Sun Jun 8 05:37:10 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (f_rest_arg): check if duplicated. [ruby-core:14140]
-
-Sun Jun 8 05:32:45 2008 Tanaka Akira <akr@fsij.org>
-
- * gc.c (stack_end_address): use local variable address instead of
- __builtin_frame_address(0) to avoid SEGV on SunOS 5.11 on x86 with
- gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802).
-
-Sun Jun 8 05:24:19 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * configure.in (RUBY_CHECK_VARTYPE): check if a variable is defined
- and its type.
-
- * configure.in (timezone, altzone): check for recent cygwin.
-
- * missing/strftime.c (strftime): fix for timezone. [ruby-dev:32536]
-
- * lib/mkmf.rb (try_var): should fail for functions.
-
- * ext/readline/extconf.rb: should use have_func for functions instead
- of have_var.
-
-Sun Jun 8 05:08:35 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/cgi.rb (read_multipart): exclude blanks from header values.
- [ruby-list:44327]
-
-Sun Jun 8 05:02:25 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bignum.c (rb_cstr_to_inum): trailing spaces may exist at sqeezing
- preceeding 0s. [ruby-core:13873]
-
-Sun Jun 8 04:58:05 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (error_print): put newline unless multiple line message ends
- with a newline. [ruby-dev:32429]
-
-Sun Jun 8 04:55:26 2008 James Edward Gray II <jeg2@ruby-lang.org>
-
- Merged 14070 from trunk.
-
- * lib/xmlrpc/server.rb (XMLRPC::Server#server): Improve signal handling so
- pressing control-c in the controlling terminal or sending SIGTERM stops
- the XML-RPC server.
-
-Sun Jun 8 04:49:43 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (newline_node): set line from outermost node before removing
- NODE_BEGIN. [ruby-dev:32406]
-
-Sun Jun 8 04:37:34 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (stmt): remove unnecessary NODE_BEGIN. [ruby-core:13814]
-
-Sun Jun 8 04:16:35 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_alias): do not call hook functions until initialization
- finishes. [ruby-talk:279538]
-
-Sun Jun 8 04:14:16 2008 Masaki Suketa <masaki.suketa@nifty.ne.jp>
-
- * ext/win32ole/win32ole.c (ole_invoke): bug fix. [ruby-talk:279100]
-
-Sun Jun 8 03:59:31 2008 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/curses/extconf.rb: check macro if cannot find func.
- [ruby-list:44224]
-
-Sun Jun 8 03:52:53 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/cgi/session.rb (CGI::Session::FileStore::restore): use
- lockfile for exclusive locks. a patch from <tommy AT tmtm.org>.
- [ruby-dev:32296]
-
-Sun Jun 8 03:49:15 2008 Tanaka Akira <akr@fsij.org>
-
- * missing/isinf.c (isinf): don't define if the macro is defined.
-
-Sun Jun 8 03:42:10 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * numeric.c (round): fallback definition.
-
- * numeric.c (flo_divmod, flo_round): use round() always.
- [ruby-dev:32269]
-
-Sun Jun 8 03:42:10 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * numeric.c (flodivmod): work around for infinity.
-
- * numeric.c (flo_divmod): work around for platforms have no round().
- [ruby-dev:32247]
-
-Sun Jun 8 03:42:10 2008 URABE Shyouhei <shyouhei@ice.uec.ac.jp>
-
- * numeric.c (flo_divmod): round to the nearest integer.
- [ ruby-Bugs-14540 ]
-
-Sun Jun 8 03:28:53 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/rexml/encodings/SHIFT-JIS.rb (REXML::Encoding): place -x for
- nkf conversion. a patch from <moonwolf AT moonwolf.com>.
- [ruby-dev:32183]
-
-Sun Jun 8 03:07:19 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/optparse.rb (OptionParser::Switch::summarize): fix for long form
- option with very long argument. a patch from Kobayashi Noritada
- <nori1 AT dolphin.c.u-tokyo.ac.jp> in [ruby-list:44179].
-
-Sun Jun 8 03:04:38 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * numeric.c (fix_pow): returns infinity for 0**-1. [ruby-dev:32084]
-
-Sun Jun 8 02:58:19 2008 James Edward Gray II <jeg2@ruby-lang.org>
-
- Merged 13781 from trunk.
-
- * lib/net/telnet.rb (Net::Telnet#login): Allowing "passphrase" in
- addition to "password" for Telnet login prompts. [ruby-Bugs-10746]
-
-Wed Oct 25 06:46:21 2007 James Edward Gray II <jeg2@ruby-lang.org>
-
- Merged 13779 from trunk.
-
- * lib/net/telnet.rb (Net::Telnet#login): Making the password prompt
- pattern case insensitive. [ruby-Bugs-10746]
-
-Sun Jun 8 02:55:19 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * io.c (rb_io_tell, rb_io_seek): check errno too. [ruby-dev:32093]
-
-Sun Jun 8 01:53:50 2008 James Edward Gray II <jeg2@ruby-lang.org>
-
- Merged 13767, 13768, 13769, and 13770 from trunk.
-
- * lib/xmlrpc/parser.rb (XMLRPC::Convert::dateTime): Fixing a bug that
- caused time zone conversion to fail for some ISO 8601 date formats.
- [ruby-Bugs-12677]
-
- * lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Explicitly start
- the HTTP connection to support keepalive requests. [ruby-Bugs-9353]
-
- * lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Improving the error
- message for Content-Type check failures. [ruby-core:12163]
-
- * lib/xmlrpc/utils.rb (XMLRPC::ParseContentType#parse_content_type):
- Making Content-Type checks case insensitive. [ruby-Bugs-3367]
-
-Sun Jun 8 01:50:07 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * marshal.c (r_bytes0): refined length check. [ruby-dev:32059]
-
-Sun Jun 8 01:50:07 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * marshal.c (r_bytes0): check if source has enough data.
- [ruby-dev:32054]
-
-Sun Jun 8 01:41:19 2008 Tanaka Akira <akr@fsij.org>
-
- * ext/socket/socket.c (s_accept_nonblock): make accepted fd
- nonblocking. [ruby-talk:274079]
-
-Sun Jun 8 01:36:26 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * configure.in (AC_SYS_LARGEFILE): keep results also in command
- options, to vail out of mismatch. [ruby-list:44114]
-
- * mkconfig.rb, lib/mkmf.rb (configuration): add DEFS.
-
-Sun Jun 8 01:31:17 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * win32/mkexports.rb: deal with __fastcall name decorations.
- [ruby-list:44111]
-
-Sun Jun 8 01:27:06 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * {bcc,win}32/mkexports.rb: explicit data. [ruby-list:44108]
-
-Sun Jun 8 01:15:50 2008 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/net/http.rb, lib/open-uri.rb: remove
- Net::HTTP#enable_post_connection_check. [ruby-dev:31960]
-
- * lib/net/imap.rb: hostname should be verified against server's
- indentity as persented in the server's certificate. [ruby-dev:31960]
-
- * ext/openssl/lib/net/telnets.rb, ext/openssl/lib/net/ftptls.rb: ditto.
-
-Thu Jun 5 16:21:16 2008 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * win32/win32.c (make_cmdvector): adjust escaped successive
- double-quote handling. (merge from trunk)
-
-Thu Jun 5 12:26:45 2008 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * win32/win32.c (init_env): initialize HOME and USER environment
- variables unless set. [ruby-core:12328] (merge from trunk)
-
- * win32/win32.c (NtInitialize, getlogin): ditto.
-
- * configure.in, win32/Makefile.sub (LIBS): need to link shell32
- library for SH* functions on mswin32 and mingw32.
-
-Thu Jun 5 12:22:28 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * gc.c (id2ref): valid id should not refer T_VALUE nor T_ICLASS.
- [ruby-dev:31911]
-
-Wed Jun 4 16:41:19 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * Makefile.in (ext/extinit.o): use $(OUTFLAG) as well as other
- objects. [ruby-Bugs-14228]
-
-Tue Jun 3 16:15:27 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (yyerror): limit error message length. [ruby-dev:31848]
-
- * regex.c (re_mbc_startpos): separated from re_adjust_startpos.
-
-Tue Jun 3 15:45:00 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * gc.c (os_obj_of, os_each_obj): hide objects to be finalized.
- [ruby-dev:31810]
-
-Wed Jun 4 19:16:40 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (remove_method): should not remove undef place holder.
- [ruby-dev:31817]
-
-Tue Jun 3 15:22:47 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * process.c (struct rb_exec_arg): proc should be a VALUE.
-
- * process.c (rb_f_exec): suppress a warning.
-
- * process.c (rb_detach_process): cast for the platforms where size of
- pointer differs from size of int.
-
- * process.c (rb_f_exec, rb_f_system): should not exceptions after
- fork. [ruby-core:08262]
-
-Wed May 21 01:32:56 2008 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/httpservlet/filehandler.rb: should normalize path
- name in path_info to prevent script disclosure vulnerability on
- DOSISH filesystems. (fix: CVE-2008-1891)
- Note: NTFS/FAT filesystem should not be published by the platforms
- other than Windows. Pathname interpretation (including short
- filename) is less than perfect.
-
- * lib/webrick/httpservlet/abstract.rb
- (WEBrick::HTTPServlet::AbstracServlet#redirect_to_directory_uri):
- should escape the value of Location: header.
-
- * lib/webrick/httpservlet/cgi_runner.rb: accept interpreter
- command line arguments.
-
-Sun May 18 01:57:44 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * file.c (isdirsep): backslash is valid path separator on cygwin too.
- backported from 1.8 HEAD.
-
-Sat May 17 23:53:57 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * file.c (file_expand_path): fix for short file name on Cygwin.
-
-Sat May 17 23:50:29 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * file.c (OpenFile): prevent conflict on Windows.
-
- * file.c (USE_NTFS): fixed merge miss.
-
-Sat May 17 12:36:46 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * file.c (file_expand_path): rb_str_set_len is not backported.
-
-Sat May 17 12:15:48 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * file.c (file_expand_path): support for alternative data stream
- and ignored trailing garbages of NTFS.
-
- * file.c (rb_file_s_basename): ditto.
-
- * file.c (rb_file_s_extname): ditto.
-
-Mon Mar 3 23:34:13 2008 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/httpservlet/filehandler.rb: should normalize path
- separators in path_info to prevent directory traversal attacks
- on DOSISH platforms.
- reported by Digital Security Research Group [DSECRG-08-026].
-
- * lib/webrick/httpservlet/filehandler.rb: pathnames which have
- not to be published should be checked case-insensitively.
-
-Mon Dec 3 08:13:52 2007 Kouhei Sutou <kou@cozmixng.org>
-
- * test/rss/test_taxonomy.rb, test/rss/test_parser_1.0.rb,
- test/rss/test_image.rb, test/rss/rss-testcase.rb: ensured
- declaring XML namespaces.
-
-Sun Sep 23 21:57:25 2007 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/net/http.rb: an SSL verification (the server hostname should
- be matched with its certificate's commonName) is added.
- this verification can be skipped by
- "Net::HTTP#enable_post_connection_check=(false)".
- suggested by Chris Clark <cclark at isecpartners.com>
-
- * lib/net/open-uri.rb: use Net::HTTP#enable_post_connection_check to
- perform SSL post connection check.
-
- * ext/openssl/lib/openssl/ssl.c
- (OpenSSL::SSL::SSLSocket#post_connection_check): refine error message.
-
-Sun Sep 23 07:49:49 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c, intern.h, ext/thread/thread.c: should not free queue while
- any live threads are waiting. [ruby-dev:30653]
-
-Sun Sep 23 06:05:35 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/stringio/stringio.c (strio_init): separate from strio_initialize
- to share with strio_reopen properly. [ruby-Bugs-13919]
-
-Sun Sep 23 05:42:35 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * lib/rdoc/options.rb (Options::check_diagram): dot -V output
- changed. [ ruby-Bugs-11978 ], Thanks Florian Frank.
-
-Wed Sep 19 11:13:07 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * bignum.c (bigtrunc): RBIGNUM(x)->len may be zero. out of bound
- access. [ruby-dev:31404]
-
-Mon Sep 17 05:24:13 2007 Sylvain Joyeux <sylvain.joyeux@m4x.org>
-
- * ext/thread/thread.c (lock_mutex): should take care of threads
- not waiting any longer; there cases of a thread raising
- exceptions. [ ruby-Bugs-11901 ]
-
- * test/thread/test_thread.rb (test_mutex_exception_handling):
- test for above.
-
-Mon Sep 17 05:01:55 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * runruby.rb: fix incomplete backport r12339.
-
-Mon Sep 17 04:56:28 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * test/thread/test_thread.rb (test_local_barrier),
- test/thread/lbtest.rb: test for [ruby-dev:30653].
-
-Mon Sep 17 04:52:21 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * ruby.c (proc_options): -W should be allowed in RUBYOPT
- environment variable. [ruby-core:12118]
-
-Mon Sep 17 04:37:10 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * range.c (range_step): fixed integer overflow. [ruby-dev:31763]
-
-Fri Sep 7 17:06:16 2007 Vincent Isambart <vincent.isambart@gmail.com>
-
- * eval.c (rb_thread_start_0): should unset time_thread_alive_p.
- [ruby-talk:257219], [ruby-core:11542], [ruby-dev:31253]
-
-Fri Sep 7 16:39:23 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * array.c (rb_ary_subseq): need integer overflow check.
- [ruby-dev:31736]
-
- * array.c (rb_ary_splice): ditto. [ruby-dev:31737]
-
- * array.c (rb_ary_fill): ditto. [ruby-dev:31738]
-
- * string.c (rb_str_splice): integer overflow for length.
- [ruby-dev:31739]
-
-Fri Sep 7 16:33:23 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * include/ruby/defines.h (flush_register_windows): call "ta 0x03"
- even on Linux/Sparc. [ruby-dev:31674]
-
-Fri Sep 7 16:09:39 2007 Masaki Suketa <masaki.suketa@nifty.ne.jp>
-
- * ext/win32ole/win32ole.c (ole_type_progid, reg_enum_key,
- reg_get_val, ole_wc2mb): fix the bug. Thanks, arton.
- [ruby-dev:31576]
-
-Fri Sep 7 15:50:50 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (mnew): should preserve noex as safe_level.
-
- * eval.c (rb_call0): tighten security check condition..
-
-Fri Sep 7 15:43:43 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/tk/tcltklib.c (Init_tcltklib): use rb_set_end_proc().
-
-Fri Sep 7 15:42:07 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * process.c (detach_process_watcher): should not pass the pointer
- to an auto variable to the thread to be created. pointed and
- fix by KUBO Takehiro <kubo at jiubao.org> [ruby-dev:30618]
-
-Fri Sep 7 15:40:47 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * sample/test.rb, test/ruby/test_system.rb(valid_syntax?): keep
- comment lines first.
-
-Wed Aug 22 12:40:15 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * hash.c (rb_hash_delete_key): delete the entry without calling block.
-
- * hash.c (rb_hash_shift): should consider iter_lev too.
-
- * hash.c (delete_if_i): use rb_hash_delete_key() so that the block
- isn't called twice. [ruby-core:11556]
-
-Sun Arg 12 03:56:30 2007 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/rinda/tuplespace.rb: fix Rinda::TupleSpace keeper thread bug.
- the thread is started too early. [ruby-talk:264062]
-
- * test/rinda/test_rinda.rb: ditto.
-
-Wed Aug 22 12:31:15 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * configure.in (ac_cv_func_isinf): set yes also on OpenSolaris.
- [ruby-Bugs-12859]
-
-Wed Aug 22 12:30:42 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/rexml/encodings/{ISO-8859-15,CP-1252}.rb: fixed invalid syntax.
-
-Wed Aug 22 12:29:36 2007 Tadayoshi Funaba <tadf@dotrb.org>
-
- * lib/README: fixed a typo.
-
-Wed Aug 22 12:13:54 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/extmk.rb (extmake): save all CONFIG values.
-
- * ext/extmk.rb (extmake): remove mkmf.log at clean, and extconf.h at
- distclean, respectively.
-
- * ext/extmk.rb: remove rdoc at clean, and installed list file at
- distclean, respectively.
-
-Wed Aug 22 11:49:00 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * sprintf.c (rb_f_sprintf): should not check positional number as
- width. [ruby-core:11838]
-
-Wed Aug 22 11:47:11 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bignum.c (rb_big_aref): check for Bignum index range.
- [ruby-dev:31271]
-
-Wed Aug 22 11:41:44 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * dln.c (conv_to_posix_path): removed.
-
- * ruby.c (rubylib_mangled_path, rubylib_mangled_path2): return
- VALUE instead of a pointer to static buffer.
-
- * ruby.c (push_include_cygwin): fixed buffer overflow.
- [ruby-dev:31297]
-
- * ruby.c (ruby_init_loadpath): not convert built-in paths.
-
-Wed Aug 22 11:39:31 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * intern.h (is_ruby_native_thread): removed since declared as an int
- function in ruby.h already.
-
-Wed Aug 22 11:00:20 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (init_mkmf): should remove mkmf.log too.
-
-Wed Aug 22 10:57:50 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/openssl/ossl_config.c (ossl_config_set_section): do not
- initialize aggregations with dynamic values. [ruby-talk:259306]
-
-Wed Aug 22 10:55:00 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (get_backtrace): check the result more.
- [ruby-dev:31261] [ruby-bugs-12398]
-
-Wed Aug 22 10:36:15 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bignum.c (rb_big_lshift, rb_big_rshift): separated functions
- to get rid of infinite recursion. fixed calculation in edge
- cases. [ruby-dev:31244]
-
- * numeric.c (rb_fix_lshift, rb_fix_rshift): ditto.
-
-Wed Aug 22 10:29:45 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bignum.c (rb_big_pow): refine overflow check. [ruby-dev:31242]
-
-Wed Aug 22 10:26:59 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * time.c (time_succ): Time#succ should return a time object in the
- same timezone mode to the original. [ruby-talk:260256]
-
-Wed Aug 22 10:24:00 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * numeric.c (fix_pow): integer power calculation: 0**n => 0,
- 1**n => 1, -1**n => 1 (n: even) / -1 (n: odd).
-
- * test/ruby/test_fixnum.rb (TestFixnum::test_pow): update test
- suite. pow(-3, 2^64) gives NaN when pow(3, 2^64) gives Inf.
-
-Wed Aug 22 10:23:01 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/base64.rb (Base64::b64encode): should not specify /o option
- for regular expression. [ruby-dev:31221]
-
-Wed Aug 22 10:20:32 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * sprintf.c (rb_f_sprintf): more checks for format argument.
- [ruby-core:11569], [ruby-core:11570], [ruby-core:11571],
- [ruby-core:11573]
-
-Wed Aug 22 10:13:45 2007 pegacorn <subscriber.jp AT gmail.com>
-
- * ext/digest/digest.c (rb_digest_instance_update,
- rb_digest_instance_finish, rb_digest_instance_reset,
- rb_digest_instance_block_length): %s in rb_raise() expects char*.
- [ruby-dev:31222]
-
- * ext/openssl/ossl.h: include ossl_pkcs5.h. [ruby-dev:31231]
-
- * ext/openssl/ossl_pkcs5.h: new file for PKCS5. [ruby-dev:31231]
-
- * ext/openssl/ossl_x509name.c (ossl_x509name_to_s): use ossl_raise()
- instead of rb_raise(). [ruby-dev:31222]
-
- * ext/sdbm/_sdbm.c: DOSISH platforms need io.h. [ruby-dev:31232]
-
- * ext/syck/syck.h: include stdlib.h for malloc() and free().
- [ruby-dev:31232]
-
- * ext/syck/syck.h (syck_parser_set_input_type): prototype added.
- [ruby-dev:31231]
-
- * win32/win32.c: include mbstring.h for _mbspbrk(). [ruby-dev:31232]
-
- * win32.h (rb_w32_getcwd): prototype added. [ruby-dev:31232]
-
-Wed Aug 22 10:11:59 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bignum.c (rb_cstr_to_inum): check leading non-digits.
- [ruby-core:11691]
-
-Wed Aug 22 10:07:48 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bignum.c (rb_big_neg): SIGNED_VALUE isn't in 1.8.
-
- * bignum.c (bigtrunc): do not empty Bignum. [ruby-dev:31229]
-
-Wed Aug 22 10:02:42 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * numeric.c (fix_pow): 0**2 should not raise floating point
- exception. [ruby-dev:31216]
-
-Wed Aug 22 10:01:08 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * win32/win32.c (CreateChild): enclose command line except for
- command.com which can not handle quotes. [ruby-talk:258939]
-
-Wed Aug 22 09:58:30 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (link_command, cc_command, cpp_command): do not expand
- ::CONFIG which is an alias of MAKEFILE_CONFIG.
-
-Wed Aug 22 09:55:08 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * struct.c (rb_struct_init_copy): disallow changing the size.
- [ruby-dev:31168]
-
-Wed Aug 22 09:54:28 2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * random.c: documentation fix. srand(0) initializes PRNG with '0',
- not with random_seed.
-
-Wed Aug 22 09:53:14 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bcc32/{Makefile.sub,setup.mak}: remove surplus slash from srcdir.
-
-Wed Aug 22 09:46:25 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * sprintf.c (rb_f_sprintf): sign bit extension should not be done
- if FPLUS flag is specified. [ruby-list:39224]
-
-Wed Aug 22 09:41:56 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * array.c (rb_ary_initialize): should call rb_ary_modify() first.
- [ruby-core:11562]
-
-Wed Aug 22 09:40:25 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (yylex): return non-valid token for an invalid
- instance/class variable name. a patch from from Yusuke ENDOH
- <mame AT tsg.ne.jp>. [ruby-dev:31095]
-
-Wed Aug 22 09:39:26 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (dsym): return non-null NODE even if yyerror(). based on a
- patch from from Yusuke ENDOH <mame AT tsg.ne.jp>. [ruby-dev:31085]
-
-Wed Aug 22 09:38:43 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * process.c (proc_exec_v, rb_proc_exec): preserve errno.
-
-Wed Aug 22 09:00:23 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (ruby_cleanup): return EXIT_FAILURE if any exceptions occured
- in at_exit blocks. [ruby-core:11263]
-
-Wed Aug 22 08:52:02 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * variable.c (rb_path2class): get rid of dangling pointer caused by
- optimized out value.
-
-Wed Aug 22 08:51:20 2007 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/dl/lib/dl/win32.rb: seems that dl doesn't accept void argument.
- fixed [ruby-bugs:PR#5489].
-
-Wed Aug 22 08:49:47 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * configure.in (darwin): prohibit loading extension libraries to
- miniruby.
-
-Wed Aug 22 08:34:20 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_kill_thread): renamed in order to get rid of conflict
- with a BeOS system function. [ruby-core:10830]
-
-Wed Aug 22 08:32:32 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * process.c (ruby_setreuid, ruby_setregid): rename to get rid of name
- clash.
-Wed Aug 22 08:27:53 2007 Shugo Maeda <shugo@ruby-lang.org>
-
- * lib/net/imap.rb (ResponseParser#next_token): fixed
- error message. (backported from HEAD)
-
- * lib/net/imap.rb (ResponseParser#parse_error): fixed
- the condition not to refer @token.symbol unexpectedly.
- Thanks, Dick Monahan. (backported from HEAD)
-
-Wed Aug 22 08:26:33 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * marshal.c (w_extended): erroneous check condition when dump
- method is defined. [ruby-core:10646]
-
-Mon Jun 18 11:29:49 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * intern.h, ext/thread/thread.c: moved prototype of rb_thread_status()
- to get rid of error in C++. [ruby-list:43615]
-
-Sun Jun 10 13:47:36 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * test/ruby/test_beginendblock.rb (test_should_propagate_signaled):
- get rid of invoking shell. [ruby-dev:30942]
-
-Sat Jun 9 10:40:00 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * stable version 1.8.6-p36 released.
-
-Fri Jun 8 17:50:17 2007 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * eval.c (rb_thread_cancel_timer): fix undefined function
-
-Wed May 30 05:17:55 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_eval): get rid of SEGV at ZSUPER in a block
- [ruby-dev:30836]
-
-Wed May 30 04:29:43 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (thread_timer): timer thread should not receive any
- signals. submitted by Sylvain Joyeux. [ruby-core:08546]
-
-Wed May 30 04:18:37 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_eval_cmd): just return if no exceptions.
- [ruby-dev:30820]
-
-Tue May 29 11:01:06 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * win32/win32.c (rb_w32_opendir): store attributes of the second
- entries or later too.
-
- * win32/win32.c (rb_w32_opendir, rb_w32_readdir): eliminate magic
- numbers.
-
-Thu Jun 7 20:10:51 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c, intern.h, ext/thread/thread.c: should not free queue
- while any live threads are waiting.
- [ruby-dev:30653]
-
-Thu Jun 7 14:53:46 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * eval.c (method_inspect): show proper class name.
- [ruby-talk:248647], Thanks Calamitas.
-
-Sun May 27 05:24:56 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * runruby.rb: eliminate uninitialized variable.
- [ruby-core:11255]
-
-Sun May 27 05:19:03 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * eval.c (mnew): call of super via a method object should work again.
- [ruby-talk:248647], Thanks Calamitas.
-
- * test/ruby/test_method.rb (TestMethod::test_method_super): test for
- above fix.
-
-Wed May 23 07:29:53 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * process.c (proc_exec_v): terminate timer thread in advance.
- [ruby-dev:30581], Thanks H. Holon.
-
-Wed May 23 06:51:46 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * lib/cgi.rb (CGI#[]): get rid of exceptions being raised.
- [ruby-dev:30740], Thanks Kentaro KAWAMOTO.
-
-Wed May 23 05:49:49 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/extmk.rb, ext/purelib.rb, lib/mkmf.rb, runruby.rb: clear default
- load path to get rid of load pre-installed extensions/libraries.
- [ruby-core:11017]
-
-Wed May 23 06:14:15 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * win32/win32.c (move_to_next_entry): loc also must move forward.
- [ruby-talk:251987]
-
-Wed May 23 05:55:04 2007 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * win32/win32.c (init_stdhandle): stderr should be without buffering,
- but mswin32 use buffering when stderr is not connected to tty.
-
-Wed May 23 05:35:42 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bignum.c (rb_big_pow): truncate all zero BDIGITs. [ruby-dev:30733]
-
-Wed May 23 05:17:33 2007 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/iconv/iconv.c (iconv_s_conv): rdoc fix.
-
-Wed May 23 05:10:02 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_thread_priority): rdoc fix; the initial value is
- inherited from the creating thread. [ruby-core:10607]
-
-Wed May 23 04:22:57 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * dir.c (do_stat, do_lstat, do_opendir): should not warn ENOTDIR.
- [ruby-talk:248288]
-
-Wed May 23 03:50:35 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (libpathflag): not to append RPATHFLAG to current
- directory.
-
- * lib/mkmf.rb (init_mkmf): add current directory to default
- library path with highest priority. [ruby-core:10960]
-
- * lib/mkmf.rb (LINK_SO): LIBPATH to be placed before DLDFLAGS.
-
-Wed May 23 03:33:55 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/monitor.rb (ConditionVariable#wait, mon_enter, mon_exit_for_cond):
- ensures Thread.critical to be false. [ruby-talk:248300]
-
-Wed May 23 03:25:13 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * util.c (ruby_strtod): exponent is radix 10. [ruby-talk:248272]
-
-Wed May 23 03:12:17 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * configure.in (LDFLAGS): prepend -L. instead appending it to
- XLDFLAGS. [ruby-core:10933]
-
- * configure.in (Makefile): remove $U for automake from MISSING.
- [ruby-talk:248171]
-
-Wed May 23 02:09:32 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_yield_0): should not clear state on TAG_NEXT when
- it's invoked from within lambda body. [ruby-talk:248136]
-
- * eval.c (proc_invoke): handle TAG_NEXT which would be caused by
- next in the lambda body as well.
-
-Wed May 23 01:55:49 2007 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * win32/win32.c (rb_w32_fclose, rb_w32_close): need to save errno
- before calling original fclose()/close().
-
-Wed May 23 01:42:29 2007 Shugo Maeda <shugo@ruby-lang.org>
-
- * lib/net/imap.rb (disconnect): call shutdown for
- SSLSocket. Thanks, Technorama Ltd.
-
-Wed May 23 01:28:14 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * error.c (rb_notimplement), io.c (pipe_open): removed definite
- articles and UNIX manual section from messages. [ruby-dev:30690]
-
- * io.c (pipe_open): raise NotImplementedError for command "-" on
- platforms where fork(2) is not available. [ruby-dev:30681]
-
-Wed May 23 00:03:42 2007 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/socket/socket.c (s_recv, s_recvfrom): some systems (such as
- windows) doesn't set fromlen if the socket is connection-oriented.
- reported by Bram Whillock in [ruby-core:10512] [ruby-Bugs#9061]
-
-Sat Mar 24 23:40:29 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * node.h (struct rb_thread.locals): explicit as struct.
- [ruby-core:10585]
-
- * eval.c, node.h (enum rb_thread_status, struct rb_thread,
- rb_curr_thread, rb_main_thread): prefixed. [ruby-core:10586]
-
- * file.c (chompdirsep): made an unprefixed name static.
-
- * io.c (io_fread): ditto.
-
-Tue May 22 23:27:16 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (ruby_cleanup): exit by SystemExit and SignalException in END
- block. [ruby-core:10609]
-
- * test/ruby/test_beginendblock.rb (test_should_propagate_exit_code):
- test for exit in END block. [ruby-core:10760]
-
- * test/ruby/test_beginendblock.rb (test_should_propagate_signaled):
- test for signal in END block.
-
-Tue May 22 23:14:19 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_provided): check for extension library if SOEXT is
- explicitly given. [ruby-dev:30657]
-
-Tue May 22 21:29:08 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bignum.c (rb_big2str0): round up for the most significant digit.
- [ruby-core:10686]
-
-Tue May 22 20:53:02 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/thread/thread.c (remove_one): Preserve List invariants;
- submitted by: MenTaLguY <mental AT rydia.net>
- in [ruby-core:10598] and [ruby-bugs:PR#9388].
-
-Tue Mar 20 15:37:24 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * distruby.rb: Add zip generation.
-
-Fri Mar 16 21:48:11 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/dl/dl.c (rb_ary2cary): Fix a bug in type validation;
- submitted by sheepman <sheepman AT sheepman.sakura.ne.jp>
- in [ruby-dev:30554].
-
-Fri Mar 16 18:28:06 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/etc/etc.c (etc_getgrgid): Fix a bug in Etc::getgrgid()
- always returning the (real) group entry of the running process;
- reported by: UEDA Hiroyuki <ueda AT netforest.ad.jp>
- in [ruby-dev:30586].
-
-Fri Mar 16 16:33:58 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/thread/thread.c (unlock_mutex_inner): Make sure that the
- given mutex is actually owned by the caller; submitted by:
- Sylvain Joyeux <sylvain.joyeux AT m4x.org> in [ruby-core:10598].
-
-Fri Mar 16 16:21:35 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/thread/thread.c (wait_condvar, lock_mutex): Fix a problem in
- ConditionVariable#wait that occurs when two threads that are
- trying to access the condition variable are also in concurrence
- for the given mutex; submitted by: Sylvain Joyeux
- <sylvain.joyeux AT m4x.org> and MenTaLguY <mental AT rydia.net>
- in [ruby-core:10598].
-
-Fri Mar 16 16:17:27 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * test/thread/test_thread.rb: Add a test script for the `thread'
- library. This should result in failure as of now with
- ext/thread; submitted by: Sylvain Joyeux <sylvain.joyeux AT
- m4x.org> in [ruby-core:10598].
-
-Wed Mar 14 12:30:00 2007 Shigeo Kobayashi <shigeo@tinyforest.jp>
-
- * ext/bigdecimal/bigdecimal.c: BigDecimal("-.31") is now
- treated as ("-0.31") not as ("0.31").
-
-Tue Mar 13 04:04:04 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * stable version 1.8.6 released.
-
-Tue Mar 13 02:54:17 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * lib/cgi.rb (CGI::header): IIS >= 5.0 does not need the nph
- assumption any more; submitted by MIYASAKA Masaru <alkaid AT
- coral.ocn.ne.jp> in [ruby-dev:30537].
-
-Mon Mar 12 11:07:44 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/openssl/ossl_asn1.c (Init_ossl_asn1): Let rdoc know about
- externally defined modules; submitted by Technorama
- Ltd. <oss-ruby AT technorama.net> in [ruby-bugs:PR#4704].
-
- * ext/openssl/ossl_bn.c (Init_ossl_bn): Ditto.
-
- * ext/openssl/ossl_cipher.c (Init_ossl_cipher): Ditto.
-
- * ext/openssl/ossl_digest.c (Init_ossl_digest): Ditto.
-
- * ext/openssl/ossl_hmac.c (Init_ossl_hmac): Ditto.
-
- * ext/openssl/ossl_pkey.c (Init_ossl_pkey): Ditto.
-
- * ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): Ditto.
-
- * ext/openssl/ossl_pkey_dsa.c (Init_ossl_dsa): Ditto.
-
- * ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): Ditto.
-
- * ext/openssl/ossl_rand.c (Init_ossl_rand): Ditto.
-
- * ext/openssl/ossl_ssl.c (Init_ossl_ssl): Ditto.
-
-Mon Mar 12 01:23:50 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/dl/sym.c (rb_dlsym_inspect): Use "0x%x" rather for pointers.
- This might not be very right but it is commonly used in other
- parts of the code; submitted by sheepman <sheepman AT
- sheepman.sakura.ne.jp> in [ruby-dev:30532].
-
- * ext/dl/ptr.c (rb_dlptr_inspect): Ditto.
-
- * ext/dl/lib/dl/import.rb (DL::Importable::Internal::import,
- DL::Importable::Internal::callback): Avoid race condition for an
- instance variable; submitted by sheepman <sheepman AT
- sheepman.sakura.ne.jp> in [ruby-dev:30530].
-
-Sun Mar 11 19:04:29 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * misc/README: Add a note about ruby-electric.el.
-
- * misc/ruby-mode.el (ruby-non-block-do-re): Fix
- ruby-non-block-do-re. [ruby-core:03719]
-
- * misc/inf-ruby.el: Synchronize the comment section with trunk.
-
- * misc/README, misc/rdebug.el: Add rdebug.el, Emacs ruby-debug
- interface based on rubydb3x.el; submitted by Martin Nordholts
- <enselic AT gmail.com> in [ruby-bugs:PR#9023].
-
-Sun Mar 11 17:51:46 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/dl/mkcallback.rb (mkfunc): Make sure that a callback
- function is found in the function table before trying to call
- it; submitted by sheepman <sheepman AT sheepman.sakura.ne.jp>
- in [ruby-dev:30524].
-
-Sun Mar 11 17:30:53 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (error_handle): no message when exiting by signal.
-
- * eval.c (ruby_cleanup): re-send signal. [ruby-dev:30516]
-
- * eval.c (rb_thread_interrupt): instantiate SignalException.
-
- * eval.c (rb_thread_signal_raise): now takes signal number instead
- of signal name.
-
- * intern.h (rb_thread_signal_raise, ruby_default_signal): prototypes.
-
- * signal.c (esignal_init): takes a signal number and an optional
- signal name.
-
- * signal.c (interrupt_init): pass SIGINT always.
-
- * signal.c (ruby_default_signal): invoke system default signal
- handler.
-
- * signal.c (rb_signal_exec, trap): handle SIGTERM. [ruby-dev:30505]
-
-Tue Mar 6 19:03:42 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/digest/lib/md5.rb (MD5::new, MD5::md5): Do not modify
- Digest::MD5.
-
- * ext/digest/lib/sha1.rb (SHA1::new, SHA1::sha1): Ditto.
-
- * lib/shell/process-controller.rb: fix thread synchronization
- problem for [ruby-dev:30477].
-
- * ext/digest/lib/md5.rb (MD5::new, MD5::md5): Catch up with
- Digest's API changes; noted by: Kazuhiro Yoshida <moriq AT
- moriq.com> in [ruby-dev:30500].
-
- * ext/digest/lib/sha1.rb (SHA1::new, SHA1::sha1): Ditto.
-
- * time.c (time_to_s): Back out the format changes; discussed
- in [ruby-dev:30495].
-
- * ext/tk/sample/irbtkw.rbw: fails to exit process.
-
-Mon Mar 5 20:26:10 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * time.c (time_to_s): Correct the wrong format which did not
- really conform to RFC 2822; pointed out by: OHARA Shigeki <os at
- iij.ad.jp> in [ruby-dev:30487].
-
-Sun Mar 4 23:53:27 2007 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (mv): could not move a directory between
- different filesystems. [ruby-dev:30411]
-
-Sun Mar 4 23:46:40 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * file.c (rb_file_s_utime): allow nil to set the current time.
-
- * lib/fileutils.rb (touch): ditto, and added :mtime and :nocreate
- options. fixed: [ruby-talk:219037]
-
-Sun Mar 4 23:19:00 2007 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * util.c (push_element): should return a int value.
-
-Sun Mar 4 01:06:55 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * lib/set.rb (Set#^, Set#&): Correct documentation. Those methods
- return sets, not arrays; noted by Oliver Frank Wittich <nietz AT
- mangabrain.de>.
-
-Sat Mar 3 21:41:31 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * eval.c (stack_check): Unset inline to fix build with GCC 3.4.6;
- submitted by: NISHIMATSU Takeshi <t_nissie AT yahoo.co.jp> in
- [ruby-list:43218].
- cf. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24556
-
-Sat Mar 3 19:07:05 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/thread/thread.c (push_list): Use ALLOC().
-
- * ext/thread/thread.c (rb_mutex_alloc): Ditto.
-
- * ext/thread/thread.c (rb_condvar_alloc): Ditto.
-
-Sat Mar 3 18:56:40 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * NEWS: Add a note for String#intern.
-
-Sat Mar 3 18:36:35 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_provided): return true only for features loaded from
- .rb files, and not search actual library type. [ruby-dev:30414]
-
- * eval.c (rb_feature_p): check loading_tbl if the given ext is
- empty. [ruby-dev:30452]
-
- * eval.c (rb_feature_p): fix possible buffer overrun.
-
-Sat Mar 3 16:30:39 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * env.h (SCOPE_CLONE): Introduce a new scope flag to prevent a
- local_tbl region from getting freed many times; submitted by
- Chikanaga Tomoyuki <chikanag AT nippon-control-system.co.jp> in
- [ruby-dev:30460].
-
- * eval.c (proc_invoke): Ditto.
-
- * gc.c (obj_free): Ditto.
-
- * parse.y (top_local_setup_gen): Ditto.
-
-Sat Mar 3 16:09:27 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * object.c (rb_obj_ivar_set): RDoc updated according to a
- suggestion from Brian Candler <B.Candler AT pobox.com>.
- [ruby-core:10469]
-
-Sat Mar 3 15:41:33 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (stmt, arg): should not omit lhs of OP_ASGN1 even if
- empty. [ruby-dev:30452]
-
-Thu Mar 1 04:08:30 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * mkconfig.rb (patchlevel): read from version.h.
-
-Thu Mar 1 03:42:09 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/digest/digest.c (get_digest_base_metadata): Allow inheriting
- Digest::Base subclasses, which was unintentionally made
- impossible while restructuring Digest classes.
-
-Wed Feb 28 22:10:55 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * doc/NEWS-1.8.0: Rename NEWS to NEWS-1.8.0. This is way too old
- NEWS.
-
- * NEWS: Add NEWS, a document file to keep user visible feature
- changes between releases.
-
- * configure.in (ac_cv_func_fcntl): fcntl support for MinGW.
-
- * missing/flock.c: workaround for MinGW.
-
- * ext/openssl/extconf.rb: no need to check unistd.h and sys/time.h.
- they are already checked at configure.
- reported by KOBAYASHI Yasuhiro [ruby-list:43225]
-
- * lib/mkmf.rb ($DEFLIBPATH): default library paths ($(topdir), etc)
- should be the first elements of library paths list.
- reported by KOBAYASHI Yasuhiro [ruby-list:43225]
-
- * test/{dbm,gdbm}/test_{dbm,gdbm}.rb: shouldn't use host_os. use
- target_os instead. reported by KOBAYASHI Yasuhiro [ruby-list:43225]
-
- * mkconfig.rb (RbConfig): add CONFIG['PATCHLEVEL']
-
- * common.mk: new target dist
-
- * distruby.rb: new file
-
- * configure.in (--enable-auto-image-base): avoid the neccessity to
- rebase the shared libs as much as possible;
- submitted by Corinna Vinschen <spam at vinschen.de> in
- [ruby-talk:240964].
-
-Wed Feb 28 20:51:32 2007 URABE Shyouhei <shyouhei@ruby-lang.org>
-
- * pack.c (pack_unpack): properly ignore non-base64 octets such as
- UTF-8 encoded BOMs; submitted by SOUMA Yutaka <holon@radastery.jp>
- to fix [ruby-core:10437]
-
-Tue Feb 27 21:50:10 2007 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * util.c (__crt0_glob_function): use ruby_glob() instead of rb_globi().
-
- * configure.in (ac_cv_func_setrlimit): workaround for djgpp.
-
-Tue Feb 27 20:49:19 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * lib/base64.rb (Base64::b64encode): Fix documentation; submitted
- by David Symonds <dsymonds@gmail.com> in [ruby-core:10432].
-
- * regex.c (calculate_must_string, slow_search, re_search): Silence
- warnings regarding char * vs. unsigned char * mismatch;
- submitted by Lyle Johnson <lyle.johnson@gmail.com>
- in [ruby-core:10416].
-
- * ext/bigdecimal/bigdecimal.c (BigDecimal_load): Ditto.
-
- * ext/digest/sha1/sha1ossl.c (SHA1_Finish): Ditto.
-
- * ext/digest/rmd160/rmd160ossl.c (RMD160_Finish): Ditto.
-
- * ext/digest/digest.c (rb_digest_base_finish,
- rb_digest_base_update): Ditto.
-
- * ext/nkf/nkf.c (rb_str_resize, rb_nkf_kconv, rb_nkf_guess1,
- rb_nkf_guess2): Ditto.
-
- * ext/thread/thread.c (wait_list_cleanup, rb_mutex_try_lock):
- Eliminate rb_thread_critical switching where unnecessary;
- implied by shugo in [ruby-dev:30412].
-
- * ext/thread/thread.c (set_critical): Merge in
- thread_exclusive_ensure().
-
- * ext/thread/thread.c: Consistently use 0 and 1 for
- rb_thread_critical values.
-
- * ext/thread/thread.c: Use xmalloc()/xfree() instead of
- malloc()/free(); pointed out by shugo in [ruby-dev:30412].
-
- * lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::initialize):
- Initialize @workdir properly to silence a warning under -w.
- Submitted by <tommy at tmtm.org> in [ruby-dev:30400].
-
-Sun Feb 25 02:50:51 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * defines.h: Pull the RUBY_MBCHAR_MAXSIZE definition from trunk,
- which is necessary for dir.c to compile on djgpp and emx.
-
-Sat Feb 24 17:04:01 2007 Tadayoshi Funaba <tadf@dotrb.org>
-
- * lib/date/format.rb: updated based on date2 4.0.3.
-
-Sat Feb 24 17:01:02 2007 Minero Aoki <aamine@loveruby.net>
-
- * ext/racc/cparse/cparse.c (cparse_params_mark): remove useless
- rb_gc_mark. Thanks Tomoyuki Chikanaga. [ruby-dev:30405]
-
-Sat Feb 24 16:53:09 2007 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * signal.c (sighandler): need to tell to be interrupted to main
- context when handler is installed.
-
- * win32/win32.[ch] (rb_win32_interrupted): new function to listen
- interrupt.
-
- * win32/win32.c (set_pioinfo_extra): new function for VC++8 SP1
- workaround. [ruby-core:10259]
-
- * win32/win32.c (NtInitialize): call above function.
-
-Fri Feb 23 13:04:43 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * numeric.c (fix_cmp, fix_equal): Remove FIX2LONG() to optimize.
- suggested in
- http://t-a-w.blogspot.com/2007/02/making-ruby-faster.html.
- [ruby-talk:240223]
-
-Fri Feb 23 12:47:13 2007 James Edward Gray II <james@grayproductions.net>
-
- * lib/xmlrpc/client.rb (XMLRPC::Client::do_rpc): Make the
- Content-Length parameter optional for responses in
- xmlrpc/client.rb; suggested by Daniel Berger
- <Daniel.Berger@qwest.com> and approved by the maintainer.
-
- * lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): Add DateTime
- support to xmlrpc; approved by the maintainer.
-
-Mon Feb 19 18:33:30 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/socket/socket.c (unix_peeraddr): wrong syscall name in error
- message for #peeraddr. a patch from Sam Roberts
- <sroberts at uniserve.com>. [ruby-core:10366]
-
-Mon Feb 19 18:27:42 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * configure.in, defines.h, eval.c (rb_feature_p, rb_provided,
- load_wait, search_required, rb_require_safe), ext/extmk.rb: Fix
- a bug where a statically linked extension cannot be autoloaded.
- [ruby-dev:30023] / [ruby-dev:30239]
-
-Thu Feb 15 20:31:07 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * lib/uri/ftp.rb: Revert the previous change pending discussion.
-
-Fri Feb 16 11:18:21 2007 Eric Hodel <drbrain@segment7.net>
-
- * lib/.document: Apply patch for irb, e2mmap and README by Hugh Sasse
- <hgs at dmu.ac.uk> from [ruby-core:10135]
-
- * lib/prettyprint.rb: Suppress RDoc for PrettyPrint test suite.
-
-Thu Feb 15 18:10:09 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * dir.c (glob_helper): Fix the function declaration.
-
-Thu Feb 15 16:55:33 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * version.h: Branch off ruby_1_8_6 from ruby_1_8 in preparation
- for the forthcoming 1.8.6 release.
-
-Thu Feb 15 16:44:14 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * lib/uri/generic.rb (URI::Generic::userinfo): Considering how
- `scheme://user:@...', `scheme://:password@...' and
- `scheme://:@...' are parsed, an empty user name or password
- should be allowed and represented as it is.
-
-Thu Feb 15 11:46:05 2007 KIMURA Koichi <hogemuta@gmail.com>
-
- * dir.c, win32/win32.c, win32/dir.h, ruby.h, intern.h: Bring
- encoding aware globbing support in from trunk. Dir.[] and
- Dir.glob() can now take many patterns in an array. Minor fixes
- will follow.
-
-Thu Feb 15 11:00:26 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * lib/uri/generic.rb (URI::Generic::userinfo): should support
- empty password. [ruby-core:10290]
-
- * lib/uri/generic.rb (URI::Generic::set_password): password can be
- cleared by nil. [ruby-core:10290]
-
- * lib/uri/common.rb (escape): regard second string argument as a
- character set properly. [ruby-dev:27692]
-
- * lib/uri/ftp.rb: Attempt to conform to RFC 1738 with regard to
- relative/absolute paths.
-
- * lib/uri: Lovely RDOC patches from mathew (metaATpoboxDOTcom).
-
-Thu Feb 15 10:57:38 2007 Tietew <tietew@tietew.net>>
-
- * lib/cgi.rb (CGI::unescapeHTML): invalid decoding for single
- unescaped ampersand. a patch from Tietew
- <tietew+ruby-dev at tietew.net> in [ruby-dev:30292].
- fixed: [ruby-dev:30289]
-
-Thu Feb 15 10:48:40 2007 MenTaLguY <mental@rydia.net>
-
- * ext/thread/thread.c: Handle interrupted waits correctly.
- [ruby-bugs:PR#8663]
-
-Wed Feb 14 19:22:15 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/digest/lib/digest.rb (Digest::self.const_missing): Drop
- autoloads for sha2 classes in favor of handling in
- const_missing(), to work around a problem exposed on OS X.
-
-Tue Feb 13 02:21:12 2007 Sam Roberts <sroberts@uniserve.com>
-
- * io.c (rb_f_syscall): Fix buffer overflow with syscall
- arguments. [ruby-bugs:PR#8541]
-
-Sun Feb 11 07:46:45 2007 Akinori MUSHA <knu@iDaemons.org>
-
- * lib/cgi.rb (CGI::QueryExtension::read_multipart): Properly parse
- a quoted-string in a Content-Disposition value.
+ * ext/thread/thread.c: [DOC] This patch accomplishes the following:
-Sun Feb 11 06:27:54 2007 Akinori MUSHA <knu@iDaemons.org>
+ - 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]
- * configure.in, ext/thread/extconf.rb, lib/thread.rb: Add a
- configure option `--disable-fastthread', to choose the original,
- pure ruby version of the "thread" library instead of the new,
- much faster implementation in ext/thread.
+Thu Nov 14 01:11:54 2013 Zachary Scott <e@zzak.io>
-Sun Feb 11 06:22:20 2007 Akinori MUSHA <knu@iDaemons.org>
+ * ext/bigdecimal/lib/bigdecimal/util.rb: [DOC] +precision+ is required
- * ext/Setup: Add thread except for platforms without threads
- support.
+Wed Nov 13 19:21:36 2013 Zachary Scott <e@zzak.io>
-Sun Feb 11 06:15:16 2007 Akinori MUSHA <knu@iDaemons.org>
+ * ext/bigdecimal/lib/bigdecimal/util.rb: [DOC] Document the required
+ +precision+ argument for Rational#to_d [Bug #8958]
- * ext/thread/lib/thread.rb: Add a replacement of thread.rb that
- loads this extension.
+Wed Nov 13 19:02:05 2013 Zachary Scott <e@zzak.io>
-Sun Feb 11 05:39:47 2007 Akinori MUSHA <knu@iDaemons.org>
+ * 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.
- * lib/thread.rb: Remove an ineffective part of the code.
+ Patched by @stomar [Bug #9027]
-Sun Feb 11 05:32:54 2007 Akinori MUSHA <knu@iDaemons.org>
+Wed Nov 13 18:32:12 2013 Zachary Scott <e@zzak.io>
- * ext/thread/thread.c (rb_thread_exclusive): Implement
- Thread.exclusive.
+ * ext/openssl/ossl_config.c: [DOC] Document the following:
-Sun Feb 11 05:26:51 2007 Akinori MUSHA <knu@iDaemons.org>
+ - OpenSSL::ConfigError
+ - OpenSSL::Config::DEFAULT_CONFIG_FILE
- * ext/thread/thread.c: Get rid of use of a dummy function.
+ Patched by @vbatts via GH-436
+ https://github.com/ruby/ruby/pull/436
-Sun Feb 11 01:45:31 2007 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Wed Nov 13 18:03:00 2013 Zachary Scott <e@zzak.io>
- * ext/thread/thread.c (Init_thread): Define missing aliases:
- Queue#enq and SizedQueue#enq.
+ * 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.
-Sat Feb 10 09:27:35 2007 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ Based on a patch by @vbatts via GH-436
+ https://github.com/ruby/ruby/pull/436
- * ext/win32ole/win32ole.c (ole_variant2val): fix compile error
- on VC++.
+Wed Nov 13 17:19:36 2013 Zachary Scott <e@zzak.io>
-Sat Feb 10 07:41:52 2007 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * ext/openssl/lib/openssl/config.rb: In #parse use +string+ for +str+
- * ext/win32ole/win32ole.c (ole_variant2val): fix the bug when
- SAFEARRAY pointer is NULL.
+Wed Nov 13 17:09:45 2013 Zachary Scott <e@zzak.io>
-Sat Feb 10 00:13:11 2007 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/openssl/lib/openssl/*.rb: [DOC] Document the following:
- * ext/tk/lib/tk.rb: fix typo (TkConfigMethod::__confinfo_cmd,
- __conv_keyonly_opts).
+ - Integer#to_bn
+ - OpenSSL::Buffering module
+ - Deprecated OpenSSL::Digest::Digest compatibility class
+ - OpenSSL::Config
-Fri Feb 9 20:44:53 2007 Akinori MUSHA <knu@iDaemons.org>
+ These changes were based on a patch by @vbatts via GH-436
+ https://github.com/ruby/ruby/pull/436
- * ext/thread: Make style fixes (mostly de-K&R'ism) to match the
- rest of the source code.
+Wed Nov 13 10:55:43 2013 Zachary Scott <e@zzak.io>
- * ext/thread: Make USE_MEM_POOLS an extconf option.
+ * doc/regexp.rdoc: [DOC] Fix typo in Special global variables section.
+ Reported by Alex Johnson on ruby-doc.org
-Fri Feb 9 20:43:01 2007 Akinori MUSHA <knu@iDaemons.org>
+Wed Nov 13 10:43:19 2013 Zachary Scott <e@zzak.io>
- * ext/thread: Import the "fastthread" implementation by MenTaLguY
- in the original form. This module is not hooked into the build
- yet since it needs some style fixes and adjustments.
+ * hash.c: [DOC] Adds an example for Hash#store
-Fri Feb 9 15:46:09 2007 Akinori MUSHA <knu@iDaemons.org>
+Wed Nov 13 09:03:40 2013 Zachary Scott <e@zzak.io>
- * ext/bigdecimal: Synchronize with trunk. Better function
- prototypes, removal of a useless method `!=', and document
- updates.
+ * 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 Feb 06 22:06:45 2007 NARUSE, Yui <naruse@ruby-lang.org>
+Tue Nov 12 10:15:14 2013 Eric Hodel <drbrain@segment7.net>
- * ext/nkf/nkf-utf8/{nkf.c,utf8tbl.c}:
- imported nkf 2007-01-28.
- * Fixed: can't decode MIME encode JIS string.
- * Fixed: Fullwitdh-halfwidth conversion.
- * Support DoCoMo's and Softbank's EMOJI
- * Support CP932, CP5022x, eucJP-ms UDC
- * Support UTF-32 encoding
- * Support beyond BMP
- [ruby-dev:29700] [ruby-dev:29922] [ruby-dev:30144]
+ * test/rubygems/insure_session.rb: Remove unused test file.
-Wed Jan 31 14:52:09 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Nov 12 09:16:24 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (rb_iterate): need to PUSH_ITER in proper order.
- [ruby-core:10125]
+ * lib/rubygems: Update to RubyGems master b9213d7. Changes include:
- * test/ruby/test_iterator.rb (TestIterator::test_block_given_within_iterator):
- add new test. [ruby-core:10125]
+ Fixed tests on Windows (I hope) by forcing platform for
+ platform-dependent tests.
-Tue Jan 30 14:58:51 2007 NAKAMURA Usaku <usa@ruby-lang.org>
+ Fixed File.exists? warnings.
- * string.c (rb_str_sub_bang): calling rb_str_modify() should be just
- before actually modifying the string.
- fixed: [ruby-dev:30211] (originally reported by zunda)
+ Improved testing infrastructure.
-Tue Jan 30 12:05:35 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems: ditto.
- * mkconfig.rb: autoconf 2.61 support. [ruby-core:10016]
+ * test/rdoc/test_rdoc_rubygems_hook.rb: Switch to util_spec like
+ RubyGems.
-Sat Jan 27 15:20:11 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Nov 11 18:31:12 2013 Aman Gupta <ruby@tmm1.net>
- * parse.y (dyna_var_lookup): should not alter dvar->val not to
- destroy living value. [ruby-core:10076]
+ * 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.
- * parse.y (dyna_init): ditto.
+Mon Nov 11 04:36:14 2013 Eric Hodel <drbrain@segment7.net>
-Fri Jan 26 12:03:39 2007 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * ext/tk/lib/tk.rb (TkConfigMethod#__confinfo_cmd,
- __conv_keyonly_optkeys): make them private [ruby-dev:30074].
+Mon Nov 11 03:15:56 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/txtwin_abst.rb: fix typo [ruby-dev:30073].
+ * 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.
- * ext/tk/lib/tk/canvas.rb (TkCanvas#scan_dragto): lack of an argument.
+Mon Nov 11 02:51:17 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tk/lib/tk/canvas.rb: clarify the including module name
- [ruby-dev:30080].
+ * lib/rubygems: Update to RubyGems master 4bdc4f2. Important changes
+ in this commit:
- * ext/tk/lib/tk/scrollable.rb: change primary name of modules
- [ruby-dev:30080].
+ RubyGems now chooses the test server port reliably. Patch by akr.
-Wed Jan 24 18:05:39 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+ Partial implementation of bundler's Gemfile format.
- * misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): fix
- regexp font-lock bug. [ruby-talk:235758]
+ Refactorings to improve the new resolver.
-Tue Jan 23 11:02:33 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+ Fixes bugs in the resolver.
- * lib/webrick/httprequest.rb (WEBrick::HTTPRequest::read_line):
+ * test/rubygems: Tests for the above.
-Tue Jan 23 18:26:12 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Nov 11 01:02:06 2013 Zachary Scott <e@zzak.io>
- * lib/cgi.rb (CGI::QueryExtension::read_multipart): use == instead
- of ===. [ruby-dev:30176]
+ * 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
-Tue Jan 23 10:48:17 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Nov 10 23:47:05 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * hash.c: added documentation for Hash about how it uses eql? and
- hash methods for the keys. [ruby-core:09995]
+ * gc.c (rb_gcdebug_print_obj_condition): catch up recent changes
+ to compile on GC_DEBUG.
-Mon Jan 22 14:57:25 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Nov 10 22:16:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/socket/socket.c: fix errors in socket sample code.
- [ruby-core:09992]
+ * error.c (exc_cause): captured previous exception.
-Sat Jan 13 23:54:48 2007 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * eval.c (make_exception): capture previous exception automagically.
+ [Feature #8257]
- * ext/win32ole/win32ole.c (ole_free, ole_type_free,
- olemethod_free, olevariable_free, oleparam_free,
- ole_event_free): fix memory leak. [ruby-core:09846]
+Sun Nov 10 08:37:20 2013 Zachary Scott <e@zzak.io>
-Fri Jan 12 11:13:55 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c: [DOC] Remove duplicate reference
- * ext/etc/etc.c (etc_getpwuid, etc_getgrgid): fix to correctly
- convert uid/gid from VALUE. (backport of r11521)
+Sun Nov 10 08:09:29 2013 Zachary Scott <e@zzak.io>
-Wed Jan 10 18:57:57 2007 Minero Aoki <aamine@loveruby.net>
+ * lib/drb/drb.rb: [DOC] promote better windows-safe filename regular
+ expression in DRb Logger example. Reported by Chris Pheonix
+ [Bug #9074]
- * ext/strscan/strscan.c (strscan_do_scan): should set kcode option
- before match. [ruby-dev:29914]
+Sun Nov 10 08:03:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/strscan/test_stringscanner.rb: test it.
+ * gc.c (rb_define_finalizer, rb_undefine_finalizer): rename and export
+ finalizer functions.
- * re.c: export kcode_set_option and kcode_reset_option (with "rb_"
- prefix).
+Sun Nov 10 07:41:22 2013 Zachary Scott <e@zzak.io>
- * intern.h: ditto.
+ * lib/weakref.rb: [DOC] fix typos by @xaviershay [Fixes GH-439]
+ https://github.com/ruby/ruby/pull/439
-Tue Jan 9 17:45:17 2007 NAKAMURA Usaku <usa@ruby-lang.org>
+Sun Nov 10 06:14:39 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * file.c (rb_find_file): should not call fpath_check() with NULL.
- fixed: [ruby-core:09867]
+ * compile.c (iseq_compile_each): emit opt_str_freeze if the #freeze
+ method is called on a static string literal with no arguments.
-Tue Jan 9 03:54:38 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * defs/id.def (firstline): add freeze so idFreeze is available
- * string.c (rb_str_upto): String#upto from empty string makes
- inifinite loop. [ruby-core:09864]
+ * 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
-Sun Jan 7 12:13:26 2007 Eric Hodel <drbrain@segment7.net>
+ * string.c (Init_String): define String#freeze
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_class_comment):
- Look for class and module comments above rb_define_class and
- rb_define_module. Patch by Daniel Berger <djberg96 at gmail.com>
+ * vm.c (vm_init_redefined_flag): define BOP_FREEZE on String class as
+ a basic operation
-Sun Jan 7 10:32:12 2007 Eric Hodel <drbrain@segment7.net>
+ * vm_insnhelper.h: ditto
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constants):
- Properly handle escaping of : in comments.
- * test/rdoc/parsers/test_parse_c.rb:
- Test RDoc::C_Parser#do_classes and Rdoc::C_Parser#find_class_comment.
+ [Feature #8992] [ruby-core:57705]
-Sun Jan 7 09:33:02 2007 Tadayoshi Funaba <tadf@dotrb.org>
+Sun Nov 10 01:34:14 2013 Koichi Sasada <ko1@atdot.net>
- * lib/date/format.rb: updated based on date2 4.0.1.
+ * 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.
-Wed Jan 3 11:36:51 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Nov 10 00:39:26 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (ruby_dup): start GC on ENOMEM as well.
+ * benchmark/gc/gcbench.rb: output version description and GC::OPTS.
-Mon Jan 1 06:13:11 2007 Eric Hodel <drbrain@segment7.net>
+Sun Nov 10 00:36:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/parsers/c_parser.rb: Make Rdoc accessible. Update constant
- value information.
+ * gc.c (should_be_callable): allow private call since rb_eval_cmd
+ calls even private methods.
-Mon Jan 1 06:13:11 2007 Eric Hodel <drbrain@segment7.net>
+Sun Nov 10 00:33:17 2013 Zachary Scott <e@zzak.io>
- * ext/bigdecimal/bigdecimal.c: Update constant comments to provide
- values for RDoc.
+ * lib/racc/rdoc/grammar.en.rdoc: [DOC] fix typo by Tsuyoshi Sawada
+ [Bug #9077]
-Mon Jan 1 06:05:55 2007 Eric Hodel <drbrain@segment7.net>
+Sat Nov 9 22:35:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constansts):
- Allow RDoc comment to give friendly value for rb_define_const. Patch
- by Daniel Berger <djberg96 at gmail.com>, [ruby-patches-7499].
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constansts): Fix
- whitespace handling in constant comments.
+ * 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].
-Sun Dec 31 00:31:16 2006 Tadayoshi Funaba <tadf@dotrb.org>
+Sat Nov 9 20:56:12 2013 Narihiro Nakamura <authornari@gmail.com>
- * lib/date.rb, lib/date/format.rb: updated based on date2 4.0.
+ * ext/objspace/object_tracing.c: use declarations in internal.h.
-Thu Dec 14 18:29:13 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/objspace/objspace.c: ditto
- * ext/readline/readline.c: NetBSD editline does not have
- rl_username_completion_function() and rl_completion_matches().
- a patch from Takahiro Kambe <taca at back-street.net>.
- [ruby-dev:30008]
+Sat Nov 9 20:32:59 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 14 18:20:43 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * lib/irb/locale.rb (IRB::Locale::puts): typo fixed. a patch from
- NAKAMURA Usaku <usa@ruby-lang.org>. [ruby-dev:30012]
+Sat Nov 9 15:00:16 2013 Zachary Scott <e@zzak.io>
-Mon Dec 11 11:58:36 2006 Akinori MUSHA <knu@iDaemons.org>
+ * io.c: [DOC] ARGF.gets may return nil [Bug #9029] patch by znz
- * ext/digest/sha2/lib/sha2.rb: Moved one level up from under
- the superfluous subdirectory digest/.
+Sat Nov 9 14:54:52 2013 Zachary Scott <e@zzak.io>
-Mon Dec 11 11:46:18 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rss/*: [DOC] document various constants @steveklabnik [Bug #8812]
- * variable.c (rb_define_const): typo fixed.
+Sat Nov 9 14:50:09 2013 Zachary Scott <e@zzak.io>
-Mon Dec 11 09:36:29 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rss/rss.rb: [DOC] document Time#w3cdtf by @steveklabnik
+ [Bug #8821]
- * string.c (rb_str_aset): index double decode problem.
- [ruby-core:09695]
+Sat Nov 9 14:29:04 2013 Zachary Scott <e@zzak.io>
-Sat Dec 9 21:39:24 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/dl/cfunc.c: [DOC] fix typo in example [Bug #8944]
+ Patched by Heesob Park
- * eval.c (ruby_cleanup): keep the exception till after END blocks.
- [ruby-core:09675]
+Sat Nov 9 13:59:58 2013 Zachary Scott <e@zzak.io>
-Sat Dec 9 11:22:00 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/test/unit/assertions.rb: [DOC] better example for assert_send()
+ Patch by Andrew Grimm [Bug #8975]
- * lib/irb/locale.rb (IRB::Locale::search_file): ues File.exist?
- instead of File.exists?. a patch from Yutaka Kanemoto
- <kinpoco at gmail.com> in [ruby-dev:30000].
+Sat Nov 9 12:45:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Thu Dec 7 09:29:02 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * lib/weakref.rb (WeakRef::__setobj__): should support
- marshaling. [ruby-talk:228508]
+ * insns.def: ditto
+ * vm_core.h: ditto
+ * vm_insnhelper.c: ditto
- * lib/delegate.rb (Delegator::marshal_load): need to call
- __setobj__.
+Sat Nov 9 12:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Wed Dec 6 23:56:14 2006 Nobuyoshi Nakada <nobu@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.
- * Makefile.in, common.mk (NULLCMD): moved for platforms that empty
- command does not run. fixed: [ruby-dev:29994]
+ * 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
-Wed Dec 6 17:17:26 2006 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat Nov 9 09:22:29 2013 Masaya Tarui <tarui@ruby-lang.org>
- * configure.in (SITE_DIR): fixed to emtpy RUBY_SITE_LIB in config.h on
- NetBSD. fixed: [ruby-dev:29358]
+ * gc.c (gc_page_sweep, rgengc_rememberset_mark): Refactoring.
+ Get bitmaps directly.
-Tue Dec 5 00:59:05 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Nov 9 09:16:36 2013 Masaya Tarui <tarui@ruby-lang.org>
- * misc/ruby-mode.el (ruby-parse-partial): need to parse "/=" as
- self assignment operator, not regex. [ruby-talk:227324]
+ * gc.c (RVALUE_PROMOTE_INFANT): Refactoring. Remove duplicated nonsense
+ code.
-Mon Dec 4 10:48:03 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Nov 9 09:04:48 2013 Masaya Tarui <tarui@ruby-lang.org>
- * ruby.h (OFFT2NUM): use LONG2NUM() if sizeof(long) equals to
- sizeof(off_t).
+ * gc.c (gc_marks_test): Bugfix. Fix a struct member name for build
+ with RGENGC_CHECK_MODE.
-Mon Dec 4 10:43:46 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Nov 9 08:58:23 2013 Masaya Tarui <tarui@ruby-lang.org>
- * parse.y (dyna_init_gen): dvar initialization only if dvar is
- assigned inner block. [ruby-talk:227402]
+ * 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.
-Mon Dec 4 08:32:49 2006 Shugo Maeda <shugo@ruby-lang.org>
+Sat Nov 9 07:41:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/cgi.rb (CGI::QueryExtension::read_multipart): should quote
- boundary. JVN#84798830
+ * internal.h (rb_vm_backtrace_object, rb_gc_count): make prototype
+ declarations, not old-K&R style.
-Sat Dec 2 07:09:04 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sat Nov 9 06:11:14 2013 vo.x (Vit Ondruch) <vondruch@redhat.com>
- * ext/openssl/ossl_ocsp.c: OpenSSL::OCSP::OSCPError should be
- subclass of OpenSSL::OpenSSLError. [ruby-dev:29980]
+ * 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].
-Fri Dec 1 17:01:49 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Sat Nov 9 01:59:18 2013 Aman Gupta <ruby@tmm1.net>
- * gc.c (ruby_init_stack): decrease "stack level too deep" in Windows.
- merge from trunk.
+ * 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.
-Fri Dec 1 16:31:53 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sat Nov 9 00:26:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/tcltklib.c: shouldn't run the killed thread at callback.
- [ruby-talk: 227408]
+ * 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].
-Mon Nov 27 17:18:27 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Nov 8 18:35:31 2013 Masaki Matsushita <glass.saga@gmail.com>
- * sprintf.c (rb_f_sprintf): need not to truncate string if no
- width specifier given for %s. [ruby-dev:29952]
+ * lib/open3.rb: receive arguments as keyword arguments.
-Sun Nov 26 16:36:46 2006 URABE Shyouhei <shyouhei@ruby-lang.org>
+Fri Nov 8 13:19:26 2013 Masaki Matsushita <glass.saga@gmail.com>
- * version.h: addition of RUBY_PATCHLEVEL.
- * version.c: ditto.
+ * io.c (rb_io_open_with_args): use RARRAY_CONST_PTR().
-Fri Nov 24 10:17:51 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * io.c (rb_scan_open_args): use const qualifier for above.
- * bignum.c (bignorm): avoid segmentation. a patch from Hiroyuki
- Ito <ZXB01226@nifty.com>. [ruby-list:43012]
+ * io.c (rb_open_file): ditto.
-Thu Nov 23 10:38:40 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * io.c (rb_io_open_with_args): ditto.
- * eval.c (rb_mod_define_method): set implicit visibility only when
- it's called for the target class (ruby_cbase).
+Fri Nov 8 11:35:06 2013 Masaki Matsushita <glass.saga@gmail.com>
-Wed Nov 22 16:00:49 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * dir.c, pack.c, ruby.c, struct.c, vm_eval.c: use RARRAY_CONST_PTR().
- * ext/tk/extconf.rb: support --with-X11/--without-X11 option.
+Fri Nov 8 10:58:02 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/tk/README.tcltklib: add description about --with-X11-* option
- [ruby-talk:225166] and --with-X11/--without-X11 option.
+ * compile.c (iseq_build_from_ary_exception): use RARRAY_CONST_PTR().
- * ext/tk/tkutil/extconf.rb: able to be called manually
- [ruby-talk:225950].
+ * compile.c (iseq_build_from_ary_body): ditto.
-Wed Nov 15 23:22:54 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Nov 8 10:49:34 2013 Masaki Matsushita <glass.saga@gmail.com>
- * file.c (test_grpowned, rb_stat_grpowned): should honor
- supplementary group IDs. [ruby-core:09546]
+ * enumerator.c (append_method): use RARRAY_CONST_PTR().
-Thu Nov 9 03:15:22 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * enumerator.c (lazy_init_iterator): ditto.
- * eval.c (BEGIN_CALLARGS): ruby_block may be NULL even when
- ITER_PRE.
+Fri Nov 8 02:44:29 2013 Koichi Sasada <ko1@atdot.net>
-Tue Nov 7 18:34:34 2006 Akinori MUSHA <knu@iDaemons.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]
- * ext/digest/lib/digest/hmac.rb: Keep this out of the 1.8 tree
- until we reach a consensus that HMAC should be put under Digest.
+ This workaround introduces possibility to set malloc_limit as
+ wrong value (*1). However, this may be rare case. So I commit it.
-Tue Nov 7 18:05:01 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ *1: Without rest_sweep() here, gc_rest_sweep() can decrease
+ malloc_increase due to ruby_sized_xfree().
- * ext/tk/lib/tk/itemconfig.rb: minor bug fix.
+Fri Nov 8 02:50:25 2013 Zachary Scott <e@zzak.io>
-Mon Nov 6 20:11:20 2006 Kouhei Sutou <kou@cozmixng.org>
+ * lib/securerandom.rb: [DOC] specify arguments passed to ::random_bytes
+ By @chastell [Fixes GH-412] https://github.com/ruby/ruby/pull/412
- * lib/rss/0.9.rb (RSS::Rss): removed needless include.
+Fri Nov 8 02:43:01 2013 Zachary Scott <e@zzak.io>
-Mon Nov 6 15:41:55 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/objspace/object_tracing.c: [DOC] trace_object_allocations_stop
+ By @srawlins [Fixes GH-421] https://github.com/ruby/ruby/pull/421
- * ext/tk/lib/tk/itemconfig.rb: ext/tk/lib/tk/itemconfig.rb: bug
- fix on 'itemconfiginfo' method, and modify to make it easy to
- override 'itemconfiginfo' method.
+Fri Nov 8 02:34:20 2013 Zachary Scott <e@zzak.io>
- * ext/tk/lib/tkextlib/tile/treeview.rb : support Tile 0.7.8.
+ * 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
- * ext/tk/lib/tkextlib/version.rb : [new] add Tk::Tkextlib_RELEASE_DATE
- to get the information from scripts.
+Fri Nov 8 02:14:37 2013 Zachary Scott <e@zzak.io>
- * ext/tk/lib/tk.rb: load 'tkextlib/version.rb', and update RELEASE_DATE
+ * array.c: [DOC] Add note about negative indices in Array overview
+ By @ckaenzig [Fixes GH-427] https://github.com/ruby/ruby/pull/427
- * ext/tk/lib/tkextlib/SUPPORT_STATUS: update.
+Fri Nov 8 02:09:12 2013 Zachary Scott <e@zzak.io>
- * ext/tk/sample/editable_listbox.rb: [new] the listbox with editable
- items. It's one of the example about usage of Place geometry manager.
+ * lib/csv.rb: [DOC] Fix typo in CSV.parse_line by @funky-bibimbap
+ [Fixes GH-430] https://github.com/ruby/ruby/pull/430
- * ext/tk/sample/tktextio.rb: improve the functions of TkTextIO class.
- Those are required by 'irbtkw.rbw'.
+Fri Nov 8 01:01:54 2013 Zachary Scott <e@zzak.io>
- * ext/tk/sample/irbtkw.rbw: [new] IRB on Ruby/Tk. It doesn't need any
- real console. IRB works on a text widget without I/O blocking. That
- is, thread switching on IRB will work properly, even if on Windows.
+ * golf_prelude.rb: syntax formatting for whitespace [Fixes GH-425]
+ Patch by @edward https://github.com/ruby/ruby/pull/425
-Sun Nov 5 19:53:49 2006 Tadayoshi Funaba <tadf@dotrb.org>
+Thu Nov 7 19:36:09 2013 Koichi Sasada <ko1@atdot.net>
- * lib/date.rb: updated based on date2 3.9.7.
+ * gc.c: modify malloc_limit strategy.
-Sat Nov 4 13:13:57 2006 Shugo Maeda <shugo@ruby-lang.org>
+ * fix default values:
+ GC_MALLOC_LIMIT_GROWTH_FACTOR
+ GC_MALLOC_LIMIT: 8MB -> 16MB
+ GC_MALLOC_LIMIT_MAX: 384MB -> 32MB
- * lib/net/imap.rb: accept NOMODSEQ. [ruby-core:9002]
- (backported from HEAD)
+ * 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.
-Fri Nov 3 00:16:37 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Nov 7 11:06:05 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/socket/socket.c (ruby_getnameinfo__aix): AF_INET6 workaround
- for AIX. a patch from Yutaka Kanemoto <kinpoco AT gmail.com>.
- [ruby-dev:29744]
+ * array.c (rb_ary_shuffle_bang): use RARRAY_PTR_USE() without WB
+ because there are not new relations.
-Thu Nov 2 15:43:39 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Nov 7 10:34:12 2013 Masaki Matsushita <glass.saga@gmail.com>
- * parse.y (primary): should set NODE even when compstmt is NULL.
- merge from trunk. fixed: [ruby-dev:29732]
+ * array.c (rb_ary_sample): use rb_ary_dup().
-Thu Nov 2 14:48:30 2006 Akinori MUSHA <knu@iDaemons.org>
+Thu Nov 7 09:39:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/set.rb (Set#^): Fix XOR operation against a container that
- holds duplicate values. [issue: #6444]
+ * 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]
-Wed Nov 1 02:41:38 2006 Akinori MUSHA <knu@iDaemons.org>
+Wed Nov 6 21:30:55 2013 Masaya Tarui <tarui@ruby-lang.org>
- * ext/digest/lib/digest/hmac.rb (Digest::HMAC::update): Minor
- optimization.
+ * gc.c (gc_before_sweep): Change algorithm of malloc_limit to
+ conservative for closing to memory consumption of ruby 2.0.
- * ext/digest/digest.c (rb_digest_instance_equal): Allow comparing
- a digest instance with another of a different class.
+ * gc.c (GC_MALLOC_LIMIT, GC_MALLOC_LIMIT_GROWTH_FACTOR):
+ Adjust parameters for new algorithm.
-Wed Nov 1 01:05:13 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Nov 6 21:16:51 2013 Masaki Matsushita <glass.saga@gmail.com>
- * eval.c (rb_call0): fixed bug of zsuper with both of opt and rest.
- fixed: [ruby-list:42928]
+ * array.c (rb_ary_shift_m): use RARRAY_PTR_USE() without WB because
+ there are not new relations.
- * test/ruby/test_super.rb: add tests to check above bug.
+Wed Nov 6 21:05:20 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Oct 31 17:03:21 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * array.c (rb_ary_reverse): use RARRAY_PTR_USE().
- * time.c (time_dup): duplicate the class of original time.
- [ruby-core:09357]
+Wed Nov 6 19:30:44 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/time.rb (Time::make_time, Time::rfc2822, Time::httpdate):
- should respect subclasses. [ruby-core:09357]
+ * common.mk (help): add texts about gcbench.
-Mon Oct 30 23:40:52 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Nov 6 16:32:32 2013 Martin Duerst <duerst@it.aoyama.ac.jp>
- * Makefile.in (miniruby): add XLDFLAGS.
+ * lib/open3.rb: tweaked grammar in comments
- * configure.in (aix): use -bE option for miniruby. [ruby-dev:29698]
+Wed Nov 6 11:46:36 2013 Masaki Matsushita <glass.saga@gmail.com>
- * dir.c (glob_helper): get rid of possible memory leak.
+ * array.c (rb_ary_sample): use RARRAY_AREF() and RARRAY_PTR_USE()
+ instead of RARRAY_PTR().
- * win32/win32.c (cmdglob, rb_w32_cmdvector, rb_w32_opendir,
- rb_w32_get_environ): not to use GC before initialization.
+Wed Nov 6 10:37:07 2013 Masaki Matsushita <glass.saga@gmail.com>
-Mon Oct 30 19:29:20 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * array.c (rb_ary_and): defer hash creation and some refactoring.
- * bignum.c (rb_big2str0): use better approximation.
+Wed Nov 6 09:14:31 2013 Koichi Sasada <ko1@atdot.net>
-Mon Oct 30 18:35:33 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * benchmark/bm_vm1_gc_short_lived.rb: added.
+ These GC benchmarks do not reflect practical applications.
+ They are only for tuning.
- * bignum.c (rb_big2str0): wrong allocation length. a patch from
- U.Nakamura <usa at garbagecollect.jp> [ruby-dev:29710]
+ * benchmark/bm_vm1_gc_short_with_complex_long.rb: added.
-Mon Oct 30 12:34:02 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * benchmark/bm_vm1_gc_short_with_long.rb: added.
- * eval.c (rb_eval): fix commit miss. [ruby-dev:29707]
+ * benchmark/bm_vm1_gc_short_with_symbol.rb: added.
-Mon Oct 30 12:20:58 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * benchmark/bm_vm1_gc_wb_ary.rb: added.
- * bignum.c (rb_big2str0): a bug in length adjustment.
+ * benchmark/bm_vm1_gc_wb_obj.rb: added.
-Mon Oct 30 11:15:40 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * benchmark/bm_vm_thread_queue.rb: added.
+ This benchmark is added to know how fast C version of thread.so.
- * sprintf.c (rb_str_format): should preserve leading zero
- information for negative %b and %x. [ruby-talk:221347]
+Wed Nov 6 09:13:32 2013 Koichi Sasada <ko1@atdot.net>
-Thu Oct 26 21:05:58 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * gc.c: define RGENGC_ESTIMATE_OLDSPACE == 0 if USE_RGENGC is 0.
- * ext/openssl/ossl_pkcs7.c (ossl_pkcs7_verify): should clear error.
- (fix http://bugs.debian.org/394336)
+Wed Nov 6 07:13:18 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): ditto.
+ * gc.c (Init_GC): add GC::OPTS to show options.
-Thu Oct 26 15:21:10 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Nov 6 07:12:17 2013 Koichi Sasada <ko1@atdot.net>
- * ext/digest/digest.c (Init_digest): typo.
+ * benchmark/gc/gcbench.rb: add some options to make quiet.
-Wed Oct 25 17:23:28 2006 Akinori MUSHA <knu@iDaemons.org>
+Wed Nov 6 04:14:25 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/digest, test/digest/test_digest.rb: Merge from trunk:
- - Introduce versioning in Digest::Base API, and prefix C
- constants with RUBY_ and C type names with rb_ to avoid name
- clash in writing extensions.
- - Introduce Digest::Class and Digest::Instance for ease of
- implementing subclasses and add-ons.
- - Digest::Instance module requires and assumes that any instance
- be resettable and clonable. An instance method #new() is
- added so digest instances work just like digest classes.
- - The constructor does no longer take an initial string to feed;
- digest() and hexdigest() now do, instead. This allows digest
- classes to take their own hashing parameters.
- - Make some changes to digest() and hexdigest() class methods,
- which now take extra arguments, which are passed through to
- the constructor in an internal call.
- - Add #digest_length/size/length() and #block_length(),
- - Add the Digest::SHA2 class to wrap up SHA2 variants: SHA256,
- SHA384 and SHA512, hoping this module would make a decent
- example of a digest subclass written in Ruby.
- - Rip BubbleBabble support out of the base class and have a
- separate module named digest/bubblebabble.
- - Remove RD documents in favor of newly written and embedded
- RDoc documentation.
+ * 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 Oct 25 08:03:23 2006 Tadayoshi Funaba <tadf@dotrb.org>
+Tue Nov 5 21:21:47 2013 Tanaka Akira <akr@fsij.org>
- * lib/date/format.rb: updated based on date2 3.9.6.
- [ruby-core:09323]
+ * test/ruby/test_thread.rb (test_thread_join_in_trap):
+ Run the test in a different process.
-Sun Oct 22 14:48:31 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Nov 5 20:14:32 2013 Masaya Tarui <tarui@ruby-lang.org>
- * signal.c (ruby_signal): don't set SA_RESTART. a backport from
- the HEAD. [ruby-talk:220937] [ruby-talk:147220]
+ * gc.c (is_live_object): A hidden object may be a live object.
+ [ruby-dev:47788] [Bug #9072]
- * signal.c (Init_signal): avoid duplicated installation of SIGCHLD
- handler.
+Tue Nov 5 13:37:19 2013 Koichi Sasada <ko1@atdot.net>
-Sun Oct 22 16:47:56 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * string.c (rb_str_substr): should be infected with only original
- string, but not the shared string. fixed: [ruby-core:09152]
+ 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'.
- * string.c (rb_str_new4): keep shared string untainted when orignal
- string is tainted. fixed: [ruby-dev:29672]
+ To implement this feature, move memsize_of() function from
+ ext/objspace/objspace.c and expose rb_obj_memsize_of().
-Sun Oct 22 05:20:34 2006 URABE Shyouhei <shyouhei@ice.uec.ac.jp>
+ 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.
- * configure.in: alloca is broken; use C_ALLOCA instead.
- [ruby-dev:29416]
+ The macro RGENGC_ESTIMATE_OLDSPACE enables/disables this feature,
+ and turned off as default.
-Fri Oct 20 10:47:43 2006 NAKAMURA Usaku <usa@ruby-lang.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.
- * lib/mkmf.rb: fixed the bug of handling COMMON_MACROS.
+ * internal.h: expose rb_obj_memsize_of().
-Fri Oct 20 08:42:38 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/objspace.c: use rb_obj_memsize_of() function.
- * common.mk (NULLCMD): dummy command.
+ * cont.c (fiber_memsize): fix to check NULL.
- * bcc32/Makefile.sub (post-install-*): Borland make cannot ignore
- command-less double-colon rules. [ruby-dev:29676]
+ * variable.c (autoload_memsize): ditto.
-Fri Oct 20 00:37:07 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm.c (vm_memsize): ditto.
- * bcc32/Makefile.sub ($(LIBRUBY_SO)): execute pre-link hook.
+Tue Nov 5 04:03:07 2013 Koichi Sasada <ko1@atdot.net>
- * ext/extmk.rb: workaround for Borland make.
+ * gc.c (GC_MALLOC_LIMIT_MAX): fix default value 512MB -> 384MB.
+ 512MB is huge.
-Wed Oct 18 23:02:40 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Nov 5 03:31:23 2013 Koichi Sasada <ko1@atdot.net>
- * array.c (rb_ary_shift): shorten copy size. fixed: [ruby-list:42907]
+ * gc.c: add 3gen GC patch, but disabled as default.
- * signal.c (Init_signal): handle SIGTERM. fixed: [ruby-list:42895]
+ 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.
- * win32/win32.c (rb_w32_utime): allow NULL to set the current time.
- [ruby-talk:219248]
+ 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.
-Wed Oct 18 00:55:33 2006 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.
- * parse.y (parser_yylex): use particular enums. [ruby-core:09221]
+ To solve this problem, generational GC with more generations
+ technique is known. This patch implements three generations gen GC.
-Mon Oct 16 08:30:43 2006 Nobuyoshi Nakada <nobu@ruby-lang.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.
- * mkconfig.rb: *OBJS are not needed for extension libraries.
+ Representation of generations:
+ * Infant: !FL_PROMOTED and !oldgen_bitmap [00]
+ * Young : FL_PROMOTED and !oldgen_bitmap [10]
+ * Old : FL_PROMOTED and oldgen_bitmap [11]
- * {bcc32,wince,win32}/Makefile.sub (config.status): fixed typo,
- missing comma.
+ 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.
-Sun Oct 15 01:03:08 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ To evaluate this feature on more applications, I commit this patch.
+ Reports are very welcome.
- * lib/test/unit/collector/dir.rb (Collector::Dir#collect): append base
- directory but not prepend.
+ This patch includes some refactoring (renaming names, etc).
- * lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): do not
- join with dot. fixed: [ruby-core:09179]
+ * include/ruby/ruby.h: catch up 3gen GC.
-Sat Oct 14 23:39:50 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * .gdbinit: fix to show a prompt "[PROMOTED]" for promoted objects.
- * parse.y (singleton): no need to re-create NODE_SELF() again.
- [ruby-core:09177]
+Tue Nov 5 00:05:51 2013 Koichi Sasada <ko1@atdot.net>
-Sat Oct 14 23:25:31 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * node.h: catch up comments for last commit.
- * parse.y (parser_warning, parser_warn): some error message may
- contain format specifiers. a patch from Akinori MUSHA <knu at
- iDaemons.org>. [ruby-dev:29657]
+Tue Nov 5 00:02:00 2013 Koichi Sasada <ko1@atdot.net>
- * ext/bigdecimal/bigdecimal.c (VpException): ditto.
+ * include/ruby/ruby.h: rename FL_OLDGEN to FL_PROMOTED.
+ This flag represents that "this object is promoted at least once."
- * ext/dl/handle.c (rb_dlhandle_initialize): ditto.
+ * gc.c, debug.c, object.c: catch up this change.
- * ext/gdbm/gdbm.c (rb_gdbm_fatal): ditto.
+Mon Nov 4 22:20:16 2013 Tanaka Akira <akr@fsij.org>
-Sat Oct 14 08:24:45 2006 Akinori MUSHA <knu@iDaemons.org>
+ * test/xmlrpc: Don't use fixed ports: 8070 and 8071.
- * ext/digest/lib/digest/hmac: Back out the addition of digest/hmac
- for now because the API is too premature for a stable branch.
+Mon Nov 4 15:25:52 2013 Tanaka Akira <akr@fsij.org>
-Sat Oct 14 00:55:08 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/xmlrpc/webrick_testing.rb (start_server): Initialize the server
+ at main thread to fail early.
- * bcc32/Makefile.sub (post-install-ext): no longer needed.
+Mon Nov 4 10:08:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * bcc32/configure.bat: get rid of a quirk of Borland make, which
- sets empty macro in command line to "1".
+ * 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
-Fri Oct 13 22:50:43 2006 Tadayoshi Funaba <tadf@dotrb.org>
+Sun Nov 3 23:06:51 2013 Tanaka Akira <akr@fsij.org>
- * lib/date.rb: updated based on date2 3.9.5.
+ * sample/test.rb: Make temporary file names unique.
-Fri Oct 13 22:33:28 2006 Minero Aoki <aamine@loveruby.net>
+Sun Nov 3 20:41:17 2013 Tanaka Akira <akr@fsij.org>
- * lib/fileutils.rb (FileUtils.cp_r): dereference_root=true is
- default in Ruby 1.8. This line is wrongly removed in last commit.
+ * test/xmlrpc: Wrap definitions by TestXMLRPC module.
-Fri Oct 13 18:19:31 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Nov 3 20:23:38 2013 Tanaka Akira <akr@fsij.org>
- * object.c: Class#inherited RDoc added. a patch from Daniel
- Berger <djberg96 at gmail.com> [ruby-core:08942]
+ * test/xmlrpc/webrick_testing.rb (stop_server): Don't try to shutdown
+ the server if the server is not started.
-Fri Oct 13 02:30:12 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Nov 3 09:35:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/test/unit/collector/dir.rb (Collector::Dir#collect): prepend
- base directory to load path.
+ * load.c (rb_feature_p): deal with default loadable suffixes.
- * lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): should
- use the given File-like interface, but not File directly.
+ * load.c (load_lock): initialize statically linked extensions.
- * test/testunit/collector/test_dir.rb (TestDir::FileSystem): implement
- File-like methods correctly.
+ * load.c (search_required, rb_require_safe): deal with statically
+ linked extensions.
-Fri Oct 13 01:48:42 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * load.c (ruby_init_ext): defer initialization of statically linked
+ extensions until required actually. [Bug #8883]
- * lib/date.rb (Date::self.complete_hash): need to check if g is
- nil before dereference. [ruby-core:09116]
+Sat Nov 2 15:14:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Oct 13 00:34:26 2006 Yukihiro Matsumoto <matz@ruby-lang.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]
- * object.c (rb_mod_cvar_defined): wrong id check. a patch from
- Mauricio Fernandez <mfp at acm.org>. [ruby-core:09158]
+ * test/logger/test_logger.rb (TestLogDevice#run_children): don't use
+ fork.
- * object.c (rb_mod_cvar_get): typo fixed. [ruby-core:09168]
+Sat Nov 2 07:08:43 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * object.c (rb_mod_cvar_set): ditto.
-
-Wed Oct 11 22:21:41 2006 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/digest: Merge from trunk; metadata location changed,
- Digest::Base#reset() added, Digest::Base#equal() changed, and
- digest/hmac added with some modifications made for ruby 1.8.
-
-Tue Oct 10 17:24:12 2006 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * {bcc32,win32,wince}/Makefile.sub (config.status): shouldn't use
- copy command instead of install. use -run install.
-
-Tue Oct 10 16:49:16 2006 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/digest/digest.c (hexdigest_str_new, bubblebabble_str_new):
- Perform StringValue() checks properly.
-
- * ext/digest/digest.c: Use RSTRING_{PTR,LEN} macros.
-
-Tue Oct 10 13:49:53 2006 Akinori MUSHA <knu@iDaemons.org>
-
- * ext/digest: Merge from trunk; apply all changes since the
- initial import, except for the removal of compatibility stub
- libraries (md5.rb and sha1.rb).
-
-Mon Oct 9 23:46:29 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/parsedate.rb: documentation patch from Konrad Meyer
- <konrad.meyer@gmail.com>. [ruby-doc:1238]
-
- * lib/open3.rb, lib/ping.rb: ditto.
-
-Mon Oct 9 22:56:12 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/rexml/encoding.rb (REXML::Encoding::check_encoding): spaces
- are allowed around equal sign. [ruby-core:09032]
-
- * lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser): ditto.
-
-Sat Oct 7 23:53:08 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * string.c (rb_str_scan): small documentation fix.
- [ruby-core:09007]
-
-Sat Oct 7 23:44:33 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * bignum.c (rb_big_rshift): a bug in right shift of negative
- bignums. [ruby-core:09020]
-
-Sat Oct 7 00:27:58 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * class.c (rb_include_module): remove unnecessary check.
- [ruby-talk:218402]
-
-Fri Oct 6 04:30:30 2006 Akinori MUSHA <knu@iDaemons.org>
-
- * sample/openssl/c_rehash.rb: Use digest/md5 instead of obsolete md5.
-
-Wed Oct 4 18:47:25 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tkextlib/*: bugfix and update
- (see ext/tk/ChangeLog.tkextlib).
-
-Wed Oct 4 17:25:14 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_call): check protected visibility based on real self,
- not ruby_frame->self. [ruby-talk:217822]
-
-Wed Oct 4 08:52:30 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * test/optparse/test_getopts.rb: changed the class name of test case
- to get rid of conflict with test_optparse.rb.
-
-Tue Oct 3 23:32:27 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/test/unit/testcase.rb (Test::Unit::TestCase.suite): test name
- must be string. fixed: [ruby-core:08978]
-
-Mon Oct 2 23:47:55 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::COLLECTORS):
- base directory should be lower precedence. fixed: [ruby-dev:29622]
-
- * lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): typo.
-
- * lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):
- load expanded path. fixed: [ruby-dev:29621]
-
-Mon Oct 2 15:49:19 2006 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * instruby.rb: batfile should be CRLF'ed.
-
-Mon Oct 2 01:24:26 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * common.mk (test-all): separate directory where running test cases
- from source tree.
-
- * lib/test/unit/autorunner.rb (options): added --basedir, --workdir
- and --load-path options.
-
- * lib/test/unit/collector/dir.rb (recursive_collect, collect_file):
- base directory support.
-
-Sun Oct 1 23:56:52 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * Makefile.in, common.mk, ext/extmk.rb, win{32,ce}/Makefile.in: keep
- LIBRUBY_SO unless need to be removed.
-
-Sun Oct 1 23:12:19 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/optparse.rb (OptionParser#make_switch): pass arguments directly.
-
-Sat Sep 30 15:12:25 2006 Tadayoshi Funaba <tadf@dotrb.org>
-
- * lib/date.rb, lib/date/format.rb: updated based on date2 3.9.4.
-
-Fri Sep 29 12:11:04 2006 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * jcode.rb (succ!): call original succ! if $KCODE == 'n'.
- fixed: [ruby-talk:216845]
-
-Fri Sep 29 11:43:40 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (try_func): revert fallback checking undeclared function.
- fixed: [ruby-core:08949]
-
-Fri Sep 29 09:56:56 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/extmk.rb: extout is needed for also clean.
- fixed: [ruby-core:08944]
-
- * lib/optparse.rb (OptionParser::Switch#conv_arg): unsplat by
- Proc#call if no conversion is given.
-
-Thu Sep 28 23:59:31 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * node.h (struct thread): declare win32_exception_list on cygwin and
- win32 regardless if it is implemented. Provisional fix for
- [ruby-core:08917].
-
-Thu Sep 28 20:53:16 2006 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * lib/tmpdir.rb: use return value of getdir.call for length.
-
-Wed Sep 27 01:04:49 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (try_func): check function pointer first and macro next.
-
- * lib/mkmf.rb (have_type): simplified with typedef and sizeof.
-
-Tue Sep 26 23:57:03 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/optparse.rb (OptionParser#getopts): use strings as key.
- fixed: [ruby-dev:29614]
-
-Tue Sep 26 15:31:26 2006 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * {win32,wince}/Makefile.sub (CPP): check predefined value.
-
-Tue Sep 26 07:55:16 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * array.c (rb_ary_shift): should not move memory region if array
- body is shared. a patch from Kent Sibilev <ksruby at gmail.com>.
- [ruby-core:08922]
-
-Mon Sep 25 22:26:26 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * file.c (rb_path_end): skip root directory. fixed: [ruby-core:08913]
-
- * lib/mkmf.rb (init_mkmf): set default $LDFLAGS. Patch by Michal
- Suchanek <hramrach at centrum.cz>. [ruby-talk:216256]
+ * 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]
-Mon Sep 25 08:14:43 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Nov 1 23:24:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c (rb_ary_shift): should clear shifting top element.
- [ruby-talk:216055]
+ * gc.c (wmap_mark_map): mark live objects only, but delete zombies.
+ [ruby-dev:47787] [Bug #9069]
- * array.c (rb_ary_shift): avoid creating shared object if array
- size is small.
+Fri Nov 1 22:45:54 2013 Masaya Tarui <tarui@ruby-lang.org>
-Mon Sep 25 08:11:35 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (struct heap_page, gc_page_sweep, gc_sweep): Refactoring for
+ performance. Add before_sweep condition to heap_page structure.
- * random.c (rb_f_rand): RDoc typo fix. a patch from Frederick
- Cheung <fred at 82ask.com>. [ruby-talk:216047]
+ * gc.c (rb_gc_force_recycle): Use before_sweep member.
-Sun Sep 24 22:28:20 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (heap_is_before_sweep, is_before_sweep): Remove. They have not
+ already been used.
- * runruby.rb: extension library scripts moved into common directory.
+Fri Nov 1 22:20:28 2013 Masaya Tarui <tarui@ruby-lang.org>
-Sun Sep 24 14:59:50 2006 Tanaka Akira <akr@fsij.org>
+ * gc.c (make_deferred): Refactoring. Collect codes which should be
+ atomic.
- * node.h (struct thread): ia64 support is broken by sandbox patch.
+ * gc.c (make_io_deferred, obj_free, rb_objspace_call_finalizer,
+ gc_page_sweep): Correspond to the above.
-Sun Sep 24 12:11:16 2006 Tadayoshi Funaba <tadf@dotrb.org>
+Fri Nov 1 21:40:35 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/date.rb, lib/date/format.rb: updated based on date2 3.9.3.
+ * gc.c (typedef struct rb_objspace): Refactoring. Move some members
+ into profile member.
-Sat Sep 23 23:24:57 2006 why the lucky stiff <why@ruby-lang.org>
+ * gc.c (newobj_of): Correspond to the above.
- * eval.c (rb_thread_save_context, rb_thread_restore_context):
- sandbox hook to save and restore sandbox state.
+ * gc.c (finalize_list): Ditto.
- * eval.c (thread_no_ensure): added THREAD_NO_ENSURE thread flag.
+ * gc.c (objspace_live_num): Ditto.
- * eval.c (rb_thread_kill_bang): Thread#kill! uses the above flag
- to circumvent ensure, in order to prevent endless loops.
- [ruby-core:08768]
+ * gc.c (gc_page_sweep): Ditto.
- * eval.c (rb_thread_kill): fix Thread#kill docs, which returns
- the thread object in all cases.
+ * gc.c (rb_gc_force_recycle): Ditto.
- * node.h: expose the rb_jmpbuf_t and rb_thread_t structs, along
- with the thread flags. used by the sandbox extension.
+ * gc.c (garbage_collect_body): Ditto.
- * ruby.h: extern rb_eThreadError, so sandbox can swap it.
+ * gc.c (rb_gc_count): Ditto.
-Sat Sep 23 21:34:15 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (gc_stat): Ditto.
- * lib/cgi.rb (CGI::QueryExtension::read_multipart): CGI content
- may be empty. a patch from Jamis Buck <jamis at 37signals.com>.
+ * gc.c (gc_prof_set_heap_info): Ditto.
-Sat Sep 23 08:35:53 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (gc_profile_dump_on): Ditto.
- * lib/rdoc/ri/ri_options.rb: prevent NameError. [ruby-dev:29597]
+Fri Nov 1 20:53:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Sep 23 01:04:20 2006 Tadayoshi Funaba <tadf@dotrb.org>
+ * string.c (rb_str_scrub): fix typo, should yield invalid byte
+ sequence to be scrubbed. reported by znz at IRC.
- * lib/date.rb, lib/date/format.rb: updated based on date2 3.9.2.
+Fri Nov 1 17:25:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Sep 22 02:06:26 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (is_live_object): finalizer may not run because of lazy-sweep.
+ [ruby-dev:47786] [Bug #9069]
- * .cvsignore: ignore timestamp files and installed list file.
+Fri Nov 1 16:55:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Sep 22 01:36:34 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c (rb_str_scrub): export with fixed length arguments, and
+ allow nil as replacement string instead of omitting.
- * instruby.rb: include FileUtils unconditionally.
+Fri Nov 1 06:20:44 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Thu Sep 21 22:56:20 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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]
- * common.mk (no-install): not install rdoc actually.
+Fri Nov 1 01:08:33 2013 Koichi Sasada <ko1@atdot.net>
- * common.mk (install-doc, no-install-doc): use instruby.rb.
+ * benchmark/gc/gcbench.rb: print HWM (high water mark) if possible.
- * instruby.rb: rdoc installation.
+Thu Oct 31 21:48:31 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/extmk.rb: expand ruby executable names.
+ * lib/rexml/parsers/streamparser.rb: Add dependency file require.
+ [Bug #9062] [ruby-dev:47779]
+ Reported by Ippei Obayashi. Thanks!!!
-Thu Sep 21 13:55:07 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Oct 31 14:09:32 2013 Koichi Sasada <ko1@atdot.net>
- * ext/etc/etc.c (etc_getpwuid): uid integer should be wraped in
- uid_t value. [ruby-core:08897]
+ * vm_method.c (rb_method_entry_make): fix to pass an ISeq value.
+ OBJ_WRITTEN() accepts only VALUE.
- * ext/etc/etc.c (etc_getpwuid): uid_t may be bigger than plain
- 'int' type.
+Wed Oct 30 19:07:57 2013 Akinori MUSHA <knu@iDaemons.org>
-Wed Sep 20 23:17:41 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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]
- * common.mk (pre-install-doc): create data directory before install.
+Wed Oct 30 12:44:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/mkmf.rb (dir_re): fixed typo.
+ * win32/Makefile.sub (config.status): add missing variables,
+ PLATFORM_DIR and THREAD_MODEL.
- * lib/mkmf.rb (install_dirs): remove extra slash.
+Wed Oct 30 12:20:32 2013 Tanaka Akira <akr@fsij.org>
-Wed Sep 20 09:53:38 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * time.c (v2w): Normalize a rational value to an integer if possible.
+ [ruby-core:58070] [Bug #9059] reported by Isaac Schwabacher.
- * {bcc32,win32,wince}/Makefile.sub (INSTALLED_LIST): need to define
- this macro to install.
+Wed Oct 30 12:08:41 2013 Masaki Matsushita <glass.saga@gmail.com>
-Wed Sep 20 09:43:10 2006 Shugo Maeda <shugo@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.
- * lib/net/imap.rb: allow extra spaces in responses.
- Thanks, Tom Soderlund. (backported from HEAD)
+Wed Oct 30 03:25:10 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Wed Sep 20 09:25:39 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: make less garbage when
+ testing if a string is binary.
- * ext/gdbm/gdbm.c: add RDoc documentation. a patch from Peter
- Adolphs <futzilogik at users dot sourceforge dot net>.
- [ruby-doc:1223]
+Wed Oct 30 03:08:24 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Tue Sep 19 01:28:00 2006 Minero Aoki <aamine@loveruby.net>
+ * 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
- * lib/fileutils.rb: backport from HEAD (rev 1.71).
+ * test/psych/test_string.rb: test for fix
- * lib/fileutils.rb (FileUtils.cp_r): new option
- :remove_destination.
+Tue Oct 29 23:01:18 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Sep 19 00:42:15 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (rb_ary_zip): some refactoring.
- * object.c (rb_obj_ivar_defined, rb_mod_cvar_defined): new methods,
- Kernel#instance_variable_defined? and Module#class_variable_defined?.
- [ruby-dev:29587]
+Tue Oct 29 22:11:37 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/date/format.rb (Date::Bag#method_missing): use new method,
- instance_variable_defined? to check if an instance variable is
- defined. fixed: [ruby-dev:29554]
- -- This didn't fix anything.
+ * array.c (rb_ary_uniq_bang): use st_foreach() instead of for loop.
-Sun Sep 17 23:44:58 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Oct 29 20:01:58 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/rdoc.rb (RDoc::RDoc#document): scan only files modified
- after the previous generation.
+ * add RUBY_TYPED_FREE_IMMEDIATELY to data types which only use
+ safe functions during garbage collection such as xfree().
-Sun Sep 17 17:42:13 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ 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.
- * common.mk (install-doc): reverted.
+ 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.
- * instruby.rb: stores file name list without destdir prefix.
+ * cont.c: ditto.
- * lib/rdoc/generators/ri_generator.rb: do not chdir twice.
+ * dir.c: ditto.
-Sat Sep 16 23:14:29 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * encoding.c: ditto.
- * ext/pty/pty.c (establishShell): remove remaining unused line.
+ * enumerator.c: ditto.
-Sat Sep 16 16:40:44 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * error.c: ditto.
- * Makefile.in, common.in, instruby.rb, ext/extmk.rb, lib/mkmf.rb:
- use instruby.rb to install extensions instead of ext/extmk.rb.
+ * file.c: ditto.
- * instruby.rb: store installed list into the file.
+ * gc.c: ditto.
- * ext/dbm/extconf.rb: allow multiple candidates for dbm-type.
+ * io.c: ditto.
- * ext/io/wait/extconf.rb: suspicious checking_for.
+ * iseq.c: ditto.
- * ext/pty/pty.c (establishShell): parent pid is not used.
+ * marshal.c: ditto.
- * ext/pty/pty.c (freeDevice): not used.
+ * parse.y: ditto.
- * ext/pty/pty.c (get_device_once): removed garbage right brace.
+ * proc.c: ditto.
- * lib/mkmf.rb (checking_for): improved the messages.
+ * process.c: ditto.
-Thu Sep 14 16:11:15 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * random.c: ditto.
- * string.c (rb_str_intern): raise SecurityError only when $SAFE
- level is greater than zero. [ruby-core:08862]
+ * thread.c: ditto.
- * parse.y (rb_interned_p): new function to check if a string is
- already interned.
+ * time.c: ditto.
- * object.c (str_to_id): use rb_str_intern().
+ * transcode.c: ditto.
-Wed Sep 13 18:43:05 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * variable.c: ditto.
- * README.EXT: English adjustment. [ruby-core:08851] and
- [ruby-core:08852]
+ * vm.c: ditto.
-Wed Sep 13 18:25:18 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm_backtrace.c: ditto.
- * misc/ruby-mode.el (ruby-parse-partial): better here-doc support.
- a patch from Marshall T. Vandegrift <llasram at gmail.com>.
- [ruby-core:08804]
+ * vm_trace.c: ditto.
-Wed Sep 13 16:43:36 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c: ditto.
- * string.c (rb_str_intern): prohibit interning tainted string.
+ * ext/objspace/objspace.c: ditto.
-Wed Sep 13 01:14:21 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/stringio/stringio.c: ditto.
- * lib/optparse.rb (OptionParser#getopts): works with pre-registered
- options. [ruby-core:08826]
+ * ext/strscan/strscan.c: ditto.
-Sun Sep 10 20:27:13 2006 Tadayoshi Funaba <tadf@dotrb.org>
+Tue Oct 29 19:48:33 2013 Koichi Sasada <ko1@atdot.net>
- * lib/date.rb, lib/date/format.rb: updated based on date2 3.9.1.
+ * include/ruby/ruby.h: fix typo (FL_WB_PROTECT -> FL_WB_PROTECTED).
-Tue Jan 10 09:18:03 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Oct 29 18:45:08 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (stack_extend): fixed prototype.
+ * vm_trace.c (tp_free): removed because empty free function.
+ Use RUBY_TYPED_NEVER_FREE instead.
- * eval.c (rb_require_safe): prevent extension from loading twice.
- fixed: [ruby-dev:29523]
+Tue Oct 29 18:37:33 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 9 23:50:38 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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).
- * bignum.c (rb_big_mul0): bignum multiplication without
- normalization.
+ * gc.c (obj_free): support RUBY_TYPED_FREE_IMMEDIATELY.
- * bignum.c (rb_big_pow): use rb_big_mul0(). [ruby-dev:29547]
+Tue Oct 29 16:49:03 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 9 14:08:38 2006 Eric Hodel <drbrain@segment7.net>
+ * gc.c (vm_malloc_increase): decrease it more carefully.
- * lib/test/unit/testcase.rb (Test::Unit::TestCase#run): Rescue
- Exception in Test::Unit::TestCase#run. [ruby-core:08783]
+Tue Oct 29 16:24:52 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 9 04:55:59 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (heap_page_resurrect): return a page in tomb heap even if
+ freelist is NULL.
- * lib/pstore.rb: open all in binary mode, and get rid of the quirk of
- msvcrt. fixed: [ruby-dev:29518]
+Tue Oct 29 15:46:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Sep 9 04:54:42 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ruby_atomic.h (ATOMIC_SIZE_CAS): new macro, compare and swap size_t.
- * Makefile.in, win32/Makefile.sub (MINIRUBY): append MINIRUBYOPT.
+Tue Oct 29 12:08:05 2013 Tanaka Akira <akr@fsij.org>
- * mkconfig.rb, ext/extmk.rb, lib/mkmf.rb, win32/mkexports.rb: suppress
- warnings with $VERBOSE.
+ * ext/readline/readline.c (readline_getc): Consider
+ NULL as input.
- * ext/extmk.rb: Proc#call does not pass the block in 1.8.
+Tue Oct 29 11:10:08 2013 Aman Gupta <ruby@tmm1.net>
- * win32/resource.rb: add more info.
+ * 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.
-Fri Sep 8 10:03:59 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Tue Oct 29 09:53:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookies): new
- method to parse multiple cookies per Set-Cookie header.
- Thanks to Aaron Patterson <aaron_patterson at speakeasy.net>.
- [ruby-core:08802]
+ * 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.
-Fri Sep 8 08:59:30 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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
- * win32/Makefile.sub, win32/configure.bat win32/setup.mak: program
- name transform.
+ * class.c, include/ruby/intern.h, variable.c, vm_method.c: add
+ rb_clear_constant_cache
-Fri Sep 8 01:33:08 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * compile.c, vm_core.h, vm_insnhelper.c: rename vmstat field in
+ rb_call_info_struct to method_state
- * ruby.h (RSTRING_PTR): add migration macro.
+ * vm_method.c: rename vmstat field in struct cache_entry to method_state
- * ruby.h (RARRAY_PTR): ditto.
+Mon Oct 28 23:26:04 2013 Tanaka Akira <akr@fsij.org>
-Thu Sep 7 23:27:05 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/readline/test_readline.rb (teardown): Clear Readline.input and
+ Readline.output.
- * file.c (path_check_0, fpath_check): disable path check on cygwin.
- [ruby-talk:213074]
+Mon Oct 28 21:35:31 2013 Tanaka Akira <akr@fsij.org>
-Wed Sep 06 12:05:19 2006 NARUSE, Yui <naruse@ruby-lang.org>
+ * ext/-test-/file/depend, ext/-test-/postponed_job/depend,
+ ext/-test-/tracepoint/depend: New files for dependencies.
- * ext/nkf/lib/kconv.rb (Kconv::RegexpEucjp): fix regexp for euc-jp
- [ruby-dev:29344]
+Mon Oct 28 15:32:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/nkf/lib/kconv.rb (Kconv::toeuc): remove -m0 [ruby-dev:29505]
+ * ext/openssl/depend (ossl.o): work around of dependency of
+ thread_native.h, which depends on headers by THREAD_MODEL.
+ [ruby-dev:47777]
-Tue Sep 5 06:47:22 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/openssl/extconf.rb: need THREAD_MODEL.
- * time.c (time_to_s): variable declaration after an execution
- statement.
-
-Tue Sep 5 05:56:51 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * numeric.c (flo_hash): improve collision. fixed: [ruby-dev:29352]
-
-Tue Sep 5 05:49:41 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * file.c (path_check_0): check if sticky bit is set on parent
- directories for executable path. fixed: [ruby-dev:29415]
-
-Tue Sep 5 05:03:46 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * numeric.c (fix_plus): addition in Fixnum will never overflow
- long. a patch from Ondrej Bilka <neleai at seznam.cz>.
- [ruby-core:08794]
-
- * numeric.c (fix_minus): ditto.
-
- * bignum.c (rb_big_pow): eagerly truncate resulting bignum.
- [ruby-core:08794]
-
-Mon Sep 4 23:15:34 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * time.c (time_to_s): make it conform to RFC2822 date format.
- [ruby-dev:29467]
-
-Mon Sep 4 21:43:57 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/dbm/extconf.rb: create makefile according to the result of check
- for dbm header. fixed: [ruby-dev:29445]
-
-Mon Sep 4 21:42:35 2006 Tadayoshi Funaba <tadf@dotrb.org>
-
- * lib/date.rb, lib/date/format.rb: updated based on date2 3.9.
-
-Mon Sep 4 21:14:20 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * time.c (time_strftime): include nul character. fixed: [ruby-dev:29422]
-
-Mon Sep 4 16:29:33 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Oct 28 14:57:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/cgi.rb (CGI::out): specify -m0 -x option for nkf.
- [ruby-dev:29284]
+ * load.c (ruby_init_ext): share feature names between frame name and
+ provided features.
-Mon Sep 4 16:13:23 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Oct 28 14:41:27 2013 Akinori MUSHA <knu@iDaemons.org>
- * io.c (pipe_open): command name should not contain null bytes.
- [ruby-dev:29421]
+ * misc/ruby-electric.el: Import ruby-electric.el 2.1 from
+ https://github.com/knu/ruby-electric.el.
- * process.c (proc_spawn): ditto.
+ * Hitting the newline-and-indent key within a comment fires
+ comment-indent-new-line.
- * process.c (proc_spawn_n): ditto.
+ * Introduce a new feature
+ `ruby-electric-autoindent-on-closing-char`.
- * process.c (rb_f_system): ditto.
+ * Fix fallback behavior of ruby-electric-space/return that
+ caused error with auto-complete.
-Sun Sep 3 15:32:44 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Oct 28 13:17:17 2013 Or Cohen <orc@fewbytes.com>
- * lib/mkmf.rb: get rid of nil.to_s.
+ * error.c (name_err_to_s): remove no longer needed overriding, since
+ r30455 which made exc_to_s almost same. Fixes [GH-413].
-Sun Sep 3 06:24:38 2006 Tanaka Akira <akr@fsij.org>
+Mon Oct 28 12:42:11 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/socket.c (ruby_connect): sockerrlen should be socklen_t.
+ * common.mk, ext/objspace/depend, ext/coverage/depend,
+ ext/-test-/debug/depend, ext/date/depend: Update dependencies.
-Sun Sep 3 04:40:42 2006 Tanaka Akira <akr@fsij.org>
+Mon Oct 28 09:29:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/socket/extconf.rb: check arpa/inet.h for ntohs.
+ * vm.c: vm_clear_all_cache is not necessary now we use a 64 bit counter
+ for global state version.
- * ext/socket/socket.c: include arpa/inet.h if available.
+ * vm_insnhelper.h: ruby_vm_global_state_version overflow is unnecessary
-Sun Sep 3 02:34:55 2006 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Mon Oct 28 07:47:32 2013 Aman Gupta <ruby@tmm1.net>
- * lib/drb/unix.rb (DRbUNIXSocket#close): don't get path if client mode.
- [ruby-dev:29417]
+ * vm_backtrace.c (rb_profile_frame_classpath): do not use rb_inspect
+ directly, since it might have a custom implementation or show ivars.
-Sun Sep 3 01:45:17 2006 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Mon Oct 28 04:10:41 2013 Aman Gupta <ruby@tmm1.net>
- * lib/drb/acl.rb (ACLEntry#initialize): examine whether '*' is
- included before IPAddr.new. [ruby-dev:29406]
+ * 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.
-Sat Sep 2 13:23:01 2006 Tanaka Akira <akr@fsij.org>
+Mon Oct 28 00:52:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * common.mk (ia64.o): use the compiler driver to assemble ia64.s
- to use appropriate ABI.
+ * struct.c (new_struct): fix warning message, class name and encoding.
-Sat Sep 2 03:36:22 2006 Tanaka Akira <akr@fsij.org>
+Sun Oct 27 20:53:08 2013 Tanaka Akira <akr@fsij.org>
- * common.mk, configure.in, defines.h, eval.c, gc.c, main.c,
- numeric.c, ruby.h, ia64.s: backport IA64 HP-UX support.
+ * 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.
-Fri Sep 1 13:52:57 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ [ruby-dev:47033] [Bug #8749] reported by Nobuhiro IMAI.
+ [ruby-core:57951] [Bug #9040] reported by Eamonn Webster.
- * ext/tk/lib/tk/font.rb: TkFont#current_configinfo() doesn't work
- on Tcl/Tk8.x.
+Sat Oct 26 19:31:28 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Thu Aug 31 12:46:55 2006 why the lucky stiff <why@ruby-lang.org>
+ * gc.c: catch up recent changes to compile on GC_DEBUG,
+ RGENGC_CHECK_MODE.
- * eval.c (ruby_init): rename top_cref to ruby_top_cref and export,
- along with ruby_cref, for use by the sandbox. [ruby-core:08762]
+Sat Oct 26 19:08:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * node.h: ditto.
+ * range.c (range_initialize_copy): disallow to modify after
+ initialized.
-Tue Aug 29 19:10:10 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Oct 26 17:48:54 2013 Tanaka Akira <akr@fsij.org>
- * hash.c (rb_hash_s_create): fixed memory leak, based on the patch
- by Kent Sibilev <ksruby at gmail.com>. fixed: [ruby-talk:211233]
+ * lib/open-uri.rb (meta_add_field): : Re-implemented.
+ [ruby-core:58017] [Bug #9051] patch by Eamonn Webster.
-Mon Aug 28 11:36:02 2006 Eric Hodel <drbrain@segment7.net>
+Sat Oct 26 14:35:09 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/parsers/parse_rb.rb: Fix typo. Submitted by
- <calamitas at gmail.com>. [ruby-core:08724]
+ * gc.c (gc_profile_dump_on): use "Page" terminology.
-Mon Aug 28 07:53:44 2006 Eric Hodel <drbrain@segment7.net>
+Sat Oct 26 13:25:45 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/ri/ri_formatter.rb: Don't unescape HTML in HtmlFormatter.
- Submitted by Kent Sibilev <ksruby at gmail.com>. [ruby-core:08392].
+ * gc.c (gc_sweep, gc_heap_lazy_sweep): fix measurement code.
+ We only need one sweep time measurement without lazy sweep.
-Mon Aug 28 07:25:45 2006 Eric Hodel <drbrain@segment7.net>
+Sat Oct 26 11:59:13 2013 Tanaka Akira <akr@fsij.org>
- * file.c (File#size?): Fix documentation submitted by Rick Ohnemus.
- ruby-Bugs-5529. [ruby-core:08725]
+ * 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).
-Sat Aug 26 08:07:13 2006 Tadayoshi Funaba <tadf@dotrb.org>
+Sat Oct 26 11:35:22 2013 Koichi Sasada <ko1@atdot.net>
- * lib/date.rb, lib/date/format.rb: updated based on date2 3.8.2.
+ * gc.c: tuning parameters.
-Fri Aug 25 22:32:04 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (GC_MALLOC_LIMIT): change default value to 16MB.
- * lib/rexml/source.rb (REXML::IOSource#initialize): encoding have to
- be set with the accessor. fixed: [ruby-list:42737]
+ * gc.c (GC_MALLOC_LIMIT_GROWTH_FACTOR): change default value to 2.0.
-Fri Aug 25 17:15:17 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (gc_before_sweep): change decrease ratio of `malloc_limit'
+ from 1/4 to 1/10.
- * stable version 1.8.5 released.
+Sat Oct 26 11:30:07 2013 Koichi Sasada <ko1@atdot.net>
-Fri Aug 25 17:02:06 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * gc.c (gc_sweep): typo fixed.
+Sat Oct 26 06:35:41 2013 Masaya Tarui <tarui@ruby-lang.org>
-Tue Aug 22 18:47:51 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (gc_before_heap_sweep): Restructure code to mean clearly.
+ heap->freelist is connected to end of list.
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::handle_method):
- rdoc documents C module methods as instance methods. a patch in
- [ruby-core:08536].
+Sat Oct 26 04:01:35 2013 Koichi Sasada <ko1@atdot.net>
-Sat Aug 19 14:15:02 2006 NAKAMURA Usaku <usa@ruby-lang.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.
- * win32/Makefile.sub (config.status): include winsock2.h instead of
- winsock.h when --with-winsock2 is specified.
- fixed: [ruby-dev:29296]
+Thu Oct 24 21:57:24 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
-Sat Aug 19 11:28:08 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * parse.y: Remove +(binary) and -(binary) special cases
+ [Feature #9048]
- * file.c (rb_file_s_rename): use errno if set properly.
- fixed: [ruby-dev:29293]
+Thu Oct 24 12:45:53 2013 Zachary Scott <e@zzak.io>
-Sat Aug 19 11:09:23 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * object.c: [DOC] Document first argument also takes string for:
- * parse.y (then): remove semicolon warning. [ruby-dev:29299]
+ rb_mod_const_get, rb_mod_const_set, rb_mod_const_defined
-Thu Aug 17 19:15:16 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ Also added note about NameError exception for invalid constant name
- * file.c (rb_stat_[rRwWxX]): check for super user.
- fixed: [ruby-core:08616]
+Thu Oct 24 12:23:58 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Thu Aug 17 14:47:06 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c (rb_thread_terminate_all): add a comment why we need
+ state check and call terminate_i again.
- * lib/mkmf.rb: added rdoc by Daniel Berger. [ruby-core:08177]
+Thu Oct 24 12:15:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Thu Aug 17 00:39:05 2006 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * thread.c (rb_thread_terminate_all): add a comment why infinite
+ sleep is safe.
- * lib/rinda/ring.rb (do_reply): Fix for RingServer fails to find a
- TupleSpace when TupleSpace resides in the same ruby process with
- RingServer. a patch from Kent Sibilev. [ruby-core:08453]
+Thu Oct 24 07:41:42 2013 Aman Gupta <ruby@tmm1.net>
-Wed Aug 16 11:45:36 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * process.c (proc_setuid, proc_setgid, proc_seteuid, proc_setegid):
- get rid of bogus implementations on Mac OS X.
+Thu Oct 24 01:34:12 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 15 19:10:18 2006 Eric Hodel <drbrain@segment7.net>
+ * include/ruby/win32.h (rb_infinity_float): suppress overflow in
+ constant arithmetic warnings. [ruby-core:57981] [Bug #9044]
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_class_comment): Fix
- broken class-level documentation.
+Thu Oct 24 00:11:24 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
-Wed Aug 16 11:09:26 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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]
- * ruby.c (set_arg0): fill argv other than the first with an empty
- string instead of NULL.
+ * test/ostruct/test_ostruct.rb: Added tests for above.
-Wed Aug 16 11:08:00 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 24 00:10:22 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * win32/win32.h: removed an excess macro. fixed: [ruby-dev:29258]
+ * array.c: Add Array#to_h [Feature #7292]
-Tue Aug 8 23:49:06 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * enum.c: Add Enumerable#to_h
- * lib/irb/extend-command.rb (IRB::ExtendCommandBundle): pacify
- RDoc. a patch from Eric Hodel <drbrain at segment7.net>.
- [ruby-core:08522]
+Wed Oct 23 23:48:28 2013 Aman Gupta <ruby@tmm1.net>
-Tue Aug 8 11:32:54 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * 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--
- * Makefile.in, common.mk, configure.in: fix for platforms without
- rm. patches from Yutaka kanemoto <kinpoco at gmail.com>.
- [ruby-dev:29215]
+Wed Oct 23 22:51:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Aug 7 17:56:59 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * win32/Makefile.sub (config.h): VC 2013 supports C99 mathematics
+ functions. [ruby-core:57981] [Bug #9044]
- * ext/bigdecimal/bigdecimal.c, ext/digest/rmd160/rmd160ossl.c,
- ext/digest/sha1/sha1ossl.c, ext/readline/readline.c: move
- incluion of config.h to pacify AIX. a patch from Yutaka
- Kanemoto <kinpoco at gmail.com>. [ruby-dev:29197]
+Wed Oct 23 19:13:18 2013 Koichi Sasada <ko1@atdot.net>
-Mon Aug 7 15:55:08 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c: move increment from heap to heap_pages.
+ Share `increment' information with heaps.
- * ext/syck/syck.c (syck_move_tokens): should avoid negative
- memmove. [ruby-list:42625]
+ * gc.c: change ratio of heap_pages_free_min_page
+ to 0.80.
+ This change means slow down page freeing speed.
-Mon Aug 7 14:37:48 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Oct 23 17:52:03 2013 Koichi Sasada <ko1@atdot.net>
- * configure.in, common.mk: AIX link issue. a patch from Yutaka
- Kanemoto <kinpoco at gmail.com>. [ruby-dev:29190]
+ * gc.c (heap_pages_free_unused_pages): cast to (int) for size_t
+ variable `i'.
- * ext/socket/socket.c: AIX socket support. [ruby-dev:29190]
+Wed Oct 23 17:39:35 2013 Koichi Sasada <ko1@atdot.net>
-Mon Aug 7 12:05:28 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * dln.c, eval.c, gc.c, regex.c, ruby.h: shut up AIX alloca
- warning. a patch from Yutaka Kanemoto <kinpoco at gmail.com>.
- [ruby-dev:29191]
+ 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)
-Sun Aug 6 20:40:41 2006 Tadayoshi Funaba <tadf@dotrb.org>
+ To introduce this patch, there are several tuning of GC parameters.
- * lib/date/format.rb (str[fp]time): %[EO]U didn't denote %U.
+Wed Oct 23 14:20:56 2013 Koichi Sasada <ko1@atdot.net>
-Sat Aug 5 17:07:43 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (gc_prof_sweep_timer_stop): catch up recent changes
+ to compile on GC_PROFILE_MORE_DETAIL=1.
- * parse.y (top_local_setup): local_vars[-1] should point
- ruby_scope itself to protect local_tbl from garbage collection.
- [ruby-dev:29049]
+Wed Oct 23 11:43:27 2013 Zachary Scott <e@zzak.io>
-Sat Aug 5 13:54:03 2006 Tadayoshi Funaba <tadf@dotrb.org>
+ * file.c: [DOC] fix rdoc format of File#expand_path from r43386
- * lib/date/format.rb (str[fp]time): "%\n" means "\n".
+Tue Oct 22 21:58:28 2013 URABE Shyouhei <shyouhei@ruby-lang.org>
-Fri Aug 4 15:21:00 2006 Eric Hodel <drbrain@segment7.net>
+ * vm_core.h (enum): avoid syntax error.
- * lib: Merge RDoc and .document from HEAD.
- * lib/drb/ssl.rb: Close socket on SSLError [ruby-core:7197]
+ * method.h: ditto.
-Fri Aug 4 19:13:41 2006 Keiju Ishitsuka <keiju@ruby-lang.org>
+ * internal.h: ditto.
- * lib/irb/{init.rb,ruby-lex.rb,slex.rb}: can't input '\c' for
- [ruby-core: 7122].
+Tue Oct 22 19:53:16 2013 Koichi Sasada <ko1@atdot.net>
-Fri Aug 4 14:02:14 2006 James Edward Gray II <james@grayproductions.net>
+ * gc.c (Init_heap): move logics from heap_pages_init() and remove
+ heap_pages_init().
- * lib/date/format.rb (__strptime, strftime): allow multi-line patterns
- in Date#strftime the same as Time#strftime accepts.
- fixed: [ruby-core:08466]
+Tue Oct 22 19:19:05 2013 Koichi Sasada <ko1@atdot.net>
-Fri Aug 4 13:56:51 2006 Nobuyoshi Nakada <nobu@ruby-lang.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.
- * pack.c (pack_pack): check argument overrun for 'P'. based on a
- patch by rucila <rucila at yahoo.cojp>. fixed: [ruby-dev:29182]
+ * 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.
-Tue Aug 1 17:44:03 2006 Nobuyoshi Nakada <nobu@ruby-lang.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.
- * win32/win32.c (init_stdhandle): assign standard file handles.
+ Now, there is only one heap called `eden', which is a space for all
+ new generated objects.
-Tue Aug 1 12:24:58 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Oct 22 18:26:12 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (Init_Binding): fix old commit miss.
-
-Mon Jul 31 17:08:20 2006 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * win32/win32.c (exit_handler): new function; release winsock and
- environment work area.
-
- * win32/win32.c (NTInitialize): setup exit_handler.
-
- * win32/win32.c (StartSockets): use exit_handler.
-
- * win32/win32.c (rb_w32_getenv): use GetEnvironmentStrings() instead
- of GetEnvironmentVariable(), because the latter cannot distinguish
- wheather a null environment variable exists or not.
- fixed: [ruby-talk:205123]
-
-Mon Jul 31 16:15:13 2006 Tanaka Akira <akr@fsij.org>
-
- * test/ruby/test_process.rb (TestProcess#test_rlimit_nofile):
- setrlimit may fail with EINVAL.
- reported by MIYAMUKO Katsuyuki. [ruby-dev:29174]
-
-Mon Jul 31 13:38:22 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/httprequest.rb (WEBrick::HTTPReuqest#parse_uri): improve
- for the value of IPv6 address in the Host: header field.
+ * 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.
-Mon Jul 31 09:22:12 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Oct 22 16:57:48 2013 Benoit Daloze <eregontp@gmail.com>
- * ruby.h: use ifdef (or defined) for macro constants that may or
- may not be defined to shut up gcc's -Wundef warnings.
- [ruby-core:08447]
+ * file.c (File#expand_path): [DOC] improve documentation of File#expand_path.
+ Based on patch by Prathamesh Sonpatki. [ruby-core:57734] [Bug #9002]
-Sun Jul 30 23:26:22 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Oct 22 15:59:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (rb_call0): trace call/return of method defined from block.
- fixed: [ruby-core:08329]
+ * dir.c (glob_helper): don't skip current directories if FNM_DOTMATCH
+ is given. [ruby-core:53108] [Bug #8006]
- * eval.c (rb_trap_eval): make the current thread runnable to deal with
- exceptions which occurred within the trap. fixed: [ruby-dev:27729]
+Tue Oct 22 14:53:11 2013 Koichi Sasada <ko1@atdot.net>
- * lib/cgi/session.rb, lib/cgi/session/pstore.rb: suppress warnings.
- fixed: [ruby-talk:204896]
+ * 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.
-Sat Jul 29 06:12:06 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * ext/tk/lib/multi-tk.rb: freeze ip_name for security reason.
+ * vm_trace.c (rb_postponed_job_register_one): check interrupt
+ carefully.
-Sat Jul 29 01:23:52 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm_trace.c (rb_postponed_job_register_one): use additional space
+ to avoid buffer full.
- * lib/logger.rb: improves the amount of documentation that Rdoc
- picks up when processing logger.rb by moving the require
- statement back before the comment block. a patch from Hugh
- Sasse <hgs at dmu.ac.uk>. [ruby-core:08422]
+ * gc.c (gc_finalize_deferred_register): check failure.
-Thu Jul 27 22:21:52 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c (rb_threadptr_execute_interrupts): check
+ `postponed_job_interrupt' immediately. There is a possibility
+ to miss this flag.
- * time.c (time_to_s): fixed format mismatch.
+Tue Oct 22 12:11:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jul 27 21:19:54 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in: check if the given CFLAGS and LDFLAGS are working, and
+ bail out early if not.
- * math.c (domain_check): a new function to check domain error
- explicitly for systems that return NaN like FreeBSD.
- [ruby-core:07019]
+Tue Oct 22 00:06:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * math.c (math_acos, math_asin, math_acosh, math_atanh, math_log,
- math_log10, math_sqrt): use domain_check().
+ * file.c (rb_file_exists_p): warn deprecated name. [Bug #9041]
- * math.c (math_sqrt): fix documentation flaw.
+Mon Oct 21 23:57:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jul 27 18:12:12 2006 WATANABE Hirofumi <eban@ruby-lang.org>
+ * encoding.c (load_encoding): should preserve outer errinfo, so that
+ expected exception may not be lost. [ruby-core:57949] [Bug #9038]
- * time.c: need to declare time_utc_offset.
+Sun Oct 20 15:41:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jul 27 17:01:01 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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]
- * io.c (io_close): always calls "close" method of the receiver.
- [ruby-core:6911] [ruby-core:8112]
+Sun Oct 20 15:29:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jul 27 16:49:01 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * error.c (rb_syserr_fail_path_in): new function split from
+ rb_sys_fail_path_in to raise SystemCallError without errno.
- * time.c (time_to_s): use +0900 style timezone string for local time.
- [ruby-dev:29143]
+ * internal.h (rb_syserr_fail_path): like rb_sys_fail_path but without
+ errno.
-Thu Jul 27 16:41:15 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Oct 20 13:58:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl.h: move <ruby.h> inclusion point to shut up
- Solaris compiler. [ruby-core:08114]
+ * include/ruby/ruby.h (rb_obj_wb_unprotect, rb_obj_written),
+ (rb_obj_write): suppress unused-parameter warnings.
-Wed Jul 26 22:20:59 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Oct 20 10:32:48 2013 Eric Hodel <drbrain@segment7.net>
- * configure.in: add support for as and ASFLAGS. [ruby-dev:29138]
+ * lib/rubygems: Update RubyGems to master 0886307. This commit
+ improves documentation and should bring ruby above 75% documented on
+ rubyci.
-Wed Jul 26 22:13:45 2006 Minero Aoki <aamine@loveruby.net>
+Sun Oct 20 09:30:56 2013 Eric Hodel <drbrain@segment7.net>
- * lib/net/http.rb: sync with HEAD (rev 1.132).
+ * lib/rubygems: Update to RubyGems master 3de7e0f. Changes:
- * lib/net/http.rb (Net::HTTP#post, request_post, request): should
- set Content-Type: x-www-form-urlencoded by default.
+ Only attempt to build extensions for newly-installed gems. This
+ prevents compilation attempts at gem activation time for gems that
+ already have extensions built.
- * lib/net/http.rb (Net::HTTPHeader#content_type): should return
- nil when there's no Content-Type.
+ Fix crash in the dependency resolver for dependencies that cannot be
+ resolved.
- * lib/net/http.rb (Net::HTTPHeader#sub_type): should return nil
- when there's no sub Content-Type (e.g. "Content-Type: text").
+ * test/rubygems: ditto.
- * lib/net/http.rb (Net::HTTPHeader#type_params): wrongly failed
- when there's no Content-Type.
+Sun Oct 20 05:24:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Jul 26 18:35:38 2006 Minero Aoki <aamine@loveruby.net>
+ * variable.c (rb_class2name): should return real class name, not
+ singleton class or iclass.
- * ext/strscan/strscan.c: sync with HEAD (rev 1.25).
+Sun Oct 20 04:18:48 2013 Aman Gupta <ruby@tmm1.net>
- * ext/strscan/strscan.c (strscan_do_scan):
- StringScanner.new("").scan(//) should return "". [ruby-Bugs:4361]
+ * variable.c (rb_class2name): call rb_tmp_class_path() directly to
+ avoid extra rb_str_dup() from rb_class_name().
-Wed Jul 26 18:14:19 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Oct 19 19:59:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/pty/pty.c (getDevice): retry once after GC on failure.
- [ruby-core:08282]
+ * win32/file.c (code_page): use simple array instead of st_table.
-Wed Jul 26 17:28:16 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * encoding.c (rb_locale_encindex): defer initialization of win32 code
+ page table until encoding db loaded.
- * sprintf.c (rb_f_sprintf): prepend ".." to %u for negative bignum,
- but not "-". fixed: [ruby-core:08167]
+Sat Oct 19 08:25:05 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jul 26 16:39:07 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * string.c (rb_str_scan): add string modification check.
- [ruby-core:7216]
+Sat Oct 19 07:14:40 2013 Eric Hodel <drbrain@segment7.net>
-Wed Jul 26 16:06:03 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 42543b6. Changes:
- * lib/cgi.rb (CGI::QueryExtension::read_multipart): check
- multipart boundary end. a patch from Fujioka <fuj at rabbix.jp>
- [ruby-dev:28470]
+ Fix `gem update` for gems with multiple platforms.
-Wed Jul 26 01:02:59 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems: ditto.
- * configure.in: suppress warnings by automake 1.8 or later.
+Sat Oct 19 06:55:52 2013 Eric Hodel <drbrain@segment7.net>
-Tue Jul 25 00:30:06 2006 Eric Hodel <drbrain@segment7.net>
+ * lib/rubygems: Update to RubyGems master 0a3814b. Changes:
- * lib/prettyprint.rb: RD to RDoc conversion by Hugh Sasse.
+ Fixed extension directory in Gem::Specification#require_paths.
-Tue Jul 25 14:49:51 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ Allow installation of gems when $HOME is nonexistent or unwritable.
- * lib/mkmf.rb (configuration): typo.
+ Use proper API in InstallCommand.
-Tue Jul 25 13:14:32 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ Improve support for path option in gem dependency files.
- * process.c (rb_proc_times): rename hz to hertz to avoid name
- crash on AIX. [ruby-dev:29126]
+ Remove warnings.
-Mon Jul 24 22:03:40 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rubygems: ditto.
- * eval.c (backtrace): skip frames successive on node and method name.
+Fri Oct 18 15:23:34 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jul 24 17:55:55 2006 Yukihiro Matsumoto <matz@ruby-lang.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").
- * process.c (rb_f_system): add security check. [ruby-talk:202947]
+ See https://bugs.ruby-lang.org/attachments/4008/data-heap_structure.png.
- * process.c (rb_f_system): move signal right before fork to avoid
- signal handler intervention.
+Fri Oct 18 09:40:43 2013 Eric Hodel <drbrain@segment7.net>
-Mon Jul 24 15:51:52 2006 Tanaka Akira <akr@fsij.org>
+ * lib/rubygems: Update to RubyGems master cee6788. Changes:
- * ext/readline/readline.c (readline_readline): rl_deprep_term_function
- may be NULL with libedit. reported by Ryan Davis. [ruby-dev:29070]
+ Fix test failure on vc10-x64 Server on rubyci.org due to attempting
+ to File.chmod where it is not supported.
-Mon Jul 24 15:19:55 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ Continuing work on improved gem dependencies file (Gemfile) support.
- * eval.c (rb_call0): revert last change. [ruby-dev:29112]
- [ruby-core:08374]
+ * test: ditto.
-Sun Jul 23 22:59:49 2006 Tanaka Akira <akr@fsij.org>
+Fri Oct 18 06:02:49 2013 Eric Hodel <drbrain@segment7.net>
- * test/socket/test_unix.rb: disabled on cygwin.
- reported by Kouhei Yanagita. [ruby-dev:29080]
+ * lib/rubygems: Update to RubyGems master f738c67. Changes:
-Fri Jul 21 21:21:08 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ Fixed test bug for ruby with ENABLE_SHARED = no
- * eval.c (rb_call0): include funcalled methods in caller list.
- fixed: [ruby-core:08290]
+ * test/rubygems: ditto.
-Fri Jul 21 12:11:00 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Oct 18 00:57:07 2013 Tanaka Akira <akr@fsij.org>
- * ext/extmk.rb, lib/mkmf.rb (with_destdir): remove drive letter before
- prepending destdir on DOSISH.
+ * 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.
-Thu Jul 20 15:07:14 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Oct 17 18:50:08 2013 Koichi Sasada <ko1@atdot.net>
- * ruby.h: export classes/modules to implement sandbox.
- [ruby-core:08283]
+ * 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.
-Thu Jul 20 00:06:29 2006 Keiju Ishitsuka <keiju@ishitsuka.com>
+Thu Oct 17 18:45:41 2013 Koichi Sasada <ko1@atdot.net>
- * lib/irb/completion.rb: support for completion of numeric
- number. [ruby-dev: 29038]
+ * string.c (STR_HEAP_SIZE): includes TERM_LEN(str).
-Wed Jul 19 23:53:05 2006 Kouhei Sutou <kou@cozmixng.org>
+ * string.c (rb_str_memsize): use STR_HEAP_SIZE().
- * lib/rss/parser.rb, lib/rss/utils.rb: added documents.
+Thu Oct 17 17:43:00 2013 Shugo Maeda <shugo@ruby-lang.org>
-Tue Jul 18 22:10:13 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm_insnhelper.c (vm_call_method): set ci->me to 0 when the
+ original method of a refined method is undef to avoid SEGV.
- * process.c (rb_f_system): block SIGCHLD during the process
- execution, like glibc system(3) does. [ruby-talk:202361]
+ * vm_method.c (rb_method_entry_without_refinements): return 0 when
+ the original method of a refined method is undef to avoid SEGV.
-Tue Jul 18 23:12:14 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/ruby/test_refinement.rb: related test.
- * win32/win32.c (open_ifs_socket): should not use plain malloc.
+Thu Oct 17 17:38:36 2013 Koichi Sasada <ko1@atdot.net>
- * win32/win32.c (rb_w32_opendir): should not use plain realloc.
+ * gc.c, internal.h: rename ruby_xsizefree/realloc to
+ rb_sized_free/realloc.
-Tue Jul 18 18:05:49 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * array.c: catch up these changes.
- * test/ruby/test_float.rb (TestFloat::test_strtod): update test to
- conform strtod change.
+ * string.c: ditto.
-Tue Jul 18 15:49:42 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Oct 17 17:32:51 2013 Koichi Sasada <ko1@atdot.net>
- * pack.c (pack_unpack): propagate association array to copied
- string. [ruby-core:08223]
+ * array.c, string.c: use ruby_xsizedfree() and ruby_xsizedrealloc().
- * pack.c (pack_unpack): return referenced string itself if it has
- same length as specified. a patch from <nobu at ruby-lang.org>
- in [ruby-core:08225].
+ * internal.h (SIZED_REALLOC_N): define a macro as REALLOC_N().
- * pack.c (pack_pack): taint 'p' packed strings.
+Thu Oct 17 17:11:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Jul 18 14:03:02 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * win32/win32.c (console_emulator_p): check by comparison between
+ module handle of WriteConsoleW and kernel32.dll.
- * lib/webrick/httpserver.rb (WEBrick::HTTPServer::unmount): remove
- inpect argument from sprintf. [ruby-dev:29039]
+ * configure.in, win32/Makefile.sub, win32/setup.mak: no longer need
+ psapi.lib.
-Tue Jul 18 10:53:37 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 17 16:53:30 2013 Koichi Sasada <ko1@atdot.net>
- * object.c (rb_cstr_to_dbl): limit out-of-range message.
+ * 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]
- * util.c (ruby_strtod): return end pointer even if ERANGE occurred.
- fixed: [ruby-dev:29041]
+Thu Oct 17 14:21:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jul 18 00:43:05 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * win32/file.c (rb_file_expand_path_internal): fix memory leaks at
+ a non-absolute home exception.
- * util.c (ruby_strtod): stop at dot not followed by digits.
- fixed: [ruby-dev:29035]
+Thu Oct 17 14:06:39 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jul 18 00:01:27 2006 Nobuyoshi Nakada <nobu@ruby-lang.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.
- * ext/extmk.rb: remove LIBRUBY_SO if static linked extensions exist.
+Thu Oct 17 12:30:16 2013 Tanaka Akira <akr@fsij.org>
-Mon Jul 17 23:30:46 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/tsort.rb (TSort.each_strongly_connected_component_from):
+ Extracted from TSort#each_strongly_connected_component_from.
- * configure.in (rb_cv_msvcrt): defaulted to msvcrt. Workaround for a
- bug of cygwin 1.5.20.
+Thu Oct 17 11:07:06 2013 Eric Hodel <drbrain@segment7.net>
-Mon Jul 17 13:43:05 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 941c21a. Changes:
- * pack.c (define_swapx): should not use plain malloc.
+ Restored method bundler wants to remove for compatibility.
-Mon Jul 17 12:58:41 2006 WATANABE Hirofumi <eban@ruby-lang.org>
+ Improvements to Gemfile compatibility.
- * configure.in: should use ac_cv_lib_dl_dlopen=no on MinGW.
+ * test/rubygems: ditto.
-Sat Jul 15 23:50:12 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 17 08:08:11 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (rb_require_safe): wait for another thread requiring the same
- feature. fixed: [ruby-core:08229]
+ * ext/objspace/object_tracing.c (newobj_i): add workaround.
+ some bugs hits this check.
-Sat Jul 15 01:27:13 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/objspace/object_tracing.c (object_allocations_reporter_i): cast as pointer.
- * dir.c (has_magic): glob names contain alphabets to enable case fold
- search also for directories. fixed: [ruby-talk:201917]
+Thu Oct 17 07:36:53 2013 Eric Hodel <drbrain@segment7.net>
-Sat Jul 15 01:09:22 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems master 2abce58. Changes:
- * st.c (malloc): use xmalloc/xcalloc instead of plain
- malloc/calloc, to detect memory allocation failure. see
- <http://www.nongnu.org/failmalloc/>.
+ Fixed documentation generation when sdoc and json are installed as
+ gems.
- * gc.c (rb_memerror): should not raise empty nomem_error.
+ Added some missing documentation.
-Fri Jul 14 13:08:13 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Oct 17 07:10:26 2013 Zachary Scott <e@zzak.io>
- * ext/tk/lib/tk.rb: add methods for new features of latest Tcl/Tk8.5.
+ * ext/curses/curses.c: [DOC] Cleaned up formatting consistency of rdoc
+ comments for Curses, including period spacing and column width.
- * ext/tk/lib/tk/namespace.rb: ditto.
+ This patch also fixed some typos. Thanks to @postmodern for the patch!
+ [Fixes GH-420] https://github.com/ruby/ruby/pull/420
-Fri Jul 14 02:30:12 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Oct 17 06:58:42 2013 Zachary Scott <e@zzak.io>
- * lib/monitor.rb: document patch from Hugh Sasse <hgs at dmu.ac.uk>.
- [ruby-core:08205]
+ * 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
-Fri Jul 14 01:09:46 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Oct 17 05:52:31 2013 Zachary Scott <e@zzak.io>
- * parse.y (then): error in warning action.
+ * 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
-Fri Jul 14 00:10:15 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Oct 17 05:40:33 2013 Koichi Sasada <ko1@atdot.net>
- * array.c (rb_ary_pop): may cause realloc oscillation. a patch
- from MORITA Naoyuki <mlgetter at kidou.sakura.ne.jp>.
- [ruby-dev:29028]
+ * gc.c (objspace_each_objects): do not skip empty RVALUEs.
-Thu Jul 13 22:23:56 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Oct 17 05:31:31 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/composite.rb: improve handling of the classname on the
- option database for the widget class which includes TkComposite.
+ * error.c (rb_bug_reporter_add): return simply 0 if failed.
+ Please check return value.
-Thu Jul 13 20:32:19 2006 Kouhei Sutou <kou@cozmixng.org>
+Thu Oct 17 05:17:33 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rss/parser.rb: updated documents by a patch from
- Hugh Sasse <hgs at dmu.ac.uk>. [ruby-core:8194]
+ * 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.
-Wed Jul 12 13:54:09 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Oct 16 22:35:27 2013 Zachary Scott <e@zzak.io>
- * parse.y (then): we'd like to reserve colon here for the future.
- warning added.
+ * ext/io/nonblock/nonblock.c: use rb_cIO instead of VALUE
-Tue Jul 11 20:58:18 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Oct 16 17:45:13 2013 Koichi Sasada <ko1@atdot.net>
- * ruby.h: export rb_cMethod. [ruby-talk:201259]
+ * bootstraptest/runner.rb: check nil before calling `signal?'
+ for a process status.
-Tue Jul 11 19:13:33 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Wed Oct 16 17:37:17 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/multi-tk.rb: remove restriction on the class of
- pseudo-toplevel.
+ * 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.
-Tue Jul 11 18:00:57 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/-test-/bug_reporter/bug_reporter.c: add a test for this C-API.
- * ext/tk/lib/multi-tk.rb: security fix.
+ * ext/-test-/bug_reporter/extconf.rb: ditto.
-Tue Jul 11 17:33:39 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/-ext-/bug_reporter/test_bug_reporter.rb: ditto.
- * string.c (rb_str_dump): need to extend len for \b.
+Wed Oct 16 15:14:21 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jul 10 22:00:00 2006 Shigeo Kobayashi <shigek@ruby-lang.org>
+ * NEWS: add a line into NEWS for last commit.
- * ext/bigdecimal/bigdecimal.c: Allows '_' to appear within
- digits. [ruby-dev:28872]
+Wed Oct 16 15:09:14 2013 Koichi Sasada <ko1@atdot.net>
- * ext/bigdecimal/lib/bigdecimal/util.rb: Bug in to_r reported by
- [ruby-list:42533] fixed.
+ * 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.
-Mon Jul 10 19:22:19 2006 Tanaka Akira <akr@fsij.org>
+ * test/objspace/test_objspace.rb: add a test.
- * gc.c (gc_sweep): expand heap earlier.
- reported by MORITA Naoyuki. [ruby-dev:28960]
+Wed Oct 16 15:00:21 2013 Eric Hodel <drbrain@segment7.net>
-Mon Jul 10 18:59:34 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * lib/rubygems: Update to RubyGems master b955554. Changes:
- * ext/tk/lib/tk/font.rb: sorry. mistaken to patch.
+ Fixed NameError for Gem::Ext due to re-entering file lookup in
+ RubyGems' overridden require. Bug by Koichi Sasada.
-Mon Jul 10 18:46:52 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ Fixed possible circular require warning in tests.
- * ext/tk/tcltklib.c: make SEGV risk lower at exit.
+ Used existing constant for `gem install -g` dependency file list.
- * ext/tk/lib/tk.rb: ditto.
+ * test/rubygems: ditto.
- * ext/tk/lib/multi-tk.rb: fail to call function-style methods on slave
- interpreters. The strategy (MultiTkIp_PseudoToplevel_Evaluable) to
- fix the problem is a little tricky. You may have to take care of
- conflicting with it.
+Wed Oct 16 09:42:42 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tk/lib/tk.rb: a little change for the pseudo-toplevel strategy.
+ * lib/rubygems: Update to RubyGems master 278d00d. Changes:
- * ext/tk/lib/tk/font.rb: ditto.
+ Fixes building extensions without a "clean" make rule
- * ext/tk/lib/tk/msgcat.rb: ditto.
+ Adds gem dependency file autodetection to "gem install -g"
- * ext/tk/lib/tkextlib/itk/incr_tk.rb: ditto.
+ * test/rubygems: Tests for the above.
- * ext/tk/sample/demos-en/widget: fail to call function-style methods
- on sample scripts. To fix it, a strategy which similar to the way
- on MultiTiIp is used. Please take care when re-write and re-run a
- demo script on the Widget-Demo code viewer.
+Wed Oct 16 09:12:23 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tk/sample/demos-jp/widget: ditto.
+ * lib/rubygems: Update to RubyGems master commit 2a74263. This fixes
+ several bugs in RubyGems 2.2.0.preview.1.
-Mon Jul 10 13:58:40 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * test/rubygems: ditto.
- * signal.c (ruby_nativethread_signal, posix_nativethread_signal,
- sigsend_to_ruby_thread, install_nativethread_sighandler):
- nativethread-support on signal handler. RE-backport from 1.9.
+Wed Oct 16 07:25:02 2013 Aman Gupta <ruby@tmm1.net>
- * ruby.h (HAVE_NATIVETHREAD_KILL): ditto.
+ * gc.c (gc_mark_roots): rename roots to be categories
+ instead of function names.
- * eval.c (ruby_native_thread_kill): ditto.
+Tue Oct 15 19:18:13 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jul 10 10:54:14 2006 Ryan Davis <ryand@zenspider.com>
+ * 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.
- * lib/rdoc/parsers/parse_f95.rb: massive overhaul from Yasuhiro
- Morikawa including new file suffixes, function support, public
- variables and constants, derived-types, defined operators and
- assignments, namelists, and subroutine and function
- arguments. Truly massive.
+ * gc.c (gc_mark_roots): separate from gc_marks_body().
- * lib/rdoc/diagram.rb: diagrams are now cached.
+Tue Oct 15 17:47:59 2013 Tanaka Akira <akr@fsij.org>
- * lib/irb/completion.rb: fixed a crasher when completing against
- an unnamed class/module.
+ * process.c: Fix a typo. MacOS X doesn't have ENOTSUPP.
- * lib/rdoc/parsers/parse_c.rb: private comment (--/++) support in
- C-file rdoc.
+Mon Oct 14 12:32:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/debug.rb: minor clarification in help.
+ * ruby.c (process_options): load statically linked extensions before
+ rubygems, because of ext/thread.
- * lib/pp.rb: minor clarification on exception.
+ * ruby.c (process_options): use gem_prelude instead of requiring
+ rubygems directly when --enable=gems is given.
-Mon Jul 10 09:29:12 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * Makefile.in (DEFAULT_PRELUDES): always use gem_prelude regardless of
+ --disable-rubygems.
- * eval.c (rb_clear_cache_for_undef): clear entries for included
- module. fixed: [ruby-core:08180]
+Mon Oct 14 11:07:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jul 10 01:48:38 2006 Yukihiro Matsumoto <matz@ruby-lang.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.
- * st.h (st_data_t): use pointer sized integer for st_data_t.
- [ruby-dev:28988]
+ * lib/mkmf.rb (create_makefile): ranlib on static library, not DLLIB.
-Sun Jul 9 18:06:47 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Oct 13 23:53:40 2013 Andrew Grimm <andrew.j.grimm@gmail.com>
- * lib/mkmf.rb (try_constant): fix for value 1 at cross compiling.
+ * vsnprintf.c: Fix spelling from compliment to complement.
+ Patch by @agrimm.
- * lib/mkmf.rb (create_makefile): prevent substitution of macro
- definition. fixed: http://www.yotabanana.com/lab/20060624.html#p02
+ * include/ruby/ruby.h: ditto
-Sun Jul 9 00:54:34 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Oct 13 20:59:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (next_jump): deal with destination of next.
- fixed: [ruby-core:08169]
+ * vm.c (Init_BareVM): initialize defined_module_hash here,
+ Init_top_self() is too late to register core classes/modules.
-Fri Jul 7 00:38:49 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * compile.c (compile_array_): no hash to merge if it is empty.
- * hash.c (rb_hash_default): should not call default procedure if
- no key is given. [ruby-list:42541]
+ * vm.c (m_core_hash_merge_kwd): just check keys if only one argument
+ is given, without merging.
-Fri Jul 7 00:29:10 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Oct 12 06:35:01 2013-10-11 Eric Hodel <drbrain@segment7.net>
- * time.c (time_mload): a patch from Daniel Berger
- <Daniel.Berger at qwest.com>. [ruby-core:08128]
+ * lib/rake: Update to rake 10.1.0
+ * bin/rake: ditto.
+ * test/rake: ditto.
-Thu Jul 6 22:21:57 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * NEWS: Update NEWS to include rake 10.1.0 and links to release notes.
- * process.c (rb_proc_times): use sysconf(_SC_CLK_TCK) value prior to
- HZ and CLK_TCK. fixed: [ruby-talk:200293]
+Sat Oct 12 03:26:04 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jul 6 22:17:21 2006 Minero Aoki <aamine@loveruby.net>
+ * class.c, variable.c, gc.c (rb_class_tbl): removed.
- * ext/racc/cparse/cparse.c: sync with original code, rev 1.8.
+ * 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.
- * ext/racc/cparse/cparse.c: should mark CparseParams objects.
+ * gc.c (RGENGC_PRINT_TICK): disable (revert).
- * lib/racc/parser.rb: sync with original code, rev 1.8.
+Sat Oct 12 03:24:49 2013 Koichi Sasada <ko1@atdot.net>
- * lib/racc/parser.rb: update coding style.
+ * vm_method.c (rb_gc_mark_unlinked_live_method_entries):
+ revert last commit to introduce debug prints.
-Mon Jul 3 19:04:38 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Oct 11 21:05:19 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/tcltklib.c (ip_make_menu_embeddable): help to make a menu
- widget embeddable (pack, grid, and so on) like as a general widget.
- However, an embeddable menu may require to be definied some event
- bindings for general use.
+ * internal.h, parse.y: use `full_mark' instead of `full_marking'.
- * ext/tk/lib/tk/event.rb: [bug fix] Tk.callback_break and
- Tk.callback_continue don't work on MultiTkIp.
+Fri Oct 11 20:58:16 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/multi-tk.rb: ditto.
+ * gc.c: use terminology `full_mark' instead of `minor_gc'
+ in mark functions.
- * ext/tk/lib/tk.rb: lack of Tk.callback_return.
+Fri Oct 11 20:46:09 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/menu.rb: improve creating clone menus.
+ * gc.c: use __GNUC__ instead of __GCC__.
-Mon Jul 3 14:42:06 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Oct 11 20:35:59 2013 Koichi Sasada <ko1@atdot.net>
- * ext/etc/extconf.rb (PW_UID2VAL, PW_GID2VAL): defaulted to conversion
- from int, and sys/types.h needs to be included before grp.h.
- fixed: [ruby-dev:28938]
+ * 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.
-Mon Jul 3 01:14:15 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * internal.h: change prototype of rb_gc_mark_symbols().
- * string.c (rb_str_inspect): encode \b (\010) for escape.
- [ruby-dev:28927]
+Fri Oct 11 19:27:22 2013 Akinori MUSHA <knu@iDaemons.org>
- * string.c (rb_str_dump): ditto.
+ * 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.
-Sun Jul 2 19:17:56 2006 Minero Aoki <aamine@loveruby.net>
+ * ruby-forward-sexp is inappropriate here because it moves the
+ cursor past the keyword.
- * ext/racc/cparse/cparse.c: sync with original code (rev 1.7).
+ * Fix a reversed looking-back check in
+ ruby-electric--block-beg-keyword-at-point-p.
- * ext/racc/cparse/cparse.c: use rb_catch instead of rb_iterate.
- Giving a block to a Ruby-level method by rb_iterate is obsolete on
- Ruby 1.9. Note that current cparse.c still includes one
- rb_iterate call on Ruby 1.8, but it is not a problem (at least
- just now).
+ * Do not add end again if space or return is hit repeatedly
+ after a block beginning keyword.
-Sat Jul 1 15:15:49 2006 Tanaka Akira <akr@m17n.org>
+Fri Oct 11 18:12:47 2013 Koichi Sasada <ko1@atdot.net>
- * test/socket/test_nonblock.rb: add timeout to send/receive
- an empty UDP packet.
- [ruby-dev:28820]
+ * ext/objspace/gc_hook.c: prohibit reentrant.
-Fri Jun 30 23:46:23 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Oct 11 18:11:34 2013 Koichi Sasada <ko1@atdot.net>
- * configure.in: should test isinf for Solaris with GCC compiler.
- a patch from <ville.mattila at stonesoft.com>. [ruby-core:07791]
+ * vm_trace.c (rb_postponed_job_flush): fix bit operation.
- * configure.in: -shared patch from Andrew Morrow
- <andrew.c.morrow at gmail.com>. [ruby-core:08100]
+Fri Oct 11 17:33:24 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Jun 29 18:58:51 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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/bigdecimal/bigdecimal.c (BigDecimal_version): fix patch
- failure.
+ * 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.
-Thu Jun 29 18:00:51 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * Add ruby-electric-mode-hook.
- * ext/bigdecimal/bigdecimal.c: add RDoc document. a patch from
- mathew <meta at pobox.com>. [ruby-core:07050]
+ * Use a remap in binding ruby-electric-delete-backward-char.
-Wed Jun 28 15:47:14 2006 Eric Hodel <drbrain@segment7.net>
+ * 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
- * lib/optparse.rb: RDoc patch from Robin Stocker <robin@nibor.org>
- [ruby-core:08087]
+ * block-mid keywords (then, else, elsif, when, rescue and
+ ensure) also become electric with automatic reindentation.
-Wed Jun 28 19:04:34 2006 Tanaka Akira <akr@m17n.org>
+ * Add standardized comments for ELPA integration.
- * test/socket/test_unix.rb: test_seqpacket_pair removed.
- [ruby-dev:28846]
+ * Fix interaction with smartparens-mode by disabling its end
+ keyword completion, since ruby-electric has become more clever
+ at it.
-Tue Jun 27 23:03:49 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * The custom variable `ruby-electric-keywords` is changed to
+ `ruby-electric-keywords-alist`, allowing user to fine-grained
+ configuration.
- * string.c: RDoc update for =~ method. a patch from Alex Young
- <alex at blackkettle.org>. [ruby-core:08068]
+Fri Oct 11 16:53:28 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jun 27 22:47:18 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * vm_trace.c (rb_postponed_job_flush): simplify.
- * ext/tk/tcltklib.c: forgot to update TCLTKLIB_RELEASE_DATE.
+Fri Oct 11 03:36:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk.rb (tk_tcl2ruby): [bug fix] sometimes fail to convert
- a tcl string to a ruby object if the tcl string includes "\n".
+ * thread.c (rb_threadptr_execute_interrupts): flush postponed job only
+ once at last.
-Tue Jun 27 16:04:05 2006 WATANABE Hirofumi <eban@ruby-lang.org>
+ * 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]
- * win32/win32.h: define isascii on MinGW for msvcrt compatibility.
+Thu Oct 10 23:04:00 2013 Masaki Matsushita <glass.saga@gmail.com>
- * configure.in: set ac_cv_header_sys_time_h=no on MinGW
- for msvcrt compatibility.
+ * array.c (rb_ary_or): remove unused variables.
-Tue Jun 27 11:36:02 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 10 23:01:16 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/etc/etc.c (setup_passwd, setup_group): allow bignum uid, gid and
- so on. [ruby-talk:199102]
+ * array.c (rb_ary_or): use rb_hash_keys().
-Mon Jun 26 13:37:27 2006 Eric Hodel <drbrain@segment7.net>
+Thu Oct 10 21:36:16 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/rdoc: Merge from HEAD.
- Add options to limit the ri search path.
+ * array.c (rb_ary_compact_bang): use ary_resize_smaller().
-Tue Jun 27 00:54:08 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 10 17:25:28 2013 Koichi Sasada <ko1@atdot.net>
- * util.c (powersOf10): constified.
+ * vm.c (vm_exec): support :b_return event for "lambda{return}.call".
+ [Bug #8622]
-Mon Jun 26 18:37:44 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * test/ruby/test_settracefunc.rb: add a test.
- * ext/tk/tcltklib.c (ip_delete): fix SEGV when a slave-ip is
- deleted on callback.
+Thu Oct 10 13:52:37 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jun 26 10:47:42 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * io.c (pipe_open): avoid closing uninitialized file descriptors.
- a patch from <tommy at tmtm.org> [ruby-dev:28600]
+ * vm_core.h: change data structure.
-Mon Jun 26 09:56:22 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Oct 10 11:11:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * win32/win32.[ch] (rb_w32_send, rb_w32_sendto): constified.
+ * vm.c (Init_VM): hide also the singleton class of frozen-core, not
+ only frozen-core itself.
-Sun Jun 25 23:02:12 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Oct 10 06:02:08 2013 Koichi Sasada <ko1@atdot.net>
- * Makefile.in, mkconfig.rb: catch-up for latest autoconf.
+ * test/ruby/test_rand.rb: fix r43224. local variable `e' is
+ no longer available.
-Sat Jun 24 06:35:00 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Oct 10 00:02:35 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * signal.c: revert last change.
+ * 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.
- * ruby.h: ditto.
+Wed Oct 9 23:57:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c: ditto.
+ * object.c (id_for_attr): avoid inadvertent symbol creation.
-Thu Jun 22 11:52:02 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Oct 9 18:03:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/net/http.rb (Net::HTTPResponse): duplicated error 501;
- HTTPInternalServerError should be error 500. [ruby-core:08037]
+ * vm_method.c (rb_attr): preserve encoding of the attribute ID in
+ error message.
-Thu Jun 22 05:15:58 2006 Tanaka Akira <akr@m17n.org>
+Wed Oct 9 17:40:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/socket/socket.c (sock_s_socketpair): try GC only once.
- [ruby-dev:28778]
+ * 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]
-Wed Jun 21 21:28:32 2006 Tadayoshi Funaba <tadf@dotrb.org>
+Wed Oct 9 13:53:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/date.rb (jd_to_commercial): now works fine even if in
- mathn-ized context.
+ * compar.c (cmp_eq): fail if recursion. [ruby-core:57736] [Bug #9003]
-Wed Jun 21 17:32:31 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * thread.c (rb_exec_recursive_paired_outer): new function which is
+ combination of paired and outer variants.
- * signal.c (ruby_nativethread_signal, posix_nativethread_signal,
- sigsend_to_ruby_thread, install_nativethread_sighandler):
- nativethread-support on signal handler (backport from 1.9).
+Wed Oct 9 09:18:14 2013 Koichi Sasada <ko1@atdot.net>
- * ruby.h (HAVE_NATIVETHREAD_KILL): ditto.
+ * 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().
- * eval.c (ruby_native_thread_kill): ditto.
+ * ext/-test-/debug/profile_frames.c,
+ test/-ext-/debug/test_profile_frames.rb: fix a test for this change.
-Wed Jun 21 08:39:54 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
- * lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): merge Date
- and Time processing. [ruby-core:08033]
+Wed Oct 9 00:55:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Jun 21 01:40:25 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * load.c (load_lock): display backtrace to $stderr at circular
+ require.
- * parse.y (yylex, reswords): modifier token is no longer returned in
- fname state. [ruby-dev:28775]
+ * vm_backtrace.c (rb_backtrace_print_to): new function to print
+ backtrace to the given output.
-Wed Jun 21 01:12:46 2006 Kouhei Sutou <kou@cozmixng.org>
+Tue Oct 8 21:03:35 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rss/rss.rb: RSS::Element.def_corresponded_attr_writer
- supported date type.
+ * 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)
-Tue Jun 20 22:08:36 2006 Kouhei Sutou <kou@cozmixng.org>
+ * iseq.c (rb_iseq_klass), internal.h: add new internal function
+ rb_iseq_method_name().
- * test/rss/test_parser.rb: split parser tests into ...
- * test/rss/test_parser_1.0.rb: ... RSS 1.0 parsing tests and ...
- * test/rss/test_parser_2.0.rb: ... RSS 2.0 parsing tests.
+ * ext/-test-/debug/profile_frames.c (profile_frames),
+ test/-ext-/debug/test_profile_frames.rb: add a test.
-Tue Jun 20 21:19:06 2006 Kouhei Sutou <kou@cozmixng.org>
+Tue Oct 8 16:11:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rss/rss.rb: provided default RSS::Element#children.
+ * array.c (rb_ary_uniq): use rb_hash_values(), as well as the case no
+ block is given.
- * lib/rss/0.9.rb: used default RSS::Element#children.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/2.0.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
+ * internal.h: define rb_hash_values() as internal API.
-Tue Jun 20 21:04:33 2006 Kouhei Sutou <kou@cozmixng.org>
+Tue Oct 8 13:53:21 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/rss/rss.rb: provided default RSS::Element#_tags.
+ * array.c (rb_ary_uniq): use rb_hash_keys().
- * lib/rss/0.9.rb: used default RSS::Element#_tags.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/2.0.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
+ * internal.h: define rb_hash_keys() as internal API.
-Tue Jun 20 20:47:07 2006 Kouhei Sutou <kou@cozmixng.org>
+ * hash.c (rb_hash_keys): ditto.
- * lib/rss/rss.rb: hide RSS::Element.install_model.
- (RSS::Element.install_have_child_element,
- RSS::Element.install_have_children_element,
- RSS::Element.install_text_element,
- RSS::Element.install_date_element): call
- RSS::Element.install_model internally.
+Tue Oct 8 10:56:39 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * lib/rss/0.9.rb: followed new API.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/2.0.rb: ditto.
- * lib/rss/content.rb: ditto.
- * lib/rss/dublincore.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/syndication.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
- * lib/rss/trackback.rb: ditto.
+ * 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]
-Tue Jun 20 20:18:05 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Tue Oct 8 05:58:12 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/extconf.rb: add check for OBJ_NAME_do_all_sorted.
+ * lib/time.rb (Time.strptime): Time.strptime('0', '%s') returns local
+ time Time object as Ruby 2.0 and before.
- * ext/openssl/ossl_cipher.c (ossl_s_ciphers): new method
- OpenSSL::Cipher.ciphers. it returns all the cipher names.
+Tue Oct 8 05:40:37 2013 Eric Hodel <drbrain@segment7.net>
- * ext/openssl/lib/openssl/cipher.rb:
- - add constants AES128, AES192, AES256. [ruby-dev:28610]
- - reimplement without eval()
+ * .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
- * ext/openssl/lib/openssl/digest.rb: reimplement without eval().
+Tue Oct 8 04:28:25 2013 Akinori MUSHA <knu@iDaemons.org>
- * test/openssl/test_cipher.rb, test_digest: fix about reimplemented
- features.
+ * 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.
- * sample/openssl/cipher.rb: rewrite all.
+Tue Oct 8 04:12:45 2013 Akinori MUSHA <knu@iDaemons.org>
-Sat Jun 19 11:21:46 2006 Eric Hodel <drbrain@segment7.net>
+ * misc/ruby-additional.el (ruby-mode-set-encoding): Add a missing
+ else clause to unbreak with `cp932`, etc.
- * lib/test/unit/assertions.rb: Merge RDoc from HEAD.
+ * misc/ruby-mode.el (ruby-mode-set-encoding): Ditto.
-Tue Jun 20 01:06:57 2006 Kouhei Sutou <kou@cozmixng.org>
+Tue Oct 8 03:57:34 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/rss/rss.rb:
- - cleanup validation mechanism. Now, #XXX_validation is
- needless.
- - changed internal variable name RSS::Element::MODEL to
- RSS::Element::MODELS.
- - RSS::Element.install_model requires uri.
+ * misc/ruby-additional.el (ruby-mode-set-encoding): Use
+ `default-buffer-file-coding-system` if the :prefer-utf-8
+ property is not available.
- * lib/rss/0.9.rb: followed new validation API.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/2.0.rb: ditto.
- * lib/rss/content.rb: ditto.
- * lib/rss/dublincore.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/syndication.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
- * lib/rss/trackback.rb: ditto.
+ * misc/ruby-mode.el (ruby-mode-set-encoding): Ditto.
-Mon Jun 19 23:40:59 2006 NARUSE, Yui <naruse@ruby-lang.org>
+ * misc/ruby-additional.el (ruby-encoding-map): Override the
+ default value.
- * ext/nkf/lib/kconv.rb: remove default -m0 and fix document.
+Tue Oct 8 03:19:19 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/nkf/nkf-8/{nkf.c, config.h, utf8tbl.c, utf8tbl.h}:
- imported nkf 2.0.7.
+ * misc/ruby-additional.el (ruby-mode-set-encoding): Add support
+ for `prefer-utf-8` which was introduced in Emacs trunk.
-Mon Jun 19 22:31:59 2006 Kouhei Sutou <kou@cozmixng.org>
+ * 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.
- * lib/rss/rss.rb:
- - provided default #to_s as RSS::Element#to_s.
- - removed RSS::Element#other_element.
- - RSS::Element#tag requires attributes as Hash instead of Array.
+ * misc/ruby-additional.el (ruby-mode-set-encoding): Add support
+ for encodings mapped to nil in `ruby-encoding-map`.
- * lib/rss/0.9.rb: removed #to_s to use RSS::Element#to_s.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
- * lib/rss/trackback.rb: ditto.
+ * 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.
- * lib/rss/2.0.rb: removed #other_element.
+ * misc/ruby-additional.el (ruby-encoding-map): Add type
+ declaration for better customize UI.
-Mon Jun 19 22:09:16 2006 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * misc/ruby-mode.el: Ditto for the above.
- * ext/win32ole/win32ole.c(ole_invoke): support some kind of
- method of word. [ruby-Bugs#3237]
+Tue Oct 8 00:14:53 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/win32ole/tests/test_word.rb: ditto.
+ * misc/ruby-additional.el: Add a standard header and footer,
+ including (provide 'ruby-additional).
- * ext/win32ole/tests/testall.rb: ditto.
+Mon Oct 7 22:52:45 2013 Akinori MUSHA <knu@iDaemons.org>
-Mon Jun 19 00:02:17 2006 Kouhei Sutou <kou@cozmixng.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.
- * lib/rss/rss.rb: automatically detected attributes.
+ * misc/ruby-electric.el (ruby-electric-keywords): New custom
+ variable to replace `ruby-electric-simple-keywords-re` with.
- * lib/rss/0.9.rb: removed #_attrs.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/2.0.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
- * lib/rss/trackback.rb: ditto.
+Mon Oct 7 22:52:16 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/rss/parser.rb: followed new internal API.
+ * 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 Jun 19 00:00:17 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Oct 7 22:45:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/multi-tk.rb: fix bug: initialize improper tables.
+ * cont.c (FIBER_USE_NATIVE): split long conditions.
-Sun Jun 18 22:36:13 2006 Kouhei Sutou <kou@cozmixng.org>
+Mon Oct 7 20:29:31 2013 Zachary Scott <e@zzak.io>
- * lib/rss/rss.rb: RSS::Element#initialize accepts initial
- attributes.
- * lib/rss/0.9.rb: ditto.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/2.0.rb: ditto.
- * lib/rss/dublincore.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
- * lib/rss/trackback.rb: ditto.
+ * lib/time.rb: [DOC] typo in Time.rb overview by @srt32 [Fixes GH-416]
+ https://github.com/ruby/ruby/pull/416
- * lib/rss/utils.rb: added Utils.element_initialize_arguments? to
- detect backward compatibility initial arguments.
+Mon Oct 7 20:07:20 2013 Tanaka Akira <akr@fsij.org>
- * lib/rss/parser.rb: user initial attributes to initialize
- RSS::Element.
+ * lib/time.rb (Time.strptime): Use :offset.
+ Patch by Felipe Contreras. [ruby-core:57694]
-Sun Jun 18 18:24:42 2006 Kouhei Sutou <kou@cozmixng.org>
+Mon Oct 7 16:47:27 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rss/converter.rb: use NKF for Uconv fallback.
+ * test/-ext-/debug/test_profile_frames.rb: rename class C to
+ something long name because one test depends on absence of
+ class ::C.
-Sun Jun 18 18:22:04 2006 Kouhei Sutou <kou@cozmixng.org>
+Mon Oct 7 16:33:10 2013 Koichi Sasada <ko1@atdot.net>
- * test/rss/test_image.rb: shared name space configuration.
+ * ext/-test-/debug/profile_frames.c:
+ test/-ext-/debug/test_profile_frames.rb: add a test for new C-APIs.
-Sun Jun 18 18:13:25 2006 Kouhei Sutou <kou@cozmixng.org>
+Mon Oct 7 16:12:36 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rss/rss.rb: improved ignore_unknown_element
- handling. RSS::NotExpectedTagError provides tag URI.
- * lib/rss/parser.rb: ditto.
- * lib/rss/0.9.rb: ditto.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/content.rb: ditto.
- * lib/rss/dublincore.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/syndication.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
- * lib/rss/trackback.rb: ditto.
+ * 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.
- * test/rss/rss-assertions.rb: checked URI of not expected tag too.
- * test/rss/test_parser.rb: ditto.
+ * 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.
-Sun Jun 18 18:08:36 2006 Kouhei Sutou <kou@cozmixng.org>
+ 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.
- * lib/rss/rss.rb: changed empty namespace URI representation to ""
- from nil.
- * lib/rss/parser.rb: ditto.
- * lib/rss/0.9.rb: ditto.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/2.0.rb: ditto.
+ * vm_backtrace.c: implement above APIs.
-Sun Jun 18 18:03:50 2006 Kouhei Sutou <kou@cozmixng.org>
+ * iseq.c (rb_iseq_klass): return local_iseq's class.
- * lib/rss/parser.rb: removed a guard for requiring open-uri.
+Mon Oct 7 14:26:01 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jun 18 18:01:26 2006 Kouhei Sutou <kou@cozmixng.org>
+ * proc.c: catch up last commit.
+ Type of return value of rb_iseq_first_lineno() is now VALUE.
- * lib/rss/rss.rb: fixed typo: except -> expect
- * lib/rss/parser.rb: ditto.
- * test/rss/rss-assertions.rb: ditto.
- * test/rss/test_parser.rb: ditto.
+ * vm_insnhelper.c (argument_error): ditto.
-Sun Jun 18 17:52:39 2006 Kouhei Sutou <kou@cozmixng.org>
+ * vm_method.c (rb_method_entry_make): ditto.
- * lib/rss/rss.rb: RSS::Element#calc_indent became to be deprecated.
- * lib/rss/0.9.rb: ditto.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/taxonomy.rb: ditto.
- * lib/rss/trackback.rb: ditto.
+Mon Oct 7 14:07:45 2013 Koichi Sasada <ko1@atdot.net>
- * test/rss/test_1.0.rb: removed RSS::Element.indent_size tests.
- * test/rss/test_2.0.rb: ditto.
+ * 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);
-Sun Jun 18 00:49:11 2006 Tanaka Akira <akr@m17n.org>
+ * 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.
- * ext/socket/socket.c (bsock_recv_nonblock): new method
- BasicSocket#recv_nonblock.
- (udp_recvfrom_nonblock): renamed from ip_recvfrom_nonblock.
- IPSocket#recvfrom_nonblock is moved to UDPSocket#recvfrom_nonblock.
- (unix_recvfrom_nonblock): removed.
- UNIXSocket#recvfrom_nonblock is removed.
+ * proc.c. vm_insnhelper.c, vm_method.c: catch up this change.
-Sat Jun 17 22:17:17 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Oct 6 08:37:39 2013 Zachary Scott <e@zzak.io>
- * lib/mathn.rb (Integer::prime_division): raise ZeroDivisionError
- on zeros. [ruby-dev:28739]
+ * 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 Jun 17 14:53:32 2006 Tanaka Akira <akr@m17n.org>
+Sat Oct 5 11:21:01 2013 Aaron Pfeifer <aaron.pfeifer@gmail.com>
- * lib/pathname.rb: backport from 1.9.
- (Kernel#Pathname): new method.
+ * thread.c (terminate_atfork_i): fix locking mutexes not unlocked in
+ forks when not tracked in thread. [ruby-core:55102] [Bug #8433]
-Sat Jun 17 10:30:41 2006 Kouhei Sutou <kou@cozmixng.org>
+Fri Oct 4 19:54:09 2013 Zachary Scott <e@zzak.io>
- * lib/rss/rss.rb (Hash#merge, Enumerable#sort_by): removed.
+ * ext/dbm/dbm.c: [DOC] Fix wrong constant name in DBM by @edward
+ [Fixes GH-409] https://github.com/ruby/ruby/pull/409
- * lib/rss/rss.rb (RSS::RootElementMixin#to_xml): added.
- [ruby-talk:197284]
+Fri Oct 4 19:49:42 2013 Aman Gupta <ruby@tmm1.net>
- We can convert RSS version easily like the following:
- rss10 = RSS::Parser.parse(File.read("1.0.rdf"))
- File.open("2.0.rss", "w") {|f| f.print(rss10.to_xml("2.0"))}
+ * gc.c: rename heap.free_num as heap.swept_num to clarify meaning and
+ avoid confusion with objspace_free_num().
- * test/rss/test_1.0.rb: added #to_xml test.
- * test/rss/test_2.0.rb: ditto.
+Fri Oct 4 19:02:01 2013 Aman Gupta <ruby@tmm1.net>
- * test/rss/rss-testcase.rb: added some helper methods that
- generates sample RSS 2.0.
+ * 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.
- * sample/rss/convert.rb: added a sample script to convert RSS format.
+Fri Oct 4 18:53:42 2013 Aman Gupta <ruby@tmm1.net>
-Sat Jun 17 10:23:22 2006 Kouhei Sutou <kou@cozmixng.org>
+ * gc.c: add rb_objspace.limit to keep accurate count of total heap
+ slots [ruby-core:57633] [Bug #8983]
- * lib/rss/rss.rb (Kernel#funcall): removed.
- * lib/rss/parser.rb (Kernel.URI): removed.
+Fri Oct 4 09:32:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rss/maker/: supported
- xxx.new_yyy do |yyy|
- yyy.zzz = zzz
- ...
- end
- style and this style became the style of the recommendation.
+ * lib/csv.rb (CSV.foreach): support enumerator. based on a patch by
+ Hanmac (Hans Mackowiak) at [ruby-core:57643]. [ruby-core:57283]
+ [Feature #8929]
- Old style
- yyy = xxx.new_yyy
- yyy.zzz = zzz
- ...
- is supported too but this style isn't recommended.
- [ruby-talk:197284]
+Thu Oct 3 18:20:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/rss/test_*maker*.rb: used new recommended style.
+ * win32/win32.c (console_emulator_p, constat_handle): disable built-in
+ console colorizing when console-emulator-like DLL is injected.
+ [Feature #8201]
-Sat Jun 17 09:03:47 2006 Kouhei Sutou <kou@cozmixng.org>
+Thu Oct 3 18:01:44 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rss, test/rss: backported from trunk. (2005-11-16 - now)
+ * gc.c: define gc_profile_record::allocated_size if
+ CALC_EXACT_MALLOC_SIZE is true.
- * lib/rss/rss.rb (RSS::VERSION): 0.1.5 -> 0.1.6.
- * test/rss/test_version.rb (RSS::TestVersion#test_version): ditto.
+Thu Oct 3 13:42:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rss/trackback.rb: added TrackBack prefix.
- * lib/rss/maker/trackback.rb: ditto.
+ * common.mk (yes-test-sample): use RUNRUBY instead of MINIRUBY to set
+ runtime library path and run the built ruby. [Bug #8971]
- * lib/rss/rss.rb : removed needless argument 'prefix'.
- * lib/rss/parser.rb: ditto.
+Thu Oct 3 00:17:15 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/rss/1.0.rb: added rdf:Bag.
+ * misc/ruby-additional.el: Properly quote the body. An unquoted
+ body given to eval-after-load is evaluated immediately!
- * lib/rss/taxonomy.rb: implemented taxonomy module.
- * test/rss/test_taxonomy.rb: added tests for taxonomy support.
+Wed Oct 2 21:38:30 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * lib/rss/1.0.rb: added convenience method 'resources'.
- * lib/rss/taxonomy.rb: ditto.
- * test/rss/rss-assertions.rb: added test for 'resources'.
- * test/rss/test_taxonomy.rb: ditto.
+ * 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.
- * lib/rss/rss.rb: fixed a indentation bug.
- * lib/rss/taxonomy.rb: fixed <taxo:topic> #to_s bug.
- * test/rss/test_taxonomy.rb: added a #to_s test.
+Wed Oct 2 21:37:04 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * lib/rss/maker/taxonomy.rb: implemented taxonomy module for RSS
- Maker.
- * lib/rss/taxonomy.rb: supported RSS Maker.
- * lib/rss/maker.rb: added taxonomy module support.
+ * random.c (make_seed_value): a local array declaration was accessed
+ out of scope. Coverity Scan found this bug.
- * lib/rss/rss.rb: adjusted to other element API.
- * lib/rss/1.0.rb: adjusted to other element API but backward
- compatibility is reserved.
- * lib/rss/0.9.rb: ditto.
+Wed Oct 2 18:52:40 2013 Koichi Sasada <ko1@atdot.net>
- * test/rss/test_maker_taxo.rb: added test case for taxonomy module
- for RSS Maker.
- * test/rss/test_setup_maker_1.0.rb: added tests for taxo:topic.
+ * gc.c: relax GC condition due to malloc_limit.
- * test/rss/test_setup_maker_1.0.rb: added backward compatibility
- test.
- * test/rss/test_setup_maker_0.9.rb: ditto.
- * test/rss/test_setup_maker_2.0.rb: ditto.
+ * gc.c (GC_MALLOC_LIMIT_MAX): change default value
+ (256MB -> 512MB) and permit zero to ignore max value.
- * test/rss/rss-testcase.rb: added convenience method for setting
- up taxo:topic.
- * test/rss/rss-assertions.rb: added assertion for taxo:topic.
+ * gc.c (vm_malloc_increase, vm_xrealloc): do not cause GC on realloc.
- * sample/rss/blend.rb: followed new API.
+ * gc.c (gc_before_sweep): change debug messages.
- * lib/rss/taxonomy.rb: changed class or module prefix to
- Taxonomy from Taxo.
- * lib/rss/maker/taxonomy.rb: ditto.
+Wed Oct 2 16:26:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/rss/test_taxonomy.rb: use #reject directory.
+ * io.c (rb_io_close_read): duplex IO should wait its child process
+ even after close_read.
- * lib/rss/: use #__send__ instead of #send.
- * test/rss/: ditto.
+Wed Oct 2 15:39:13 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/rss/parser.rb: added entity handling type predicate.
- * lib/rss/rexmlparser.rb: ditto.
- * lib/rss/xmlparser.rb: ditto.
- * lib/rss/xmlscanner.rb: ditto.
+ * 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
- * lib/rss/xmlscanner.rb: more robust entity handling.
+Wed Oct 2 14:19:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/rss/test_parser.rb: added an entity handling test.
+ * io.c (rb_io_close_write): detach tied IO for writing before closing
+ to get rid of race condition. [ruby-list:49598]
- * test/rss/test_2.0.rb: added RSS 2.0 tests.
- * test/rss/rss-assertions.rb: extended XML stylesheet assertion.
- * lib/rss/0.9.rb: added initialize method.
- * test/rss/test_1.0.rb: cleanup.
+ * 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.
- * lib/rss/image.rb: added Image prefix.
- * lib/rss/maker/image.rb: ditto.
+Tue Oct 1 23:44:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * lib/rss/rss.rb: improved type conversion.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/0.9.rb: ditto.
- * lib/rss/2.0.rb: ditto.
- * lib/rss/image.rb: ditto.
- * lib/rss/syndication.rb: ditto.
+ * 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.
- * test/rss/test_2.0.rb: added type conversion tests.
- * test/rss/test_accessor.rb: ditto.
- * test/rss/test_to_s.rb: ditto.
- * test/rss/test_syndication.rb: ditto.
- * test/rss/test_setup_maker_2.0.rb: ditto.
- * test/rss/test_setup_maker_1.0.rb: ditto.
- * test/rss/test_setup_maker_0.9.rb: ditto.
- * test/rss/test_maker_sy.rb: ditto.
- * test/rss/test_maker_image.rb: ditto.
- * test/rss/test_maker_2.0.rb: ditto.
- * test/rss/test_maker_0.9.rb: ditto.
- * test/rss/test_image.rb: ditto.
+Tue Oct 1 22:03:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/rss/test_maker_1.0.rb: use assert instead of assert_equal.
+ * 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/rss/rss-assertions.rb: improved type conversion assertions.
+Tue Oct 1 20:54:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rss/rss.rb: added backward compatibility codes.
- * lib/rss/parser.rb: ditto.
- * test/rss/test_parser.rb: ditto.
- * test/rss/test_2.0.rb: ditto.
+ * file.c (stat_new_0): constify.
-Sat Jun 17 02:01:00 2006 Tanaka Akira <akr@m17n.org>
+ * file.c (rb_stat_new): constify and export. based on a patch by
+ Hanmac (Hans Mackowiak) at [ruby-core:53225]. [Feature #8050]
- * lib/pp.rb (Kernel#pretty_inspect): defined for pretty printed
- string.
+Tue Oct 1 16:03:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Jun 17 00:23:58 2006 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]
- * parse.y (reswords): kDO_BLOCK was missing. fixed: [ruby-core:7995]
+Mon Sep 30 23:14:36 2013 Zachary Scott <e@zzak.io>
-Sat Jun 17 00:02:15 2006 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * ext/objspace/objspace.c: [DOC] Cleaned up many rdoc formatting
+ issues and several duplicate grammar bugs.
- * ext/win32ole/win32ole.c (ole_propertyput): support
- PROPERTYPUTREF. [ruby-talk:183042]
+Mon Sep 30 23:01:01 2013 Zachary Scott <e@zzak.io>
- * ext/win32ole/tests/test_propertyputref.rb: ditto.
+ * ext/objspace/object_tracing.c: [DOC] Adjust rdoc formatting and fix
+ small grammar typo
-Thu Jun 15 23:02:47 2006 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Mon Sep 30 17:28:39 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/win32ole.c (fole_methods): The return value
- of WIN32OLE#ole_methods should include PROPERTYPUTREF methods.
+ * ext/objspace/object_tracing.c: [DOC] add some notes for
+ ObjectSpace::trace_object_allocations.
- * ext/win32ole/win32ole.c (fole_put_methods): The return value
- of WIN32OLE#ole_put_methods should include PROPERTYPUTREF methods.
+Mon Sep 30 16:46:58 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/tests/test_ole_methods.rb: ditto.
+ * 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.
- * ext/win32ole/tests/testall.rb : ditto.
+ * test/objspace/test_objspace.rb: add a test for new methods.
-Wed Jun 14 18:23:28 2006 Eric Hodel <drbrain@segment7.net>
+ * NEWS: add a description for new methods.
- * enum.c (enum_any): Documentation typo.
+Mon Sep 30 11:18:04 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jun 14 15:01:09 2006 Eric Hodel <drbrain@segment7.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].
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser#warn): Don't print
- warnings when -q is set.
+Mon Sep 30 10:40:20 2013 Shugo Maeda <shugo@ruby-lang.org>
-Wed Jun 14 23:03:53 2006 Tanaka Akira <akr@m17n.org>
+ * vm_method.c (rb_undef): raise a NameError if the original method
+ of a refined method is not defined.
- * configure.in: check sizeof(rlim_t).
- check setrlimit.
+ * vm_insnhelper.c (rb_method_entry_eq): added NULL check to avoid SEGV.
- * process.c (proc_getrlimit): new method Process.getrlimit.
- (proc_setrlimit): new method Process.setrlimit.
+ * test/ruby/test_refinement.rb: related test.
- * ruby.h (NUM2ULL): new macro.
+Sun Sep 29 23:45:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jun 12 22:25:09 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * parse.y (rb_id_attrset, intern_str): allow junk attrset ID for
+ Struct.
- * sprintf.c (rb_f_sprintf): adjust precision length to prevent
- splitting multi-byte characters. [ruby-list:42389]
+ * 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 Jun 11 23:20:07 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Sep 29 18:45:05 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * lib/optparse.rb (OptionParser::Arguable#getopts): pass self to the
- parser.
+ * 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]
-Sun Jun 11 10:00:57 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/ruby/test_keyword.rb: tests for the above.
- * win32/win32.h (write): not need to define on bcc.
+Sat Sep 28 23:25:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Jun 11 08:30:33 2006 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.
- * lib/optparse.rb (OptionParser#getopts): new methods.
+Sat Sep 28 14:30:29 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Sat Jun 10 18:02:40 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * ext/bigdecimal/lib/bigdecimal/newton.rb (Newton::nlsolve): typo
- fixed: raize -> raise. [ruby-talk:196608]
+Sat Sep 28 00:19:41 2013 Shugo Maeda <shugo@ruby-lang.org>
-Thu Jun 8 14:19:17 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/curses/extconf.rb: check the size of chtype.
- * win32/win32.[ch] (rb_w32_read, rb_w32_write): new functions.
- use recv() and send() when fd is socket. fixed: [ruby-dev:28694]
+ * ext/curses/curses.c (NUM2CH, CH2NUM): use proper macros for
+ the size of chtype.
-Wed Jun 7 16:22:51 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ [ruby-core:56090] [Bug #8659]
- * lib/tempfile.rb (Tempfile::make_tmpname): put dot between
- basename and pid. [ruby-talk:196272]
+Fri Sep 27 18:33:23 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jun 7 14:53:04 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c: add two GC tuning environment variables.
+ RUBY_GC_MALLOC_LIMIT_MAX and RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR.
+ See r43067 for details.
- * win32/win32.c (errmap): add some winsock errors.
+ * gc.c (rb_gc_set_params): refactoring. And change verbose notation.
+ Mostly duplicated functions get_envparam_int/double is not cool.
+ Please rewrite it.
-Wed Jun 7 11:34:38 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/ruby/test_gc.rb: fix a test for this change.
- * configure.in: add new configure option `--with-winsock2' for mingw.
+Fri Sep 27 17:44:41 2013 Koichi Sasada <ko1@atdot.net>
- * win32/Makefile.sub (config.h): define USE_WINSOCK2 in config.h
- instead of in CPPFLAGS.
+ * gc.c (GC_MALLOC_LIMIT): 8,000,000 -> 8 * 1,024 * 1,024.
- * ext/socket/extconf.rb: determine whether to use winsock2 or not
- by using with_config.
+Fri Sep 27 17:19:39 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jun 7 10:45:10 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (gc_before_sweep): cast to size_t to suppress warnings.
- * win32/{configure.bat, setup.mak, Makefile.sub, win32.h}: add
- new configure option `--with-winsock2'.
+Fri Sep 27 17:07:55 2013 Koichi Sasada <ko1@atdot.net>
- * win32/win32.c (StartSockets): ditto.
+ * 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.
- * ext/socket/extconf.rb: ditto.
+Fri Sep 27 16:32:27 2013 Koichi Sasada <ko1@atdot.net>
- * win32/win32.c (open_ifs_socket): new function.
+ * 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.
- * win32/win32.c (StartSockets, rb_w32_socket): use open_ifs_socket()
- instead of socket().
- ifs socket support is backported from trunk.
+ * 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.
-Wed Jun 7 09:14:44 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (ruby_gc_params_t): add initial_malloc_limit_factor and
+ initial_malloc_limit_max.
- * eval.c (rb_call0): binding for the return event hook should have
- consistent scope. [ruby-core:07928]
+ * gc.c (vm_malloc_prepare, vm_xrealloc): use vm_malloc_increase to
+ add and check malloc_increase.
- * eval.c (EXEC_EVENT_HOOK): trace_func may remove itself from
- event_hooks. no guarantee for arbitrary hook deletion.
- [ruby-dev:28632]
+Fri Sep 27 01:05:00 2013 Zachary Scott <e@zzak.io>
-Mon Jun 5 18:12:12 2006 Tanaka Akira <akr@m17n.org>
+ * re.c: [DOC] arguments of Regexp::union receive #to_regexp [Bug #8205]
- * ext/socket/socket.c (sock_s_unpack_sockaddr_in): reject
- non-AF_INET/AF_INET6 sockaddr.
- (sock_s_unpack_sockaddr_un): reject non-AF_UNIX sockaddr.
- [ruby-dev:28691]
+Fri Sep 27 00:39:27 2013 Zachary Scott <e@zzak.io>
-Sun Jun 4 20:40:19 2006 Tanaka Akira <akr@m17n.org>
+ * struct.c: [DOC] grammar of ArgumentError in Struct.new [Bug #8936]
+ Patch by Prathamesh Sonpatki
- * ext/socket/socket.c: fix sockaddr_un handling.
- [ruby-dev:28677]
+Thu Sep 26 22:11:56 2013 Zachary Scott <e@zzak.io>
-Fri Jun 2 22:08:17 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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
- * lib/forwardable.rb: RDoc typo fix from Jan Svitok
- <jan.svitok at gmail.com>. [ruby-core:07943]
+Thu Sep 26 22:08:11 2013 Zachary Scott <e@zzak.io>
-Fri Jun 2 19:02:09 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * lib/observer.rb: [DOC] syntax improvement in example by @chastell
+ [Fixes GH-400] https://github.com/ruby/ruby/pull/400
- * ext/openssl/extconf.rb: use create_header.
+Thu Sep 26 22:03:15 2013 Zachary Scott <e@zzak.io>
- * ext/openssl/ossl.h, ext/openssl/openssl_missing.h:
- include RUBY_EXTCONF_H.
+ * ext/digest/digest.c: [DOC] typo in overview by @chastell
+ [Fixes GH-399] https://github.com/ruby/ruby/pull/399
-Fri Jun 2 17:16:52 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Sep 26 22:00:42 2013 Zachary Scott <e@zzak.io>
- * lib/mkmf.rb (CLEANINGS): remove extconf.h by distclean if created.
+ * ext/openssl/ossl.c: [DOC] typo in example by @zoranzaric
+ [Fixes GH-401] https://github.com/ruby/ruby/pull/401
-Fri Jun 2 00:11:19 2006 Tanaka Akira <akr@m17n.org>
+Thu Sep 26 21:07:49 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/socket/socket.c (s_recvfrom): alen may be zero with UNIXSocket
- too. (tested on NetBSD 3.0)
- (s_recvfrom_nonblock): extracted from sock_recvfrom_nonblock.
- (sock_recvfrom_nonblock): use s_recvfrom_nonblock.
- (ip_recvfrom_nonblock): new method: IPSocket#recvfrom_nonblock
- (unix_recvfrom_nonblock): new method: UNIXSocket#recvfrom_nonblock
- (s_accept_nonblock): extracted from sock_accept_nonblock.
- (sock_accept_nonblock): use s_accept_nonblock.
- (tcp_accept_nonblock): new method: TCPServer#accept_nonblock
- (unix_accept_nonblock): new method: UNIXServer#accept_nonblock
+ * misc/ruby-electric.el (ruby-electric-delete-backward-char): Add
+ support for smartparens-mode.
-Thu Jun 1 19:12:37 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * win32/win32.c (rb_w32_cmdvector): backslashes inside single-quotes
- no longer has special meanings. fixed: [ruby-list:42311]
+Thu Sep 26 16:51:00 2013 Shota Fukumori <her@sorah.jp>
-Thu Jun 1 16:14:41 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * insns.def (opt_regexpmatch2): Check String#=~ hasn't overridden
+ before calling rb_reg_match().
- * win32/win32.c (rb_w32_getcwd): runtime's getcwd() will not success
- if the length of the cwd is longer than MAX_PATH.
- fixed [ruby-list:42335]
+ * test/ruby/test_string.rb: Test for above.
-Thu Jun 1 11:29:14 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm.c (vm_init_redefined_flag): Add BOP flag for String#=~
- * win32/win32.c (rb_w32_getcwd): set errno if not set.
- fixed [ruby-list:42346]
+ [ruby-core:57385] [Bug #8953]
-Sat May 27 11:29:46 2006 nobuyoshi nakada <nobu@ruby-lang.org>
+Thu Sep 26 16:43:42 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/extmk.rb (extmake): remove extinit files if no statically linked
- extensions.
+ * 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.
-Fri May 26 09:05:11 2006 nobuyoshi nakada <nobu@ruby-lang.org>
+Thu Sep 26 16:24:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ruby.h, lib/mkmf.rb (create_header): clear command line options for
- macros moved to extconf.h.
+ * insns.def (opt_regexpmatch1): check Regexp#=~ is not defined before
+ calling rb_reg_match()
- * ext/extmk.rb (extract_makefile, extmk): made RUBY_EXTCONF_H and
- EXTSTATIC permanent.
+ * test/ruby/test_regexp.rb: add test
- * ext/{dbm,digest/*,socket,zlib}/extconf.rb: used $defs and $INCFLAGS.
+ * vm.c (ruby_vm_redefined_flag): change type to short[]
- * {bcc32,win32,wince}/Makefile.sub (COMPILE_C, COMPILE_CXX): added
- $(INCFLAGS).
+ * vm.c (vm_redefinition_check_flag): return REGEXP_REDEFINED_OP_FLAG if
+ klass == rb_cRegexp
- * lib/mkmf.rb (configuration): add $defs unless extconf.h was created.
+ * vm.c (vm_init_redefined_flag): setup BOP flag for Regexp#=~
-Thu May 25 01:52:07 2006 nobuyoshi nakada <nobu@ruby-lang.org>
+ * vm_insnhelper.h: add REGEXP_REDEFINED_OP_FLAG
- * lib/mkmf.rb (pkg_config): particular config commands support.
+ [ruby-core:57385] [Bug #8953]
- * ext/extmk.rb: deal with $static set in extconf.rb.
+Thu Sep 26 14:46:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * mkconfig.rb: merge multiple entries to an entry with multiple lines.
+ * gc.c (mark_locations_array): disable AddressSanitizer. based on a
+ patch by halfie (Ruby Guy) at [ruby-core:57372].
+ [ruby-core:56155] [Bug #8680]
- * lib/mkmf.rb: allow a series of commands to link.
+Wed Sep 25 17:41:29 2013 Koichi Sasada <ko1@atdot.net>
- * win32/Makefile.sub: embed manifests.
+ * 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]
- * win32/setup.mak: suffix OS name by runtime version.
+Wed Sep 25 17:12:08 2013 Koichi Sasada <ko1@atdot.net>
-Wed May 24 23:52:11 2006 nobuyoshi nakada <nobu@ruby-lang.org>
+ * 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).
- * configure.in (ac_install_sh): ignore dummy install-sh.
- [ruby-talk:193876]
+ * 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 May 24 03:10:48 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Wed Sep 25 16:58:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/lib/openssl/ssl.rb
- (OpenSSL::SSL::SocketForwarder#setsockopt,getsockopt): typo fixed.
+ * internal.h (rb_float_value, rb_float_new): move inline functions
+ from ruby/ruby.h.
-Mon May 22 17:54:12 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * numeric.c (rb_float_value, rb_float_new): define external functions
+ for extension libraries.
- * ext/socket/socket.c (sock_recvfrom_nonblock): use rb_read_pending
- instead of rb_io_read_pending.
- [ruby-dev:28663]
+Wed Sep 25 15:37:02 2013 Koichi Sasada <ko1@atdot.net>
-Mon May 22 17:30:04 2006 Tanaka Akira <akr@m17n.org>
+ * test/rdoc/test_rdoc_generator_darkfish.rb: add a guard for windows.
- * rubyio.h (rb_io_set_nonblock): declared.
+Wed Sep 25 09:53:11 2013 Eric Hodel <drbrain@segment7.net>
- * io.c (rb_io_set_nonblock): new function.
- (io_getpartial): nonblocking read support.
- (io_read_nonblock): new method: IO#read_nonblock.
- (io_write_nonblock): new method: IO#write_nonblock.
+ * lib/rubygems: Fix CVE-2013-4363. Miscellaneous minor improvements.
- * ext/socket/socket.c
- (sock_connect_nonblock): new method: Socket#connect_nonblock.
- (sock_accept_nonblock): new method: Socket#accept_nonblock.
- (sock_recvfrom_nonblock): new method: Socket#recvfrom_nonblock.
+ * test/rubygems: Tests for the above.
- [ruby-core:7917]
+Tue Sep 24 17:38:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon May 22 15:57:39 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * string.c (rb_str_inspect): get rid of out-of-bound access.
- * eval.c (umethod_bind): should not update original class.
- [ruby-dev:28636]
+ * string.c (rb_str_inspect): when a UTF-16/32 string doesn't have a
+ BOM, inspect as a dummy encoding string.
-Mon May 22 13:38:57 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Sep 24 17:15:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (ev_const_get): should support constant access from
- within instance_eval(). [ruby-dev:28327]
+ * enc/encdb.c (ENC_DUMMY_UNICODE): make BOM-encodings dummy.
-Thu May 18 17:51:32 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * encoding.c (enc_autoload): keep dummy encodings dummy.
- * time.c (time_timeval): should round for usec floating
- number. [ruby-core:07896]
+Tue Sep 24 16:41:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * time.c (time_add): ditto.
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#write): data size
+ is in bytes, not chars. terminators should be placed automatically.
-Thu May 18 17:11:45 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Sep 24 16:39:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/cgi.rb (CGI::out): support utf-8. a patch from Fujioka
- <fuj at rabbix.jp>. [ruby-dev:28649]
-
-Thu May 18 00:42:12 2006 nobuyoshi nakada <nobu@ruby-lang.org>
-
- * ext/extmk.rb, lib/mkmf.rb: use BUILD_FILE_SEPARATOR in Makefiles.
-
-Wed May 17 17:55:26 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#each_value): encode
+ name.
- * dir.c (sys_warning): should not call a vararg function
- rb_sys_warning() indirectly. [ruby-core:07886]
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#each_key): ditto.
-Wed May 17 08:17:15 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#export_string):
+ encode to locale encoding if default internal is not set.
- * util.c (ruby_strtod): try to reduce errors using powersOf10
- table. [ruby-dev:28644]
+Tue Sep 24 16:35:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue May 16 15:34:18 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/win32/lib/win32/registry.rb (Win32::Registry::API#EnumKey):
+ size of the name is in WCHARs, not in bytes.
- * re.c (rb_reg_initialize): should not allow modifying literal
- regexps. frozen check moved from rb_reg_initialize_m as well.
+Tue Sep 24 14:07:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Tue May 16 09:20:16 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (free_method_cache_entry_i): unused function
- * re.c (rb_reg_initialize): should not modify untainted objects in
- safe levels higher than 3.
+ * gc.c (rb_free_mc_table): ditto
- * re.c (rb_memcmp): type change from char* to const void*.
+ * internal.h (method_cache_entry_t): unused struct
- * dir.c (dir_close): should not close untainted dir stream.
+ * vm_method.c (verify_method_cache): remove unused variable
- * dir.c (GetDIR): add tainted/frozen check for each dir operation.
+ * vm_method.c (rb_method_entry): ditto
-Mon May 15 17:42:39 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Sep 24 14:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_symbol_arg):
- typo fixed. a patch from Florian Gross <florg at florg.net>.
+ * class.c (class_alloc): remove mc_tbl
-Sat May 13 16:14:05 2006 Tanaka Akira <akr@m17n.org>
+ * gc.c (obj_free): ditto
- * lib/pp.rb (PP.mcall): new method.
- (Struct#pretty_print): call Kernel#class and Struct#members even if
- overridden.
- (Struct#pretty_print_cycle): ditto.
- [ruby-core:7865]
+ * internal.h (struct rb_classext_struct): ditto
-Thu May 11 19:57:00 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * method.h (rb_method_entry): remove ent param
- * util.c (ruby_strtod): differ addition to minimize error.
- [ruby-dev:28619]
+ * vm_method.c: restore the global method cache. Per class cache tables
+ turned out to be far too slow.
-Fri Aug 11 15:39:25 2006 Eric Hodel <drbrain@segment7.net>
+ [ruby-core:57289] [Bug #8930]
- * lib/yaml/tag.rb: Replace nodoc with stopdoc so Module methods get
- documented.
+Tue Sep 24 12:51:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu May 11 18:10:43 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/win32/lib/win32/registry.rb (Win32::Registry::API): need
+ Constants.
- * util.c (ruby_strtod): should not raise ERANGE when the input
- string does not have any digits. [ruby-dev:28629]
+ * ext/win32/lib/win32/registry.rb (Win32::Registry::API#EnumValue):
+ size of the name is in WCHARs, not in bytes.
-Sun May 7 03:09:51 2006 Stephan Maka <stephan@spaceboyz.net>
+Mon Sep 23 22:16:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/resolv.rb (Resolv::DNS::Requester::ConnectedUDP#initialize):
- Use AF_INET6 for nameservers containing colons.
+ * 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]
-Sat May 6 00:38:42 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Sep 23 12:11:26 2013 Masaki Matsushita <glass.saga@gmail.com>
- * signal.c (trap): sig should be less then NSIG. Coverity found
- this bug. a patch from Kevin Tew <tewk at tewk.com>.
- [ruby-core:07823]
+ * hash.c (env_each_pair): do not call rb_assoc_new() if
+ it isn't needed.
-Thu May 4 02:24:16 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Sep 23 10:42:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/syck/emitter.c (syck_scan_scalar): avoid accessing
- uninitialized array element. a patch from Pat Eyler
- <rubypate at gmail.com>. [ruby-core:07809]
+ * 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].
- * array.c (rb_ary_fill): initialize local variables first. a
- patch from Pat Eyler <rubypate at gmail.com>. [ruby-core:07810]
+Mon Sep 23 05:07:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/syck/yaml2byte.c (syck_yaml2byte_handler): need to free
- type_tag. a patch from Pat Eyler <rubypate at gmail.com>.
- [ruby-core:07808]
+ * include/ruby/intern.h (rb_ary_cat): move from internal.h, since it
+ is described in README.EXT.
-Wed May 3 02:12:07 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Sep 22 20:55:20 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/socket/socket.c (make_hostent_internal): accept ai_family
- check from Sam Roberts <sroberts at uniserve.com>.
- [ruby-core:07691]
+ * vm_insnhelper.c (vm_make_proc_with_iseq): fix bug message.
+ This is follow up to changes in r42637.
-Mon May 1 12:23:19 2006 <sinara@blade.nagaokaut.ac.jp>
+Sun Sep 22 20:35:38 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * numeric.c (num_div): use floor rather than rb_Integer().
- [ruby-dev:28589]
+ * ext/-test-/tracepoint/tracepoint.c (Init_tracepoint): prevent from GC.
- * numeric.c (flo_divmod): the first element of Float#divmod should
- be an integer. [ruby-dev:28589]
+Sun Sep 22 19:00:28 2013 Benoit Daloze <eregontp@gmail.com>
- * test/ruby/test_float.rb: add tests for divmod, div, modulo and remainder.
+ * 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 Apr 29 22:42:08 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sat Sep 21 20:11:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_asn1.c (ossl_asn1_decode0): should initialize
- flag. [ruby-core:07785]
+ * 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]
-Fri Apr 28 10:53:16 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Sep 21 01:04:25 2013 Zachary Scott <e@zzak.io>
- * util.c (ruby_strtod): should not cut off 18 digits for no
- reason. [ruby-core:07796]
+ * lib/benchmark.rb: [DOC] grammar of Benchmark#bm [Bug #8888]
+ Patch by Prathamesh Sonpatki
- * util.c (ruby_strtod): fixed wrong conversion.
+Sat Sep 21 00:50:02 2013 Zachary Scott <e@zzak.io>
-Thu Apr 27 01:38:10 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * enumerator.c: [DOC] Enumerator#each arguments documentation [GH-388]
+ Patch by @kachick https://github.com/ruby/ruby/pull/388
- * array.c (rb_ary_fill): internalize local variable "beg" to
- pacify Coverity. [ruby-core:07770]
+Sat Sep 21 00:49:16 2013 Zachary Scott <e@zzak.io>
-Wed Apr 26 16:59:24 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * enum.c: [DOC] Enumerable#to_a accepts arguments [GH-388]
+ Patch by @kachick https://github.com/ruby/ruby/pull/388
- * pack.c (pack_unpack): now supports CRLF newlines. a patch from
- <tommy at tmtm.org>. [ruby-dev:28601]
+Sat Sep 21 00:47:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Apr 25 18:00:05 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * string.c (rb_str_conv_enc_opts): make sure to scan coderange to get
+ rid of unnecessary conversion.
- * ext/tk/tcltklib.c (delete_slaves): maybe increment the reference
- count of a NULL Tcl_Obj [ruby-core:07759].
+Sat Sep 21 00:21:08 2013 Zachary Scott <e@zzak.io>
-Tue Apr 25 07:55:31 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/openssl/lib/openssl/ssl.rb: [DOC] Document OpenSSL::SSLServer
+ Based on a patch by Rafal Lisowski [Bug #8758]
- * lib/jcode.rb (String::tr_s): should have translated non
- squeezing character sequence (i.e. a character) as well. thanks
- to Hiroshi Ichikawa <gimite at gimite.ddo.jp> [ruby-list:42090]
+Fri Sep 20 23:54:03 2013 Zachary Scott <e@zzak.io>
-Tue Apr 25 00:08:24 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/gserver.rb: [DOC] correct gserver.rb license [Bug #8913]
- * regex.c (re_compile_pattern): should check if c is not a
- multibyte character. a patch from KIMURA Koichi
- <kimura.koichi at canon.co.jp>. [ruby-dev:28598]
+Fri Sep 20 23:48:34 2013 Zachary Scott <e@zzak.io>
-Fri Apr 21 15:19:13 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/psych/yaml/yaml.h: [DOC] merge upstream typo fix by @GreenGeorge
+ https://github.com/tenderlove/psych/pull/161
- * ext/tk/tcltklib.c (lib_eventloop_ensure): refer freed pointer
- [ruby-core:07744] and memory leak.
+Fri Sep 20 23:37:40 2013 Zachary Scott <e@zzak.io>
-Fri Apr 21 12:14:52 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/securerandom.rb: [DOC] SecureRandom.hex length argument
+ [Fixes GH-394] Patch by @avdi https://github.com/ruby/ruby/pull/394
- * ext/socket/socket.c: document update patch from Sam Roberts
- <sroberts at uniserve.com>. [ruby-core:07701]
+Fri Sep 20 23:34:48 2013 Zachary Scott <e@zzak.io>
-Wed Apr 19 13:55:27 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * benchmark/bm_app_answer.rb: removed duplicate code [Fixes GH-393]
+ Patch by @gouravtiwari https://github.com/ruby/ruby/pull/393
- * parse.y (arg): too much NEW_LIST()
+Fri Sep 20 23:24:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (SETUP_ARGS0): remove unnecessary access to nd_alen.
+ * common.mk (btest, btest-ruby, test-knownbug): add $(RUN_OPTS) to
+ ruby to be run, so that tests are runnable before making exts.
-Wed Apr 19 11:57:04 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * common.mk (test-sample): ditto, and use $(MINIRUBY) as rubytest.rb
+ does not need extension libraries.
- * eval.c (rb_eval): use ARGSCAT for NODE_OP_ASGN1.
- [ruby-dev:28585]
+ * tool/rubytest.rb: pass $(RUN_OPTS) to testing ruby using --run-opt.
- * parse.y (list_concat): revert last change.
+Fri Sep 20 15:01:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (arg): use NODE_ARGSCAT for placeholder.
+ * parse.y (intern_str): sigil only names are junk, at least one
+ identifier character is needed. [ruby-dev:47723] [Bug #8928]
-Wed Apr 19 11:13:17 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * parse.y (rb_enc_symname_type): fix out of bound access.
- * lib/getoptlong.rb (GetoptLong::get): RDoc update patch from
- mathew <meta at pobox.com>. [ruby-core:07738]
+Fri Sep 20 14:14:32 2013 Tanaka Akira <akr@fsij.org>
-Wed Apr 19 10:13:27 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/-test-/printf/printf.c (printf_test_call): Fix an end of buffer
+ argument.
- * variable.c (rb_const_set): raise error when no target klass is
- supplied. [ruby-dev:28582]
+Thu Sep 19 16:59:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Apr 19 09:49:36 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * parse.y (lambda): adjust position to the beginning of the block.
- * parse.y (list_concat): should not modify nodes other than
- NODE_ARRAY. [ruby-dev:28583]
+Thu Sep 19 16:25:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Apr 18 17:40:37 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * vsnprintf.c (BSD_vfprintf): initialize cp so that size is 0 in the
+ commented case. fix an accidental bug at r16716.
- * ext/tk/lib/multi-tk.rb: add a binding to a container for a slave IP.
+Thu Sep 19 14:33:14 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk.rb: update RELEASE_DATE.
+ * NEWS: add a news for r42974.
- * ext/tk/tcltklib.c: forget to reset a Tcl interpreter.
+Thu Sep 19 14:12:02 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/stubs.c: fix potential bugs about handling rb_argv0.
+ * include/ruby/ruby.h: make Symbol objects frozen.
+ [Feature #8906]
+ I want to freeze this good day, too.
-Tue Apr 18 00:11:21 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/ruby/test_eval.rb: catch up this change.
- * eval.c: block_unique should be 1, not frame_unique.
- [ruby-dev:28577]
+ * test/ruby/test_symbol.rb: add a test to check frozen symbols.
-Fri Aug 11 15:39:25 2006 Eric Hodel <drbrain@segment7.net>
+Thu Sep 19 09:11:33 2013 Eric Hodel <drbrain@segment7.net>
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_body): Make RDoc
- ignore C function prototypes. Patch by Tilman Sauerbeck
- <tilman at code-monkey.de>. [ruby-core:8574]
- * lib/yaml/tag.rb: Replace nodoc with stopdoc so Module methods get
- documented.
+ * NEWS: Update for RDoc 4.1.0.preview.1 and RubyGems 2.2.0.preview.1
-Mon Apr 10 01:03:10 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Sep 19 08:59:41 2013 Eric Hodel <drbrain@segment7.net>
- * prec.c (prec_prec_f): documentation patch from
- <gerardo.santana at gmail.com>. [ruby-core:07689]
+ * lib/rdoc/markdown/literals_1_9.rb: Fix trailing whitespace.
-Sat Apr 8 02:34:34 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ Previously kpeg (which generates this file) added trailing
+ whitespace, but this bug is now fixed.
- * bignum.c (rb_big_pow): second operand may be too big even if
- it's a Fixnum. [ruby-talk:187984]
+ * lib/rdoc/markdown.rb: ditto.
-Sat Apr 8 02:12:38 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Sep 19 08:33:14 2013 Eric Hodel <drbrain@segment7.net>
- * README.EXT: update symbol description. [ruby-talk:188104]
+ * lib/rdoc: Update to RDoc 4.1.0.preview.1
-Thu Apr 6 23:28:47 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ RDoc 4.1.0 contains a number of enhancements including a new default
+ style and accessibility support. You can see the changelog here:
- * COPYING: explicitly note GPLv2. [ruby-talk:187922]
+ https://github.com/rdoc/rdoc/blob/v4.1.0.preview.1/History.rdoc
-Thu Apr 6 11:18:37 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * test/rdoc: ditto.
- * ext/tk/lib/tk/panedwindow.rb: lack of arguments. [ruby-core:7681]
+Thu Sep 19 07:16:26 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Thu Apr 6 01:04:47 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/psych/lib/psych.rb: updating Psych version
- * ext/tk/tcltklib.c: fix SEGV when embedding to an application.
- [ruby-core:7600]
+ * ext/psych/psych.gemspec: ditto
- * ext/tk/tcltklib.c: fix SEGV at exit. [ruby-talk:186489]
+Thu Sep 19 06:39:40 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tk/tkutil/tkutil.c: follow to changing specification of
- instance_eval on ruby-1.9.x.
+ * lib/rubygems/dependency_resolver.rb: Switch the iterative resolver
+ algorithm from recursive to iterative to avoid possible
+ SystemStackError.
- * ext/tk/lib/tk.rb: ditto.
+Thu Sep 19 06:29:30 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tk/lib/multi-tk.rb: ditto.
+ * lib/rubygems: Update to RubyGems 2.2.0.preview.1
- * ext/tk/lib/tk.rb: remove warning about redefinition of methods.
+ This brings several new features to RubyGems summarized here:
- * ext/tk/lib/tk/variable.rb: remove warning about unseting Tcl
- variables.
+ https://github.com/rubygems/rubygems/blob/v2.2.0.preview.1/History.txt
-Wed Mar 29 20:54:44 2006 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * test/rubygems: ditto.
- * ext/win32ole/win32ole.c (fole_getproperty): WIN32OLE#[] should accept
- multi arguments.
+Wed Sep 18 23:14:58 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/win32ole/tests/testWIN32OLE.rb (test_setproperty_bracket): ditto.
+ * 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]
-Wed Mar 29 10:07:44 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * 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.
- * ext/nkf/nkf-utf8/nkf.c (nkf_each_char_to_hex, encode_fallback_subchar,
- e2w_conv): support C90 compiler.
+Wed Sep 18 16:32:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Mar 29 06:48:40 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * proc.c (mnew_from_me): allocate structs after allocated wrapper
+ object successfully, to get rid of potential memory leak.
- * eval.c (backtrace): reports aliased method names in a generated
- backtrace. a patch from "U.Nakamura" <usa at garbagecollect.jp>.
- [ruby-dev:28471]
+Tue Sep 17 15:54:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Mar 27 22:19:09 2006 NARUSE, Yui <naruse@ruby-lang.org>
+ * 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]
- * ext/nkf/nkf-utf8/{nkf.c, utf8tbl.c, config.h}: imported nkf 2.0.6.
- * Add --ic / --oc option and mapping tables.
- * Add fallback option.
- * Add --no-best-fit-chars option.
- * Fix some bugs.
+ * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_throw):
+ assertion for throw. MiniTest::Assertions#assert_throws discards
+ the caught value.
- * ext/nkf/nkf.c (nkf_split_options): added for parse option string.
+ * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_nothing_thrown):
+ returns the result of the given block.
- * ext/nkf/lib/kconv.rb (Kconv.to*): add -m0.
- Note that Kconv.to* still imply -X.
+Tue Sep 17 12:55:58 2013 Eric Hodel <drbrain@segment7.net>
-Mon Mar 27 03:17:21 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * doc/regexp.rdoc: [DOC] Replace paragraphs in verbatim sections with
+ plain paragraphs to improve readability as ri and HTML.
- * eval.c (rb_call0): insecure calling should be checked for non
- NODE_SCOPE method invocations too.
+Mon Sep 16 07:32:35 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * eval.c (rb_alias): should preserve the current safe level as
- well as method definition.
+ * complex.c: removed meaningless lines.
+ * rational.c: ditto.
-Fri Mar 24 23:14:30 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Sep 16 00:44:23 2013 Masaki Matsushita <glass.saga@gmail.com>
- * eval.c (yield_under_i): pass self again for instance_eval().
- [ruby-dev:28466]
+ * ext/socket/mkconstants.rb: define MSG_FASTOPEN.
+ [ruby-core:57138] [Feature #8897]
-Fri Mar 24 17:20:03 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Sep 15 13:31:23 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * process.c (rb_f_sleep): remove description about SIGALRM which
- is not valid on the current implementation. [ruby-dev:28464]
+ * 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.
-Thu Mar 23 10:47:03 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Sep 14 06:08:10 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (method_missing): should support argument splat in
- super. [ruby-talk:185438]
+ * dir.c (dir_s_glob): [DOC] Improve wording and layout.
-Mon Mar 20 12:05:18 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * dir.c (file_s_fnmatch): ditto.
- * configure.in: Solaris SunPro compiler -rapth patch from
- <kuwa at labs.fujitsu.com>. [ruby-dev:28443]
+ * dir.c (Init_Dir): [DOC] Document File::Constants::FNM_XXX
+ constants. (These won't show up in RDoc until a new RDoc is
+ imported.)
-Mon Mar 20 09:40:23 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Sep 12 14:58:58 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * configure.in: remove enable_rpath=no for Solaris.
- [ruby-dev:28440]
+ * lib/uri/generic.rb (URI::Generic.find_proxy): return nil if
+ http_proxy environment variable is empty string.
+ [ruby-core:57140] [Bug #8898]
-Fri Mar 17 19:08:49 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri Sep 13 10:40:28 2013 Eric Hodel <drbrain@segment7.net>
- * ext/openssl/ossl_ssl.c, ext/openssl/ossl_nsspki.c: fix typo.
- [ruby-core:07571]
+ * lib/rubygems: Update to RubyGems 2.1.3
-Wed Mar 15 16:54:21 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ Fixed installing platform gems
- * lib/mkmf.rb (create_makefile): support libraries without *.so.
+ Restored concurrent requires
-Wed Mar 15 16:35:43 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ Fixed installing gems with extensions with --install-dir
- * ext/openssl/ossl_ssl.c, ext/openssl/ossl_nsspki.c: should use
- "rb_str_new(0, 0)" to make empty string.
+ Fixed `gem fetch -v` to install the latest version
-Sat Mar 11 14:24:06 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ Fixed installing gems with "./" in their files entries
- * lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::wrap): removed
- space before argument parenthesis. [ruby-talk:183630]
+ * test/rubygems/test_gem_package.rb: Tests for the above.
- * ruby.1: a clarification patch from David Lutterkort
- <dlutter at redhat.com>. [ruby-core:7508]
+ * NEWS: Updated for RubyGems 2.1.3
-Sat Mar 4 15:26:40 2006 Tanaka Akira <akr@m17n.org>
+Thu Sep 12 22:40:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * gc.c (id2ref): fix symbol test.
+ * configure.in (RUBY_CHECK_SIGNEDNESS): macro to check signedness of a
+ type.
-Sat Mar 4 01:08:07 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in (size_t): must be unsigned.
+ [ruby-core:57149] [Feature #8890]
- * lib/rdoc/ri/ri_paths.rb (RI::Paths): adding paths from rubygems
- directories. a patch from Eric Hodel <drbrain at segment7.net>.
- [ruby-core:07423]
+Thu Sep 12 22:37:08 2013 Anton Ovchinnikov <revolver112@gmail.com>
-Thu Mar 2 19:44:18 2006 Tanaka Akira <akr@m17n.org>
+ * 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]
- * gc.c: align VALUE with sizeof(RVALUE) globally.
- (is_pointer_to_heap): check alignment out of loop.
- (id2ref): avoid collision between symbols and objects.
- (rb_obj_id): ditto. moved from object.c.
- [ruby-talk:178364] [ruby-core:7305]
+Thu Sep 12 21:35:46 2013 Naohisa Goto <ngotogenome@gmail.com>
-Thu Mar 2 18:58:18 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * Makefile.in (libruby-static.a): change LDFLAGS order. LDFLAGS may
+ include library path that should be specified before LIBS.
+ [ruby-dev:47707] [Bug #8901]
- * eval.c (rb_thread_fd_writable): should not re-schedule output
- from KILLED thread (must be error printing).
+Thu Sep 12 20:07:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Mar 2 17:57:49 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * vsnprintf.c (MAXEXP, MAXFRACT): calculate depending on constants in
+ float.h.
- * gc.c: commited magic for reducing RVALUE size on windows. (24->20byte)
- [ruby-core:7474]
+ * vsnprintf.c (BSD_vfprintf): limit length for cvt() to get rid of
+ buffer overflow. [ruby-core:57023] [Bug #8864]
-Thu Mar 2 12:59:14 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * vsnprintf.c (exponent): make expbuf size more precise.
- * win32/win32.c (filetime_to_unixtime): should set tm_isdst to -1.
- stat() didn't treat daylight saving time property on WinNT.
- [ruby-talk:182100]
+Wed Sep 11 17:30:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Mar 2 08:02:42 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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]
- * gc.c (add_heap): heap_slots may overflow. a patch from Stefan
- Weil <weil at mail.berlios.de>.
+Wed Sep 11 07:55:17 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Mar 1 00:24:31 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * thread.c (rb_mutex_unlock): Mutex#unlock no longer raise
+ an exception even if uses on trap. [Bug #8891]
- * lib/rdoc/parsers/parse_rb.rb (read_escape): could not handle /\^/.
- merged Mr. Ishizuka's lib/irb/ruby-lex.rb 's patch rev 1.29.
- [ruby-talk:181631] [ruby-dev:28404]
+Tue Sep 10 14:37:01 2013 Shota Fukumori <sorah@tubusu.net>
-Tue Feb 28 09:32:17 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm_backtrace.c (vm_backtrace_to_ary): Ignore the second argument if
+ it is nil. [Bug #8884] [ruby-core:57094]
- * lib/drb/extservm.rb (invoke_service_command): cannot invoke command
- if command name is quoted on mswin32. [ruby-dev:28400]
+ * test/ruby/test_backtrace.rb (test_caller_with_nil_length):
+ Test for above.
-Mon Feb 27 00:19:16 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Sep 10 12:39:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ruby.h (SYM2ID): should not cast to signed long.
- [ruby-core:07414]
+ * class.c (method_entry_i): should exclude refined methods from
+ instance method list. [ruby-core:57080] [Bug #8881]
-Fri Feb 24 20:07:23 2006 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Tue Sep 10 12:05:04 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * test/drb/drbtest.rb (add_service_command): quote pathnames in the
- server's command line for space contained directory names.
- Thanks, arton. [ruby-dev:28386]
+ * io.c (rb_f_printf): [DOC] add missing parenthesis in rdoc.
-Fri Feb 24 12:11:08 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Sep 10 10:08:00 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * instruby.rb: install *.exe.manifest and *.dll.manifest if exist.
- It's for VC++8.
+ * NEWS: Update RubyGems note.
-Fri Feb 24 11:33:52 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Tue Sep 10 09:51:22 2013 Eric Hodel <drbrain@segment7.net>
- * bcc32/Makefile.sub (HAVE_HYPOT): bcc32 has hypot().
+ * lib/rubygems: Update to RubyGems 2.1.0. Fixes CVE-2013-4287.
-Fri Feb 24 11:19:58 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ See http://rubygems.rubyforge.org/rubygems-update/CVE-2013-4287_txt.html
+ for CVE information.
- * time.c (time_new_internal): add prototype to tell the compiler
- arugments types.
+ See http://rubygems.rubyforge.org/rubygems-update/History_txt.html#label-2.1.0+%2F+2013-09-09
+ for release notes.
- * win32/win32.c (NtInitialize): need to set a handler for VC++8.
+ * test/rubygems: Tests for the above.
-Fri Feb 24 08:19:16 2006 NARUSE, Yui <naruse@ruby-lang.org>
+Mon Sep 9 21:31:45 2013 Tanaka Akira <akr@fsij.org>
- * test.rb: Removed. Obsolete by test/nkf.
+ * 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/
- * ext/.document: enabled documents in nkf and kconv
+ * time.c: Ditto.
- * ext/nkf/nkf.c ext/nkf/lib/kconv.rb: Add rdoc.
+ * ext/socket/ancdata.c: Ditto.
-Thu Feb 23 22:39:59 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Mon Sep 9 16:55:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * bcc32/Makefile.sub: use borlndmm.dll if possible. bcc32's RTL internal
- memory manager cannot handle large memory block properly.
- ex: 10000.times { "" << "." * 529671; GC.start } # crash
- [ruby-dev:28230]
+ * 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]
-Thu Feb 23 13:20:28 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Mon Sep 9 09:14:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (SETUP_ARGS0): fixed memory corruption. [ruby-dev:28360]
+ * tool/rbinstall.rb (Gem::Specification#initialize): default date to
+ RUBY_RELEASE_DATE. [ruby-core:57072] [Bug #8878]
-Tue Feb 21 02:18:46 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+ * tool/rbinstall.rb (Gem::Specification#to_ruby): add date.
- * configure.in (mingw): have link. [ruby-list:41838]
+Sun Sep 8 16:01:54 2013 Tanaka Akira <akr@fsij.org>
- * win32/Makefile.sub (config.h): ditto.
+ * rational.c (f_gcd): Relax the condition to use GMP.
-Tue Feb 21 02:07:39 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Sep 8 13:56:38 2013 Masaki Suketa <masaki.suketa@nifty.ne.jp>
- * parse.y (f_arglist): should set command_start = Qtrue for
- command body. [ruby-talk:180648]
+ * ext/win32ole/win32ole.c (folevariant_initialize): check type of
+ element of array.
-Mon Feb 20 17:37:26 2006 Tanaka Akira <akr@m17n.org>
+ * test/win32ole/test_win32ole_variant.rb (test_s_new_ary): ditto.
- * mkconfig.rb: alias RbConfig for Config.
+Sat Sep 7 21:33:10 2013 Tanaka Akira <akr@fsij.org>
-Mon Feb 20 12:27:53 2006 Kent Sibilev <ksruby@gmail.com>
+ * math.c (math_log): Test the sign for bignums.
+ (math_log2): Ditto.
+ (math_log10): Ditto.
- * lib/rational.rb (Integer::gcd): small typo fix.
- [ruby-core:07395]
+Sat Sep 7 20:25:47 2013 Tanaka Akira <akr@fsij.org>
-Mon Feb 20 01:05:27 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * math.c (math_log): Support bignums bigger than 2**1024.
+ (math_log2): Ditto.
+ (math_log10): Ditto.
- * lib/rational.rb (Integer::gcd): replaced by gcd4 in
- [ruby-core:07390]. [ruby-core:07377]
+Sat Sep 7 15:36:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Mon Feb 20 00:57:02 2006 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * vm_eval.c (vm_call0): fix prototype, the id parameter should be of
+ type ID, not VALUE
- * ext/openssl/ossl.h (OSSL_Debug): should not use __func__.
- [ruby-dev:28339]
+ * 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]
-Sun Feb 19 04:46:29 2006 Guy Decoux <ts@moulon.inra.fr>
+ * test/ruby/test_refinement.rb: add test
- * eval.c: initial value for block_unique must be 1.
- [ruby-talk:180420]
+Sat Sep 7 13:49:40 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Sat Feb 18 23:58:26 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * variable.c (classname): the name of class that has
+ non class id should not be nil. This bug was introduced
+ in r36577.
- * lib/tracer.rb (Tracer::Tracer.add_filter): turn on tracer mode
- only when caller() level size is one. [ruby-core:07389]
+ * test/thread/test_cv.rb: test for change.
- * lib/rdoc/parsers/parse_rb.rb: need not to require "tracer".
- [ruby-core:07389]
+Sat Sep 7 13:29:22 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * sample/rtags.rb: ditto.
+ * lib/find.rb (Find.find): respect the encodings of arguments.
+ [ruby-dev:47530] [Feature #8657]
-Sat Feb 18 12:18:26 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/test_find.rb: add tests.
- * lib/fileutils.rb (FileUtils::fu_world_writable): make it
- private. [ruby-core:07383]
+Sat Sep 7 10:40:32 2013 Tanaka Akira <akr@fsij.org>
-Sat Feb 18 00:22:39 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/socket/mkconstants.rb (TCP_FASTOPEN): Defined for TCP fast open.
+ [ruby-core:57048] [Feature #8871] patch by Masaki Matsushita.
- * lib/tracer.rb: merged a minor clarification patch from Daniel
- Berger <Daniel.Berger at qwest.com>. [ruby-core:07376]
+Fri Sep 6 23:53:31 2013 Masaki Matsushita <glass.saga@gmail.com>
-Fri Feb 17 11:18:42 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * common.mk: use RUNRUBY instead of MINIRUBY because MINIRUBY can't
+ require extension libraries. The patch is from nobu
+ (Nobuyoshi Nakada).
- * util.c (ruby_strtod): Float("1e") should fail. [ruby-core:7330]
+ * ext/thread/extconf.rb: for build ext/thread/thread.c.
- * pack.c (EXTEND32): unpack("l") did not work where sizeof(long) != 4.
- [ruby-talk:180024]
+ * include/ruby/intern.h: ditto.
- * pack.c (pack_unpack): fixed integer overflow on template "w".
- [ruby-talk:180126]
+ * thread.c: ditto.
-Fri Feb 17 09:39:29 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/thread.rb: removed and replaced by ext/thread/thread.c.
- * eval.c (rb_thread_wait_for): sleep should always sleep for
- specified amount of time. [ruby-talk:180067]
+ * 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]
-Thu Feb 16 01:10:48 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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]
- * eval.c (backtrace): frame->orig_func may not be initialized.
- [ruby-core:07367]
+Fri Sep 6 22:47:12 2013 Tanaka Akira <akr@fsij.org>
-Wed Feb 15 16:52:52 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in: Define ac_cv_func_clock_getres to yes for mingw*.
- * eval.c (rb_eval): NODE_OP_ASGN1 should allow splat in its
- argument list. [ruby-core:07366]
+Fri Sep 6 21:04:10 2013 Tanaka Akira <akr@fsij.org>
- * parse.y (arg): avoid unnecessary extra argument.
- [ruby-core:07366]
+ * 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.
- * eval.c (rb_eval): honor visibility on OP_ASGN1 and
- OP_ASGN2. [ruby-core:07366]
+ * internal.h (rb_gcd_normal): Declared.
+ (rb_gcd_gmp): Ditto.
-Wed Feb 15 10:09:51 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/-test-/rational: New directory.
- * eval.c (yield_under_i): should not pass self as an argument to
- the block for instance_eval. [ruby-core:07364]
+ * test/-ext-/rational: New directory.
-Wed Feb 15 09:20:35 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Sep 6 14:23:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (rb_obj_instance_eval): should be no singleton classes for
- true, false, and nil. [ruby-dev:28186]
+ * win32/win32.c (clock_getres): required as well as clock_gettime().
+ [ruby-dev:47699] [Bug #8869]
-Tue Feb 14 18:48:33 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Sep 6 11:45:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (DMETHOD_P): accessing wrong frame. [ruby-dev:28181]
+ * transcode.c (rb_econv_append): new function to append a string data
+ with converting its encoding. split from rb_econv_substr_append.
- * eval.c (proc_invoke): preserve FRAME_DMETH flag.
+Fri Sep 6 02:37:22 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Tue Feb 14 15:13:51 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: use double quotes when
+ strings start with special characters.
+ https://github.com/tenderlove/psych/issues/157
- * ext/zlib/zlib.c: supress warning on test/zlib. [ruby-dev:28323]
+ * test/psych/test_string.rb: test for change.
-Tue Feb 14 14:01:17 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Sep 6 00:05:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * time.c (search_time_t): support non 32bit time_t environments.
+ * class.c (rewrite_cref_stack): remove recursion.
- * win32/Makefile.sub (config.h): VC++8 has ``long long'' type.
+Thu Sep 5 18:05:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * win32/Makefile.sub (config.h): VC++8's time_t is 64bit value.
+ * string.c (fstring_cmp): take string encoding into account when
+ comparing fstrings [ruby-core:57037] [Bug #8866]
- * win32/win32.c (rb_w32_utime): drop read-only attribute before
- changing file time.
+ * test/ruby/test_string.rb: add test
- all changes are backported from CVS HEAD.
+Thu Sep 5 17:25:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Feb 14 11:21:38 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * string.c (rb_fstring, rb_str_free): use st_data_t instead of VALUE.
- * io.c (argf_forward): should not use frame->argv.
- [ruby-core:07358]
+ * string.c (rb_fstring): get rid of duplicating already frozen object.
-Mon Feb 13 18:08:12 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Sep 5 14:01:22 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (rb_call0): argument update propagation. [ruby-dev:28044]
+ * lib/optparse.rb: The Integer acceptable now allows binary and
+ hexadecimal numbers per the documentation. [ruby-trunk - Bug #8865]
- * env.h: remove argv member from struct FRAME.
+ DecimalInteger, OctalInteger, DecimalNumeric now validate their input
+ before converting to a number. [ruby-trunk - Bug #8865]
-Mon Feb 13 13:27:00 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/optparse/test_acceptable.rb: Tests for the above, tests for all
+ numeric acceptables for existing behavior.
- * eval.c (eval): should push class from binding if supplied.
- [ruby-core:07347]
+Thu Sep 5 13:49:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Mon Feb 13 00:04:00 2006 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * include/ruby/ruby.h: add RSTRING_FSTR flag
- * lib/erb.rb (ERB::Compiler): add instance variable @insert_cmd to
- change <%='s behavior. (backported 1.15 - 1.16)
+ * internal.h: add rb_fstring() prototype
-Sat Feb 11 02:04:11 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * string.c (rb_fstring): deduplicate frozen string literals
- * eval.c (eval): no need to push ruby_class. [ruby-dev:28176]
+ * string.c (rb_str_free): delete fstrings from frozen_strings table when
+ they are GC'd
-Sat Feb 11 01:57:44 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * string.c (Init_String): initialize frozen_strings table
- * eval.c (rb_f_autoload): check if ruby_cbase is nil (during
- instance_eval for objects cannot have singleton classes,
- e.g. fixnums and symbols). [ruby-dev:28178]
+Thu Sep 5 12:48:00 2013 Kenta Murata <mrkn@cookpad.com>
-Tue Feb 7 23:03:24 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * configure.in (with_gmp): set with_gmp no if it is empty.
- * ext/zlib/zlib.c: should not access ruby objects in finalizer.
- [ruby-dev:28286]
+Thu Sep 5 10:41:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Mon Feb 6 16:02:51 2006 WATANABE Hirofumi <eban@ruby-lang.org>
+ * vm_insnhelper.c (vm_getivar): use class sequence to check class
+ identity, instead of pointer + vm state
- * file.c (rb_thread_flock): ERROR_NOT_LOCKED is not an error on Cygwin.
- In such situation, flock() should return 0.
+ * vm_insnhelper.c (vm_setivar): ditto
-Mon Feb 6 00:41:08 2006 Tanaka Akira <akr@m17n.org>
+Thu Sep 5 08:20:58 2013 Tanaka Akira <akr@fsij.org>
- * ruby.h (RSTRUCT_LEN, RSTRUCT_PTR): defined for source level
- compatibility with ruby 1.9.
+ * 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.
-Sun Feb 5 21:05:34 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * internal.h (rb_big_divrem_gmp): Declared.
- * numeric.c (fix_to_s): removed workaround for radix 2. Historically,
- rb_fix2str could only handle radix 8, 10, 16. (Rev1.37) But for now,
- it can handle radix 2..36. [ruby-Bugs#3438] [ruby-core:7300]
+Thu Sep 5 06:22:42 2013 Tanaka Akira <akr@fsij.org>
-Sun Feb 5 18:55:08 2006 Minero Aoki <aamine@loveruby.net>
+ * bignum.c (bary_divmod_normal): Reduce temporary array allocations.
- * lib/net/http.rb: imported from trunk, rev 1.129
+Thu Sep 5 02:17:06 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/http.rb (add_field, get_fields): keep 1.8.2 backward
- compatibility.
+ * bignum.c (rb_big_divrem_normal): Add GC guards.
- * lib/net/https.rb: imported from trunk, rev 1.3.
+Thu Sep 5 00:38:32 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/https.rb: #use_ssl? definition moved from net/http.rb.
+ * bignum.c (rb_big_divrem_normal): New function.
-Sun Feb 5 14:22:15 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * internal.h (rb_big_divrem_normal): Declared.
- * lib/pstore.rb: should return default value if name is not found.
- [ruby-core:7304]
+ * ext/-test-/bignum/div.c: New file.
- * lib/pstore.rb: should raise PStore::Error if not in transaction.
+ * test/-ext-/bignum/test_div.rb: New file.
-Sat Feb 4 22:51:43 2006 Tanaka Akira <akr@m17n.org>
+Thu Sep 5 00:08:44 2013 Tanaka Akira <akr@fsij.org>
- * eval.c: apply the FreeBSD getcontext/setcontext workaround
- only before FreeBSD 7-CURRENT.
+ * bignum.c (bigdivrem_normal): Removed.
+ (bary_divmod_normal): New function.
+ (bary_divmod): Use bary_divmod_normal.
+ (bigdivrem): Use bary_divmod_normal.
-Sat Feb 4 21:19:23 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Sep 4 23:02:12 2013 Tanaka Akira <akr@fsij.org>
- * win32/win32.c (LK_ERR): ERROR_NOT_LOCKED is not an error.
- In such situation, flock() should return 0.
+ * bignum.c (bigdivrem): Useless declaration removed.
-Sat Feb 4 15:56:37 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Sep 4 22:56:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * numeric.c (fix_to_s): (2**32).to_s(2) fails with exception where
- sizeof(int) == 4 < sizeof(long). [ruby-core:7300]
+ * numeric.c (NUM_STEP_GET_INF): split from NUM_STEP_SCAN_ARGS(), since
+ inf is not used in num_step_size().
-Fri Feb 3 15:06:50 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Sep 4 20:22:43 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/syck.c (syck_move_tokens): should reset p->cursor or etc
- even if skip == 0. This causes buffer overrun.
- (ex: YAML.load('--- "..' + '\x82\xA0' * 511 + '"'))
+ * bignum.c (bigdivrem_normal): Add assertions.
-Thu Feb 2 23:51:18 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Sep 4 19:18:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/syck/emitter.c (syck_emitter_write): should not set '\0' on
- emitter's marker. if marker points to the end of buffer, this causes
- buffer overrun. (ex: YAML.dump("." * 12288))
+ * internal.h (vm_state_version_t): prefer LONG_LONG to uint64_t.
-Thu Feb 2 16:01:24 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Sep 4 16:28:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (eval): need not to protect $SAFE value.
- [ruby-core:07177]
+ * internal.h (vm_state_version_t): use uint64_t when it is larger than
+ LONG_LONG, and fallback to unsigned long.
-Thu Feb 2 14:45:53 2006 Ville Mattila <ville.mattila@stonesoft.com>
+Wed Sep 4 15:37:05 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * configure.in: The isinf is not regognized by autoconf
- library guesser on solaris 10. [ruby-core:7138]
+ * enc/trans/utf8_mac-tbl.rb: fix r42789.
+ Fix conversion table and logic. [ruby-dev:47680]
-Wed Feb 1 22:01:47 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Sep 4 14:08:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * configure.in, hash.c (ruby_setenv): use setenv(3) and unsetenv(3)
- where they are supported. modifing environ variable seems to
- segfault solaris 10. [ruby-core:7276] [ruby-dev:28270]
+ * 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.
- * ruby.c (set_arg0): if use setenv(3), environ space cannot be used
- for altering argv[0].
+ [ruby-core:55053] [Feature #8426] [GH-387]
-Tue Jan 31 14:46:28 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Sep 4 11:13:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * struct.c (rb_struct_select): update RDoc description.
- [ruby-core:7254]
+ * 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]
-Tue Jan 31 11:58:51 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Wed Sep 4 11:11:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/multi-tk.rb: add MultiTkIp#eval and bg_eval.
+ * configure.in (SOLIBS): LIBRUBY_SO also needs linking with gmp, to
+ run worker processes in test-all on non-ELF platforms.
- * ext/tk/lib/tk/namespace.rb: TkNamespace#eval was enbugged at the
- last commit. Now it will return a proper object.
+Tue Sep 3 23:01:41 2013 Kouhei Sutou <kou@cozmixng.org>
-Tue Jan 31 00:10:26 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * test/rexml/parser/test_tree.rb
+ (TestTreeParser::TestInvalid#test_unmatched_close_tag):
+ Compute expected value from test value.
- * ext/syck/rubyext.c (syck_resolver_transfer): workaround for SEGV.
- ex: ruby -ryaml -e 'YAML.load("!map:B {}")' [ruby-core:7217]
+Tue Sep 3 22:59:58 2013 Kouhei Sutou <kou@cozmixng.org>
-Sat Jan 28 07:56:57 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.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/rdoc/usage.rb: support "a:0:33" style caller[-1]. In this case
- file name is "a:0". I don't know this really happens though...
- [ruby-Bugs:3344]
+Tue Sep 3 22:57:57 2013 Kouhei Sutou <kou@cozmixng.org>
-Wed Jan 25 22:29:04 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rexml/parser/test_tree.rb: Fix test name to describe test
+ content.
- * configure.in, dln.c, file.c, intern.h, missing.h (eaccess): use
- system routine if provided. fixed: [ruby-core:07195]
+Tue Sep 3 22:54:46 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Jan 22 23:27:13 2006 Go Noguchi <gonoguti@yahoo.co.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.
- * lib/test/unit/autorunner.rb (process_args): ignore arguments after
- '--' so that test scripts can handle them. fixed: [ruby-dev:28258]
+Tue Sep 3 22:03:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Jan 22 22:09:52 2006 Tanaka Akira <akr@m17n.org>
+ * string.c (rb_enc_str_new_cstr): new function to create a string from
+ the C-string pointer with the specified encoding.
- * eval.c (POST_GETCONTEXT): define separately from PRE_GETCONTEXT on
- IA64 to avoid reusing variable address.
+Tue Sep 3 21:41:37 2013 Akira Matsuda <ronnie@dio.jp>
-Sun Jan 22 20:03:35 2006 Tanaka Akira <akr@m17n.org>
+ * eval.c (Init_eval): Make Module#include and Module#prepend public
+ [Feature #8846]
- * eval.c (ruby_setjmp): define PRE_GETCONTEXT and POST_GETCONTEXT
- instead of FUNCTION_CALL_MAY_RETURN_TWICE.
- define PRE_GETCONTEXT to clear carry flag for workaround of
- FreeBSD/i386 getcontext/setcontext bug.
- [ruby-dev:28263]
+ * test/ruby/test_module.rb (class TestModule): Test for above
-Sat Jan 21 00:36:47 2006 Tanaka Akira <akr@m17n.org>
+Tue Sep 3 21:35:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): use only on SPARC and IA64
- before gcc 4.0.3.
- [ruby-dev:28247]
+ * thread_pthread.c (sys/dyntune.h): for gettune().
-Thu Jan 19 22:21:23 2006 Minero Aoki <aamine@loveruby.net>
+ * thread_pthread.c (hpux_attr_getstackaddr): fix missing *.
+ [ruby-core:56983] [Feature #8793]
- * lib/fileutils.rb (mv): should remove file after copying.
- [ruby-dev:28223]
+Tue Sep 3 20:12:46 2013 Tanaka Akira <akr@fsij.org>
-Wed Jan 18 23:37:06 2006 Tanaka Akira <akr@m17n.org>
+ * 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.
- * eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): don't clobber %l7 of SPARC
- if enable-shared.
- (ruby_setjmp): call FUNCTION_CALL_MAY_RETURN_TWICE after getcontext
- too.
- reported by Pav Lucistnik and Marius Strobl.
- http://lists.freebsd.org/pipermail/freebsd-sparc64/2006-January/003739.html
+ * internal.h (rb_str2big_gmp): Declared.
-Tue Jan 17 11:32:46 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Sep 3 19:44:40 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * win32/setup.mak (MAKE): workaround for nmake 8.
+ * ext/win32/lib/win32/registry.rb (Win32::Registry#values): added.
+ [Feature #7763] [ruby-core:51783]
-Tue Jan 17 11:10:21 2006 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Sep 3 18:26:00 2013 Akinori MUSHA <knu@iDaemons.org>
- * win32/{Makefile.sub,setup.mak}: invoke .bat via shell. workaround
- for nmake 8.
+ * misc/inf-ruby.el (inf-ruby-keys, run-ruby): Add magic autoload
+ comments.
-Mon Jan 16 10:26:23 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * misc/rdoc-mode.el (rdoc-mode): Ditto.
- * ext/syck/emitter.c (syck_emit_seq, syck_emit_map, syck_emit_item):
- should output complex key mark even if map's key is empty seq/map.
- [ruby-core:7129]
+ * misc/ruby-electric.el (ruby-electric-mode): Ditto.
-Sat Jan 14 05:37:06 2006 Tanaka Akira <akr@m17n.org>
+ * misc/ruby-style.el (ruby-style-c-mode): Ditto.
- * io.c (READ_DATA_PENDING, READ_DATA_PENDING_COUNT): defined
- for DragonFly BSD 1.4.0.
+Tue Sep 3 17:06:15 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Sat Jan 14 03:43:24 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * test/ruby/test_rubyoptions.rb
+ (TestRubyOptions::SEGVTest::ExpectedStderr): the URL was changed at
+ r42800.
- * file.c (rb_file_s_chmod): avoid warning where sizeof(int) !=
- sizeof(void*).
+Tue Sep 3 14:48:25 2013 Zachary Scott <e@zzak.io>
-Fri Jan 13 19:14:56 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * lib/thread.rb: [DOC] CV#wait typo by @avdi [Fixes GH-386]
+ https://github.com/ruby/ruby/pull/386
- * lib/rdoc/diagram.rb:
- - properly quote bare element attributes
- - terminates dangling elements (e.g. <img>, <br>, <link>, etc)
- - converts "CVS" to the more HTML-friendly acronym element
- - adds missing type attributes to style elements
+Tue Sep 3 14:37:53 2013 Zachary Scott <e@zzak.io>
- based on Paul Duncan's patch <pabs@pablotron.org> [ruby-core:7028]
+ * error.c: [DOC] Update bug tracker url by @ScotterC [Fixes GH-390]
+ https://github.com/ruby/ruby/pull/390
- * lib/rdoc/generators/html_generator.rb: ditto.
- * lib/rdoc/generators/template/html/hefss.rb: ditto.
- * lib/rdoc/generators/template/html/html.rb: ditto.
- * lib/rdoc/generators/template/html/kilmer.rb: ditto.
+Tue Sep 3 12:45:23 2013 Tanaka Akira <akr@fsij.org>
-Thu Jan 12 11:53:08 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * bignum.c (rb_str2big_poweroftwo): New function.
+ (rb_str2big_normal): Ditto.
+ (rb_str2big_karatsuba): Ditto.
- * ext/tk/sample/tkballoonhelp.rb: [bug fix] couldn't add to a widget
- which is constructed with TkComposite module.
- [new feature] support 'command' option which is called just before
- popping up the balloon help.
+ * internal.h (rb_str2big_poweroftwo): Declared.
+ (rb_str2big_normal): Ditto.
+ (rb_str2big_karatsuba): Ditto.
-Wed Jan 11 15:00:00 2006 Ville Mattila <mulperi@iki.fi>
+ * ext/-test-/bignum/str2big.c: New file.
- * io.c (READ_PENDING*): Support solaris 64-bit environments.
- Solaris defines a opaque FILE struct when compiling 64 bit
- binaries. This means that we dont have access to _ptr etc.
- members anymore. The solution by Steven Lumos is to define
- FILE64 that has needed members available. I've modified
- the origanal patch a bit so that it compiles both with gcc
- and now free sun studio 11 compiler and both amd64 and sparc.
- NOTE! We have to 64 bit solaris FILE structure time to time
- otherwise we'll get breakage.
- [ruby-core:7106]
+ * test/-ext-/bignum/test_str2big.rb: New file.
-Tue Jan 10 19:42:33 2006 Tanaka Akira <akr@m17n.org>
+ * ext/-test-/bignum/depend: Add the dependency for str2big.c.
- * gc.c (garbage_collect): mark ruby_current_node.
- if an exception is raised in a finalizer called written in C by
- rb_gc_call_finalizer_at_exit, ruby_set_current_source may use
- collected ruby_current_node and mark_source_filename may corrupt
- memory.
+Tue Sep 3 12:09:08 2013 Tanaka Akira <akr@fsij.org>
-Tue Jan 10 13:30:34 2006 akira yamada <akira@ruby-lang.org>
+ * process.c (rb_clock_gettime): Support times() based monotonic clock.
+ (rb_clock_getres): Ditto.
- * ext/syck/rubyext.c (syck_resolver_transfer): should be able to load
- !ruby/object:Bignum syntax 1.8.3 dumped. [ruby-core:6159]
+Tue Sep 3 12:03:02 2013 Tanaka Akira <akr@fsij.org>
-Tue Jan 10 12:47:41 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * bignum.c (str2big_scan_digits): Extracted from rb_cstr_to_inum.
- * lib/yaml/rubytypes.rb (Fixnum): Bignum could not be loaded in
- ruby 1.8.3/1.8.4. [ruby-core:6115]
+Tue Sep 3 11:23:57 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/yaml/rubytypes.rb (Numeric): Subclass of Numeric could not
- be dumped properly. [ruby-core:7047]
+ * 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.
-Tue Jan 10 12:00:48 2006 Aaron Schrab <aaron @nospam@ schrab.com>
+Tue Sep 3 11:00:28 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/yaml/rubytypes.rb (Symbol#yaml_new): YAML loading of quoted
- Symbols broken. [ruby-Bugs:2535]
+ * win32/win32.c (do_select): constify timeout.
-Mon Jan 9 19:54:35 2006 arton <artonx@yahoo.co.jp>
+ * win32/win32.c (rb_w32_select_with_thread): constify 10ms wait and
+ 0ms wait structs.
- * ext/zlib/extconf.rb: zlib compiled DLL version 1.2.3 distributed by
- http://www.zlib.net/ has zdll.lib. [ruby-dev:28209]
+Tue Sep 3 10:03:42 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Jan 9 14:17:12 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * 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".
- * win32/Makefile.sub (OPTFLAGS): I have experienced trouble on y- flag,
- (VisualC++6) so use -O2b2xg- if $(MSC_VER) < 1400. [ruby-core:7040]
+Tue Sep 3 08:20:46 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Mon Jan 9 14:17:12 2006 Kero van Gelder <rubyforge @nospam@ kero.tmfweb.nl>
+ * 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]
- * lib/webrick/httpservlet/filehandler.rb: fixed typo. [ruby-core:7075]
+Tue Sep 3 07:49:25 2013 Akinori MUSHA <knu@iDaemons.org>
-Sat Jan 7 15:40:07 2006 Nobuyoshi Nakada <nobu@ruby-lang.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.
- * parse.y (singleton): get rid of segfault on syntax error.
- fixed: [ruby-core:07070]
+ * test/ruby/test_float.rb (TestFloat#test_num2dbl): Revert.
-Fri Jan 6 10:16:20 2006 Steven Lumos <steven@lumos.us>
+ * test/ruby/test_numeric.rb (TestNumeric#test_step): Fix test
+ cases for the above change.
- * io.c (READ_DATA_PENDING): defined for 64bit Solaris on SPARC.
- [ruby-core:7057]
- (READ_DATA_PENDING_COUNT): ditto.
- (READ_DATA_PENDING_PTR): ditto.
+Tue Sep 3 07:39:58 2013 Tanaka Akira <akr@fsij.org>
-Sun Jan 1 17:07:59 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * bignum.c (bytes_2comp): Define it only for little endian
+ environment.
- * win32/win32.c (rb_w32_seekdir): should not segfault even if passed
- the location which rb_w32_telldir didn't return. [ruby-core:7035]
- (I think HEAD implementation is better. but binary compatibility)
+Tue Sep 3 07:31:29 2013 Akinori MUSHA <knu@iDaemons.org>
- * test/ruby/test_dir.rb: added.
+ * numeric.c (NUM_STEP_SCAN_ARGS): Numeric#step should raise
+ TypeError if a non-numeric parameter is given.
-Sat Dec 31 22:57:00 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_float.rb (TestFloat#test_num2dbl): Allow nil as
+ step, as with the keyword argument.
- * eval.c (rb_thread_save_context): should not recycle scope object used
- in a thread. fixed: [ruby-dev:28177]
+ * test/ruby/test_numeric.rb (TestNumeric#test_step): Add tests for
+ nil as step or limit.
-Fri Dec 30 18:22:42 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Sep 3 07:28:49 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (garbage_collect): mark objects refered from aborting threads.
- [ruby-dev:28190]
+ * 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.
- * win32/Makefile.sub: VC++8 support.
+Tue Sep 3 03:17:26 2013 Koichi Sasada <ko1@atdot.net>
-Fri Dec 30 14:24:53 2005 WATANABE Hirofumi <eban@ruby-lang.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.
- * dir.c (glob_helper): do not use TRUE for djgpp.
+ * test/ruby/test_super.rb: add a test for above.
-Fri Dec 30 04:54:40 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Sep 2 23:46:29 2013 Akinori MUSHA <knu@iDaemons.org>
- * file.c (eaccess): workaround for VC++8 runtime.
+ * 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]
- * win32/win32.c (ioinfo): VC++8 support.
+ * numeric.c (num_step): Optimize for infinite loop.
-Thu Dec 29 23:59:37 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Sep 2 22:55:59 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_gc_mark_threads): leave unmarked threads which won't wake
- up alone, and mark threads in the loading table. [ruby-dev:28154]
+ * bignum.c (ISDIGIT): Unused macro removed.
- * eval.c (rb_gc_abort_threads), gc.c (gc_sweep): kill unmarked
- threads. [ruby-dev:28172]
+Mon Sep 2 22:49:15 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 29 17:02:07 2005 Tanaka Akira <akr@m17n.org>
+ * bignum.c (str2big_poweroftwo): Extracted from rb_cstr_to_inum.
+ (str2big_normal): Ditto.
+ (str2big_karatsuba): Ditto.
- * test/ruby/envutil.rb (EnvUtil.rubybin): search "ruby" instead of
- "miniruby". [ruby-dev:28140]
+Mon Sep 2 14:39:29 2013 Akinori MUSHA <knu@iDaemons.org>
-Tue Dec 27 16:59:52 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ruby.c (Process#setproctitle): [DOC] Fix and improve rdoc.
- * test/drb/drbtest.rb (DRbService::self.ext_service): increase
- timeout limit. a patch from Kazuhiro NISHIYAMA
- <zn at mbf.nifty.com>. [ruby-dev:28132]
+ * ruby.c (Process#argv0): [DOC] Improve rdoc.
-Tue Dec 27 08:29:18 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Mon Sep 2 14:15:00 2013 Kenta Murata <mrkn@cookpad.com>
- * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLSocket#post_connection_chech):
- treat wildcard character in commonName. [ruby-dev:28121]
+ * NEWS: fix description of number literal suffixes.
-Mon Dec 26 22:32:47 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Sep 2 14:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * eval.c (rb_eval), gc.c (gc_mark_children), node.h (NEW_ALIAS,
- NEW_VALIAS), parse.y (fitem): allow dynamic symbols to
- NODE_UNDEF and NODE_ALIAS.
- backported from trunk. fixed: [ruby-dev:28105]
+ * test/rake/test_rake_rules.rb: add space after string literal to
+ prevent conflict with string options syntax "foo"opts
-Mon Dec 26 08:50:36 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/rss/rss-assertions.rb: ditto
- * eval.c (ev_const_get): fixed a bug in constant reference during
- instance_eval. [yarv-dev:707]
+Mon Sep 2 12:28:38 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (ev_const_defined): ditto.
+ * test/ruby/test_bignum.rb (test_interrupt_during_to_s): Disable it
+ when GMP is used.
- * lib/yaml.rb (YAML::add_domain_type): typo fixed. a patch from
- Joel VanderWerf <vjoel at path.berkeley.edu>.
- [ruby-talk:165285] [ruby-core:6995]
+Mon Sep 2 07:02:10 2013 Tanaka Akira <akr@fsij.org>
-Sat Dec 24 18:58:14 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (Init_Bignum): Define Bignum::GMP_VERSION when GMP is used.
- * stable version 1.8.4 released.
+Mon Sep 2 01:46:14 2013 Tanaka Akira <akr@fsij.org>
-Fri Dec 23 10:30:23 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (big2str_generic): Reduce arguments.
+ (big2str_gmp): Ditto.
+ (rb_big2str1): Follow the above change.
- * ext/digest/sha2/sha2.c (ULL): support AIX C. a patch from
- Kailden <kailden at gmail.com>. [ruby-core:06984]
+Mon Sep 2 00:08:08 2013 Tanaka Akira <akr@fsij.org>
-Wed Dec 21 16:53:06 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * 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.
- * file.c (w32_io_info): should return handle because FileIndex is
- valid only while file is open. [ruby-dev:28088]
+Sun Sep 1 23:30:47 2013 Tanaka Akira <akr@fsij.org>
-Wed Dec 21 14:53:26 2005 Tanaka Akira <akr@m17n.org>
+ * bignum.c (GMP_BIG2STR_DIGITS): New constant.
+ (big2str_gmp): New function.
+ (rb_big2str1): Use big2str_gmp for big bignums.
- * lib/pathname.rb (test_kernel_open): use File.identical?.
- [ruby-talk:171804]
+ * internal.h (rb_big2str_gmp): Declared.
-Tue Dec 20 22:41:17 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/-test-/bignum/big2str.c (big2str_gmp): New method.
- * eval.c (eval_under_i): evaluate source in caller's frame.
- [ruby-dev:28076]
+Sun Sep 1 22:37:51 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_call_super): use original method name on exception.
- [ruby-dev:28078]
+ * bignum.c (bary_mul_gmp): Use mpz_init and mpz_clear instead of
+ mpz_inits and mpz_clears.
+ Older GMP don't have them.
-Tue Dec 20 13:11:59 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Sun Sep 1 21:17:54 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/rubyext.c: fixed GC problem (backported HEAD 1.55 - 1.62)
- [ruby-dev:27839]
+ * test/net/http/test_http.rb (test_bind_to_local_port): Choose an open
+ port more reliably.
- * ext/syck/syck.h (S_FREE): small hack. no need to check if pointer is
- NULL or not before S_FREE.
+Sun Sep 1 20:32:40 2013 Tanaka Akira <akr@fsij.org>
- * st.c: uses malloc instead of xmalloc to avoid GC. syck uses st_insert
- in gram.c to insert node from rb_syck_bad_anchor_handler into
- SyckParser's hash table. if GC occurs in st_insert, it's not under
- SyckParser's mark system yet. so RString can be released wrongly.
- [ruby-dev:28057]
+ * 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.
-Tue Dec 20 12:53:23 2005 why the lucky stiff <why@ruby-lang.org>
+ * internal.h (rb_big2str_poweroftwo): Declared.
+ (rb_big2str_generic): Ditto.
- * ext/syck/rubyext.c (syck_emitter_reset): to ensure compatibility
- with previous Ruby versions, documents are no longer headless.
+ * ext/-test-/bignum/big2str.c: New file.
-Tue Dec 20 01:46:48 2005 Tanaka Akira <akr@m17n.org>
+ * test/-ext-/bignum/test_big2str.rb: New file.
- * io.c (rb_f_backquote): fix a GC problem on
- IA64 with gcc 4.0.3 20051216 (prerelease) -O3.
+Sun Sep 1 15:21:21 2013 Tanaka Akira <akr@fsij.org>
-Mon Dec 19 23:32:39 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (big2str_2bdigits): Renamed from big2str_orig.
- * parse.y (rb_symname_p): fixed wrong validation. [ruby-dev:28047]
+Sun Sep 1 13:02:24 2013 Tanaka Akira <akr@fsij.org>
-Sat Dec 17 03:57:01 2005 Tanaka Akira <akr@m17n.org>
+ * bignum.c: Remove BITSPERDIG >= INT_MAX test. The static assertion,
+ SIZEOF_BDIGITS <= sizeof(BDIGIT) is enough.
- * bignum.c (rb_big_rshift): fix a GC problem on
- IA64 with gcc 4.0.3 20051216 (prerelease).
+Sun Sep 1 11:38:26 2013 Tanaka Akira <akr@fsij.org>
-Sat Dec 17 03:30:23 2005 Tanaka Akira <akr@m17n.org>
+ * bignum.c (maxpow_in_bdigit): Removed.
- * eval.c (bmcall): fix a GC problem by tail call on
- IA64 with gcc 4.0.3 20051216 (prerelease).
+Sun Sep 1 10:30:42 2013 Tanaka Akira <akr@fsij.org>
-Fri Dec 16 00:54:06 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * numeric.c (rb_fix_bit_length): Moved from bignum.c.
- * signal.c (Init_signal): revert C++ style comment.
- [ruby-dev:28041]
+Sun Sep 1 09:55:45 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 15 12:35:14 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * internal.h (bit_length): Moved from bignum.c.
+ (nlz_int): Ditto.
+ (nlz_long): Ditto.
+ (nlz_long_long): Ditto.
+ (nlz_int128): Ditto.
- * lib/tmpdir.rb: merged RDoc patch from Eric Hodel <drbrain at
- segment7.net>. [ruby-core:06894]
+Sun Sep 1 03:32:22 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 15 01:33:31 2005 Tanaka Akira <akr@m17n.org>
+ * bignum.c (bit_length): Renamed from bitsize.
- * ext/zlib/zlib.c (zstream_run): fix a GC problem by tail call on
- x86_64 with gcc 4.0.3 20051111 (prerelease) (Debian 4.0.2-4)
+Sun Sep 1 00:07:09 2013 Tanaka Akira <akr@fsij.org>
-Wed Dec 14 12:11:46 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+ * bignum.c (rb_big_bit_length): New method.
+ (rb_fix_bit_length): Ditto.
+ [ruby-core:56247] [Feature #8700]
- * test/gdbm/test_gdbm.rb: specify pid for the argument of
- Process.wait. workaround for Cygwin.
+Sat Aug 31 22:18:29 2013 Tanaka Akira <akr@fsij.org>
-Wed Dec 14 12:01:26 2005 Tanaka Akira <akr@m17n.org>
+ * process.c (rb_clock_getres): New method.
+ (timetick2dblnum_reciprocal): New function.
- * marshal.c (r_object0): fix a GC problem for reading a bignum on
- IA64 with gcc 3.3.5 (Debian 1:3.3.5-13).
+ * configure.in: Check clock_getres.
-Tue Dec 13 12:23:47 2005 Tanaka Akira <akr@m17n.org>
+ [ruby-core:56780] [Feature #8809] accepted as a CRuby feature at
+ DevelopersMeeting20130831Japan
+ https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20130831Japan
- * re.c (rb_reg_regcomp): fix a GC problem on x86_64 with
- gcc 3.3.5 (Debian 1:3.3.5-13).
+Sat Aug 31 21:02:07 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 13 01:44:16 2005 Tanaka Akira <akr@m17n.org>
+ * 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.
- * array.c (rb_ary_diff): fix a GC problem on IA64 with
- gcc 3.3.5 (Debian 1:3.3.5-13).
- When rb_ary_push is called, there was no register which contains
- `hash' but `&RHASH(hash)->tbl' instead.
+ * configure.in: Detect GMP.
-Tue Dec 13 00:08:09 2005 Tanaka Akira <akr@m17n.org>
+ [ruby-core:56658] [Feature #8796]
- * sprintf.c (rb_str_format): fix a GC problem.
- [ruby-dev:28001]
+Sat Aug 31 15:03:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Mon Dec 12 15:54:56 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * compile.c (NODE_MATCH3): pass CALL_INFO to opt_regexpmatch2
- * test/openssl/test_ssl.rb (test_parallel): call GC.start to close
- unused files. [ruby-dev:27981]
+ * insns.def (opt_regexpmatch2): use CALL_SIMPLE_METHOD to call =~ if
+ the receiver is not a T_STRING [Bug #8847] [ruby-core:56916]
-Mon Dec 12 00:33:56 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Aug 31 14:07:11 2013 Tanaka Akira <akr@fsij.org>
- * ext/digest/digest.c (rb_digest_base_s_digest): add volatile to
- protect temporary context object. [ruby-dev:27979]
+ * lib/securerandom.rb (random_bytes): Use Process.clock_gettime.
- * ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should
- be called before actual variable initialization.
- [ruby-dev:27986]
+Sat Aug 31 00:25:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Dec 9 23:31:02 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/encoding.h (rb_{ascii8bit,utf8,usascii}_encindex): get
+ rid of conflict with macros defined in internal.h.
- * lib/rexml/encoding.rb (encoding=): give priority to particular
- conversion to iconv. [ruby-core:06520]
+Fri Aug 30 22:37:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Dec 8 02:07:19 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread_pthread.c (native_thread_init_stack): wait the creator thread
+ to fill machine stack info, if get_stack_of() is available.
- * eval.c (umethod_bind): adjust invoking class for module method.
- [ruby-dev:27964]
+ * thread_pthread.c (native_thread_create): fill the created thread
+ stack info after starting, if get_stack_of() is available.
-Thu Dec 8 00:40:52 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * thread_pthread.c (native_thread_create): define attr only if it is
+ used, and merge pthread_create() calls.
- * eval.c (call_trace_func): klass parameter should be a
- class/module that defines calling method. [ruby-talk:169307]
+ * thread_pthread.c (get_main_stack): separate function to get stack of
+ main thread.
-Wed Dec 7 17:10:27 2005 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Thu Aug 29 18:05:33 2013 Koichi Sasada <ko1@atdot.net>
- * sprintf.c (rb_f_sprintf): [ruby-dev:27967]
+ * struct.c (rb_struct_define_without_accessor_under): added.
+ This function is similar to rb_define_class_under() against
+ rb_define_class().
-Wed Dec 7 15:31:35 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * include/ruby/intern.h: add a declaration of this function.
- * sprintf.c (rb_str_format): integer overflow check added.
+Thu Aug 29 17:03:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * sprintf.c (GETASTER): ditto.
+ * 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]
-Wed Dec 7 01:02:04 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Aug 29 05:35:58 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tk/README.macosx-aqua: [new document] tips to avoid the known
- bug on platform specific dialogs of Tcl/Tk Aqua on MacOS X.
+ * 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.
- * ext/tk/tcltklib.c: fix bug on switching threads and waiting on the
- deleted interpreter on vwait and tkwait command.
+Thu Aug 29 02:40:45 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/tk/lib/multi-tk.rb: kill the meaningless loop for the deleted Tk
- interpreter.
+ * ext/psych/lib/psych/scalar_scanner.rb: invalid floats should be
+ treated as strings.
+ https://github.com/tenderlove/psych/issues/156
- * ext/tk/sample/demos-jp/image3.rb: [bug fix] wrong argument.
+ * test/psych/test_string.rb: test for change
- * ext/tk/sample/demos-en/image3.rb: ditto.
+Wed Aug 28 17:20:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/sample/demos-jp/menu.rb: fix message for MacOS X.
+ * 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]
- * ext/tk/sample/demos-jp/menu8x.rb: ditto.
+Wed Aug 28 11:24:20 2013 Michal Rokos <michal@rokos.cz>
- * ext/tk/sample/demos-en/menu.rb: ditto.
+ * configure.in (sys/pstat.h): fix missing header check for
+ missing/setproctitle.c on HP-UX. [ruby-core:56644] [Bug #8792]
-Tue Dec 6 16:37:57 2005 Yuya Nishida <yuya@j96.org>
+Wed Aug 28 04:54:33 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (exec_under): avoid accessing ruby_frame->prev.
- [ruby-dev:27948]
+ * ext/openssl/ossl_ssl.c (ossl_ssl_read): Replace duplicate
+ wait_writable with wait_readable.
-Thu Dec 1 00:50:33 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Aug 27 17:18:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (rb_funcall2): allow to call protected methods.
- fixed: [ruby-dev:27890]
+ * lib/timeout.rb (Timeout#timeout): skip rescue clause only when no
+ exception class is given.
-Wed Nov 30 23:52:17 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Aug 27 17:02:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (NEWHEAP, ADD2HEAP): set count after pointer was set.
- fixed: [ruby-dev:27896]
+ * 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]
-Wed Nov 30 13:43:07 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Aug 27 17:02:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * misc/ruby-mode.el (ruby-expr-beg): support $! at the end of
- expression. [ruby-dev:27868]
+ * io.c (copy_stream_body): move common open flags.
-Mon Nov 28 18:55:43 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Aug 27 16:56:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/socket/socket.c (init_inetsock_internal): remove setting
- SO_REUSEADDR option on server socket on Cygwin.
- fixed: [ruby-core:6765] ([ ruby-Bugs-2872 ])
+ * enumerator.c (enumerator_size): use rb_check_funcall() instead of
+ respond_to? and call.
-Mon Nov 28 13:08:54 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * enumerator.c (enumerator_each): ensure that argument array size
+ does not overflow at appending.
- * win32/win32.c (rb_w32_strerror): remove all CR and LF. (avoid broken
- error message on bccwin32 + winsock)
+Tue Aug 27 16:46:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Nov 28 09:21:49 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * array.c (rb_ary_index, rb_ary_rindex): use optimized equality to
+ improve performance. [Feature #8820]
- * lib/mkmf.rb (create_makefile): should not change sodir with
- dir.gsub!. (bccwin32 failed to install third party exntesions)
- [ruby-dev:27834]
+ * vm_insnhelper.c (rb_equal_opt): optimized equality function.
-Sun Nov 27 00:56:13 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Tue Aug 27 16:11:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/wsdl/xmlSchema/complexContent.rb: missing
- ComplexContent#elementformdefault method.
+ * vm_insnhelper.c (opt_eq_func): use RBASIC_CLASS() instead of HEAP_CLASS_OF().
-Sat Nov 26 19:57:45 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+ * 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.
- * dln.c (conv_to_posix_path): should initialize posix.
+Tue Aug 27 16:08:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 24 21:05:58 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * vm_eval.c (rb_check_funcall, rb_check_funcall_with_hook): constify
+ argv.
- * configure.in (AC_CHECK_FUNCS): need to check link().
- fixed: [ruby-dev:27814]
+Tue Aug 27 13:03:33 2013 Koichi Sasada <ko1@atdot.net>
-Thu Nov 24 01:22:25 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * ext/stringio/stringio.c (strio_read_nonblock): declare local
+ variables at the first of function.
- * file.c (w32_io_info): CreateFile failed on Win9x if file was already
- opened. (FILE_SHARE_READ was needed, but actually I don't understand
- the flags of CreateFile well...)
+Tue Aug 27 11:51:37 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
-Wed Nov 23 20:59:01 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * enumerator.c: Allow Enumerator size argument to be any callable.
+ Patch by Avdi Grimm. [bug #8641] [ruby-core:56032] [fix GH-362]
- * ext/tk/lib/tk.rb: add Tk.pkgconfig_list and Tk.pkgconfig_get
- [Tk8.5 feature].
+ * test/ruby/test_enumerator.rb: Test for above
- * ext/tk/lib/tk/text.rb: supports new indices modifires on a Text
- widget [Tk8.5 feature].
+Tue Aug 27 11:46:31 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/virtevent.rb: add TkNamedVirtualEvent.
+ * gc.c (gc_profile_clear): do rest_sweep() before clearing
+ profile.current_record.
- * ext/tk/lib/tk/autoload.rb: ditto.
+Tue Aug 27 07:35:05 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/tk/lib/tk/event.rb: add :data key for virtual events [Tk8.5
- feature].
+ * 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
-Wed Nov 23 18:55:31 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Tue Aug 27 05:24:34 2013 Eric Hodel <drbrain@segment7.net>
- * file.c (w32_io_info): should not call GetFileInformationByHandle
- for pipe.
+ * lib/rubygems: Import RubyGems 2.1.0 Release Candidate
+ * test/rubygems: ditto.
- * file.c (w32_io_info): checks return value from rb_w32_get_osfhandle.
+Mon Aug 26 16:24:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (w32_io_info): now can identify directory on WinNT.
+ * parse.y (parser_nextc): warn carriage return in middle of line.
+ [ruby-core:56240] [Feature #8699]
-Wed Nov 23 03:40:49 2005 Guy Decoux <ts@moulon.inra.fr>
+Mon Aug 26 15:27:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * re.c (KR_REHASH): should cast to unsigned for 64bit CPU.
- [ruby-core:06721]
+ * lib/timeout.rb (Timeout#timeout): should not be caught by rescue
+ clause. [Bug #8730]
-Wed Nov 23 11:01:33 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Mon Aug 26 14:44:26 2013 Koichi Sasada <ko1@atdot.net>
- * intern.h, file.c: failed to compile on windows.
+ * array.c (rb_ary_splice): use RARRAY_PTR_USE() without WB because
+ there are not new relations.
-Wed Nov 23 07:26:44 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * enum.c (enum_sort_by): ditto.
- * ext/openssl/extconf.rb: check for X509V3_EXT_nconf_nid.
+ * struct.c (setup_struct): use RARRAY_RAWPTR().
- * ext/openssl/ossl_x509ext.c (MakeX509ExtFactory): should use
- OPENSSL_malloc to allocate X509V3_CTX.
+ * vm_eval.c (yield_under): ditto.
- * ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): use
- X509V3_EXT_nconf_nid to avoid SEGV (and to build extensions which
- values are placed in separate section).
+ * ext/pathname/pathname.c (path_entries): use RARRAY_AREF().
- * test/openssl/test_x509ext.rb: new file.
+ * ext/pathname/pathname.c (path_s_glob): ditto.
-Wed Nov 23 01:22:57 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 26 13:11:10 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * file.c (test_identical): test if two files are identical.
+ * array.c (ary_ensure_room_for_push): fix typo in r42658.
- * file.c (rb_f_test): support DOSISH systems where st_ino is not
- reliable. fixed: [ruby-core:06672]
+Mon Aug 26 12:37:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * win32.h, win32.c (rb_w32_osid): check the running platform.
+ * template/sizes.c.tmpl: generate automatically by extracting
+ RUBY_CHECK_SIZEOF from configure.in.
-Tue Nov 22 23:52:06 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 26 10:16:59 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * lib/optparse.rb: match incomplete (in current enconding) multibyte
- string. http://inamode6.tokuhirom.dnsalias.org/show/1551
+ * process.c (gcd_timetick_int): Renamed from gcd_timtick_int.
-Tue Nov 22 18:36:11 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Sun Aug 25 21:02:15 2013 Tanaka Akira <akr@fsij.org>
- * win32/win32.c (winnt_stat): set mapped errno instead of ENOENT.
+ * sizes.c (Init_sizes): Define the size of clock_t.
-Tue Nov 22 14:46:57 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Sun Aug 25 01:47:47 2013 Tanaka Akira <akr@fsij.org>
- * file.c (rb_file_s_basename): skip slashes just after UNC top slashes.
+ * bignum.c (BARY_SHORT_MUL): Renamed from BARY_MUL1.
+ (bary_short_mul): Renamed from bary_mul1.
- * test/ruby/test_path.rb (test_dirname, test_basename): follow new
- spec. and add new tests.
+Sat Aug 24 10:35:09 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 22 13:18:32 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * process.c (rb_clock_gettime): The emulated clock names changed.
- * win32/win32.c (rb_w32_stat): Dir.chdir('//server/shared');
- p Dir.glob('*') should work on WinNT. (implemented our own
- stat(2) on WinNT) [ruby-list:41552] [ruby-dev:27711]
+Fri Aug 23 22:22:07 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 22 02:31:53 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * process.c (rb_clock_gettime): Add a cast to fix compile error by
+ -Werror,-Wshorten-64-to-32.
- * ext/tk/lib/tkextlib/tile.rb: bug fix (Tk::Tile::USE_TTK_NAMESPACE
- is not defined).
+Fri Aug 23 22:12:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Nov 22 01:45:21 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (rb_intern): no symbol cache while initialization.
- * file.c (rb_file_s_basename): DOSISH_UNC is defined on cygwin but
- DOSISH is not. fixed: [ruby-dev:27797]
+Fri Aug 23 22:07:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Nov 21 22:50:48 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (clock_t): needs time.h.
- * file.c (rb_path_skip_prefix, rb_file_s_basename): UNC without path
- should not be splitted. fixed: [ruby-dev:27776] [ruby-dev:27786]
+Fri Aug 23 21:37:28 2013 Tanaka Akira <akr@fsij.org>
- * parse.y (dsym): prohibit empty symbol literal by interpolation.
- fixed: [ruby-talk:166529]
+ * process.c (reduce_factors): New function.
+ (timetick2dblnum): Use reduce_factors.
+ (timetick2integer): Ditto.
+ (make_clock_result): Follow the above change.
+ (rb_clock_gettime): Ditto.
-Mon Nov 21 16:03:48 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Aug 23 21:00:55 2013 Tanaka Akira <akr@fsij.org>
- * win32/setup.mk: findstr doesn't exist on win9x.
- fixed: [ruby-dev:27756]
+ * 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.
-Sun Nov 20 22:34:06 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Aug 23 20:50:40 2013 Tanaka Akira <akr@fsij.org>
- * parse.y (rb_symname_p): [ not followed by ] is not valid symbol.
- fixed: [ruby-talk:166520]
+ * 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.
-Sat Nov 19 19:57:54 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Aug 23 18:39:04 2013 Koichi Sasada <ko1@atdot.net>
- * lib/fileutils.rb (FileUtils::ln): ln documentation fix.
- [ruby-core:06661]
+ * array.c (ary_make_shared): shared ary as shady. Need more effort to
+ make it normal object.
-Sat Nov 19 07:34:32 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * array.c (rb_ary_modify): use RARRAY_PTR_USE() without WB because
+ there are not new relations.
- * ext/tk/lib/tk/font.rb: remove dependency on Ruby's version (1.8
- or 1.9).
+ * array.c (ary_ensure_room_for_unshift): use RARRAY_RAWPTR() because
+ there are not new relations.
- * ext/tk/lib/tkextlib/ICONS/icons.rb: ditto.
+Fri Aug 23 11:25:57 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/sample/tkextlib/treectrl/demo.rb: ditto.
+ * array.c: introduce ARY_SHARED_OCCUPIED(shared).
-Fri Nov 18 17:57:08 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Aug 23 11:07:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (rb_file_s_dirname): should use skipprefix for UNC path.
- pointed out by nobu ([ruby-dev:27744]). fixed: [ruby-core:5076]
+ * win32/Makefile.sub (config.h): now SIZEOF_CLOCK_T is needed for
+ unsigned_clock_t.
-Fri Nov 18 17:35:09 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Aug 22 22:01:04 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/multi-tk.rb: add restriction to access the entried
- command table and manipulate other IPs (for reason of security).
- Now, a IP object can be controlled by only its master IP or the
- default IP.
+ * process.c (rb_clock_gettime): Strip "s" from unit names.
- * ext/tk/lib/remote-tk.rb: add restriction to manipulate.
+Thu Aug 22 20:14:59 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/tcltklib.c (ip_is_slave_of_p): add TclTkIp#slave_of?(ip)
- to check manipulability.
+ * process.c (unsigned_clock_t): Defined.
+ (rb_clock_gettime): Consider clock_t overflow for
+ ISO_C_CLOCK_BASED_CLOCK_PROCESS_CPUTIME_ID.
- * ext/tk/lib/tk.rb: bug fix on handling of Tcl's namespaces.
+ * configure.in: Check the size of clock_t.
- * ext/tk/lib/tk/namespace.rb: ditto.
+Thu Aug 22 16:22:48 2013 Koichi Sasada <ko1@atdot.net>
-Fri Nov 18 17:26:06 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * compile.c (build_postexe_iseq): fix to setup the local table.
- * file.c (rb_file_s_dirname): added checks for some patterns with drive
- letter. fixed: [ruby-dev:27738]
+Thu Aug 22 15:42:43 2013 Koichi Sasada <ko1@atdot.net>
- * test/ruby/test_path.rb (test_dirname): added tests for above
- patterns.
+ * compile.c (rb_iseq_compile_node): accept NODE_IFUNC to support
+ custom compilation.
-Fri Nov 18 12:18:02 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * compile.c (NODE_POSTEXE): compile to
+ "ONCE{ VMFrozenCore::core#set_postexe{...} }" with a new custom
+ compiler `build_postexe_iseq()'.
- * win32/win32.h (S_IFIFO): r,w = IO.pipe; r.stat.pipe? now
- returns true on VisualC++6.
+ * vm.c (m_core_set_postexe): remove parameters (passed by a block).
-Wed Nov 16 23:24:17 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Aug 22 06:54:15 2013 Tanaka Akira <akr@fsij.org>
- * common.mk (static-ruby): overridable.
+ * process.c (rb_clock_gettime): Change emulation symbols for
+ Process.clock_gettime.
- * ext/extmk.rb (parse_args): force to link extensions statically only
- if static is given for extstatic.
+Thu Aug 22 06:24:54 2013 Tanaka Akira <akr@fsij.org>
- * ext/extmk.rb (RUBY, RUBYW): overridable.
+ * process.c (make_clock_result): Extracted from rb_clock_gettime.
-Tue Nov 15 23:46:35 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Aug 21 22:30:51 2013 Tanaka Akira <akr@fsij.org>
- * lib/find.rb (Find::find): should not ignore symbolic links to
- non-existing files. [ruby-talk:165866]
+ * process.c (rb_clock_gettime): clock() based CLOCK_PROCESS_CPUTIME_ID
+ emulation implemented.
-Tue Nov 15 16:23:26 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Aug 21 21:02:37 2013 Tanaka Akira <akr@fsij.org>
- * array.c (rb_ary_fill): previous commit disabled this usage:
+ * process.c (rb_proc_times): Use RB_GC_GUARD to guard objects from GC.
- a = [0,1,2,3,4,5,6,7,8,9]
- a.fill {|i| a[i] * 10} #=> [nil, nil, ...., nil]
+Wed Aug 21 20:33:01 2013 Tanaka Akira <akr@fsij.org>
- previous commit has the advantage of early garbage collection, but
- potensially this would break some script. so I reverted behavior.
+ * process.c (get_clk_tck): Extracted from rb_proc_times.
+ (rb_clock_gettime): times() based CLOCK_PROCESS_CPUTIME_ID emulation
+ is implemented.
-Tue Nov 15 16:04:10 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Aug 21 19:31:48 2013 Tanaka Akira <akr@fsij.org>
- * array.c (rb_ary_fill): tail elements were vanished when the middle
- part of array was filled. (ie: [0,1,2,3,4].fill(-1,2,1) => [0,1,-1])
+ * process.c: POSIX_GETTIMEOFDAY_CLOCK_REALTIME is renamed to
+ SUS_GETTIMEOFDAY_CLOCK_REALTIME.
- * test/ruby/test_array.rb (test_fill): added.
+Wed Aug 21 19:17:46 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 15 14:39:16 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * process.c (rb_clock_gettime): CLOCK_PROCESS_CPUTIME_ID emulation
+ using getrusage is implemented.
- * array.c (rb_ary_fill): should adjust array length correctly when
- an array is expanded in the fill process. [ruby-core:06625]
+Wed Aug 21 17:34:27 2013 Tanaka Akira <akr@fsij.org>
-Mon Nov 14 23:49:57 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (getrusage_time): Fallback clock_gettime to getrusage when
+ clock_gettime fails.
+ Reported by Eric Saxby. [ruby-core:56762] [Bug #8805]
- * file.c (rb_file_s_readlink): ERANGE will occur only on GPFS.
- [ruby-dev:27699]
+Wed Aug 21 02:32:32 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 14 17:36:22 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * insns.def: fix regexp's once option behavior.
+ fix [ruby-trunk - Bug #6701]
- * array.c (rb_ary_first): RDoc update from Daniel Berger
- <djberg96@yahoo.com>. [ruby-core:06577].
+ * insns.def: remove `onceinlinecache' and introduce `once' instruction.
+ `once' doesn't use `setinlinecache' insn any more.
-Fri Nov 11 10:31:44 2005 Zach Dennis <zdennis@mktec.com>
+ * vm_core.h: `union iseq_inline_storage_entry' to store once data.
- * ext/socket/socket.c: Socket Documentation. [ruby-core:6552]
+ * compile.c: catch up above changes.
-Fri Nov 11 08:20:56 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * iseq.c: ditto.
- * Makefile.in (OUTFLAG): keep trailing spaces. [ruby-dev:27666]
+ * vm.c, vm_insnhelper.c: ditto. fix `m_core_set_postexe()' which
+ is depend on `onceinlinecache' insn.
- * mkconfig.rb: substitution refereces added.
+ * test/ruby/test_regexp.rb: add tests.
-Fri Nov 11 07:44:18 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * iseq.c: ISEQ_MINOR_VERSION to 1 (should increment major?)
- * configure.in: undef HAVE_LINK on BeOS. (link(2) always returns
- EINVAL, and this causes error in test/fileutils.)
+Wed Aug 21 02:30:15 2013 Koichi Sasada <ko1@atdot.net>
- * file.c: overwride chown(2) and fchown(2) on BeOS. (these functions
- should not change user/group id if -1 is passed as corresponding
- argument, and this causes error in test/fileutils too)
- [ruby-dev:27672]
+ * gc.c (rb_gcdebug_print_obj_condition): add printing information.
- * file.c (rb_file_s_link): checks HAVE_LINK.
+Tue Aug 20 13:38:00 2013 Naohisa Goto <ngotogenome@gmail.com>
-Tue Nov 8 15:32:27 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * 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]
- * lib/drb/ssl.rb (DRb::SSLConfig#accept): fixed typo.
- [ruby-dev:27560] [ruby-core:4627]
+Tue Aug 20 02:32:52 2013 Zachary Scott <e@zzak.io>
-Mon Nov 7 13:43:51 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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/tk/stubs.c (_nativethread_consistency_check): use simpler
- (low cost) way to check whether the Tcl interpreter was compiled
- with threads enabled of not.
+ This patch was based on a patch submitted by Steve Klabnik.
+ [ruby-core:56694] [Bug #8778]
- * ext/tk/tcltklib.c: reduce warnings.
+Tue Aug 20 02:10:19 2013 Zachary Scott <e@zzak.io>
- * ext/tk/tkutil/tkutil.c: ditto.
+ * lib/rss/rss.rb: [DOC] Document for constants by Steve Klabnik
+ [ruby-core:56705] [Bug #8798]
-Mon Nov 7 00:06:58 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Tue Aug 20 02:01:10 2013 Zachary Scott <e@zzak.io>
- * lib/yaml.rb: removed :nodoc: to generate Kernel doc. [ruby-core:6324]
+ * lib/rss/xmlparser.rb: [DOC] Hide legacy constant from rdoc
+ Patch by Steve Klabnik [ruby-core:56708] [Bug #8799]
-Sun Nov 6 23:39:13 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Aug 20 01:52:05 2013 Zachary Scott <e@zzak.io>
- * ext/iconv/iconv.c (Iconv::BrokenLibrary): exception when detected a
- bug of underlying library.
+ * 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]
-Sun Nov 6 21:46:59 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Tue Aug 20 01:19:22 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/stubs.c (ruby_tcl_create_ip_and_stubs_init): should touch
- interpreter after initialization is done. [ruby-dev:27638]
+ * configure.in: Define ac_cv_func_clock_gettime to yes for mingw*.
-Sun Nov 6 20:13:27 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 19 21:31:35 2013 Tanaka Akira <akr@fsij.org>
- * file.c (rb_file_s_readlink): readlink(2) on AIX fails with ERANGE if
- buffer size is less than required. fixed: [ruby-dev:27634]
+ * 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.
-Wed Nov 2 20:25:28 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Aug 19 20:55:12 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/extconf.rb: ext/tk/extconf.rb: change the check parameter
- for Win32.
+ * gc.c: fix around GC_DEBUG.
-Wed Nov 2 20:14:53 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * gc.c (RVALUE::line): should be VALUE. On some environment
+ (such as mswin64), `int' introduces alignment mismatch.
- * ext/tcltklib: merge into ext/tk and remove.
+ * gc.c (newobj_of): add an assertion to check VALUE alignment.
-Wed Nov 2 19:03:06 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * gc.c (aligned_malloc): `&' is low priority than `=='.
- * ext/tcltklib/tcltklib.c (ip_rbUpdateObjCmd,
- ip_rb_threadUpdateObjCmd): passed improper flags to DoOneEvent().
+ * gc.c: define GC_DEBUG everytime and use it as value 0 or 1.
- * ext/tk/tkutil.c: use rb_obj_respond_to() instead of rb_respond_to().
+Mon Aug 19 17:43:44 2013 Koichi Sasada <ko1@atdot.net>
-Tue Nov 1 14:20:11 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/ruby/test_fiber.rb: collect garbage fibers immediately.
- * eval.c (rb_call_super): should call method_missing if super is
- called from Kernel method.
+Mon Aug 19 17:41:49 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (exec_under): frame during eval should preserve external
- information.
+ * test/profile_test_all.rb: add `failed?' information.
-Tue Nov 1 10:50:17 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Mon Aug 19 17:00:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/extconf.rb: should check ERR_peek_last_error().
- [ruby-dev:27597]
+ * process.c (retry_fork): retry with GC if ENOMEM occurred, to free
+ swap/kernel space.
- * ext/openssl/ossl.c (ossl_raise): ditto.
+Mon Aug 19 13:28:47 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Oct 31 17:34:46 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * include/ruby/win32.h (CLOCK_MONOTONIC): typo.
- * configure.in: use proper option for Sun linker. A patch from
- Shinya Kuwamura <kuwa at labs.fujitsu.com>. [ruby-dev:27603]
+ * win32/win32.c: removed duplicated declarations.
-Mon Oct 31 11:27:22 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Aug 19 13:03:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb (test_s_open_error):
- skip on Win32/DOS platforms.
+ * configure.in (clock_gettime): should not overwrite cache variable
+ with different condition. otherwise -lrt is not linked and the link
+ fails, after reconfig.
-Mon Oct 31 05:49:23 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Mon Aug 19 12:56:49 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_cipher.c (ossl_cipher_update): input data must
- not be empty. [ruby-talk:161220]
+ * process.c (Init_process): Add constants: CLOCK_REALTIME_ALARM and
+ CLOCK_BOOTTIME_ALARM.
- * test/openssl/test_cipher.rb: add test for Cipher#update("").
+Sun Aug 18 20:17:41 2013 Kazuki Tsujimoto <kazuki@callcc.net>
-Mon Oct 31 05:37:20 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * variable.c, vm_method.c: remove dead code.
- * lib/webrick/httpservlet/cgihandler.rb
- (WEBrick::HTTPServlet::CGIHandler#do_GET): the value of Set-Cookie:
- header field should be splited into each cookie. [ruby-Bugs:2199]
+ * test/ruby/test_fiber.rb, test/ruby/test_thread.rb:
+ change accordingly.
- * lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookie): new method
- to parse the value of Set-Cookie: header field.
+Sun Aug 18 19:32:26 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * test/webrick/test_cookie.rb, test/webrick/test_cgi.rb,
- test/webrick/webrick.cgi: add some test for cookie.
+ * error.c, file.c, gc.c, hash.c, thread.c, variable.c, vm_eval.c, bin/erb:
+ $SAFE=4 is obsolete.
-Mon Oct 31 03:19:36 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Aug 18 14:30:47 2013 Tanaka Akira <akr@fsij.org>
- * ext/readline/readline.c (readline_readline): type check.
- [ruby-core:6089]
+ * process.c (rb_clock_gettime): Rename POSIX_TIME_CLOCK_REALTIME to
+ ISO_C_TIME_CLOCK_REALTIME.
- * numeric.c (fix_rshift): RDoc fix. [ruby-core:6351]
+Sun Aug 18 14:22:45 2013 Tanaka Akira <akr@fsij.org>
- * util.h (strtod): add #undef for platforms defines strtod()
- macro. [ruby-dev:27563]
+ * configure.in: Revert r42604. It causes linking librt on systems
+ with newer glibc uselessly.
-Mon Oct 31 02:35:59 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Sun Aug 18 13:18:38 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_float.rb (test_precision): test by assert_in_delta.
- [ruby-dev:27575]
+ * process.c (Init_process): Add constants: CLOCK_REALTIME_COARSE,
+ CLOCK_MONOTONIC_COARSE and CLOCK_BOOTTIME.
-Sat Oct 29 01:58:25 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Aug 18 12:41:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/etc/etc.c: document update from mathew <meta@pobox.com>.
- [ruby-core:06473]
+ * 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.
- * ext/fcntl/fcntl.c: ditto.
+Sun Aug 18 10:05:12 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 27 16:45:31 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (rb_big2str1): Make an expression more explicit.
- * string.c (scan_once): wrong condition to use mbclen2().
- [ruby-dev:27535]
+Sun Aug 18 03:18:45 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 26 09:27:27 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * bignum.c (rb_big2str1): Use power_level instead of bitsize(xn).
- * ext/syck/implicit.c (syck_type_id_to_uri): should return
- newly allocated memory. otherwise, type_id will be freed
- twice. [ruby-dev:27384] [ruby-core:6385]
+Sun Aug 18 00:44:58 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 26 09:04:51 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * bignum.c (BIGDIVREM_EXTRA_WORDS): Redefine to 1.
+ (bigdivrem_num_extra_words): Removed.
+ (bigdivrem_normal): Simplified.
+ (big2str_karatsuba): Ditto.
- * ruby.h (Qfalse, Qtrue, Qnil, Qundef): make sure these immediate
- values have VALUE type. there is an environment where sizeof(VALUE)
- != sizeof(int) like IA64. if 32bit integer (Qtrue) is passed to ANYARGS
- and received by 64bit integer (VALUE), upper bits may have garbage value.
- [ruby-dev:27513]
+Sat Aug 17 23:25:19 2013 Benoit Daloze <eregontp@gmail.com>
-Wed Oct 26 01:58:19 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_time.rb: use the in_timezone() helper
+ and define it at the top with other helpers.
- * configure.in (RUBY_EXTERN): macro to export symbols in shared
- library. [ruby-core:05528]
+Sat Aug 17 22:20:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * defines.h, {bcc32,win32,wince}/Makefile.sub (RUBY_EXTERN): moved to
- configuration pass.
+ * time.c (time_mload): ignore auxiliary data, offset and zone, if
+ invalid. [ruby-core:56648] [Bug #8795]
- * ext/extmk.rb (extmake): RUBY_EXTERN for static linked extensions.
+Sat Aug 17 20:11:49 2013 Benoit Daloze <eregontp@gmail.com>
-Tue Oct 25 15:32:00 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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
- * lib/rational.rb: applied documentation patch from Gavin Sinclair
- <gsinclair@gmail.com>. [ruby-core:06364]
+Fri Aug 16 18:12:05 2013 Koichi Sasada <ko1@atdot.net>
- * lib/irb.rb (IRB::Irb::eval_input): handle prompts with newlines
- in irb auto-indentation mode. [ruby-core:06358]
+ * test/profile_test_all.rb: fix typo.
-Tue Oct 25 02:12:08 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Aug 16 18:09:20 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::LABEL_LIST_RE):
- reduce redundant backtrack. [ruby-talk:161771]
+ * test/profile_test_all.rb: remove space characters from test names.
-Tue Oct 25 00:27:35 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Fri Aug 16 17:32:02 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rinda/*: RDoc documentation from Eric Hodel
- <drbrain@segment7.net> added.
+ * test/profile_test_all.rb: refactoring memory profiling tool for
+ test-all.
+ Add profiling targets /proc/meminfo and /proc/self/status.
-Mon Oct 24 21:14:29 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/runner.rb: accept other than 'true'.
- * configure.in, io.c: use sys/syscall.h if syscall.h is not available.
- [ruby-core:06247]
+Fri Aug 16 11:23:35 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Oct 24 20:49:45 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * file.c (rb_file_size, rb_file_flock): improve performance of Windows.
- * ext/Win32API/lib/win32/resolv.rb (get_info): support multiple DNS.
- fixed: [ruby-list:40058], [ruby-dev:27479]
+ * file.c (rb_file_truncate): removed unnecessary #ifdef.
-Mon Oct 24 07:57:56 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/test_file.rb (TestFile#test_truncate_size): added an assertion
+ for File#size.
- * ext/tk/lib/tk/canvas.rb (TkCanvasItemConfig::__item_val2ruby_optkeys):
- typo fixed. [ruby-talk:162187]
+Fri Aug 16 10:07:59 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/menu.rb (TkMenuEntryConfig::__item_val2ruby_optkeys):
- ditto. [ruby-core:06359]
+ * 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.
-Sun Oct 23 21:50:15 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Aug 16 09:17:00 2013 Tanaka Akira <akr@fsij.org>
- * ext/enumerator/enumerator.c: applied documentation patch from
- James Edward Gray II <james@grayproductions.net>.
- [ruby-core:06348]
+ * bignum.c (bary_small_rshift): Specify the higher BDIGIT instead of
+ sign bit.
+ (big_shift3): Follow the above change.
-Sun Oct 23 07:11:11 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Aug 16 02:20:39 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/extconf.rb: improve messages [ruby-core:06325].
+ * bignum.c (bary_mul_toom3): Reduce a branch.
- * ext/tk/lib/tk.rb, ext/tk/lib/tk/canvas.rb, ext/tk/lib/tk/entry.rb,
- ext/tk/lib/tk/frame.rb, ext/tk/lib/tk/image.rb,
- ext/tk/lib/tk/itemconfig.rb, ext/tk/lib/tk/labelframe.rb,
- ext/tk/lib/tk/listbox.rb, ext/tk/lib/tk/menu.rb,
- ext/tk/lib/tk/radiobutton.rb, ext/tk/lib/tk/scale.rb,
- ext/tk/lib/tk/spinbox.rb, ext/tk/lib/tk/text.rb,
- ext/tk/lib/tk/toplevel.rb: improve conversion of option values.
+Fri Aug 16 02:14:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/tk/lib/tkextlib/*: ditto.
+ * process.c (rb_clock_gettime): add CLOCK_MONOTONIC support on OS X.
+ http://developer.apple.com/library/mac/qa/qa1398/_index.html
+ [Feature #8658]
- * ext/tk/lib/tkextlib/*: update to support ActiveTcl8.4.11.2.
+Fri Aug 16 01:37:43 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkextlib/trofs/*: support Trofs 0.4.3.
+ * bignum.c (bigdivrem_single): Use shift when y is a power of two.
- * ext/tk/lib/tkextlib/tile/*: support Tile 0.7.2.
+Fri Aug 16 01:09:33 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkextlib/vu/*: support vu 2.3.0.
+ * bignum.c (bigdivrem_restoring): Use bigdivrem_single if non-topmost
+ BDIGITs of y are zero.
- * ext/tk/lib/tkextlib/tcllib/*: support Tcllib 1.8 (Tklib 0.3).
+Fri Aug 16 00:33:12 2013 Tanaka Akira <akr@fsij.org>
-Sat Oct 22 23:54:07 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_big2str1): Truncate topmost zeros of x.
- * ext/extmk.rb, lib/mkmf.rb (with_config): support --with-extension
- options. [ruby-dev:27449]
+Fri Aug 16 00:00:57 2013 Tanaka Akira <akr@fsij.org>
-Sat Oct 22 13:26:57 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (bary_divmod): Simplify an expression.
- * object.c (sym_inspect), parse.y (parser_yylex, rb_symname_p): check
- if valid as a symbol name more strictly. [ruby-dev:27478]
+Thu Aug 15 23:26:12 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_symbol.rb: tests for [ruby-core:03573].
+ * bignum.c (bigdivrem_normal): Remove a local variable.
- * time.c (rb_strftime): removed meaningless volatile modifiers, and
- concatenate successive nul characters at once. [ruby-dev:27472]
+Thu Aug 15 23:08:32 2013 Tanaka Akira <akr@fsij.org>
-Fri Oct 21 19:21:56 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * bignum.c (big2str_karatsuba): Use bigdivrem_restoring directly to
+ reduce working buffer and memory copy.
+ (rb_big2str1): Allocate working buffer for big2str_karatsuba here.
- * rubysig.h (CHECK_INTS): fixed typo. (I believe bit-or is improper)
+Thu Aug 15 20:51:29 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Fri Oct 21 17:49:32 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * io.c, internal.h (rb_io_flush_raw): new function to select calling
+ fsync() (on Windows).
- * bin/erb (ERB::Main::run): typo fixed. [ruby-core:06337]
+ * io.c (rb_io_flush_raw): use above function.
-Fri Oct 21 15:27:17 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * file.c (rb_file_truncate): use above function.
- * bignum.c (bignew_1): convertion from `int' to `char' discards
- upper bits, (ie. (char)0xff00 -> 0) so it's better to test if
- nonzero and set 0 or 1 instead of simply casting ... as a flag usage.
- (but I believe this won't cause actual bug in current implementation)
- [ruby-dev:27055]
+ * test/ruby/test_file.rb (TestFile#test_truncate_size): test for
+ above changes.
- * time.c: should use LONG_LONG instead of `long long'.
+Thu Aug 15 18:39:31 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Thu Oct 20 09:37:15 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * win32/win32.c (clock_gettime): improve precision when freq is less
+ than and nearly equals 10**9.
- * lib/mkmf.rb (create_makefile): Borland make seems not to allow
- empty dependency list. If this change is not good, please correct
- it.
+Thu Aug 15 17:43:15 2013 Koichi Sasada <ko1@atdot.net>
-Thu Oct 20 07:55:09 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_lazy_sweep): remove heap_increment() here because heap_inc
+ may be 0.
- * lib/mkmf.rb (create_makefile): get rid of a restriction
- of Borland make. fixed: [ruby-dev:27460]
+Thu Aug 15 16:59:56 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Thu Oct 20 00:13:18 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * io.c (rb_io_rewind): remove fsync() for Windows to improve the
+ performance.
- * rubysig.h (CHECK_INTS): fix typo.
+Thu Aug 15 16:30:23 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Wed Oct 19 23:58:03 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/fileutils/test_fileutils.rb (TestFileUtils#test_rmdir):
+ FileUtils.rmdir ignores Errno::ENOTEMPTY, so, in such cases, this
+ assertion is nonsense.
- * lib/mkmf.rb (create_makefile): do not create unnecessary empty
- directories. fixed: [ruby-dev:27451]
+Thu Aug 15 15:49:35 2013 Tanaka Akira <akr@fsij.org>
-Wed Oct 19 19:26:15 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (rb_clock_gettime): [DOC] FreeBSD 7.1 supports
+ CLOCK_THREAD_CPUTIME_ID.
+ http://www.freebsd.org/releases/7.1R/relnotes.html
- * parse.y (rb_gc_mark_parser): get rid of segfault with old yacc.
- fixed: [ruby-dev:27439]
+Thu Aug 15 14:30:23 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Wed Oct 19 08:28:32 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/win32.h, win32/Makefile.sub, win32/win32.c
+ (clock_gettime): [experimental] emulates clock_gettime(2) of posix.
- * file.c (rb_file_join): elements may contain null pointer strings.
- report and fixed by Lloyd Zusman (hippoman): [ruby-core:06326]
+Thu Aug 15 02:32:40 2013 Zachary Scott <e@zzak.io>
-Wed Oct 19 02:34:33 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (rb_hash_aset): [DOC] Document key dup patch by @kachick
+ [Fixes GH-382] https://github.com/ruby/ruby/pull/382
- * eval.c, gc.c, time.c: made internal symbols static. [ruby-dev:27435]
+Wed Aug 14 14:28:39 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Wed Oct 19 01:27:07 2005 Nobuyoshi Nakada <nobu@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]
- * regex.c (re_compile_pattern): numeric literal inside character class
- disabled succeeding backtrack. fixed: [ruby-list:41328]
+ * NEWS: documents about above change and def-expr (see r42337).
-Mon Oct 17 21:18:50 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_module.rb: tests about above change.
- * parse.y (parser_heap): byacc never free parser stack.
- fixed: [ruby-dev:27428]
+Wed Aug 14 00:51:14 2013 Tanaka Akira <akr@fsij.org>
-Mon Oct 17 16:04:47 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * bignum.c (bigdivrem_restoring): xn argument removed.
+ (bigdivrem_normal): Follow the above change.
- * file.c (chmod_internal, lchmod_internal): fixed type of 2nd argument.
+Wed Aug 14 00:18:39 2013 Tanaka Akira <akr@fsij.org>
-Sun Oct 16 22:16:51 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (big_div_struct): Remove xn and j field. Add zn field.
+ (bigdivrem1): Follow the above change.
+ (bigdivrem_restoring): Ditto.
- * ext/extmk.rb: omit non-existing directories.
+Tue Aug 13 23:38:17 2013 Tanaka Akira <akr@fsij.org>
-Sun Oct 16 14:30:05 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * bignum.c (big_div_struct): ynzero field removed.
+ (bigdivrem1): Follow the above change.
+ (bigdivrem_restoring): Ditto.
- * lib/rinda/rinda.rb (Rinda::Tuple#initialize): check remote hash
- tuple. fixed: [ruby-list:41227]
+Tue Aug 13 23:01:16 2013 Tanaka Akira <akr@fsij.org>
- * test/rinda/test_rinda.rb: test it.
+ * bignum.c (bigdivrem_restoring): Extracted from bigdivrem_normal.
-Sun Oct 16 03:38:07 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Aug 13 22:12:59 2013 Kenichi Kamiya <kachick1@gmail.com>
- * rubysig.h (CHECK_INTS): prevent signal handler to run during
- critical section. [ruby-core:04039]
+ * random.c (rb_random_ulong_limited): coerce before check negative.
+ [Fixes GH-379]
- * eval.c (load_wait): need not to call rb_thread_schedule()
- explicitly. [ruby-core:04039]
+Tue Aug 13 21:52:15 2013 Kenichi Kamiya <kachick1@gmail.com>
- * eval.c (rb_thread_schedule): clear rb_thread_critical.
- [ruby-core:04039]
+ * object.c (Init_Object): undef Module#prepend_features on Class, as
+ well as Module#append_features. [Fixes GH-376]
-Sat Oct 15 19:56:38 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * test_class.rb: Added test for above. And ensure type checking
+ on similar methods as module_function.
- * bin/erb: typo fixed, again. thanks, Doug Kearns.
+Tue Aug 13 08:52:18 2013 Zachary Scott <e@zzak.io>
-Fri Oct 14 22:08:26 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * doc/syntax/literals.rdoc: [DOC] String literal concat by @cknadler
+ [Fixes GH-380] https://github.com/ruby/ruby/pull/380
- * win32/win32.c (ioctl): should set errno.
+Mon Aug 12 23:07:21 2013 Masaya Tarui <tarui@ruby-lang.org>
-Fri Oct 14 16:57:32 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * gc.c (gc_marks_test): inhibit gc for st's operation.
- * lib/webrick/config.rb (Config::FileHandler): :UserDir should be nil.
- It is harmful to permit the access to ~/public_html by default.
- suggested by Hiroyuki Iwatsuki.
+Mon Aug 12 15:59:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Oct 13 23:29:51 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * parse.y (parser_whole_match_p): treat CR in middle of a line as a
+ mere whitespace.
- * parse.y (HEAPCNT): bison allocates indivisible size.
- fixed: [ruby-core:06261]
+Mon Aug 12 15:16:58 2013 Koichi Sasada <ko1@atdot.net>
- * io.c, pack.c, ext/syck/rubyext.c, ext/syck/syck.h, missing/isinf.c:
- get rid of warnings. fixed: [ruby-core:06247]
+ * 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.
-Wed Oct 12 12:52:57 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * test/ruby/test_module.rb: add a test for WB miss.
- * ext/openssl/ossl.c (Init_openssl): should call
- OpenSSL_add_ssl_algorithms().
+Mon Aug 12 13:47:54 2013 Zachary Scott <e@zzak.io>
-Wed Oct 12 11:08:54 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+ * process.c: [DOC] RDoc formatting of Process.clock_gettime
- * file.c (rb_f_test): typo in RDoc comments.
+Mon Aug 12 13:29:09 2013 Zachary Scott <e@zzak.io>
-Tue Oct 11 21:41:58 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/yaml/dbm.rb: [DOC] Document call-seq for YAML::DBM
- * eval.c (rb_obj_respond_to): check if obj responds to the given
- method with the given visibility. [ruby-dev:27408]
+Mon Aug 12 12:57:26 2013 Zachary Scott <e@zzak.io>
- * eval.c (rb_respond_to): conform to Object#respond_to?. [ruby-dev:27411]
+ * 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.
-Tue Oct 11 00:01:21 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Aug 12 12:53:39 2013 Zachary Scott <e@zzak.io>
- * st.c (st_free_table): do not call free() but xfree().
- [ruby-core:06205]
+ * ext/dbm/dbm.c: [DOC] Reformat headings of DBM class
-Sat Oct 8 20:04:40 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Aug 12 12:46:31 2013 Zachary Scott <e@zzak.io>
- * eval.c (Init_Binding): add Binding#dup method. [yarv-dev:666]
+ * 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.
- * parse.y (rb_parser_malloc, rb_parser_free): manage parser stack on
- heap. [ruby-list:41199]
+Mon Aug 12 02:51:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/iconv/charset_alias.rb: parse config.charset_alias file directly.
+ * 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.
-Fri Oct 7 09:54:00 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/readline/readline.c (readline_s_set_output): ditto.
- * lib/cgi.rb (CGI::Cookie::parse): Cookies from Nokia devices may
- not be parsed correctly. A patch from August Z. Flatby
- (augustzf) in [ruby-Patches-2595]. [ruby-core:06183]
+Sun Aug 11 23:27:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Oct 6 20:12:16 2005 Minero Aoki <aamine@loveruby.net>
+ * file.c (rb_str_encode_ospath): OS path encoding on Mac OS X is also
+ fixed.
- * ext/strscan/strscan.c (strscan_free): remove useless code.
- [ruby-dev:26368] [ruby-dev:27389]
- (backported from trunk, rev 1.22)
+Sun Aug 11 22:57:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 5 04:42:38 2005 GOTOU Yuuzou <gotoyuzo@notwork.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]
- * lib/xmlrpc/server.rb (XMLRPC::Server#initialize): should mount the
- servlet on "/".
+Sun Aug 11 19:11:45 2013 Kouhei Sutou <kou@cozmixng.org>
-Wed Oct 5 03:59:09 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * test/rexml/parser/test_sax2.rb: Expand abbreviated class name.
- * lib/xmlrpc/server.rb (XMLRPC::Server#serve): delete wrong call
- of "join".
+Sun Aug 11 19:06:03 2013 Kouhei Sutou <kou@cozmixng.org>
-Mon Oct 3 00:04:00 2005 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * 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.
- * pack.c (EXTEND16): [ruby-dev:27383]
+Sun Aug 11 18:44:04 2013 Kouhei Sutou <kou@cozmixng.org>
-Thu Sep 29 10:26:18 2005 Tanaka Akira <akr@m17n.org>
+ * lib/rexml/sax2listener.rb (REXML::SAX2Listener#elementdecl): Fix wrong
+ examples. [Bug #8731] [ruby-dev:47582]
+ Reported by Ippei Obayashi.
- * ext/dl/dl.c (rb_io_to_ptr): abolish sizeof(FILE).
- [ruby-dev:27317]
+Sun Aug 11 18:42:13 2013 Kouhei Sutou <kou@cozmixng.org>
-Thu Sep 29 07:22:05 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rexml/parsers/sax2parser.rb
+ (REXML::Parsers::SAX2Parser#handle_entitydecl): Extract.
- * evalc. (rb_f_send): underscores need to be escaped.
- fixed by Doug Kearns. [ruby-core:06053]
+Sun Aug 11 18:40:25 2013 Kouhei Sutou <kou@cozmixng.org>
-Thu Sep 29 00:57:35 2005 Nobuyoshi Nakada <nobu@ruby-lang.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.
- * eval.c (ev_const_get), variable.c (rb_const_get_0): retry only when
- autoload succeeded.
+Sun Aug 11 18:08:40 2013 Kouhei Sutou <kou@cozmixng.org>
- * variable.c (rb_autoload_load): now return true if autoload
- succeeded. fixed: [ruby-dev:27331]
+ * 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.
-Wed Sep 28 23:42:15 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Aug 11 18:07:39 2013 Kouhei Sutou <kou@cozmixng.org>
- * file.c (apply2files): add prototype.
+ * lib/rexml/parsers/baseparser.rb
+ (REXML::Parsers::BaseParser#pull_event): Support optional NDATA
+ in external ID entity declaration.
- * file.c (rb_stat_inspect): constified.
+Sun Aug 11 17:54:07 2013 Kouhei Sutou <kou@cozmixng.org>
- * class.c (rb_mod_init_copy, rb_class_init_copy), file.c (rb_stat_init_copy),
- numeric.c (num_init_copy), object.c (rb_obj_init_copy, Init_Object),
- re.c (match_init_copy, rb_reg_init_copy), time.c (time_init_copy):
- undocumented.
+ * 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.
-Wed Sep 28 23:09:23 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Aug 11 17:41:41 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/delegate.rb: document update from James Edward Gray II
- <james@grayproductions.net>. [ruby-core:06027]
+ * test/rexml/parser/test_sax2.rb: Add SAX2 API test.
-Wed Sep 28 15:14:19 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sun Aug 11 15:10:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/webrick/cgi.rb (WEBrick::CGI#start): req.query_string should
- refer the value of QUERY_STRING. [ruby-list:41186]
+ * parse.y (rb_enc_symname_type): allow ID_ATTRSET for ID_INSTANCE,
+ ID_GLOBAL, ID_CLASS, ID_JUNK too. [Bug #8756]
- * lib/webrick/httprequest.rb (WEBrick::HTTPRequest#query_string=):
- add new method.
+Sun Aug 11 13:17:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Wed Sep 28 10:45:44 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * include/ruby/encoding.h: Reduce ENCODING_INLINE_MAX to 127 as this
+ should be sufficient to represent all the encodings Ruby supports.
- * ext/tcltklib/tcltklib.c: cannot compile with Tcl/Tk8.0.x
- [ruby-dev:27335].
+Sun Aug 11 11:54:38 2013 Tanaka Akira <akr@fsij.org>
-Wed Sep 28 08:12:18 2005 Nobuyoshi Nakada <nobu@ruby-lang.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]
- * io.c (read_buffered_data): check if reached EOF. fixed: [ruby-dev:27334]
+Sun Aug 11 10:40:48 2013 Zachary Scott <e@zzak.io>
-Wed Sep 28 07:56:52 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/time.rb: [DOC] Correcting rdoc visibility of time.rb constants
+ Reported by Tanaka Akira [ruby-core:56517]
- * lib/yaml/basenode.rb (YAML::BaseNode::match_segment): fix typo.
- [ruby-dev:27237], [ruby-core:05854]
+Sun Aug 11 04:48:14 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/yaml/tag.rb (Module#yaml_as): suppress warnings.
+ * 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.
- * lib/yaml/types.rb (YAML::PrivateType, YAML::DomainType): ditto.
+Sun Aug 11 03:26:07 2013 Tanaka Akira <akr@fsij.org>
-Wed Sep 28 03:23:35 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * bignum.c (bitsize): Fix a conditional expression.
- * rubysig.h: fixed build problem with --enable-pthread on platforms
- which don't have setitimer().
+Sun Aug 11 02:44:03 2013 Zachary Scott <e@zzak.io>
-Mon Sep 26 22:32:13 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/time.rb: [DOC] Document constants by @markijbema [Fixes GH-377]
+ https://github.com/ruby/ruby/pull/377
- * eval.c (set_trace_func): add rb_secure(4) to prevent adding
- tracing function.
+Sun Aug 11 01:28:52 2013 Tanaka Akira <akr@fsij.org>
-Sun Sep 25 12:05:10 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * 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
- * bin/erb: typo fixed.
+Sat Aug 10 13:53:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Sep 25 01:46:43 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * parse.y (rb_id_attrset): allow other than ID_ATTRSET.
- * misc/ruby-mode.el (ruby-calculate-indent): arrange deep-indent
- closing parenthesis at same column as the opening.
+ * parse.y (intern_str): ditto. try stem ID for ID_INSTANCE,
+ ID_GLOBAL, ID_CLASS, ID_JUNK too. [Bug #8756]
-Sun Sep 25 00:42:11 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Aug 10 12:49:50 2013 Kouhei Sutou <kou@cozmixng.org>
- * misc/ruby-mode.el (ruby-expr-beg): deal with heredoc separately.
- fixed: [ruby-list:41168]
+ * 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?)
- * misc/ruby-mode.el (ruby-calculate-indent): not to deepen indent
- level for continuous line inside parentheses.
- http://nabeken.tdiary.net/20050915.html#p02
+Sat Aug 10 12:47:19 2013 Kouhei Sutou <kou@cozmixng.org>
-Sun Sep 25 00:18:11 2005 Tanaka Akira <akr@m17n.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.
- * eval.c (unknown_node): show more information. [ruby-dev:26196]
+Sat Aug 10 12:43:15 2013 Kouhei Sutou <kou@cozmixng.org>
-Sat Sep 24 08:56:01 2005 Minero Aoki <aamine@loveruby.net>
+ * 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.
- * lib/fileutils.rb (cd): no longer accept :noop option, related
- code is useless (backported from trunk, rev 1.67).
- [ruby-core:05858] [ruby-Bugs:2494]
+Sat Aug 10 12:39:00 2013 Kouhei Sutou <kou@cozmixng.org>
-Sat Sep 24 08:38:07 2005 Minero Aoki <aamine@loveruby.net>
+ * test/rexml/parse/test_document_type_declaration.rb: Add tests for
+ parsing document type declaration.
- * lib/fileutils.rb: fix visibility of FileUtils::NoWrite, Verbose,
- DryRun (backported from trunk, rev 1.66). [ruby-core:05954]
+Sat Aug 10 12:00:45 2013 Kouhei Sutou <kou@cozmixng.org>
- * test/fileutils/test_nowrite.rb: test it.
+ * 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!!!
- * test/fileutils/test_dryrun.rb: new file.
+Sat Aug 10 11:58:24 2013 Kouhei Sutou <kou@cozmixng.org>
- * test/fileutils/test_verbose.rb: new file.
+ * test/rexml/parse/test_notation_declaration.rb (#test_system_public):
+ Add a test for PUBLIC notation and SYSTEM notation order case.
-Sat Sep 24 02:40:20 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Aug 10 11:31:35 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/delegate.rb: document update from James Edward Gray II
- <james@grayproductions.net>. [ruby-core:05942]
+ * 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.
-Thu Sep 22 23:36:24 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Aug 10 09:20:21 2013 Zachary Scott <e@zzak.io>
- * lib/mkmf.rb (find_executable0): default path if environment is not
- set. [ruby-dev:27281]
+ * NEWS: [DOC] typo in example reported by @moretea
+ https://github.com/ruby/ruby/commit/a39e724#commitcomment-3831489
-Thu Sep 22 16:33:12 2005 Shugo Maeda <shugo@ruby-lang.org>
+Sat Aug 10 09:19:04 2013 Zachary Scott <e@zzak.io>
- * test/readline/test_readline.rb (TestReadline::replace_stdio):
- merged the patch of [ruby-dev:25232] instead of [ruby-dev:25223].
+ * proc.c: [DOC] rdoc code formatting
-Wed Sep 21 23:30:44 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Aug 10 09:12:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/mkmf.rb (configuration): generalized nmake dependent code.
+ * parse.y (rb_id_attrset): check if the argument is valid type as an
+ attribute.
-Wed Sep 21 09:07:55 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Aug 10 05:44:08 2013 Zachary Scott <e@zzak.io>
- * stable version 1.8.3 released.
+ * lib/rss/trackback.rb: [DOC] Hide RSS::Trackback from rdoc
+ Patch by Steve Klabnik [Bug #8755] [ruby-core:56456]
-Wed Sep 21 08:52:25 2005 why the lucky stiff <why@ruby-lang.org>
+Sat Aug 10 04:52:21 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/token.c: correctly compute identation of a block
- scalar's parent node. [ruby-talk:150620]
+ * bignum.c (big_div_struct): Use size_t.
+ (bigdivrem1): Ditto.
+ (bigdivrem_num_extra_words): Ditto.
+ (bigdivrem_single): Ditto.
+ (bigdivrem_normal): Ditto.
+ (bary_divmod): Ditto.
-Wed Sep 21 08:20:24 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Aug 9 23:47:15 2013 Kouhei Sutou <kou@cozmixng.org>
- * README.EXT, README.EXT.ja: add new features.
+ * 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!!!
-Wed Sep 21 07:43:58 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Aug 9 22:51:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/optparse.rb (default_argv, Arguable#options): defaults strings
- to be parsed to Arguable instance.
+ * configure.in (XLDFLAGS, LIBRUBYARG_STATIC): CoreFoundation framework
+ option is now needed always, regardless enable-shared.
+ [ruby-core:56467] [Bug #8759]
-Wed Sep 21 02:44:09 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Aug 9 22:20:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (path_check_0): disallow sticky world writable directory
- in PATH (and $LOAD_PATH). [ruby-dev:27226]
+ * ruby.c (load_file_internal): use rb_parser_compile_string_path and
+ rb_parser_compile_file_path, String path name versions. [Bug #8753]
- * file.c (fpath_check): typo fixed.
+Fri Aug 9 07:16:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Tue Sep 20 22:29:49 2005 NAKAMURA, Hiroshi <nahi@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.
- * test/wsdl/simpletype/rpc/test_rpc.rb, test/wsdl/ref/test_ref.rb,
- test/wsdl/any/test_any.rb test/soap/wsdlDriver/test_calc.rb:
- suppress deliberate warnings with $VERBOSE = nil.
+Fri Aug 9 19:13:54 2013 Koichi Sasada <ko1@atdot.net>
-Tue Sep 20 21:26:23 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * NEWS: update about new methods for Binding.
- * ext/io/wait/lib/nonblock.rb: disable on platforms non-blocking flag
- is not available. fixed: [ruby-dev:27187]
+Fri Aug 9 18:48:09 2013 Koichi Sasada <ko1@atdot.net>
-Tue Sep 20 18:23:04 2005 Tanaka Akira <akr@m17n.org>
+ * proc.c: add Binding#local_variable_get/set/defined?
+ to access local variables which a binding contains.
+ Most part of implementation by nobu.
- * eval.c (thread_mark): mark th->last_status. [ruby-dev:27179]
+ * test/ruby/test_proc.rb: add a tests for above.
-Tue Sep 20 18:20:33 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * lib/yaml.rb: require 'yaml/constants'. [ruby-core:5776]
+Fri Aug 9 14:02:01 2013 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
-Tue Sep 20 17:48:34 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * tool/make-snapshot: Fix order of priority for option parameter.
- * lib/xmlrpc/client.rb (XMLRPC::Client::do_rpc): add charset
- information to content-type header.[ruby-core:5127]
+Fri Aug 9 12:06:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/xmlrpc/server.rb (CGIServer::serve): ditto.
+ * file.c (rb_str_normalize_ospath): normalize to Normalization Form C
+ using CFString.
- * lib/xmlrpc/server.rb (ModRubyServer::serve): ditto.
+Fri Aug 9 10:53:57 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * lib/xmlrpc/server.rb (WEBrickServlet::service): ditto.
+ * time.c (get_timeval, get_new_timeval): use rb_obj_class()
+ instead of CLASS_OF() because CLASS_OF() may return
+ a singleton class.
-Tue Sep 20 17:34:46 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Fri Aug 9 10:42:11 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * test/webrick/test_cgi.rb: set ENV["PATH"] to CGIEnvPath on
- windows. bcc32's runtime is not installed into system directory,
- so it cannot be found without this setting. [ruby-dev:27166]
+ * vm_insnhelper.c (vm_invoke_block): returning from lambda proc
+ now always exits from the Proc. [ruby-core:56193] [Feature #8693]
-Tue Sep 20 17:10:38 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * NEWS, test/ruby/test_lambda.rb: ditto. Patch by nobu.
- * test/dbm/test_dbm.rb (TestDBM::test_s_open_error): remove
- test_s_open_error test to detect duplicate open.
- [ruby-dev:27202]
+Fri Aug 9 00:10:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Sep 20 17:08:31 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * enumerator.c (lazy_zip_func): fix non-single argument. fix
+ out-of-bound access and pack multiple yielded values.
+ [ruby-core:56383] [Bug #8735]
- * io.c: PIPE_BUF is not defined on BeOS. use _POSIX_PIPE_BUF instead.
- [ruby-dev:27185]
+Thu Aug 8 23:01:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Sep 20 16:53:53 2005 Yukihiro Matsumoto <matz@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]
- * test/readline/test_readline.rb (TestReadline::replace_stdio):
- BSD seek support from [ruby-dev:25223]. fixed: [ruby-dev:27150]
+Thu Aug 8 21:56:44 2013 Tanaka Akira <akr@fsij.org>
-Tue Sep 20 15:39:40 2005 why the lucky stiff <why@ruby-lang.org>
+ * time.c (time_overflow_p): Avoid signed integer overflow.
+ (rb_time_new): Fix overflow condition.
- * ext/syck/emitter.c (syck_scan_scalar): prevent indicators from
- appearing alone or at the end of plain scalars. [ruby-core:5826]
+Thu Aug 8 19:58:02 2013 Koichi Sasada <ko1@atdot.net>
- * ext/syck/emitter.c (syck_emit_scalar): treat typed scalar nodes
- as complex keys.
+ * thread.c (rb_threadptr_pending_interrupt_check_mask):
+ use RARRAY_RAWPTR() instead of RARRAY_PTR() because
+ there is no new reference.
- * lib/syck.h: version 0.60.
+Thu Aug 8 19:56:52 2013 Koichi Sasada <ko1@atdot.net>
- * lib/yaml/basenode.rb (YAML::BaseNode#at): transform keys during
- key searches.
+ * string.c (rb_str_format_m): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * ext/syck/rubyext.c: loading of binary-typed nodes. prevent
- emission of plain strings that look like symbols, but which aren't.
+Thu Aug 8 19:55:51 2013 Koichi Sasada <ko1@atdot.net>
-Tue Sep 20 05:50:22 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * include/ruby/ruby.h: define USE_RGENGC_LOGGING_WB_UNPROTECT.
- * test/xmlrpc/test_webrick_server.rb (setup_http_server):
- should not include 'webrick/https' unless 'use_ssl' because
- it fails where openssl is not installed.
+Thu Aug 8 16:44:25 2013 Koichi Sasada <ko1@atdot.net>
-Tue Sep 20 00:34:07 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * io.c (io_close): call rb_io_close() directly if io is a T_FILE
- object. [ruby-dev:27156]
+Thu Aug 8 15:37:53 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Sep 19 19:09:08 2005 Minero Aoki <aamine@loveruby.net>
+ * 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.
- * file.c (rb_file_chown): should accept nil. [ruby-dev:27171]
- (backport from trunk, rev 1.208)
+Thu Aug 8 14:54:18 2013 Shugo Maeda <shugo@ruby-lang.org>
-Mon Sep 19 18:35:13 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * NEWS: add description of incompatibility introduced by r42396.
+ [ruby-core:56329] [Bug #8722]
- * ext/dl/dl.c (rb_io_to_ptr): fix DragonFlyBSD support.
- [ruby-dev:27151]
+Thu Aug 8 14:50:36 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Mon Sep 19 14:17:04 2005 Minero Aoki <aamine@loveruby.net>
+ * common.mk (mini): portable target to build miniruby
- * ext/syck/emitter.c (syck_emit): passing an int* value to the
- long* parameter causes unaligned access on LP64 systems.
- [ruby-dev:27161]
+ * common.mk (bisect): run git-bisect with miniruby
-Mon Sep 19 13:44:03 2005 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * common.mk (bisect-ruby): run git-bisect with ruby
- * ext/win32ole/win32ole.c: avoid core dump with WIN32OLE_EVENT.
- [ruby-dev:27133]
+ * tool/bisect.sh: script for git-bisect
-Mon Sep 19 10:36:06 2005 Minero Aoki <aamine@loveruby.net>
+Thu Aug 8 12:11:43 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/fileutils.rb (cp_r): default is :dereference_root=>true for
- backward compatibility. [ruby-dev:27145]
+ * 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.
- * test/fileutils/test_fileutils.rb (test_cp_r): test it.
+Thu Aug 8 10:27:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Sep 19 09:57:39 2005 Minero Aoki <aamine@loveruby.net>
+ * range.c (range_last): revert r42400. [Bug #8739]
- * test/fileutils/test_fileutils.rb: backported from trunk (1.36).
- (again) [ruby-dev:27145]
+Thu Aug 8 10:26:25 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Sep 19 07:45:37 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * file.c (rb_str_normalize_ospath): extract and move from dir.c.
- * ext/openssl/ossl_pkey.h, ossl_pkey_rsa.c, ossl_pkey_dsa.c:
- an instance variable "private" is added to OpenSSL::PKey class.
- this ivar is a flag that shows whether there is a private key
- in the instance.
+Thu Aug 8 05:59:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/openssl/ossl_engine.c: (ossl_engine_load_privkey): set private
- key flag.
+ * test/openssl/test_ssl.rb: Fix test for CVE-2013-4073.
+ Patch by Antonio Terceiro. [Bug #8750] [ruby-core:56437]
-Mon Sep 19 06:41:32 2005 Minero Aoki <aamine@loveruby.net>
+Thu Aug 8 03:37:38 2013 Eric Hodel <drbrain@segment7.net>
- * lib/fileutils.rb: backported from trunk (rev 1.65):
+ * 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.
- * lib/fileutils.rb (rm_r): new option :secure.
+Wed Aug 7 23:06:26 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/fileutils.rb (rm_rf): new option :secure.
+ * ruby.c (Process.argv0): New method to return the original value
+ of $0. [Feature #8696]
- * lib/fileutils.rb: new method #remove_entry_secure.
+Wed Aug 7 23:05:55 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/fileutils.rb (cd): remove option :noop.
+ * ruby.c (Process.setproctitle): New method to change the title of
+ the running process that is shown in ps(1). [Feature #8696]
- * lib/fileutils.rb (cp_r): new option :dereference_root.
+Wed Aug 7 20:05:38 2013 Tanaka Akira <akr@fsij.org>
- * lib/fileutils.rb (cp_r): new option :dereference_root.
+ * bignum.c (rb_big_odd_p): Check the bignum length.
+ (rb_big_even_p): Ditto.
- * lib/fileutils.rb: new method #remove_entry.
+Wed Aug 7 19:29:26 2013 Tanaka Akira <akr@fsij.org>
- * lib/fileutils.rb: new method #chmod_R.
+ * bignum.c (dbl2big): A condition simplified.
- * lib/fileutils.rb: new method #chown.
+Wed Aug 7 16:34:30 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/fileutils.rb: new method #chown_R.
+ * test/webrick/test_cgi.rb (TestWEBrickCGI#{start_cgi_server,test_cgi}):
+ mswin is not only mswin32 but also mswin64. [Bug #8746]
- * lib/fileutils.rb: new method .commands.
+Wed Aug 7 16:19:12 2013 Koichi Sasada <ko1@atdot.net>
- * lib/fileutils.rb: new method .options.
+ * cont.c (rb_fiber_start): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * lib/fileutils.rb: new method .have_option?.
+ * proc.c (curry): ditto.
- * lib/fileutils.rb: new method .options_of.
+ * proc.c (rb_proc_call): remove line break.
- * lib/fileutils.rb: new method .collect_method.
+Wed Aug 7 13:20:12 2013 Koichi Sasada <ko1@atdot.net>
- * lib/fileutils.rb: use module_function instead of single extend.
+ * random.c (random_load): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * test/fileutils/test_fileutils.rb: backported from trunk (1.36).
+Wed Aug 7 12:58:23 2013 Koichi Sasada <ko1@atdot.net>
-Mon Sep 19 03:17:48 2005 Tanaka Akira <akr@m17n.org>
+ * thread.c (thread_start_func_2): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * file.c (rb_thread_flock): wrap the flock system call by
- TRAP_BEG/TRAP_END to enable signals. [ruby-dev:27122]
+Wed Aug 7 09:00:24 2013 Zachary Scott <e@zzak.io>
- * ext/socket/socket.c (bsock_send): wrap the sendto and send system
- call by TRAP_BEG/TRAP_END to enable signals when writing to a socket
- which is full. [ruby-dev:27132]
+ * string.c: [DOC] Description of rb_str_equal [Fixes GH-375]
+ Based on a patch by @markijbema
+ https://github.com/ruby/ruby/pull/375
- * io.c (rb_io_syswrite): wrap the write system call by
- TRAP_BEG/TRAP_END to enable signals when writing to a pipe which is
- full. [ruby-dev:27134]
+Wed Aug 7 08:30:38 2013 Zachary Scott <e@zzak.io>
-Mon Sep 19 03:02:08 2005 Tanaka Akira <akr@m17n.org>
+ * 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
- * io.c (io_fwrite): wrap the write system call by TRAP_BEG/TRAP_END to
- enable signals when writing to a pipe which is full.
+Wed Aug 7 07:46:23 2013 Zachary Scott <e@zzak.io>
-Sun Sep 18 02:10:47 2005 why the lucky stiff <why@ruby-lang.org>
+ * lib/rss/utils.rb: [DOC] RSS::Utils by Steve Klabnik [Bug #8745]
- * lib/yaml/rubytypes.rb: remove comments that are bungling up
- the rdoc and ri output. output symbols as plain scalars.
+Wed Aug 7 07:38:39 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/rubyext.c (syck_emitter_reset): emit headless
- documents always.
+ * 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.
- * ext/syck/emitter.c (syck_scan_scalar): quote scalars with any
- kind of surrounding line space, tabs or spaces alike.
+Tue Aug 6 22:38:15 2013 Zachary Scott <e@zzak.io>
- * ext/syck/token.c: accept tabs as whitespace, not for indentation,
- but strip from plain scalars.
+ * time.c: [DOC] Typo in Time overview by @sparr [Fixes GH-374]
+ https://github.com/ruby/ruby/pull/374
- * test/yaml/test_yaml.rb: remove outdated tests.
+Tue Aug 6 22:35:32 2013 Zachary Scott <e@zzak.io>
-Sat Sep 17 23:25:04 2005 sheepman <sheepman@sheepman.sakura.ne.jp>
+ * lib/rss/1.0.rb: [DOC] Document RSS10 by Steve Klabnik [Bug #8740]
- * lib/mathn.rb (Rational::inspect): should preserve original
- operand. [ruby-core:05806]
+Tue Aug 6 22:14:11 2013 Kouji Takao <kouji.takao@gmail.com>
-Sat Sep 17 23:20:27 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/readline/readline.c (readline_s_delete_text): remove
+ checking "$SAFE == 4".
- * lib/cgi.rb (CGI::Cookie): should handle multiple values for a
- cookie name. [ruby-talk:156140]
+ * ext/readline/readline.c: fix rdoc, remove "Raises SecurityError"
+ and add "Raises NotImplementedError".
-Sat Sep 17 10:42:13 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue Aug 6 22:04:38 2013 Kouji Takao <kouji.takao@gmail.com>
- * ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string
- should call Kernel.eval on caller's safe-level instead of slave's
- safe-level (Of course, the given script should be evaluated on
- slave's safe-level).
+ * ext/readline/readline.c, test/readline/test_readline.rb: fix
+ indent.
-Sat Sep 17 09:45:26 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Aug 6 21:59:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_str_substr): should propagate taintness even for
- empty strings. [ruby-dev:27121]
+ * range.c (range_last): return nil for empty range, or in the case the
+ predecessor is smaller than the begin. [Bug #8739]
- * string.c (rb_str_aref): should infect result if range argument
- is tainted. [ruby-dev:27121]
+Tue Aug 6 21:48:31 2013 Kouji Takao <kouji.takao@gmail.com>
-Sat Sep 17 08:35:39 2005 Kouhei Sutou <kou@cozmixng.org>
+ * ext/readline/readline.c (readline_s_set_point, Init_readline):
+ add Readline.point=(pos). Patched by naruse. [ruby-dev:47535]
+ [Feature #8675]
- * lib/rss/maker/base.rb (RSS::Maker::ItemsBase#normalize): fixed
- strange RSS::Maker::Item#max_size behavior.
- Thanks to Kazuhiko <kazuhiko@fdiary.net>.
+Tue Aug 6 21:14:11 2013 Kouji Takao <kouji.takao@gmail.com>
- * test/rss/test_maker_1.0.rb (RSS::TestMaker10#test_items): ditto.
+ * 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]
-Fri Sep 16 23:09:20 2005 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+Tue Aug 6 17:56:40 2013 Koichi Sasada <ko1@atdot.net>
- * ext/win32ole/win32ole.c (ole_search_event_at): bug fix
- in ext/win32ole/sample/ienavi.rb.
+ * vm_insnhelper.c (vm_push_frame): change type of stack_max to size_t.
- * ext/win32ole/win32ole/tests/testOLEEVENT.rb: ditto.
+Tue Aug 6 17:42:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Sep 16 22:41:18 2005 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]
- * file.c (rb_file_s_extname): empty string for path name ending with a
- period. fixed: [ruby-core:05651]
+Tue Aug 6 17:42:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * file.c (rb_file_join): smarter behavior at edge cases.
- fixed: [ruby-core:05706]
+ * win32/win32.c (rb_w32_conv_from_wchar): converted string to CP_UTF8
+ should have UTF-8 encoding. otherwise no conversion takes place
+ later.
-Fri Sep 16 18:34:01 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Aug 6 17:21:38 2013 Koichi Sasada <ko1@atdot.net>
- * ext/syck/node.c (syck_replace_str): was using return from the
- void function. a patch from MIYAMUKO Katsuyuki
- <miyamuko at mtb.biglobe.ne.jp>. [ruby-dev:27111]
+ * 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.
-Fri Sep 16 14:48:48 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * vm_core.h (CHECK_VM_STACK_OVERFLOW0): add to share the stack overflow
+ checking code.
- * ext/tk/lib/multi-tk.rb: fix typo on MultiTkIp#bg_eval_string
+ * insns.def: catch up this change.
-Fri Sep 16 12:02:12 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm.c, vm_eval.c: ditto.
- * ext/syck/rubyext.c (syck_resolver_transfer): remove C++ style
- comment (//). [ruby-core:05793]
+ * test/ruby/test_exception.rb: add a stack overflow test.
+ This code is reported by nobu.
-Fri Sep 16 00:14:14 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Tue Aug 6 17:02:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/logger/test_logger.rb: unintentionally overwritten changes by
- Usa. reverted.
+ * 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.
-Fri Sep 16 00:06:18 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Tue Aug 6 16:14:32 2013 Shugo Maeda <shugo@ruby-lang.org>
- * lib/webrick/cgi.rb (WEBrick::CGI::Socket#initialize): should set
- $stdout.binmode.
+ * vm_eval.c (eval_string_with_cref): copy cref to limit the scope of
+ refinements in the eval string. [ruby-core:56329] [Bug #8722]
-Thu Sep 15 23:25:21 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * test/ruby/test_refinement.rb: related test.
- * lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.5.
+Tue Aug 6 12:23:12 2013 Tanaka Akira <akr@fsij.org>
- #nnn is a ticket number at http://dev.ctor.org/soap4r
+ * bignum.c (rb_big_realloc): Use VALGRIND_MAKE_MEM_UNDEFINED to
+ declare undefined memory area.
+ (bignew_1): Ditto.
- * SOAP
+ * internal.h (VALGRIND_MAKE_MEM_DEFINED): Moved from gc.c
+ (VALGRIND_MAKE_MEM_UNDEFINED): Ditto.
- * allow to configure an envelope namespace of SOAP request. (#124)
- TemporaryNamespace = 'http://www.w3.org/2003/05/soap-envelope'
- @client.options["soap.envelope.requestnamespace"] =
- TemporaryNamespace
- @client.options["soap.envelope.responsenamespace"] =
- TemporaryNamespace
- @client.do_proc(...)
+Tue Aug 6 01:40:37 2013 Zachary Scott <e@zzak.io>
- * let SOAP request XML indent space configuable. see
- "soap.envelope.no_indent" option. (#130)
+ * process.c: [DOC] Document caveats of command form of Process.spawn
+ with regard to the shell and OS. Patched by Steve Klabnik [Bug #8550]
- * let external CES configuable.
- ex. client["soap.mapping.external_ces"] = 'SJIS'. $KCODE is used
- by default. (#133)
- external CES ::= CES used in Ruby object of client and server
- internal CES ::= CES used in SOAP/OM
+Tue Aug 6 01:28:35 2013 Zachary Scott <e@zzak.io>
- * add iso-8859-1 external CES support. (#106)
+ * lib/rss/0.9.rb: [DOC] Typo in example [Bug #8732]
- * fixed illegal 'qualified' handling of elements. it caused
- ASP.NET inteoperability problem. (#144)
+Tue Aug 6 01:22:37 2013 Zachary Scott <e@zzak.io>
- * added 'soap.envelope.use_numeric_character_reference' (boolean)
- option to let query XML use numeric character reference in XML,
- not plain UTF-8 character. !GoogleSearch server seems to not
- allow plain UTF-8 character since 2005-08-15 update. (#147)
+ * lib/rss/2.0.rb: [DOC] Document RSS::Rss by Steve Klabnik #8740
+ * lib/rss/atom.rb: [DOC] Typo in rdoc by Steve Klabnik
- * SOAP::Header::SimpleHeader (de)serialization throws an exception
- on !SimpleHeader.on_(in|out)bound when header is a String. so we
- could not use a simple single element headerItem. fixed. thanks
- to emil. (#129)
+Mon Aug 5 23:47:59 2013 Tanaka Akira <akr@fsij.org>
- * out parameter of rpc operation did not work. (#132)
+ * bignum.c: Rename local variables.
- * follow HTTP redirect only if using http-access2. (#125) (#145)
+Mon Aug 5 22:23:59 2013 Zachary Scott <e@zzak.io>
- * add a workaround for importing an WSDL whose path begins with
- drive letter. (#115)
+ * 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
- * WSDL
+Mon Aug 5 17:38:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * SOAP Data which is defined as a simpletype was not mapped
- correctly to Ruby obj when using wsdl2ruby.rb generated classdef
- file. (#123)
+ * 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]
- * rpc/literal support. (#118)
+ * 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.
- * re-implemented local element qualify/unqualify control. handles
- elementFormDefault and form in WSDL. (#119)
+Mon Aug 5 11:51:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * Array of an element which has simpleType causes a crash. (#128)
+ * include/ruby/encoding.h: document which user flags are used by
+ ENCODING_MASK for better greppability
- * prarmeterOrder may not contain return part so it can be shorter
- than parts size. Thanks to Hugh. (#139)
+Mon Aug 5 10:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * Samples
+ * object.c (rb_class_inherited_p): allow iclasses to be tested for
+ inheritance. [Bug #8686] [ruby-core:56174]
- * added !BasicAuth client sample. (#117)
+ * test/ruby/test_method.rb: add test
- * added Base64 client/server sample.
+Mon Aug 5 06:13:48 2013 Zachary Scott <e@zzak.io>
- * added Flickr SOAP interface client sample. (#122)
+ * enumerator.c: [DOC] Remove reference to Enumerator::Lazy#cycle
+ Patch by @kachick [Fixes GH-372]
+ https://github.com/ruby/ruby/pull/372
- * added !SalesForce client sample. (#135)
+Mon Aug 5 03:57:16 2013 Zachary Scott <e@zzak.io>
- * updated Thawte CA certificate for !GoogleAdWords sample.
+ * lib/rss/0.9.rb: [DOC] Document RSS09 by Steve Klabnik [Bug #8732]
- * updated a client script with the newer version made by Johan.
- thanks!
+Mon Aug 5 03:35:11 2013 Zachary Scott <e@zzak.io>
- * shortened long file names. (#120)
+ * lib/rexml/attribute.rb: [DOC] Update example for #namespace
+ Patch by Ippei Obayashi [Bug #8685] [ruby-core:56173]
- * fixed typo in authheader sample. (#129)
+Sun Aug 4 21:08:29 2013 Masaki Matsushita <glass.saga@gmail.com>
- * updated deprecated method usage. (#138)
+ * array.c (rb_ary_zip): performance implement by using
+ ALLOCA_N() to allocate tmp buffer.
-Thu Sep 15 23:02:57 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Sun Aug 4 07:14:49 2013 Tanaka Akira <akr@fsij.org>
- * win32/win32.h (rb_w32_stat): added prototype.
+ * README.EXT, README.EXT.ja: Mention rb_integer_pack and
+ rb_integer_unpack.
-Thu Sep 15 22:35:55 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Sun Aug 4 01:54:45 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_signal.rb (test_exit_action): skip the test using
- fork on fork-less platforms.
+ * 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.
-Thu Sep 15 11:39:18 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Aug 4 00:57:58 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/dialog.rb: If a dialog does not show up yet,
- TkDialogObj#name raises an exception. [ruby-talk:156109]
+ * bignum.c (big2str_karatsuba): Don't allocate new temporary buffer
+ if the buffer is enough for current invocation.
-Thu Sep 15 01:39:19 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Sun Aug 4 00:22:34 2013 Tanaka Akira <akr@fsij.org>
- * lib/rinda/tuplespace.rb (Rinda::TemplateEntry::initialize): pull
- up method. Tabs converted to spaces.
+ * 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.
-Thu Sep 15 00:18:24 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Aug 3 22:47:11 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/telnet.rb (Net::Telnet::waitfor): replace sysread with
- readpartial. [ruby-talk:127641]
+ * 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.
-Wed Sep 14 22:40:26 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Aug 3 22:23:31 2013 Tanaka Akira <akr@fsij.org>
- * dir.c (ruby_glob): glob function not using ruby exception system.
+ * 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.
-Wed Sep 14 01:26:03 2005 Minero Aoki <aamine@loveruby.net>
+Sat Aug 3 13:30:04 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/https.rb: backported from trunk, rev 1.3.
- [ruby-dev:25673] (again), [ruby-dev:26617] (again),
- [ruby-dev:27062]
+ * 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.
- * ext/openssl/lib/net/https.rb: removed.
+Sat Aug 3 10:33:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/lib/net/protocols.rb: removed.
+ * parse.y (parser_set_integer_literal): use rb_rational_raw1() for
+ integral rational because no reduction is needed with 1.
- * lib/net/http.rb: #use_ssl?, #use_ssl are moved from net/https.
+Sat Aug 3 09:46:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Sep 13 22:09:40 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ext/etc/etc.c (setup_passwd, setup_group): set proper encodings to
+ string members.
- * lib/logger.rb (Logger): added formatter accessor to logger for
- dictating the way in which the logger should format the messages it
- displays. Thanks to Nicholas Seckar (cf. [ruby-talk:153391]) and
- Daniel Berger.
+Sat Aug 3 09:30:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/logger.rb (Logger): added VERSION constant.
+ * struct.c (rb_struct_define_under): new function to define Struct
+ under the given namespace, not under Struct. [Feature #8264]
- * lib/logger.rb: removed document for LogDevice. It is an
- implementation detail and is not a public interface.
+ * ext/etc/etc.c: use rb_struct_define_under.
- * test/logger/test_logger.rb: added tests.
+Sat Aug 3 06:55:29 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Sep 13 21:47:17 2005 Nobuyoshi Nakada <nobu@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]
- * eval.c (BEGIN_CALLARGS): pop halfly pushed status.
- fixed: [ruby-dev:26881]
+Sat Aug 3 04:23:48 2013 Eric Hodel <drbrain@segment7.net>
-Tue Sep 13 16:26:45 2005 Minero Aoki <aamine@loveruby.net>
+ * doc/syntax/refinements.rdoc: Remove mention of instance_eval and
+ module_eval from scope section per:
+ http://twitter.com/shugomaeda/status/363219951336693761
- * lib/net/http.rb: backported from trunk, rev 1.128.
- [ruby-dev:25673] [ruby-dev:26617]
+Sat Aug 3 02:22:05 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/protocol.rb: backported from trunk, rev 1.78.
+ * bignum.c (big2str_orig): Refactored.
- * lib/net/protocol.rb: new method #old_open to support net/smtp
- and net/pop.
+Sat Aug 3 01:20:19 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/smtp.rb: use #old_open.
+ * bignum.c (bigadd_core): Removed.
+ (bigadd): Use bary_add instead of bigadd_core.
- * lib/net/pop.rb: ditto.
+Sat Aug 3 00:52:43 2013 Tanaka Akira <akr@fsij.org>
-Tue Sep 13 12:33:05 2005 why the lucky stiff <why@ruby-lang.org>
+ * bignum.c (rb_big2str1): Simplify power_level calculation.
- * lib/yaml.rb: reworking YAML::Stream to use the new
- emitter.
+Sat Aug 3 00:34:20 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/yaml/stream.rb: ditto.
+ * array.c (rb_ary_zip): use rb_ary_new2() to create buffer
+ if rb_block_arity() > 1.
- * lib/yaml/rubytypes.rb: added Object#yaml_new.
+Sat Aug 3 00:12:00 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/yaml/tag.rb: the tag_subclasses? method now
- shows up in the class. allow taguri to be set using an accessor.
- continue support of Object#to_yaml_type.
+ * NEWS: Add the description that IO#seek supports SEEK_DATA
+ and SEEK_HOLE.
- * ext/syck/rubyext.c: new emitter code. yaml_new and yaml_initialize
- get called, should they be present. consolidated all the diaspora of internal
- node types into the family below YAML::Syck::Node -- Map,
- Seq, Scalar -- all of whom are SyckNode structs pointing to
- Ruby data. moved Object#yaml_new into the node_import and made it the
- default behavior. the target_class is always called wih yaml_new, prepended
- a parameter, which is the klass. loaded nodes through GenericResolver show their style.
- new Resolver#tagurize converts type ids to taguris.
+Fri Aug 2 23:57:57 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/syck/implicit.re: were 'y' and 'n' seriously omitted??
+ * 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]
- * ext/syck/emitter.c: renovated emitter, walks the tree in advance.
- consolidated redundant block_styles struct into
- the scalar_style struct. (this means loaded nodes can now
- be sent back to emitter and preserve at least its very basic
- formatting.)
+ * test/ruby/test_syntax.rb (TestSyntax#test_value_of_def): test for
+ above changes.
- * ext/syck/gram.c: headless documents of any kind allowed.
+Fri Aug 2 23:54:11 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/syck/node.c: new syck_replace_str methods and syck_empty_*
- methods for rewriting node contents, while keeping the ID
- and other setup info. added syck_seq_assign.
+ * array.c (rb_ary_zip): performance improvement by avoiding
+ array creation if rb_block_arity() > 1.
- * ext/syck/syck.h: reflect block_styles and new node functions.
+Fri Aug 2 23:50:53 2013 Tanaka Akira <akr@fsij.org>
-Mon Sep 12 20:53:06 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * bignum.c (power_cache_get_power): Apply bigtrunc to the result of
+ bigsq.
+ (big2str_karatsuba): Fix number of leading zero characters.
- * test/openssl/test_pkcs7.rb (test_enveloped): skip this test
- to avoid a bug of PKCS7_enctypt() (only if ext/openssl is
- compiled with OpenSSL-0.9.7d or earlier versions).
- http://www.mail-archive.com/openssl-dev@openssl.org/msg17376.html
+Fri Aug 2 23:48:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Sep 12 14:03:33 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * parse.y (parser_yylex): calculate denominator directly as powers of
+ ten, not parsing string.
- * test/dbm/test_dbm.rb: remove locking test, which may not be
- supported on some platforms. [ruby-dev:27030]
+ * parse.y (parser_number_literal_suffix): return bit set of found
+ suffixes.
-Mon Sep 12 10:45:58 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * parse.y (parser_set_number_literal, parser_set_integer_literal):
+ split from parser_number_literal_suffix to set yylval.
- * ext/dl/dl.c (rb_io_to_ptr): merged a patch for DragonFly BSD
- from Takahiro Kambe <taca at back-street.net>. [ruby-dev:27023]
+ * parse.y (parser_yylex): parse rational number literal with decimal
+ point precisely.
-Sun Sep 11 22:05:51 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * parse.y (simple_numeric): integrate numeric literals and simplify
+ numeric rules.
- * bin/erb (ERB::Main#run): set ERB#filename so that it is used
- when reporting syntax/runtime errors. Tabs converted to spaces.
+ * ext/ripper/eventids2.c (ripper_init_eventids2): ripper support for
+ new literals, tRATIONAL and tIMAGINARY.
-Sat Sep 10 10:17:03 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri Aug 2 18:33:28 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_engine.c (ossl_engine_s_by_id):
- OpenSSL::Engine.by_id calls given block before calling
- ENGINE_init (block parameter is the return value of this method
- itself). this functionality is useful to load dynamic shared
- engines. the following code is a sample of loading a key using
- OpenSC PKCS #11 module.
+ * bignum.c (big2str_karatsuba): Reduce power_level more than one at
+ recursion, if possible.
+ (rb_big2str1): Follow the above change.
- require "openssl"
- pkcs11 = OpenSSL::Engine.by_id("dynamic"){|e|
- e.ctrl_cmd("SO_PATH", "/usr/lib/opensc/engine_pkcs11.so")
- e.ctrl_cmd("LIST_ADD", "1")
- e.ctrl_cmd("LOAD")
- }
- pkcs11.ctrl_cmd("PIN", "secret")
- key = pkcs11.load_private_key
+Fri Aug 2 12:25:15 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_engine.c (ossl_engine_ctrl_cmd): new method
- OpenSSL::Engine#ctrl_cmd. it wraps ENGINE_ctrl_cmd_string.
+ * 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.
- * ext/openssl/ossl_engine.c (ossl_engine_get_cmds): new method
- OpenSSL::Engine#cmds. it returms engine command definitions.
+Fri Aug 2 10:39:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Sat Sep 10 10:09:47 2005 GOTOU Yuuzou <gotoyuzo@notwork.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]
- * ext/openssl/ossl_asn1.c (asn1str_to_str): new function.
+ * bootstraptest/test_literal_suffix.rb (assert_equal): add test
- * ext/openssl/ossl_pkcs7.c: new class OpenSSL::PKCS7::RecipientInfo.
- this class wraps PKCS7_RECIP_INFO struct.
+Fri Aug 2 09:14:47 2013 Eric Hodel <drbrain@segment7.net>
- * ext/openssl/ossl_pkcs7.c: OpenSSL::PKCS7::Signer is renamed to
- OpenSSL::PKCS7::SignerInfo. ("Signer" remains as an alias of
- SignerInfo.)
+ * doc/syntax/refinements.rdoc: Improve description of where you may
+ activate refinements.
- * test/openssl/test_pkcs7.rb: new file.
+Fri Aug 2 07:45:55 2013 Tanaka Akira <akr@fsij.org>
-Sat Sep 10 10:05:51 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * bignum.c (big2str_orig): Remove len argument.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Follow above change.
- * ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): assume that
- the argument is a DER string if Base64 decoding failed.
+Thu Aug 2 02:32:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * ext/openssl/ossl_ns_pki.c (ossl_spki_to_der): new method.
+ * NEWS: Add the description of number literal suffixes.
- * test/openssl/test_ns_spki.rb: add new file.
+Thu Aug 2 00:02:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Sat Sep 10 09:56:24 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * bootstraptest/test_literal_suffix.rb: add two test cases to
+ examine that "1if true" and "1rescue nil" are recognized as 1.
- * ext/openssl/lib/digest.rb: added SHA224, SHA256, SHA384 and SHA512.
- these features are enabled if this library is compiled with
- OpenSSL 0.9.8 or later.
+Thu Aug 1 23:45:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * test/openssl/test_digest.rb: add test for new digests.
+ * rational.c (rb_flt_rationalize_with_prec): new public C function
+ to rationalize a Float instance with a precision.
-Sat Sep 10 09:51:30 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * rational.c (rb_flt_rationalize): new public C function to
+ rationalize a Float instance. A precision is calculated from
+ the given float number.
- * ext/openssl/ossl.c (ossl_raise): should use ERR_peek_last_error
- to get last error on the current thread. And should report
- errors on the stack while OpenSSL.debug is true.
+ * include/ruby/intern.h: Add rb_flt_rationalize_with_prec and
+ rb_flt_rationalize.
- * ext/openssl/ossl.c (ossl_get_errors): new method for debugging
- this library.
+ * parse.y: implement number literal suffixes, 'r' and 'i'.
+ [ruby-core:55096] [Feature #8430]
- * ext/openssl/ossl_ssl.c (ossl_sslctx_set_ciphers): fix error message.
+ * bootstraptest/test_literal_suffix.rb: add tests for parser to scan
+ number literals with the above tsuffixes.
- * ext/openssl/ossl_x509req.c (ossl_x509req_set_attributes): get rid
- of unused variable.
+Thu Aug 1 23:55:08 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_x509store.c (ossl_x509store_initialize): should
- set @time to avoid warning.
+ * bignum.c (rb_big2str1): Remove a local variable.
- * ext/openssl/ossl_x509store.c (ossl_x509store_set_default_paths,
- X509_STORE_add_cert, X509_STORE_add_crl): should raise error if
- wrapped functions failed.
+Thu Aug 1 23:33:01 2013 Tanaka Akira <akr@fsij.org>
- * test/openssl/test_x509store.rb: add test for errors.
+ * bignum.c (rb_cstr_to_inum): Use power_cache_get_power.
-Fri Sep 9 22:13:19 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Aug 1 21:02:48 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_call0): prohibit calling tainted method (>2) when
- $SAFE == 0.
+ * bignum.c (rb_big2str1): Raise an error for too big number.
-Fri Sep 9 16:45:25 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Aug 1 20:46:29 2013 Tanaka Akira <akr@fsij.org>
- * string.c (rb_str_times): make empty strings to keep taintness,
- and a little improvement. [ruby-dev:26900]
+ * bignum.c (power_cache_get_power): Hide cached Bignum objects.
- * ext/iconv/iconv.c (iconv_try), ext/iconv/extconf.rb: get rid of meta
- characters in command line option. fixed: [ruby-talk:155369]
+Thu Aug 1 19:15:05 2013 Tanaka Akira <akr@fsij.org>
-Thu Sep 8 14:58:11 2005 Yukihiro Matsumoto <matz@ruby-lang.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.
- * merged a patch from Takahiro Kambe <taca at back-street.net> to
- support DragonFly BSD. [ruby-dev:26984]
+Thu Aug 1 12:37:58 2013 Tanaka Akira <akr@fsij.org>
-Wed Sep 7 12:55:08 2005 Tanaka Akira <akr@m17n.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.
- * lib/open-uri.rb: abolish mod === tempfile to avoid a problem
- [ruby-dev:26967].
+Thu Aug 1 07:36:27 2013 Tanaka Akira <akr@fsij.org>
-Wed Sep 7 10:45:15 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (big2str_orig): Use temporary buffer when trim mode.
- * eval.c (rb_thread_switch): convert all exceptions to
- SystemExit. fixed: [ruby-core:05724]
+Thu Aug 1 06:28:48 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_thread_terminated): show backtrace before propagate
- exceptions to main thread.
+ * bignum.c (big2str_orig): Simplified because RBIGNUM_LEN(x) <= 2 now.
+ (big2str_struct): Two fields added: hbase2, hbase2_numdigits.
+ (rb_big2str1): Initialize above fields.
-Wed Sep 7 08:35:04 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Aug 1 04:06:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * Makefile.in, configure.in (MINIOBJS): miniruby on HP-UX can not load
- extension libraries.
+ * 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]
- * bignum.c (bignew_1, bigadd): K&R style argument actually can't be
- defined as char.
+ * test/test_rdoc_markup_pre_process.rb (TestRDocMarkupPreProcess#setup):
+ fix input_file_name, as the test script is not pre-processed.
- * missing/vsnprintf.c: ANSI compiler supports const keyword.
+Thu Aug 1 01:45:18 2013 Tanaka Akira <akr@fsij.org>
- * ext/digest/sha2/extconf.rb: reject platforms which has inttypes.h
- but no 64bit integer.
+ * bignum.c (big2str_karatsuba): Fix a condition of power_level.
- * lib/mkmf.rb (what_type?): guesstimate type.
+Thu Aug 1 01:09:02 2013 Tanaka Akira <akr@fsij.org>
- * ext/etc/etc.c (setup_passwd), ext/etc/extconf.rb: pw_age might be
- char*. fixed: [ruby-core:05470]
+ * 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 Sep 7 08:32:47 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jul 31 23:59:28 2013 Tanaka Akira <akr@fsij.org>
- * object.c (rb_mod_cvar_get, rb_mod_cvar_set): document fix from
- sheepman <sheepman@sheepman.sakura.ne.jp>; a bug in visibility
- description. [ruby-dev:26965]
+ * bignum.c (big2str_find_n1): Change the return type to size_t.
+ (big2str_orig): Ditto.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Follow the above changes.
- * sprintf.c (rb_f_sprintf): warn "too many argument" on verbose
- mode (-v/-w); backported from 1.9. [ruby-dev:26963]
+Wed Jul 31 23:19:06 2013 Tanaka Akira <akr@fsij.org>
-Mon Sep 5 17:03:07 2005 Yukihiro Matsumoto <matz@ruby-lang.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.
- * lib/ostruct.rb: a patch from Florian Gross <florgro at gmail.com>
- merged to allow recursive inspect (and to_s) for OpenStruct.
- [ruby-core:05532]
+Wed Jul 31 22:59:47 2013 Kouhei Sutou <kou@cozmixng.org>
-Mon Sep 5 07:01:12 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * test/rexml/parse/test_notation_declaration.rb: Change class
+ name to follow file name change.
- * ext/openssl/openssl/lib/openssl/buffering.rb (Buffering#do_write):
- should clear data from the buffer which already been output.
+Wed Jul 31 22:57:50 2013 Kouhei Sutou <kou@cozmixng.org>
-Fri Sep 2 23:51:54 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rexml/test_notationdecl_parsetest.rb: Rename to ...
+ * test/rexml/parse/test_notation_declaration.rb: ... this.
- * lib: do not use __send__ to access private methods. [ruby-dev:26935]
+Wed Jul 31 22:54:39 2013 Kouhei Sutou <kou@cozmixng.org>
-Fri Sep 2 03:29:00 2005 Keiju Ishitsuka <keiju@ruby-lang.org>
+ * test/rexml/test_notationdecl_mixin.rb: Remove duplicated tests.
- * lib/irb/init.rb: make IRB -I option that is same befavior for ruby.
- [ruby-dev:26872], [ruby-dev: 26920]
+Wed Jul 31 22:52:55 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/irb/locale.rb: support to print help message when OS locale is
- ja_JP.utf-8. [ruby-dev:26872]
+ * test/rexml/test_notationdecl_parsetest.rb: Fix typos in expected
+ value.
+ pubilc ->
+ public
+ ^^
-Thu Sep 1 17:11:25 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jul 31 22:50:51 2013 Kouhei Sutou <kou@cozmixng.org>
- * eval.c (rb_call0): wrong condition for $SAFE restoration.
+ * test/rexml/test_notationdecl_parsetest.rb: Add tests that focus
+ system literal in external ID system notation declaration.
-Thu Sep 1 14:12:45 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Wed Jul 31 22:36:21 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/multi-tk.rb: On Tcl8.5, MultiTkIp#invoke_hidden doesn't
- work (gives wrong order of arguments).
+ * 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.
- * ext/tk/lib/multi-tk.rb: add MultiTkIp#invoke_hidden_on_namespace
- to support '-namespace' option of 'interp invokehidden' command
- on Tcl8.5.
+Wed Jul 31 22:04:36 2013 Kouhei Sutou <kou@cozmixng.org>
-Wed Aug 31 14:43:15 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/rexml/test_notationdecl_parsetest.rb: Fix a typo.
+ Extern ID ->
+ ExternalID
+ ^^
- * win32/Makefile.sub (OPTFLAGS): default global optimization to
- disabled for all VC++ versions. fixed: [ruby-dev:26897]
+Wed Jul 31 22:01:36 2013 Kouhei Sutou <kou@cozmixng.org>
-Wed Aug 31 11:35:43 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/rexml/test_notationdecl_parsetest.rb: Add tests that focus
+ public ID in external ID notation declaration.
- * test/gdbm/test_gdbm.rb (teardown): should remove GDBM temporary
- file.
+Wed Jul 31 22:01:24 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Wed Aug 31 10:30:56 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * parse.y: fix build error with bison-3.0.
- * process.c (proc_detach, proc_setmaxgroups): missing argument type
- declaration. (I recommend ANSI-style function)
+Wed Jul 31 21:58:53 2013 Kouhei Sutou <kou@cozmixng.org>
-Tue Aug 30 23:20:19 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/rexml/test_notationdecl_parsetest.rb: Split test patterns.
- * eval.c (rb_rescue2): initialization miss. fixed: [ruby-dev:26917]
+Wed Jul 31 21:42:33 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/mkmf.rb (xsystem, xpopen): no longer expand by Config.
+ * test/rexml/test_notationdecl_parsetest.rb: Group tests.
- * lib/mkmf.rb (link_command, cc_command, cpp_command): expand
- variables at once, and quote hdrdir. fixed: [ruby-core:05680]
+Wed Jul 31 21:37:51 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/mkmf.rb (libpathflag): quote paths.
+ * test/rexml/test_notationdecl_mixin.rb (TestNotationDecl#test_name):
+ Move to ...
+ * test/rexml/test_notationdecl_parsetest.rb
+ (TestNotationDecl#test_name): ... here.
-Tue Aug 30 19:34:27 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Wed Jul 31 21:37:47 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/digest/md5/md5ossl.h, ext/digest/rmd160/rmd160ossl.h,
- ext/digest/sha1/sha1ossl.h: include <stddef.h> to avoid
- error in compilation with OpenSSL-0.9.8. [ruby-list:41068]
+Wed Jul 31 21:31:49 2013 Kouhei Sutou <kou@cozmixng.org>
-Mon Aug 29 19:54:21 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * test/rexml/test_notationdecl_parsetest.rb: Remove setup because it
+ doesn't share anything with other tests.
- * lib/rdoc/usage.rb: improper exceptions. [ruby-dev:26870]
+Wed Jul 31 21:24:55 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/rdoc/usage.rb: support the case when non-ruby code exists before
- shebang. (this is needed when ri.bat is executed on windows)
+ * 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.
-Mon Aug 29 17:48:17 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jul 31 21:20:08 2013 Kouhei Sutou <kou@cozmixng.org>
- * eval.c (method_arity): should return proper arity value.
- [ruby-dev:26390]
+ * test/rexml/test_notationdecl_parsetest.rb: remove a needless shebang.
-Mon Aug 29 01:19:57 2005 Tanaka Akira <akr@m17n.org>
+Wed Jul 31 20:11:01 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/time.rb (Time.parse): extract fractional seconds using
- Date._parse. [ruby-talk:153859]
+ * string.c (rb_str_rindex): fix bug introduced in r42269.
+ "".rindex("") should return 0.
+ (str_rindex): ditto.
-Sat Aug 27 20:20:01 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Jul 31 19:55:33 2013 Tanaka Akira <akr@fsij.org>
- * ext/curses/curses.c ({curses,window}_clrtoeol): added. suggested
- by Reyn Vlietstra.
+ * 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.
- * ext/curses/curses.c: chtype in curses is not `char', rahter `long'.
- [ruby-Bugs:2298]
+Wed Jul 31 18:32:25 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/curses/view.rb: String =~ String is deprecated.
+ * lib/uri/common.rb (URI.decode_www_form_component): Use String#b.
-Wed Aug 24 10:53:28 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Jul 31 18:24:02 2013 Shugo Maeda <shugo@ruby-lang.org>
- * test/logger/test_logger.rb (test_shifting_size): should close log
- device before unlink, since some platform cannot unlink opened
- file.
+ * eval.c (rb_mod_refine, mod_using, top_using): don't show
+ warnings because Refinements are no longer experimental.
+ [ruby-core:55993] [Feature #8632]
-Sun Aug 21 00:13:27 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * test/ruby/test_refinement.rb: related test.
- * lib/wsdl/xmlSchema/importer.rb (WSDL::XMLSchema::Importer#fetch): add
- a workaround for importing an WSDL whose path begins with drive
- letter. [ruby-dev:26242]
+ * NEWS: fixes for the above change.
-Sat Aug 20 22:37:13 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Wed Jul 31 17:55:55 2013 Shota Fukumori <her@sorah.jp>
- * lib/logger.rb (write, shift_log?, shift_log): file shifting race
- condition bug fixed. [ruby-dev:26764]
+ * lib/uri/common.rb (URI.decode_www_form_component):
+ Don't raise error when str includes multibyte characters.
- * test/logger/test_logger.rb: tests.
+Wed Jul 31 17:45:39 2013 Masaki Matsushita <glass.saga@gmail.com>
-Fri Aug 19 18:13:39 2005 Tanaka Akira <akr@m17n.org>
+ * string.c (rb_str_rindex): performance improvement by using
+ memrchr(3).
- * lib/time.rb (Time.apply_offset): fix a problem with last day of
- month. reported by Lucas Nussbaum. [ruby-talk:152866]
+Wed Jul 31 16:43:30 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Aug 18 12:46:28 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * string.c (rb_str_rindex): refactoring and avoid to call str_nth() if
+ pos == 0.
- * bcc32/Makefile.sub (COMMON_HEADERS): reverted 1.42.2.24.
- I misunderstood, bccwin32 on ruby_1_8 uses winsock2 originally.
- [ruby-dev:26806]
+Wed Jul 31 14:41:36 2013 Akinori MUSHA <knu@iDaemons.org>
- * win32/win32.h: include winsock2.h instead of winsock.h. (bcc32)
+ * lib/set.rb: [DOC] Add a couple of notes on Hash as storage.
+ ref. [Feature #6589]
-Wed Aug 17 23:58:05 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jul 31 14:38:52 2013 Akinori MUSHA <knu@iDaemons.org>
- * object.c (rb_to_integer): argument constified.
+ * lib/set.rb: [DOC] Fix example result. Hash is now ordered.
- * eval.c (terminate_process): take String message.
+Wed Jul 31 14:38:10 2013 Akinori MUSHA <knu@iDaemons.org>
- * eval.c (rb_thread_switch): propagate the exception caused thread
- termination directly. fixed: [ruby-core:05552]
+ * lib/set.rb: [DOC] Use the term "sorted" instead of "ordered"
+ when mentioning SortSet.
-Wed Aug 17 00:05:46 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jul 31 12:18:47 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_add_method): preserve safe level in the environment
- where a method is defined .
+ * bignum.c (big2str_struct): New structure.
+ (big2str_orig): Use big2str_struct.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Ditto.
- * eval.c (rb_call0): restore preserved safe level in the method
- execution.
+Wed Jul 31 12:02:16 2013 Zachary Scott <e@zzak.io>
-Mon Aug 15 00:38:51 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems.rb: [DOC] typo in url patch by @Red54 [Fixes #369]
+ https://github.com/ruby/ruby/pull/369
- * eval.c (rb_rescue2): reduce PUSH_TAG() as well as NODE_RESCUE.
- [ruby-dev:26800]
+Wed Jul 31 07:09:07 2013 Eric Hodel <drbrain@segment7.net>
- * range.c (range_check, range_init): reduce useless exceptions.
+ * lib/rubygems: Import RubyGems from master as of commit 523551c
+ * test/rubygems: ditto.
-Sat Aug 13 18:51:26 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 30 22:21:54 2013 Masaki Matsushita <glass.saga@gmail.com>
- * eval.c (rb_block_pass): distinguish current block from others.
- fixed: [ruby-dev:26274]
+ * test/ruby/test_hash.rb: add a test for enumeration order of Hash.
- * ext/stringio/stringio.c (strio_set_string): disallow nil.
- http://www.rubyist.net/~nobu/t/20050811.html#c05
+Tue Jul 30 18:52:27 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Aug 11 23:29:03 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * ext/stringio/stringio.c: keep holding string after closed.
+Tue Jul 30 17:16:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Aug 11 13:01:48 2005 Kouhei Sutou <kou@cozmixng.org>
+ * sprintf.c (ruby__sfvextra): add QUOTE flag to escape unprintable
+ characters.
- * lib/rss: fixed sort bug. [ruby-list:41018]
+Tue Jul 30 11:00:52 2013 Zachary Scott <e@zzak.io>
- * lib/rss/1.0.rb (RSS::RDF::Channel#setup_maker_attributes):
- removed self.
+ * ext/curses/extconf.rb: [DOC] nodoc to reduce Object pollution
- * lib/rss/maker/base.rb (RSS::Maker::ItemsBase#<=>): use #date
- instead of @date.
- (RSS::Maker::Base::self.def_array_element): added #size.
+Tue Jul 30 08:19:42 2013 Tanaka Akira <akr@fsij.org>
- * lib/rss/maker/1.0.rb
- (RSS::Maker::RSS10::Channel#to_rss,
- RSS::Maker::RSS10::Items::Item#to_rss): cleared dc_dates set
- upped by using #date.
+ * sizes.c (Init_sizes): Define sizes only if the type actually exists.
- * lib/rss/maker/dublincore.rb
- (RSS::Maker::ChannelBase, RSS::Maker::ItemsBase::ItemBase):
- fixed opposite alias.
+Mon Jul 29 22:55:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/rss/test_setup_maker_1.0.rb
- (RSS::TestSetupMaker10::test_setup_maker_items_sort): added some
- tests for RSS::Maker::ItemsBase#do_sort.
+ * sizes.c (Init_sizes): define RbConfig::SIZEOF. [Feature #8568]
-Wed Aug 10 10:29:40 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Jul 29 22:25:20 2013 Zachary Scott <e@zzak.io>
- * ext/tk/lib/tk.rb: fix bug on handling __ruby2val_optkeys().
+ * 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
- * ext/tk/lib/tk/itemconfig.rb: fix bug on handling
- __item_ruby2val_optkeys().
+Mon Jul 29 22:16:11 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/canvas.rb: didn't check __item_ruby2val_optkeys().
+ * bignum.c (LOG2_KARATSUBA_BIG2STR_DIGITS): Renamed from
+ LOG2_KARATSUBA_DIGITS.
+ (KARATSUBA_BIG2STR_DIGITS): Renamed from KARATSUBA_DIGITS.
- * ext/tk/lib/tkextlib/blt/component.rb: ditto.
+Mon Jul 29 22:04:45 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Aug 9 15:12:04 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * hash.c (rb_hash_compare_by_id): add function prototype.
- * ext/tcltklib/tcltklib.c: remove dangerous 'rb_jump_tag's.
+Mon Jul 29 21:53:41 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/tk/lib/tk.rb: add __val2ruby_optkeys and __ruby2val_optkeys to
- help to convert option values between ruby and tcl.
+ * hash.c (rb_hash_compare_by_id): don't call rb_hash_rehash()
+ if self.compare_by_identity? == true.
- * ext/tk/lib/tk/itemconfig.rb: add __item_val2ruby_optkeys and
- __item_ruby2val_optkeys to help to convert option values between
- ruby and tcl.
+Mon Jul 29 21:29:48 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/tk/lib/tk/radiobutton.rb: use __ruby2val_optkeys for 'variable'
- option (for the reason of backward compatibility).
+ * 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.
- * ext/tk/lib/tk/composite.rb: clarify the arguments of super().
+ * test/ruby/test_hash.rb: add a test for above.
- * ext/tk/lib/tk/spinbox.rb: ditto.
+Mon Jul 29 21:15:30 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/tk/lib/tk/text.rb: ditto.
+ * 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().
- * ext/tk/lib/tk/validation.rb: ditto.
+Mon Jul 29 21:06:42 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/tk/lib/tkextlib/*: support to treat tkvariable-type
- configure options.
+ * 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.
-Tue Aug 9 20:30:19 2005 Tadashi Saito <shiba@mail2.accsnet.ne.jp>
+ * enumerator.c (generator_init): Ditto.
- * bignum.c (rb_big_coerce): allow bignum x bignum coercing.
- [ruby-dev:26778]
+Mon Jul 29 20:14:24 2013 Masaki Matsushita <glass.saga@gmail.com>
-Mon Aug 8 20:43:02 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * hash.c (rb_hash_assoc): revert r42224. table->type->compare is
+ called only if hashes are matched.
- * test/ruby/test_method.rb: added. [ruby-dev:26761]
+ * test/ruby/test_hash.rb: add a test to check using #== to compare.
-Sun Aug 7 23:50:14 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Mon Jul 29 17:00:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_super.rb: added from HEAD. [ruby-dev:26743]
+ * parse.y (yycompile): store file name as String to keep the encoding.
-Sun Aug 7 01:31:15 2005 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * parse.y (rb_parser_compile_string_path, rb_parser_compile_file_path):
+ new functions to pass file name as a String.
- * ext/win32ole/win32ole.c (WIN32OLE_EVENT#on_event): should set
- only one event handler.
+ * parse.y (gettable_gen): return a copy of the original file name, not
+ a copy in filesystem encoding.
- * ext/win32ole/tests/testOLEEVENT.rb: ditto.
+ * vm_eval.c (eval_string_with_cref): use Qundef instead of "(eval)".
- * ext/win32ole/tests/testOLEPARAM.rb: remove re-defined
- test_ole_type_detail method.
+Mon Jul 29 16:53:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Aug 6 12:35:24 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * hash.c (rb_hash_initialize_copy): copy st_table type even if empty.
+ [ruby-core:56256] [Bug #8703]
- * ext/tk/lib/{tk.rb,tk/itemconfig.rb}: configure creates
- TkVariable if key name is 'variable' or 'textvariable'
- by default. [ruby-dev:26749]
+Mon Jul 29 16:34:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/{label,radiobutton}.rb: removed its own
- {variable,textvariable} function.
+ * hash.c (rb_hash_initialize_copy): clear old table before copy new
+ table.
- * ext/tk/lib/tk/variable.rb: retains backward conpatibility.
+Mon Jul 29 16:34:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Aug 5 12:50:32 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * hash.c (rb_hash_assoc): aggregate object can be initialized only
+ with link time constants.
- * ext/tcltklib/tcltklib.c: fixed memory leak when tk_funcall raised
- exception. (copies argv into heap in tk_funcall instead of
- caller)
+Mon Jul 29 14:54:44 2013 Masaki Matsushita <glass.saga@gmail.com>
-Fri Aug 5 12:42:57 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * hash.c (rb_hash_assoc): performance improvement by replacing
+ compare function in RHASH(hash)->ntbl->type temporarily.
- * lib/mkmf.rb (create_makefile): need to convert path separetor
- before invoking install command.
+Mon Jul 29 14:52:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Aug 5 00:27:04 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * lib/mkmf.rb (xsystem): expand environment variable in all macros not
+ expanded with RbConfig. [Bug #8702]
- * ext/tcltklib/tcltklib.c: refactoring - extract ruby string <->
- tcl object conversion as get_str_from_obj and get_obj_from_str.
+ * test/mkmf/test_framework.rb (create_framework): replace all $@ not
+ only once.
-Fri Aug 5 00:19:33 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jul 29 06:54:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * extmk.rb (extmake): needs to be wrapped in an Array.
+ * win32/win32.c (rb_w32_pipe): use enum for compile time constants,
+ instead of const int for debugging.
-Thu Aug 4 18:38:36 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Jul 29 00:11:49 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/tcltklib.c: cannot compile for Tcl7.6/Tk4.2.
+ * bignum.c (bigdivrem): Specialized implementation added for
+ nx == 2 && ny == 2
- * ext/tcltklib/tcltklib.c: add nativethread consistency check.
+Sun Jul 28 20:28:41 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/tcltklib/stubs.c: ditto.
+ * io.c (io_getpartial): use rb_str_locktmp_ensure().
+ [ruby-core:56121] [Bug #8669]
- * ext/tk/lib/tk.rb: forgot to define TclTkIp.encoding and encoding=
- when Tcl is 7.6 or 8.0.
+ * io.c (rb_io_sysread): ditto.
- * ext/tk/lib/tk/wm.rb: support to make some methods as options of
- root or toplevel widget. [ruby-talk:150336]
+ * test/ruby/test_io.rb: add tests for above.
- * ext/tk/lib/tk/root.rb: ditto.
+Sun Jul 28 20:10:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/toplevel.rb: ditto.
+ * ext/extmk.rb (extmake): should make static libraries for extensions
+ to be statically linked. [Bug #7948]
- * ext/tk/lib/tkextlib/SUPPRT_STATUS: update RELEASE_DATE
+Sun Jul 28 17:38:32 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Aug 4 08:03:39 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c: add internal API rb_str_locktmp_ensure().
- * ext/extmk.rb (extmake): should not modify $mflags for each
- extentions.
+ * io.c (io_fread): use rb_str_locktmp_ensure().
+ [ruby-core:56121] [Bug #8669]
-Thu Aug 4 00:25:48 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_io.rb: add a test for above.
- * common.mk, Makefile.in, {bcc32,win32,wince}/Makefile.sub: integrated
- macro definitions.
+Sun Jul 28 13:04:39 2013 Masaki Matsushita <glass.saga@gmail.com>
- * bcc32/Makefile.sub: LIBRUBY_SO should use DLDOBJS, not EXTOBJS.
+ * 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]
- * {win32,wince}/Makefile.sub: separate config.h for compiler versions.
+ * test/ruby/test_io.rb: Add tests for above.
-Wed Aug 3 21:59:16 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Jul 28 12:41:39 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/variable.rb: TkVariable#trace didn't work on
- TkVariable retrived from TkVariable.new_hash.ref. [ruby-dev:26721]
+ * bignum.c (absint_numwords_generic): The char_bit variable changed
+ to static constant.
-Wed Aug 3 08:22:13 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Jul 28 12:03:23 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/socket.c (ruby_connect): revert [ruby-talk:111654]
- changes at 2004-09-07. [ruby-dev:26656]
+ * bignum.c: Constify bary_* functions.
-Tue Aug 2 10:20:54 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Sun Jul 28 11:12:07 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/tcltklib.c: use Tcl_[GS]etVar2Ex instead of
- Tcl_Obj[GS]etVar2. (avoid Tcl_NewStringObj on supported platforms)
+ * 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]
- * ext/tcltklib/tcltklib.c: use ip_{get,set,unset}_variable2_core from
- ip_{get,set,unset}_variable.
+Sun Jul 28 10:54:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/tcltklib.c: replaced Tcl_Panic with rb_bug.
+ * win32/win32.c (rb_w32_pipe): fix pipe name formatting. as "%x" may
+ not contain '0' at all, fill at fixed position instead.
-Tue Aug 2 01:41:28 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sun Jul 28 00:35:14 2013 Tanaka Akira <akr@fsij.org>
- * lib/ping.rb (Ping.pingecho): should rescue StandardError.
- [ruby-dev:26677]
+ * bignum.c (rb_big_size): Return the bignum "bytewise" size.
+ [ruby-core:55578] [Feature #8553]
+ This is accepted by matz on DevelopersMeeting20130727Japan.
-Mon Aug 1 19:09:41 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Sun Jul 28 00:07:48 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/tcltklib.c: refactoring - replaced rb_ivar_defined &
- rb_ivar_get with single rb_attr_get call.
+ * include/ruby/intern.h (rb_integer_pack): Declaration moved from
+ internal.h.
+ (rb_integer_unpack): Ditto.
+ [ruby-core:42813] [Feature #6065]
-Mon Aug 1 18:45:07 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Fri Jul 26 23:18:13 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/tcltklib/tcltklib.c (Tcl_GetStringResult): refactoring - define
- alternative macro on Tcl7.x or earlier.
+ * NEWS: Add a new feature that REXML::Parsers::StreamParser
+ supports "entity" event.
-Mon Aug 1 13:57:35 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Fri Jul 26 23:14:31 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/tcltklib/tcltklib.c (deleted_ip): refactoring - interpreter
- deletion check. [ruby-dev:26664]
+ * 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.
-Mon Aug 1 01:17:40 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Fri Jul 26 23:05:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/drb/drb.rb (check_insecure_method): use private_methods and
- protected_methods instead of respond_to? to check method visibility.
- [ruby-dev:26616]
+ * parse.y (parser_yylex): separate numeric literal from succeeding
+ token, and treat 'e' as floating point number only if followed by
+ exponent part.
- * test/drb/drbtest.rb: ditto.
+Fri Jul 26 22:14:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/drb/ut_drb.rb: ditto.
+ * vm_exec.h (CHECK_VM_STACK_OVERFLOW_FOR_INSN): surround with
+ do/while (0), and remove unnecessary casts.
-Mon Aug 1 00:07:32 2005 Keiju Ishitsuka <keiju@ruby-lang.org>
- * lib/irb/context.rb: fix `irb --readline` option. [ruby-list:40955]
+Fri Jul 26 20:12:07 2013 Akinori MUSHA <knu@iDaemons.org>
-Fri Jul 29 09:59:38 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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
- * eval.c (rb_yield_0): push yielded node instead of yielding.
- fixed: [yarv-dev:549]
+Fri Jul 26 19:25:17 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jul 28 18:09:55 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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).
- * ext/tcltklib/stubs.c: When --enable-tcltk-stubs, the initialize
- routine creates a Tcl/Tk interpreter and deletes it. However,
- init cost of Tk's MainWindow is not so small. And that makes it
- impossible to use libraries written with Tcl functions only on
- an environment without a graphical display. This changes support
- delaying initalization of Tk_Stubs until the script needs Tk.
+Fri Jul 26 18:30:14 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tcltklib/stubs.h: New file. Define prototypes and return
- codes of functions on stubs.c.
+ * array.c (ary_memcpy): cast to int to suppress a warning.
- * ext/tcltklib/tcltklib.c: Support delaying initalization of
- Tk_Stubs until the script needs Tk.
+Fri Jul 26 18:21:58 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tcltklib/tcltklib.c: Show friendly error messages for errors
- on initialization.
+ * 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.
- * ext/tcltklib/tcltklib.c: Avoid SEGV on ip_finalize() when ruby is
- exiting and $DEBUG is true. (Not fix. If you know the reason of
- why, please fix it.)
+Fri Jul 26 17:49:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/tkutil.c (ary2list, ary2list2): bug fix on handling of
+ * win32/file.c (fix_string_encoding): fix target encoding. the
+ parameter `encoding' is not the target encoding but the original
encoding.
- * ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string
- don't work propery.
-
- * ext/tk/lib/tk.rb: Forget extending Tk::Encoding module to Tk.
- * ext/tk/lib/tk/variable.rb: TkVarAccess fails to initialize the
- object for an element of a Tcl's array variable.
-
-Wed Jul 27 23:23:54 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * gc.c (obj_free): make message format consistent with one from
- gc_mark(). [ruby-talk:149668]
-
-Wed Jul 27 22:11:37 2005 Kouhei Sutou <kou@cozmixng.org>
-
- * sample/rss/tdiary_plugin: removed. because the plugin
- is imported in the tDiary plugin packages.
-
-Wed Jul 27 10:59:02 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * dir.c (dir_each): rewinddir(3) before iteration.
- [ruby-talk:149628]
-
-Tue Jul 26 12:57:49 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/openssl_missin.c: include <openssl/engine.h> before
- <openssl/x509_vfy.h> to avoid compilation error of mswin32.
- suggested by NAKAMURA Usaku.
-
-Mon Jul 25 21:30:46 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * {bcc32,win32,wince}/Makefile.sub: moved CPPFLAGS only for ruby
- source to XCFLAGS.
-
-Mon Jul 25 13:45:18 2005 NAJIMA Hiroki <najima@mickey.ai.kyutech.ac.jp>
-
- * io.c: check HAVE_SYS_IOCTL_H before including the header.
- [ruby-dev:26610]
-
-Mon Jul 25 14:10:02 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/multi-tk.rb: fix en-bugged part in the last commit.
-
-Sat Jul 23 16:49:04 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_engine.c (ossl_engine_s_load): should check
- OPENSSL_NO_STATIC_ENGINE.
-
-Fri Jul 22 21:06:08 2005 Tadashi Saito <shiba@mail2.accsnet.ne.jp>
-
- * bignum.c (rb_big_eq): reduce isnan(). [ruby-dev:26600]
-
- * numeric.c (flo_eq, flo_gt, flo_ge, flo_lt, flo_le): ditto.
-
-Fri Jul 22 15:02:39 2005 Kouhei Sutou <kou@cozmixng.org>
-
- * lib/rss/rss.rb: moved copyright description to lib/rss.rb.
-
- * lib/rss.rb: added for convenience.
-
- * sample/rss/re_read.rb: added #to_s sample.
-
- * sample/rss/blend.rb: use 'require "rss"' instead of
- 'require "rss/*"'.
- * sample/rss/list_description.rb: ditto.
- * sample/rss/rss_recent.rb: ditto.
- * sample/rss/tdiary-plugin/rss-recent.rb: ditto.
-
- * sample/rss/tdiary-plugin/rss-recent.rb: 0.0.6 -> 0.0.7.
-
-Fri Jul 22 14:37:43 2005 Kouhei Sutou <kou@cozmixng.org>
-
- * lib/rss/parser.rb (RSS::Parser#initialize): accept HTTP/FTP
- URI and local file path too.
-
- * test/rss/test_parser.rb (RSS::TestParser#test_parse): test
- for the above.
-
-Fri Jul 22 07:01:42 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Jul 26 14:05:19 2013 Zachary Scott <e@zzak.io>
- * ext/tk/tkutil.c (tk_conv_args): forget to revert thread_critical
- and gc_disable when raise ArgumentError.
+ * ext/fiddle/*: [DOC] More doc on dlopen and RTLD_DEFAULT from r42184
- * ext/tk/lib/remote-tk.rb: RemoteTkIp doesn't need to include TkUtil.
+Fri Jul 26 13:08:53 2013 Zachary Scott <e@zzak.io>
- * ext/tcltklib/tcltklib.c: add TclTkIp#has_mainwindow? method.
+ * ext/fiddle/lib/fiddle.rb: [DOC] Document Fiddle.dlopen(nil)
+ * ext/fiddle/handle.c: [DOC] Document Fiddle::Handle.new(nil)
- * ext/tk/lib/tk.rb: add Tk.has_mainwindow? method.
+Fri Jul 26 13:04:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/multi-tk.rb: add MultiTkIp#has_mainwindow? method.
-
- * ext/tk/lib/remote-tk.rb: add RemoteTkIp#has_mainwindow? method.
-
- * ext/tk/lib/multi-tk.rb: slave IP fail to exit itself when $SAFE==4.
-
- * ext/tk/lib/multi-tk.rb: remove constants from MultiTkIp module to
- avoid access from external.
+ * load.c (rb_load_internal): use rb_load_file_str() to keep path
+ encoding.
- * ext/tk/lib/multi-tk.rb: check_root flag is ignored on slave IPs'
- mainloop.
+ * load.c (rb_require_safe): search in OS path encoding for Windows.
- * ext/tk/lib/multi-tk.rb: hang-up Tk.mainloop called on a slave IP
- with $SAFE==4.
+ * ruby.c (rb_load_file_str): load file with keeping path encoding.
- * ext/tk/lib/multi-tk.rb: MultiTkIp#bg_eval_proc doesn't work
- properly.
+ * win32/file.c (rb_file_load_ok): use WCHAR type API assuming incoming
+ path is encoded in UTF-8. [ruby-core:56136] [Bug #8676]
- * ext/tk/lib/multi-tk.rb: add MultiTkIp#set_cb_error(proc) and
- cb_error(exc) to log errors at callbacks on safe slave IPs.
+ * file.c (rb_str_encode_ospath): simplify using rb_str_conv_enc().
- * ext/tk/lib/multi-tk.rb: fail to get an available slave IP object
- when call Tk.mainloop in the block which is given to new_* method,
- because cannot finish initialize while the root widget is alive.
+ * win32/file.c (fix_string_encoding): simplify with rb_str_conv_enc().
- * ext/tk/lib/multi-tk.rb: fail to control a slave IP when Tk.mainloop
- runs on the IP.
+ * win32/file.c (convert_mb_to_wchar): use bare pointer instead of
+ VALUE, and remove useless argument.
-Wed Jul 20 19:20:37 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Jul 26 11:42:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (S_ISREG): need to define S_ISREG before it is used first.
+ * rational.c (f_round_common): Rational is expected to be returned by
+ Rational#*, but mathn.rb breaks that assumption. [ruby-core:56177]
+ [Bug #8687]
-Wed Jul 20 18:40:50 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Fri Jul 26 01:37:45 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * io.c (wsplit_p): patch for the environment where
- fcntl(F_GETFL, O_NONBLOCK) is not supported. in that case,
- set FMODE_WSPLIT without fcntl check. [ruby-dev:26566]
+ * include/ruby/ruby.h: check defined(USE_RGENGC_LOGGING_WB_UNPROTECT)
-Wed Jul 20 18:07:11 2005 Tanaka Akira <akr@m17n.org>
+Fri Jul 26 01:21:41 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * io.c (rb_io_ctl): update FMODE_WSPLIT_INITIALIZED and FMODE_WSPLIT
- by F_SETFL.
+ * file.c (rb_file_expand_path_internal): fix r42160; skip '~'.
-Wed Jul 20 10:04:51 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jul 25 17:53:18 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * variable.c (rb_class_path): need to adjust snprintf() len for
- teminating NUL. [ruby-dev:26581]
+ * lib/net/http.rb (Net::HTTP#connect): disable Nagle's algorithm on
+ HTTP connection. [ruby-core:56158] [Feature #8681]
-Wed Jul 20 04:01:55 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Thu Jul 25 17:49:42 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/socket/socket.c: sorry, BeOS also uses HAVE_CLOSESOCKET,
- so reverted.
+ * re.c (rb_reg_to_s): convert closing parenthesis to the target encoding
+ if it is ASCII incompatible encoding. [ruby-core:56063] [Bug #8650]
- * ext/socket/extconf.rb: should not define HAVE_CLOSESOCKET
- on windows.
+Thu Jul 25 17:21:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Jul 20 03:16:43 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * 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.
- * ext/socket/socket.c: should not undef close() on win32.
- it's defined to rb_w32_close(), otherwise handle leaks.
- [ruby-Bugs-2131]
+Thu Jul 25 17:17:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Jul 20 00:48:16 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * file.c (rb_file_expand_path_internal): should clear coderange after
+ copying user name as binary data.
- * error.c (syserr_initialize): don't use str before StringValue()
- check. [ruby-dev:26579]
+Thu Jul 25 16:17:55 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jul 19 22:47:29 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * encoding.c (check_encoding): Check T_DATA or not.
+ is_data_encoding(obj) assumes that `obj' is T_DATA.
- * error.c (syserr_initialize): add 1 byte for snprintf() size for
- NUL at the end. [ruby-dev:26574]
+Thu Jul 25 13:06:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Jul 19 16:39:46 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * dir.c (dir_s_home): use rb_home_dir_of and rb_default_home_dir.
- * io.c (rb_io_inspect): replace sprintf() with "%s" format all
- over the place by snprintf() to avoid integer overflow.
+ * 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.
-Tue Jul 19 14:08:22 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * file.c (rb_default_home_dir): split from rb_home_dir() for the home
+ directry of the current user.
- * ext/tcltklib/tcltklib.c: rbtk_eventloop_depth is used as int.
+Thu Jul 25 12:32:11 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tcltklib/tcltklib.c: rbtk_pending_exception is tested with
- NIL_P, so should assign Qnil instead of 0 (Qfalse).
+ * ext/openssl/ossl.c: support additional three thread synchronization
+ functions. [ruby-trunk - Bug #8386]
- * ext/tcltklib/tcltklib.c (ip_invoke_real): fixed memory leak when
- ip is deleted.
+Thu Jul 25 07:15:58 2013 Eric Hodel <drbrain@segment7.net>
-Tue Jul 19 13:19:46 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * lib/rubygems: Import RubyGems from master as of commit 4ff70cc
+ * test/rubygems: ditto.
- * ext/tk/lib/tk/variable.rb: For symmetry, add TkVariable#string. It
- returns a string even if the default value type of the TkVariable
- object is not "string".
+Wed Jul 24 20:57:44 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jul 18 21:40:20 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * compile.c (iseq_set_arguments): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
- * eval.c (rb_call0): make the pointer to NODE volatile
- instead of NODE itself.
+ * compile.c (iseq_set_exception_table): ditto.
-Mon Jul 18 14:32:21 2005 Tanaka Akira <akr@m17n.org>
+Wed Jul 24 19:49:54 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * eval.c (rb_call0): make body volatile to avoid optimization problem.
- [ruby-dev:26195]
+ * lib/uri/generic.rb (find_proxy): raise BadURIError if the URI is
+ a relative URI. [Bug #8645]
-Mon Jul 18 12:23:27 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Jul 24 18:56:06 2013 Koichi Sasada <ko1@atdot.net>
- * ext/io/wait/wait.c: wrong backport from trunk. fixed: [ruby-dev:26562]
+ * vm_insnhelper.c (vm_expandarray): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR() because there is no new reference.
-Mon Jul 18 09:36:25 2005 Tanaka Akira <akr@m17n.org>
+ * vm_insnhelper.c (vm_caller_setup_args): ditto.
- * rubyio.h (FMODE_WSPLIT, FMODE_WSPLIT_INITIALIZED): new constant.
+ * vm_insnhelper.c (vm_yield_setup_block_args): ditto.
- * io.c (wsplit_p): new function.
- (io_fwrite): split writing data by PIPE_BUF if wsplit_p is true in
- multi-threaded mode.
- [ruby-dev:26540]
+Wed Jul 24 18:40:11 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jul 17 13:46:54 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c, gc.c: move ary_unprotect_logging() into
+ rb_gc_unprotect_logging() which is general version
- * ext/io/wait/extconf.rb, ext/io/wait/wait.c: Win32 platforms support.
+ * include/ruby/ruby.h: add USE_RGENGC_LOGGING_WB_UNPROTECT
+ to enable.
-Fri Jul 15 23:59:03 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jul 24 17:37:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/parsers/parse_c.rb (handle_class_module): handle a
- module enclosed in a built-in module. fixed: [ruby-talk:148239]
+ * file.c (rb_file_expand_path_internal): preserve the file name
+ encoding in an exception message.
- * lib/rdoc/parsers/parse_c.rb (find_body): allow macros as methods.
+Wed Jul 24 08:04:49 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/parsers/parse_c.rb (find_call_seq): allow :nodoc: modifier
- in C. [ruby-core:04572]
+ * test/-ext-/tracepoint/test_tracepoint.rb: add GC on/off to count
+ GC events strictly.
-Fri Jul 15 18:00:01 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Tue Jul 23 23:19:24 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * bcc32/Makefile.sub (COMMON_HEADERS): ruby_1_8 is using winsock.h.
- failed to compile ext/socket on bcc5.6.4. [ruby-dev:26193]
+ * ext/openssl/extconf.rb (CRYPTO_THREADID): check exist or not.
-Fri Jul 15 07:58:56 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * 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.
- * lib/webrick/server.rb (WEBrick::GenericServer#accept_client):
- sockets should be non-blocking mode. [ruby-dev:26405]
+ * 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
- * lib/webrick/utils.rb (WEBrick::Utils.set_non_blocking): new method.
+ * ext/openssl/ossl.c (ossl_threadid_func): defined for above.
- * lib/webrick/httprequest.rb (WEBrick::HTTPRequest#read_chunked):
- should call sock.read repeatedly until the preferred size data
- is obtained.
+Tue Jul 23 20:47:36 2013 Tanaka Akira <akr@fsij.org>
-Thu Jul 14 18:27:16 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * bignum.c: Move functions.
- * win32/win32.c (rb_w32_strerror): should return correct message
- for ENAMETOOLONG and ENOTEMPTY. (bcc32) [ruby-dev:26533]
+Tue Jul 23 20:14:55 2013 Tanaka Akira <akr@fsij.org>
- * win32/win32.c (rb_w32_strerror): stripped CR LF on the tail.
- (bcc32) [ruby-dev:26533]
+ * bignum.c (bary_divmod): Add special cases for x < y easily detected
+ and nx == 2 && ny == 2.
-Thu Jul 14 00:45:42 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 23 19:48:38 2013 Koichi Sasada <ko1@atdot.net>
- * LEGAL (ext/nkf/nkf-utf8): updated from nkf1.7 to nkf-utf8.
+ * thread_(pthread|win32).h: rename rb_thread_cond_t to
+ rb_nativethread_cond_t.
-Wed Jul 13 19:37:47 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * thread.c, thread_pthread.c, thread_win32.c, vm_core.h: catch up
+ renaming.
- * win32/win32.c (rb_w32_mkdir): should set EEXIST (not EACCES)
- if file or directory already exists. (bcc32) [ruby-dev:26508]
+Tue Jul 23 19:44:32 2013 Koichi Sasada <ko1@atdot.net>
- * win32/win32.c (rb_w32_rmdir): should set ENOTDIR (not EINVAL)
- if it is not directory. (bcc32, win32)
+ * thread_native.h: add rb_nativethread_self() which returns
+ current running native thread identifier.
- * win32/win32.c (rb_w32_rmdir, rb_w32_unlink): restore
- FILE_ATTRIBUTE_READONLY flag on function failure.
+ * thread_[pthread|win32].c: implement rb_nativethread_self().
-Wed Jul 13 12:40:00 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue Jul 23 19:34:11 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tcltklib/tcltklib.c: TclTkLib.do_one_event doesn't work.
+ * thread_pthread.h, thread_win32.h: rename rb_thread_id_t to
+ rb_nativethread_id_t.
- * ext/tk/lib/tk.rb: Tk.thread_update is available.
+ * thread_pthread.c, vm_core.h: use rb_nativethread_id_t.
-Tue Jul 12 23:32:11 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 23 18:56:11 2013 Koichi Sasada <ko1@atdot.net>
- * lib/mkmf.rb: keep curdir unexpanded.
+ * 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.
-Mon Jul 11 08:31:29 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 23 18:44:15 2013 Koichi Sasada <ko1@atdot.net>
- * regex.c (read_special): fix parsing backslashes following \c in
- regexp. fixed: [ruby-dev:26500]
+ * thread_native.h: added.
+ Move native thread related lines from vm_core.h.
+ And declare several functions "rb_nativethread_lock_*",
+ manipulate locking.
-Mon Jul 11 02:53:00 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * common.mk: add thread_native.h.
- * lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):
- mistook in merging the patch of [ruby-dev:26235] at
- revision 1.4.2.6.
+ * thread.c: add functions "rb_nativethread_lock_*".
-Sun Jul 10 23:58:04 2005 Tanaka Akira <akr@m17n.org>
+ * 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.
- * lib/pathname.rb (Pathname#unlink): try Dir.unlink first to
- avoid unlink a directory by root.
- cf. [ruby-dev:26237]
+Tue Jul 23 16:14:57 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jul 11 05:18:17 2005 Michael Neumann <mneumann@ruby-lang.org>
+ * gc.c (gc_before_sweep): fix spacing.
- * lib/xmlrpc/server.rb (XMLRPC::Server): Switch from GServer over to
- WEBrick. This makes file lib/xmlrpc/httpserver.rb obsolete (at least it is
- no further used by the XML-RPC library).
+Tue Jul 23 15:57:11 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jul 10 12:47:01 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * lib/debug.rb (debug_command): added a deficient format specifier.
- fixed: [ruby-core:05419]
+ * 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.
-Sat Jul 9 21:28:46 2005 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * gc.c (gc_slot_sweep): do not need to clear slot->freelist.
- * ext/win32ole/win32ole.c (ole_method_dispid): convert dispid
- in Ruby and C by INT2NUM and NUM2INT.
+Tue Jul 23 09:34:49 2013 Zachary Scott <e@zzak.io>
- * ext/win32ole/win32ole.c (ole_invoke2): ditto.
+ * sample/drb/README*.rdoc: [DOC] migrate DRb sample READMEs to rdoc
- * ext/win32ole/test/testWIN32OLE.rb: ditto.
+Tue Jul 23 09:28:05 2013 Zachary Scott <e@zzak.io>
- * ext/win32ole/test/testOLEMETHOD.rb: ditto.
+ * lib/drb/invokemethod.rb: [DOC] nodoc InvokeMethod18Mixin
-Fri Jul 8 15:45:04 2005 Kouhei Sutou <kou@cozmixng.org>
+Tue Jul 23 08:44:37 2013 Eric Hodel <drbrain@segment7.net>
- * lib/rss/rss.rb (RSS::VERSION): 0.1.4 -> 0.1.5.
+ * 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.
- * test/rss/test_version.rb (RSS::TestVersion#test_version):
- ditto.
+Tue Jul 23 08:11:32 2013 Zachary Scott <e@zzak.io>
- * lib/rss/0.9.rb (RSS::Rss::Channel::Item::Category):
- domain attribute of <category> is optional. Thanks to
- Chris Lee <clee@kde.org>.
+ * lib/rexml/streamlistener.rb: [DOC] Fix examples in
+ REXML::StreamListener#entitydecl patch by Ippei Obayashi [Bug #8665]
- * test/rss/test_parser.rb (RSS::TestParser#test_category20):
- adjusted test case.
+Tue Jul 23 07:44:59 2013 Eric Hodel <drbrain@segment7.net>
-Tue Jul 5 23:44:06 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/rubygems: Import RubyGems from master as of commit b165260
+ * test/rubygems: ditto.
- * instruby.rb: expand source library path.
+Tue Jul 23 07:14:31 2013 Tanaka Akira <akr@fsij.org>
-Tue Jul 5 23:27:14 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (bary_mulsub_1xN): New function.
+ (bary_mul_toom3): Use bary_mulsub_1xN.
- * array.c (sort_2): get rid of yet another bcc's bug.
- fixed: [ruby-core:05152]
+Tue Jul 23 03:32:23 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_thread_save_context): must not switch contexts during
- re-allocating stack. fixed: [ruby-core:05219]
+ * 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.
-Tue Jul 5 15:15:10 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue Jul 23 01:34:45 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/tkutil.c: fix typo.
+ * bignum.c (bigdivrem_mulsub): Extracted from bigdivrem1.
+ (bigdivrem1): Use bary_add.
-Tue Jul 5 14:51:35 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Jul 22 18:39:52 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/tcltklib/tcltklib.c: bug fix on treating Unicode strings.
+ * string.c (rb_str_enumerate_chars): specify array capa
+ with str_strlen().
- * ext/tcltklib/tcltklib.c: add methods to treat encoding mode.
+ * string.c (rb_str_enumerate_codepoints): ditto.
- * ext/tcltklib/MANUAL.eng: add description of TclTkLib#encoding,
- encoding_system, and so on.
+Mon Jul 22 18:01:33 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/tcltklib/MANUAL.euc: ditto.
+ * string.c (rb_str_enumerate_chars): specify array capa.
- * ext/tk/tkutil.c: fail to create a Tcl's list string from an
- array including multiple kind of encoded strings.
+Mon Jul 22 17:24:14 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/tk/lib/tk.rb: ditto.
+ * string.c (rb_str_each_char_size): performance improvement by
+ using rb_str_length().
- * ext/tk/lib/multi-tk.rb: 2nd arg of _{to|from}UTF8 is omissible.
+Mon Jul 22 16:32:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/remote-tk.rb: ditto.
+ * vm_eval.c (eval_string_with_cref): check by Check_TypedStruct
+ instead of rb_obj_is_kind_of.
- * ext/tk/lib/tk.rb: override TclTkLib#encoding and encoding= to
- use TkCore::INTERP.encoding and encoding=.
+Mon Jul 22 13:19:22 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk.rb: when "require 'tk'" and $KCODE=='NONE', check
- DEFAULT_TK_ENCODING to decide Ruby/Tk's system encoding mode.
+ * array.c (ary_resize_capa): use RARRAY_RAWPTR() because
+ this code creates no new references.
- * ext/tk/lib/tk/encodedstr.rb: check both of Tk.encoding and
- Tk.encoding_system. Tk.encoding has higher priority.
+Mon Jul 22 12:58:18 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/optiondb.rb: ditto.
+ * array.c (ary_memfill): added.
- * ext/tk/lib/tk/spinbox.rb: ditto.
+ * array.c (rb_ary_initialize): use ary_memfill().
- * ext/tk/lib/tk/validation.rb: ditto.
+ * array.c (rb_ary_fill): ditto.
- * ext/tk/lib/tk/namespace.rb: arguemnts for TclTkIp#_merge_tklist
- should be UTF-8 strings.
+ * array.c (rb_ary_slice_bang): use RARRAY_RAWPTR() because
+ this code creates no new references.
-Mon Jul 4 14:35:52 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jul 22 10:09:46 2013 Koichi Sasada <ko1@atdot.net>
- * sample/svr.rb: service can be stopped by ill-behaved client; use
- tsvr.rb instead.
+ * gc.c (gc_slot_sweep): need to add empty RVALUE as freeobj.
-Mon Jul 4 13:25:21 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jul 22 09:48:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * missing/erf.c: original erf.c by prof. Okumura is confirmed to
- be public domain. reverted BSD implementation.
+ * 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].
-Mon Jul 4 11:15:37 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Jul 22 09:24:19 2013 Kouji Takao <kouji@takao7.net>
- * test/{dbm,gdbm,sdbm}/test_{dbm,gdbm,sdbm}.rb: skip some tests
- which using fork on fork-less platforms.
+ * 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.
-Sun Jul 3 23:26:30 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ Thanks, Nobuyoshi Nakada, for the patch.
- * test/wsdl/document/test_rpc.rb: compare formatted time string of
- Time objects instead of comparing Time objects itself to avoid
- unintended conflict of usec part. [ruby-dev:26220]
+Mon Jul 22 03:15:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Jul 2 22:41:04 2005 Tanaka Akira <akr@m17n.org>
+ * ext/date/date_parse.c (rfc2822_cb): check if wday is given, since it
+ can be omitted.
- * ext/socket/socket.c (unix_send_io, unix_recv_io): support x86-64 and
- IA64.
+Mon Jul 22 00:15:20 2013 Tanaka Akira <akr@fsij.org>
-Sat Jul 2 17:06:23 2005 Tanaka Akira <akr@m17n.org>
+ * bignum.c (bary_sq_fast): Refine expressions.
- * defines.h (FLUSH_REGISTER_WINDOWS): defined for IA64.
- (flush_register_windows): declare flush_register_windows.
+Sun Jul 21 21:08:59 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (flush_register_windows): new function.
+ * 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.
-Fri Jul 1 17:48:52 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Jul 21 09:58:19 2013 Tanaka Akira <akr@fsij.org>
- * bignum.c (get2comp): revert all prior changes, and calculate
- proper 2's complement for negative numbers. backported from
- HEAD.
+ * 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.
-Fri Jul 1 15:50:12 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Sun Jul 21 08:12:16 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * missing/erf.c: need to include some headers for some platforms.
+ * proc.c (proc_to_s): use PRIsVALUE to preserve the result encoding.
- * win32/win32.h (copysign, scalb): define for compatibility with
- other platforms. [ruby-dev:26430]
+Sun Jul 21 03:36:18 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Jul 1 15:37:42 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * hash.c (rb_hash_flatten): use NUM2INT to raise TypeError on 32bit
+ platform. it's introduced by r42039
- * missing/crypt.c: modified to make it compilable on platforms
- other than BSD. [ruby-dev:26430]
+Sun Jul 21 01:07:45 2013 Benoit Daloze <eregontp@gmail.com>
- * missing/erf.c: ditto. code from <exp.c> merged.
+ * 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]
-Fri Jul 1 12:44:56 2005 Tanaka Akira <akr@m17n.org>
+Sat Jul 20 22:44:50 2013 Zachary Scott <e@zzak.io>
- * lib/open-uri.rb (OpenURI.open_http): refine post_connection_check
- call.
+ * common.mk: Document running a single test [Fixes GH-363]
+ Patch by Avdi Grimm https://github.com/ruby/ruby/pull/363
-Fri Jul 1 11:34:08 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jul 20 22:39:56 2013 Zachary Scott <e@zzak.io>
- * missing/crypt.c: replaced with 4.4BSD version.
+ * sample/*: whitespace patch by Sergio Campama [Fixes GH-364]
+ https://github.com/ruby/ruby/pull/364
- * missing/erf.c: ditto.
+Sat Jul 20 22:33:13 2013 Zachary Scott <e@zzak.io>
- * missing/vsnprintf.c: removed the third provision from the old
- BSD license. [ruby-core:05177]
+ * doc/regexp.rdoc: [DOC] Fix typo in example [Fixes GH-365]
+ Patch by Juanito Fatas https://github.com/ruby/ruby/pull/365
-Fri Jul 1 01:45:21 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jul 20 17:46:03 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * enum.c (enum_min, enum_max): must not return Qundef.
- fixed: [ruby-core:05299]
+ * string.c (rb_str_succ): add missing case NEIGHBOR_WRAPPED.
+ r42078 caused buggy behavior like "\xFF".b -> "\x01\xFF".b
-Fri Jul 1 00:18:40 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jul 20 15:22:38 2013 Koichi Sasada <ko1@atdot.net>
- * lib/delegate.rb (Delegator::respond_to): respond_to? must check
- destination object. [ruby-talk:146894]
+ * array.c (rb_ary_resize): use simple memcpy because there are no new
+ references.
-Thu Jun 30 19:00:21 2005 Keiju Ishitsuka <keiju@ruby-lang.org>
- * lib/irb/ruby-lex.rb (RubyLex::identify_number): alternative implements
- for [ruby-dev:26410]. And support a numeric form of 0d99999.
+Sat Jul 20 15:02:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jun 30 17:28:10 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * safe.c (ruby_safe_level_4_warning): define for old extension
+ libraries. [Bug #8652]
- * lib/irb/ruby-lex.rb (RubyLex::identify_number): should not treat
- plain zero as an octal number. [ruby-dev:26410]
+Sat Jul 20 14:38:00 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jun 30 15:13:16 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * eval.c (rb_eval): pre-evaluate argument for unambiguous
- evaluation order. [ruby-dev:26383]
+Sat Jul 20 12:14:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Jun 30 09:53:56 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * string.c (enc_succ_char, enc_pred_char): consider wchar case.
+ [ruby-core:56071] [Bug #8653]
- * lib/delegate.rb (Delegator::method_missing): forward unknown
- method to the destination. suggested by
- <christophe.poucet@gmail.com>. [ruby-talk:146776]
+ * string.c (rb_str_succ): do not replace with invalid char.
-Tue Jun 28 21:59:29 2005 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+ * 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.
- * dir.c, eval.c, hash.c, process.c, ruby.c: avoid warning "unused
- variable" [ruby-dev:26387]
+ * include/ruby/encoding.h (rb_enc_code_to_mbclen): declaration and
+ shortcut macro.
-Sat Jun 25 17:15:23 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri Jul 19 21:59:12 2013 Koichi Sasada <ko1@atdot.net>
- * lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_query): should
- discard if key=val pair is empty. patch from Gary Wright.
+ * gc.c: declare type_name() at the beginning of file.
-Sat Jun 25 23:30:51 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Jul 19 21:35:09 2013 Koichi Sasada <ko1@atdot.net>
- * process.c (detach_process_watcher): terminate process watcher
- thread right after rb_waitpid() succeed. [ruby-talk:146430]
+ * array.c: reduce shady operations.
-Sat Jun 25 15:49:18 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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().
- * enum.c (enum_min, enum_max): do not ignore nil as the first element.
+ * array.c (rb_ary_shift): use RARRAY_PTR_USE() without WB because
+ there are not new relations.
-Sat Jun 25 14:40:17 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * array.c (ary_ensure_room_for_unshift): ditto.
- * ext/sdbm/init.c (fsdbm_select): SDBM#select had returned the array
- which contained each elements twice. [ruby-dev:26358]
+ * array.c (rb_ary_sort_bang): ditto.
-Fri Jun 25 05:06:47 2005 Michael Neumann <mneumann@ruby-lang.org>
+ * array.c (rb_ary_delete_at): ditto.
- * lib/xmlrpc/*, test/xmlrpc/*: backported changes from HEAD into 1.8
+ * array.c (rb_ary_reverse_m): use RARRAY_RAWPTR() because
+ there are not new relations.
-Fri Jun 24 17:00:00 2005 Shigeo Kobayashi <shigeo@tinyforest.jp>
+Fri Jul 19 20:58:20 2013 Koichi Sasada <ko1@atdot.net>
- * ext/bigdecimal/bigdecimal.c: patch from "NATORI Shin"
- (u-tokyo.ac.jp) applied to fix rounding bug.
+ * array.c: reduce shade operations.
-Fri Jun 24 13:06:45 2005 akira yamada <akira@ruby-lang.org>
+ * array.c (rb_ary_modify): use RARRAY_RAWPTR().
- * lib/uri/common.rb, lib/uri/generic.rb: fixed typo in documents and
- replaced some existent domain name with "example.com".
+ * 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().
-Fri Jun 24 12:23:19 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Jul 19 19:55:28 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk.rb: fix typo on Tk.grid_propagate.
+ * array.c (ary_mem_clear): added. This operation doesn't need WB
+ because this operation creates a reference to Qnil.
- * ext/tk/lib/tk.rb: Tk.event_generate and TkWindow#event_generate
- accept TkEvent::Event object as context argument.
+ * 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().
- * ext/tk/lib/tk/event.rb: add TkEvent::Event#valid_fields and
- valid_for_generate to get field parameters of event_generate.
+ * array.c (ary_make_shared): use RARRAY_RAWPTR() instead of RARRAY_PTR().
-Thu Jun 23 23:55:59 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jul 19 19:18:51 2013 Koichi Sasada <ko1@atdot.net>
- * runruby.rb: should load built rbconfig.rb.
+ * array.c: fix commit miss.
+ RGENGC_UNPROTECT_LOGGING should be 0.
-Thu Jun 23 16:53:15 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Jul 19 19:15:30 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/canvastag.rb: TkcGroup.new cannot include given items.
- TkcGroup#exclude calls wrong method.
- Add alias TkcGroup#add [ruby-talk:146049].
+ * array.c (rb_ary_resurrect): use RARRAY_RAWPTR() because there is no
+ writing.
- * ext/tk/lib/tk/canvas.rb: TkCanvas#dtag and some subcommands of
- TkCanvas#addtag fail to treat a TkcTag argument.
+ * array.c (rb_ary_new_from_values): use ary_memcpy().
- * ext/tk/lib/tk/event.rb: add TkEvent::Event#generate to help to send
- current event to other widgets.
+Fri Jul 19 19:07:31 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jun 20 18:44:04 2005 Tanaka Akira <akr@m17n.org>
+ * array.c (ary_memcpy): add a function to copy VALUEs into ary
+ with write barrier. If ary is promoted, use write barrier correctly.
- * eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): DUMMY_SETJMP is replaced
- because setjmp is not enough to fix getcontext and SPARC register
- window problem.
+ * 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().
-Mon Jun 20 16:48:36 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Jul 19 15:32:57 2013 Koichi Sasada <ko1@atdot.net>
- * ext/dbm/dbm.c (fdbm_closed): new method DBM#closed?
+ * array.c (rb_ary_store): use RARRAY_PTR_USE() instead of RARRAY_PTR().
+ Clearing memory space doesn't need WBs.
- * ext/gdbm/gdbm.c (fgdbm_closed): new method GDBM#closed?
+Fri Jul 19 15:19:37 2013 Koichi Sasada <ko1@atdot.net>
- * ext/sdbm/init.c (fsdbm_closed): new method SDBM#closed?
+ * array.c (ary_ensure_room_for_push): use RARRAY_RAWPTR() instead of
+ RARRAY_PTR. In this code, there are no "write" operation.
- * test/dbm/test_dbm.rb, test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb
- (teardown): close all db objects before deleting data files.
+ * array.c (rb_ary_equal): ditto.
- * win32/win32.{ch} (unlink): hook runtime function to change
- file attribute before unlinking.
- fixed: [ruby-dev:26360]
+ * array.c (recursive_equal): ditto.
-Mon Jun 20 02:15:35 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jul 19 15:09:22 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (define_final): document fix: finalizers never get called
- before target object is destroyed.
+ * 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).
-Mon Jun 20 01:26:49 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri Jul 19 14:56:00 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/openssl_missing.c, ext/openssl/ossl.h,
- ext/openssl/ossl_asn1.c, ext/openssl/ossl_bio.c,
- ext/openssl/ossl_pkcs12.h, ext/openssl/ossl_x509req.c: avoid
- compiler warnings. suggested by Michal Rokos.
+ * array.c (ary_unprotect_logging): use (void *) for first parameter
+ because VALUE is not defined before including ruby/ruby.h.
-Sun Jun 19 14:09:07 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jul 19 14:19:48 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * gc.c (run_final): reduce unnecessary object allocation during
- finalization.
+ * ext/pathname/pathname.c (path_inspect): use PRIsVALUE to preserve
+ the result encoding.
- * gc.c (rb_gc_call_finalizer_at_exit): deferred finalizers list should
- be cleared before calling them. fixed: [ruby-talk:145790]
+Fri Jul 19 12:35:41 2013 Tanaka Akira <akr@fsij.org>
-Fri Jun 17 13:01:40 2005 Tanaka Akira <akr@m17n.org>
+ * test/socket/test_tcp.rb (test_initialize_failure): Use EADDRNOTAVAIL
+ to test an error message generated by bind() failure.
- * lib/time.rb (Time.parse): fix previous leap seconds support.
- (Time.rfc2822): ditto.
- (Time.xmlschema): ditto.
+Fri Jul 19 11:27:38 2013 Zachary Scott <e@zzak.io>
-Thu Jun 16 15:06:55 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * lib/racc/parser.rb: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
- * ext/tcltklib/tcltklib.c (ip_rb_threadVwaitCommand): Tcl_Release
- was missing.
+Fri Jul 19 11:26:28 2013 Zachary Scott <e@zzak.io>
-Thu Jun 16 13:34:48 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/psych/lib/psych*: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
- * ext/tk/lib/tk.rb: add Tk.getMultiple{Open|Save}File() which return
- an Array of selected files.
+Fri Jul 19 11:25:12 2013 Zachary Scott <e@zzak.io>
-Thu Jun 16 12:53:24 2005 Tanaka Akira <akr@m17n.org>
+ * lib/rdoc/*: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
- * lib/time.rb (Time.parse): "Fri Jan 1 08:59:60 +0900 1999" was
- parsed as "Fri Jan 01 09:00:00 JST 1999" even on an environment
- which supports leap seconds.
- (Time.rfc2822): ditto.
- (Time.xmlschema): ditto.
+Fri Jul 19 11:23:55 2013 Zachary Scott <e@zzak.io>
-Thu Jun 16 08:29:22 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * lib/rubygems*: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
- * ext/dl/sym.c (rb_dlsym_call): needs FREE_ARGS before return.
- fixed memory leak. [ruby-Bugs-2034]
+Fri Jul 19 11:16:54 2013 Akinori MUSHA <knu@iDaemons.org>
-Wed Jun 15 18:26:39 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * lib/set.rb (Set#to_set): Define Set#to_set so that aSet.to_set
+ returns self. [Fixes GH-359]
- * ext/tk/lib/tk.rb: support "tk inactive" sub-command [for Tcl/Tk8.5a3]
+Fri Jul 19 11:10:23 2013 Zachary Scott <e@zzak.io>
- * ext/tk/lib/tk/namespace.rb: support "namespace path" sub-command and
- 'namespace ensemble' sub-command [for Tcl/Tk8.5a3]
+ * lib/rake/*: [DOC] Capitalize "Ruby" in documentation
+ Patch by Dave Worth https://github.com/ruby/ruby/pull/341
-Tue Jun 14 02:02:43 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Jul 19 01:04:14 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/tkutil.c: add TkUtil::CallbackSubst.subst_arg(m, ...) &
- _define_attribute_aliases(hash) to get substitution-argument from
- attributes (e.g. subst_arg(:x,:y,:num,:button) --> "%x %y %b %b ").
+ * 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]
- * ext/tk/lib/tk/event.rb: use _define_attribute_aliases().
+Fri Jul 19 00:54:27 2013 Benoit Daloze <eregontp@gmail.com>
-Mon Jun 13 13:01:05 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * test/ruby/test_array.rb (test_count): add a test case for #count
+ with an argument. See Bug #8654.
- * hash.c (ruby_setenv): fixed SEGV. [ruby-dev:26186]
+Thu Jul 18 23:45:06 2013 Masaki Matsushita <glass.saga@gmail.com>
-Mon Jun 13 01:54:20 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * array.c (rb_ary_eql): compare RARRAY_PTR() for performance
+ improvement in case of that self and other are shared.
- * signal.c (sigexit): call rb_thread_signal_exit() instead of
- rb_exit(). [ruby-dev:26347]
+Thu Jul 18 22:46:42 2013 Zachary Scott <e@zzak.io>
- * eval.c (rb_thread_signal_exit): a new function to exit on main
- thread.
+ * 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
- * eval.c (rb_thread_switch): exit status should be retrieved from
- ruby_errinfo.
+Thu Jul 18 21:30:50 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_f_exit): ensure exit(0) should call
- exit(EXIT_SUCCESS).
+ * bignum.c (bary_sq_fast): Specialize the last iteration of the
+ outer loop.
+ (bigfixize): A condition simplified.
-Mon Jun 13 01:20:02 2005 Tanaka Akira <akr@m17n.org>
+Thu Jul 18 21:15:41 2013 Masaki Matsushita <glass.saga@gmail.com>
- * eval.c (rb_gc_mark_threads): curr_thread may not be part of the
- thread list. [ruby-dev:26312]
+ * array.c (rb_ary_equal): compare RARRAY_PTR() for performance
+ improvement in case of that self and other are shared.
-Fri Jun 10 23:35:34 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jul 18 20:44:51 2013 Masaki Matsushita <glass.saga@gmail.com>
- * missing/mkdir.c: remove. [ruby-core:05177]
+ * array.c (rb_ary_fill): use memfill().
-Fri Jun 10 22:54:26 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jul 18 20:35:14 2013 Benoit Daloze <eregontp@gmail.com>
- * missing.h: fd_set stuffs need sys/types.h. fixed: [ruby-core:05179]
+ * array.c (rb_ary_count): check length to avoid SEGV
+ while iterating. Remove other pointer loop when arg is given.
-Thu Jun 9 23:58:12 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_array.rb (test_count): add test for bug.
+ [ruby-core:56072] [Bug #8654]
- * ext/Win32API/Win32API.c (Win32API_Call): disable global
- optimization. fixed: [ruby-core:05143]
+Thu Jul 18 18:14:36 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Jun 9 23:35:22 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * array.c (rb_ary_count): iterate items appropriately.
+ [Bug #8654]
- * enum.c (enum_inject): default the result value to Qundef to use
- first element as initial value if not given.
+Thu Jul 18 17:35:41 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu Jun 9 19:55:41 2005 Tanaka Akira <akr@m17n.org>
+ * hash.c (rb_hash_flatten): performance improvement by not using
+ rb_hash_to_a() to avoid array creation with rb_assoc_new().
- * eval.c (ruby_longjmp): new macro to call longjmp, setcontext, etc.
- (ruby_setjmp): new macro to call setjmp, getcontext, etc.
- (ruby_setjmp): call setjmp before getcontext to avoid IA64 register
- stack problem.
- [ruby-talk:144939]
+Thu Jul 18 16:16:17 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (Init_stack): remove IA64_MAGIC_STACK_LIMIT.
+ * array.c: add logging feature for RGenGC's write barrier unprotect
+ event.
-Thu Jun 9 11:55:34 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jul 18 15:45:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/delegate.rb (SimpleDelegator::__setobj__): need check for
- recursive delegation. [ruby-core:04940]
+ * 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]
-Wed Jun 8 18:47:10 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jul 18 15:42:01 2013 Koichi Sasada <ko1@atdot.net>
- * misc/ruby-mode.el (ruby-expr-beg): fix looking point drift.
+ * include/ruby/ruby.h: fix spell miss.
-Wed Jun 8 11:11:34 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jul 18 15:11:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * bignum.c (get2comp): calculate proper 2's complement for
- negative numbers. a bug in normalizing negative numbers
- reported from Honda Hiroki <hhonda@ipflex.com>.
+ * include/ruby/ruby.h (ruby_safe_level_4): get rid of special
+ character. [ruby-dev:47512] [misc #8646]
-Wed Jun 8 08:33:10 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jul 18 14:51:39 2013 Koichi Sasada <ko1@atdot.net>
- * enum.c (enum_min_by, enum_max_by): return nil if no iteration.
- fixed: [ruby-dev:26245]
+ * array.c (ary_alloc): slim setup process.
- * eval.c (rb_need_block): ensure a block is given.
+Thu Jul 18 14:37:57 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (backtrace): skip successive frames sharing same node.
+ * string.c (str_alloc): no need to clear RString (already cleared).
-Wed Jun 8 00:15:08 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jul 18 12:57:47 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/socket.c (ruby_getaddrinfo__aix): merged a patch from
- KUBO Takehiro <kubo at jiubao.org> to support AIX. [ruby-list:40832]
+ * 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.
-Wed Jun 8 00:09:01 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jul 18 06:30:02 2013 Koichi Sasada <ko1@atdot.net>
- * lib/yaml/rubytypes.rb (Array::to_yaml): merged a patch from
- Tilman Sauerbeck <tilman at code-monkey.de>. [ruby-core:05055]
+ * 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().
- * lib/yaml/rubytypes.rb (Hash::to_yaml): ditto.
+ * gc.c: rename a heap management function with prefix "heap_".
+ * get_freeobj() -> heap_get_freeobj().
-Wed Jun 8 00:00:01 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c: rename markable_object_p() to is_markable_object().
- * ext/curses/curses.c (curses_insertln): merged a patch from
- TAKAHASHI Tamotsu <ttakah at lapis.plala.or.jp>. [ruby-ext:02305]
+Wed Jul 17 22:57:40 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Jun 7 19:34:15 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * hash.c (delete_if_i): use ST_DELETE.
- * lib/irb/init.rb (IRB::IRB.rc_file_generators): more flexible
- IRB.rc_file_generators. [ruby-core:05163]
+Wed Jul 17 22:34:47 2013 Tanaka Akira <akr@fsij.org>
-Tue Jun 7 18:39:31 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * lib/thread.rb: RDoc documentation from Eric Hodel
- <drbrain at segment7.net> added. [ruby-core:05148]
+Wed Jul 17 22:13:26 2013 Masaki Matsushita <glass.saga@gmail.com>
-Tue Jun 7 18:30:04 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * hash.c (rb_hash_replace): performance improvement by using
+ st_copy().
- * lib/mkmf.rb (create_makefile): add .SUFFIXES from depend file.
- fixed: [ruby-dev:26294]
+Wed Jul 17 17:19:54 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jun 7 17:39:54 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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().
- * object.c (rb_mod_cvar_get): Module#class_variable_get(): back
- ported from CVS HEAD. [ruby-talk:144741]
+ * gc.c (initial_expand_heap): inlined in rb_gc_set_params().
- * object.c (rb_mod_cvar_set): Module#class_variable_set().
- [ruby-talk:144741]
+Wed Jul 17 17:12:23 2013 Matthew M. Boedicker <matthewm@boedicker.org>
-Tue Jun 7 16:32:53 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * hash.c (env_fetch): Add key name to message on ENV.fetch KeyError,
+ as well as Hash#fetch. [ruby-core:56062] [Feature #8649]
- * sprintf.c (rb_f_sprintf): raise exception on debug mode (-d),
- not verbose mode (-v/-w). [ruby-core:05123]
+Wed Jul 17 15:59:33 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jun 7 10:30:49 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * gc.c: catch up last changes for debugging/checking mode.
- * ext/tk/lib/multi-tk.rb: slave-ip fails to call procedures
- delegated by master-ip.
+Wed Jul 17 15:50:10 2013 Koichi Sasada <ko1@atdot.net>
-Sun Jun 5 23:00:35 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * gc.c (rb_objspace_free): free slot itself.
- * ext/tk/lib/tk/console.rb: create console when required
+ * gc.c (objspace_each_objects): fix condition.
+ Use slot->body instead of slot.
- * ext/tk/sample/tkextlib/tile/demo.rb: fix TypeError & create Console
+ * gc.c (count_objects): use "slot" variable.
-Sat Jun 4 14:55:18 2005 Tanaka Akira <akr@m17n.org>
+Wed Jul 17 15:21:10 2013 Koichi Sasada <ko1@atdot.net>
- * test/dbm/test_dbm.rb: merged from ext/dbm/testdbm.rb.
+ * gc.c (unlink_heap_slot): fix memory leak.
+ free slot itself at free_heap_slot().
- * test/gdbm/test_gdbm.rb: merged from ext/gdbm/testgdbm.rb.
+ 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.
- * test/sdbm/test_sdbm.rb: renamed from ext/sdbm/testsdbm.rb with
- modification to use test/unit.
+ * gc.c (unlink_heap_slot): remove not working code.
-Fri Jun 3 14:06:12 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Wed Jul 17 14:31:13 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/multi-tk.rb: fix typo.
+ * gc.c: re-design the heap structure.
-Wed Jun 1 11:32:42 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ (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.
- * bcc32/Makefile.sub: can use single quote character in DESTDIR.
- [ruby-dev:26205]
+ See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design
+ for more details (figure).
-Mon May 30 23:48:29 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * gc.c: Avoid "heaps" terminology. It is ambiguous.
- * ext/tk/lib/tk/macpkg.rb: add PACKAGE_NAME information of Tcl/Tk
- Extension.
+Wed Jul 17 13:29:16 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/msgcat.rb: ditto.
+ * 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.
- * ext/tk/lib/tk/winpkg.rb: ditto.
+ * gc.c: catch up above change.
- * ext/tk/lib/tkextlib/*: ditto.
+Wed Jul 17 12:30:05 2013 Tanaka Akira <akr@fsij.org>
-Sat May 28 16:40:15 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * include/ruby/st.h (st_strcasecmp): Macro defined for compatibility.
+ (st_strncasecmp): Ditto.
- * test/openssl/test_x509store.rb: add test for expired CRL
- and refine some assertions.
+Wed Jul 17 11:57:45 2013 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
-Sat May 28 05:15:51 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * lib/cgi/util.rb (CGI::Util#escape, unescape): Avoid use of regexp
+ special global variable. [Feature #8648] Thanks to fotos.
- * ext/openssl/ossl_x509store.c (ossl_x509stctx_set_time): should
- not set internal flag directry.
+Wed Jul 17 11:57:10 2013 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
-Sat May 28 02:00:11 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * lib/erb.rb (ERB::Util#url_encode): Avoid use of regexp special global
+ variable. [Feature #8648] Thanks to fotos.
- * lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):
- ENV["REQUEST_URI"] is better to get correct Request-URI
- than ENV["SCRIPT_NAME"] + ENV["PATH_INFO"]. [ruby-dev:26235]
+Wed Jul 17 08:12:41 2013 Tanaka Akira <akr@fsij.org>
-Fri May 27 16:32:04 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+ * st.c (st_locale_insensitive_strcasecmp): Renamed from st_strcasecmp.
+ (st_locale_insensitive_strncasecmp): Renamed from st_strncasecmp.
- * lib/mkmf.rb: use the semicolon as the path separator
- in the environment of MSYS. fixed: [ruby-dev:26232]
+ * include/ruby/st.h: Follow above changes.
-Thu May 26 06:08:11 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * include/ruby/ruby.h: Ditto.
- * ext/tk/lib/tk.rb: add shortcut-methods of tk_call + tk_split_list
+Wed Jul 17 00:14:59 2013 Tanaka Akira <akr@fsij.org>
-Wed May 25 22:52:42 2005 Shugo Maeda <shugo@ruby-lang.org>
+ * bignum.c (bigmul1_toom3): Use bigdivrem_single instead of bigdivrem.
+ (big_three): Removed.
+ (Init_Bignum): Don't initialize big_three.
- * lib/irb/input-method.rb: do not use Readline::HISTORY.pop.
- (backported from HEAD)
+Tue Jul 16 21:46:03 2013 Masaki Matsushita <glass.saga@gmail.com>
-Wed May 25 21:55:40 2005 Shugo Maeda <shugo@ruby-lang.org>
+ * configure.in: revert r42008. strcasecmp() uses the current locale.
- * ext/readline/readline.c: supported libedit. (backported from HEAD)
+ * include/ruby/ruby.h: ditto.
- * ext/readline/extconf.rb: ditto.
+ * st.c (st_strcasecmp): ditto.
- * test/readline/test_readline.rb: ditto.
+Tue Jul 16 21:07:04 2013 Masaki Matsushita <glass.saga@gmail.com>
-Wed May 25 20:06:27 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * configure.in: check strcasecmp().
- * ext/tk/lib/tk.rb: TkComm#tk_split_*list fail to split a kind of SJIS
- strings. To avoid the trouble, add arguments to control converting
- encoding, and do split on a UTF8 string.
+ * include/ruby/ruby.h: use strcasecmp() as st_strcasecmp() if it
+ exists.
- * ext/tk/lib/multi-tk.rb: modify to attend encoding.
+ * st.c (st_strcasecmp): define the function only if strcasecmp()
+ doesn't exist.
- * ext/tk/lib/remote-tk.rb: ditto.
+Tue Jul 16 20:21:28 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/itemconfig.rb: ditto.
+ * bignum.c (bigsq): Renamed from bigsqr.
- * ext/tk/lib/tk/listbox.rb: ditto.
+Tue Jul 16 19:42:08 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/namespace.rb: ditto.
+ * bignum.c (USHORT): Unused macro removed.
- * ext/tk/lib/tk/panedwindow.rb: ditto.
+Tue Jul 16 19:18:51 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/text.rb: ditto.
+ * gc.c: slim a path of newobj_of().
- * ext/tk/lib/tk/textmark.rb: ditto.
+ * gc.c (objspace): add a new field objspace::freelist, which contains
+ available RVALUEs.
- * ext/tk/lib/tk/texttag.rb: ditto.
+ * 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.
- * ext/tk/lib/tk/variable.rb: ditto.
+ * gc.c (before_gc_sweep): clear objspace::freelist.
- * ext/tk/lib/tk/winfo.rb: ditto.
+ * gc.c (slot_sweep): clear slot::freelist.
- * ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb: ditto.
+ * gc.c (heaps_prepare_freeslot): renamed to heaps_prepare_freeslot.
- * ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: ditto.
+ * gc.c (unlink_free_heap_slot): remove unused function.
- * ext/tk/lib/tk.rb: add TkWindow#lower_window/raise_window and
- Tk#lower_window/raise_window by reason of method-name conflict
+ * gc.c (rb_free_const_table): remove unused function.
- * ext/tk/lib/tk/canvas.rb: bug fix on TkCanvas#delete when given
- non-TkcItem arguments.
+Tue Jul 16 19:05:12 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb: ditto.
+ * bignum.c (big_shift3): Big shift width is not a problem for right
+ shift.
-Wed May 25 12:59:48 2005 Tanaka Akira <akr@m17n.org>
+Tue Jul 16 18:50:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/open-uri.rb (OpenURI::Meta::RE_QUOTED_STRING): a content of
- quoted-string should be zero or more characters.
+ * array.c (rb_ary_count): [DOC] fix typo. Array#count uses ==, not
+ ===. a question at asakusa.rb ML.
-Tue May 24 23:42:16 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Jul 16 18:35:48 2013 Tanaka Akira <akr@fsij.org>
- * numeric.c (fix_pow): support Fixnum ** Float case directly
- without coercing. [ruby-talk:142697] [ruby-talk:143054]
+ * bignum.c (bary_mul_karatsuba): Avoid duplicate calculation when
+ squaring.
+ (bary_mul_toom3_branch): Ditto.
-Tue May 24 16:57:24 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Jul 16 17:43:22 2013 Koichi Sasada <ko1@atdot.net>
- * ruby.c (require_libraries): caused SEGV when continuation jumped
- in to the required library code.
+ * gc.c (link_free_heap_slot): removed.
-Tue May 24 11:56:25 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+ * gc.c (slot_sweep): use `heaps_add_freeslot' instead of
+ `link_free_heap_slot'.
- * lib/getopts.rb: should warn only if verbose mode.
- fixed: [ruby-dev:26201]
+ * gc.c (assign_heap_slot): use local variable `slot' instead of
+ `heaps'.
-Tue May 24 06:45:31 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 16 17:21:39 2013 Koichi Sasada <ko1@atdot.net>
- * misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): string
- literals to be matched non-greedy.
+ * gc.c (assign_heap_slot): refactoring variable names.
-Tue May 24 00:34:32 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * gc.c (slot_add_freeobj): added.
- * test/soap/calc: method name 'set' was able to crash with a class Set.
- [ruby-dev:26210]
+ * gc.c (heaps_add_freeslot): added.
- * test/wsdl/document/test_rpc.rb: dateTime comparison failed under
- TZ=right/Asia/Tokyo (with leap second.) [ruby-dev:26208]
+ * gc.c (finalize_list, rb_gc_force_recycle, slot_sweep): use
+ `slot_add_freeobj' instead of modifying linked list directly.
-Mon May 23 16:24:05 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue Jul 16 16:30:58 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tcltklib/extconf.rb: Framework support on MacOS X Tiger.
+ * gc.c (lazy_sweep): refactoring.
- * ext/tcltklib/README.1st: add description of Framework support options.
+Tue Jul 16 13:32:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon May 23 12:21:37 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * re.c (make_regexp): should not return junk address during
- compile time. [ruby-dev:26206]
+Tue Jul 16 11:12:03 2013 Masaki Matsushita <glass.saga@gmail.com>
-Sun May 22 21:54:06 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * proc.c (rb_block_arity): raise ArgumentError if no block given.
- * lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.4.
+Tue Jul 16 08:15:22 2013 Zachary Scott <e@zzak.io>
- == SOAP client and server ==
+ * ext/bigdecimal/lib/bigdecimal/util.rb: [DOC] document top-level
+ classes from BigDecimal utils native extensions
- === for both client side and server side ===
+Tue Jul 16 03:23:03 2013 Zachary Scott <e@zzak.io>
- * improved document/literal service support.
- style(rpc,document)/use(encoding, literal) combination are all
- supported. for the detail about combination, see
- test/soap/test_style.rb.
+ * numeric.c: [DOC] improve rdoc formatting for parameters and links
- * let WSDLEncodedRegistry#soap2obj map SOAP/OM to Ruby according to
- WSDL as well as obj2soap. closes #70.
+Mon Jul 15 14:40:00 2013 Tanaka Akira <akr@fsij.org>
- * let SOAP::Mapping::Object handle XML attribute for doc/lit service.
- you can set/get XML attribute via accessor methods which as a name
- 'xmlattr_' prefixed (<foo name="bar"/> -> Foo#xmlattr_name).
+ * include/ruby/intern.h (rb_big2str0): Deprecated.
- === client side ===
+ * bignum.c (rb_big2str1): Renamed from rb_big2str0.
+ (rb_big2str0): Deprecated wrapper for rb_big2str1.
+ (rb_big2str): Invoke rb_big2str1 instead of rb_big2str0.
- * WSDLDriver capitalized name operation bug fixed. from
- 1.5.3-ruby1.8.2, operation which has capitalized name (such as
- KeywordSearchRequest in AWS) is defined as a method having
- uncapitalized name. (converted with GenSupport.safemethodname
- to handle operation name 'foo-bar'). it introduced serious
- incompatibility; in the past, it was defined as a capitalized.
- define capitalized method as well under that circumstance.
+Mon Jul 15 14:13:02 2013 Masaki Matsushita <glass.saga@gmail.com>
- * added new factory interface 'WSDLDriverFactory#create_rpc_driver'
- to create RPC::Driver, not WSDLDriver (RPC::Driver and WSDLDriver
- are merged). 'WSDLDriverFactory#create_driver' still creates
- WSDLDriver for compatibility but it warns that the method is
- deprecated. please use create_rpc_driver instead of create_driver.
+ * 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.
- * allow to use an URI object as an endpoint_url even with net/http,
- not http-access2.
+Mon Jul 15 13:46:26 2013 Tanaka Akira <akr@fsij.org>
- === server side ===
+ * bignum.c: Add static assertions.
- * added mod_ruby support to SOAP::CGIStub. rename a CGI script
- server.cgi to server.rb and let mod_ruby's RubyHandler handles the
- script. CGIStub detects if it's running under mod_ruby environment
- or not.
+Mon Jul 15 13:36:02 2013 Masaki Matsushita <glass.saga@gmail.com>
- * added fcgi support to SOAP::CGIStub. see the sample at
- sample/soap/calc/server.fcgi. (almost same as server.cgi but has
- fcgi handler at the bottom.)
+ * hash.c (rb_hash_each_pair): performance improvement by using
+ rb_block_arity().
- * allow to return a SOAPFault object to respond customized SOAP fault.
+Mon Jul 15 13:15:37 2013 Masaki Matsushita <glass.saga@gmail.com>
- * added the interface 'generate_explicit_type' for server side
- (CGIStub, HTTPServer). call 'self.generate_explicit_type = true'
- if you want to return simplified XML even if it's rpc/encoded
- service.
+ * proc.c (rb_block_arity): create internal API rb_block_arity().
+ it returns arity of given block.
- == WSDL ==
+Mon Jul 15 13:07:27 2013 Yuki Yugui Sonoda <yugui@yugui.jp>
- === WSDL definition ===
+ * lib/prime.rb (Prime::EratosthenesGenerator,
+ Prime::EratosthenesSieve): New implementation by
+ robertjlooby <robertjlooby AT gmail.com>.
- * improved XML Schema support such as extension, restriction,
- simpleType, complexType + simpleContent, ref, length, import,
- include.
+ * test/test_prime.rb: updated with new method name
- * reduced "unknown element/attribute" warnings (warn only 1 time for
- each QName).
+Mon Jul 15 11:32:46 2013 Zachary Scott <e@zzak.io>
- * importing XSD file at schemaLocation with xsd:import.
+ * numeric.c (rb_cNumeric): [DOC] Added comment for Numeric to fix doc
- === code generation from WSDL ===
+Mon Jul 15 11:24:48 2013 Tanaka Akira <akr@fsij.org>
- * generator crashed when there's '-' in defined element/attribute
- name.
+ * bignum.c (maxpow_in_bdigit_dbl): Useless #if removed.
- * added ApacheMap WSDL definition.
+Mon Jul 15 11:10:46 2013 Zachary Scott <e@zzak.io>
- * sample/{soap,wsdl}: removed.
+ * 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
-Sun May 22 19:11:35 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Mon Jul 15 10:56:01 2013 Zachary Scott <e@zzak.io>
- * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#intialize):
- should initialize session id context. [ruby-core:4663]
+ * thread.c (mutex_sleep): [DOC] Awake thread will reacquire lock
+ By Tim Abdulla [Fixes GH-342] https://github.com/ruby/ruby/pull/342
- * ext/openssl/ossl_ssl.c (ossl_sslctx_setup): add session id support.
+Mon Jul 15 10:45:09 2013 Tanaka Akira <akr@fsij.org>
-Sat May 21 10:24:21 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * 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.
- * bcc32/Makefile.sub: tds files were not deleted when DESTDIR
- included '\' path delimiter. [ruby-dev:26193]
+ * configure.in: Check __builtin_clz, __builtin_clzl and
+ __builtin_clzll.
-Thu May 19 19:04:29 2005 speakillof <speakillof@yahoo.co.jp>
+Mon Jul 15 09:39:07 2013 Tanaka Akira <akr@fsij.org>
- * lib/rexml/encodings/SHIFT-JIS.rb: encoding and decoding were
- swapped. [ruby-core:4772]
+ * bignum.c (power_cache_get_power): Use bitsize instead of ceil_log2.
+ (ones): Removed.
+ (next_pow2): Removed.
+ (floor_log2): Removed.
+ (ceil_log2): Removed.
-Wed May 18 23:42:25 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (__builtin_popcountl): Don't check.
- * error.c (exc_exception): reverted to call Exception#initialize
- directly. fixed: [ruby-dev:26177]
+Mon Jul 15 02:47:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed May 18 23:39:09 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * localeinit.c (rb_locale_charmap, Init_enc_set_filesystem_encoding):
+ move from encoding.c.
- * dir.c (glob_helper): get rid of using String. [ruby-dev:26180]
+ * miniinit.c (rb_locale_charmap, Init_enc_set_filesystem_encoding):
+ define miniruby specific functions only.
- * dir.c (push_braces): should skip balanced braces.
+Mon Jul 15 02:32:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (ruby_options), win32/win32.c (NtInitialize): move argument
- intialization back. [ruby-dev:26180]
+ * encoding.c (rb_enc_init): no longer needs NO_PRESERVED_ENCODING.
-Tue May 17 15:31:31 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * encoding.c (enc_inspect): defer loading autoloaded encoding.
- * lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should
- break the loop if the socket reached to EOF. [ruby-talk:142285]
+ * encoding.c (enc_check_encoding): use is_data_encoding() to check
+ type consistently.
-Tue May 17 11:52:18 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * encoding.c (must_encoding): return rb_encoding* instead of encoding
+ index.
- * win32/win32.c (unixtime_to_filetime): use localtime() instead of
- gmtime() when using FileLocalTimeToFileTime().
+ * encoding.c (enc_check_encoding): use is_data_encoding() to check
+ type consistently.
-Mon May 16 22:28:43 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * encoding.c (must_encoding): return rb_encoding* instead of encoding
+ index.
- * win32/win32.h, {bcc32,win32,wince}/Makefile.sub: moved rb_[ugp]id_t
- to get rid of redefinition warnings on mingw.
+Mon Jul 15 02:21:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * class.c (rb_class_init_copy): singleton class is disallowed to copy,
- from its definition. fixed: [ruby-talk:142749]
+ * 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]
-Mon May 16 08:52:29 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * encoding.c (enc_inspect): use PRIsVALUE to preserve the result
+ encoding.
- * win32/win32.{h,c}: define rb_[pgu]id_t.
+Sun Jul 14 23:21:47 2013 Tanaka Akira <akr@fsij.org>
-Mon May 16 00:21:02 2005 Tanaka Akira <akr@m17n.org>
+ * configure.in: Check __builtin_popcountl, __builtin_bswap32 and
+ __builtin_bswap64.
- * lib/pathname.rb (Pathname#unlink): use SystemCallError instead of
- Errno::EISDIR because EISDIR is not portable.
- [ruby-core:5001]
+ * 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.
-Sun May 15 22:11:33 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * bignum.c (ones): Use the configure result for the condition to use
+ __builtin_popcountl.
+ (bary_unpack_internal): Use appropriate types for swap argument.
- * lib/drb/drb.rb (DRbObject#method_missing): use raise(exception).
- [ruby-dev:26164]
+Sun Jul 14 22:21:11 2013 Tanaka Akira <akr@fsij.org>
-Sun May 15 18:56:35 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * configure.in, ruby.h: define rb_[pgu]id_t macros instead of typedefs
- to get rid of types which might not be defined yet. [ruby-dev:26165]
+Sun Jul 14 00:36:03 2013 Tanaka Akira <akr@fsij.org>
-Sun May 15 14:35:46 2005 Tanaka Akira <akr@m17n.org>
+ * bignum.c (DIGSPERLONG): Unused macro removed.
+ (DIGSPERLL): Ditto.
- * lib/pathname.rb (Pathname#unlink): unlink a symlink to a directory
- was failed. [ruby-core:4992]
+Sun Jul 14 00:32:51 2013 Tanaka Akira <akr@fsij.org>
-Sun May 15 09:57:30 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_big_aref): Less scan when the number is negative.
- * win32/win32.c (unixtime_to_filetime): deal with DST.
- [ruby-talk:141817]
+Sun Jul 14 00:17:42 2013 Tanaka Akira <akr@fsij.org>
-Sat May 14 23:59:11 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (big_shift): Avoid signed integer overflow.
- * error.c (exc_exception, {exit,name_err,syserr}_initialize): call
- Execption#initialize. fixed: [ruby-talk:142593]
+Sun Jul 14 00:14:15 2013 Tanaka Akira <akr@fsij.org>
-Sat May 14 23:57:26 2005 Erik Huelsmann <ehuels@gmail.com>
+ * bignum.c (bary_mul_precheck): Use bary_small_lshift or
+ bary_mul_normal if xl is 1.
- * configure.in: Check for the availability of pid_t, gid_t and uid_t and
- remove AC_TYPE_UID_T. fixed: [ruby-core:04745]
+Sat Jul 13 22:58:16 2013 Tanaka Akira <akr@fsij.org>
- * defines.h: Remove pid_t typedef.
+ * 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.
- * ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with
- the available system types.
+Sat Jul 13 15:51:38 2013 Tanaka Akira <akr@fsij.org>
- * process.c: Change instances of pid_t and gid_t to their rb_*
- counterparts.
+ * bignum.c (bary_small_lshift): Use size_t instead of long.
+ (bary_small_rshift): Ditto.
- * ext/pty/pty.c: Change pid_t to rb_pid_t.
+Sat Jul 13 15:33:33 2013 Tanaka Akira <akr@fsij.org>
- * vms/config.h: Define HAVE_{P,G,U}ID_T to 1.
+ * bignum.c (bary_small_lshift): Functions moved to remove
+ declaration.
+ (bary_small_rshift): Ditto.
- * win32/Makefile.sub: Remove #define for {g,u}id_t.
+Sat Jul 13 12:27:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * win32/win32.c: Change pid_t to rb_pid_t.
+ * encoding.c (rb_enc_associate_index): fill new terminator length, not
+ old one.
- * wince/Makefile.sub: Remove #define for {g,u}id_t.
+Sat Jul 13 12:24:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * wince/sys/types.h: Remove definitions of {p,g,u}id_t.
+ * 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.
-Fri May 13 23:44:22 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jul 13 09:26:09 2013 Tanaka Akira <akr@fsij.org>
- * ext/extmk.rb: keep srcdir unexpanded.
+ * bignum.c (biglsh_bang): Removed.
+ (bigrsh_bang): Ditto.
+ (bigmul1_toom3): Use bary_small_lshift and bary_small_rshift.
- * lib/mkmf.rb (create_makefile): quote topdir and hdrdir if necessary.
- fixed: [ruby-core:04932]
+Sat Jul 13 01:04:43 2013 Zachary Scott <e@zzak.io>
- * lib/mkmf.rb (configuration), {bcc32,win32,wince}/Makefile.sub: make
- also INSTALL_PROG and INSTALL_DATA system dependent.
- fixed: [ruby-core:04931]
+ * lib/rubygems/psych_additions.rb: Ignore Psych docs here
-Fri May 13 17:54:39 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Fri Jul 12 18:10:46 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * variable.c (generic_ivar_get): rb_attr_get should not warn.
- [ruby-dev:26010]
+ * ext/fiddle/win32/lib/win32/registry.rb
+ (Win32::Registry::API#make_wstr): same as r41922.
-Fri May 13 12:28:43 2005 Daniel Berger <djberge@qwest.com>
+Fri Jul 12 16:28:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c (rb_ary_select): can remove argc check. [ruby-core:4911]
+ * encoding.c (rb_enc_associate_index): refill the terminator if it
+ becomes longer than before. [ruby-dev:47500] [Bug #8624]
- * test/ruby/test_array.rb: add test for find_all.
+ * string.c (str_null_char, str_fill_term): get rid of out of bound
+ access.
-Fri May 13 11:29:00 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * string.c (rb_str_fill_terminator): add a parameter for the length of
+ new terminator.
- * eval.c (unknown_node): add volatile directive to prototype.
+Fri Jul 12 11:26:25 2013 Masaki Matsushita <glass.saga@gmail.com>
-Thu May 12 17:08:48 2005 Tanaka Akira <akr@m17n.org>
+ * hash.c (rb_hash_reject_bang): do not call rb_hash_foreach() if RHash
+ has ntbl and it is empty.
- * io.c (rb_io_eof, remain_size, read_all, io_read, appendline)
- (swallow, rb_io_each_byte, rb_io_getc): revert previous change.
+Fri Jul 12 11:17:41 2013 Masaki Matsushita <glass.saga@gmail.com>
- * io.c (rb_io_eof, io_fread, appendline, swallow, rb_io_each_byte)
- (rb_io_getc, rb_getc): call clearerr before getc to avoid
- stdio incompatibility.
+ * hash.c (recursive_hash): use RHASH_SIZE() to check hash size.
-Thu May 12 16:52:20 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Fri Jul 12 00:20:00 2013 Masaki Matsushita <glass.saga@gmail.com>
- * lib/rdoc/parsers/parse_c.rb: more readability for mixing
- progress "c..." and warning message.
+ * hash.c (rb_hash_size): use RHASH_SIZE().
-Thu May 12 16:31:00 2005 NARUSE, Yui <naruse@ruby-lang.org>
+Fri Jul 12 00:08:24 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/nkf/nkf-utf8/nkf.c: follow nkf 2.0.5
+ * hash.c (rb_hash_values): set array capa to RHASH_SIZE().
-Thu May 12 16:15:01 2005 Tanaka Akira <akr@m17n.org>
+Thu Jul 11 23:54:45 2013 Masaki Matsushita <glass.saga@gmail.com>
- * io.c (rb_io_eof, remain_size, read_all, io_read, appendline)
- (swallow, rb_io_each_byte, rb_io_getc): don't rely EOF flag.
- [ruby-talk:141527]
+ * hash.c (rb_hash_keys): set array capa to RHASH_SIZE().
-Thu May 12 15:56:20 2005 Tilman Sauerbeck <tilman@code-monkey.de>
+Thu Jul 11 21:30:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/parsers/parse_c.rb: show parsing progress for C files.
- [ruby-core:4341]
+ * win32/win32.c (rb_w32_pow): undef pow to get rid of infinite
+ recursive call. re-fix [Bug #8495]. [ruby-core:55923] [Bug #8621]
-Thu May 12 13:47:56 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Thu Jul 11 20:18:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/drb/test_drb{ssl,unix}.rb: can test drb
- before install. (backported from HEAD) [ruby-dev:26146]
+ * ext/dl/win32/lib/win32/registry.rb (Win32::Registry::API#make_wstr):
+ remove workaround to append WCHAR terminator.
-Thu May 12 09:53:57 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * transcode.c (str_encode_associate): fill terminator after conversion.
- * version.c (ruby_show_version): flush for non-tty stdout.
+ * string.c (rb_enc_str_new, rb_str_set_len, rb_str_resize): fill
+ minimum length of the encoding as the terminator.
-Thu May 12 09:07:07 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * string.c (str_buf_cat, rb_str_buf_append, rb_str_splice_0): ditto.
- * test/ruby/envutil.rb, test/drb/drbtest.rb: can test drb
- before install. (backported from HEAD) [ruby-Bugs-1672]
+ * string.c (str_make_independent_expand, rb_str_modify_expand): make
+ the capacity enough for multi-byte terminator.
-Thu May 12 01:23:55 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c (rb_string_value_cstr): fill minimum length of the encoding
+ as the terminator.
- * eval.c (rb_eval), parse.y (arg): reduce fixnum range literal at
- parser. fixed: [ruby-dev:26113]
+ * string.c (rb_string_value_cstr): check null char in char, not in
+ byte.
- * eval.c (unknown_node): ignore broken NODE to get rid of accessing
- possibly inaccessible address. fixed: [ruby-dev:26122]
- should emit more useful information like [ruby-dev:26126], though.
+Thu Jul 11 14:48:35 2013 Zachary Scott <e@zzak.io>
-Wed May 11 16:20:01 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * 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/webrick/cgi.rb: new methods WEBrick::CGI#[], WEBrick::CGI#logger
- and WEBrick::CGI#config. (backported from HEAD)
+Thu Jul 11 14:22:37 2013 Zachary Scott <e@zzak.io>
- * lib/webrick/httputils.rb (WEBrick::HTTPUtils.escape_path): should
- not use String#split("/"). (backported from HEAD)
+ * 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
-Wed May 11 15:58:39 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jul 11 13:48:03 2013 Zachary Scott <e@zzak.io>
- * eval.c (break_jump): break should not cross functions.
- [ruby-list:40818]
+ * sprintf.c: Fix typo patch by @hynkle [Fixes GH-357]
+ https://github.com/ruby/ruby/pull/357
-Wed May 11 10:39:37 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Thu Jul 11 13:00:34 2013 Zachary Scott <e@zzak.io>
- * lib/tempfile.rb (Tempfile#unlink): fixed typo.
+ * lib/securerandom.rb: Refactor conditions by Rafal Chmiel
+ [Fixes GH-326] https://github.com/ruby/ruby/pull/326
-Wed May 11 01:03:36 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jul 11 12:04:47 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (TMP_ALLOC): use macro NEW_NODE() to get rid of warnings on
- platforms which have no alloca(). fixed: [ruby-talk:141301]
+ * 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.
-Sun May 8 23:17:47 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Jul 11 10:46:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/timer.rb: fix typo.
+ * tool/probes_to_wiki.rb: fix usage comment. use Enumerable#grep
+ which yields each elements to reduce unnecessary array.
-Sun May 8 16:52:56 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Thu Jul 11 10:09:18 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/profiler.rb: fixed "undefined method `[]' for nil:NilClass"
- [ruby-core:4775] [ruby-talk:140401] [ruby-dev:26118]
+ * process.c (rb_daemon): daemon(3) is implemented with fork(2).
+ Therefore it needs rb_thread_atfork(). (and revert r41903)
-Sat May 7 22:58:00 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jul 11 03:22:10 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * lib/mkmf.rb (have_var): no libs argument is given.
+ * tool/probes_to_wiki.rb: adding a script to convert probes.d to wiki
+ format for easy wiki updates.
-Sun May 1 09:58:11 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jul 11 00:54:07 2013 Zachary Scott <zachary@zacharyscott.net>
- * ruby.c (process_sflag): replace '-' in variable names with '_'.
- [ruby-dev:26107]
+ * man/ri.1: Incorrect use of .Dd macro [Bug #8620] by Tristan Hill
- * ruby.c (set_arg0): use also environment variable space for setting
- $0. [ruby-core:04774]
+Thu Jul 11 00:48:29 2013 Zachary Scott <zachary@zacharyscott.net>
-Wed Apr 27 23:42:22 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/delegate.rb: Add example for __setobj__ and __getobj__
+ [Bug #8615] Patch by Caleb Thompson
- * win32/Makefile.sub (OPTFLAGS): default global optimization to
- disabled only for VC++6.
+Wed Jul 10 23:29:22 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Apr 26 22:58:00 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * lib/logger.rb: Use :call-seq: for method signature rdoc
- * ext/tcltklib/tcltklib.c (ip_invoke_core): call Tcl's "::unknown"
- command when can't get information of target command.
+Wed Jul 10 23:23:18 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Apr 25 01:18:43 2005 Tanaka Akira <akr@m17n.org>
+ * lib/logger.rb (#add): Remove incorrect rdoc for return value
+ [Bug #8567] Reported by Tim Pease.
- * regex.c: declare rb_warn to have variadic argument. [ruby-core:4751]
+Wed Jul 10 23:12:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Apr 23 19:45:59 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * string.c (rb_str_subpos): make public function.
- * ext/tcltklib/tcltklib.c (ip_RubyExitCommand): exit with status code
- via TclTkIp#_eval didn't work. [ruby-talk:139390]
+Wed Jul 10 22:44:19 2013 Tanaka Akira <akr@fsij.org>
-Fri Apr 22 16:41:50 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * bignum.c: Add a static assertion for RBIGNUM_EMBED_LEN_MAX.
- * ext/tcltklib/tcltklib.c (ip_set_exc_message): fixed memory leak.
+Wed Jul 10 22:31:25 2013 Masaki Matsushita <glass.saga@gmail.com>
- * ext/tcltklib/tcltklib.c: eTkCallbackReturn was not initialized.
+ * string.c (rb_str_index): cache single byte flag and some
+ cosmetic changes.
-Thu Apr 21 00:07:50 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jul 10 22:03:27 2013 Tanaka Akira <akr@fsij.org>
- * lib/mkmf.rb (create_makefile): support platforms have file separator
- other than /.
+ * bignum.c (bary_2comp): Don't use bary_plus_one.
+ (bary_add_one): Replaced by the implementation of bary_plus_one.
- * {bcc32,win32,wince}/Makefile.sub (BUILD_FILE_SEPARATOR): separator
- of building platform.
+Wed Jul 10 20:48:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * {bcc32,win32,wince}/Makefile.sub (CP, INSTALL): use COPY command.
+ * bignum.c (sizeof_bdigit_dbl): check sizeof(BDIGIT_DBL).
-Wed Apr 20 23:22:39 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * internal.h (STATIC_ASSERT): move from enum.c.
- * Makefile.in, common.mk: miniruby depens on MINIOBJS.
+Wed Jul 10 20:08:21 2013 Tanaka Akira <akr@fsij.org>
- * dmydln.c (dln_load): dummy function to raise LoadError.
+ * bignum.c (SIZEOF_BDIGIT_DBL): Add a ifdef guard for test.
- * cygwin/GNUmakefile.in, {bcc32,win32,wince}/Makefile.sub: miniruby
- can't load extensions on Windows.
+Wed Jul 10 14:18:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Apr 20 23:01:35 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (fork_daemon): kill the other threads all and abandon the
+ kept mutexes.
- * win32/ifchange.bat: delete testing files.
+Wed Jul 10 11:35:36 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Wed Apr 20 07:27:18 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * {bcc32,win32,wince}/configure.bat, {bcc32,win32,wince}/setup.mak:
- add extout option.
+Wed Jul 10 10:20:07 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * bcc32/setup.mak: make configuration variables overridable.
+ * tool/rbinstall.rb: always require rubygems to stabilize rubygems
+ related status like whether Gem::Specification is defined or not.
-Wed Apr 20 04:15:27 2005 Keiju Ishitsuka <keiju@ruby-lang.org>
+ * tool/rbinstall.rb (Gem::Specification.unresolved_deps): define stub.
- * lib/irb.rb lib/irb/* doc/irb: IRB 0.9.5
+Wed Jul 10 08:21:15 2013 Eric Hodel <drbrain@segment7.net>
-Tue Apr 19 23:37:09 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+ * lib/rubygems: Import RubyGems 2.1
+ * test/rubygems: Ditto.
- * lib/ftools.rb (File.safe_unlink): do not modify a symlinked file.
+Wed Jul 10 07:34:34 2013 Eric Hodel <drbrain@segment7.net>
-Tue Apr 19 00:06:20 2005 Nobuyoshi Nakada <nobu@ruby-lang.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.
- * ext/extmk.rb: expand path for ext/**/extconf.rb.
+ * lib/rubygems/psych_tree.rb (module Gem): Add backward compatibility
+ for r41148
-Mon Apr 18 11:25:14 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * test/rubygems/test_gem_package.rb: Add backward compatibility for
+ double-slash elimination.
- * ext/zlib/zlib.c (zstream_run): fixed SEGV. [ruby-core:4712]
+Wed Jul 10 06:22:27 2013 Tadayoshi Funaba <tadf@dotrb.org>
-Sun Apr 17 23:57:49 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/date/date_parse.c (date_zone_to_diff): [ruby-core:55831].
- * ext/extmk.rb (extmake, parse_args): do not expand destdir.
+Wed Jul 10 00:41:42 2013 Tanaka Akira <akr@fsij.org>
- * ext/extmk.rb (relative_from): treat mere drive letter as an absolute
- path.
+ * bignum.c (bary_mul): x*1 is x.
-Sat Apr 16 17:01:16 2005 Kouhei Sutou <kou@cozmixng.org>
+Tue Jul 9 22:24:39 2013 Tanaka Akira <akr@fsij.org>
- * sample/rss/tdiary_plugin/rss-recent.rb (rss_recent_cache_rss):
- use the first date information of items as site date information
- if channel doesn't have date information.
+ * bignum.c (bary_mul1): No need to invoke MEMZERO at last.
+ (bary_mul_single): Invoke MEMZERO here.
-Sat Apr 16 15:27:03 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 9 21:40:01 2013 Kouhei Sutou <kou@cozmixng.org>
- * configure.in (RUBY_PROG_INSTALL): not add -p option to INSTALL.
- files need timestamps to be kept are only ar-archive on a few
- platforms, and be installed by instruby.rb but not INSTALL.
- fixed: [ruby-core:04721]
+ * test/rexml/test_text.rb: Add missing tests for Text#<<.
+ Reported by nagachika. Thanks!!!
- * mkconfig.rb: purge autoconf value variables.
+Tue Jul 9 18:02:38 2013 Akinori MUSHA <knu@iDaemons.org>
-Sat Apr 16 10:36:01 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * 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.
- * bcc32/Makefile.sub: quick hack... prepend DESTDIR.
- still have restriction on DESTDIR ("", "/", "e:")
+Tue Jul 9 17:58:26 2013 Akinori MUSHA <knu@iDaemons.org>
-Sat Apr 16 03:59:42 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * test/fileutils/test_fileutils.rb
+ (TestFileUtils#assert_output_lines): New utility assertion
+ method for testing verbose output.
- * ext/openssl/extconf.rb: check for OPENSSL_cleanse.
+Tue Jul 9 17:43:57 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/openssl_missing.h: ditto.
+ * test/test_tracer.rb: catch up recent rubygems changes.
-Thu Apr 14 19:18:30 2005 Minero Aoki <aamine@loveruby.net>
+Tue Jul 9 16:58:30 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/fileutils.rb (remove_file): ignore exceptions caused by
- chmod.
+ * 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).
- * lib/fileutils.rb (remove_dir): try to get rights to rmdir.
- [ruby-Bugs:1502] (2 items backportted from HEAD, rev 1.53-54)
+Tue Jul 9 15:57:20 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Apr 14 16:57:40 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * object.c: Fix rdoc for Kernel#<=>. [Fixes GH-352]
- * bcc32/Makefile.sub: failed to remove debug information files.
- fixed: [ruby-dev:26034]
+Tue Jul 9 15:53:51 2013 Akinori MUSHA <knu@iDaemons.org>
-Wed Apr 13 23:40:21 2005 Kouhei Sutou <kou@cozmixng.org>
+ * lib/fileutils.rb (FileUtils#mode_to_s): Define mode_to_s() also
+ as singleton method, or FileUtils.chmod fails in verbose mode.
- * lib/rss/rss.rb (RSS::VERSION): 0.1.3 -> 0.1.4.
+Tue Jul 9 15:16:02 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/rss/rss.rb (RSS::Element#converter): fixed converter
- transmission bug.
+ * test/fileutils/fileasserts.rb
+ (Test::Unit::FileAssertions#assert_not_symlink): Add a missing
+ optional argument "message".
-Wed Apr 13 21:20:35 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+Tue Jul 9 15:03:24 2013 Akinori MUSHA <knu@iDaemons.org>
- * configure.in (mingw32): extract msvcr*.dll from objdump result.
+ * lib/fileutils.rb (FileUtils#chown, FileUtils#chown_R): If user
+ and group are both nil, print ":".
-Wed Apr 13 20:24:30 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jul 9 12:47:08 2013 Masaki Matsushita <glass.saga@gmail.com>
- * configure.in (mingw32): use actual runtime DLL name as ruby DLL
- name and default load path.
+ * io.c (appendline): use READ_CHAR_PENDING_XXX macros and
+ RSTRING_END().
- * win32/Makefile.sub, win32/setup.mak: ditto.
+ * io.c (rb_io_getline_1): rewrite nested if statement into one
+ statement.
-Tue Apr 12 15:33:09 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue Jul 9 11:04:35 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/tcltklib/tcltklib.c (ip_finalize): better modification than the
- previous commit [ruby-dev:26029].
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb (Win32::Registry#check):
+ should report the position of the error.
-Tue Apr 12 12:38:06 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb
+ (Win32::Registry#QueryValue): workaround for test-all crash.
- * ext/tcltklib/tcltklib.c (ip_finalize): fix SEGV when Tcl_GlobalEval()
- modifies the argument string to eval.
+Tue Jul 9 10:27:56 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Apr 12 02:21:55 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb
+ (Win32::Registry.expand_environ): use suitable encoding for the
+ string.
- * ext/tcltklib/tcltklib.c (ip_finalize): add existence check of
- Tcl commands before calling Tcl_GlobalEval().
+ * 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.
-Mon Apr 11 23:47:21 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Tue Jul 9 10:02:45 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/drb/drb.rb: [druby-ja:123] fix: When reference of my object is
- loaded, the object is tainted.
+ * ext/{dl,fiddle}/win32/lib/win32/registry.rb
+ (Win32::Registry::Error#initialize): use suitable encoding for the
+ string.
- * test/drb/test_drb.rb: ditto.
+Tue Jul 9 09:46:53 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Apr 11 22:18:23 2005 WATANABE Hirofumi <eban@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.
- * dir.c, file.c (lstat): avoid warnings for mingw.
+ * ext/fiddle/win32/lib/win32/registry.rb: same changes of r41838 and
+ this revision of dl's win32/registry.rb.
-Mon Apr 11 20:11:06 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue Jul 9 07:39:45 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tcltklib/tcltklib.c (ip_finalize): adhoc patch to avoid SEGV
- when exit on Tcl/Tk8.3.x.
+ * lib/rubygems: Update to RubyGems 2.0.4. See
+ https://github.com/rubygems/rubygems/blob/2.0/History.txt for changes
-Mon Apr 11 15:26:25 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Jul 9 01:47:16 2013 Tanaka Akira <akr@fsij.org>
- * lib/mkmf.rb (configuration): shouldn't output hdrdir twice.
+ * bignum.c (biglsh_bang): Don't shift a BDIGIT with BITSPERDIG bits.
+ (bigrsh_bang): Ditto.
-Mon Apr 11 12:09:05 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Tue Jul 9 01:17:57 2013 Tanaka Akira <akr@fsij.org>
- * {bcc32,win32,wince}/Makefile.sub: ri data was not installed
- into correct path. [ruby-dev:26011]
+ * bignum.c (bigrsh_bang): Fix bignum digits overrun.
- * bcc32/Makefile.sub: defaulted install-nodoc. [ruby-dev:26011]
+Tue Jul 9 00:46:22 2013 Tanaka Akira <akr@fsij.org>
-Sun Apr 10 10:12:42 2005 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * bignum.c (biglsh_bang): Fix bignum digits under-run.
- * ext/win32ole/win32ole.c(ole_invoke): retry after converting Qnil
- to VT_EMPTY.
+Mon Jul 8 23:36:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/win32ole/win32ole/tests/testWIN32OLE.rb: correct error
- message string "Unknown" => "unknown".
+ * ext/dl/win32/lib/win32/registry.rb (Error, API): use WCHAR
+ interfaces. c.f. [Bug #8508]
-Sat Apr 9 18:20:31 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Jul 8 23:13:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/image.rb: support to create TkImage object without
- creating a new image object on Tk.
+ * 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]
- * ext/tk/lib/tk/menu.rb: use TkCommandNames on create_self()
+ * numeric.c (finite): add declaration for strict ANSI.
+ [ruby-core:55312] [Bug #8495]
- * ext/tk/lib/tk/root.rb: TkRoot.to_eval() returns '.'.
+ * 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]
- * ext/tk/lib/tk/text.rb: add methods to create a TkText::IndexString
- from (x, y) coords.
+ * win32/win32.c (gettimeofday): use __cdecl instead of _cdecl.
- * ext/tk/lib/tkextlib/tile/: add demo and update support status.
+Mon Jul 8 22:41:12 2013 Tanaka Akira <akr@fsij.org>
-Sat Apr 9 14:42:29 2005 Kouhei Sutou <kou@cozmixng.org>
+ * bignum.c (bary_mul): Arguments for work memory added.
+ (bary_mul_balance): Ditto.
+ (bary_mul_karatsuba): Ditto.
- * sample/rss/tdiary_plugin/rss-recent.rb: supported configuration
- via Web browser.
+Mon Jul 8 22:03:30 2013 Tanaka Akira <akr@fsij.org>
-Sat Apr 9 11:59:57 2005 Kouhei Sutou <kou@cozmixng.org>
+ * bignum.c (rb_big_sq_fast): New function for testing.
+ (rb_big_mul_toom3): Ditto.
- * lib/rss: backoported from HEAD.
+ * internal.h (rb_big_sq_fast): Declared.
+ (rb_big_mul_toom3): Ditto.
- * lib/rss: refactored.
- - gave a name to 'x'.
- - undef_method -> remove_method for avoiding a warning in ruby 1.6.
+Mon Jul 8 21:59:34 2013 Tanaka Akira <akr@fsij.org>
+ * bignum.c (bary_mul_balance): Initialize a local variable to suppress
+ a warning.
- * lib/rss/parser.rb: @@setter -> @@setters.
+Mon Jul 8 20:55:22 2013 Tanaka Akira <akr@fsij.org>
- * lib/rss/parser.rb
- (RSS::BaseListener.register_uri)
- (RSS::BaseListener.uri_registered?)
- (RSS::BaseListener.install_get_text_element):
- swapped the first argument and the second argument.
+ * bignum.c (bary_mul_balance): Reduce work memory.
- * lib/rss/taxonomy.rb: swapped the first argument and the second
- argument for RSS::BaseListener.install_get_text_element.
- * lib/rss/image.rb: ditto.
- * lib/rss/syndication.rb: ditto.
- * lib/rss/dublincore.rb: ditto.
- * lib/rss/parser.rb: ditto.
- * lib/rss/1.0.rb: ditto.
- * lib/rss/2.0.rb: ditto.
- * lib/rss/0.9.rb: ditto.
- * lib/rss/content.rb: ditto.
+Mon Jul 8 08:26:15 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
- * lib/rss/parser.rb
- (RSS::BaseListener.install_setter)
- (RSS::BaseListener.register_uri): changed fallback way.
+ * test/openssl/test_pkey_ec.rb: Skip tests for "Oakley" curves as
+ they are not suitable for ECDSA.
+ [ruby-core:54881] [Bug #8384]
- * lib/rss/parser.rb: added class name registry for complex model
- elements. (ex. have childlen elements, have some attributes and
- a child element and so on.)
+Mon Jul 8 08:03:01 2013 Tanaka Akira <akr@fsij.org>
+ * bignum.c (bary_mul): Add a RB_GC_GUARD.
- * lib/rss/dublincore.rb: supported multiple Dublin Core items.
- * lib/rss/maker/dublincore.rb: ditto.
+Sun Jul 7 23:56:32 2013 Tanaka Akira <akr@fsij.org>
- * lib/rss/maker/image.rb: supproted new Dublin Core API.
+ * bignum.c (bary_mul_karatsuba): Unreachable code removed. Remove
+ several branches.
+Sun Jul 7 22:59:06 2013 Tanaka Akira <akr@fsij.org>
- * lib/rss/maker/base.rb: added default current_element implementation.
+ * internal.h (rb_big_mul_normal): Declared.
+ (rb_big_mul_balance): Ditto.
+ (rb_big_mul_karatsuba): Ditto.
+ * bignum.c (rb_big_mul_normal): New function for tests.
+ (rb_big_mul_balance): Ditto.
+ (rb_big_mul_karatsuba): Ditto.
- * lib/rss/trackback.rb (RSS::TrackBackUtils.new_with_value_if_need):
- moved to RSS::Utils.
+Sun Jul 7 19:21:30 2013 Tanaka Akira <akr@fsij.org>
- * lib/rss/utils.rb (RSS::Utils.new_with_value_if_need):
- moved from RSS::TrackBackUtils.
+ * bignum.c: Reorder functions to decrease forward reference.
+Sun Jul 7 14:41:57 2013 Tanaka Akira <akr@fsij.org>
- * lib/rss/maker/image.rb: fixed invalid argument of
- add_need_initialize_variable bug.
- * lib/rss/maker/trackback.rb: ditto.
+ * 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.
+Sun Jul 7 11:54:33 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/rss/rss.rb (Hash#merge): added for ruby 1.6.
+ * NEWS: Add REXML::Text#<< related updates.
- * lib/rss/rss.rb (RSS::BaseModel.date_writer): changed to accept nil
- for date value.
+Sun Jul 7 11:49:19 2013 Kouhei Sutou <kou@cozmixng.org>
+ * lib/rexml/text.rb (REXML::Text#<<): Support appending in not
+ "raw" mode. [Bug #8602] [ruby-dev:47482]
+ Reported by Ippei Obayashi. Thanks!!!
- * test/test_dublincore.rb: added tests for plural accessor and
- multiple Dublin Core items.
+Sun Jul 7 11:43:13 2013 Kouhei Sutou <kou@cozmixng.org>
- * test/test_setup_maker_1.0.rb: fixed swapped actual and expected
- values.
+ * lib/rexml/text.rb (REXML::Text#<<): Support method chain use by "<<"
+ like other objects.
- * test/rss/rss-assertions.rb (assert_multiple_dublin_core): added
- an assertion for testing multiple Dublin Core items.
+Sun Jul 7 11:34:18 2013 Kouhei Sutou <kou@cozmixng.org>
- * test/rss/test_maker_dc.rb (test_rss10_multiple): added a test
- for making multiple Dublin Core items.
+ * lib/rexml/text.rb (REXML::Text#clear_cache): Extract common
+ cache clear code.
- * test/rss/test_maker_dc.rb (test_date): added a test for #date=
- and #dc_date=.
+Sun Jul 7 11:01:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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].
- * sample/rss/tdiary_plugin/rss-recent.rb:
- new option: @options['rss-recent.use-image-link']:
- use image as link instread of text if available.
+Sun Jul 7 10:07:22 2013 Tanaka Akira <akr@fsij.org>
- * sample/rss/tdiary_plugin/rss-recent.rb (RSS_RECENT_VERSION):
- 0.0.5 -> 0.0.6.
+ * 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.
-Fri Apr 8 20:17:48 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jul 6 07:37:43 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
- * ext/extmk.rb (extmake): hdrdir needs to be defined also in
- Config::CONFIG.
+ * 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]
- * lib/mkmf.rb (configuration, create_makefile): get rid of recursive
- macro reference.
+ Thanks to Vit Ondruch for providing the patch!
-Fri Apr 8 18:26:56 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sat Jul 6 07:12:39 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
- * ext/openssl/ossl_ssl.c: add callbacks to OpenSSL::SSL::SSLContexts.
- - SSLContext#client_cert_cb=(aProc). it is called when a client
- certificate is requested by a server and no certificate was not
- set for the SSLContext. it must return an Array which includes
- OpenSSL::X509::Certificate and OpenSSL::PKey::RSA/DSA objects.
- - SSLContext#tmp_dh_callback=(aProc). it is called in key
- exchange with DH algorithm. it must return an OpenSSL::PKey::DH
- object.
+ * test/openssl/test_x509crl.rb: Remove unused variable.
+ [ruby-core:53501] [Bug #8114]
- * ext/openssl/ossl_ssl.c (ossl_sslctx_set_ciphers): ignore the
- argument if it's nil.
+ Thanks, Vipul Amler, for pointing this out!
- * ext/openssl/ossl_pkey.c
- (GetPrivPKeyPtr, ossl_pkey_sign): should call rb_funcall first.
- (DupPrivPKeyPtr): new function.
+Sat Jul 6 06:37:10 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
- * ext/openssl/ossl_pkey_dh.c: add default DH parameters.
+ * 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/openssl/ossl_pkey.h: ditto.
+ Thanks, Dirkjan Bussink, for the patch!
-Fri Apr 8 01:55:20 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sat Jul 6 06:06:16 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
- * ext/tk/sample/demos-{en,jp}/goldberg.rb: reduced window size.
- [ruby-dev:25992]
+ * 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:
-Thu Apr 7 23:58:40 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ [id, criticality, octet_string] if critical,
+ [id, octet_string] if not.
- * ext/extmk.rb (extmake): keep directory names in Makefile as macros.
+ Making sure to pick the last element of X509 extension and use it as
+ SAN value.
+ [ruby-core:55685] [Bug #8575]
- * lib/mkmf.rb (configuration, create_makefile): ditto.
+ Thank you @nahi for providing the patch!
- * lib/mkmf.rb (CXX_EXT): separate C++ extensions.
+Sat Jul 6 04:49:38 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Thu Apr 7 17:43:25 2005 Shugo Maeda <shugo@ruby-lang.org>
+ * 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.
- * eval.c (rb_call0): "return" event hook should be always executed
- if event_hooks is set. fixed: [ruby-core:04662]
- (backported from HEAD)
+Fri Jul 5 20:46:39 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Apr 4 23:17:52 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * ext/tk/lib/tk.rb (TkComm#array2tk_list): accept enc-mode argument to
- decide whether convert encoding of each element or not.
+Fri Jul 5 19:05:40 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/tk/lib/tk/variable.rb (TkVariable#value=): fail to convert the
- encoding of array elements when assign an array to an TkVariable
- object.
+ * 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".
-Mon Apr 4 10:26:48 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Fri Jul 5 16:21:56 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/tk/lib/tk/dialog.rb: fixed typo.
+ * 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
-Sun Apr 3 17:16:33 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.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.
- * win32/win32.{h,c} (rb_w32_fdopen): avoid warning on bcc32.
- (backported from HEAD)
+Fri Jul 5 12:14:40 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Sat Apr 2 23:38:54 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_notfound): after
+ r41710, the path of command uses backslash as the separator on
+ Windows.
- * configure.in (CP, INSTALL): get rid of less portable options.
+Fri Jul 5 11:29:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/mkmf.rb (configuration, create_makefile): correct configuration
- variable.
+ * 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.
- * {bcc32,win32,wince}/{Makefile.sub,setup.mak}: leave prefix empty in
- config.status for backward compatibility. fixed: [ruby-core:04649]
+Fri Jul 5 11:08:00 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/mkmf.rb (create_makefile): ensure library directories get made
- before copying libraries there.
+ * 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.
-Sat Apr 2 16:59:46 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+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.
- * ext/tk/lib/tk.rb: forgot to update RELEASE_DATE
+Fri Jul 5 05:39:53 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/variable.rb: fix namespace trouble when autoloading
+ * bignum.c (BARY_MUL1): Renamed from BARY_MUL.
+ (bary_mul1): Renamed from bary_mul.
+ (bary_mul): Renamed from bary_mul2.
- * ext/tk/lib/tk/palette.rb: define Tcl variable 'tkPalette' as global
+Fri Jul 5 04:58:05 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/dialog.rb: use array2tk_list method when calling
- Tk.ip_eval.
+ * bignum.c (bary_mul_balance): Extracted from bigmul1_balance and
+ use bary_mul2 and bary_add to decrease allocations.
- * ext/tk/lib/tk/autoload.rb: add autoload entry 'TkDialogObj' and
- 'TkWarningObj'
+Fri Jul 5 02:14:00 2013 Akinori MUSHA <knu@iDaemons.org>
-Sat Apr 2 02:19:11 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * ext/tk/lib/tk.rb (TkWindow.initialize): accept 'without_creating'
- option without 'widgetname' option to allow creating a widget object
- which is used as an argument of Tcl/Tk's widget allocation commands.
+ * 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/tk/lib/tk/image.rb (TkImage.initialize): accept 'imagename'
- option to create a image object by the given name.
+Fri Jul 5 00:25:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Mar 31 22:23:51 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/mkmf.rb (have_framework): allow header file to check.
+ [ruby-core:55745] [Bug #8593]
- * lib/mkmf.rb (SRC_EXT): exclude just case different suffixes on case
- insensitive file system platforms.
+Thu Jul 4 22:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * README.EXT, README.EXT.ja (Appendix C): utility functions.
+ * 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
-Thu Mar 31 14:15:44 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Thu Jul 4 20:39:20 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_engine.c (ossl_engine_s_load): should return
- value. [ruby-dev:25971]
+ * tool/make-snapshot: Exit with EXIT_FAILURE when it fails.
-Thu Mar 31 08:25:50 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jul 4 20:20:23 2013 Tanaka Akira <akr@fsij.org>
- * common.mk (RUBYOPT): clear for the environment RubyGems installed.
+ * 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.
- * common.mk (clean-local): keep $(PREP) files till distclean.
+Thu Jul 4 18:25:25 2013 Tanaka Akira <akr@fsij.org>
- * common.mk (check): do all tests.
+ * bignum.c (rb_cstr_to_inum): Avoid temporary buffer allocation except
+ very big base non-power-of-2 numbers.
-Thu Mar 31 06:00:20 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Thu Jul 4 15:51:56 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/openssl/ossl_engine.c (ossl_engine_s_load): should not raise
- error even if the specified engine could not be loaded. (Dynamic
- engines don't have fixed name to load.)
+ * string.c (rb_str_succ): use ONIGENC_MBCLEN_CHARFOUND_P correctly.
-Thu Mar 31 00:18:27 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * string.c (rb_str_dump): ditto.
- * win32/ifchange.bat, win32/rm.bat: backported from HEAD.
+Thu Jul 4 10:04:11 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Wed Mar 30 23:44:50 2005 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+ * regcomp.c (): Merge Onigmo 5.13.5 23b523076d6f1161.
- * Makefile.in, */Makefile.sub, */configure.bat,
- cygwin/GNUmakefile.in, common.mk, configure.in, ext/extmk.rb,
- lib/mkmf.rb, instruby.rb, runruby.rb: backport extout.
- [ruby-dev:25963]
+ * [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.
-Wed Mar 30 17:41:48 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Jul 4 00:36:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/tcltklib.c: add TclTkIp#_create_console() method to
- create a Tcl/Tk's console window.
+ * internal.h (SIGNED_INTEGER_MAX): suppress warning C4146 on VC6.
+ seems a logical ORed expression becomes unsigned.
- * ext/tk/lib/multi-tk.rb: support TclTkIp#_create_console() method.
+Thu Jul 4 00:13:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/remote-tk.rb: ditto.
+ * ruby_atomic.h (rb_w32_atomic_cas): call InterlockedCompareExchange
+ directly.
- * ext/tk/lib/tk/console.rb: ditto.
+ * ruby_atomic.h (ATOMIC_CAS): fix missing function call.
- * ext/tk/lib/tk.rb: update RELEASE_DATE
+Wed Jul 3 23:47:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/sample/demo-*/check2.rb: use 'return' in the Proc object.
+ * ruby_atomic.h (ATOMIC_CAS): suppress C4022 and C4047 warnings in
+ VC6. only InterlockedCompareExchange is declared using PVOID.
- * ext/tk/sample/tkextlib/**: ditto.
+Wed Jul 3 22:29:20 2013 Tanaka Akira <akr@fsij.org>
-Tue Mar 29 22:11:56 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * internal.h (ruby_digit36_to_number_table): Declared.
- * test/rinda/test_rinda.rb: use DRbObject.new_with instead of reinit.
- [ruby-dev:25961]
+ * util.c (ruby_digit36_to_number_table): Moved from scan_digits.
-Mon Mar 28 23:40:40 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * bignum.c (conv_digit): Use ruby_digit36_to_number_table.
- * lib/drb/drb.rb: move method DRbObject#reinit to DRbObject.new_with.
- extract method DRbObject.prepare_backtrace. add DRb.regist_server,
- remove_server, fetch_server. change server in thread variable if
- in-proc server. [druby-ja:113]
+ * pack.c (hex2num): Ditto.
- * lib/drb/gw.rb: ditto.
+Wed Jul 3 18:12:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Mar 28 20:43:34 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/mkmf.rb (install_dirs): revert DESTDIR prefix by r39841, since
+ it is fixed by r41648. [ruby-core:55760] [Bug #8115]
- * ext/syck/rubyext.c: get rid of warnings caused by a bug of VC.
+Wed Jul 3 14:15:25 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Mar 28 08:39:49 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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]
- * ext/iconv/iconv.c (iconv_create): Iconv::Failure requires 3
- arguments. (pointed out by NaHi)
+Wed Jul 3 12:06:42 2013 Tanaka Akira <akr@fsij.org>
-Sat Mar 26 22:51:33 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * bignum.c (maxpow_in_bdigit): Renamed from calc_hbase and return
+ maxpow.
- * ext/tk/lib/tk.rb (_callback_entry_class?): add for checking whether
- a class is available for a callback entry.
+Tue Jul 2 23:47:50 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk.rb (after_cancel): add Tk.after_cancel(afterID) method.
+ * bignum.c (roomof): Cast to long.
+ (rb_ull2big): Fix bignew arguments.
- * ext/tk/lib/tk.rb (array2tk_list): change from private module method
- of TkComm to public module method.
+Tue Jul 2 21:17:37 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk.rb (cget): add check that slot argument is not
- empty string.
+ * bignum.c (rb_cstr_to_inum): Merge two temporary buffers.
- * ext/tk/lib/tk.rb (configinfo): ditto.
+Tue Jul 2 20:25:04 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/itemconfig.rb (itemcget): add check that slot argument
- is not empty 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.
- * ext/tk/lib/tk/itemconfig.rb (itemconfiginfo): ditto.
+Tue Jul 2 17:23:33 2013 Shugo Maeda <shugo@ruby-lang.org>
- * ext/tk/lib/tk/entry.rb: add TkEntry#icursor and icursor= (alias of
- cursor and cursor= method).
+ * doc/syntax/refinements.rdoc: add description of Module#using and
+ refinement inheritance by module inclusion.
- * ext/tk/lib/tk/font.rb: improve font treatment when the font name is
- empty string.
+Tue Jul 2 17:22:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/variable.rb: add :variable, :window and :procedure
- type.
+ * internal.h: add EUC-JP and Windows-31J.
- * ext/tk/lib/tk/variable.rb: improve treatment of array-type
- tkvariable.
+ * re.c (rb_char_to_option_kcode): use built-in encoding indexes in
+ internal.h.
- * ext/tk/lib/tkextlib/blt.rb: add commands for zooming.
+ * internal.h: add UTF8-MAC.
- * ext/tk/lib/tkextlib/blt/*: bug fix.
+ * dir.c (rb_utf8mac_encoding): use built-in encoding indexes in
+ internal.h.
- * ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix and add methods
- to call TreeCtrl commands for bindings.
+ * internal.h: add UTF-{16,32} dummy encodings.
- * ext/tk/sample/tkextlib/blt/*: new sample scripts.
+ * string.c (rb_str_inspect, str_scrub0): use built-in encoding indexes
+ in internal.h.
- * ext/tk/sample/tkextlib/treectrl/*: ditto.
+ * internal.h: add UTF-{16,32}{BE,LE}.
-Fri Mar 25 10:53:16 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+ * io.c (io_strip_bom): use built-in encoding indexes in internal.h.
- * configure.in (WIN32_LEAN_AND_MEAN): removed because a lot of
- troubles. [ruby-list:40721]
+ * internal.h (rb_{ascii8bit,utf8,usascii}_encindex): use built-in
+ encoding indexes for optimization.
-Thu Mar 24 23:10:44 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * encoding.c (enc_inspect, rb_locale_encindex),
+ (enc_set_filesystem_encoding, rb_filesystem_encindex): use built-in
+ encoding indexes directly.
- * lib/mkmf.rb (macro_defined?): try to compile for an old compiler
- which doesn't bail out at #error directive. [ruby-dev:25818]
+ * encoding.c (rb_enc_set_index, rb_enc_associate_index): validate
+ argument encoding index.
- * lib/mkmf.rb (check_sizeof): refine logging messages.
+ * include/ruby/encoding.h (ENCODING_SET): use rb_enc_set_index()
+ instead of setting inlined bits directly.
-Thu Mar 24 03:57:48 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * encoding.c (rb_enc_init): register preserved indexes.
- * lib/webrick/utils.rb (WEBrick::Utils.create_listeners):
- - should raise ArgumentError if no port is specified.
- - even if the specified port is 0, all TCPServers should be
- initialized with the port given to the first one.
+ * internal.h (ruby_preserved_encindex): move from encoding.c.
- * lib/webrick/server.rb (WEBrick::GenericServer#initialize): if :Port
- parameter is 0, it should be updated with the port number which
- actually listened.
+Tue Jul 2 11:14:36 2013 Shota Fukumori <sorah@cookpad.com>
-Wed Mar 23 00:35:10 2005 Shugo Maeda <shugo@ruby-lang.org>
+ * lib/mkmf.rb (try_config): Fix to not replace $LDFLAGS with $libs
+ (1.9.3 behavior) [ruby-core:55752] [Bug #8595]
- * test/ruby/test_settracefunc.rb (test_event): added tests for
- "class" and "end" and "raise".
+Tue Jul 2 00:39:59 2013 Tanaka Akira <akr@fsij.org>
-Tue Mar 22 22:40:18 2005 Shugo Maeda <shugo@ruby-lang.org>
+ * ext/socket/ipsocket.c (init_inetsock_internal): Don't try mismatched
+ address family if already failed.
- * eval.c (rb_call0): check event_hooks instead of trace_func.
+Mon Jul 1 23:07:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Tue Mar 22 17:30:44 2005 Shugo Maeda <shugo@ruby-lang.org>
+ * template/encdb.h.tmpl: define encoding index macros to use the index
+ statically from C source.
- * eval.c (rb_add_event_hook): new function to add a hook function for
- interpreter events. (backported form HEAD)
+Mon Jul 1 22:57:19 2013 Tanaka Akira <akr@fsij.org>
-Sun Mar 20 22:51:19 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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/mkmf.rb (mkmf_failed): check if Makefile is created without
- create_makefile.
+Mon Jul 1 20:22:00 2013 Kenta Murata <mrkn@cookpad.com>
-Sat Mar 19 23:48:10 2005 Nobuyoshi Nakada <nobu@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]
- * misc/ruby-mode.el (ruby-expr-beg): returned true always.
- fixed: [ruby-list:40683]
+ * ext/bigdecimal/bigdecimal.gemspec: Bump version to 1.2.1.
-Sat Mar 19 00:41:02 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Jul 1 20:03:39 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/font.rb: add some TkFont class methods to get font
- information without creating a TkFont object.
+ * 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.
- * ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix and define some
- classes for components of Tk::TreeCtrl
+Mon Jul 1 15:05:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Mar 17 17:42:13 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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]
- * struct.c (make_struct): allow non local-id field
- names. [ruby-core:04575]
+ * ext/stringio/stringio.c (strio_write): keep coderange of
+ ptr->string.
- * struct.c (inspect_struct): ditto.
+ * 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 Mar 16 23:36:02 2005 Shugo Maeda <shugo@ruby-lang.org>
+Mon Jul 1 12:56:41 2013 Shugo Maeda <shugo@ruby-lang.org>
- * eval.c (rb_call0): call_cfunc() should be protected.
+ * 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]
- * test/ruby/test_settracefunc.rb: added test for c-return.
+ * test/ruby/test_refinement.rb: related test.
-Wed Mar 16 22:20:25 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Mon Jul 1 12:02:39 2013 Tanaka Akira <akr@fsij.org>
- * object.c (str_to_id): fixed typo.
+ * bignum.c (rb_cstr_to_inum): Skip leading zeros.
-Wed Mar 16 18:08:32 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jul 1 00:59:23 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_call0): reorganize "return" event post.
+ * 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.
-Tue Mar 15 23:49:19 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jun 30 22:40:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/iconv/iconv.c (Init_iconv): InvalidEncoding also should include
- Iconv::Failure.
+ * lib/prime.rb: Corrected a few comments. Patch by @Nullset14.
+ Fixes GH-346.
-Tue Mar 15 16:38:11 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Jun 30 21:53:38 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/tkutil.c (ary2list): give wrong arguments to hash2kv()
+ * bignum.c (rb_cstr_to_inum): Use rb_integer_unpack if base is a power
+ of 2.
-Mon Mar 14 19:39:33 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Jun 30 10:59:23 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/timer.rb (TkTimer): forgot to clear @return_value
- when restarting
+ * 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]
- * ext/tk/lib/tk/sample/cd_timer.rb: new sample of TkRTTimer
+ * io.c (spawnv, spawn): use UTF-8 spawn family. [Bug #1771]
-Mon Mar 14 12:21:03 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * process.c (proc_exec_sh, proc_spawn_cmd, proc_spawn_sh): ditto.
- * ext/tk/lib/tk/timer.rb (TkRTTimer): forgot to reset the callback
- time. So, 'continue' do all callbacks between 'stop' and 'continue'.
+ * win32/win32.c (translate_char, join_argv, has_redirection): make
+ codepage aware.
-Mon Mar 14 08:14:56 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * win32/win32.c (rb_w32_udln_find_exe_r, rb_w32_udln_find_file_r):
+ codepage independent versions.
- * object.c (str_to_id): warn for NUL containing strings.
+ * win32/win32.c (w32_spawn): extract codepage aware code from
+ rb_w32_spawn().
-Mon Mar 14 00:13:49 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * win32/win32.c (rb_w32_uspawn): add UTF-8 version function.
- * ext/tk/lib/tk/timer.rb (TkRTTimer): correct calculation of offset
- value. get a little better accuracy.
+ * win32/win32.c (w32_aspawn_flags): extract codepage aware code from
+ rb_w32_aspawn_flags().
- * ext/tk/sample/demos-en/widget: use a binding with no local variables
- when eval a sample script.
+ * win32/win32.c (rb_w32_uaspawn_flags, rb_w32_uaspawn_flags): add
+ UTF-8 version functions.
- * ext/tk/sample/demos-en/bind.rb: ditto.
+ * win32/win32.c (w32_getenv): extract codepage aware code from
+ rb_w32_ugetenv() and rb_w32_getenv().
- * ext/tk/sample/demos-en/tcolor: ditto.
+ * win32/win32.c (w32_stati64): extract codepage aware code from
+ rb_w32_ustati64() and rb_w32_stati64().
- * ext/tk/sample/demos-jp/widget: ditto.
+ * dln.h (DLN_FIND_EXTRA_ARG, DLN_FIND_EXTRA_ARG_DECL): allow extra
+ arguments to dln_find_{exe,file}_r().
- * ext/tk/sample/demos-jp/bind.rb: ditto.
+ * dln_find.c (dln_find_exe_r, dln_find_file_r): add extract arguments.
- * ext/tk/sample/demos-jp/tcolor: ditto.
+ * process.c (EXPORT_STR, EXPORT_DUP): convert to default process
+ encoding if defined.
-Sun Mar 13 10:04:17 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * process.c (check_exec_env_i): convert environment variables too.
- * test/rinda/test_rinda.rb: remove test_gc. [ruby-dev:25871]
+ * process.c (rb_exec_fillarg): convert program path and arguments too.
-Thu Mar 10 19:12:06 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Jun 30 01:57:08 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/tcltklib.c (lib_eventloop_ensure): mis-delete a timer
- handler when exit from a recursive called eventloop
+ * bignum.c (big_rshift): Use abs2twocomp and twocomp2abs_bang.
- * ext/tk/lib/tk/timer.rb: new TkRTTimer class, which can works for a
- realtime operation
+Sun Jun 30 00:14:20 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/sample/tkrttimer.rb: sample of TkRTTimer class
+ * bignum.c (RBIGNUM_SET_NEGATIVE_SIGN): New macro.
+ (RBIGNUM_SET_POSITIVE_SIGN): Ditto.
+ (rb_big_neg): Inline get2comp to avoid double negation.
- * ext/tk/lib/tk/textmark.rb: move TkTextMark#+ and TkTextMark#- to
- TkText::IndexModMethods
+Sat Jun 29 23:26:41 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/text.rb: improve TkTextMark#+ and TkTextMark#-, and
- add them to TkText::IndexModMethods module
+ * 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.
- * ext/tk/sample/tktextio.rb: add test part of "seek by text index
- modifiers"
+Sat Jun 29 22:31:59 2013 Tanaka Akira <akr@fsij.org>
-Thu Mar 10 08:10:11 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (bary_2comp): Simplified.
- * re.c (make_regexp): need to free internal regexp structure when
- compilation fails. [ruby-talk:133228]
+Sat Jun 29 09:33:53 2013 Tanaka Akira <akr@fsij.org>
-Wed Mar 9 20:25:58 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * bignum.c (bigor_int): Return -1 if y == -1.
- * ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_write): call
- rb_sys_fail if errno isn't 0. [ruby-dev:25831]
+Sat Jun 29 09:07:16 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/lib/openssl/cipher.rb: fix typo. [ruby-dev:24285]
+ * 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.
-Wed Mar 9 15:46:35 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sat Jun 29 08:19:58 2013 Tanaka Akira <akr@fsij.org>
- * lib/webrick/server.rb (WEBrick::GenericServer#start): should
- restore @token if accept failure. suggested by Dominique Brezinski.
- [ruby-core:04518]
+ * 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.
-Wed Mar 9 13:37:57 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Jun 29 01:08:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/tk/sample/tktextio.rb: fix bug of handling 'end' position.
- support initial text, overwrite setting and pos_gravity control.
+ * 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
-Tue Mar 8 18:16:55 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * test/ruby/test_integer_comb.rb (class TestIntegerComb): add test case
- * ext/tk/sample/tktextio.rb: New sample script. TkTextIO class in this
- sample supports to use a text widget as if it is a I/O stream (such
- like as StringIO class).
+Fri Jun 28 12:26:53 2013 Tanaka Akira <akr@fsij.org>
-Tue Mar 8 13:54:40 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * bignum.c (rb_big_and): Allocate new bignum with same size to shorter
+ argument if it's high bits are zero.
- * ext/socket/socket.c: workaround for some of 4.4BSD-Lite derived OSs.
+Fri Jun 28 12:14:04 2013 Tanaka Akira <akr@fsij.org>
-Tue Mar 8 12:36:17 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/socket/ipsocket.c (init_inetsock_internal): Don't use local
+ addresses which address family is different to remote address.
- * ext/socket/socket.c: document from Sam Roberts
- <sroberts@uniserve.com> for getsockopt and setsockopt is merged.
- [ruby-doc:824]
+Fri Jun 28 08:06:22 2013 Tanaka Akira <akr@fsij.org>
-Tue Mar 8 01:27:00 2005 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (bigand_int): Add arguments, xn and hibitsx.
+ Use twocomp2abs_bang.
- * ext/nkf/nkf-utf8/nkf.c: follow nkf 1.66
- fixed: [ruby-dev:25828]
+Thu Jun 27 23:58:13 2013 Tanaka Akira <akr@fsij.org>
-Mon Mar 7 21:35:02 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * bignum.c (abs2twocomp_bang): Removed.
+ (abs2twocomp): Take n_ret argument to return actual length.
+ (rb_big_and): Follow above change.
- * sample/webrick/httpsd.rb: fix typo in comment. suggested by
- Kazuhiko Shiozaki.
+Thu Jun 27 22:52:19 2013 Tanaka Akira <akr@fsij.org>
-Mon Mar 7 14:55:43 2005 Yukihiro Matsumoto <matz@ruby-lang.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.
- * eval.c (block_pass): should not push unique number if a block is
- not an orphan. [ruby-dev:25808]
+Thu Jun 27 20:03:13 2013 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
-Wed Feb 16 02:55:21 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * ext/openssl/lib/openssl/ssl.rb (verify_certificate_identity): fix
+ hostname verification. Patched by nahi.
- * ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_read,
- ossl_ssl_write):
- - need to set errno on Win32 platform.
- - should call rb_sys_fail instead of rasing SSLError if
- SSL_ERROR_SYSCALL occured.
- - should wait for that the underlying IO become readable or
- writable if the error was SSL_ERROR_WANT_READ or
- SSL_ERROR_WANT_WRITE. [ruby-dev:25795]
+ * test/openssl/test_ssl.rb (test_verify_certificate_identity): test for
+ above.
- * ext/openssl/lib/openssl/buffering.rb
- (Buffering#initialize): should set @eof and @rbuffer.
- (Buffering#fill_rbuff): should rescue Errno::EAGAIN.
- (Buffering#consume_rbuf): pointless eof flag resetting is deleted.
- (Buffering#read): should return an empty string if the specified
- size is zero.
- (Buffering#readpartial): new method.
- (Buffering#readline): fix typo.
- (Buffering#getc): return the first character of string correctly.
- (Buffering#each): fix typo. suggested by Brian Ollenberger.
- (Buffering#readchar): fix typo.
- (Buffering#eof?): should read again it the input buffer is empty.
- (Buffering#do_write): should rescue Errno::EAGAIN.
- (Buffering#puts): use "\n" as the output field separator.
- * ext/openssl/lib/openssl/ssl.rb: set non-blocking flag to the
- underlying IO.
+Thu Jun 27 00:23:57 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/extconf.rb: get rid of GNUmakefile generation.
+ * bignum.c (rb_big_pow): Retry if y is a Bignum and it is
+ representable as a Fixnum.
+ Use rb_absint_numwords.
- * text/openssl/test_pair.rb: test for IO like methods.
+Wed Jun 26 23:53:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * test/ruby/ut_eof.rb: test about empty file.
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_save_rounding_mode): fix typo.
+ Fixes GH-343. Patch by @jgarber.
-Mon Mar 7 10:22:06 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+Wed Jun 26 23:22:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/un.rb: should use OptionParser. (backported form HEAD)
+ * enumerator.c (rb_enumeratorize_with_size): use strict definition
+ rb_enumerator_size_func.
-Mon Mar 7 09:18:42 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jun 26 23:11:14 2013 Kouhei Sutou <kou@cozmixng.org>
- * string.c (rb_str_cmp_m): should not return false but nil.
- fixed: [ruby-dev:25811]
+ * 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.
-Mon Mar 7 01:22:14 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Wed Jun 26 22:44:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/tkutil.c: remove the some codes which depend on the
- difference between Ruby1.8 and 1.9, because st.c on Ruby1.9
- was changed.
+ * include/ruby/intern.h (rb_enumeratorize_with_size): cast for
+ backward compatibility.
-Mon Mar 7 00:01:04 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * include/ruby/intern.h (rb_enumerator_size_func): define strict
+ function declaration for rb_enumeratorize_with_size().
- * ext/tcltklib/tcltklib.c: fail to call TclTkLib.mainloop when $SAFE==4
+Wed Jun 26 21:01:22 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
-Sun Mar 6 16:41:33 2005 Minero Aoki <aamine@loveruby.net>
+ * test/ruby/test_io.rb (TestIO#test_write_32bit_boundary): skip if
+ writing a file is slow.
+ [ruby-core:55541] [Bug #8519]
- * lib/net/http.rb: HTTPHeader holds its header fields as an array
- (backport from CVS HEAD rev 1.112-1.123). [ruby-list:40629]
+Wed Jun 26 16:42:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/net/http/test_httpheader.rb: new file.
+ * 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.
-Sun Mar 6 11:47:10 2005 Sam Roberts <sroberts@uniserve.com>
+Wed Jun 26 12:48:22 2013 Tanaka Akira <akr@fsij.org>
- * lib/pp.rb: rdoced. [ruby-core:4490]
+ * bignum.c (bigxor_int): Fix a buffer over read.
-Sun Mar 6 11:36:37 2005 Tanaka Akira <akr@m17n.org>
+Wed Jun 26 12:13:12 2013 Tanaka Akira <akr@fsij.org>
- * lib/pp.rb (File::Stat#pretty_print): Etc.getpwuid and Etc.getgrgid
- may return nil. [ruby-talk:129826]
- reported by Daniel Berger.
+ * 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).
-Sat Mar 5 18:06:21 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Jun 26 12:08:51 2013 Tanaka Akira <akr@fsij.org>
- * dir.c (fnmatch): removed unnecessary code. (ruby_1_8 didn't have
- String#clear, so [ruby-dev:24749] didn't affect it)
+ * test/socket/test_udp.rb: Close sockets explicitly.
+ Don't use fixed port number.
- * win32/win32.c (NtInitialize): ditto. (by numeric.c 1.101.2.14)
+Wed Jun 26 07:27:17 2013 Tanaka Akira <akr@fsij.org>
-Sat Mar 5 16:29:26 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * bignum.c (bigand_int): Fix a buffer over read.
- * ext/tk/lib/multi-tk.rb: freeze callback-entry objects
+Wed Jun 26 06:48:07 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkextlib/tile.rb: support tile-0.6
+ * bignum.c (bigadd_int): Fix a buffer over read.
-Fri Mar 4 19:39:28 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 26 01:18:13 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#do_includes): replace
- also locally defined modules.
+ * 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/iconv/iconv.c: backport Iconv::InvalidEncoding from CVS HEAD.
+Wed Jun 26 01:17:29 2013 Tanaka Akira <akr@fsij.org>
- * ext/strscan/strscan.c: moved misplaced rdoc.
+ * bignum.c (bigsub_int): Fix a buffer over read.
-Fri Mar 4 15:58:12 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Jun 25 22:45:43 2013 Tanaka Akira <akr@fsij.org>
- * lib/cgi-lib.rb: add deprecation warning. [ruby-dev:25499]
- getopts.rb, parsearg.rb, importenv.rb as well.
+ * bignum.c (rb_absint_singlebit_p): Use POW2_P.
+ (bary_pack): Ditto.
+ (rb_big2str0): Ditto.
+ (POW2_P): Moved to top.
-Fri Mar 4 11:17:06 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue Jun 25 22:28:07 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/tcltklib/tcltklib.c (ip_rbUpdateCommand): get rid of
- warnings with Tcl/Tk 8.3 or former (backport from CVS_HEAD).
+ * 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]
- * ext/tcltklib/tcltklib.c (ip_rb_threadUpdateCommand): ditto.
+Tue Jun 25 21:43:13 2013 Tanaka Akira <akr@fsij.org>
-Fri Mar 4 10:15:30 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (big2dbl): Use (BDIGIT)1 instead of 1UL.
+ (bary_mul_normal): Remove a useless cast.
- * lib/set.rb (SortedSet::setup): a hack to shut up warning.
- [ruby-talk:132866]
+Tue Jun 25 21:26:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Fri Mar 4 07:07:00 2005 NARUSE, Yui <naruse@ruby-lang.org>
+ * 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
- * ext/nkf/nkf-utf8/nkf.c: follow nkf 1.63
+Tue Jun 25 20:36:31 2013 Tanaka Akira <akr@fsij.org>
-Thu Mar 3 23:49:00 2005 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (big2ulong): "check" argument removed.
+ (rb_big2ulong): Follow above change.
+ (rb_big2long): Ditto.
+ (rb_big_rshift): Ditto.
+ (rb_big_aref): Ditto.
- * ext/nkf/nkf-utf8/nkf.c: follow nkf 1.62
+Tue Jun 25 20:08:29 2013 Tanaka Akira <akr@fsij.org>
-Thu Mar 3 11:49:51 2005 Kouhei Sutou <kou@cozmixng.org>
+ * bignum.c (rb_big2ulong_pack): Use rb_integer_pack.
+ (rb_big_aref): Call big2ulong with TRUE for "check" argument.
+ It should be non-effective.
- * sample/rss/tdiary_plugin/rss-recent.rb: added site information.
+Tue Jun 25 19:07:33 2013 Tanaka Akira <akr@fsij.org>
-Wed Mar 2 19:53:07 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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
- * ext/extmk.rb (parse_args): add DESTDIR only when not directed
- already. fixed: [ruby-dev:25781]
+Tue Jun 25 19:03:00 2013 Tanaka Akira <akr@fsij.org>
-Wed Mar 2 17:14:18 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * bignum.c (big2ulong): Add a cast.
+ (big2ull): Add a specialized code for SIZEOF_LONG_LONG <=
+ SIZEOF_BDIGITS.
- * ext/tcltklib/tcltklib.c (lib_eventloop_core): fix typo
+Tue Jun 25 12:42:57 2013 Tanaka Akira <akr@fsij.org>
-Wed Mar 2 16:00:02 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * bignum.c (integer_unpack_single_bdigit): Use "1 + ~u" instead of
+ "-u" to suppress warning (C4146) by Visual Studio.
+ Reported by ko1 via IRC.
- * ext/tcltklib/tcltklib.c: enforce thread-check and exception-handling
- to avoid SEGV trouble.
- [KNOWN BUG] When supports pthread and running multiple Tk
- interpreters, an interrupt signal causes SEGV frequently. That
- may be a trouble of Ruby's signal handler.
+Tue Jun 25 12:28:57 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/tkutil/tkutil.c; fix a bug on converting a SJIS string array
- to a Tcl's list string.
+ * bignum.c (big2ulong): Add code specialized for SIZEOF_LONG <=
+ SIZEOF_BDIGITS.
+ This prevents shift width warning from "num <<= BITSPERDIG".
- * ext/tk/tcltklib.c: wrap Tcl's original "namespace" command to
- protect from namespace crash.
+Tue Jun 25 12:23:30 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/multi-tk.rb: enforce exception-handling.
+ * gc.c: fix oldgen/remembered_shady counting algorithm.
- * ext/tk/lib/multi-tk.rb: catch IRB_EXIT to work on irb.
+ * gc.c (rgengc_check_shady): increment
+ `objspace->rgengc.remembered_shady_object_count' here.
- * ext/tk/lib/tk.rb: ditto.
+ * gc.c (rgengc_remember): return FALSE if obj is already remembered.
- * ext/tk/tcltklib.c: add TclTkLib.mainloop_thread?
+ * gc.c (rgengc_rememberset_mark): make it void.
- * ext/tk/lib/multi-tk.rb: (bug fix) callback returns a value.
+ * gc.c (gc_mark_children): fix to double counting oldgen_object_count
+ at minor GC.
- * ext/tk/lib/tk/canvas.rb (delete): bug fix when multiple arguments.
+Tue Jun 25 12:07:18 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/clock.rb: fix 'no method error'.
+ * 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.
- * ext/tk/lib/clock.rb (self.clicks): accept a Symbol argument.
+ * marshal.c (shortlen): Use SIZEOF_BDIGITS instead of sizeof(BDIGIT).
- * ext/tk/lib/variable.rb: be able to set default_value_type; :numeric,
- :bool, :string, :symbol, :list, :numlist or nil (default; same to
- :string). If set a type, TkVariable#value returns a value of the
- type.
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): Use SIZEOF_BDIGITS
+ instead of sizeof(BDIGIT).
- * ext/tk/lib/tkextlib/tclx/tclx.rb: add Tk::TclX.signal to warn the
- risk of using TclX extension's 'signal' command.
+Tue Jun 25 11:40:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/sample/irbtk.rb: irb with Ruby/Tk.
+ * bignum.c (big2ulong): suppress shorten-64-to-32 warning. BDIGIT can
+ be bigger than long now.
- * ext/tk/sample/demos-*/anilabel.rb: bug fix on 'show code'
+ * bignum.c (LSHIFTX): remove redundant never-true expression.
- * ext/tk/sample/demos-*/aniwave.rb: new Ruby/Tk animation demo.
+Tue Jun 25 00:55:54 2013 Masaya Tarui <tarui@ruby-lang.org>
- * ext/tk/sample/demos-*/pendulum.rb: ditto.
+ * 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.
- * ext/tk/sample/demos-*/goldberg.rb: ditto.
+Mon Jun 24 23:30:31 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/sample/demos-*/widget: add entries of animation demos.
+ * bignum.c (integer_unpack_single_bdigit): Refine code to filling
+ higher bits and use BIGLO.
-Tue Mar 1 00:47:43 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Mon Jun 24 22:26:31 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * test/rinda/test_rinda.rb: backport from CVS_HEAD. use
- MockClock.sleep instead of Kernel.sleep [ruby-dev:25387]
+ * test/rinda/test_rinda.rb (RingIPv6#prepare_ipv6):
+ ifindex() function may not be implemented on Windows. We use another
+ check for the case.
-Tue Mar 1 00:34:24 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Mon Jun 24 22:11:37 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * lib/rinda/tuplespace.rb (Rinda::TupleSpace): improved keeper thread.
+ * test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_nolock):
+ skip a failing test on Windows because flock() implementation is
+ different from Unix.
- * test/rinda/test_rinda.rb: ditto.
+Mon Jun 24 22:06:14 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
-Mon Feb 28 11:42:23 2005 Ian Macdonald <ian@caliban.org>
+ * 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]
- * exception error messages updated. [ruby-core:04497]
+Mon Jun 24 22:04:02 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
-Mon Feb 28 09:03:09 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * ext/socket/socket.c (Init_socket): add bunch of Socket
- constants. Patch from Sam Roberts <sroberts@uniserve.com>.
- [ruby-core:04409]
+Mon Jun 24 22:04:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Wed Feb 23 15:04:32 2005 akira yamada <akira@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
- * lib/uri/generic.rb (split_userinfo): should split ":pass" into ""
- and "pass". [ruby-dev:25667]
+Mon Jun 24 20:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Wed Feb 23 08:00:18 2005 Yukihiro Matsumoto <matz@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
+ * 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
- * array.c (rb_ary_s_create): no need for negative argc check.
- [ruby-core:04463]
+Mon Jun 24 07:57:18 2013 Masaya Tarui <tarui@ruby-lang.org>
- * array.c (rb_ary_unshift_m): ditto.
+ * 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.
-Wed Feb 23 01:57:46 2005 Shugo Maeda <shugo@ruby-lang.org>
+Mon Jun 24 02:53:09 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/net/imap.rb (initialize): handle certs correctly. Thanks,
- NABEYA Kenichi. (backported from CVS HEAD)
+ * array.c: Return value in Array overview example found by @PragTob
+ [Fixes GH-336] https://github.com/ruby/ruby/pull/336
-Tue Feb 22 07:25:18 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 24 02:45:51 2013 Zachary Scott <zachary@zacharyscott.net>
- * parse.y (parser_yylex): identfier after dot must not be a variable.
+ * array.c (rb_ary_zip): typo by @PragTob [Fixes GH-337]
+ https://github.com/ruby/ruby/pull/337
-Mon Feb 21 10:04:49 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Jun 24 02:42:01 2013 Zachary Scott <zachary@zacharyscott.net>
- * {bcc32,win32,wince}/Makefile.sub (config.h): add fcntl.
+ * win32/README.win32: grammar typo by @blankenshipz [Fixes GH-334]
+ https://github.com/ruby/ruby/pull/334
- * win32/win32.[ch] (fcntl): ditto.
+Mon Jun 24 00:59:35 2013 Tanaka Akira <akr@fsij.org>
- * win32/win32.c (rb_w32_connect): support nonblocking mode.
+ * 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 (wait_connectable, ruby_connect): support
- nonblocking connect on various platforms.
- all changes are backported from CVS HEAD. [ruby-core:3154],
- [ruby-core:4364].
+Sun Jun 23 23:05:58 2013 Tanaka Akira <akr@fsij.org>
-Sun Feb 20 00:48:48 2005 Tanaka Akira <akr@m17n.org>
+ * 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.
- * lib/open-uri.rb (URI::FTP#buffer_open): access mechanism
- re-implemented according to RFC 1738.
- reported by Guillaume Marcais. [ruby-talk:131650]
+ * include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): Define it only if it is
+ not defined yet.
-Sat Feb 19 18:11:47 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Sun Jun 23 17:29:51 2013 Tanaka Akira <akr@fsij.org>
- * lib/drb/drb.rb (DRbObject#respond_to?): take two arguments.
- [ruby-dev:25722]
+ * bignum.c (integer_unpack_single_bdigit): Use a cast.
- * test/drb/drbtest.rb: ditto.
+Sun Jun 23 15:38:07 2013 Koichi Sasada <ko1@atdot.net>
-Sat Feb 19 13:52:02 2005 Tanaka Akira <akr@m17n.org>
+ * bootstraptest/test_thread.rb: rescue resource limitation errors.
- * lib/open-uri.rb: call OpenSSL::SSL::SSLSocket#post_connection_check
- after connection is made.
+Sun Jun 23 08:19:27 2013 Tanaka Akira <akr@fsij.org>
-Sat Feb 19 01:32:03 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * bignum.c (integer_unpack_single_bdigit): Extracted from
+ bary_unpack_internal.
- * ext/bigdecimal/lib/bigdecimal/newton.rb: resolved LoadError.
- [ruby-dev:25685]
+Sun Jun 23 07:41:52 2013 Tanaka Akira <akr@fsij.org>
- * ext/bigdecimal/sample/linear.rb: ditto.
+ * bignum.c (bary_unpack_internal): Suppress warnings (C4146) on Visual Studio.
+ Reported by ko1 via IRC.
- * ext/bigdecimal/sample/nlsolve.rb: ditto.
+Sun Jun 23 06:49:28 2013 Koichi Sasada <ko1@atdot.net>
- * ext/bigdecimal/lib/bigdecimal/nlsolve.rb: removed because this file
- is sample script and same file exists in ext/bigdecimal/sample.
+ * 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(),
-Fri Feb 18 17:14:00 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * class.c, eval.c, hash.c: use OBJ_WB_UNPROTECT().
- * lib/xmlrpc/parser.rb (XMLRPC::FaultException): make it subclass
- of StandardError class, not Exception class. [ruby-core:04429]
+Sun Jun 23 05:41:32 2013 Koichi Sasada <ko1@atdot.net>
-Thu Feb 17 20:11:18 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * 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/drb/drb.rb (DRbServer.default_safe_level): fix typo.
+ * vm_method.c (rb_method_entry_make): add write barriers.
-Thu Feb 17 20:11:18 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jun 23 01:27:54 2013 Tanaka Akira <akr@fsij.org>
- * test/digest/test_digest.rb: separate test case for each algorithms.
- [ruby-dev:25412]
+ * bignum.c (bytes_zero_p): Removed.
+ (bary_pack): Don't call bytes_zero_p.
-Thu Feb 17 11:54:00 2005 Nathaniel Talbott <ntalbott@ruby-lang.org>
+Sun Jun 23 00:51:29 2013 Tanaka Akira <akr@fsij.org>
- * lib/test/unit/collector.rb (collect_file): now deletes paths added
- to $LOAD_PATH instead of restoring it verbatim.
+ * bignum.c (bytes_zero_p): Extracted from bary_pack.
+ (bary_pack): Use bytes_zero_p.
- * lib/test/unit/autorunner.rb (AutoRunner.run): fixed so that
- 'ruby -rtest/unit -rtest1 -rtest2 -e0' will use the objectspace
- collector again. Also tried to simplify the calling convention.
+Sun Jun 23 00:16:57 2013 Tanaka Akira <akr@fsij.org>
- * test/runner.rb: adjusted for new AutoRunner semantics.
+ * bignum.c (MSB): New macro.
+ (bary_unpack_internal): Use MSB.
+ (bary_divmod): Ditto.
+ (bigdivrem): Ditto.
- * lib/test/unit.rb: ditto.
+Sat Jun 22 23:45:22 2013 Tanaka Akira <akr@fsij.org>
-Thu Feb 17 04:21:47 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (bary_swap): New function.
+ (bary_pack): Use bary_swap.
+ (bary_unpack_internal): Ditto.
- * lib/open3.rb (Open3::popen3): $? should not be EXIT_FAILURE.
- fixed: [ruby-core:04444]
+Sat Jun 22 23:18:39 2013 Tanaka Akira <akr@fsij.org>
-Thu Feb 17 00:09:45 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * 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.
- * test/drb/ignore_test_drb.rb: move TestDRbReusePort to new file
- [ruby-dev:25238]
+Sat Jun 22 21:46:18 2013 Tanaka Akira <akr@fsij.org>
- * test/drb/test_drb.rb: add method DRbService.ext_service, move
- TestDRbReusePort to new file [ruby-dev:25238]
+ * bignum.c (rb_integer_unpack): Don't allocate a Bignum if possible.
- * test/drb/test_drb.rb: ditto.
+Sat Jun 22 21:03:58 2013 Tanaka Akira <akr@fsij.org>
- * test/drb/test_drbssl.rb: ditto.
+ * pack.c (pack_unpack): Remove specialized unpackers for integers.
- * test/drb/test_drbunix.rb: ditto.
+Sat Jun 22 20:36:50 2013 Tanaka Akira <akr@fsij.org>
- * test/drb/ut_drb.rb: reduce sleep.
+ * 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.
-Thu Feb 17 00:02:27 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 22 18:53:10 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (is_defined): NODE_IASGN is an assignment.
+ * 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.
-Wed Feb 16 23:34:30 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * internal.h (INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION): Defined.
- * lib/drb/drb.rb: add lazy stop_service. ([druby-ja:109])
+Sat Jun 22 15:41:25 2013 Koichi Sasada <ko1@atdot.net>
- * lib/drb/extserv.rb: ditto.
+ * gc.c (rgengc_check_shady): add new WB miss checking
+ on RGENGC_CHECK_MODE >= 2.
-Wed Feb 16 17:07:57 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ (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.
- * ext/tk/tkutil.c: Follow the change of st.c (st_foreach)
- [ruby-list:40623].
- Sometimes mis-convert from a Ruby's Array of SJIS Strings, which
- includes some kind of SJIS characters, to a Tcl's UTF8 list string.
+ This idea of this checker is by Masaya Tarui <tarui@ruby-lang.org>.
-Mon Feb 14 23:58:17 2005 Kouhei Sutou <kou@cozmixng.org>
+Sat Jun 22 15:25:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * lib/rss/parser.rb (RSS::ListenerMixin::tag_end):
- fixed invalid namespace handling bug.
+ * ext/etc/etc.c (setup_passwd): revert r41560, unnecessary
-Mon Feb 14 13:12:38 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sat Jun 22 14:39:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/openssl/lib/openssl/ssl.rb
- (OpenSSL::SSL::SSLSocket#post_connection_check): new method.
+ * 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
-Mon Feb 14 00:40:49 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Sat Jun 22 14:35:40 2013 Tanaka Akira <akr@fsij.org>
- * lib/drb/drb.rb (InvokeMethod.perform): pass DRb info to sub thread.
+ * ext/dl/cfunc.c (rb_dlcfunc_call): Use rb_big_pack instead of
+ rb_big2ulong_pack and rb_big2ull.
- * test/drb/test_drb.rb (test_01_safe1_safe4_eval): fix test case.
+ * include/ruby/intern.h (rb_big2ulong_pack): Deprecated.
-Sun Feb 13 23:13:46 2005 Kouhei Sutou <kou@cozmixng.org>
+Sat Jun 22 14:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * lib/rss/dublincore.rb (RSS::DublicCoreModel#date{,=}): added
- convenient methods.
+ * 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/rss/0.9.rb (RSS::Rss::Channel#date{,=}): ditto.
+Sat Jun 22 13:47:13 2013 Tanaka Akira <akr@fsij.org>
- * lib/rss/2.0.rb (RSS::Rss::Channel::Item#date{,=}): ditto.
+ * bignum.c (bary_pack): MEMZERO can be used even if nails is not zero.
- * test/rss/: added tests for the convenient methods.
+Sat Jun 22 13:43:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Sun Feb 13 22:43:03 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * ext/etc/etc.c (etc_getpwnam): use PRIsVALUE in format string instead
+ of %s and RSTRING_PTR
- * lib/drb/drb.rb (DRbServer): add default_safe_level, safe_level,
- config[:safe_level] ([druby-ja:120])
+ * ext/etc/etc.c (etc_getgrnam): ditto
- * test/drb/test_drb.rb, ut_eval.rb, ut_safe1.rb: ditto.
+Sat Jun 22 13:07:15 2013 Tanaka Akira <akr@fsij.org>
-Sun Feb 13 16:56:52 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * bignum.c (CLEAR_LOWBITS): Rewritten without RSHIFTX.
+ (RSHIFTX): Removed.
- * lib/webrick/cgi.rb (WEBrick::CGI.start): should set reason-phrase
- to the value of status header field. ([ruby-dev:40617])
+Sat Jun 22 10:38:03 2013 Tanaka Akira <akr@fsij.org>
-Sun Feb 13 00:52:33 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * pack.c (num2i32): Removed.
+ (pack_pack): Don't use num2i32.
- * lib/erb.rb (ERB::Util.h, u): make it module_function.
+Sat Jun 22 09:55:13 2013 Tanaka Akira <akr@fsij.org>
-Sat Feb 12 17:29:19 2005 Tanaka Akira <akr@m17n.org>
+ * 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/open-uri.rb (OpenURI.open_loop): send authentication only for
- the URI directly specified.
+Sat Jun 22 09:11:33 2013 Ryan Davis <ryand-ruby@zenspider.com>
-Sat Feb 12 15:07:23 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/minitest/*: Imported minitest 4.7.5 (r8724)
+ * test/minitest/*: ditto
- * random.c (rand_init): suppress warning.
+Sat Jun 22 07:20:30 2013 Koichi Sasada <ko1@atdot.net>
-Sat Feb 12 13:54:03 2005 Tanaka Akira <akr@m17n.org>
+ * 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/open-uri.rb: support https if the platform provides CA
- certificates.
+ * gc.c (gc_marks): record `oldgen_object_count' into current profile`
+ record directly.
-Sat Feb 12 06:18:28 2005 URABE Shyouhei <shyouhei@ice.uec.ac.jp>
+ * gc.c (rgengc_rememberset_mark): same for remembered_normal_objects
+ and remembered_shady_objects.
- * ext/etc/etc.c (Init_etc): sGroup needs HAVE_ST_GR_PASSWD check.
- [ruby-dev:25675]
+Sat Jun 22 06:46:04 2013 Koichi Sasada <ko1@atdot.net>
-Fri Feb 11 17:40:42 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * 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/openssl/ossl_x509store.c (ossl_x509store_set_default_paths):
- new method OpenSSL::X509::Store#set_default_paths.
+ * gc.c: use above fields.
-Fri Feb 11 11:33:53 2005 Tanaka Akira <akr@m17n.org>
+Sat Jun 22 06:05:36 2013 Koichi Sasada <ko1@atdot.net>
- * lib/open-uri.rb (URI::HTTP#proxy_open): new option supported:
- :http_basic_authentication.
- suggested by Kent Sibilev. [ruby-core:4392]
+ * gc.c (rb_gc_giveup_promoted_writebarrier): remove `rest_sweep()'
+ because all of remembered objects are called for gc_mark_children().
-Fri Feb 11 06:30:07 2005 George Ogata <g_ogata@optushome.com.au>
+Sat Jun 22 05:08:03 2013 Koichi Sasada <ko1@atdot.net>
- * misc/ruby-mode.el: ignore parenthesis inside heredoc.
- [ruby-core:04415]
+ * gc.c (rgengc_rememberset_mark): call gc_mark_children() for
+ remembered objects directly instead of pushing on the mark stack.
-Fri Feb 11 04:54:13 2005 Tilman Sauerbeck <tilman@code-monkey.de>
+Sat Jun 22 04:48:53 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/generators/html_generator.rb: [ruby-core:04412]
+ * include/ruby/ruby.h (OBJ_WRITE): cast to (VALUE *) for second
+ parameter `slot'. You don't need to write a cast (VALUE *) any more.
- * lib/rdoc/generators/ri_generator.rb: ditto.
+ * 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().
-Thu Feb 10 11:14:17 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Sat Jun 22 04:37:08 2013 Koichi Sasada <ko1@atdot.net>
- * win32/Makefile.sub (COMMON_HEADERS): shouldn't include winsock2.h.
+ * gc.c (slot_sweep_body): rename to slot_sweep().
+ No need to separate major/minor GC.
- * ext/socket/extconf.rb (sockaddr_storage): remove workaround for
- mswin32.
+ * gc.c (gc_setup_mark_bits): remove gc_clear_mark_bits() and unify to
+ this function.
-Thu Feb 10 10:29:16 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+Sat Jun 22 04:20:21 2013 Koichi Sasada <ko1@atdot.net>
- * ext/curses/curses.c: don't need to check HAVE_WCOLOR_SET excluding
- window_color_set().
+ * gc.c (check_bitmap_consistency): add to check flag and bitmap consistency.
+ Use this function in several places.
-Thu Feb 10 00:47:25 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 22 02:18:07 2013 Tanaka Akira <akr@fsij.org>
- * struct.c (make_struct): fixed: [ruby-core:04402]
+ * 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.
-Wed Feb 9 08:07:08 2005 Paul Duncan <pabs@pablotron.org>
+ * internal.h (swap16): Moved from pack.c
+ (swap32): Ditto.
+ (swap64): Ditto.
- * ext/curses/curses.c (window_color_set): [ruby-core:04393]
+Fri Jun 21 21:29:49 2013 Masaya Tarui <tarui@ruby-lang.org>
-Tue Feb 8 23:51:47 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * 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.
- * lib/drb/drb.rb: reject :instance_eval, :class_eval, :module_eval
- [druby-ja:117]
+Fri Jun 21 21:11:53 2013 Koichi Sasada <ko1@atdot.net>
-Tue Feb 8 13:06:12 2005 Sam Roberts <sroberts@uniserve.com>
+ * gc.c (allocate_sorted_heaps): remove unused variable `add'.
- * ext/socket/socket.c (Init_socket): SO_REUSEPORT added.
- [ruby-talk:130092]
+Fri Jun 21 20:50:32 2013 Koichi Sasada <ko1@atdot.net>
-Tue Feb 8 09:30:01 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * include/ruby/ruby.h: constify RArray::as::ary and RArray::heap::ptr.
+ Use RARRAY_ASET() or RARRAY_PTR_USE() to modify Array objects.
- * lib/cgi.rb (CGI::Cookie): [ruby-talk:130040]
+ * array.c, gc.c: catch up above changes.
-Tue Feb 8 00:19:02 2005 Tanaka Akira <akr@m17n.org>
+Fri Jun 21 20:32:13 2013 Koichi Sasada <ko1@atdot.net>
- * lib/resolv.rb (Resolv::DNS::Name#subdomain_of?): new method.
- (Resolv::DNS::Name#inspect): ditto.
- Suggested by Sam Roberts. [ruby-talk:129086]
+ * vm_eval.c (eval_string_with_cref): fix WB miss.
-Mon Feb 7 10:06:30 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Jun 21 20:15:49 2013 Koichi Sasada <ko1@atdot.net>
- * object.c: [ruby-doc:818]
+ * 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 *).
-Mon Feb 7 01:56:20 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * struct.c, re.c, gc.c, marshal.c: rewrite with above APIs.
- * instruby.rb, rubytest.rb (srcdir): no longer embed srcdir into
- rbconfig.rb. (backported from CVS HEAD)
+Fri Jun 21 19:38:37 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/extconf.rb (sockaddr_storage): winsock2.h have the
- definition of struct sockaddr_storage, but socket.c doesn't
- include it because this version of ruby still has binary level
- compatibility with winsock1.
+ * bignum.c (BDIGMAX): Use BIGRAD.
+ (BIGLO): Use BDIGMAX.
+ (bigdivrem1): Ditto.
+ (bigor_int): Ditto.
+ (rb_big_or): Ditto.
- * lib/mkmf.rb (create_makefile): should support header files in
- depend file.
+Fri Jun 21 19:18:48 2013 Tanaka Akira <akr@fsij.org>
-Mon Feb 7 01:21:50 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * pack.c (pack_pack): Move the implementation for 'c' directive after
+ pack_integer label.
- * ext/socket/extconf.rb: check if getaddrinfo() works fine only when
- wide-getaddrinfo option is not given. fixed: [ruby-dev:25422]
+Fri Jun 21 19:11:56 2013 Koichi Sasada <ko1@atdot.net>
- * lib/mkmf.rb ($extmk): check if under ext directory.
+ * include/ruby/ruby.h, re.c: support write barrier for T_REGEXP.
- * lib/mkmf.rb (Logging.postpone): allow recursive operation.
+ 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.
- * lib/mkmf.rb (try_constant): make sure if really a constant, reduce
- the number of times of compile.
+Fri Jun 21 18:56:58 2013 Tanaka Akira <akr@fsij.org>
- * lib/mkmf.rb (have_macro, have_var, byte_order): new functions.
+ * bignum.c (bigsub_int): Use bdigit_roomof.
+ (bigadd_int): Ditto.
+ (bigand_int): Ditto.
+ (bigor_int): Ditto.
+ (bigxor_int): Ditto.
- * lib/mkmf.rb (find_library): allow directory list with separators.
+Fri Jun 21 17:56:25 2013 Koichi Sasada <ko1@atdot.net>
- * lib/mkmf.rb (arg_config): manage provided configuration options.
+ * benchmark/gc/gcbench.rb: fix summary of benchmark result notation.
- * lib/mkmf.rb (dir_config): accept arrays of directory names as
- default values.
+Fri Jun 21 16:38:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * mkconfig.rb: no longer embed srcdir and compile_dir into
- rbconfig.rb.
+ * 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
- * lib/mkmf.rb (create_makefile): fix unbalanced parens.
+Fri Jun 21 15:26:45 2013 Koichi Sasada <ko1@atdot.net>
-Sun Feb 6 19:23:01 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (gc_sweep): profile sweep time correctly when LAZY_SWEEP is
+ disabled.
- * eval.c (stack_extend): add prototype because VC++8 doesn't
- accept __declspec(noinline) with K&R style function definitions.
- (backported from CVS HEAD)
+ * gc.c (gc_marks_test): store oldgen count and shady count
+ before test marking and restore them after marking.
-Sun Feb 6 14:14:26 2005 Tadayoshi Funaba <tadf@dotrb.org>
+Fri Jun 21 15:07:42 2013 Koichi Sasada <ko1@atdot.net>
- * lib/date.rb (new_with_hash): changed messages of exception.
+ * gc.c: enable lazy sweep (commit miss).
- * lib/date/format.rb (str[fp]time): undocumented conversion
- specifications %[1-3] are now deprecated.
+Fri Jun 21 14:31:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Feb 6 12:20:11 2005 Akinori MUSHA <knu@iDaemons.org>
+ * hash.c (ruby_setenv): refine error message so include the variable
+ name.
- * bignum.c (rb_big2ulong_pack): One too many arguments are passed
- to big2ulong().
+Fri Jun 21 14:15:08 2013 Koichi Sasada <ko1@atdot.net>
- * re.c (rb_reg_init_copy, rb_reg_initialize_m): One too many
- arguments are passed to rb_reg_initialize().
+ * gc.c: fix to use total_allocated_object_num and heaps_used
+ at the GC time for profiler.
-Sun Feb 6 03:24:20 2005 Tanaka Akira <akr@m17n.org>
+Fri Jun 21 12:35:35 2013 Koichi Sasada <ko1@atdot.net>
- * lib/resolv.rb (Resolv::DNS::Resource::TXT): multiple strings was not
- handled.
- (Resolv::DNS::Resource::TXT#strings): new method to return all
- strings.
- (Resolv::DNS::Message::MessageEncoder#put_string_list): new method.
- (Resolv::DNS::Message::MessageDecoder#get_string_list): ditto.
- based on [ruby-talk:129732] by Sam Roberts.
+ * gc.c: RGENGC_CHECK_MODE should be 0.
-Fri Feb 4 00:30:45 2005 Kouhei Sutou <kou@cozmixng.org>
+Fri Jun 21 11:18:25 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rss: supported Image module.
- http://web.resource.org/rss/1.0/modules/image/
+ * gc.c (gc_marks_body): fix to get `th' in this function.
-Thu Feb 3 23:42:36 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jun 21 10:21:44 2013 Koichi Sasada <ko1@atdot.net>
- * ext/stringio/stringio.c (strio_close, strio_close_read, strio_close_write):
- should return nil instead of self as well as IO. [ruby-dev:25623]
+ * gc.c (heaps_header/heaps_slot): embed bitmaps into heaps_slot.
+ no need to maintain allocation/free bitmaps.
- * ext/stringio/stringio.c (strio_extend, strio_putc): fill with zero
- extended portion. [ruby-dev:25626]
+Fri Jun 21 09:22:16 2013 Koichi Sasada <ko1@atdot.net>
-Wed Feb 2 23:52:53 2005 sheepman <sheepman@tcn.zaq.ne.jp>
+ * gc.c (slot_sweep_body): add counters at a time.
- * ext/stringio/stringio.c (strio_truncate): should MEMZERO an extended
- part. [ruby-dev:25618]
+ * gc.c (gc_profile_dump_on): fix line break position.
-Wed Feb 2 21:56:01 2005 Kouhei Sutou <kou@cozmixng.org>
+Fri Jun 21 08:14:00 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/rss/rss.rb (RSS::Element#convert): added.
+ * gc.c: refactoring bitmaps. introduce bits_t type and some Consts.
- * lib/rss/rss.rb: convert -> need_convert.
+Fri Jun 21 08:04:32 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rss/1.0.rb: ditto.
+ * gc.c: fix to support USE_RGENGC == 0 (disable RGenGC).
+ If USE_RGENGC==0, it caused compilation error.
- * lib/rss/0.9.rb: ditto.
+Fri Jun 21 08:08:11 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/rss/2.0.rb: ditto.
+ * gc.c (lazy_sweep): Use is_lazy_sweeping()
+ * gc.c (rest_sweep): Ditto.
+ * gc.c (gc_prepare_free_objects): Ditto.
- * lib/rss/trackback.rb: ditto.
+Fri Jun 21 07:34:47 2013 Koichi Sasada <ko1@atdot.net>
-Tue Feb 1 22:48:48 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * gc.c (gc_profile_record::oldgen_objects): added.
- * lib/drb/drb.rb (DRb::DRbObject#respond_to?): check marshal_dump and
- _dump.
+ * 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
-Tue Feb 1 00:20:23 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jun 21 06:43:59 2013 Tanaka Akira <akr@fsij.org>
- * configure.in (aix): fix linker flags on AIX. [ruby-talk:125460]
+ * bignum.c (rb_ull2big): Refactored.
+ (rb_uint2big): Useless code removed.
-Mon Jan 31 13:33:21 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Jun 21 05:37:39 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tcltklib/tcltklib.c: add invalid namespace check
+ * gc.c (gc_prof_sweep_timer_stop): accumulate sweep time only when
+ record->gc_time > 0.
- * ext/tk/lib/multi-tk.rb: add invalid_namespace? method
+Fri Jun 21 00:37:31 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/remote-tk.rb: ditto
+ * ext/bigdecimal: Workaround fix for bigdecimal test failures caused
+ by [ruby-dev:47413] [Feature #8509]
-Mon Jan 31 10:29:18 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * lib/irb/context.rb (IRB::Context::initialize): [ruby-core:04330]
+ * ext/bigdecimal/bigdecimal.c (RBIGNUM_ZERO_P): Use rb_bigzero_p.
+ (bigzero_p): Removed.
+ (is_even): Use rb_big_pack.
-Sat Jan 29 09:42:12 2005 Sam Roberts <sroberts@uniserve.com>
+Thu Jun 20 22:52:42 2013 Tanaka Akira <akr@fsij.org>
- * lib/resolv.rb (Resolv::DNS::Resource::IN::SRV): Added RFC2782 SRV
- resource record for specifying location of services.
+ * bignum.c (bigmul1_toom3): Don't call bignorm twice.
-Fri Jan 28 17:16:55 2005 Tanaka Akira <akr@m17n.org>
+Thu Jun 20 22:49:27 2013 Tanaka Akira <akr@fsij.org>
- * lib/resolv.rb (Resolv::DNS::Config.parse_resolv_conf):
- parse options line for ndots option.
- (Resolv::Hosts#lazy_initialize): return self.
- (Resolv::DNS#lazy_initialize): ditto.
- (Resolv::DNS::Config#lazy_initialize): ditto.
- Suggested by Sam Roberts.
+ * bignum.c (bignorm): Don't call bigtrunc if the result is a fixnum.
-Thu Jan 27 13:18:03 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jun 20 22:29:42 2013 Tanaka Akira <akr@fsij.org>
- * st.c (st_foreach): report success/failure by return value.
- [ruby-Bugs-1396]
+ * bignum.c (rb_uint2big): Refactored.
-Thu Jan 27 00:15:29 2005 Minero Aoki <aamine@loveruby.net>
+Thu Jun 20 22:24:41 2013 Tanaka Akira <akr@fsij.org>
- * test/fileutils/test_fileutils.rb (setup): support BSD-style
- directory group inheritance. (backport from HEAD, rev 1.32)
+ * bignum.c (dump_bignum): Use SIZEOF_BDIGITS.
- * test/fileutils/fileasserts.rb (assert_same_entry): show entry
- difference. (backport from HEAD, rev 1.4)
+Thu Jun 20 22:22:46 2013 Tanaka Akira <akr@fsij.org>
-Wed Jan 26 23:09:11 2005 Minero Aoki <aamine@loveruby.net>
+ * 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.
- * lib/net/protocol.rb (WriteAdapter#puts): should append \n, not
- prepend. [ruby-talk:128302] (backport from HEAD, rev 1.75)
+Thu Jun 20 22:02:46 2013 Tanaka Akira <akr@fsij.org>
-Wed Jan 26 10:51:50 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * 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.
- * win32/win32.c (flock_winnt, flock_win95): unlock file even if
- LOCK_NB is specified. (backported from CVS HEAD)
+Thu Jun 20 21:17:19 2013 Koichi Sasada <ko1@atdot.net>
-Tue Jan 25 17:11:51 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (rgengc_rememberset_mark): record
+ (1) normal objects count in remember set
+ (2) shady objects count in remember set
+ each GC timing.
- * ruby.c (proc_options): correct -T option in RUBYOPT. (backported
- from CVS HEAD)
+ * gc.c (gc_profile_record_get): enable to access above information
+ and REMOVING_OBJECTS, EMPTY_OBJECTS.
-Tue Jan 25 14:05:52 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Jun 20 18:29:26 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tcltklib/tcltklib.c: fix SEGV bug; trouble on canceling remained
- after scripts [ruby-dev:25479]: NULL current namespace when deleting
- Tk interpreter [ruby-talk:126225]
+ * benchmark/gc/gcbench.rb: Do not use GC::Profiler::disable because
+ GC::Profiler::disable prohibit to access profiling data. It should
+ be spec bug.
- * ext/tcltklib/extconf.rb: bug fix; TCL_ENABLE_THREAD flag is inverted
- [ruby-talk:126360]
+ Skip GC::Profiler::report if RUBY_VERSION < '2.0.0'
- * ext/tcltklib/extconf.rb: add yet another native-thread check
+Thu Jun 20 17:59:08 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/tkutil.c: fix SEGV bug; NULL string pointer when finalize
- Ruby interpreter
+ * benchmark/gc/gcbench.rb: stop GC::Profiler before output results.
+ Generating GC::Profiler result under profiling causes infinite loop.
- * ext/tk/lib/multi-tk.rb: avoid warning for deleted safeTk ip frame
+Thu Jun 20 17:24:24 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/bindtag.rb: bug fix; new method of named bindtag
- doesn't return the created object [ruby-dev:25479]
+ * benchmark/gc/gcbench.rb: don't use __dir__ to make compatible
+ with ruby 1.9.3.
- * ext/tk/lib/tk/menu.rb: bug on treating arguments [ruby-dev:25479]
+Thu Jun 20 16:57:19 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk.rb: bug fix; cannot accept a callback ID string for
- a command argument [ruby-dev:25479]
+ * benchmark/bm_app_aobench.rb: use attr_accessor/reader instead of
+ defining methods.
- * ext/tk/lib/multi-tk.rb: ditto
+Thu Jun 20 16:46:46 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/*.rb: ditto
+ * benchmark/bm_app_aobench.rb: added.
- * ext/tk/lib/tkextlib/*.rb: ditto
+ * benchmark/gc/aobench.rb: added.
- * ext/tk/sample/demos-jp/anilabel.rb: new demo script
+Thu Jun 20 16:28:33 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/sample/demos-en/anilabel.rb: ditto
+ * benchmark/bm_so_binary_trees.rb: disable `puts' method
+ and change iteration parameter to increase execution time.
- * ext/tk/sample/tkHTML/ss.rb: local variable scope bug fix
- [ruby-dev:25479]
+ * benchmark/gc/binarytree.rb: added.
-Mon Jan 24 15:44:25 2005 Tilman Sauerbeck <tilman@code-monkey.de>
+Thu Jun 20 16:06:37 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/parsers/parse_c.rb: allow whitespace after function names.
- [ruby-core:4296]
+ * benchmark/gc/pentomino.rb: added.
+ Simply load pentomino puzzle in the benchmark/ directory.
- * lib/rdoc/parsers/parse_simple.rb: adds support for private comments
- in the "simple" parser. [ruby-core:4301]
+Thu Jun 20 15:32:56 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jan 24 15:44:25 2005 Charles Mills <cmills@freeshell.org>
+ * benchmark/gc/redblack.rb: import red black tree benchmark from
+ https://github.com/jruby/rubybench/blob/master/time/bench_red_black.rb
- * lib/rdoc/parsers/parse_c.rb: adds support for constants
- (rb_define_const), accessors (rb_define_attr), and makes a
- couple fixes. [ruby-core:4307]
+ * benchmark/gc/ring.rb: add a benchmark. This benchmark create many
+ old objects.
-Mon Jan 24 15:44:25 2005 Florian Gro <florgro@gmail.com>
+Thu Jun 20 15:14:00 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/parsers/parse_rb.rb: Logic for def Builtin.method() end
- [ruby-core:4302]
+ * benchmark/gc: create a directory to store GC related benchmark.
-Mon Jan 24 15:44:25 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * benchmark/gc/gcbench.rb: moved from tool/gcbench.rb.
- * document updates - [ruby-core:04296], [ruby-core:04301],
- [ruby-core:04302], [ruby-core:04307]
+ * benchmark/gc/hash(1|2).rb: ditto.
-Sun Jan 23 12:41:16 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * benchmark/gc/rdoc.rb: ditto.
- * lib/soap/wsdlDriver.rb: from 1.5.3-ruby1.8.2, operation which has
- capitalized name (such as KeywordSearchRequest in AWS) is defined as
- a method having uncapitalized name. (converted with
- GenSupport.safemethodname to handle operation name 'foo-bar'). it
- introduced serious incompatibility; in the past, it was defined as a
- capitalized.
+ * benchmark/gc/null.rb: added.
- define capitalized method as well under that circumstance.
+ * common.mk: fix rule.
-Sun Jan 23 05:24:42 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Thu Jun 20 14:09:54 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/ossl_ocsp.c (ossl_ocspreq_to_der): should call
- GetOCSPReq at first.
+ * tool/hashbench1.rb: fix parameter too. Increase temporary objects.
-Sat Jan 22 23:09:47 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Thu Jun 20 14:01:35 2013 Koichi Sasada <ko1@atdot.net>
- * lib/drb/ssl.rb (accept): rescue SSLError. [druby-ja:110]
+ * tool/hashbench1.rb: fix parameters.
-Sat Jan 22 22:35:03 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Thu Jun 20 14:00:34 2013 Koichi Sasada <ko1@atdot.net>
- * lib/drb/unix.rb: fail if UNIXFileOwner is set. [druby-ja:111]
+ * common.mk: remove dependency from ruby.
-Fri Jan 21 23:58:42 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jun 20 13:14:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/stringio/stringio.c (strio_set_pos): clear EOF flag.
- [ruby-talk:127511]
+ * error.c (rb_check_backtrace): evaluate RARRAY_AREF only once.
+ the first argument of RB_TYPE_P is expanded twice for non-immediate
+ types.
-Fri Jan 21 20:07:02 2005 Tanaka Akira <akr@m17n.org>
+Thu Jun 20 08:09:29 2013 Koichi Sasada <ko1@atdot.net>
- * lib/resolv.rb (Resolv::DNS::Config.resolv): don't raise ResolvError.
- reported by Sam Roberts. [ruby-talk:127133]
+ * tool/gcbench.rb: Summary in one line.
-Fri Jan 21 16:58:10 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * common.mk: separate gcbench-hash to gcbench-hash1 and gcbench-hash2.
- * dir.c (rb_push_glob): should work for NUL delimited patterns.
+Thu Jun 20 08:07:23 2013 Tanaka Akira <akr@fsij.org>
-Fri Jan 21 13:58:37 2005 Shugo Maeda <shugo@ruby-lang.org>
+ * bignum.c (BIGSIZE): New macro.
+ (bigfixize): Use BIGSIZE.
+ (big2ulong): Ditto.
+ (check_shiftdown): Ditto.
+ (rb_big_aref): Ditto.
- * lib/net/imap.rb (u8tou16): fixed typo. fixed: [ruby-list:40546]
- (backported from CVS HEAD)
+Thu Jun 20 07:46:48 2013 Masaya Tarui <tarui@ruby-lang.org>
-Fri Jan 21 09:30:16 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (rb_gc_writebarrier): give up rescan A and register B directly
+ if A has huge number of children.
- * rubyio.h (rb_eof_error): should mark as NORETURN. (backported
- from CVS HEAD)
+Thu Jun 20 07:30:35 2013 Koichi Sasada <ko1@atdot.net>
-Fri Jan 21 00:31:36 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * common.mk: add new rules `gcbench-rdoc', `gcbench-hash'.
- * ext/syck/rubyext.c (syck_parser_bufsize_set): avoid VC++ warning
- "local variable 'size' used without having been initialized".
+ * tool/gcbench.rb: separate GC bench framework and process.
-Thu Jan 20 19:03:24 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * 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.
- * ext/extmk.rb (extmake): shouldn't set $extflags on mswin32.
+ * tool/rdocbench.rb: separated.
- * win32/Makefile.sub (LIBRUBY_SO): should use $DLDOBJS instead of
- $EXTOBJS.
- fixed: [ruby-core:04290] (backported from CVS HEAD)
+Thu Jun 20 06:25:39 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jan 20 11:42:02 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * tool/rdocbench.rb: add summary.
- * string.c (rb_str_new4): should propagate taintedness.
+Thu Jun 20 06:18:01 2013 Koichi Sasada <ko1@atdot.net>
- * struct.c (rb_struct_set): use original method name, not callee
- name, to retrieve member slot. [ruby-core:04268]
+ * gc.c (gc_profile_total_time): check objspace->profile.next_index > 0.
- * time.c (time_strftime): protect from format modification from GC
- finalizers.
+Thu Jun 20 05:47:41 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jan 19 18:06:40 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (gc_prof_sweep_timer_start): fix merge miss.
- * lib/ipaddr.rb (to_s, test_to_s): too many colons with some cases.
- (backported from CVS HEAD)
+ * gc.c (GC_PROFILE_MORE_DETAIL): set it 0.
-Wed Jan 19 01:16:30 2005 Tanaka Akira <akr@m17n.org>
+Thu Jun 20 05:38:56 2013 Koichi Sasada <ko1@atdot.net>
- * lib/resolv.rb (Resolv::DNS::Config.parse_resolv_conf): ignore
- domain and search directive without an argument.
- reported by Sam Roberts. [ruby-talk:126781]
+ * gc.c: Accumulate sweep time to GC time.
+ Now [GC time] is [mark time] + [sweep time] + [misc].
+ ([GC time] >= [mark time] + [sweep time])
-Tue Jan 18 15:03:05 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * gc.c (gc_prof_sweep_slot_timer_start/stop): rename to
+ gc_prof_sweep_timer_start/stop and locate at lazy_sweep().
- * lib/webrick/ssl.rb (WEBrick::Config::SSL): the default value
- of :SSLEnable is false.
+ * gc.c (elapsed_time_from): add a utility function.
- * lib/webrick/server.rb (WEBrick::Daemon.start): prepared stdio
- don't allow changing its mode.
+Thu Jun 20 05:08:53 2013 Koichi Sasada <ko1@atdot.net>
- * lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_service):
- should delete trailing LF from the result of pack("m*").
+ * gc.c (gc_marks): fix wrong option. FALSE means major/full GC.
+ It should be TRUE (minor marking).
- * lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect):
- - should delete trailing LF from the result of pack("m*").
- - clear Request-Line not to send the response by HTTPServer#run.
+Thu Jun 20 02:44:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/webrick/httputils (WEBrick::HTTPUtils.parse_qvalues):
- refine regexp (and change the name of a local variable).
+ * 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.
- * lib/webrick/httputils.rb (WEBrick::HTTPUtils#escape_path): add
- new method to escape URI path component.
+Thu Jun 20 01:34:15 2013 Tanaka Akira <akr@fsij.org>
- * lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line): should
- escape SCRIPT_NAME and PATH_INFO before being parsed as a URI.
+ * 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.
- * test/webrick/*, sample/webrick/httpproxy.rb: add new file.
+Thu Jun 20 01:07:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jan 17 23:33:46 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (MARKED_IN_BITMAP, FL_TEST2): return boolean value since always
+ used as boolean value.
- * configure.in (aix): fix typo. [ruby-talk:126401]
+ * gc.c (MARK_IN_BITMAP, CLEAR_IN_BITMAP): evaluate bits once.
-Mon Jan 17 07:08:51 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jun 20 00:05:07 2013 Koichi Sasada <ko1@atdot.net>
- * ext/readline/readline.c: suppress warnings.
+ * gc.c (RVALUE_PROMOTED): fix type.
- * lib/irb/extend-command.rb (IRB::ContextExtender.def_extend_command):
- ditto.
+Wed Jun 19 23:39:01 2013 Koichi Sasada <ko1@atdot.net>
- * lib/irb/ext/history.rb (IRB::Context::set_last_value): ditto.
+ * 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/irb/ext/history.rb (IRB::Context::eval_history): ditto.
+Wed Jun 19 23:51:48 2013 Tanaka Akira <akr@fsij.org>
- * lib/irb/locale.rb (IRB::Locale::real_load): ditto.
+ * bignum.c (bigfixize): Use rb_absint_size.
+ (check_shiftdown): Ditto.
+ (big2ulong): Use bdigit_roomof.
- * lib/irb/slex.rb (SLex::Node::create_subnode): remove garbage.
+Wed Jun 19 23:32:23 2013 Koichi Sasada <ko1@atdot.net>
-Mon Jan 17 00:09:42 2005 WATANABE Hirofumi <eban@ruby-lang.org>
+ * gc.c (RVALUE_PROMOTED): check consistency between oldgen flag and
+ oldgen bitmap if RGENGC_CHECK_MODE > 0.
- * lib/uri/common.rb (PORT): typo fix. fixed: [ruby-core:04256]
+Wed Jun 19 23:29:29 2013 Koichi Sasada <ko1@atdot.net>
-Sat Jan 15 14:57:22 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (rb_gc_force_recycle): clear oldgen bitmap, too.
- * ruby.c (proc_options): ignore trailing CRs at the end of short
- options as well as long options. fixed: [ruby-core:04232]
+Wed Jun 19 21:02:13 2013 Tanaka Akira <akr@fsij.org>
-Sat Jan 15 13:35:16 2005 Kouhei Sutou <kou@cozmixng.org>
+ * 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.
- * lib/rss/rss.rb (RSS::VERSION): 0.1.2 -> 0.1.3.
+Wed Jun 19 20:51:21 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * lib/rss/rss.rb: accept inheritance. [ruby-talk:126104]
+ * gc.c (gc_stress_get): GC.stress can be Fixnum.
-Thu Jan 13 04:48:53 2005 Tanaka Akira <akr@m17n.org>
+Wed Jun 19 19:31:30 2013 Tanaka Akira <akr@fsij.org>
- * io.c (io_fread): don't warn nonblocking behavior by default.
+ * 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.
-Wed Jan 12 00:36:29 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 19 15:14:30 2013 Koichi Sasada <ko1@atdot.net>
- * object.c (rb_class_superclass): superclass of singleton class also
- should be a singleton class. fixed: [ruby-list:40519]
+ * 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.
-Tue Jan 11 09:44:40 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * iseq.c: making non-shady iseq objects.
- * numeric.c (Init_Numeric): turn off floating point exceptions
- on bcc32. "1e300".to_f had crashed by overflow.
+ * class.c, compile.c, proc.c, vm.c: add WB for iseq objects.
-Tue Jan 11 03:10:10 2005 Minero Aoki <aamine@loveruby.net>
+ * vm_core.h, iseq.h: constify fields to detect WB insertion.
- * lib/fileutils.rb (copy_entry): could not copy symbolic link.
- [ruby-talk:125733]
+Wed Jun 19 15:11:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/fileutils.rb (copy_stream): use read/write instead of
- sysread/syswrite.
+ * gc.c (gc_mark_children): show more info for broken object.
-Mon Jan 10 23:08:15 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 19 14:04:41 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * variable.c (rb_autoload): hide internal data from ruby level.
- fixed: [ruby-dev:25435], [ruby-list:40498]
+ * test/ruby/envutil.rb (EnvUtil#rubybin): remove unnecessary
+ unless expression.
-Mon Jan 10 01:22:55 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jun 19 07:47:48 2013 Koichi Sasada <ko1@atdot.net>
- * gc.c (rb_data_object_alloc): klass may be NULL.
- [ruby-list:40498]
+ * gc.c (garbage_collect_body): use FIX2INT for ruby_gc_stress.
-Sun Jan 9 03:12:58 2005 Tanaka Akira <akr@m17n.org>
+Wed Jun 19 07:44:31 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (io_fread): warn nonblocking behavior.
- (io_readpartial): new method IO#readpartial.
+ * gc.c (rb_objspace::gc_stress): int -> VALUE to store Fixnum object.
-Sat Jan 8 04:38:47 2005 why the lucky stiff <why@ruby-lang.org>
+Wed Jun 19 07:25:35 2013 Koichi Sasada <ko1@atdot.net>
- * lib/yaml.rb: Kernel#y requires an argument.
+ * gc.c (make_deferred): clear flags to T_ZOMBIE.
-Fri Jan 7 21:12:29 2005 TAMURA Takashi <sheepman@tcn.zaq.ne.jp>
+ * gc.c (slot_sweep_body): fix indent.
- * random.c (rand_init): use ALLOC_N instead of ALLOCA_N
- [ruby-dev:25426]
+Wed Jun 19 07:18:47 2013 Tanaka Akira <akr@fsij.org>
-Fri Jan 7 18:03:35 2005 Tanaka Akira <akr@m17n.org>
+ * bignum.c (rb_big_aref): Apply BIGLO to ~xds[i] for environment which
+ BDIGIT is 16bit.
- * gc.c (mark_locations_array): avoid core dump with -O3.
- [ruby-dev:25424]
+Wed Jun 19 07:09:26 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jan 6 20:31:07 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c (rgengc_remember): fix output level.
- * ext/zlib/zlib.c (zstream_end): should return value. (backported
- from CVS HEAD)
+ * gc.c (rgengc_rememberset_mark): fix to output clear count.
+ (shady_object_count + clear_count = count of remembered objects)
-Thu Jan 6 19:55:13 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Wed Jun 19 07:06:21 2013 Koichi Sasada <ko1@atdot.net>
- * win32/win32.c (rb_w32_close): didn't close socket handle.
- [ruby-dev:25414]
+ * gc.c (rgengc_remember): check T_NONE and T_ZOMBIE
+ if RGENGC_CHECK_MODE > 0.
- * win32/win32.c (rb_w32_open_osfhandle): bcc32's _open_osfhandle
- never set EMFILE.
+Wed Jun 19 07:02:19 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jan 6 17:14:31 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * gc.c (RGENGC_CHECK_MODE): add new check mode `3'.
+ In this mode, show all references if there is
+ a miss-corrected object.
- * random.c (random_seed): O_NONBLOCK isn't defined on some
- platforms. [ruby-dev:25417]
+Wed Jun 19 06:31:08 2013 Koichi Sasada <ko1@atdot.net>
-Thu Jan 6 13:45:35 2005 Tanaka Akira <akr@m17n.org>
+ * 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.
- * lib/time.rb: recognize +00:00 and GMT as a localtime.
+ You can debug RGenGC (WB) using `GC.stress = 1'.
+ Using this option, do minor marking at all possible places.
-Thu Jan 6 07:58:28 2005 Dave Thomas <dave@pragprog.com>
+ GC::STRESS_MINOR_MARK = 1 and GC::STRESS_LAZY_SWEEP = 2
+ seem good to add.
- * lib/rdoc/usage.rb (RDoc::RDoc.usage_no_exit): Allow for colons
- in path names on DOS machines. (thanks to Johan Nilsson)
+Wed Jun 19 06:29:31 2013 Koichi Sasada <ko1@atdot.net>
-Wed Jan 5 20:16:32 2005 Tanaka Akira <akr@m17n.org>
+ * vm.c (kwmerge_i): add WB.
- * random.c (limited_big_rand): didn't work if SIZEOF_BDIGITS == 2.
- [ruby-dev:25408]
+Wed Jun 19 06:26:49 2013 Koichi Sasada <ko1@atdot.net>
- * random.c (random_seed): refined.
+ * 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()'
-Wed Jan 5 12:49:39 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 19 04:33:22 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (rb_thread_initialize): Thread objects cannot be initialized
- again. fixed: [ruby-core:04067]
+ * variable.c (rb_const_set): fix WB miss.
-Wed Jan 5 10:48:16 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+ WBs had located before creating reference between a klass
+ and constant value. It causes GC bug.
- * dir.c (dir_s_mkdir): win32 special processing doesn't need any
- longer. (backported from CVS HEAD)
+ # pseudo code:
+ WB(klass, value); # WB and remember klass
+ st_insert(klass->const_table, const_id, value);
- * win32/win32.[ch] (rb_w32_mkdir): new function. POSIX.1 compatible
- interface. (backported from CVS HEAD)
+ `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
- * win32/win32.[ch] (rb_w32_rmdir): new function. (backported from CVS
- HEAD)
+ Lesson: The place of a WB is important.
-Wed Jan 5 02:30:11 2005 Tanaka Akira <akr@m17n.org>
+Tue Jun 18 22:01:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * random.c (init_by_array): imported from mt19937ar-cok.tgz.
- (genrand_int32): ditto.
- (genrand_real): replaced with genrand_res53 in mt19937ar-cok.
- (rand_init): support bignum for longer seed.
- (random_seed): generate longer seed.
- (make_mask): new function.
- (limited_rand): ditto.
- (limited_big_rand): ditto.
- (rb_f_rand): call limited_rand and limited_big_rand.
- [ruby-dev:25403]
+ * vm_insnhelper.c (vm_call_method): ensure methods of type
+ VM_METHOD_TYPE_ATTR_SET are called with 1 argument
-Tue Jan 4 23:25:29 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/ruby/test_module.rb
+ (TestModule#test_attr_writer_with_no_arguments): add test
+ [ruby-core:55543] [Bug #8540]
- * bignum.c (rb_big_rand): should return positive random number.
- [ruby-dev:25401]
+Tue Jun 18 22:36:23 2013 Masaya Tarui <tarui@ruby-lang.org>
-Tue Jan 4 11:15:29 2005 TAMURA Takashi <sheepman@tcn.zaq.ne.jp>
+ * gc.c (gc_profile_record_flag): fix typo.
- * bignum.c (rb_big_rand): do not use rb_big_modulo to generate
- random bignums. [ruby-dev:25396]
+Tue Jun 18 22:08:53 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Jan 3 14:01:54 2005 Tanaka Akira <akr@m17n.org>
+ * ext/objspace/object_tracing.c: Return for ::allocation_generation
- * random.c (random_seed): don't use /dev/urandom if it is not
- character device.
+Tue Jun 18 22:04:35 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Jan 3 11:37:42 2005 Tanaka Akira <akr@m17n.org>
+ * ext/objspace/object_tracing.c: Document object_tracing methods.
- * random.c (random_seed): use /dev/urandom if available.
- [ruby-dev:25392]
+Tue Jun 18 21:58:17 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Jan 3 07:46:42 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * gc.c: Rename rb_mObSpace -> rb_mObjSpace
- * lib/webrick/httpauth/htpasswd.rb (WEBrick::Htpasswd#reload):
- raise NotImplementedError if password is encrypted by digest
- algorithms. This patch is contributed by sheepman. [ruby-list:40467]
+Tue Jun 18 20:55:05 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/webrick/httpauth/digestauth.rb
- (WEBrick::HTTPAuth::DigestAuth#_authenticate): fix digest calculation.
- This patch is contributed by sheepman. [ruby-list:40482]
+ * ext/objspace/objspace.c: Document ObjectSpace::InternalObjectWrapper.
- * lib/webrick/{httpauth.rb,httpauth/basicauth.rb,httpproxy.rb}: use
- pack/unpack-template char "m" instead of lib/base64.rb to do base64
- encoding/decoding. fixed: [ruby-dev:25336]
+Tue Jun 18 20:39:04 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/webrick/test_httpauth.rb: new file.
+ * ext/objspace/object_tracing.c: Teach rdoc object_tracing.c [Bug #8537]
-Sat Jan 1 04:20:23 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Tue Jun 18 20:29:47 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/openssl/ossl_ns_spki.c (ossl_spki_set_challenge): should call
- StringValue before GetSPKI. fixed: [ruby-dev:25359].
+ * ext/.document: add object_tracing.c to document file
-Sat Jan 1 01:13:28 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Jun 18 20:20:27 2013 Zachary Scott <zachary@zacharyscott.net>
- * variable.c (rb_autoload): [ruby-dev:25373]
+ * ext/objspace/objspace.c: rdoc on require to overview from r41355
-Fri Dec 31 14:10:43 2004 Dave Thomas <dave@pragprog.com>
+Tue Jun 18 18:39:58 2013 Tanaka Akira <akr@fsij.org>
- * lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::display_flow_item): Fix problem
- if heading contains formatting.
+ * configure.in: Check __int128.
-Thu Dec 30 00:41:42 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * eval.c (svalue_to_avalue): [ruby-dev:25366]
+ * include/ruby/ruby.h (PRI_64_PREFIX): Defined.
- * string.c (rb_str_justify): [ruby-dev:25367]
+ * bignum.c (rb_big_pow): Don't use BITSPERDIG for the condition which
+ rb_big_pow returns Float or Bignum.
-Wed Dec 29 11:07:07 2004 Dave Thomas <dave@pragprog.com>
+ [ruby-dev:47413] [Feature #8509]
- * lib/rdoc/generators/template/html/kilmer.rb: Update to use new
- sections.
+Tue Jun 18 16:43:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Dec 28 22:31:46 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * string.c (rb_str_justify): create buffer string after argument type
- conversion. fixed: [ruby-dev:25341]
+Tue Jun 18 12:53:25 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 28 15:41:48 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (nlz): Cast the result explicitly.
+ (big2dbl): Don't assign BDIGIT values to int variable.
- * ext/nkf/nkf-utf8/nkf.c (reinit): should initialize all static
- variables. fixed: [ruby-list:40445]
+Tue Jun 18 12:25:16 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 28 15:25:20 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_big_xor): Non-effective code removed.
- * ext/nkf/lib/kconv.rb (Kconv::RegexpEucjp): second byte is up to
- 0xfe.
+Tue Jun 18 11:26:05 2013 Koichi Sasada <ko1@atdot.net>
- * ext/nkf/lib/kconv.rb (Kconv#kconv): should handle UTF8 and UTF16
- properly.
+ * gc.c (gc_stat): add `generated_normal_object_count_types' for
+ RGENGC_PROFILE >= 2.
-Tue Dec 28 13:35:20 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Jun 18 11:02:18 2013 Koichi Sasada <ko1@atdot.net>
- * ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate): ensure
- freeing internal zstreams. fixed: [ruby-dev:25309]
+ * gc.c (gc_mark_maybe): check to skip T_NONE.
- * ext/zlib/zlib.c (rb_deflate_init_copy): replace rb_deflate_clone.
+ * gc.c (markable_object_p): do not need to check (flags == 0) here.
-Tue Dec 28 12:26:45 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Jun 18 10:17:37 2013 Koichi Sasada <ko1@atdot.net>
- * win32/Makefile.sub, win32/setup.mak (RDOCTARGET, install,
- install-nodoc, install-doc): rdoc support for mswin32.
+ * variable.c (rb_autoload): fix WB miss.
- * win32/configure.bat (--enable-install-doc, --disable-install-doc):
- ditto.
+Tue Jun 18 04:20:18 2013 Koichi Sasada <ko1@atdot.net>
-Mon Dec 27 20:02:14 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * gc.c (gc_mark_children): don't need to care about T_ZOMBIE here.
- * ext/tcltklib/tcltklib.c: fix SEGV bug when deleting Tk interp
+Mon Jun 17 22:16:02 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/tk/lib/multi-tk.rb: ditto
+ * test/ruby/test_proc.rb (TestProc#test_block_given_method_to_proc):
+ run test for r41359.
-Mon Dec 27 16:55:17 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Mon Jun 17 21:42:18 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/openssl/ossl_x509name.c (Init_ossl_x509name): should use
- rb_hash_new to get exactly a Hash. fix [ruby-dev:25325].
+ * include/ruby/ruby.h, vm_eval.c (rb_funcall_with_block):
+ new function to invoke a method with a block passed
+ as an argument.
-Mon Dec 27 16:29:56 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * string.c (sym_call): use the above function to avoid
+ a block sharing. [ruby-dev:47438] [Bug #8531]
- * string.c (rb_str_justify): [ruby-dev:25341]
+ * vm_insnhelper.c (vm_yield_with_cfunc): don't set block
+ in the frame.
-Mon Dec 27 15:47:48 2004 Minero Aoki <aamine@loveruby.net>
+ * test/ruby/test_symbol.rb (TestSymbol#test_block_given_to_proc):
+ run related tests.
- * test/fileutils/fileasserts.rb: sync with HEAD.
+Mon Jun 17 21:33:27 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * test/fileutils/test_fileutils.rb: ditto.
+ * 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.
- * test/fileutils/test_nowrite.rb: ditto.
+ * proc.c (bmcall): use the above function to avoid a block sharing.
+ [ruby-core:54626] [Bug #8341]
-Mon Dec 27 15:21:07 2004 Minero Aoki <aamine@loveruby.net>
+ * test/ruby/test_proc.rb (TestProc#test_block_persist_between_calls):
+ run related tests.
- * lib/fileutils.rb (mv): should raise error when moving a
- directory to the (empty) directory. [ruby-talk:124368]
- (backport from HEAD 1.48)
+Mon Jun 17 20:53:21 2013 Tanaka Akira <akr@fsij.org>
- * lib/fileutils.rb (mv): wrongly did not overwrite file on Win32
- platforms. (backport from HEAD 1.48)
+ * loadpath.c (RUBY_REVISION): Defined to suppress revision.h
+ inclusion actually. r41352 removes the dependency.
-Sat Dec 25 11:11:48 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jun 17 18:15:57 2013 Benoit Daloze <eregontp@gmail.com>
- * stable version 1.8.2 released.
+ * ext/objspace/objspace.c: let rdoc know about objspace methods.
+ Specify 'objspace' should be required. See #8537.
-Sat Dec 25 04:23:49 2004 Minero Aoki <aamine@loveruby.net>
+Mon Jun 17 17:44:31 2013 Benoit Daloze <eregontp@gmail.com>
- * lib/fileutils.rb (mkdir, mkdir_p): should ensure directory
- permission. (backportted from HEAD, 1.47)
+ * gc.c (ObjectSpace): is a module not a class.
- * lib/fileutils.rb (traverse, remove_dir): untaint trasted
- objects. (backportted from HEAD, 1.46)
+ * ext/objspace/objspace.c: try to include overview in rdoc,
+ see #8537.
-Sat Dec 25 01:28:23 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jun 17 17:38:24 2013 Benoit Daloze <eregontp@gmail.com>
- * io.c: cancel io_reopen() change on Dec. 24th.
+ * gc.c: fix example of ObjectSpace.define_finalizer in overview
- * dln.c: use <dlfcn.h> for NetBSD. [ruby-dev:25313]
+Mon Jun 17 16:59:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (rb_f_select): IO list could be altered. [ruby-dev:25312]
+ * 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]
-Fri Dec 24 23:51:48 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+Mon Jun 17 14:27:54 2013 Zachary Scott <zachary@zacharyscott.net>
- * bcc32/Makefile.sub: bcc32 should use RTL dll (backport from HEAD)
- [ruby-dev:25306]
+ * vm_backtrace.c: Update rdoc for Backtrace#label with @_ko1
- * win32/win32.[ch]: ditto.
+Mon Jun 17 13:04:01 2013 Akinori MUSHA <knu@iDaemons.org>
-Fri Dec 24 23:27:18 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * tool/ifchange (until): Fix the condition, although harmless in
+ this case.
- * ext/tk/lib/tk/image.rb: TkPhotoImage#cget bug fix
+Mon Jun 17 11:50:29 2013 Koichi Sasada <ko1@atdot.net>
-Fri Dec 24 18:39:25 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * gc.c (gc_mark_maybe): added. check `is_pointer_to_heap()' and
+ type is not T_ZOMBIE.
- * win32/win32.[ch]: failed to compile on bcc32 (and probably wince)
- [ruby-dev:25306]
+ * gc.c: use `gc_mark_maybe()'. T_ZOMBIE objects should not be pushed
+ to the mark stack.
-Fri Dec 24 02:52:52 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 17 07:56:24 2013 Tanaka Akira <akr@fsij.org>
- * io.c (io_reopen, rb_io_reopen): prohibit to change access mode for
- special IO ports. [ruby-dev:25225]
+ * bignum.c (bary_small_lshift): Renamed from bdigs_small_lshift.
+ (bary_small_rshift): Renamed from bdigs_small_rshift.
-Fri Dec 24 02:22:53 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 17 07:38:48 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/rubyext.c (rb_syck_io_str_read): [ruby-core:03973]
+ * bignum.c (absint_numwords_bytes): Removed.
+ (rb_absint_numwords): Don't call absint_numwords_bytes.
- * ext/syck/rubyext.c (syck_loader_transfer): check type conversion.
+Sun Jun 16 23:14:58 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/rubyext.c (syck_parser_assign_io, rb_new_syck_node): duck
- typing.
+ * 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.
- * ext/syck/rubyext.c (syck_parser_s_alloc, syck_parser_initialize):
- allocation framework.
+Sun Jun 16 21:41:39 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/rubyext.c (syck_emitter_s_alloc, syck_emitter_initialize):
- ditto.
+ * 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.
-Fri Dec 24 01:21:00 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * internal.h (rb_integer_unpack_2comp): Removed.
- * ext/tk/lib/tkextlib/blt.rb: add BLT extension support
+ * pack.c: Follow the above change.
- * ext/tk/lib/tkextlib/blt/*.rb: ditto
+Sun Jun 16 18:41:42 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkextlib/blt/tile/*.rb: ditto
+ * internal.h (INTEGER_PACK_2COMP): Defined.
+ (rb_integer_pack_2comp): Removed.
-Thu Dec 23 23:36:28 2004 Nobuyoshi Nakada <nobu@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.
- * process.c (proc_setgroups): check if the argument lenght is
- modified. fixed: [ruby-dev:25285]
+ * pack.c (pack_pack): Ditto.
-Thu Dec 23 13:13:33 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * sprintf.c (rb_str_format): Ditto.
- * ext/tcltklib/tcltklib.c: define TclTkLib::COMPILE_INFO and
- RELEASE_DATE
+Sun Jun 16 17:48:14 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/extconf.rb: ditto
+ * bignum.c (absint_numwords_generic): rb_funcall invocations removed.
- * ext/tk/tkutil.c: define TkUtil::RELEASE_DATE
+Sun Jun 16 16:04:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/tk/lib/tk.rb: define Tk::RELEASE_DATE
+ * tool/config_files.rb: use URI.read to allow it runs with Ruby 1.8.5.
-Thu Dec 23 09:38:31 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jun 16 14:32:25 2013 Tanaka Akira <akr@fsij.org>
- * io.c (io_reopen): restore exact mode. fixed: [ruby-core:04003]
+ * bignum.c (bary_pack) Extracted from rb_integer_pack_internal.
+ (absint_numwords_generic): Use bary_pack.
-Thu Dec 23 00:16:32 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jun 16 11:01:57 2013 Kouhei Sutou <kou@cozmixng.org>
- * configure.in (bsdi): use $(CC) for LDSHARED. fixed [ruby-dev:25270]
+ * NEWS (XMLRPC::Client#http): Add.
+ [ruby-core:55197] [Feature #8461]
-Wed Dec 22 11:14:55 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jun 16 10:38:45 2013 Tanaka Akira <akr@fsij.org>
- * io.c (rb_io_mode_modenum): replace O_ACCMODE with O_RDWR.
- fixed: [ruby-dev:25273]
+ * 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.
-Wed Dec 22 08:34:32 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Jun 16 08:55:22 2013 Tanaka Akira <akr@fsij.org>
- * ext/dl/sym.c (rb_dlsym_initialize): extract internal pointers after
- all argument conversion. fixed: [ruby-dev:25271]
+ * bignum.c (bigdivrem): Use a BDIGIT variable to store the return
+ value of bigdivrem_single.
-Wed Dec 22 00:08:01 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Sun Jun 16 08:43:59 2013 Tanaka Akira <akr@fsij.org>
- * lib/soap/*, test/soap/*, sample/soap/authheader/*: eval cleanup.
+ * 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.
-Tue Dec 21 22:07:33 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sun Jun 16 05:51:51 2013 Masaya Tarui <tarui@ruby-lang.org>
- * ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
- ossl_asn1_decode_all): temporary value should be marked volatile.
+ * 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.
-Tue Dec 21 14:40:02 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sun Jun 16 05:15:36 2013 Masaya Tarui <tarui@ruby-lang.org>
- * ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
- ossl_asn1_decode_all): use rb_str_new4 to avoid SEGV.
- fix [ruby-dev:25261]
+ * gc.c: Add some columns to more detail profile.
+ new columns: Allocated size, Prepare Time, Removing Objects, Empty Objects
- * test/openssl/test_asn1.rb: add tests for OpenSSL::ASN1.
+Sun Jun 16 02:04:40 2013 Masaya Tarui <tarui@ruby-lang.org>
-Tue Dec 21 12:22:40 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * io.c (io_reopen): keep duplex pipe in correct mode for exception
- safeness. fixed: [ruby-dev:25152]
+Sat Jun 15 23:50:24 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 21 12:10:04 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * bignum.c (bary_sub): New function.
+ (absint_numwords_generic): Use bary_sub.
+ (bigsub_core): Skip unnecessary copy.
- * ext/tk/lib/tk/grid.rb: rescue bug of 'grid configure' on Tcl/Tk8.3-
+Sat Jun 15 22:05:30 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 21 00:53:01 2004 Yukihiro Matsumoto <matz@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.
- * ext/openssl/ossl_asn1.c (ossl_asn1_traverse): [ruby-dev:25261]
+Sat Jun 15 20:13:46 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_asn1.c (ossl_asn1_decode): ditto.
+ * 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.
- * ext/openssl/ossl_asn1.c (ossl_asn1_decode_all): ditto.
+Sat Jun 15 19:35:04 2013 Tanaka Akira <akr@fsij.org>
-Mon Dec 20 23:22:26 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * bignum.c (absint_numwords_bytes): Make it static.
+ (absint_numwords_small): Ditto.
+ (absint_numwords_generic): Ditto.
- * added files:
- * lib/soap/mapping/wsdl*.rb
- * lib/wsdl/soap/element.rb
- * lib/wsdl/xmlSchema/simpleContent.rb
+Sat Jun 15 17:14:32 2013 Tanaka Akira <akr@fsij.org>
- * modified files:
- * lib/soap/*
- * lib/wsdl/*
- * lib/xsd/*
- * test/soap/*
- * test/wsdl/*
- * test/xsd/*
- * sample/soap/*
- * sample/sdl/*
+ * bignum.c (bigmul1_normal): Shrink the result Bignum length.
- * summary
- * imported from the soap4r repository. Version: 1.5.3-ruby1.8.2
+Sat Jun 15 10:19:42 2013 Zachary Scott <zachary@zacharyscott.net>
- * added several XSD basetype support: nonPositiveInteger,
- negativeInteger, nonNegativeInteger, unsignedLong, unsignedInt,
- unsignedShort, unsignedByte, positiveInteger
+ * ext/bigdecimal/bigdecimal.c: Update overview formatting of headers
- * HTTP client connection/send/receive timeout support.
+Sat Jun 15 10:19:06 2013 Zachary Scott <zachary@zacharyscott.net>
- * HTTP client/server gzipped content encoding support.
+ * ext/bigdecimal/bigdecimal.gemspec: Update authors
- * improved WSDL schema definition support; still is far from
- complete, but is making step by step improovement.
+Sat Jun 15 10:02:26 2013 Tanaka Akira <akr@fsij.org>
-Mon Dec 20 22:56:39 2004 Tanaka Akira <akr@m17n.org>
+ * bignum.c (bdigs_small_rshift): Extracted from big_rshift.
+ (bigdivrem): Use bdigs_small_rshift.
- * gc.c (stack_end_address): gcc noinline attribute is available since
- gcc-3.1.
+Sat Jun 15 08:37:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Dec 20 14:07:02 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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]
- * ext/tk/lib/multi-tk.rb: supports new features of Tcl/Tk8.5a2
+Sat Jun 15 02:40:18 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/clock.rb: ditto
+ * bignum.c (bdigs_small_lshift): Extracted from big_lshift.
+ (bigdivrem): Use bdigs_small_lshift.
- * ext/tk/lib/tk/text.rb: ditto
+Fri Jun 14 20:47:41 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/panedwindow.rb: ditto
+ * bignum.c (bigdivrem): Reduce number of digits before bignew() for div.
-Mon Dec 20 12:47:13 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri Jun 14 20:12:37 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/lib/net/https.rb,protocols.rb,telnets.rb: delete
- doc and code about SSLContext#{key_file,cert_file}.
- fixed: [ruby-dev:25243]
+ * bignum.c (bigdivrem): Use bignew when ny == 1.
-Mon Dec 20 12:42:17 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Jun 14 18:52:51 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (io_fwrite): workaround for MSVCRT's bug.
- fixed: [ruby-core:03982]
+ * 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?)
-Mon Dec 20 11:21:04 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_settracefunc.rb: add a test.
- * io.c (rb_io_eof): check if closed before clearerr().
- fixed: [ruby-dev:25251]
+Fri Jun 14 18:18:07 2013 Koichi Sasada <ko1@atdot.net>
-Mon Dec 20 03:30:40 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * class.c, include/ruby/ruby.h: add write barriers for T_CLASS,
+ T_MODULE, T_ICLASS.
- * lib/cgi/session.rb (CGI::Session#initialize): empty session id was
- used if request had no session key. fixed: [ruby-core:03981]
+ * constant.h: constify rb_const_entry_t::value and file to detect
+ assignment.
-Mon Dec 20 01:51:01 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * variable.c, internal.h (rb_st_insert_id_and_value, rb_st_copy):
+ added. update table with write barrier.
- * struct.c (make_struct): [ruby-dev:25249]
+ * method.h: constify some variables to detect assignment.
-Mon Dec 20 00:28:20 2004 Kouhei Sutou <kou@cozmixng.org>
+ * object.c (init_copy): add WBs.
- * lib/rexml/encodings/SHIFT-JIS.rb: backported from CVS HEAD.
+ * variable.c: ditto.
- * lib/rexml/encodings/SHIFT_JIS.rb: ditto.
+ * vm_method.c (rb_add_method): ditto.
-Sun Dec 19 17:19:48 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri Jun 14 14:33:47 2013 Shugo Maeda <shugo@ruby-lang.org>
- * ext/openssl/ossl_x509store.c
- (ossl_x509store_set_time): add OpenSSL::X509::Store#time=.
- (ossl_x509stctx_set_time): add OpenSSL::X509::StoreContext#time=.
+ * NEWS: add a note for Module#using.
- * test/openssl/ossl_x509store.rb: test certificate validity times.
+Fri Jun 14 13:40:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_x509name.c (ossl_x509name_to_s): add optional
- second argument to specify the output format (see also
- X509_NAME_print_ex).
+ * .travis.yml (before_script): update config files.
- * ext/openssl/ossl_x509name.c (ossl_x509name_init): new constants:
- OpenSSL::X509::Name::COMPAT, OpenSSL::X509::Name::RFC2253,
- OpenSSL::X509::ONELINE, OpenSSL::X509::MULTILINE.
+ * common.mk ($(srcdir)/tool/config.{guess,sub}): use get-config_files.
- * ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name::RFC2253DN):
- new module to provide the parse for RFC2253 DN format.
+ * tool/config_files.rb: split get-config_files.
- * ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name.parse_rfc2253):
- new method to parse RFC2253 DN format.
+ * common.mk (update-config_files): rule to download config files.
- * test/openssl/ossl_x509name.rb: add tests about RFC2253 DN.
+ * tool/config.guess, tool/config.sub: remove and download from the
+ upstream.
- * text/openssl/ssl_server.rb: try to listen ports from 20443 to 20542
- while EADDRINUSE is raised.
+ * tool/config_files.rb: download config files from GNU.
- * all changes in this entry are backport from 1.9.
+Fri Jun 14 12:21:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Dec 19 17:24:59 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/ruby.h (RUBY_SAFE_LEVEL_CHECK): suppress warnings
+ "left-hand operand of comma expression has no effect", on gcc 4.4.
- * configure.in (enable_rpath): use rpath flag to embed the library
- path into extensions on ELF environment. [ruby-dev:25035]
+Fri Jun 14 09:48:48 2013 Shugo Maeda <shugo@ruby-lang.org>
-Sun Dec 19 11:01:25 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * NEWS: add notes for $SAFE.
- * lib/test/unit.rb: use standalone runner for -e.
+ * doc/security.rdoc: remove the description of $SAFE=4.
- * lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): accept
- multiple -p and -x options.
+Fri Jun 14 00:14:29 2013 Tanaka Akira <akr@fsij.org>
- * lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#recursive_collect):
- ditto.
+ * bignum.c (bigdivrem): Zero test condition simplified.
-Sat Dec 18 16:36:23 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Jun 13 23:43:11 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate):
- disallow interrupt by type conversion. fixed: [ruby-dev:25226]
+ * ext/bigdecimal/*: improve documentation, nodoc samples with @mrkn
-Sat Dec 18 15:16:41 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Thu Jun 13 23:02:14 2013 Kouhei Sutou <kou@cozmixng.org>
- * lib/webrick/httpauth.rb,
- lib/webrick/httpauth/{basicauth.rb,digestauth.rb}: use
- pack/unpack-template char "m" instead of lib/base64.rb to do base64
- encoding/decoding.
+ * lib/xmlrpc/client.rb (XMLRPC::Client#http): Add reader for raw
+ Net::HTTP. [ruby-core:55197] [Feature #8461]
+ Reported by Herwin Weststrate. Thanks!!!
-Sat Dec 18 10:51:01 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jun 13 22:44:52 2013 Kouhei Sutou <kou@cozmixng.org>
- * dir.c (dir_open_dir): new function. [ruby-dev:25242]
+ * 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.
-Fri Dec 17 18:07:01 2004 Shugo Maeda <shugo@ruby-lang.org>
+Thu Jun 13 22:35:50 2013 Kouhei Sutou <kou@cozmixng.org>
- * test/readline/test_readline.rb: fix for BSD. Thanks, GOTOU Yuuzou.
- fixed: [ruby-dev:25218]
+ * lib/xmlrpc/client.rb (XMLRPC::Client#parse_set_cookies): Use
+ guard style.
-Fri Dec 17 16:28:12 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Jun 13 22:12:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk.rb: fix bug on setting up system encoding
+ * lib/fileutils.rb (FileUtils#rmdir): fix traversal loop, not trying
+ remove same directory only.
- * ext/tk/lib/tk/event.rb: fix error on require process
+Thu Jun 13 21:30:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/font.rb: fix abnormal termination error on Windows
+ * configure.in (opt-dir), tool/ifchange: get rid of "alternate value"
+ expansion for legacy sh. [ruby-dev:47420] [Bug #8524]
- * ext/tk/lib/tk/virtevent.rb: TkVirtualEvent::PreDefVirtEvent.new()
- accepts event-sequence arguments
+Thu Jun 13 21:24:09 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/text.rb: fail to dump embedded images
+ * bignum.c (bigdivrem): Refactored to use ALLOCV_N for temporary
+ buffers.
- * ext/tk/lib/tk/text.rb: tag_nextrange and tag_prevrange returns wrong
- types of values
+Thu Jun 13 18:54:11 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/tk/lib/tk/texttag.rb: nextrange and prevrange returns wrong
- types of values
+ * 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.
- * ext/tk/lib/tk/text.rb: add TkText::IndexModMethods module and
- TkText::IndexString class to treat text index modifiers
+Thu Jun 13 18:53:14 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/texttag.rb: use TkText::IndexModMethods module
+ * test/ruby/test_thread.rb (test_thread_local_security): Don't create
+ an unused thread.
- * ext/tk/lib/tk/textmark.rb: ditto
+Thu Jun 13 18:34:20 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/textimage.rb: ditto
+ * bignum.c (bigdivrem): Use nlz.
- * ext/tk/lib/tk/textwindow.rb: ditto
+Thu Jun 13 14:51:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/textimage.rb: wrong gravity of text mark for embedded
- image
+ * include/ruby/ruby.h (RUBY_SAFE_LEVEL_CHECK): check constant safe
+ level at compile time.
- * ext/tk/lib/tk/textwindow.rb: wrong gravity of text mark for
- embedded window
+Thu Jun 13 14:39:08 2013 Shugo Maeda <shugo@ruby-lang.org>
-Fri Dec 17 13:50:00 2004 Akiyoshi, Masamichi <akiyoshi@hp.com>
+ * 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.
- * vms/vmsruby_private.c, vms/vmsruby_private.h: private routines
- for VMS port are added.
+Thu Jun 13 10:47:16 2013 Shugo Maeda <shugo@ruby-lang.org>
- * eval.c (ruby_init): change to call VMS private intialization routine.
+ * bootstraptest/test_autoload.rb, bootstraptest/test_method.rb:
+ remove tests for $SAFE=4.
-Fri Dec 17 13:33:58 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/pp.rb: use taint instead of untrust to avoid warnings when
+ $VERBOSE is set to true.
- * lib/cgi/session.rb (CGI::Session#initialize): control adding
- session_id hidden fields. fixed: [ruby-talk:123850]
+Thu Jun 13 06:12:18 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 16 23:25:25 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * 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]
- * lib/drb/drb.rb, lib/drb/ssl.rb: backported from CVS HEAD.
- [druby-ja:101]
+Thu Jun 13 05:32:13 2013 Eric Hodel <drbrain@segment7.net>
- * test/drb/test_drb.rb: adjust and reduce sleep (backported from
- CVS HEAD.)
+ * ext/socket/extconf.rb: Enable RFC 3542 IPV6 socket options for OS X
+ 10.7+. [ruby-trunk - Bug #8517]
-Thu Dec 16 18:44:58 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Thu Jun 13 00:17:18 2013 Tanaka Akira <akr@fsij.org>
- * lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should wait
- for reading request till data arrive. [ruby-talk:121068]
+ * 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.
- * lib/webrick/server.rb (WEBrick::GenericServer#start_thread):
- should log about all accepted socket. [ruby-core:03962]
+ * internal.h (rb_integer_unpack_2comp): Declared.
- * lib/webrick/accesslog.rb (WEBrick::AccessLog#setup_params):
- "%%" and "%u" are supported. [webricken:135]
+ * pack.c (pack_unpack): Use rb_integer_unpack_2comp and
+ rb_integer_unpack.
- * lib/webrick/httpservlet/filehandler.rb
- (WEBrick::HTTPServlet::FileHandler#check_filename):
- :NondisclosureName is acceptable if it is Enumerable.
+Wed Jun 12 23:27:03 2013 Shugo Maeda <shugo@ruby-lang.org>
- * lib/webrick/config.rb (WEBrick::Config::FileHandler):
- default value of :NondisclosureName is [".ht*", "*~"].
+ * 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]
-Thu Dec 16 18:36:52 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * test/ruby/test_refinement.rb: related test.
- * ext/openssl/ossl.c (ossl_raise): refine message format.
+Wed Jun 12 22:58:48 2013 Shugo Maeda <shugo@ruby-lang.org>
-Thu Dec 16 16:29:44 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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]
- * ext/tk/sample/demos-en/widget: modify version check for
- supporting features
+ * 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.
-Thu Dec 16 16:03:50 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * include/ruby/ruby.h (OBJ_UNTRUSTED, OBJ_UNTRUST): OBJ_UNTRUSTED()
+ and OBJ_UNTRUST() are aliases of OBJ_TAINTED() and OBJ_TAINT(),
+ respectively.
- * ext/tk/lib/tk/bindtag.rb: bug fix [ruby-talk: 123667]
+ * 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.
- * ext/tk/lib/tk/timer.rb: accept :idle for the interval argument
+ * 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.
- * ext/tk/lib/tk.rb: add TkComm._callback_entry?()
+Wed Jun 12 22:18:23 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/multi-tk.rb: add MultiTkIp.cb_entry_class
+ * 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.
- * ext/tk/lib/tk/canvas.rb: use TkComm._callback_entry?()
+Wed Jun 12 20:18:03 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/tk/lib/tk/canvastag.rb: ditto
+ * lib/xmlrpc/client.rb (XMLRPC::Client#parse_set_cookies): Extract.
- * ext/tk/lib/tk/dialog.rb: ditto
+Wed Jun 12 18:19:41 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/optiondb.rb: ditto
+ * 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.
- * ext/tk/lib/tk/text.rb: ditto
+Wed Jun 12 16:41:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/texttag.rb: ditto
+ * array.c (rb_ary_sort_bang): remove duplicated assertions.
+ ARY_HEAP_PTR() implies ary not to be embedded. [ruby-dev:47419]
+ [Bug #8518]
- * ext/tk/lib/tk/textwindow.rb: ditto
+Wed Jun 12 12:44:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/timer.rb: ditto
+ * io.c (io_getc): fix 7bit coderange condition, check if ascii read
+ data instead of read length. [ruby-core:55444] [Bug #8516]
- * ext/tk/lib/tk/validation.rb: ditto
+Wed Jun 12 12:35:13 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkextlib/*: ditto
+ * pack.c (pack_pack): Use rb_integer_pack_2comp.
-Thu Dec 16 03:14:28 2004 Minero Aoki <aamine@loveruby.net>
+Wed Jun 12 12:07:04 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/http.rb (basic_encode): return value of pack('m') may
- include multiple CR/LFs. Backported from main trunk (rev 1.112).
- [ruby-dev:25212]
+ * sprintf.c (rb_str_format): Fix a dynamic format string.
-Thu Dec 16 00:33:37 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jun 12 12:04:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * hash.c (Init_Hash): remove custom "hash" and "eql?".
+ * array.c (rb_ary_uniq_bang): must not be modified once frozen even in
+ a callback method.
-Wed Dec 15 18:57:01 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jun 12 12:03:43 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/set.rb (Set::eql): wrong definition. [ruby-dev:25207]
+ * array.c (rb_ary_sort_bang): must not be modified once frozen even in
+ a callback method.
-Wed Dec 15 18:48:42 2004 Shugo Maeda <shugo@ruby-lang.org>
+Wed Jun 12 12:00:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/curses/curses.c (window_subwin): call NUM2INT() before
- GetWINDOW(). (backported from CVS HEAD)
+ * array.c (FL_SET_EMBED): shared object is frozen even when get
+ unshared.
-Wed Dec 15 17:03:50 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * array.c (rb_ary_modify): ARY_SET_CAPA needs unshared array.
- * win32/win32.[ch] (rb_w32_isatty): new function to replace MSVCRT's
- isatty because it never sets errno. (backported from CVS HEAD)
+Wed Jun 12 07:32:01 2013 Tanaka Akira <akr@fsij.org>
-Wed Dec 15 15:39:32 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * random.c (rand_int): Use rb_big_uminus.
- * ext/openssl/ossl_x509name.c (ossl_x509name_to_a): avoid SEGV
- (rollback the previous commit).
+Wed Jun 12 07:12:54 2013 Eric Hodel <drbrain@segment7.net>
-Wed Dec 15 16:10:23 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * object.c (rb_obj_id_obsolete): warn always.
+Wed Jun 12 06:35:01 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_enable_super): ditto.
+ * internal.h (INTEGER_PACK_NEGATIVE): Defined.
+ (rb_integer_unpack): sign argument removed.
-Wed Dec 15 15:31:02 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * lib/set.rb (Set#==): [ruby-dev:25206]
+ * pack.c (pack_unpack): Follow the above change.
-Wed Dec 15 14:22:10 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * random.c (int_pair_to_real_inclusive): Ditto.
+ (make_seed_value): Ditto.
+ (mt_state): Ditto.
+ (limited_big_rand): Ditto.
- * win32/win32.c (rb_w32_fdisset): check whether the handle is valid.
- fixed: [ruby-core:03959]
+ * marshal.c (r_object0): Ditto.
-Wed Dec 15 10:30:37 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jun 12 00:07:46 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198]
+ * test/xmlrpc/test_client.rb (XMLRPC::ClientTest#test_cookie_simple):
+ Add a test for the extracted method.
-Tue Dec 14 17:10:09 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Jun 11 23:56:24 2013 Kouhei Sutou <kou@cozmixng.org>
- * win32/win32.c (rb_w32_close): need to reset osfhnd().
+ * test/xmlrpc/test_client.rb (XMLRPC::ClientTest::Fake::HTTP#started):
+ Add a missing empty line.
-Tue Dec 14 14:03:57 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Tue Jun 11 23:37:19 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl.c (ossl_raise): avoid buffer overrun.
- [ruby-dev:25187]
+ * 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.
-Tue Dec 14 12:36:04 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * hash.c (rb_hash): Ditto.
- * lib/cgi/session.rb (CGI::Session::initialize): generate new
- session if given session_id does not exist. [ruby-list:40368]
+ * time.c (v2w_bignum): Ditto.
-Mon Dec 13 18:13:52 2004 Tanaka Akira <akr@m17n.org>
+Tue Jun 11 23:01:57 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (stack_end_address): new function to obtain stack end address.
- stack_end_address calls __builtin_frame_address(0) to obtain the
- frame pointer of a stack frame of stack_end_address. The address
- is the stack pointer of the caller's stack frame.
- (SET_STACK_END): use stack_end_address.
- This makes the conservative garbage collector to scan a stack frame
- of the garbage_collect function itself. This is required because
- callee-save registers may be stored in the frame.
- [ruby-dev:25158]
+ * bignum.c (validate_integer_pack_format): Refine error messages.
-Mon Dec 13 00:58:02 2004 Tanaka Akira <akr@m17n.org>
+Tue Jun 11 22:25:04 2013 Tanaka Akira <akr@fsij.org>
- * lib/pathname.rb (cleanpath_aggressive): make it private.
- (cleanpath_conservative): ditto.
- Suggested by Daniel Berger. [ruby-core:3914]
+ * 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.
-Sun Dec 12 20:06:38 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Tue Jun 11 20:52:43 2013 Tanaka Akira <akr@fsij.org>
- * lib/drb/drb.rb: backported from CVS HEAD.
+ * 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.
-Sun Dec 12 10:35:10 2004 Dave Thomas <dave@pragprog.com>
+ * internal.h (rb_integer_pack_2comp): Declared.
- * lib/rdoc/generators/template/html/html.rb (RDoc::Page): Don't
- show an accessor's r/w flag if none was specified
+ * 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.
-Sun Dec 12 10:14:03 2004 Dave Thomas <dave@pragprog.com>
+Tue Jun 11 16:15:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/rdoc.rb (RDoc::RDoc::parse_files): Never exclude files
- explicitly given on the command line.
+ * array.c (ary_shrink_capa): shrink the capacity so it fits just with
+ the length.
-Sun Dec 11 23:54:07 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * array.c (ary_make_shared): release never used elements from frozen
+ array to be shared. [ruby-dev:47416] [Bug #8510]
- * ext/tk/*: update to support libraries in ActiveTcl8.4.12.0
- (see ext/tk/ChangeLog.tkextlib).
+Tue Jun 11 12:49:01 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/tk/sample/scrollframe.rb: add a new sample.
+ * doc/re.rdoc: Rename to doc/regexp.rdoc
+ * re.c: Update rdoc include for rename of file
-Sat Dec 11 20:12:21 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Tue Jun 11 07:13:13 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/drb/drb.rb: add DRbRemoteError. [ruby-list:40348],
- [ruby-list:40390]
+ * eval_error.c (error_print): keep that errat is non-shady object.
+ and guard errat from GC.
- * test/drb/drbtest.rb: ditto.
+Tue Jun 11 05:04:25 2013 Benoit Daloze <eregontp@gmail.com>
- * test/drb/ut_drb.rb: ditto.
+ * 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.
-Sat Dec 11 15:38:14 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jun 10 23:51:51 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * lib/jcode.rb (String::succ): [ruby-dev:25156]
+ * 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
-Sat Dec 11 12:41:55 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Jun 10 21:51:03 2013 Kouhei Sutou <kou@cozmixng.org>
- * eval.c (run_trap_eval): prototype; avoid VC++ warnings.
+ * ext/socket/raddrinfo.c (nogvl_getaddrinfo): Fix indent.
- * ext/socket/getaddrinfo.c: fix typo. fixed: [ruby-core:03947]
+Mon Jun 10 21:49:43 2013 Kouhei Sutou <kou@cozmixng.org>
- * win32/win32.c: need to include dln.h.
+ * ext/socket/raddrinfo.c (nogvl_getaddrinfo): Add missing return
+ value assignment.
-Sat Dec 11 00:10:18 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jun 10 20:58:11 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * io.c (io_reopen): [ruby-dev:25150]
+ * ext/socket/raddrinfo.c (nogvl_getaddrinfo): work around for Ubuntu
+ 13.04's getaddrinfo issue with mdns4. [ruby-list:49420]
-Fri Dec 10 08:39:27 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Jun 10 19:34:39 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/socket.c (sock_listen): get OpenFile just before calling
- listen(2). fixed: [ruby-dev:25149]
+ * bignum.c (rb_integer_pack): Returns sign instead of words.
+ (absint_numwords_generic): Follow the above change.
+ (big2str_base_powerof2): Follow the above change.
-Thu Dec 9 17:00:00 2004 Akiyoshi, Masamichi <akiyoshi@hp.com>
+ * internal.h: Ditto.
- * ext/socket/socket.c, ext/socket/getaddrinfo.c: port to VMS
+ * hash.c (rb_hash): Ditto.
-Thu Dec 9 16:31:02 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * pack.c (pack_pack): Ditto.
- * ext/sdbm/init.c (GetDBM): typo.
+ * random.c (int_pair_to_real_inclusive): Ditto.
+ (rand_init): Ditto.
+ (random_load): Ditto.
+ (limited_big_rand): Ditto.
-Thu Dec 9 16:05:00 2004 Akiyoshi, Masamichi <akiyoshi@hp.com>
+ * time.c (v2w_bignum): Ditto.
- * defines.h: change path of vms.h
- * vms/vms.h: delete reference for snprintf()
- * vms/config.h: new file
- * vms/config.h_in: deleted
+Mon Jun 10 17:20:01 2013 Koichi Sasada <ko1@atdot.net>
-Thu Dec 9 14:38:35 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (rgengc_remember): permit promoted object.
+ (rb_gc_writebarrier -> remember)
- * string.c (rb_str_inspect): escape # which starts an expression
- substitution. fixed: [ruby-core:03922]
+Mon Jun 10 17:14:01 2013 Koichi Sasada <ko1@atdot.net>
- * string.c (rb_str_dump): not escape # which isn't a substitution.
+ * gc.c (RVALUE_PROMOTE): fix parameter name (`x' to `obj')
+ and make it inline function (like RVALUE_PROMOTE).
-Thu Dec 9 10:54:36 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jun 10 16:22:50 2013 Koichi Sasada <ko1@atdot.net>
- * ext/dbm/dbm.c (fdbm_select): [ruby-dev:25132]
+ * array.c (rb_ary_new_from_values): add assertion
+ (ary should be young object).
- * ext/sdbm/init.c: ditto.
+Mon Jun 10 16:05:59 2013 Koichi Sasada <ko1@atdot.net>
- * ext/gdbm/gdbm.c: ditto.
+ * gc.c (wmap_mark): check allocation of `w->obj2wmap'.
+ (no-allocation `w->obj2wmap' will be NULL pointer reference)
-Thu Dec 9 03:08:36 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Jun 10 15:36:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/tcltklib.c (ip_init): set root-win title to "ruby" when
- the running script is '-e one-liner' or '-' (stdin).
+ * eval_error.c (error_print): use checking functions instead of
+ catching exceptions.
- * ext/tcltklib/extconf.rb: add find_library("#{lib}#{ver}",..) for
- stub libs
+ * eval_error.c (error_print): restore errinfo for the case new
+ exception raised while printing the message. [ruby-core:55365]
+ [Bug #8501]
- * ext/tk/lib/tk/textmark.rb: TkTextMarkCurrent and TkTextMarkAnchor
- have a wrong parent class.
+ * eval_error.c (error_print): reduce calling setjmp.
- * ext/tk/lib/tk/dialog.rb: rename TkDialog2 --> TkDialogObj and
- TkWarning2 --> TkWarningObj (old names are changed to alias names)
+Mon Jun 10 12:10:06 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/dialog.rb: bug fix of treatment of 'prev_command'
- option and hashes for configuration
+ * 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.
- * ext/tk/lib/tk/dialog.rb: add TkDialogObj#name to return the
- button name
+Mon Jun 10 05:38:23 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/radiobutton.rb: rename enbugged method value() ==>
- get_value() and value=(val) ==> set_value(val).
+ * bignum.c (absint_numwords_small): New function.
+ (absint_numwords_generic): Use absint_numwords_small if possible.
- * ext/tk/lib/tk/menu.rb: add TkMenu.new_menuspec
+Mon Jun 10 01:07:57 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/menu.rb: add alias (TkMenuButton = TkMenubutton,
- TkOptionMenuButton = TkOptionMenubutton)
+ * bignum.c (absint_numwords_bytes): New function.
+ (absint_numwords_generic): Extracted from rb_absint_numwords.
+ (rb_absint_numwords): Use absint_numwords_bytes if possible.
- * ext/tk/lib/tk/event.rb: new method aliases (same as option keys of
- event_generate) for Event object
+Sun Jun 9 21:33:15 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/font.rb: configinfo returns proper types of values
+ * bignum.c (rb_absint_numwords): Return (size_t)-1 when overflow.
+ Refine variable names.
+ (rb_absint_size): Refine variable names.
- * ext/tk/lib/tk.rb: bind methods accept subst_args + block
+ * internal.h (rb_absint_size): Refine an argument name.
+ (rb_absint_numwords): Ditto.
- * ext/tk/lib/tk/canvas.rb: ditto
+Sun Jun 9 16:51:41 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/canvastag.rb: ditto
+ * bignum.c (rb_absint_numwords): Renamed from rb_absint_size_in_word.
- * ext/tk/lib/tk/frame.rb: ditto
+ * internal.h (rb_absint_numwords): Follow the above change.
- * ext/tk/lib/tk/text.rb: ditto
+ * pack.c (pack_pack): Ditto.
- * ext/tk/lib/tk/texttag.rb: ditto
+ * random.c (rand_init): Ditto.
+ (limited_big_rand): Ditto.
- * ext/tk/lib/tk/toplevel.rb: ditto
+Sun Jun 9 14:41:05 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkextlib/*: ditto and bug fix
+ * bignum.c (rb_integer_pack): numwords_allocated argument removed.
-Wed Dec 8 23:54:29 2004 Dave Thomas <dave@pragprog.com>
+ * internal.h (rb_integer_pack): Follow the above change.
- * lib/rdoc/generators/template/html/html.rb (RDoc::Page): Typo
- meant that h2 tag was invisible.
+ * hash.c (rb_hash): Ditto.
-Wed Dec 8 21:56:31 2004 Kouhei Sutou <kou@cozmixng.org>
+ * time.c (v2w_bignum): Ditto.
- * lib/rss, test/rss, sample/rss: backported from CVS HEAD.
+ * pack.c (pack_pack): Ditto.
-Wed Dec 8 14:31:36 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * random.c (int_pair_to_real_inclusive): Ditto.
+ (rand_init): Ditto.
+ (random_load): Ditto.
+ (limited_big_rand): Ditto.
- * io.c (io_fwrite): change dereference for cosmetic reason.
+Sun Jun 9 09:34:44 2013 Tanaka Akira <akr@fsij.org>
- * sprintf.c (rb_f_sprintf): [ruby-dev:25104]
+ * bignum.c (big2str_base_powerof2): New function.
+ (rb_big2str0): Use big2str_base_powerof2 if base is 2, 4, 8, 16 or 32.
-Tue Dec 7 19:08:00 2004 Akiyoshi, Masamichi <akiyoshi@hp.com>
+Sun Jun 9 00:59:04 2013 Tanaka Akira <akr@fsij.org>
- * io.c (io_fwrite): fix offset incrementation (for VMS and Human68k)
+ * hash.c (rb_hash): Use rb_integer_pack to obtain least significant
+ long integer.
-Tue Dec 7 00:27:37 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 8 23:56:00 2013 Tanaka Akira <akr@fsij.org>
- * process.c (proc_setgroups): [ruby-dev:25081]
+ * numeric.c (rb_num_to_uint): Use rb_absint_size instead of
+ RBIGNUM_LEN.
-Mon Dec 6 18:08:10 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 8 22:53:45 2013 Tanaka Akira <akr@fsij.org>
- * re.c (rb_reg_eqq): document fix. [ruby-talk:122541]
+ * marshal.c (r_object0): Use rb_integer_unpack.
-Mon Dec 6 17:19:13 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 8 22:18:57 2013 Tanaka Akira <akr@fsij.org>
- * rubysig.h (TRAP_BEG, TRAP_END): safe errno around CHECK_INTS.
- (backported from CVS HEAD) [ruby-dev:24993]
+ * time.c (v2w): Use rb_absint_size instead of RBIGNUM_LEN.
-Mon Dec 6 10:18:17 2004 Dave Thomas <dave@pragprog.com>
+Sat Jun 8 21:47:33 2013 Tanaka Akira <akr@fsij.org>
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in):
- Oops - 1.8 doesn't have String#clear
+ * time.c (v2w_bignum): Simplified using rb_integer_pack.
+ (rb_big_abs_find_maxbit): Removed.
-Mon Dec 6 09:59:23 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 8 21:03:40 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/socket.c (sock_connect): use rb_str_new4().
- [ruby-dev:25052]
+ * bignum.c (rb_absint_singlebit_p): New function.
-Mon Dec 6 01:42:08 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * internal.h (rb_absint_singlebit_p): Declared.
- * ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,
- ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,
- ossl_rsa_private_decrypt): should take an optional argument
- to specify padding mode. [ruby-talk:122539]
+ * time.c (v2w_bignum): Use rb_absint_singlebit_p instead of
+ rb_big_abs_find_minbit.
+ (rb_big_abs_find_minbit): Removed.
- * ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): add new constants
- PKCS1_PADDING, SSLV23_PADDING, NO_PADDING and PKCS1_OAEP_PADDING
- under OpenSSL::PKey::RSA.
+Sat Jun 8 20:24:23 2013 Tanaka Akira <akr@fsij.org>
- * test/openssl/test_pkey_rsa.rb: new file.
+ * time.c (rb_big_abs_find_maxbit): Use rb_absint_size.
+ (bdigit_find_maxbit): Removed.
-Sun Dec 5 19:39:17 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 8 19:47:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * lib/optparse.rb (OptionParser::Completion#complete): new parameter
- to direct case insensitiveness.
+ * class.c (include_modules_at): invalidate method cache if included
+ module contains constants
- * lib/optparse.rb (OptionParser#order!): ignore case only for long
- option. [ruby-dev:25048]
+ * test/ruby/test_module.rb: add test
-Sat Dec 4 22:54:15 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 8 19:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * io.c (io_write): remove rb_str_locktmp(). [ruby-dev:25050]
+ * random.c (limited_big_rand): declare rnd, lim and mask as uint32_t
+ to avoid 64 bit to 32 bit shorten warnings.
- * io.c (io_fwrite): takes VALUE string as an argument.
- [ruby-dev:25050]
+Sat Jun 8 19:23:53 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/socket/socket.c (sock_connect): remove rb_str_locktmp().
- [ruby-dev:25050]
+ * 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.
- * ext/socket/socket.c (udp_connect): [ruby-dev:25045]
+Sat Jun 8 19:06:26 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/socket.c (udp_bind): ditto.
+ * random.c: Unused RBignum internal accessing macros removed.
- * ext/socket/socket.c (udp_send): ditto.
+Sat Jun 8 19:04:15 2013 Tanaka Akira <akr@fsij.org>
- * ext/socket/socket.c (bsock_send): ditto.
+ * random.c (limited_big_rand): The argument, limit, is changed to
+ VALUE. Use rb_integer_pack and rb_integer_unpack.
- * ext/socket/socket.c (s_recvfrom): ditto.
+Sat Jun 8 17:15:18 2013 Tanaka Akira <akr@fsij.org>
- * hash.c (rb_hash_hash): should provide "hash" method where "eql?"
- is redefined. [ruby-talk:122482]
+ * random.c (make_seed_value): Fix the length given for
+ rb_integer_unpack.
-Sat Dec 4 14:54:52 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat Jun 8 16:38:02 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (proc_invoke): use volatile `tmp' rather than `args'.
- [ruby-core:03882]
+ * bignum.c (rb_integer_unpack): Don't use rb_funcall if possible.
-Sat Dec 4 14:28:56 2004 Dave Thomas <dave@pragprog.com>
+ * random.c: Use uint32_t for elements of seed.
+ (make_seed_value): Use rb_integer_unpack.
- * lib/rdoc/code_objects.rb (RDoc::Context::Section::set_comment):
- Section comments may now be bracketed by lines which are
- ignored. You can now write
- # -----------
- # :section: Dave's Section
- # comment material
- # -----------
- The lines before :section: are removed, and identical lines at the end are
- also removed if present.
+Sat Jun 8 15:58:18 2013 Tanaka Akira <akr@fsij.org>
-Sat Dec 4 03:33:45 2004 Shugo Maeda <shugo@ruby-lang.org>
+ * 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/readline/readline.c: check $SAFE. (backported from CVS HEAD)
+Sat Jun 8 15:30:03 2013 Tanaka Akira <akr@fsij.org>
- * test/readline/test_readline.rb: added tests for readline.
- (backported from CVS HEAD)
+ * random.c (rand_init): Use rb_integer_pack.
+ (roomof): Removed.
-Sat Dec 4 02:24:00 2004 NARUSE, Yui <naruse@ruby-lang.org>
+Sat Jun 8 14:58:32 2013 Tanaka Akira <akr@fsij.org>
- * ext/nkf/nkf.c: add constant NKF::VERSION
+ * internal.h (INTEGER_PACK_FORCE_BIGNUM): New flag constant.
- * ext/nkf/nkf.c(guess): this becomes an alias of guess2
+ * bignum.c (rb_integer_unpack): Support INTEGER_PACK_FORCE_BIGNUM.
- * ext/nkf/test.rb(mime_out2): add --no-cp932
+ * random.c (int_pair_to_real_inclusive): Use
+ INTEGER_PACK_FORCE_BIGNUM to use rb_big_mul instead of rb_funcall.
- * ext/nkf/nkf-utf8/nkf.c: original nkf2 revision 1.47
+Sat Jun 8 14:17:01 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Dec 4 00:35:08 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in: check for NET_LUID. header macro varies across
+ compiler versions.
- * ext/socket/socket.c (bsock_setsockopt): [ruby-dev:25039]
+ * win32/win32.c: use configured macro.
-Fri Dec 3 18:57:03 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 8 11:59:55 2013 Tanaka Akira <akr@fsij.org>
- * lib/ostruct.rb: 1.9 marshaling support back-ported.
- [ruby-core:03871]
+ * random.c (int_pair_to_real_inclusive): Use rb_funcall instead of
+ rb_big_mul because rb_integer_unpack can return a Fixnum.
-Fri Dec 3 13:45:20 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 8 11:17:39 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (proc_invoke): copy arguments to frame.argv.
- [ruby-core:03861]
+ * random.c (int_pair_to_real_inclusive): Use rb_integer_pack.
-Fri Dec 3 12:25:41 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 8 09:49:42 2013 Tanaka Akira <akr@fsij.org>
- * st.h: fix prototypes.
+ * random.c (int_pair_to_real_inclusive): Use rb_integer_unpack.
-Fri Dec 3 00:21:05 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 8 08:12:22 2013 Tanaka Akira <akr@fsij.org>
- * object.c (convert_type): use rb_respond_to() again.
- [ruby-dev:25021]
+ * random.c (random_load): Use rb_integer_pack.
- * eval.c (rb_respond_to): funcall respond_to? if it's redefined.
- [ruby-dev:25021]
+Sat Jun 8 06:15:46 2013 Tanaka Akira <akr@fsij.org>
-Fri Dec 3 01:55:24 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * random.c (numberof): Removed.
- * ext/tk/lib/tk.rb: widget configuration by TkWindow#method_missing
- returns proper object. "widget.option = val" returns val, and
- "widget.option(val)" returns self.
+Sat Jun 8 06:00:47 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/font.rb: TkFont#replace accepts only one font argument.
+ * random.c: include internal.h.
+ (mt_state): Use rb_integer_unpack.
- * ext/tk/lib/tk/radiobutton.rb: add TkRadiobutton#value and
- TkRadiobutton#value=(val).
+Sat Jun 8 00:55:51 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/spinbox.rb: callback substitution support on
- command option.
+ * 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.
- * ext/tk/sample/demos-en/widget: bug fix (wrong image height)
+Sat Jun 8 00:37:32 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/sample/demos-jp/widget: ditto.
+ * 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.
-Fri Dec 3 00:11:48 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Jun 7 23:58:06 2013 Tanaka Akira <akr@fsij.org>
- * io.c (rb_file_initialize): [ruby-dev:25032]
+ * 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.
-Thu Dec 2 16:41:03 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * pack.c: Ditto.
- * eval.c (rb_protect): prevent continuations created inside from being
- called from the outside. [ruby-dev:25003]
+ * 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.
- * eval.c (rb_callcc, rb_cont_call): prohibit calling from different
- signal contexts. [ruby-dev:25022]
+Fri Jun 7 22:10:50 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Thu Dec 2 09:57:24 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems/specification.rb (Gem::Specification#to_yaml):
+ use Gem::NoAliasYAMLTree.create instead of Gem::NoAliasYAMLTree.new
+ to suppress deprecated warnings.
- * lib/ostruct.rb (OpenStruct::Marshaler): OpenStruct can be
- marshaled again. [ruby-core:03862]
+Fri Jun 7 21:39:39 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 2 09:30:06 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_integer_pack): Renamed from rb_int_export.
+ (rb_integer_unpack): Renamed from rb_int_import.
- * eval.c (thread_mark): mark thread group. [ruby-dev:25020]
+ * internal.h, pack.c: Follow the above change.
- * eval.c (thgroup_add): check whether the argument is really a Thread.
+Fri Jun 7 21:05:26 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 2 07:57:16 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (integer_format_loop_setup): Extracted from rb_int_export
+ and rb_int_import.
- * io.c (rb_io_ctl): [ruby-dev:25019]
+Fri Jun 7 19:48:38 2013 Tanaka Akira <akr@fsij.org>
-Wed Dec 1 02:21:02 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (validate_integer_format): Extracted from rb_int_export and
+ rb_int_import.
- * signal.c (sighandler): call handler immediately only for default
- handlers. [ruby-dev:25003]
+Fri Jun 7 19:23:15 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 30 23:38:18 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_absint_size): Use numberof.
+ (rb_int_export): Ditto.
- * io.c (io_fread): need not to null terminate. [ruby-dev:24998]
+Fri Jun 7 18:58:56 2013 Tanaka Akira <akr@fsij.org>
- * io.c (read_all): remove unnecessary rb_str_resize().
- [ruby-dev:24996] (backported from CVS HEAD)
+ * internal.h (numberof): Gathered from various files.
- * io.c (io_readpartial): ditto.
+ * 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.
- * io.c (io_read): ditto.
+Fri Jun 7 18:24:39 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 30 16:18:50 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (rb_absint_size): Declare a variable, i, just before used
+ to suppress a warning.
+ (rb_int_export): Ditto.
- * io.c (io_fread): need not to null terminate. [ruby-dev:24998]
+Fri Jun 7 17:41:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * io.c (read_all): remove unnecessary rb_str_resize().
- [ruby-dev:24996]
+ * 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
- * io.c (io_read): ditto.
+Fri Jun 7 17:31:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Tue Nov 30 00:49:08 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * internal.h (RCLASS_SUPER): use descriptive variable name
+ * internal.h (RCLASS_SET_SUPER): ditto
- * io.c (rb_io_sysread): use temporary lock. [ruby-dev:24992]
+Fri Jun 7 13:25:27 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Mon Nov 29 16:06:04 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/json/fbuffer/fbuffer.h (fbuffer_append_str): change the place of
+ RB_GC_GUARD. it should be after the object is used.
- * ext/stringio/stringio.c (strio_write): insufficiently filled string
- being extended when overwriting. [ruby-core:03836]
+Fri Jun 7 13:22:43 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Mon Nov 29 15:59:05 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (before_gc_sweep): noinline can also avoid the segv instead of
+ -O0 of r41084. this way is expected less slow.
- * lib/ostruct.rb (OpenStruct::method_missing): check method
- duplication for -d.
+Fri Jun 7 11:45:42 2013 Kenta Murata <mrkn@cookpad.com>
- * lib/ostruct.rb (OpenStruct::initialize): ditto.
+ * 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]
-Mon Nov 29 15:22:28 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * numeric.c (num_quo): ditto.
- * test/io/nonblock/test_flush.rb: abandon tests when io/nonblock is
- not supported.
+ * test/test_mathn.rb: add a test for the change at r41109.
-Mon Nov 29 03:08:30 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Jun 7 11:41:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * object.c (convert_type): direct call conversion methods for the
- performance. [ruby-core:03845]
+ * configure.in: revert r41106. size_t may not be unsigned
- * eval.c (rb_funcall_rescue): new function.
+ * bignum.c (rb_absint_size_in_word, rb_int_export, rb_int_import): use
+ NUM2SIZET() and SIZET2NUM() already defined in ruby/ruby.h.
- * object.c (rb_Array): avoid using rb_respond_to().
+Fri Jun 7 11:28:37 2013 Masaya Tarui <tarui@ruby-lang.org>
- * object.c (rb_Integer): ditto.
+ * 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.
- * parse.y (reduce_nodes): empty body should return nil.
+Fri Jun 7 11:25:56 2013 Masaya Tarui <tarui@ruby-lang.org>
- * string.c (rb_str_aset): the original string should not be
- affected by modifying duplicated string. [ruby-dev:24981]
+ * gc.c: introduce oldgen bitmap for preparing performance tuning.
-Mon Nov 29 13:57:38 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Jun 7 11:20:57 2013 Masaya Tarui <tarui@ruby-lang.org>
- * win32/win32.c (CreateChild): search executable file if no program
- name given. (backported from CVS HEAD)
+ * gc.c (MARKED_IN_BITMAP, MARK_IN_BITMAP, CLEAR_IN_BITMAP): bring
+ bitmap macros in one place, and introduce BITMAP_BIT.
-Mon Nov 29 13:37:54 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jun 7 11:18:35 2013 Masaya Tarui <tarui@ruby-lang.org>
- * io.c (fptr_finalize): must not use FILE after fclose().
- [ruby-dev:24985]
+ * array.c (ary_new): change order of allocation in order
+ to remove FL_OLDGEN operation.
-Mon Nov 29 13:16:31 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Jun 7 11:16:28 2013 Masaya Tarui <tarui@ruby-lang.org>
- * win32/win32.c (CreateChild): push back the last space before next
- loop because CharNext() eats it.
+ * tool/rdocbench.rb: add gc total time information.
-Mon Nov 29 01:18:18 2004 Tanaka Akira <akr@m17n.org>
+Fri Jun 7 10:12:01 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (rb_io_check_writable): call io_seek regardless of
- NEED_IO_SEEK_BETWEEN_RW. [ruby-dev:24986]
+ * gc.c: remove "Sunny" terminology.
+ "Sunny" doesn't mean antonym of "Shady" (questionable, doubtful, etc).
+ Instead of "Sunny", use "non-shady" or "normal".
-Sat Nov 27 21:43:39 2004 Tanaka Akira <akr@m17n.org>
+Fri Jun 7 09:29:33 2013 Kenta Murata <mrkn@cookpad.com>
- * io.c: avoid data lost with nonblocking fd and
- stdio buffering in sync mode. [ruby-dev:24966]
- based on matz's patch [ruby-dev:24967]
- (io_fwrite): new primitive writing function which writes
- directly if sync mode.
- (rb_io_fwrite): wrapper for io_fwrite now.
- (io_write): call io_fwrite instead of rb_io_fwrite.
+ * bignum.c (rb_int_import): explicitly casting BDIGIT_DBL to BDIGIT
+ to prevent warning.
-Sat Nov 27 14:44:15 2004 Kent Sibilev <ksibilev@bellsouth.net>
+Fri Jun 7 07:29:33 2013 Tanaka Akira <akr@fsij.org>
- * lib/cgi/session.rb (CGI::Session::initialize): create_new_id is
- now a instance method. [ruby-core:03832]
+ * internal.h (rb_int_export): countp argument is split into
+ wordcount_allocated and wordcount.
-Sat Nov 27 09:41:21 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * bignum.c (rb_int_export): Follow the above change.
- * io.c (io_fread): old rb_io_fread with file closing checking.
- (rb_io_fread): wrapper for io_fread now.
- [ruby-dev:24964]
+ * pack.c (pack_pack): Ditto.
-Fri Nov 26 18:02:44 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Jun 7 07:17:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * ext/tk/lib/tk.rb: Tk.destroy uses TkWindow#epath
+ * NEWS: describe a compatibility issue of Numeric#quo
+ introduced at r41109.
- * ext/tk/lib/tk/image.rb: bug fix
+Fri Jun 7 07:15:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * ext/tk/lib/tk/wm.rb: add 'iconphoto' method(Windows only)
+ * NEWS: fix style.
- * ext/tk/lib/tkextlib/*: some methods uses TkWindow#epath
+Fri Jun 7 06:48:17 2013 Benoit Daloze <eregontp@gmail.com>
-Fri Nov 26 13:49:06 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * numeric.c: remove unused ID id_to_r introduced in r41109.
- * eval.c (method_missing): raise TypeError for classes do not
- have allocators. [ruby-core:03752]
+Fri Jun 7 06:15:31 2013 Tanaka Akira <akr@fsij.org>
- * lib/erb.rb: add RDoc by James Edward Gray II. [ruby-core:03786]
+ * bignum.c (rb_int_import): New function.
+ (int_import_push_bits): Ditto.
-Fri Nov 26 13:29:02 2004 Dave Thomas <dave@pragprog.com>
+ * internal.h (rb_int_import): Declared.
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in): Break
- out of preprocessing when we find a :section: directive (previously cleared out the
- comment, but this apparently now generates an error in gsub!)
+ * pack.c (pack_unpack): Use rb_int_import for BER compressed integer.
-Fri Nov 26 00:17:40 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jun 6 22:24:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * io.c (io_read): move StringValue() check before GetOpenFile().
- [ruby-dev:24959]
+ * numeric.c (num_quo): Use to_r method to convert the receiver to
+ rational. [ruby-core:41575] [Bug #5736]
-Thu Nov 25 20:14:57 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_numeric.rb: add a test for the above change.
- * lib/thwait.rb (ThreadsWait#join_nowait): abnormally terminated
- threads should be also processed. [ruby-talk:121320]
+Thu Jun 6 20:40:17 2013 Tanaka Akira <akr@fsij.org>
-Thu Nov 25 10:14:26 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * dir.c (push_braces): do not reuse buffer strings. [ruby-core:03806]
+ * internal.h (rb_absint_size): Declared.
+ (rb_absint_size_in_word): Ditto.
+ (rb_int_export): Ditto.
-Thu Nov 25 07:59:41 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * io.c (read_all): stringify non-nil buffer argument, and always
- taint the result. [ruby-dev:24955]
+ * pack.c (pack_pack): Use rb_int_export for BER compressed integer.
-Wed Nov 24 01:01:31 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jun 6 19:31:33 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * io.c (io_read): integer conversion should be prior to
- GetOpenFile(). [ruby-dev:24952]
+ * ext/date/date_core.c: fixed coding error [ruby-core:55337].
+ reported by Riley Lynch.
- * configure.in, io.c: cancel [ ruby-Patches-1074 ].
+Thu Jun 6 14:16:37 2013 Narihiro Nakamura <authornari@gmail.com>
-Tue Nov 23 08:09:50 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/objspace/object_tracing.c: rename allocation_info to
+ lookup_allocation_info. At times I confused "struct
+ allocation_info" with "function allocation_info".
- * ext/tk/lib/tk/menu.rb: improve usability of TkOptionMenubutton
+Thu Jun 6 13:57:06 2013 Narihiro Nakamura <authornari@gmail.com>
-Tue Nov 23 02:00:21 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/objspace/object_tracing.c: allocation_info function isn't
+ called by any other file.
- * file.c (rb_file_chown): integer conversion should be prior to
- GetOpenFile(). [ruby-dev:24949]
+Thu Jun 6 09:41:00 2013 Kenta Murata <mrkn@cookpad.com>
-Tue Nov 23 00:10:48 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * numeric.c (num_quo): should return a Float for a Float argument.
+ [ruby-dev:44710] [Bug #5515]
- * file.c (rb_file_chown): integer conversion should be prior to
- GetOpenFile(). [ruby-dev:24947]
+ * test/ruby/test_fixnum.rb: Add an assertion for the above change.
- * file.c (rb_file_truncate): ditto.
+ * test/ruby/test_bignum.rb: ditto.
- * file.c (rb_file_s_truncate): ditto.
+Thu Jun 6 00:59:44 2013 Masaya Tarui <tarui@ruby-lang.org>
- * dir.c (dir_seek): use NUM2OFFT().
+ * 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.
- * misc/ruby-mode.el (ruby-non-block-do-re): should not match words
- start with block keyword and underscore. [ruby-core:03719]
+ change sunny old check point in order to save mark stack and
+ remove unnatural rest_sweep & demote.
-Mon Nov 22 22:33:02 2004 Dave Thomas <dave@pragprog.com>
+Thu Jun 6 00:52:42 2013 Masaya Tarui <tarui@ruby-lang.org>
- * lib/rdoc/parsers/parse_rb.rb (RDoc::parse_require): Don't use names
- of variables or constants when oarsing 'require'
+ * gc.c (rgengc_rememberset_mark): change scan algorithm for performance:
+ from object's pointer base to bitmap one.
-Mon Nov 22 00:13:35 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Jun 6 00:30:04 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * dir.c (dir_seek): should retrieve dir_data after NUM2INT().
- [ruby-dev:24941]
+ * 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
-Sat Nov 20 23:57:33 2004 Dave Thomas <dave@pragprog.com>
+Thu Jun 6 00:05:08 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/rdoc/README (et al): Add a new directive, :section:, and
- change the output format to accomodate. :section: allows to to
- group together methods, attributes, constants, etc under
- headings in the output. If used, a table of contents is
- generated.
+ * 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]
-Sat Nov 20 23:56:54 2004 Dave Thomas <dave@pragprog.com>
+Wed Jun 5 22:40:42 2013 Shugo Maeda <shugo@ruby-lang.org>
- * lib/rdoc/options.rb (Options::parse): Force --inline-source if
- --one-file option given
+ * lib/net/imap.rb (capability_response): should ignore trailing
+ spaces. Thanks, Peter Kovacs. [ruby-core:55024] [Bug #8415]
-Sat Nov 20 23:55:19 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/net/imap/test_imap_response_parser.rb: related test.
- * string.c (rb_str_splice): should place index wrapping after
- possible modification. [ruby-dev:24940]
+Wed Jun 5 21:17:08 2013 Tanaka Akira <akr@fsij.org>
-Sat Nov 20 13:26:03 2004 NARUSE, Yui <naruse@ruby-lang.org>
+ * bignum.c (big_fdiv): Use nlz() instead of bdigbitsize().
+ (bdigbitsize): Removed.
- * ext/nkf/nkf-utf8/utf8tbl.c: original revision 1.7
+Wed Jun 5 20:32:00 2013 Kenta Murata <mrkn@cookpad.com>
-Sat Nov 20 05:34:24 2004 NARUSE, Yui <naruse@ruby-lang.org>
+ * include/ruby/ruby.h: fix alignment in comment.
- * ext/nkf/nkf-utf8/nkf.c: original nkf.c rev:1.40
+Wed Jun 5 20:05:29 2013 Tanaka Akira <akr@fsij.org>
- * ext/nkf/test.rb: add test for mime encode/decode
+ * 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.
-Sat Nov 20 01:37:34 2004 Johan Holmberg <holmberg@iar.se>
+Wed Jun 5 15:26:10 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * eval.c (error_print): nicer traceback at interrupt.
- [ruby-core:03774]
+ * 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
-Sat Nov 20 00:07:16 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jun 5 09:46:46 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * string.c (str_gsub): internal buffer should not be listed by
- ObjectSpace.each_object() by String#gsub. [ruby-dev:24931]
+ * test/fileutils/test_fileutils.rb (TestFileUtils#test_mkdir): add
+ EACCES for Windows.
-Fri Nov 19 01:20:22 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jun 5 08:13:37 2013 Tanaka Akira <akr@fsij.org>
- * lib/cgi/session.rb (CGI::Session::FileStore::initialize): raise
- exception if data corresponding to session specified from the
- client does not exist.
+ * bignum.c (rb_big_pow): Don't need to multiply SIZEOF_BDIGITS.
+ Use nlz instead of bitlength_bdigit.
+ (bitlength_bdigit): Removed.
-Fri Nov 19 00:59:31 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Jun 5 07:14:18 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * string.c (str_gsub): internal buffer should not be listed by
- ObjectSpace.each_object(). [ruby-dev:24919]
+ * ext/date/date_core.c (d_lite_cmp, d_lite_equal): simplified.
-Thu Nov 18 18:41:08 2004 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
+Wed Jun 5 07:07:01 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * test/ruby/test_stringchar.rb (test_bang): added.
+ * ext/date/date_core.c: fixed a bug [ruby-core:55295]. reported
+ by Riley Lynch.
- * string.c (rb_str_upcase_bang, rb_str_capitalize_bang)
- (rb_str_swapcase_bang): missing rb_str_modify(). [ruby-dev:24915]
+Wed Jun 5 06:44:08 2013 Eric Hodel <drbrain@segment7.net>
-Thu Nov 18 00:21:15 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems: Update to RubyGems 2.0.3
- * process.c (proc_getpgrp): prohibit for $SAFE=2.
- [ruby-dev:24899]
+ * test/rubygems: Tests for the above.
- * process.c (get_pid): ditto. [ruby-dev:24904]
+ * NEWS: Added RubyGems 2.0.3 note.
- * process.c (get_ppid): ditto.
+Wed Jun 5 06:35:15 2013 Eric Hodel <drbrain@segment7.net>
- * array.c (rb_ary_delete): defer rb_ary_modify() until actual
- modification. [ruby-dev:24901]
+ * doc/marshal.rdoc: Add description of Marshal format.
-Thu Nov 18 10:10:14 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Jun 5 01:16:09 2013 Benoit Daloze <eregontp@gmail.com>
- * io.c, rubyio.h (rb_io_modenum_flags): exported.
+ * array.c (Array#+): fix documentation example.
+ Patch by Logan Serman. [Fixes GH-324]
- * ext/stringio/stringio.c (strio_initialize): allow Fixnum as mode as
- well as IO.new does. [ruby-dev:24896]
+Wed Jun 5 00:21:54 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
-Wed Nov 17 23:42:40 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * lib/irb/lc/ja/help-message: update help messages.
+ following r41028. [ruby-dev:46707] [Feature #7510]
- * test/ruby/test_settracefunc.rb: added. [ruby-dev:24884]
+Wed Jun 5 00:09:32 2013 Tanaka Akira <akr@fsij.org>
-Wed Nov 17 13:56:57 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * marshal.c (r_object0): Generalize a round up expression.
+ Use BDIGIT instead of int.
- * parse.y (newline_node): should not use FL_SET. [ruby-dev:24874]
+Tue Jun 4 23:44:02 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * parse.y (string_content): should not use FL_UNSET.
+ * object.c (rb_Hash): fix docs. patched by Stefan Sch"ussler.
+ [ruby-core:55299] [Bug #8487]
- * node.h (NODE_NEWLINE): remove unused bit to utilize flag field
- in nodes.
+Tue Jun 4 23:16:49 2013 Benoit Daloze <eregontp@gmail.com>
-Wed Nov 17 13:09:40 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * lib/irb/completion.rb: Use %w literal construction for long lists.
+ Patch by Dave Goodchild. [Fixes GH-299]
- * {bcc32,win32,wince}/Makefile.sub (test): should build ruby.exe
- before running test. [ruby-core:03756]
+Tue Jun 4 23:08:42 2013 Benoit Daloze <eregontp@gmail.com>
-Wed Nov 17 04:33:01 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * ext/objspace/objspace.c: improve wording and remove duplicated comment.
+ Based on a patch by Dave Goodchild. [Fixes GH-299]
- * pack.c: all features are backport from 1.9. [ruby-dev:24826]
+Tue Jun 4 18:41:47 2013 Tanaka Akira <akr@fsij.org>
- * bignum.c (rb_big2ulong_pack): new function to pack Bignums.
+ * bignum.c (bitlength_bdigit): Fix an off-by-one error.
-Wed Nov 17 03:42:45 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Jun 4 15:30:00 2013 Kenta Murata <mrkn@cookpad.com>
- * string.c (rb_str_splice): move rb_str_modify() after
- StringValue(), which may alter the receiver. [ruby-dev:24878]
+ * 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
-Tue Nov 16 23:45:07 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/bigdecimal/test_bigdecimal_util.rb: fix for the above change.
- * numeric.c (flo_divmod): protect float values from GC by
- assignment to local variables. [ruby-dev:24873]
+Tue Jun 4 00:44:27 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Tue Nov 16 16:30:21 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/fileutils/test_fileutils.rb (TestFileUtils#test_mkdir): add
+ EEXIST for Linux. (suggested by nurse)
- * {bcc32,win32,wince}/setup.mak (-epilogue-): remove config.h and
- config.status to force updating them.
+Mon Jun 3 23:58:19 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Tue Nov 16 16:20:45 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/fileutils.rb (FileUtils.rmdir): use remove_tailing_slash.
+ * test/fileutils/test_fileutils.rb: test for above.
- * ext/stringio/stringio.c (strio_read): position was ignored when a
- buffer was passed. http://www.yo.rim.or.jp/~nov/d/?date=20041116#p03
+Mon Jun 3 23:47:55 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 16 11:19:07 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (bitlength_bdigit): New function.
+ (rb_big_pow): Use bitlength_bdigit instead of ffs.
- * lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::options): use
- Regexp conversion.
+Mon Jun 3 23:11:19 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
-Tue Nov 16 01:41:31 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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]
- * string.c (str_mod_check): frozen check should be separated.
- [ruby-core:3742]
+Mon Jun 3 19:02:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c (rb_ary_update): pedantic check to detect
- rb_ary_to_ary() to modify the receiver. [ruby-dev:24861]
+ * dir.c (is_hfs): use the file descriptor instead of a path.
-Mon Nov 15 13:50:52 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Jun 3 07:15:17 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * string.c (rb_str_justify): typo fixed. [ruby-dev:24851]
+ * 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.
-Mon Nov 15 11:50:32 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * misc/ruby-mode.el (ruby-special-char-p, ruby-parse-partial): handle
- operator symbols. [ruby-talk:120177]
+Mon Jun 3 03:40:29 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Nov 14 13:27:03 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * vm_insnhelper.c (vm_yield_setup_block_args): partially revert r41019.
+ The code is not useless.
- * lib/pp.rb (PP#object_address_group): remove odd number of 'f'
- prefixed to negative address.
+Mon Jun 3 01:25:25 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
-Sun Nov 14 08:51:04 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * test/socket/test_sockopt.rb: change test name. follow r41037.
- * test/logger/test_logger.rb: Logger just expects
- Logger#datetime_format to be used for Time#strftime independently of
- locale. [ruby-dev:24828]
+Mon Jun 3 01:08:43 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
-Fri Nov 12 15:03:26 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/rinda/test_rinda.rb: rename functions introduced in r41009.
- * eval.c (ruby_options): now we cannot call rb_glob() before
- ruby_init(), so call rb_w32_cmdvector() at ruby_options().
+Sun Jun 2 23:33:42 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * win32.{c,h} (rb_w32_cmdvector): rename make_cmdvector() and
- export it.
+ * 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.
-Fri Nov 12 14:08:01 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Jun 2 22:44:42 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/tk/lib/tk/event.rb: remove $LOADED_FEATURES trick
+ * 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)
- * ext/tk/lib/tk.rb: ditto
+Sun Jun 2 16:15:29 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Nov 12 00:31:05 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * dln_find.c (dln_find_exe, dln_find_file): remove deprecated
+ non-reentrant functions.
- * ext/gdbm/gdbm.c (fgdbm_store): StringValue() may alter string
- pointer. [ruby-dev:24783]
+Sun Jun 2 15:04:35 2013 Zachary Scott <zachary@zacharyscott.net>
-Thu Nov 11 17:36:12 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/cgi/util.rb, lib/erb.rb: Use String#b [Feature #8394] by znz
- * dir.c (rb_globi): also should call back via rb_glob_caller().
- [ruby-dev:24775]
+Sun Jun 2 14:10:21 2013 Zachary Scott <zachary@zacharyscott.net>
-Thu Nov 11 16:47:21 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * lib/irb/lc/help-message: Apply english updates for irb --help #7510
- * test/ruby/test_file.rb (test_truncate_wbuf): we want to test
- only File#truncate, not behaviour of seek(2).
+Sun Jun 2 12:03:58 2013 Zachary Scott <zachary@zacharyscott.net>
-Thu Nov 11 09:41:01 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * range.c: Fix rdoc on Range#bsearch [Bug #8242] [ruby-core:54143]
- * dir.c (push_braces): was confusing VALUE and char*.
+Sun Jun 2 02:08:37 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * dir.c (rb_push_glob): Dir.glob should have called its block.
+ * enc/euc_jp.c: fix typo: the name of EUC-JIS-2004.
-Thu Nov 11 01:52:52 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 1 23:17:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * error.c (syserr_initialize): use stringified object.
- [ruby-dev:24768]
+ * vm_eval.c (rb_mod_module_eval): mention in docs that arguments passed
+ to the method are passed to the block
-Wed Nov 10 22:49:01 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 1 17:58:13 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/delegate.rb (SimpleDelegator::dup): wrong number of
- arguments.
+ * lib/set.rb (Set#freeze, taint, untaint): Save a "self" by
+ utilizing super returning self, and add tests while at it.
- * lib/delegate.rb (DelegateClass::dup): ditto.
+Sat Jun 1 17:24:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Nov 10 12:31:21 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (iseq_set_arguments): not a simple single argument if any
+ keyword arguments exist. [ruby-core:55203] [Bug #8463]
- * README.EXT (Example): extconf.rb is indispensable now.
+ * 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]
-Wed Nov 10 03:33:36 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sat Jun 1 11:16:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/tcltklib.c: fix SEGV when compiled with Tcl/Tk8.3.x
- or older
+ * error.c (rb_exc_new_cstr): rename from rb_exc_new2.
- * ext/tk/lib/tkextlib/tile/style.rb: bug fix
+ * error.c (rb_exc_new_str): rename from rb_exc_new3.
-Tue Nov 9 14:27:18 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Jun 1 10:13:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/optparse.rb (OptionParser::Officious): moved from DefaultList.
+ * string.c (rb_str_new[2-5], rb_{tainted,usascii}_str_new2),
+ (rb_str_buf_new2): remove old interfaces.
-Tue Nov 9 01:05:04 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Jun 1 08:00:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * dir.c (rb_glob2): do not allocate buffer from heap to avoid
- memory leaks. use string object for buffering instead.
- [ruby-dev:24738]
+ * ext/zlib/zlib.c (gzfile_read, gzfile_read_all, gzfile_getc),
+ (gzreader_gets): check EOF. [ruby-core:55220] [Bug #8467]
- * dir.c (join_path): ditto.
+Sat Jun 1 07:32:15 2013 Tanaka Akira <akr@fsij.org>
- * io.c (io_read): external input buffer may be modified even after
- rb_str_locktmp(). [ruby-dev:24735]
+ * bignum.c: Use BDIGIT type for hbase.
- * dir.c (fnmatch): p or s may be NULL. [ruby-dev:24749]
+Sat Jun 1 02:37:35 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Tue Nov 9 00:53:53 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+ * ext/socket/option.c (sockopt_s_byte): constructor of the sockopt
+ whose value's is byte.
- * regex.c (slow_match): avoid GCC 3.4.x warnings.
+ * ext/socket/option.c (sockopt_byte): getter for above.
-Tue Nov 9 00:50:06 2004 Dave Thomas <dave@pragprog.com>
+ * ext/socket/option.c (inspect_byte): inspect for above.
- * lib/rdoc/rdoc.rb: Change version numbering of RDoc and ri
+ * ext/socket/option.c (sockopt_s_ip_multicast_loop): constructor of
+ the sockopt whose optname is IP_MULTICAST_LOOP.
-Mon Nov 8 23:38:35 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * ext/socket/option.c (sockopt_ip_multicast_loop): getter for above.
- * lib/drb/extservm.rb: add DRb::ExtServManager#uri=.
- [ruby-dev:24743]
+ * ext/socket/option.c (sockopt_s_ip_multicast_ttl): constructor of
+ the sockopt whose optname is IP_MULTICAST_TTL.
-Mon Nov 8 22:20:19 2004 Dave Thomas <dave@pragprog.com>
+ * ext/socket/option.c (sockopt_ip_multicast_ttl): getter for above.
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):
- Fix bug where parent class wasn't being detected if the
- child class was defined using the A::B notation.
+ * ext/socket/option.c (sockopt_inspect): use above.
-Mon Nov 8 00:14:13 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat Jun 01 01:50:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * configure.in: add setup for mignw32 cross compiling.
- [ruby-talk:119413]
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_power): use rb_dbl2big
+ to convert a double value to a Bignum.
-Sun Nov 7 23:49:26 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sat Jun 1 00:19:50 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk.rb: bind-event methods accept multi substitution
- arguments.
+ * bignum.c (calc_hbase): Make hbase the maximum power of base
+ representable in BDIGIT.
- * ext/tk/lib/tk/canvas.rb: ditto.
+Fri May 31 23:56:13 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/canvastag.rb: ditto.
+ * bignum.c (calc_hbase): Extracted from rb_big2str0.
- * ext/tk/lib/tk/text.rb: ditto.
+Fri May 31 23:22:24 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/texttag.rb: ditto.
+ * 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.
- * ext/tk/lib/tkextlib: ditto.
+Fri May 31 17:57:21 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Nov 6 14:58:44 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * process.c: Improve Process::exec documentation
- * lib/webrick/server.rb (WEBrick::HTTPServer#start): remove
- :DoNotReverseLookup option. (Socket#do_not_reverse_lookup is a
- ruby 1.9 feature)
+Fri May 31 17:26:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Nov 6 11:31:04 2004 Tadayoshi Funaba <tadf@dotrb.org>
+ * vm_eval.c (rb_funcallv): add better names of rb_funcall2.
- * lib/date.rb (_parse): checks whether zone was given.
+ * vm_eval.c (rb_funcallv_public): ditto for rb_funcall3.
-Sat Nov 6 00:46:27 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri May 31 17:04:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_str_locktmp): check STR_TMPLOCK flag before
- locking. [ruby-dev:24727]
+ * array.c (rb_ary_new_capa): add better names of rb_ary_new2.
-Fri Nov 5 18:12:42 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * array.c (rb_ary_new_from_args): ditto for rb_ary_new3.
- * ext/tk/lib/tk/scrollable.rb: divide Scrollable module into
- X_Scrollable and Y_Scrollable
+ * array.c (rb_ary_new_from_values): ditto for rb_ary_new4.
- * ext/tk/lib/tk/entry.rb: include X_Scrollable instead of Scrollable
+Fri May 31 16:35:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/autoload.rb: define autoload for X_Scrollable and
- Y_Scrollable
+ * configure.in (HAVE_ATTRIBUTE_FUNCTION_ALIAS): define to tell if
+ alias attribute is available.
-Fri Nov 5 16:05:32 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri May 31 16:03:23 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/tk/lib/tk.rb: TkComm._at() supprts both of "@x,y" and "@x"
+ * object.c, proc.c: s/call_seq/call-seq in rdoc. [Fixes GH-322]
-Fri Nov 5 13:22:58 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri May 31 15:56:36 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/tk/lib/tk/text.rb: sorry. bug fix again.
+ * ext/openssl/ossl_ssl.c: Add missing paren in rdoc [Fixes GH-321]
-Fri Nov 5 13:17:54 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri May 31 11:58:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk/text.rb: bug fix
+ * vm_method.c (set_visibility): extract from rb_mod_public(),
+ rb_mod_protected() and rb_mod_private().
-Fri Nov 5 08:52:48 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu May 30 19:47:42 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * gc.c (gc_mark): stricter GC stack check.
+ * 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]
-Fri Nov 5 08:52:48 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/ruby/test_keyword.rb: update a test for above.
- * gc.c (gc_mark): stricter GC stack check.
+Thu May 30 17:55:04 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Nov 5 08:34:43 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * process.c: RDoc on Process.spawn
- * string.c (str_gsub): should have removed rb_str_unlocktmp(str).
- [ruby-dev:24708]
+Thu May 30 00:08:14 2013 Koichi Sasada <ko1@atdot.net>
-Thu Nov 4 21:25:38 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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).
- * string.c (str_gsub): string modify check no longer based on
- tmplock. [ruby-dev:24706]
+Wed May 29 10:33:27 2013 Koichi Sasada <ko1@atdot.net>
-Thu Nov 4 19:27:46 2004 NAKAMURA Usaku <usa@ruby-lang.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().
- * io.c (rb_f_open): fix typo.
+Tue May 28 12:31:21 2013 Koichi Sasada <ko1@atdot.net>
-Thu Nov 4 15:02:14 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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'.
- * ext/tk/lib/tk/variable.rb: forget to initialize instance_variables
- of TkVarAccess objects
+ * 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>
-Thu Nov 4 09:11:35 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/objspace/test_objspace.rb: add a test.
- * gc.c (gc_mark): enable GC stack checking.
+Tue May 28 11:30:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Nov 4 03:11:33 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/extmk.rb (extmake): leave makefiles untouched if the content is
+ not changed, to get rid of unnecessary re-linking.
- * string.c (str_gsub): lock strings temporarily. [ruby-dev:24687]
+Tue May 28 03:11:02 2013 Koichi Sasada <ko1@atdot.net>
- * ext/socket/socket.c (s_recvfrom): tmplock input buffer.
- [ruby-dev:24705]
+ * 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)
-Wed Nov 3 22:32:12 2004 NARUSE, Yui <naruse@ruby-lang.org>
+ Note that hooks are not kicked immediately. Procs are kicked
+ at postponed_job.
- * process.c: On NetBSD don't use setruid() and setrgid().
+ This feature is a sample of new internal event and
+ rb_postponed_job API.
-Wed Nov 3 22:24:17 2004 Daigo Moriwaki <techml@sgtpepper.net>
+Tue May 28 02:56:15 2013 Koichi Sasada <ko1@atdot.net>
- * lib/webrick/httpauth/digestauth.rb: use Base64.encode64 to
- avoid warnings.
+ * gc.c (gc_stat): remove wrong rest_sweep().
-Wed Nov 3 17:19:59 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue May 28 02:44:23 2013 Koichi Sasada <ko1@atdot.net>
- * array.c (rb_ary_uniq_bang): do not push frozen string from hash
- table. [ruby-dev:24695]
+ * gc.c (garbage_collect_body): fix GC_ENABLE_LAZY_SWEEP condition.
- * array.c (rb_ary_and): ditto.
+ * gc.c (GC_NOTIFY): move debug print location and use stderr instead
+ of stdout.
- * array.c (rb_ary_or): ditto.
+Tue May 28 02:07:21 2013 Koichi Sasada <ko1@atdot.net>
-Wed Nov 3 17:13:02 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * vm_trace.c (rb_postponed_job_register_one): fix iteration bug.
- * io.c (pipe_open): fix compile error
+ * ext/-test-/postponed_job/postponed_job.c,
+ test/-ext-/postponed_job/test_postponed_job.rb: add a test.
-Wed Nov 3 16:58:07 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue May 28 00:34:23 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk.rb: support to use different Tcl commands between
- configure and configinfo
+ * 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) ...]
- * ext/tk/lib/font.rb: ditto.
+ * ext/-test-/tracepoint/tracepoint.c,
+ test/-ext-/tracepoint/test_tracepoint.rb: modify a test.
- * ext/tk/lib/itemconfig.rb: support to use different Tcl commands
- between item_configure and item_configinfo
+Tue May 28 00:18:57 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/itemfont.rb: ditto.
+ * vm_trace.c (rb_postponed_job_flush): remove a wrong comment.
- * ext/tk/extconf.rb: install SUPPORT_STATUS
+Mon May 27 22:09:33 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkextlib: some bug fixes (see ext/tk/ChangeLog.tkextlib)
+ * include/ruby/ruby.h (RHASH_SIZE): Add a cast to suppress a
+ warning, comparison between signed and unsigned integer
+ expressions [-Wsign-compare], on ILP32.
-Wed Nov 3 16:30:41 2004 NARUSE, Yui <naruse@ruby-lang.org>
+Mon May 27 19:25:47 2013 Koichi Sasada <ko1@atdot.net>
- * ext/nkf: follow nkf 2.0.4
+ * include/ruby/ruby.h: rename RUBY_INTERNAL_EVENT_FREE to
+ RUBY_INTERNAL_EVENT_FREEOBJ.
-Wed Nov 3 15:53:34 2004 Kouhei Sutou <kou@cozmixng.org>
+ * ext/-test-/tracepoint/tracepoint.c,
+ ext/objspace/object_tracing.c,
+ gc.c, vm_trace.c: catch up this change.
- * test/rss/test_maker_*.rb: added tests for RSS Maker.
+Mon May 27 18:57:28 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rss/maker.rb: added RSS Maker.
+ * 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.
- * lib/rss/maker/*.rb: ditto.
+ * test/objspace/test_objspace.rb: add a test.
-Tue Nov 2 16:35:57 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/objspace/object_tracing.c: ditto.
- * ext/enumerator/enumerator.c (each_cons_i): pass copy of an
- internal consequent array. [ruby-talk:118691]
+ * gc.c (rb_gc_count): add. This function returns GC count.
-Tue Nov 2 16:05:21 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * internal.h: add decl. of rb_gc_count(). Same as `GC.count'.
- * process.c (rb_f_fork): need to flush stdout and stderr before
- fork(2). [ruby-talk:117715]
+Mon May 27 17:33:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Nov 2 01:20:09 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * tool/rbinstall.rb (install_recursive): add maxdepth option.
- * eval.c (proc_invoke): nail down dyna_var node when Proc object
- or continuation is created. [ruby-dev:24671]
+ * tool/rbinstall.rb (bin-comm): limit depth of bindir and reject empty
+ files. [ruby-core:55101] [Bug #8432]
-Mon Nov 1 13:59:28 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+Mon May 27 16:16:18 2013 Koichi Sasada <ko1@atdot.net>
- * ext/extmk.rb (MANIFEST): do not use anymore, use extconf.rb instead.
+ * vm_trace.c (rb_postponed_job_flush, rb_postponed_job_register): use
+ ruby_xmalloc/xfree. It is safe during GC.
- * ext/enumerator/extconf.rb, ext/fcntl/extconf.rb,
- ext/stringio/extconf.rb: added.
+Mon May 27 09:24:03 2013 Koichi Sasada <ko1@atdot.net>
- * MANIFEST, ext/**/MANIFEST: removed.
+ * test/-ext-/postponed_job/test_postponed_job.rb: fix typo and class name.
- * README.EXT, README.EXT.ja: remove MANIFEST stuff.
+Mon May 27 09:05:17 2013 Koichi Sasada <ko1@atdot.net>
-Mon Nov 1 01:14:52 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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'.
- * io.c (rb_f_open): create copy of popen specifier. [ruby-dev:24656]
+ 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.
-Mon Nov 1 00:36:48 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+ This change is mostly written by Aman Gupta (tmm1).
+ https://bugs.ruby-lang.org/issues/8107#note-12
+ [Feature #8107]
- * main.c (_stklen): move to gc.c.
+ * 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.
-Sun Oct 31 00:22:28 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/-test-/tracepoint/extconf.rb,
+ ext/-test-/tracepoint/tracepoint.c,
+ test/-ext-/tracepoint/test_tracepoint.rb: add a test.
- * string.c (rb_str_locktmp): lock string temporarily.
+Mon May 27 08:38:21 2013 Koichi Sasada <ko1@atdot.net>
- * string.c (str_independent): add tmplock check.
+ * ext/-test-/postponed_job/postponed_job.c: fix `init' function name.
- * io.c (io_write): lock output string temporarily.
- [ruby-dev:24649]
+Mon May 27 06:22:41 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (io_write): use rb_str_locktmp().
+ * 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.
- * io.c (read_all): ditto.
+ 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).
-Sat Oct 30 06:53:24 2004 Peter Vanbroekhoven <peter.vanbroekhoven@cs.kuleuven.ac.be>
+ This change is mostly written by Aman Gupta (tmm1).
+ https://bugs.ruby-lang.org/issues/8107#note-15
+ [Feature #8107]
- * eval.c (rb_eval): NODE_XSTR should pass copy of literal string.
+ * gc.c: use postponed job API for finalizer.
-Sat Oct 30 00:19:40 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * common.mk: add dependency from vm_trace.c to debug.h.
- * enum.c (enum_sort_by): protect continuation jump in.
- [ruby-dev:24642]
+ * ext/-test-/postponed_job/extconf.rb, postponed_job.c,
+ test/-ext-/postponed_job/test_postponed_job.rb: add a test.
-Fri Oct 29 21:27:51 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c: implement postponed API.
- * io.c (rb_io_check_initialized): new function to check uninitialized
- object. [ruby-talk:118234]
+ * vm_core.h: ditto.
- * file.c (rb_file_path), io.c (rb_io_closed): check if initialized.
+Mon May 27 02:26:02 2013 Koichi Sasada <ko1@atdot.net>
-Fri Oct 29 10:00:30 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (gc_stat): collect promote_operation_count and
+ types (RGENGC_PROFILE >= 2).
- * eval.c (rb_thread_start_0): forget to free some memory chunks.
- [ruby-core:03611]
+Mon May 27 01:40:58 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (ruby_cleanup): ruby_finalize_1 may cause exception,
- should be wrapped by PUSH_TAG/POP_TAG(). [ruby-dev:24627]
+ * 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.
-Thu Oct 28 08:42:02 2004 Tanaka Akira <akr@m17n.org>
+Mon May 27 01:15:22 2013 Koichi Sasada <ko1@atdot.net>
- * io.c (argf_forward): use ANSI style.
- (argf_read): call argf_forward with argv argument.
- [ruby-dev:24624]
+ * hash.c (rb_hash_tbl_raw), internal.h: added.
+ Returns st_table without shading hash.
-Thu Oct 28 23:32:54 2004 akira yamada <akira@ruby-lang.org>
+ * array.c: use rb_hash_tbl_raw() for read-only purpose.
- * ext/zlib/zlib.c (zstream_detach_input): resets klass of z->input if
- z->input isn't nil.
+ * compile.c (iseq_compile_each): ditto.
-Thu Oct 28 23:19:31 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (count_objects): ditto.
- * ext/extmk.rb: prefer relative path. [ruby-talk:93037]
+ * insns.def: ditto.
-Wed Oct 27 18:49:11 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * process.c: ditto.
- * gc.c: prototype; rb_io_fptr_finalize() doesn't return any value
- at this version.
+ * thread.c (clear_coverage): ditto.
-Wed Oct 27 17:27:45 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm_insnhelper.c: ditto.
- * gc.c (gc_sweep): recover ruby_in_compile variable.
+Mon May 27 00:31:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Wed Oct 27 09:17:30 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/make-snapshot: use ENV["AUTOCONF"] instead of directly using
+ literal "autoconf".
- * string.c (str_gsub): use a string object for exception safeness.
- [ruby-dev:24601]
+Sun May 26 21:31:46 2013 Koichi Sasada <ko1@atdot.net>
-Tue Oct 26 23:52:32 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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().
- * io.c (rb_io_getline): rs modification check should not interfere in the loop.
+ * include/ruby/intern.h: declare rb_hash_set_ifnone(hash, ifnone).
-Tue Oct 26 23:30:39 2004 Dave Thomas <dave@pragprog.com>
+ * marshal.c (r_object0): use RHASH_SET_IFNONE().
- * lib/rdoc/code_objects.rb (RDoc::Context::add_class_or_module):
- Restore correct :nopdoc: behavior with nested classes and modules.
+ * ext/openssl/ossl_x509name.c (Init_ossl_x509name): ditto.
-Tue Oct 26 18:21:29 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat May 25 23:22:38 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * string.c (RESIZE_CAPA): check string attribute before modifying
- capacity member of string structure. [ruby-dev:24594]
+ * 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.
-Tue Oct 26 11:33:26 2004 David G. Andersen <dga@lcs.mit.edu>
+Sat May 25 21:29:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
- performance. [ruby-talk:117701]
+ * 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
-Tue Oct 26 10:56:55 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat May 25 18:46:23 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * sprintf.c (rb_f_sprintf): raise ArgumentError for extra
- arguments, unless (digit)$ style used.
+ * 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.
-Tue Oct 26 11:33:26 2004 David G. Andersen <dga@lcs.mit.edu>
+Sat May 25 18:08:06 2013 Yusuke Endoh <mame@tsg.ne.jp>
- * ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
- performance. [ruby-talk:117701]
+ * 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.
-Tue Oct 26 10:56:55 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat May 25 17:06:25 2013 Koichi Sasada <ko1@atdot.net>
- * sprintf.c (rb_f_sprintf): raise ArgumentError for extra
- arguments, unless (digit)$ style used.
+ * gc.c (after_gc_sweep): reduce full GC timing.
-Mon Oct 25 18:35:39 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat May 25 11:28:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * win32/win32.c (isUNCRoot): should check NUL after '.'.
- [ruby-dev:24590]
+ * variable.c (set_const_visibility): return without clearing method
+ cache if no arguments.
- * win32/win32.c (isUNCRoot): fixed buffer overrun.
+ * vm_method.c (set_method_visibility): ditto.
-Mon Oct 25 08:03:26 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat May 25 11:27:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (get_backtrace): ignore illegal backtrace. [ruby-dev:24587]
+ * vm_method.c (set_method_visibility): quote unprintable method name.
-Sun Oct 24 00:41:09 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat May 25 11:24:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (rb_load, search_required, rb_require_safe, rb_require): use
- frozen shared string to avoid outside modification. [ruby-dev:24580]
+ * eval.c (rb_frame_callee): returns the called name of the current
+ frame, not the previous frame.
-Sat Oct 23 22:18:32 2004 Guy Decoux <ts@moulon.inra.fr>
+ * 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.
- * eval.c (frame_free): Guy Decoux solved the leak problem.
- Thanks. [ruby-core:03549]
+ * variable.c (set_const_visibility): use the called name.
-Sat Oct 23 00:20:55 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat May 25 08:58:23 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/zlib/zlib.c (zstream_append_input): clear klass for z->input
- to avoid potential vulnerability.
+ * string.c (rb_str_quote_unprintable): check if argument is a string.
- * ext/zlib/zlib.c (zstream_run): always use zstream_append_input()
- to avoid SEGV. [ruby-dev:24568]
+Fri May 24 19:32:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
-Fri Oct 22 12:02:28 2004 Yukihiro Matsumoto <matz@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
- * eval.c (rb_alias): was warning for wrong condition.
- [ruby-dev:24565]
+ * test/ruby/test_module.rb: add test for private_constant with no args
-Fri Oct 22 10:36:37 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri May 24 18:53:10 2013 Koichi Sasada <ko1@atdot.net>
- * lib/webrick/httprequest.rb (WEBrick::HTTPRequest#meta_vars):
- should check if path_info is not nil.
+ * 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!)
-Fri Oct 22 00:22:31 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri May 24 17:07:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
- * ext/zlib/zlib.c (zstream_shift_buffer): should restore class
- field of a buffer. [ruby-dev:24562]
+ * intern.h: remove dangling rb_class_init_copy declaration
+ [ruby-core:55120] [Bug #8434]
-Fri Oct 22 00:20:33 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri May 24 16:31:23 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * string.c (rb_str_include): should not treat char as negative value.
- [ruby-dev:24558]
+ * ext/strscan/strscan.c (strscan_aref): raise error if given
+ name reference is not found.
-Thu Oct 21 21:32:30 2004 IWATSUKI Hiroyuki <don@na.rim.or.jp>
+Fri May 24 15:48:18 2013 Koichi Sasada <ko1@atdot.net>
- * lib/pstore.rb (PStore#transaction): Use the empty content when a
- file is not found. [ruby-dev:24561]
+ * 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.
-Thu Oct 21 19:06:15 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * gc.c (after_gc_sweep): remove TODO comments.
- * lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#send_body_io):
- ensure to close @body. (http://bugs.debian.org/277520)
+Fri May 24 11:04:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Oct 21 00:36:41 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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]
- * eval.c (rb_alias): should warn on method discarding.
- [ruby-dev:24546]
+Fri May 24 02:57:17 2013 Koichi Sasada <ko1@atdot.net>
- * ext/zlib/zlib.c (zstream_expand_buffer_into): hide internal
- string buffer by clearing klass. [ruby-dev:24548]
+ * object.c (rb_obj_clone): should not propagate OLDGEN status.
+ This propagation had caused WB miss for class.
-Wed Oct 20 19:45:13 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu May 23 17:35:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (str_gsub): reentrant check. [ruby-dev:24432]
+ * load.c (loaded_feature_path): fix invalid read by index underflow.
+ the beginning of name is also a boundary as well as just after '/'.
- * backport all SEGV bug fixes from CVS HEAD. [ruby-dev:24536]
+Thu May 23 17:21:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 20 04:17:55 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (gc_profile_dump_on): revert r40898. ok to show the record
+ accumulating while lazy_sweep().
- * ext/dbm/dbm.c (fdbm_delete_if): should check if deleting element
- is a string. [ruby-dev:24490]
+Wed May 22 16:50:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/sdbm/init.c (fsdbm_delete_if): 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.
-Wed Oct 20 01:37:18 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed May 22 15:18:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c (rb_ary_times): Array#* should return an instance of
- the class of right operand. [ruby-dev:24526]
+ * 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]
- * ext/zlib/zlib.c (zstream_detach_buffer): should not expose
- class-less object to Ruby world. [ruby-dev:24530]
+ * win32/win32.c (setup_overlapped, finish_overlapped): extract from
+ rb_w32_read() and rb_w32_write().
- * eval.c (proc_dup): provide Proc#dup as well. [ruby-talk:116915]
+Wed May 22 14:19:56 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (ruby_exec): stack marking position may be higher than
- expected. thanks to Guy Decoux. [ruby-core:03527]
+ * gc.c (gc_prepare_free_objects, rest_sweep, lazy_sweep): fix position
+ of `during_gc' setting.
-Tue Oct 19 22:43:12 2004 Dave Thomas <dave@pragprog.com>
+Wed May 22 07:36:08 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_attr): If
- we come across 'attr' in a context where it isn't
- followed by a symbol, just issue a warning.
+ * 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.
-Tue Oct 19 20:41:37 2004 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * gc.c (gc_prepare_free_objects): use `garbage_collect_body()'.
- * ext/win32ole.c(ole_invoke): retrieve the result value when
- retrying the IDispatch::invoke.
+ * gc.c (slot_sweep, before_gc_sweep, after_gc_sweep): add logging code.
-Tue Oct 19 17:24:11 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue May 21 22:47:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * io.c (read_all): block string buffer modification during
- rb_io_fread() by freezing it temporarily. [ruby-dev:24479]
+ * ext/strscan/strscan.c (strscan_aref): support named captures.
+ patched by Konstantin Haase [ruby-core:54664] [Feature #8343]
- * dir.c (rb_push_glob): block call at once the end of method.
- [ruby-dev:24487]
+Tue May 21 21:48:44 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/enumerator/enumerator.c (enum_each_slice): remove
- rb_gc_force_recycle() to prevent potential SEGV.
- [ruby-dev:24499]
+ * test/ruby/test_dir_m17n.rb (TestDir_M17N#test_entries_compose):
+ Use #each instead of #map just for iteration.
- * ext/zlib/zlib.c (zstream_expand_buffer): hide internal string
- buffer by clearing klass. [ruby-dev:24510]
+Tue May 21 19:57:22 2013 Akinori MUSHA <knu@iDaemons.org>
-Tue Oct 19 16:12:18 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/digest/lib/digest.rb (Digest::Class.file): Take optional
+ arguments that are passed to the constructor of the digest
+ class.
- * ext/tk/tkutil.c: backport from CVS HEAD
+Tue May 21 17:21:12 2013 Koichi Sasada <ko1@atdot.net>
-Tue Oct 19 08:54:26 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: remove gc_profile_record::is_marked. always true.
- * intern.h, object.c (rb_class_inherited_p): export.
+Tue May 21 17:13:40 2013 Koichi Sasada <ko1@atdot.net>
-Tue Oct 19 08:46:57 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c: fix to collect additional information for GC::Profiler.
+ * major/minor GC
+ * trigger reason of GC
- * string.c (rb_str_upto): method result must be checked. [ruby-dev:24504]
+ * gc.c (gc_profile_dump_on): change reporting format with
+ added information.
- * eval.c (error_print): ditto. [ruby-dev:24519]
+ * gc.c (gc_profile_record_get): return added information by
+ :GC_FLAGS => array.
-Mon Oct 18 23:37:05 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue May 21 16:45:31 2013 Koichi Sasada <ko1@atdot.net>
- * marshal.c (r_object0): check inheritance by the internal function.
- [ruby-dev:24515]
+ * 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.
-Mon Oct 18 15:58:01 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue May 21 16:29:09 2013 Koichi Sasada <ko1@atdot.net>
- * range.c (range_step, range_each): need cast.
+ * 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.
-Fri Oct 29 16:34:19 2004 Daiki Ueno <ueno@unixuser.org>
+ * tool/rdocbench.rb: added for `rdoc-bench'.
- * misc/ruby-mode.el (ruby-parse-partial): Parse the rest of the
- line after opening heredoc identifier. [ruby-dev:24635]
+Tue May 21 16:25:05 2013 Koichi Sasada <ko1@atdot.net>
-Mon Oct 18 07:26:21 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * gc.c (gc_profile_dump_on): `count' should be (int) because it
+ can be negative number.
+ And use pointer for `record' (don't copy).
- * file.c (rb_file_truncate): discard read buffer before truncation.
- [ruby-dev:24197]
+Tue May 21 03:11:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Oct 18 02:11:21 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * dir.c (dir_each): compose HFS file names from
+ UTF8-MAC. [ruby-core:48745] [Bug #7267]
- * lib/webrick/config.rb (WEBrick::Config::General): add default values:
- - WEBrick::Config[:DoNotReverseLookup]
- - WEBrick::Config[:RequestCallback] (it used as an alias of
- :RequestHandler in WEBrick::HTTPServer#run)
- - WEBrick::Config::FileHandler[:AcceptableLanguages]
+Tue May 21 03:08:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/webrick/httpservlet/filehandler.rb
- (WEBrick::HTTPServlet::FileHandler#set_filename): search files
- having suffix of language-name which Accept-Language header field
- includes if :AcceptableLanguages options is present.
+ * test/ruby/envutil.rb (assert_separately): require envutil in the
+ child process too.
- * lib/webrick/httpservlet/filehandler.rb
- (WEBrick::HTTPServlet::FileHandler#get_servlet): new method to
- search servlet correspond to the suffix of filename.
+Tue May 21 03:07:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/webrick/httprequest.rb: add attributes access methods: accept,
- accept_charset, accept_encoding, accept_language, content_length
- and content_type.
+ * string.c (rb_str_conv_enc_opts): should infect.
- * lib/webrick/httpresponse.rb: add attribute access methods:
- content_length, content_length=, content_type and content_type=.
+Mon May 20 22:24:45 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/webrick/httputils.rb (WEBrick::HTTPUtils.mime_types):
- use the second suffix to detect media type. (the first suffix
- may be a language name.)
+ * 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.
- * lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_qvalues):
- add method to parse Accept header field. it returns an Array of
- values sorted by the qvalues.
+Mon May 20 22:00:31 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Oct 18 02:04:11 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * lib/e2mmap.rb: Format of E2MM documentation
- * lib/webrick/httpserver.rb (WEBrick::HTTPServer#virtual_host): new
- method to register virtual hosting servers.
+Mon May 20 21:41:15 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/webrick/server.rb (WEBrick::GenericServer#accept): call
- do_not_reverse_lookup for each socket if :DoNotReverseLookup
- is set. [ruby-core:02357]
+ * ext/extmk.rb: nodoc this file
-Mon Oct 18 00:42:45 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon May 20 20:43:32 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/socket/socket.c (sock_s_getservbyaname): protocol string
- might be altered. [ruby-dev:24503]
+ * lib/cmath.rb: Remove duplicate RDoc heading from overview
- * string.c (rb_str_upto): check if return value from succ is a
- string. [ruby-dev:24504]
+Mon May 20 20:36:19 2013 Zachary Scott <zachary@zacharyscott.net>
-Sun Oct 17 23:03:48 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * lib/securerandom.rb: Update position of overview for RDoc
- * ext/tk/lib/tk/timer.rb: TkTimer#start and restart accept a block
+Mon May 20 19:33:55 2013 Benoit Daloze <eregontp@gmail.com>
-Sun Oct 17 13:05:04 2004 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * math.c: improve and fix documentation of sin, tan and log
- * ext/win32ole/win32ole.c (fole_func_methods): correct argument mismatch.
- * ext/win32ole/win32ole.c (fole_get_methods): ditto.
- * ext/win32ole/win32ole.c (fole_put_methods): ditto.
- * ext/win32ole/tests/testWIN32OLE.rb: add test for WIN32OLE#ole_func_methods
- WIN32OLE#ole_get_methods, WIN32OLE#ole_put_methods
+Mon May 20 19:31:49 2013 Benoit Daloze <eregontp@gmail.com>
-Sat Oct 16 14:45:28 2004 Kouhei Sutou <kou@cozmixng.org>
+ * lib/logger.rb (Logger::Application): show namespace in documentation
- * lib/rss/0.9.rb (RSS::Rss#to_s): removed garbage.
+Mon May 20 11:50:12 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Oct 16 13:42:49 2004 Kouhei Sutou <kou@cozmixng.org>
+ * lib/pp.rb: Revert part of r40834 and nodoc PP::ObjectMixin
+ [ruby-core:55068]
- * lib/rss/: untabified.
- * test/rss/: untabified.
- * lib/rss/0.9.rb (RSS::Rss#to_s): inent -> indent.
+Mon May 20 10:40:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 16 13:34:56 2004 Kouhei Sutou <kou@cozmixng.org>
+ * lib/webrick/htmlutils.rb (WEBrick::HTMLUtils#escape): replace HTML
+ meta chars even in non-ascii string. [Bug #8425] [ruby-core:55052]
- * lib/rss: supported prety print.
- * test/rss/test_1.0.rb: added test for calculating default indent size.
+ * lib/webrick/httputils.rb (WEBrick::HTTPUtils#{_escape,_unescape}):
+ fix %-escape encodings. [Bug #8425] [ruby-core:55052]
-Fri Oct 15 18:04:35 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * lib/webrick/httpservlet/filehandler.rb (set_dir_list): revert r20152
+ partially and fix misuse of bytesize and regexp repetition operator.
- * ext/tk/lib/tk/timer.rb: TkTimer.new(interval, loop){ ... } is
- acceptable. Add TkTimer.start ( == new + start ).
+Mon May 20 08:03:51 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Oct 15 12:43:09 2004 Tanaka Akira <akr@m17n.org>
+ * lib/profiler.rb: Document Profiler__ methods
- * eval.c (Init_stack): make prototype declaration consistent with
- the definition in gc.c.
+Mon May 20 08:02:13 2013 Zachary Scott <zachary@zacharyscott.net>
-Thu Oct 14 14:34:01 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+ * lib/tempfile.rb: nodoc Tempfile#inspect
- * io.c (MODE_BINMODE, MODE_BINARY): fixed reversed condition.
+Mon May 20 07:48:24 2013 Zachary Scott <zachary@zacharyscott.net>
-Thu Oct 14 13:33:59 2004 Kouhei Sutou <kou@cozmixng.org>
+ * ext/stringio/stringio.c: Correct position of method rdoc
- * lib/rss/rss.rb: added link to Tutorial.
+Mon May 20 07:27:41 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Oct 11 13:48:20 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * math.c: RDoc formatting of Math core docs with domains and codomains
+ Patch by @eLobato [Fixes GH-309]
- * ext/tk/lib/tk/*: untabify
+Mon May 20 05:58:12 2013 Zachary Scott <zachary@zacharyscott.net>
-Sun Oct 10 12:32:08 2004 Dave Thomas <dave@pragprog.com>
+ * ext/bigdecimal/bigdecimal.c: Formatting for BigMath [Fixes GH-306]
+ Based on a patch by @eLobato.
+ * ext/bigdecimal/lib/bigdecimal/math.rb: ditto
- * lib/rdoc/parsers/parse_rb.rb (RDoc::parse_require): Allow 'require'
- to be used as a variable name
+Mon May 20 04:56:59 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Oct 9 21:23:37 2004 Kouhei Sutou <kou@cozmixng.org>
+ * lib/forwardable.rb: Forwardable examples in overview were broken
+ Based on patch by @joem [Fixes GH-303] [Bug #8392]
- * lib/rss/converter.rb: changed to try to use Iconv for default
- conversion.
+Mon May 20 03:35:26 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/rss/rss.rb: 0.0.9 -> 0.1.0.
+ * lib/optparse.rb: nodoc OptionParser::Version and SPLAT_PROC
-Sat Oct 9 19:50:36 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 20 03:16:52 2013 Zachary Scott <zachary@zacharyscott.net>
- * io.c (rb_io_getline): should not treat char as negative value.
- [ruby-dev:24460]
+ * lib/pp.rb: Document PP::ObjectMixin [Fixes GH-312]
-Fri Oct 8 09:49:32 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun May 19 23:52:22 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * pack.c (pack_pack): pointer modification check before each
- iteration. [ruby-dev:24445]
+ * test/webrick/test_htmlutils.rb: add test for WEBrick::HTMLUtils.
-Fri Oct 8 01:13:05 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun May 19 23:12:07 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * ext/tk/lib/tk/optiondb.rb: make it more secure
+ * encoding.c: document fix, change default script encoding.
+ patched by @windwiny [Fixes GH-310]
-Thu Oct 7 23:47:57 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun May 19 17:29:07 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/tk/lib/tk/scrollbar.rb: When 'set' operation, a scrollbar
- cannot propagate view port information from the source widget
- (that calls 'set') to other assigned widgets.
+ * lib/set.rb (Set#delete_if, Set#keep_if): Add comments.
-Thu Oct 7 17:36:25 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun May 19 11:37:36 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/tk/lib/tk.rb: When CHILDKILLED and so on, Tk.errorCode returns
- a Fixnum for 2nd element (it's pid) of the return value.
+ * ext/fiddle/extconf.rb: ignore rc version of libffi to fix build failure.
-Thu Oct 7 12:55:04 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun May 19 10:38:50 2013 Akinori MUSHA <knu@iDaemons.org>
- * io.c (io_read): should freeze buffer before thread context
- switch. [ruby-dev:24442]
+ * misc/ruby-electric.el (ruby-electric-delete-backward-char): Use
+ delete-char instead of delete-backward-char, which is an
+ interactive function.
- * pack.c (pack_unpack): string conversion should at the top of the
- method. [ruby-dev:24439]
+Sun May 19 03:59:29 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * io.c (io_read): buffer should be frozen only after the length
- check. [ruby-dev:24440]
+ * string.c (str_scrub0): added for refactoring.
-Thu Oct 7 02:56:43 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun May 19 03:48:26 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/stringio/stringio.c: use FMODE_APPEND.
+ * lib/uri/common.rb (URI.decode_www_form): scrub string if decoded
+ bytes are invalid for the encoding.
-Thu Oct 7 01:05:33 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun May 19 02:46:32 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/tk/lib/tk.rb: add Tk.errorInfo and Tk.errorCode
+ * 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.
-Thu Oct 7 00:08:37 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun May 19 02:33:09 2013 Akinori MUSHA <knu@iDaemons.org>
- * io.c (rb_io_s_sysopen): preserve path in the buffer allocated by
- ALLOCA_N() to prevent modification. [ruby-dev:24438]
+ * 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.
-Wed Oct 6 09:21:00 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * misc/ruby-electric.el (ruby-electric-delete-backward-char):
+ Introduce electric DEL that deletes what the previous electric
+ command has input.
- * io.c (rb_io_mode_flags): preserve append mode flag.
- [ruby-dev:24436]
+ * misc/ruby-electric.el (ruby-electric-matching-char): Make
+ electric quotes work again at the end of buffer.
- * io.c (rb_io_modenum_mode): do not use external output buffer.
+Sun May 19 01:39:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_str_justify): differ pointer retrieval to prevent
- padding string modification. [ruby-dev:24434]
+ * configure.in (setjmp-type): check if setjmpex() is really available.
+ workaround for i686-w64-mingw32 which declares it but lacks its
+ definition.
- * range.c (range_each_func): allow func to terminate loop by
- returning RANGE_EACH_BREAK.
+ * include/ruby/defines.h: include setjmpex.h only if also setjmpex()
+ is available.
- * range.c (member_i): use RANGE_EACH_BREAK. [ruby-talk:114959]
+Sat May 18 23:57:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Oct 4 14:04:14 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (setjmp-type): use setjmpex() on w64-mingw32 to get rid
+ of -Wclobbered warnings.
- * io.c (rb_file_open_internal, rb_io_reopen): fname might be altered
- while GC. [ruby-dev:24408]
+ * include/ruby/defines.h: include setjmpex.h here becase setjmp.h is
+ included from win32.h via intrin.h, winnt.h, and so on.
-Mon Oct 4 12:53:45 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sat May 18 20:28:12 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/optiondb.rb: support definition of command
- resources on widgets
+ * ext/socket/mkconstants.rb (INTEGER2NUM): Make less comparisons.
- * ext/tk/lib/tk/image.rb: bug fix
+Sat May 18 20:15:28 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Oct 3 21:20:03 2004 Shugo Maeda <shugo@ruby-lang.org>
+ * string.c (str_scrub_bang): add String#scrub!. [Feature #8414]
- * lib/net/imap.rb (TEXT_REGEXP): allow 8-bit characters for the german
- version of Microsoft Exchange Server. (backported from HEAD)
+Sat May 18 16:59:52 2013 Tanaka Akira <akr@fsij.org>
- * lib/net/imap.rb (RTEXT_REGEXP): ditto.
+ * ext/socket/mkconstants.rb (INTEGER2NUM): Renamed from INTEGER2VALUE.
- * lib/net/imap.rb (CTEXT_REGEXP): ditto.
+Sat May 18 16:57:58 2013 Tanaka Akira <akr@fsij.org>
-Sat Oct 2 20:34:22 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/mkconstants.rb (INTEGER2VALUE): Suppress a warning:
+ comparison between signed and unsigned integer expressions
- * node.h (NEW_DVAR): extra semicolon.
+Sat May 18 16:38:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Oct 2 00:42:20 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * compile.c (iseq_compile_each): forward anonymous and first keyword
+ rest argument one. [ruby-core:55033] [Bug #8416].
- * marshal.c (r_byte): retrieve pointer from string value for each
- time. [ruby-dev:24404]
+Sat May 18 15:49:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * marshal.c (r_bytes0): ditto.
+ * vm_core.h (rb_vm_tag): move jmpbuf between tag and prev so ensure to
+ be accessible.
- * enum.c (sort_by_i): re-entrance check added. [ruby-dev:24399]
+Sat May 18 11:05:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (io_read): should freeze all reading buffer.
- [ruby-dev:24400]
+ * enumerator.c (inspect_enumerator): use VALUE instead of mere char*
+ by using rb_sprintf() and rb_id2str().
- * string.c (rb_str_sum): should use bignums when bits is greater
- than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]
+ * enumerator.c (append_method): extract from inspect_enumerator().
- * eval.c (specific_eval): defer pointer retrieval to prevent
- unsafe sourcefile string modification. [ruby-dev:24382]
+Sat May 18 09:00:32 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (specific_eval): defer pointer retrieval to prevent
- unsafe sourcefile string modification. [ruby-dev:24382]
+ * ext/socket/mkconstants.rb (INTEGER2VALUE): Use LONG2FIX if possible.
- * string.c (rb_str_sum): wrong cast caused wrong result.
- [ruby-dev:24385]
+Sat May 18 00:38:47 2013 Tanaka Akira <akr@fsij.org>
- * enum.c (enum_sort_by): hide temporary array from
- ObjectSpace.each_object. [ruby-dev:24386]
+ * ext/socket/mkconstants.rb: Convert integer constants bigger than int
+ correctly.
- * string.c (rb_str_sum): check was done with false pointer.
- [ruby-dev:24383]
+Fri May 17 22:02:15 2013 Tanaka Akira <akr@fsij.org>
- * string.c (rb_str_sum): string may be altered. [ruby-dev:24381]
+ * ext/socket/ifaddr.c: Use unsigned LONG_LONG to represent flags
+ because SunOS 5.11 (OpenIndiana) defines ifa_flags as uint64_t.
-Mon Oct 11 17:51:34 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri May 17 21:47:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * io.c (rb_io_popen): get mode string via rb_io_flags_mode() to
- avoid mode string modification. [ruby-dev:24454]
+ * cont.c: Typo in constant MAX_MACHINE_STACK_CACHE from '..MAHINE..'
+ patch by @schmurfy [Fixes GH-307]
- * io.c (rb_io_getline_fast): should take delim as unsigned char to
- distinguish EOF and '\377'. [ruby-dev:24460]
+Fri May 17 19:18:24 2013 Akinori MUSHA <knu@iDaemons.org>
- * io.c (rb_io_getline): add check for RS modification.
- [ruby-dev:24461]
+ * 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 ?\".
- * enum.c (enum_sort_by): use qsort() directly instead using
- rb_iterate(). [ruby-dev:24462]
+Fri May 17 18:06:15 2013 Tanaka Akira <akr@fsij.org>
- * enum.c (enum_each_with_index): remove rb_gc_force_recycle() to
- prevent access to recycled object (via continuation for
- example). [ruby-dev:24463]
+ * 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.
-Fri Oct 1 11:40:14 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri May 17 17:34:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe
- sourcefile string modification. [ruby-dev:24373]
+ * gc.c (rb_gc_guarded_ptr): unoptimize on other compilers than gcc and
+ msvc.
- * io.c (io_read): block string buffer modification during
- rb_io_fread() by freezing it temporarily. [ruby-dev:24366]
+Fri May 17 11:06:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (rb_io_s_popen): mode argument may be altered.
- [ruby-dev:24375]
+ * eval_intern.h (TH_PUSH_TAG): ensure jmpbuf to be accessible before
+ pushing tag to get rid of unaccessible tag by stack overflow.
- * file.c (rb_file_s_basename): ext argument may be altered.
- [ruby-dev:24377]
+Thu May 16 17:15:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * enum.c (enum_sort_by): use NODE instead of 2 element arrays.
- [ruby-dev:24378]
+ * 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
- * string.c (rb_str_chomp_bang): StringValue() may change the
- receiver. [ruby-dev:24371]
+Thu May 16 16:19:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Oct 1 11:25:20 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * win32/Makefile.sub (verconf.in): no longer used.
- * ext/tk/lib/tk/grid.rb: revive TkGrid.grid
+ * win32/Makefile.sub (config.status): fix typo.
- * ext/tk/lib/tk/pack.rb: revive TkPack.pack
+ * configure.in, template/verconf.h.in (RUBY_EXEC_PREFIX): fix for
+ default prefix.
- * ext/tk/lib/tk/place.rb: revive TkPlace.place
+Thu May 16 13:12:27 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Sep 30 00:50:44 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * template/verconf.h.in: generate verconf.h from the template and
+ rbconfig.rb.
- * ext/tcltklib/tcltklib.c (ip_init): bug fix
+Thu May 16 05:47:18 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/tk/tkutil.c (get_eval_string_core): accept a Regexp object
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: fix syntax error.
+ Thanks @spastorino! [ruby-core:55011]
- * ext/tk/lib/multi-tk.rb: fix bug on 'exit' operation
+Thu May 16 03:05:45 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/text.rb: 'tksearch' accepts a Regexp object as a
- matting pattern argument
+ * gc.c (rb_node_newnode): use newobj_of() instead of rb_newobj().
-Wed Sep 29 10:58:07 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu May 16 02:03:39 2013 Tanaka Akira <akr@fsij.org>
- * enum.c (sort_by_i): internally used object must not be changed
- outside. [ruby-dev:24368]
+ * ext/socket/depend: Add a dependency for ifaddr.o.
-Mon Sep 27 13:46:45 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu May 16 01:44:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * intern.h, struct.c (rb_struct_s_members, rb_struct_members): public
- accessors. [ruby-dev:24342]
+ * common.mk (verconf.h): $< cannot be used in explicit rules with
+ nmake.
- * marshal.c (w_object, r_object0): use accessors.
+ * win32/Makefile.sub (CONFIG_H): create verconf.in instead of
+ verconf.h.
-Mon Sep 27 09:14:03 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu May 16 01:25:07 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/socket/socket.c (s_accept): don't retry for EWOULDBLOCK.
- [ruby-talk:113807]
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: only emit warnings when
+ -w is enabled.
-Fri Sep 24 16:09:42 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed May 15 18:58:17 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (proc_invoke): propagate DVAR_DONT_RECYCLE on termination
- to avoid double call to rb_gc_force_recycle(). [ruby-dev:24311]
+ * 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.
-Fri Sep 24 08:29:45 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (rb_data_object_alloc, rb_data_typed_object_alloc):
+ use newobj_of().
- * array.c (rb_ary_subseq): original object might be modified after
- sharing data creation. [ruby-dev:24327]
+Wed May 15 17:55:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c (rb_ary_replace): ditto.
+ * configure.in (RUBY_PLATFORM): move to config.h as needed by
+ version.c.
- * array.c (ary_make_shared): freeze shared array. [ruby-dev:24325]
+Wed May 15 17:04:11 2013 Koichi Sasada <ko1@atdot.net>
- * struct.c (struct_members): always check struct size and size of
- members list in the class. [ruby-dev:24320]
+ * gc.c: add an additional RGENGC_PROFILE mode (2).
+ Profiling result can be check by GC.stat.
-Thu Sep 23 09:29:14 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * gc.c (type_name): separate from obj_type_name().
- * string.c (rb_str_sub_bang): check if string is not modified
- during iteration. [ruby-dev:24315]
+Wed May 15 16:58:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * hash.c (rb_hash_rehash): replace st_foreach() by its deep
- checking counterpart. [ruby-dev:24310]
+ * configure.in: save configured load path values into verconf.in.
-Wed Sep 22 13:38:12 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * common.mk (verconf.h): create from verconf.in with shvar_to_cpp.rb.
- * hash.c (rb_hash_rehash): add iteration check. [ruby-dev:24301]
+ * tool/shvar_to_cpp.rb: turn shell variables into C macros.
+ [Bug #7959]
- * st.c (st_foreach): add deep check.
+ * loadpath.c: split load path staffs from version.c.
-Wed Sep 22 13:06:14 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * dmyloadpath.c: miniruby has no builtin load paths, so verconf.h is
+ not needed.
- * win32/win32.c (rb_w32_call_handler): workaround for Ctrl-C.
- merge from HEAD.
+Wed May 15 03:56:09 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Wed Sep 22 00:11:12 2004 Dave Thomas <dave@pragprog.com>
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: adding backwards
+ compatible YAMLTree.new method
- * process.c: Add documentation for fork()
+Wed May 15 02:22:16 2013 Aaron Patterson <aaron@tenderlovemaking.com>
-Wed Sep 22 09:04:41 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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
- * array.c (rb_ary_collect_bang): element size might change during
- comparison. [ruby-dev:24300]
+Wed May 15 02:06:35 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * array.c (rb_ary_reject_bang): ditto. [ruby-dev:24300]
+ * test/psych/helper.rb: envutil is not available outside Ruby, so
+ port the functions from envutil to the test helper.
- * array.c (rb_ary_eql): ditto. [ruby-dev:24300]
+ * test/psych/test_deprecated.rb: ditto
-Tue Sep 21 18:29:49 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/psych/test_encoding.rb: ditto
- * array.c (rb_ary_equal): merge miss.
+Wed May 15 00:42:54 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * array.c (rb_ary_uniq_bang): element size might change during
- comparison. [ruby-dev:24298]
+ * 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)
-Mon Sep 20 00:24:19 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue May 14 23:43:05 2013 Tanaka Akira <akr@fsij.org>
- * enum.c (enum_sort_by): do not use qsort directly. use
- rb_ary_sort_bang() instead. [ruby-dev:24291]
+ * ext/socket/.document: Add ifaddr.c.
- * enum.c (enum_sort_by): pedantic type check added.
- [ruby-dev:24291]
+Tue May 14 23:24:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * hash.c (rb_hash_foreach_iter): check iter_lev after each
- iteration. [ruby-dev:24289]
+ * ext/socket/extconf.rb: check for if_nametoindex() for
+ i686-w64-mingw32, and check for declarations of if_indextoname() and
+ if_nametoindex().
- * array.c (rb_ary_and): element size might change during
- comparison. [ruby-dev:24290]
+ * ext/socket/ifaddr.c (ifaddr_ifindex): not-implement unless
+ if_nametoindex() is available.
- * array.c (rb_ary_or): ditto. [ruby-dev:24292]
+ * ext/socket/rubysocket.h: declare if_indextoname() and
+ if_nametoindex() if available but not declared.
- * array.c (rb_ary_equal): wrong fix. [ruby-dev:24286]
+Tue May 14 19:58:17 2013 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
-Sat Sep 18 15:02:22 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * array.c (rb_ary_equal): element size might change during
- comparison. [ruby-dev:24254]
- * array.c (rb_ary_diff): ditto. [ruby-dev:24274]
+Tue May 14 14:51:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * array.c (rb_ary_select): ditto. [ruby-dev:24278]
+ * 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.
- * array.c (rb_ary_delete): ditto. [ruby-dev:24283]
+Tue May 14 12:21:28 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * array.c (rb_ary_rindex): ditto. [ruby-dev:24275]
+ * win32/win32.c (NET_LUID): mingw may have NET_LUID and not defined
+ _IFDEF_.
- * array.c (rb_ary_initialize): element size might change during
- initializing block. [ruby-dev:24284]
+Tue May 14 03:33:17 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 18 14:10:23 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * string.c (rb_str_new_frozen): remove debug print.
- * dir.c (dir_s_chdir): avoid memory leak and unnecessary chdir to
- the original directory when exception has caused in changing
- direcotry or within block. thanks to Johan Holmberg
- <holmberg@iar.se> [ruby-core:03446]
+Tue May 14 03:22:51 2013 Koichi Sasada <ko1@atdot.net>
-Fri Sep 17 20:20:27 2004 Minero Aoki <aamine@loveruby.net>
+ * include/ruby/ruby.h: enable to generate write barrier protected
+ arrays (T_ARRAY).
- * lib/fileutils.rb (mkdir_p): backport from CVS HEAD 1.45. [ruby-core:03420]
+Tue May 14 03:21:42 2013 Koichi Sasada <ko1@atdot.net>
-Fri Sep 17 17:11:08 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * include/ruby/ruby.h: enable to generate write barrier protected
+ strings (T_STRING).
- * array.c (rb_ary_delete): element comparison might change array
- size. [ruby-dev:24273]
+Tue May 14 03:19:59 2013 Koichi Sasada <ko1@atdot.net>
- * file.c (rb_file_truncate): clear stdio buffer before truncating
- the file. [ruby-dev:24191]
+ * include/ruby/ruby.h: enable to generate write barrier protected
+ objects (T_OBJECT).
- * ext/digest/digest.c: use rb_obj_class() instead of CLASS_OF
- which might return singleton class. [ruby-dev:24202]
+Tue May 14 03:17:15 2013 Koichi Sasada <ko1@atdot.net>
-Fri Sep 17 16:07:09 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * include/ruby/ruby.h: enable to generate write barrier protected
+ objects for numeric types (Float, Complex, Rational, Bignum).
- * ext/tk/lib/multi-tk.rb: improve exit operation
+Tue May 14 03:10:59 2013 Koichi Sasada <ko1@atdot.net>
-Fri Sep 17 15:01:57 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * include/ruby/ruby.h: enable RGENGC (USE_RGENGC)
+ but no type creates write protected (sunny) objects
+ (RGENGC_WB_PROTECTED_* == 0).
- * ext/tcltklib/tcltklib.c: fix SEGV when (thread_)vwait or
- (thread_)tkwait
+Tue May 14 02:47:30 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk.rb: add alias wait_window to wait_destroy
+ * gc.c: support RGENGC. [ruby-trunk - Feature #8339]
+ See this ticket about RGENGC.
- * ext/tk/lib/multi-tk.rb: support calling 'mainloop' on slave
- interpreters (however, the 'real' eventloop must be run on the
- Default Master IP)
+ * 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.
- * ext/tk/lib/remote-tk.rb: follow the changes of ext/tk/lib/multi-tk.rb
+ * include/ruby/ruby.h: disable RGENGC by default (USE_RGENGC == 0).
- * ext/tk/sample/remote-ip_sample2.rb: ditto
+ * array.c: add write barriers for T_ARRAY and generate sunny objects.
- * ext/tk/sample/tkoptdb-safeTk.rb: ditto
+ * 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.
-Thu Sep 16 18:12:32 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * bignum.c, marshal.c, random.c: generate T_BIGNUM sunny objects.
- * lib/webrick/cgi.rb (WEBrick::CGI#start): should set REMOTE_USER
- to request.user attribute.
+ * complex.c, include/ruby/ruby.h: add write barriers for T_COMPLEX
+ and generate sunny objects.
- * lib/webrick/httpservlet/filehandler.rb
- (WEBrick::HTTPServlet::FileHandler#initialize): should expand
- the pathname of document root directory.
+ * rational.c (nurat_s_new_internal), include/ruby/ruby.h: add write
+ barriers for T_RATIONAL and generate sunny objects.
-Thu Sep 16 15:49:28 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * internal.h: add write barriers for RBasic::klass.
- * string.c (rb_str_intern): protect string argument from GC.
- [ruby-core:03411]
+ * numeric.c (rb_float_new_in_heap): generate sunny T_FLOAT objects.
-Wed Sep 15 20:22:23 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * object.c (rb_class_allocate_instance), range.c:
+ generate sunny T_OBJECT objects.
- * ext/tk/sample/tkoptdb-safeTk.rb: fix a bug depend on the changes
- of MultiTkIp
+ * string.c: add write barriers for T_STRING and generate sunny objects.
-Tue Sep 14 23:54:11 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * variable.c: add write barriers for ivars.
- * ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string was en-bugged by
- the previous changes.
+ * vm_insnhelper.c (vm_setivar): ditto.
-Tue Sep 14 23:45:44 2004 Dave Thomas <dave@pragprog.com>
+ * include/ruby/ruby.h, debug.c: use two flags
+ FL_WB_PROTECTED and FL_OLDGEN.
- * lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::TextFormatter.for):
- Add Eric Hodel's simpleformatter.
+ * node.h (NODE_FL_CREF_PUSHED_BY_EVAL, NODE_FL_CREF_OMOD_SHARED):
+ move flag bits.
-Tue Sep 14 16:59:37 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue May 14 01:54:48 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tcltklib/tcltklib.c: fix SEGV
+ * 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.
- * ext/tk/lib/multi-tk.rb: improve safe-level handling of argument proc
+ * gc.c (after_gc_sweep): use objspace_live_num() instead of removed
+ rb_objspace_t::marked_num.
- * ext/tk/sample/multi-ip_sample.rb: rename of old 'safe-tk.rb'
+ * gc.c (gc_mark_ptr, gc_marks): remove rb_objspace_t::marked_num code.
- * ext/tk/sample/safe-tk.rb: new sample script
+ * 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.
-Tue Sep 14 00:15:15 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+ * gc.c (lazy_sweep): call after_gc_sweep() if there are no sweep_able entry.
- * ext/zlib/zlib.c: backported from HEAD.
+ * gc.c (rest_sweep, gc_prepare_free_objects): remove after_gc_sweep() call.
-Mon Sep 13 19:16:33 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+Tue May 14 01:50:41 2013 Koichi Sasada <ko1@atdot.net>
- * eval.c (blk_copy_prev): need frame_dup(). [ruby-dev:24103]
+ * gc.c: disable GC_PROFILE_MORE_DETAIL (fix last commit).
-Mon Sep 13 16:23:27 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * gc.c (gc_prof_set_malloc_info): fix "objspace->heap.live_num" to
+ "objspace_live_num(objspace)". There is no such member variable.
- * ext/tk/lib/multi-tk.rb: MultiTkIp.new_master and new_slave accept
- safe-level value argument
+Tue May 14 01:25:55 2013 Koichi Sasada <ko1@atdot.net>
-Mon Sep 13 10:20:45 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c: refactoring GC::Profiler.
- * object.c (nil_inspect): fix typo.
+ * gc.c (gc_prof_sweep_timer_start/stop): removed because
+ they doesn't support lazy sweep.
-Mon Sep 13 01:03:02 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * gc.c (gc_prof_sweep_slot_timer_start/stop): added.
+ redefine `sweeping time' to accumulated time of all of
+ slot_sweep().
- * ext/tcltklib/tcltklib.c: improve control of preserv/release tcltkip
+ * 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.
- * ext/tcltklib/tcltklib.c: store original 'exit' command
+Tue May 14 00:48:55 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/tkutil.c: fix(?) SEGV
+ * 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].
-Sun Sep 12 23:46:23 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ TODO: API design. RRATIONAL_SET(rat,num,den) is enough?
+ TODO: Setting constify variable with cast has same issue of r40691.
- * util.c (ruby_strdup): remove unnecessary code. (xmalloc never
- returns NULL.)
+ * complex.c, rational.c: use above macros.
- * util.c (ruby_getcwd): fix memory leak on failure.
+Mon May 13 21:49:17 2013 Tanaka Akira <akr@fsij.org>
-Sun Sep 12 02:41:58 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/socket/extconf.rb: Check socketpair again.
+ It is required on Unix.
- * ext/tcltklib/tcltklib.c: add TclTkIp#allow_ruby_exit? and
- allow_ruby_exit=
+Mon May 13 21:20:32 2013 NAKAMURA Usaku <usa@ruby-lang.org>
+ * win32/win32.c (getipaddrs): use alternative interface name if
+ available, because if_nametoindex() requires them.
- * ext/tk/lib/multi-tk.rb: ditto.
+Mon May 13 20:23:24 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/tk/lib/remote-tk.rb: ditto.
+ * win32/win32.c, include/ruby/win32.h (getipaddrs): [experimental]
+ emulate getipaddrs(3) on Unix.
- * ext/tcltklib/MANUAL.euc: ditto.
+ * win32/Makefile.sub, configure.in (LIBS): need iphlpapi.lib for above
+ function.
- * ext/tcltklib/MANUAL.eng: ditto.
+ * include/ruby/win32.h (socketpair): rb_w32_socketpair() doesn't
+ substitute for any function, so use non-prefixed name.
- * ext/tcltklib/tcltklib.c: fix some reasons of SEGV
+ * ext/socket/extconf.rb (socketpair); follow above change.
- * ext/tk/tkutil.c: ditto.
+Mon May 13 20:11:06 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/multi-tk.rb: ditto.
+ * iseq.c (prepare_iseq_build): remove additional line break.
- * ext/tk/lib/tk/timer.rb: ditto.
+Mon May 13 19:29:54 2013 Koichi Sasada <ko1@atdot.net>
-Sat Sep 11 16:09:46 2004 Dave Thomas <dave@pragprog.com>
+ * 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].
- * lib/rdoc/parsers/parse_rb.rb: Fix up cross-file class merging.
+ * 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);
-Fri Sep 10 20:20:53 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ TODO: API design. rb_obj_reveal() should be replaced with others.
- * ext/tcltklib/tcltklib.c (lib_merge_tklist): fix suspicious
- pointer conversion.
+ 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)".
-Fri Sep 10 02:43:54 2004 Dave Thomas <dave@pragprog.com>
+ * 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.
- * lib/rdoc/generators/template/kilmer.rb: James Buck's
- patch for call-seq.
+ * 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.
-Thu Sep 9 13:58:56 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/coverage/coverage.c, ext/readline/readline.c,
+ ext/socket/ancdata.c, ext/socket/init.c,
+ * ext/zlib/zlib.c: ditto.
- * ext/tcltklib/tcltklib.c (ip_init): change flag value for setting
- 'argv' and 'argv0' variable
+Mon May 13 18:44:14 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/remote-tk.rb: follow changes of multi-tk.rb
+ * *.c, parse.y, insns.def: use RARRAY_AREF/ASET macro
+ instead of using RARRAY_PTR().
-Thu Sep 9 11:46:18 2004 Dave Thomas <dave@pragprog.com>
+Mon May 13 16:53:53 2013 Koichi Sasada <ko1@atdot.net>
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_classes): Allow
- spaces aroun parameter to define_method_under (James Buck)
+ * 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].
-Wed Sep 8 18:44:03 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon May 13 15:31:10 2013 Koichi Sasada <ko1@atdot.net>
- * ext/stringio/stringio.c (strio_write): zero fill a gap if exsts.
- [ruby-dev:24190]
+ * object.c (rb_obj_setup): added.
-Wed Sep 8 15:19:49 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * include/ruby/ruby.h (OBJSETUP): use rb_obj_setup() instead of
+ a macro.
- * ext/tcltklib/tcltklib.c (ip_init): cannot create a IP at level 4
+Mon May 13 15:24:16 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/multi-tk.rb: improve 'exit' operation, security check,
- and error treatment
+ * gc.c (rb_data_object_alloc): check klass only if klass is not 0.
+ klass==0 means internal object.
- * ext/tk/lib/multi-tk.rb: allow a trusted slave IP to create slave IPs
+Mon May 13 14:57:28 2013 Koichi Sasada <ko1@atdot.net>
- * ext/tk/lib/tk/listbox.rb: add TkListbox#value, value=, clear, and
- erase
+ * gc.c (rb_data_object_alloc, rb_data_typed_object_alloc):
+ use NEWOBJ_OF() instead of NEWOBJ().
- * ext/tk/lib/tk/text.rb: add TkText#clear and erase
+Mon May 13 14:51:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Sep 7 15:17:49 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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]
- * ext/socket/socket.c (ruby_connect): break immediately if a
- socket is non-blocking. [ruby-talk:111654]
+ * vm_method.c (rb_method_entry_at): return the method entry for id at
+ klass, without ancestors.
-Mon Sep 6 11:08:50 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * class.c (rb_singleton_class_get): get the singleton class if exists,
+ or nil.
- * ext/tk/lib/tk/menu.rb(TkOptionMenubutton#insert): call correct method
+Mon May 13 10:20:59 2013 Yuki Yugui Sonoda <yugui@google.com>
-Mon Sep 6 11:00:47 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/openssl/ossl_ssl.c: Disabled OpenSSL::SSL::SSLSocket if
+ defined(OPENSSL_NO_SOCK).
- * dir.c (dir_s_chdir): the patch to shut up false warning when
- exception occurred within a block. a patch was given from Johan
- Holmberg <holmberg at iar.se>. [ruby-core:03292]
+ 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.
-Mon Sep 6 07:51:42 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon May 13 10:30:04 2013 Zachary Scott <zachary@zacharyscott.net>
- * eval.c (cvar_cbase): singletons should refer outer cvar scope.
- [ruby-dev:24223]
+ * hash.c: Hash[] and {} are not equivalent by @eam [Fixes GH-301]
- * eval.c (rb_load): should preserve previous ruby_wrapper value.
- [ruby-dev:24226]
+Mon May 13 10:04:22 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Sep 4 01:14:57 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * random.c: Document Random::DEFAULT by @eLobato [Fixes GH-304]
- * eval.c (cvar_cbase): class variables cause SEGV in
- instance_eval() for fixnums and symbols. [ruby-dev:24213]
+Sun May 12 21:12:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Sep 3 17:47:58 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * include/ruby/ruby.h (OFFT2NUM): RUBY_REPLACE_TYPE also defines macro
+ to convert int type to VALUE if found.
- * struct.c (make_struct): remove redefining constant when
- conflict. [ruby-dev:24210]
+Wed May 8 13:46:52 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Fri Sep 3 11:31:44 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * include/ruby/intern.h (rb_iv_set, rb_iv_get): removed. Because
+ ruby.h has a declaration for that.
- * ext/tk/lib/tk.rb: Tk.after makes TkCore::INTERP.tk_cmd_tbl grow
- [ruby-dev:24207]
+Wed May 8 13:49:06 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Fri Sep 3 02:12:48 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * ext/tcltklib/tcltklib.c: fix typo [ruby-talk:111266]
+Sun May 12 17:52:23 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/tk/lib/tk/text.rb: fix typo
+ * configure.in: removes 'ac_cv_func_fseeko=yes' form MinGW
+ specific definitions.
- * ext/tk/lib/multi-tk.rb: improve safe-level treatment on slave IPs
+Sun May 12 17:25:46 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Fri Sep 3 01:54:20 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * file.c (rb_file_s_truncate): use correct type. chsize takes
+ a long.
- * ext/extmk.rb: already built-in libraries satisfy dependencies.
- [ruby-dev:24028]
+Sun May 12 17:18:46 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Thu Sep 2 11:36:20 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+ * process.c: move '#define HAVE_SPAWNV 1' to win32/Makefile.sub.
+ * win32/Makefile.sub: see above.
- * eval.c (rb_obj_instance_eval): backported from HEAD.
+Sun May 12 17:13:32 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Sep 1 21:18:25 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * configure.in: removes AC_CHECK_FUNCS(setitimer) because it's
+ unused.
- * ext/tk/lib/tk/spinbox.rb: fix typo
+Sun May 12 17:08:16 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Tue Aug 31 18:24:04 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * configure.in: removes AC_CHECK_FUNCS(pause) because it's unused.
- * ext/tk/tkutil.c (cbsubst_init): fix memory leak
+Sun May 12 17:05:18 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/tk/tkutil.c (cbsubst_get_all_subst_keys): fix SEGV
+ * signal.c (rb_f_kill): fixes typo. s/HAS_KILLPG/HAVE_KILLPG/.
-Tue Aug 31 16:04:22 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun May 12 17:03:27 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/tcltklib/tcltklib.c (ip_delete): when a tcltkip is deleted,
- destroy its root widget
+ * configure.in: abort if gettimeofday doesn't exist.
-Tue Aug 31 12:30:36 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun May 12 16:31:27 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/tcltklib/tcltklib.c (del_root): fix SEGV
+ * 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.
-Mon Aug 30 23:11:06 2004 Dave Thomas <dave@pragprog.com>
+Sun May 12 16:03:41 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * lib/rdoc/ri/ri_driver.rb (and others): ri now merges documentation
- if it finds the same class in multiple places.
+ * configure.in: removes AC_CHECK_FUNC(fseeko, fseeko64, ftello,
+ ftello64). They are not used from anywhere.
-Mon Aug 30 22:40:30 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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'.
- * ext/tk/lib/multi-tk.rb: 'restart' method accepts arguments
+Sun May 12 15:51:47 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Aug 30 21:50:14 2004 Dave Thomas <dave@pragprog.com>
+ * configure.in: remove AC_CHECK_FUNC(close). It is not used from
+ anywhere.
- * object.c: Add RDoc for Module.included.
+Sun May 12 15:50:45 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Aug 30 15:10:46 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+ * configure.in: adds comments for setjmp check.
- * configure.in (GNU/k*BSD): fixed FTBFS on GNU/k*BSD. [ruby-dev:24051]
+Sun May 12 15:38:09 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Aug 30 11:29:35 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * configure.in: move clock_gettime() check into regular place.
- * win32/win32.c (CreateChild): strip trailing spaces. [ruby-dev:24143]
- merge from HEAD.
+Wed May 8 13:45:53 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Sun Aug 29 14:08:56 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * configure.in: add getenv() declaration check.
+ * dln_find.c: add HAVE_DECL_GETENV test.
- * ext/tcltklib/tcltklib.c: compile error on bcc32 [ruby-dev:24081]
+Sun May 12 15:33:18 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string does not work
+ * configure.in: sorts AC_CHECK_FUNCS()s as alphabetical order.
-Sat Aug 28 23:04:41 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed May 8 13:41:57 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * bignum.c (rb_big_and): protect parameters from GC.
- [ruby-talk:110664]
+ * bignum.c: remove redundant decl for big_lshift() big_rshift().
-Thu Aug 26 04:38:29 2004 Dave Thomas <dave@pragprog.com>
+Sun May 12 16:06:43 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * eval.c (return_jump): Minor typo in error message. Now reads
- "return can't jump across threads".
+ * ext/socket/rubysocket.h (rsock_inspect_sockaddr): as r40646
+ check HAVE_TYPE_STRUCT_SOCKADDR_DL.
-Tue Aug 24 17:30:00 2004 Shugo Maeda <shugo@ruby-lang.org>
+Sat May 11 23:01:58 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/cgi/session.rb (CGI::Session::FileStore#initialize): do not
- use a session id as a filename. (backported from HEAD)
+ * 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
- * lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): ditto.
+Sat May 11 22:07:42 2013 Tanaka Akira <akr@fsij.org>
- * lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): use
- Dir::tmpdir. (backported from HEAD)
+ * test/rinda/test_rinda.rb: Socket.getifaddrs may returns an interface
+ which #addr method returns nil for venet0 in OpenVZ.
-Tue Aug 24 14:40:16 2004 Shugo Maeda <shugo@ruby-lang.org>
+Sat May 11 21:56:34 2013 Tanaka Akira <akr@fsij.org>
- * lib/cgi/session.rb (CGI::Session::FileStore#initialize): untaint
- session id after check. (backported from HEAD)
+ * ext/socket/raddrinfo.c (rsock_inspect_sockaddr): Add casts to
+ suppress warnings.
-Tue Aug 24 09:09:01 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sat May 11 17:28:51 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): d2i
- functions may replace the pointer indicated by the first argument.
+ * ext/socket: New method, Socket.getifaddrs, implemented.
+ [ruby-core:54777] [Feature #8368]
- * ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.
+Sat May 11 00:47:22 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_x509name.c (ossl_x509name_initialize): ditto.
+ * 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/
-Mon Aug 23 14:04:51 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri May 10 23:56:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_ssl.c (ossl_ssl_read):
- - should return an empty string if specified length to read is 0.
- - should check for pending data and wait for fd before reading.
- - call underlying IO's sysread if SSL session is not started.
- [ruby-dev:24072], [ruby-dev:24075]
+ * 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]
- * ext/openssl/ossl_ssl.c (ossl_ssl_write):
- - call underlying IO's syswrite if SSL session is not started.
+Fri May 10 20:22:40 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_ssl.c (ossl_ssl_pending): new method
- OpenSSL::SSL#pending.
+ * configure.in: Move library checks into "Checks for libraries." part.
- * ext/openssl/lib/openssl/buffering.rb: should not use select.
+Fri May 10 19:32:01 2013 Tanaka Akira <akr@fsij.org>
-Mon Aug 23 12:40:56 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * configure.in: Reformat arguments of AC_CHECK_HEADERS and
+ AC_CHECK_FUNCS to track modifications easily.
- * lib/resolv.rb (Config.default_config_hash): when multiple domains
- are set, Win32::Resolv.get_resolv_info returns Array.
+Fri May 10 12:01:36 2013 Tanaka Akira <akr@fsij.org>
-Sun Aug 22 01:15:31 2004 GOTOU Yuuzou <gotoyuzo@notwork.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/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect):
- should call :ProxyContentHandler before finishing CONNECT.
+Thu May 9 22:00:35 2013 Tanaka Akira <akr@fsij.org>
-Sat Aug 21 06:41:16 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/ancdata.c (bsock_sendmsg_internal): controls_num should
+ not be negative.
- * ext/tcltklib/extconf.rb (find_tcl, find_tk): find stub library.
+Thu May 9 21:09:57 2013 Tanaka Akira <akr@fsij.org>
- * lib/mkmf.rb (arg_config, with_config): deal with '-' and '_'
- uniformly. [ruby-dev:24118]
+ * 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.
-Thu Aug 19 16:29:45 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu May 9 20:43:41 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk.rb: Fail to treat a hash value of 'font' option.
+ * 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/tk/lib/tk.rb: bindinfo cannot return '%' substiturion infomation.
+Thu May 9 12:06:07 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/menu.rb: typo bug.
+ * ext/socket/rubysocket.h, ext/socket/unixsocket.c,
+ ext/socket/ancdata.c: Use HAVE_STRUCT_MSGHDR_MSG_CONTROL instead
+ of HAVE_ST_MSG_CONTROL.
-Thu Aug 19 15:15:24 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu May 9 11:30:02 2013 Zachary Scott <zachary@zacharyscott.net>
- * dir.c (free_dir): fix memory leak. reported by yamamoto
- madoka.
+ * string.c: Add call-seq alias for String#=== [Bug #8381]
-Thu Aug 19 11:00:00 2004 Akiyoshi, Masamichi <masamichi.akiyoshi@hp.com>
+Thu May 9 11:14:18 2013 Zachary Scott <zachary@zacharyscott.net>
- * dln.c (dln_load): Modify to call lib$find_image_symbol for VMS.
- * io.c (rb_io_fwrite): Use fputc() for VMS non-stream file.
+ * doc/contributing.rdoc: Add guide for contributing to CRuby
-Thu Aug 19 06:07:45 2004 why the lucky stiff <why@ruby-lang.org>
+Thu May 9 04:55:49 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/token.c: re2c no longer compiled with bit vectors. caused
- problems for non-ascii characters. [ruby-core:03280]
- * ext/syck/implicit.c: ditto.
- * ext/syck/bytecode.c: ditto.
+ * configure.in: Check socket library again. shutdown() is used in
+ io.c.
- * lib/yaml/baseemitter.rb: folding now handles double-quoted strings,
- fixed problem with extra line feeds at end of folding, whitespace
- opening scalar blocks.
+Thu May 9 01:52:31 2013 Tanaka Akira <akr@fsij.org>
- * lib/yaml/rubytypes.rb: subtelties in handling strings with
- non-printable characters and odd whitespace patterns.
+ * configure.in: Don't check socketpair. socketpair is not used in
+ ruby command itself.
-Wed Aug 18 23:41:33 2004 Minero Aoki <aamine@loveruby.net>
+Thu May 9 01:05:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/net/protocol.rb (rbuf_fill): OpenSSL::SSL::SSLSocket has its own
- buffer, select(2) might not work. [ruby-dev:24072]
+ * class.c (rb_mod_included_modules): should not include non-modules.
+ [ruby-core:53158] [Bug #8025]
-Wed Aug 18 17:10:12 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+Wed May 8 22:46:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/stubs.c (ruby_tcltk_stubs): need to call
- Tcl_FindExecutable() for Tcl/Tk 8.4.
+ * class.c (rb_mod_included_modules): should not include the original
+ module itself. [ruby-core:53158] [Bug #8025]
-Wed Aug 18 12:52:55 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed May 8 17:43:55 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * eval.c (rb_obj_instance_eval): evaluates under special singleton
- classes as for special constants.
+ * io.c (rb_io_ext_int_to_encs): ignore internal encoding if external
+ encoding is ASCII-8BIT. [Bug #8342]
-Tue Aug 17 17:20:59 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed May 8 13:49:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * io.c (rb_io_reopen): should clear allocated OpenFile. pointed
- out by Guy Decoux. [ruby-core:03288]
+ * ext/json/generator/generator.c (isArrayOrObject): cast char to
+ unsigned char. [Bug #8378]
-Tue Aug 17 01:36:32 2004 Dave Thomas <dave@pragprog.com>
+Wed May 8 13:46:10 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/rdoc/usage.rb: Remove extra indent. Tidy 'ri' option
- parsing so RDoc::usage plays better with OptionParser.
+ * ext/json/generator/depend: fix dependencies [Bug #8379]
-Sat Aug 14 13:09:10 2004 Minero Aoki <aamine@loveruby.net>
+ * ext/json/parser/depend: ditto.
- * lib/fileutils.rb: backport from CVS HEAD (rev1.44).
+Wed May 8 13:07:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/fileutils.rb: cp_r should copy symlink itself, except cp_r
- root.
+ * parse.y (parser_yylex): fail if $, @, @@ are not followed by a valid
+ name character. [ruby-core:54846] [Bug #8375].
- * lib/fileutils.rb: new option mv :force.
+Wed May 8 13:06:31 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/fileutils.rb: new module FileUtils::DryRun.
+ * include/ruby/ruby.h (ISGRAPH): add missing macro.
-Sat Aug 14 02:48:16 2004 Dave Thomas <dave@pragprog.com>
+Wed May 8 06:42:56 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/rdoc/usage.rb: Added. Allows command line programs
- to report usage using their initial RDoc comment.
+ * 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().
-Fri Aug 13 13:23:17 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Tue May 7 22:12:34 2013 Tanaka Akira <akr@fsij.org>
- * lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_range_header):
- fix regex for range-spec.
+ * ext/readline/readline.c (insert_ignore_escape): Add a cast to
+ unsigned char * before dereference.
+ This suppress a warning on Cygwin.
- * lib/webrick/httpservlet/filehandler.rb
- (WEBrick::HTTPServlet::DefaultFileHandler#make_partial_content):
- multipart/byteranges response was broken.
+Tue May 7 12:15:24 2013 Tanaka Akira <akr@fsij.org>
- * lib/webrick/httpservlet/erbhandler.rb
- (WEBrick::HTTPServlet::ERBHandler#do_GET): should select media type
- by suffix of script filename.
+ * 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.
- * lib/xmlrpc/server.rb: refine example code.
+Tue May 7 12:12:42 2013 Tanaka Akira <akr@fsij.org>
-Wed Aug 11 17:17:50 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+ * 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.
- * configure.in (RPATHFLAG): stop setting RPATHFLAG on Interix.
+Tue May 7 12:10:52 2013 Tanaka Akira <akr@fsij.org>
-Sun Aug 8 00:43:31 2004 why the lucky stiff <why@ruby-lang.org>
+ * ext/socket/socket.c (socket_s_ip_address_list): Cast EXTRA_SPACE as
+ int. This suppress a warning.
- * lib/implicit.c: added sexagecimal float#base60.
+Tue May 7 12:09:29 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/rubyext.c (yaml_org_handler): ditto.
+ * 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.
- * lib/token.c: indentation absolutely ignored when processing flow
- collections. plain scalars are trimmed if indentation follows in
- an ambiguous flow collection.
+Tue May 7 12:07:35 2013 Tanaka Akira <akr@fsij.org>
-Sat Aug 7 00:50:01 2004 Tanaka Akira <akr@m17n.org>
+ * pack.c (swap32): Don't redefine it if it is already defined.
+ Bionic defines it.
+ (swap64): Ditto.
- * ext/zlib/zlib.c: Zlib::GzipReader#read(0) returns "" instead of nil.
+Mon May 6 20:50:37 2013 Tanaka Akira <akr@fsij.org>
-Tue Aug 3 13:49:20 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * ext/tk/lib/tk/namespace.rb: bug fix
+Sun May 5 18:56:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: add Tk::TreeCtrl.loupe
+ * insns.def (defined): use vm_search_superclass() like as normal super
+ call. based on a patch <https://gist.github.com/wanabe/5520026> by
+ wanabe.
-Mon Aug 2 18:04:21 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * vm_insnhelper.c (vm_search_superclass): return error but not raise
+ exceptions.
- * ext/tk/lib/tk/msgcat.rb (set_translation): bug fix (fail to set
- trans_str to the same as src_str when trans_str is not given.)
+ * vm_insnhelper.c (vm_search_super_method): check the result of
+ vm_search_superclass and raise exceptions on error.
-Mon Aug 2 11:53:06 2004 Dave Thomas <dave@pragprog.com>
+Sun May 5 16:29:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/code_objects.rb (RDoc::Context::find_symbol): Fix infinite recursion
- looking up some top level symbols (batsman)
+ * insns.def (defined): get method entry from the method top level
+ frame, not block frame. [ruby-core:54769] [Bug #8367]
-Mon Aug 2 11:48:29 2004 Dave Thomas <dave@pragprog.com>
+Sun May 5 13:28:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): Allow '.'s in
- variable names to support SWIG generated files (Hans Fugal)
+ * template/ruby.pc.in (Cflags): use rubyarchhdrdir for multiarch.
+ [Bug #7874]
-Sat Jul 31 17:40:16 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat May 4 07:20:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * misc/ruby-mode.el (ruby-expr-beg, ruby-parse-partial,
- ruby-calculate-indent, ruby-move-to-block, ruby-forward-sexp,
- ruby-backward-sexp): keywords must match word-wise.
+ * doc/security.rdoc: Add note about reporting security vulns
-Sat Jul 31 05:47:37 2004 why the lucky stiff <why@ruby-lang.org>
+Sat May 4 04:13:27 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * lib/yaml.rb (YAML::load_file, YAML::parse_file): added.
+ * include/ruby/defines.h (RUBY_ATTR_ALLOC_SIZE): New for
+ attribute((alloc_size(params))).
- * lib/yaml/rubytypes.rb: exceptions were using an older
- YAML.object_maker. [ruby-core:03080]
+ * include/ruby/defines.h (xmalloc, xmalloc2, xcalloc)
+ (xrealloc, xrealloc2): Annotated by RUBY_ATTR_ALLOC_SIZE.
+ * include/ruby/ruby.h (rb_alloc_tmp_buffer): ditto.
- * ext/syck/token.c (sycklex_yaml_utf8): using newline_len to
- handline CR-LFs. "\000" was showing up on folded blocks which
- stopped at EOF.
+Fri May 3 19:32:13 2013 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
- * ext/syck/token.c: re2c compiled with bit vectors now.
- * ext/syck/implicit.c: ditto.
- * ext/syck/bytecode.c: ditto.
+ * lib/cgi/util.rb: All class methods modulized.
+ We can use these methods like a function when "include CGI::Util".
+ [Feature #8354]
-Fri Jul 30 16:10:54 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri May 3 14:09:45 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/tcltklib.c (lib_fromUTF8_core): raise ArgumentError when
- the unknown encoding name is given.
+ * 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/tcltklib/tcltklib.c (lib_toUTF8_core): ditto.
+Fri May 3 13:35:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertfrom): bug fix.
+ * ext/socket/{getaddrinfo,getnameinfo}.c: define socklen_t if not
+ defined, e.g., older VC.
- * ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertto): ditto.
+Fri May 3 13:29:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Jul 28 18:59:17 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * lib/cgi.rb (CGI::initialize): remove at_exit code for CGI_PARAMS
- and CGI_COOKIES. they will no longer be used.
+Fri May 3 13:22:12 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Jul 28 01:04:44 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * win32/win32.c (poll_child_status): fix build error on older mingw.
- * gc.c (run_final): wrong order of data. [ruby-dev:23984]
+Fri May 3 00:15:58 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
-Tue Jul 27 07:05:04 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * common.mk: remove timestamps in distclean-ext realclean-ext.
- * eval.c (rb_eval): copy on write for argument local variable
- assignment.
+Thu May 2 23:23:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (assign): ditto.
+ * object.c (rb_obj_is_kind_of): skip prepending modules.
+ [ruby-core:54742] [Bug #8357]
- * eval.c (rb_call0): update ruby_frame->argv with the default
- value used for the optional arguments.
+ * object.c (rb_class_inherited_p): ditto.
+ [ruby-core:54736] [Bug #8357]
- * object.c (Init_Object): "===" calls rb_obj_equal() directly.
- [ruby-list:39937]
+Thu May 2 22:11:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Jul 26 11:22:55 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * bin/irb: remove dead code from sample/irb.rb.
- * lib/webrick/httputils.rb (WEBrick::HTTPUtils.escape): should
- escape space.
+Thu May 2 17:32:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Jul 25 11:05:21 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * marshal.c (copy_ivar_i): get rid of overwriting already copied
+ instance variables. c.f. [Bug #8276]
- * win32/win32.{h,c} (rb_w32_{f,fd,fs}open): workaround for bcc32's
- {f,fd,fs}open bug. set errno EMFILE and EBADF. [ruby-dev:23963]
+Thu May 2 16:55:43 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Jul 24 13:32:47 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * thread.c (id_locals): use cached ID.
- * range.c (rb_range_beg_len): returns Qnil only when "beg" points
- outside of a range. No boundary check for "end".
+ * vm.c (ruby_thread_init): ditto.
-Fri Jul 23 16:40:25 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * defs/id.def: add more predefined IDs used in core.
- * gc.c (define_final): should not disclose NODE* to Ruby world.
- [ruby-dev:23957]
+Thu May 2 13:42:42 2013 Ryan Davis <ryand-ruby@zenspider.com>
-Fri Jul 23 09:03:16 2004 Shugo Maeda <shugo@ruby-lang.org>
+ * lib/minitest/*: Imported minitest 4.7.4 (r8483)
+ * test/minitest/*: ditto
- * lib/net/imap.rb (disconnected?): new method. (backported from HEAD)
+Thu May 2 11:32:22 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Thu Jul 22 16:41:54 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * lib/cgi/session.rb (CGI::Session::FileStore#update): sets the
- permission of the session data file to 0600.
+ * test/ruby/test_process.rb (TestProcess#test_no_curdir): maybe now
+ we can test it.
- * lib/cgi/session/pstore.rb (CGI::Session::Pstore#initialize):
+ * test/ruby/test_thread.rb (TestThread#test_thread_timer_and_interrupt):
ditto.
-Thu Jul 22 00:02:21 2004 Masahiro Kitajima <katonbo@katontech.com>
-
- * process.c (rb_f_system): not need to call last_status_set() any
- longer on _WIN32.
-
-Tue Jul 20 09:15:17 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * test/fileutils/test_fileutils.rb: File.link raises EINVAL on BeOS.
-
-Mon Jul 19 01:15:07 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/httpservlet/cgihandler.rb
- (WEBrick::HTTPServlet::CGIhandler#do_GET): set SystemRoot environment
- variable to CGI process on Windows native platforms. [ruby-dev:23936]
-
- * lib/webrick/httpservlet/cgihandler.rb
- (WEBrick::HTTPServlet::CGIhandler#do_GET): use $?.exitstatus and
- refine log message.
-
-Sun Jul 18 16:14:29 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tk/msgcat.rb (TkMsgCatalog.callback): bug fix
- ( wrong number of argument )
-
-Sun Jul 18 08:13:58 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * sprintf.c (rb_f_sprintf): remove extra sign digit.
-
-Sun Jul 18 03:21:42 2004 Akinori MUSHA <knu@iDaemons.org>
-
- * dir.c (range): use NULL instead of 0.
-
- * dir.c (range): get rid of a gcc 3.4 warning.
-
-Sun Jul 18 03:12:11 2004 Shugo Maeda <shugo@ruby-lang.org>
-
- * lib/net/imap.rb (receive_responses): return if a LOGOUT response
- received. (backported from HEAD)
- * lib/net/imap.rb (send_string_data): wait command continuation
- requests before sending octet data of literals. (backported from HEAD)
-
-Sat Jul 17 23:54:59 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tk/variable.rb: TkVariable#ref returns a TkVariable object
-
-Sat Jul 17 22:04:44 2004 akira yamada <akira@ruby-lang.org>
-
- * lib/uri/ldap.rb: method hierarchical? should be in URI::LDAP.
-
-Sat Jul 17 18:29:07 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (stmt): not to show same error messages twice.
-
-Sat Jul 17 13:13:32 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/irb/ruby-lex.rb (RubyLex::identify_string): %s string do not
- process expression interpolation. [ruby-talk:106691]
-
-Sat Jul 17 05:26:27 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/diagram.rb: Incorporate Micheal Neuman's
- client-side imagemao patch
-
-Sat Jul 17 01:57:03 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (THREAD_ALLOC): th->thread should be initialized to NULL.
- [ruby-talk:106657] The solution was found by Guy Decoux.
-
-Fri Jul 16 22:30:28 2004 Michael Neumann <mneumann@ntecs.de>
-
- * file.c (rb_stat_dev_major): new methods File::Stat#dev_major and
- #dev_minor. [ruby-core:03195]
-
-Fri Jul 16 15:23:53 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (return_jump, break_jump): raise unexpceted local jump
- exception directly. [ruby-dev:23740]
-
- * lib/base64.rb (Deprecated): super in bound method calls original
- name method in stable version. [ruby-dev:23916]
-
-Fri Jul 16 11:31:49 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * lib/test/unit/ui/{fox,gtk,gtk2}/testrunner.rb: remove
- garbage (patch from akira yamada) [ruby-dev:23911]
-
-Fri Jul 16 11:20:00 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * sprintf.c (rb_f_sprintf): fix output of NaN, Inf and -Inf with
- "%f" or etc on MSVCRT platforms. (backported from HEAD)
-
-Fri Jul 16 11:17:38 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * error.c (exit_initialize): use EXIT_SUCCESS instead of 0.
- [ruby-dev:23913]
-
- * error.c (exit_success_p): new method SystemExit#success?.
- [ruby-dev:23912]
-
- * error.c (syserr_initialize): initialization for subclasses.
- [ruby-dev:23912]
-
-Thu Jul 15 23:53:38 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/optparse.rb (OptionParser#warn, OptionParser#abort): Exception
- no longer has to_str method.
-
-Thu Jul 15 22:59:48 2004 Shugo Maeda <shugo@ruby-lang.org>
-
- * ext/readline/extconf.rb: added dir_config for curses, ncurses,
- termcap. (backported from HEAD)
-
-Thu Jul 15 20:29:15 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * class.c, error.c, eval.c, intern.h, object.c, variable.c:
- do not set path if it is a singleton class. [ruby-dev:22588]
- (backport from 1.9)
-
-Thu Jul 15 10:15:04 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/, ext/tcltklib/: bug fix
-
- * ext/tk/lib/tk.rb: better operation for SIGINT when processing
- callbacks.
- * ext/tk/lib/tk/msgcat.rb: ditto.
- * ext/tk/lib/tk/variable.rb: ditto.
- * ext/tk/lib/tk/timer.rb: ditto.
-
- * ext/tk/lib/tk/validation.rb: add Tk::ValidateConfigure.__def_validcmd
- to define validatecommand methods easier
-
- * ext/tk/lib/tk.rb (_genobj_for_tkwidget): support autoload Tk ext
- classes
-
- * ext/tk/lib/tk/canvas.rb and so on: remove the parent widget type
- check for items (e.g. canvas items; depends on the class) to
- avoid some troubles on Tk extension widget class definition.
-
- * ext/tk/lib/tkextlib/: add Iwidget and TkTable extension support
-
- * ext/tk/sample/tkextlib/: add samples of Iwidget and TkTable
-
-
-Wed Jul 14 18:08:37 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_asn1.c (ossl_asn1cons_to_der): fix type of
- argument. [ruby-dev:23891]
-
- * test/openssl/test_x509store.rb: prune tests for CRL checking
- unless X509::V_FLAG_CRL_CHECK is defined.
-
-Wed Jul 14 12:29:07 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * util.c (ruby_strtod): should not convert string in the form of
- "-I.FE-X" which both "I" and "F" are ommitted. [ruby-dev:23883]
-
- * test/ruby/test_float.rb (test_strtod): add test for bug fix.
-
-Wed Jul 14 00:31:15 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * array.c: rdoc patch. merged patch from Johan Holmberg
- <holmberg@iar.se> [ruby-core:3170]
-
-Tue Jul 13 19:39:12 2004 akira yamada <akira@ruby-lang.org>
-
- * lib/uri/generic.rb (URI::Generic#merge_path):
- "URI('http://www.example.com/foo/..') + './'" should return
- "URI('http://www.example.com/')". [ruby-list:39838]
- "URI('http://www.example.com/') + './foo/bar/..'" should return
- "URI('http://www.example.com/foo/')". [ruby-list:39844]
-
- * test/uri/test_generic.rb (TestGeneric#test_merge): added tests.
-
-Tue Jul 13 15:51:45 2004 Akinori MUSHA <knu@iDaemons.org>
-
- * lib/mkmf.rb (init_mkmf): Do not add $(libdir) to $LIBPATH in
- extmk mode.
-
- * lib/mkmf.rb (dir_config): Prepend a new library path instead of
- appending so it is tried first.
-
-Tue Jul 13 00:50:48 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb: Support call-seq: for Ruby files.
-
-Mon Jul 12 21:20:36 2004 Dave Thomas <dave@pragprog.com>
-
- * html_generator.rb: Support hyperlinks of the form {any text}[xxx]
- as well as stuff[xxx]
-
-Sat Jul 10 09:30:24 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/soap/marshal/test_struct.rb: use qualified build-tin class name
- (::Struct) to avoid name crash.
-
-Sat Jul 10 04:21:56 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tk.rb: better operation for SIGINT when processing
- callbacks.
- * ext/tk/lib/tk/msgcat.rb: ditto.
- * ext/tk/lib/tk/variable.rb: ditto.
- * ext/tk/lib/tk/timer.rb: ditto.
-
- * ext/tk/lib/tk/validation.rb (__def_validcmd): add a module
- function of Tk::ValidateConfigure to define validatecommand
- methods easier
-
-Fri Jul 9 22:36:36 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * array.c, enum.c, pack.c: rdoc patch from Johan Holmberg
- <holmberg@iar.se> [ruby-core:3132] [ruby-core:3136]
-
- * numeric.c: rdoc patch.
-
-Fri Jul 9 19:26:39 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/open-uri.rb (URI::HTTPS#proxy_open): raise ArgumentError to
- notice https is not supported.
-
-Fri Jul 9 14:28:54 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_thread_raise): accept third argument as well as
- Kernel#raise, and evaluate the arguments to create an exception in
- the caller's context. [ruby-talk:105507]
-
-Fri Jul 9 01:47:08 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib : bug fix
- * ext/tk/lib/tkextlib/itcl : add [incr Tcl] support
- * ext/tk/lib/tkextlib/itk : add [incr Tk] support
- * ext/tk/lib/tkextlib/iwidgets : midway point of [incr Widgets] support
- * ext/tk/sample/tkextlib/iwidgets : very simple examples of
- [incr Widgets]
-
-Thu Jul 8 22:52:19 2004 Kouhei Sutou <kou@cozmixng.org>
-
- * lib/rss/{rss,parser,0.9,1.0,2.0}.rb: supported RSS 0.9x/2.0
- validation and validation which disregard order of elements.
- * test/rss/test_parser.rb: added tests for RSS 0.9x/2.0
- validation.
- * test/rss/{test_trackback,rss-testcase}.rb: fixed no good method
- name.
-
-Thu Jul 8 00:05:23 2004 akira yamada <akira@ruby-lang.org>
-
- * lib/tempfile.rb (Tempfile::initialize): got out code of
- generating tmpname. [ruby-dev:23832][ruby-dev:23837]
-
-Wed Jul 7 15:53:14 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * string.c (rb_str_match): raise TypeError when both arguments are
- strings. [ruby-dev:22869] (backported from HEAD)
-
- * string.c (rb_str_match2): removed.
-
- * Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,
- wince/Makefile.sub (string.c): now not depend on version.h.
-
-Wed Jul 7 00:48:34 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * ext/tk/lib/tkextlib/tktrans.rb,
- ext/tk/lib/tkextlib/treectrl.rb: fix syntax errors.
-
-Tue Jul 6 18:38:45 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib : improve framework of developping Tcl/Tk extension
- wrappers
-
-Mon Jul 5 23:56:42 2004 Kouhei Sutou <kou@cozmixng.org>
-
- * lib/rss/{trackback,syndication,dublincore,content}.rb: worked
- with ruby 1.6 again.
-
- * test/rss/rss-assertions.rb: ditto.
-
-Mon Jul 5 22:54:39 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/uri/common.rb (Kernel#URI): new global method for parsing URIs.
-
-Mon Jul 5 09:02:52 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_thread_yield, rb_f_catch): 4th argument to rb_yield_0()
- is a set of bit flags. [ruby-dev:23859]
-
-Mon Jul 5 01:27:32 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * lib/drb/drb.rb(DRbConn self.open): If socket pool is full, close
- the socket whose last-access-time is oldest. (and add new one)
- [ruby-dev:23860]
-
-Sun Jul 4 12:24:50 2004 Kouhei Sutou <kou@cozmixng.org>
-
- * lib/rss/rss.rb: added copyright header.
-
-Sun Jul 4 00:24:40 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * added files
- * lib/soap/attachment.rb
- * lib/soap/header
- * lib/soap/mimemessage.rb
- * lib/soap/rpc/httpserver.rb
- * lib/wsdl/soap/cgiStubCreator.rb
- * lib/wsdl/soap/classDefCreator.rb
- * lib/wsdl/soap/classDefCreatorSupport.rb
- * lib/wsdl/soap/clientSkeltonCreator.rb
- * lib/wsdl/soap/driverCreator.rb
- * lib/wsdl/soap/mappingRegistryCreator.rb
- * lib/wsdl/soap/methodDefCreator.rb
- * lib/wsdl/soap/servantSkeltonCreator.rb
- * lib/wsdl/soap/standaloneServerStubCreator.rb
- * lib/wsdl/xmlSchema/enumeration.rb
- * lib/wsdl/xmlSchema/simpleRestriction.rb
- * lib/wsdl/xmlSchema/simpleType.rb
- * lib/xsd/codegen
- * lib/xsd/codegen.rb
- * sample/soap/authheader
- * sample/soap/raa2.4
- * sample/soap/ssl
- * sample/soap/swa
- * sample/soap/whois.rb
- * sample/soap/calc/samplehttpd.conf
- * sample/soap/exchange/samplehttpd.conf
- * sample/soap/sampleStruct/samplehttpd.conf
- * sample/wsdl/raa2.4
- * sample/wsdl/googleSearch/samplehttpd.conf
- * test/openssl/_test_ssl.rb
- * test/soap/header
- * test/soap/ssl
- * test/soap/struct
- * test/soap/swa
- * test/soap/wsdlDriver
- * test/wsdl/multiplefault.wsdl
- * test/wsdl/simpletype
- * test/wsdl/test_multiplefault.rb
-
- * modified files
- * lib/soap/baseData.rb
- * lib/soap/element.rb
- * lib/soap/generator.rb
- * lib/soap/marshal.rb
- * lib/soap/netHttpClient.rb
- * lib/soap/parser.rb
- * lib/soap/processor.rb
- * lib/soap/property.rb
- * lib/soap/soap.rb
- * lib/soap/streamHandler.rb
- * lib/soap/wsdlDriver.rb
- * lib/soap/encodingstyle/handler.rb
- * lib/soap/encodingstyle/literalHandler.rb
- * lib/soap/encodingstyle/soapHandler.rb
- * lib/soap/mapping/factory.rb
- * lib/soap/mapping/mapping.rb
- * lib/soap/mapping/registry.rb
- * lib/soap/mapping/rubytypeFactory.rb
- * lib/soap/mapping/wsdlRegistry.rb
- * lib/soap/rpc/cgistub.rb
- * lib/soap/rpc/driver.rb
- * lib/soap/rpc/element.rb
- * lib/soap/rpc/proxy.rb
- * lib/soap/rpc/router.rb
- * lib/soap/rpc/soaplet.rb
- * lib/soap/rpc/standaloneServer.rb
- * lib/wsdl/data.rb
- * lib/wsdl/definitions.rb
- * lib/wsdl/operation.rb
- * lib/wsdl/parser.rb
- * lib/wsdl/soap/definitions.rb
- * lib/wsdl/xmlSchema/complexContent.rb
- * lib/wsdl/xmlSchema/complexType.rb
- * lib/wsdl/xmlSchema/data.rb
- * lib/wsdl/xmlSchema/parser.rb
- * lib/wsdl/xmlSchema/schema.rb
- * lib/xsd/datatypes.rb
- * lib/xsd/qname.rb
- * sample/soap/calc/httpd.rb
- * sample/soap/exchange/httpd.rb
- * sample/soap/sampleStruct/httpd.rb
- * sample/soap/sampleStruct/server.rb
- * sample/wsdl/amazon/AmazonSearch.rb
- * sample/wsdl/amazon/AmazonSearchDriver.rb
- * sample/wsdl/googleSearch/httpd.rb
- * test/soap/test_basetype.rb
- * test/soap/test_property.rb
- * test/soap/test_streamhandler.rb
- * test/soap/calc/test_calc.rb
- * test/soap/calc/test_calc2.rb
- * test/soap/calc/test_calc_cgi.rb
- * test/soap/helloworld/test_helloworld.rb
- * test/wsdl/test_emptycomplextype.rb
- * test/wsdl/axisArray/test_axisarray.rb
- * test/wsdl/datetime/test_datetime.rb
- * test/wsdl/raa/test_raa.rb
- * test/xsd/test_xmlschemaparser.rb
- * test/xsd/test_xsd.rb
-
- * summary
- * add SOAP Header mustUnderstand support.
-
- * add HTTP client SSL configuration and Cookies support (works
- completely with http-access2).
-
- * add header handler for handling sending/receiving SOAP Header.
-
- * map Ruby's anonymous Struct to common SOAP Struct in SOAP Object
- Model. it caused error.
-
- * add WSDL simpleType support to restrict lexical value space.
-
- * add SOAP with Attachment support.
-
-Sat Jul 3 17:19:44 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * ext/tk/lib/tkextlib/tkDND.rb: fix syntax error.
-
-Thu Jul 1 23:15:29 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/pstore.rb (transaction): safer backup scheme. [ruby-list:39102]
-
- * lib/pstore.rb (commit_new): use FileUtils.copy_stream for Cygwin.
- [ruby-dev:23157]
-
- * lib/pstore.rb (transaction): allow overriding dump and load.
- [ruby-dev:23567]
-
- * lib/pstore.rb (PStore#transaction): get rid of opening in write mode
- when read only transaction. [ruby-dev:23842]
-
- * lib/yaml/store.rb: follow lib/pstore.rb's change.
-
-Thu Jul 1 18:36:08 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tcltklib : bug fix
-
- * ext/tk/lib/tk : bug fix and add Tcl/Tk extension support libraries
-
-Thu Jul 1 11:59:45 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/extconf.rb: check for EVP_CIPHER_CTX_copy, ENGINE_add,
- EVP_CIPHER_CTX_set_padding, EVP_CipherFinal_ex, EVP_CipherInit_ex,
- EVP_DigestFinal_ex and EVP_DigestInit_ex.
-
- * ext/openssl/openssl_missing.c (EVP_CIPHER_CTX_copy): new function.
-
- * ext/openssl/openssl_missing.h (EVP_DigestInit_ex, EVP_DigestFinal_ex,
- EVP_CipherInit_ex, EVP_CipherFinal_ex, HMAC_Init_ex): new macro for
- OpenSSL 0.9.6.
-
- * ext/openssl/ossl_cipher.c (ossl_cipher_encrypt, ossl_cipher_decrypt):
- re-implemnt (the arguments for this method is ).
-
- * ext/openssl/ossl_cipher.c (ossl_cipher_pkcs5_keyivgen): new method
- OpenSSL::Cipher::Cipher#pkcs5_keyivgen. it calls EVP_BytesToKey().
-
- * ext/openssl/ossl_cipher.c (ossl_cipher_alloc, ossl_cipher_initialize,
- ossl_cipher_copy, ossl_cipher_reset ossl_cipher_final,
- ossl_cipher_set_key, ossl_cipher_set_iv): replace all EVP_CipherInit
- and EVP_CipherFinal into EVP_CipherInit_ex and EVP_CipherFinal_ex.
- and EVP_CIPHER_CTX_init should only be called once.
-
- * ext/openssl/ossl_cipher.c (ossl_cipher_set_key_length): new method
- OpenSSL::Cipher::Cipher#key_len=.
-
- * ext/openssl/ossl_cipher.c (ossl_cipher_init_deprecated): new
- finction; print warning for Cipher#<<.
-
- * ext/openssl/ossl_digest.c: replace all EVP_DigestInit and
- EVP_DigestFinal into EVP_DigestInit_ex and EVP_DigestFinal_ex.
- and EVP_MD_CTX_init should only be called once.
-
- * ext/openssl/ossl_digest.c (digest_final): should call
- EVP_MD_CTX_cleanup to avoid memory leak.
-
- * ext/openssl/ossl_hmac.c (ossl_hmac_initialize): repalce HMAC_init
- into HMAC_init_ex. and HMAC_CTX_init is moved to ossl_hmac_alloc.
-
- * ext/openssl/ossl_hmac.c (hmac_final): should call
- HMAC_CTX_cleanup to avoid memory leak.
-
- * test/openssl/test_cipher.rb, test/openssl/test_digest.rb,
- test/openssl/test_hmac.rb: new file.
-
-Thu Jul 1 04:08:30 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_asn1.c (ossl_i2d_ASN1_TYPE, ossl_ASN1_TYPE_free):
- workaround for the versions earlier than OpenSSL-0.9.7.
-
-Thu Jul 1 03:33:55 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_pkey_dh.c (ossl_dh_initialize): should create
- empty pkey object if no argument is passed. [ruby-talk:103328]
-
- * ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.
-
- * ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize): ditto.
-
- * ext/openssl/ossl_pkey_dh.c: add new methods: OpenSSL::PKey::DH#p,
- OpenSSL::PKey::DH#p=, OpenSSL::PKey::DH#g, OpenSSL::PKey::DH#g=,
- OpenSSL::PKey::DH#pub_key, OpenSSL::PKey::DH#pub_key=,
- OpenSSL::PKey::DH#priv_key and OpenSSL::PKey::DH#priv_key=.
-
- * ext/openssl/ossl_pkey_dsa.c: add new methods: OpenSSL::PKey::DSA#p,
- OpenSSL::PKey::DSA#p=, OpenSSL::PKey::DSA#q, OpenSSL::PKey::DSA#q=,
- OpenSSL::PKey::DSA#g, OpenSSL::PKey::DSA#g=,
- OpenSSL::PKey::DSA#pub_key, OpenSSL::PKey::DSA#pub_key=,
- OpenSSL::PKey::DSA#priv_key and OpenSSL::PKey::DSA#priv_key=.
-
-Thu Jul 1 03:16:09 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_ssl.c (ossl_ssl_read): take optional second argument
- to specify a string to be written.
+Thu May 2 11:24:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#read):
- take optional second argument to specify a string to be written.
+ * lib/yaml.rb: nodoc EngineManager, add History doc #8344
- * ext/openssl/lib/openssl/buffering.rb (OpenSSL::Buffering#gets):
- refine regexp for end-of-line.
+Wed May 1 21:11:17 2013 Tanaka Akira <akr@fsij.org>
- * ext/opnessl/lib/openssl/ssl.rb
- (OpenSSL::SSL::SocketForwarder#listen): fix typo.
+ * time.c (localtime_with_gmtoff_zone): musl libc may return NULL for
+ tm_zone.
-Wed Jun 30 11:38:51 2004 Mikael Brockman <phubuh@phubuh.org>
+Wed May 1 18:59:36 2013 Benoit Daloze <eregontp@gmail.com>
- * parse.y (primary): should not be NULL. [ruby-core:03098]
+ * enum.c (Enumerable#chunk): fix grammar of error message
+ for symbols beginning with an underscore [Bug #8351]
-Wed Jun 30 02:53:24 2004 why the lucky stiff <why@ruby-lang.org>
+Wed May 1 16:47:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/syck/rubyext.c (syck_emitter_new): set buffer after
- Data_Wrap_Struct to avoid possible GC. [ruby-talk:104835]
+ * ext/curses/extconf.rb (curses_version): try once for each tests, a
+ function or a variable. fallback to variable for old SVR4.
-Tue Jun 29 10:31:19 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed May 1 16:17:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (rb_eval_cmd, rb_thread_trap_eval): restore safe level.
+ * ext/extmk.rb (extmake): extensions not to be installed should not
+ make static libraries, but make dynamic libraries always.
- * gc.c (define_final, run_final): preserve and restore safe level for
- finalizers. [ruby-core:03058]
+Wed May 1 12:20:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * signal.c (signal_exec, rb_trap_exit, trap): preserve and restore
- safe level for signal handlers. [ruby-dev:23829]
+ * lib/rake/version.rb: Fix RDoc warning with :include: [Bug #8347]
-Mon Jun 28 14:57:56 2004 Jeff Mitchell <quixoticsycophant@yahoo.com>
+Wed May 1 11:40:25 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in, lib/mkmf.rb (LIBPATHFLAG): use double quotes due to
- DOSISH compilers. [ruby-core:03107]
+ * defs/id.def (predefined): add "idProc".
-Mon Jun 28 00:30:19 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * eval.c (frame_func_id): use predefined IDs.
- * sample/drb/*.rb: using 'DRb.thread.join' instead of 'gets'
+ * proc.c (mnew, mproc, mlambda): use predefined IDs.
-Sun Jun 27 22:39:51 2004 Kouhei Sutou <kou@cozmixng.org>
+ * vm.c (rb_vm_control_frame_id_and_class): ditto.
- * sample/rss/tdiary_plugin/rss-recent.rb: supported Hiki.
+ * vm.c (Init_VM): ditto.
-Sun Jun 27 12:19:46 2004 Kouhei Sutou <kou@cozmixng.org>
+Tue Apr 30 23:18:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * {lib,sample,test}/rss: added RSS Parser. [ruby-dev:23780]
+ * lib/benchmark.rb: Update Benchmark results on newer CPU
-Sat Jun 26 11:07:30 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Apr 30 12:31:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in (aix): -b must come at the start of the command line,
- and -e must not appear while testing libraries. [ruby-talk:104501]
+ * proc.c (mproc, mlambda): use frozen core methods instead of plain
+ global methods, so that methods cannot be overridden.
+ [ruby-core:54687] [Bug #8345]
- * lib/mkmf.rb (dir_config): quote directory names if necessary.
- [ruby-talk:104505]
+ * vm.c (Init_VM): define proc and lambda on the frozen core object.
-Fri Jun 25 15:33:19 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * include/ruby/intern.h (rb_block_lambda): add declaration instead of
+ deprecated rb_f_lambda.
- * ext/iconv/extconf.rb: check stricter. [ruby-talk:104501]
+Mon Apr 29 17:02:30 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/iconv/extconf.rb: include iconv.h for libiconv. [ruby-dev:22715]
+ * ext/nkf/nkf-utf8/nkf.h: Bionic libc doesn't have locale.
+ [Feature #8338]
-Fri Jun 25 08:31:29 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
- * eval.c (rb_thread_atfork): remove "fork terminates thread"
- warning. [ruby-dev:23768]
+Mon Apr 29 06:58:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * object.c (rb_obj_clone): backport FL_FINALIZE patch from 1.9.
- [ruby-core:02786][ruby-core:03067]
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): no need of alloca for
+ small fixed size array.
- * ext/socket/socket.c (sock_sockaddr): Socket#gethostbyname()
- should give us packed address, not struct sockaddr.
- [ruby-core:03053]
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): check overflow first,
+ and use alloca for small size input.
-Fri Jun 25 02:04:23 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+Mon Apr 29 00:40:13 2013 Benoit Daloze <eregontp@gmail.com>
- * {bcc32,win32,wince}/setup.mak: remove RUBY_EXTERN lines when
- including version.h. [ruby-talk:104456] (backported from HEAD)
+ * lib/yaml.rb: Clarify documentation about YAML being always Psych.
+ Give a tip about using Syck. See #8344.
-Thu Jun 24 14:23:29 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Apr 28 23:34:01 2013 Benoit Daloze <eregontp@gmail.com>
- * io.c (rb_io_fread): return already read data when system call is
- interrupted. [ruby-talk:97206]
+ * lib/yaml.rb: Use another trick to define the YAML module.
+ https://twitter.com/n0kada/status/328342207511801856
-Thu Jun 24 01:32:43 2004 Shugo Maeda <shugo@ruby-lang.org>
+Sun Apr 28 23:19:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * version.h: added declarations of ruby_version,
- ruby_release_date, ruby_platform.
- (backported from HEAD)
+ * lib/pp.rb: Update PP module overview by @geopet
-Wed Jun 23 22:23:37 2004 Dave Thomas <dave@pragprog.com>
+Sun Apr 28 22:04:37 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * ext/socket/socket.c (sock_s_gethostbyaddr): Work around problem
- with OS X not returning 'from' parameter to recvfrom for
- connection-oriented sockets.
+ * 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]
-Wed Jun 23 01:45:27 2004 Dave Thomas <dave@pragprog.com>
+Sun Apr 28 12:38:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_quotation):
- Fix problem with the 'r' being dropped from %r{xxx}
+ * README.EXT: correct method name to be used. [Bug #7982]
-Wed Jun 23 00:20:20 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+ * README.EXT.ja: add notes too.
- * ext/win32ole/win32ole.c (ole_hresult2msg): remove trailing
- CRs and LFs. (doesn't depend on CR+LF) [ruby-dev:23749]
+Sun Apr 28 10:35:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Wed Jun 23 00:00:25 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * object.c: With feedback from Steve Klabnik, reverted a change to
+ #untrusted? and #tainted?. Also adjusted grammar for $SAFE levels
- * io.c (rb_io_initialize): should check fcntl result. [ruby-dev:23742]
+Sun Apr 28 10:10:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Jun 22 21:11:36 2004 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * lib/yaml.rb: Disable setting YAML const twice [ruby-core:54642]
- * ext/win32ole/win32ole.c (OLE_FREE): should not call CoFreeUnuse-
- dLibraries().
+Sun Apr 28 09:50:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/win32ole/win32ole.c (ole_event_free): ditto.
+ * object.c: Documentation for taint and trust [Bug #8162]
- * ext/win32ole/win32ole.c (ole_hresult2msg): truncate error message
- before CR.
+Sun Apr 28 09:40:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Jun 22 16:47:42 2004 Shugo Maeda <shugo@ruby-lang.org>
+ * README.EXT: Copy note from r40505 for rb_sprintf() [Bug #7982]
- * lib/net/ftp.rb (MDTM_REGEXP): fix for demon's ftp server.
- Thanks, Rutger Nijlunsing.
+Sun Apr 28 08:28:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Jun 21 10:19:23 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/curses/curses.c: Update Curses::Window example for nicer output
+ Patch by Michal Suchanek [Bug #8121] [ruby-core:53520]
- * win32/win32.c (rb_w32_opendir): use FindFirstFile()/FindNextFile()/
- FindClose() instead of _findfirst()/_findnext()/_findclose().
- merge from HEAD.
+Sun Apr 28 08:10:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Jun 19 13:24:15 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * README.EXT: Update note from r40504, by Jeremy Evans [Bug #7982]
- * eval.c (method_call): allow changing $SAFE. [ruby-dev:23713]
+Sun Apr 28 08:02:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Fri Jun 18 23:12:22 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * README.EXT: Add note to warn use of %i in Exceptions [Bug #7982]
- * eval.c (proc_save_safe_level, rb_set_safe_level, safe_setter): limit
- safe level.
+Sun Apr 28 02:41:05 2013 Tanaka Akira <akr@fsij.org>
-Wed Jun 16 23:05:57 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in: Fix a typo. Should check endgrent() instead of
+ endgrnam().
- * object.c (rb_mod_freeze): prepare string representation before
- freezing. [ruby-talk:103646]
+Sun Apr 28 00:35:45 2013 Tanaka Akira <akr@fsij.org>
-Wed Jun 16 16:04:40 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * process.c (obj2gid): Don't call endgrent() if not exist.
+ Bionic (Android's libc) don't have endgrent().
- * object.c (rb_mod_le): singleton class inherits Class rather than its
- object's class. [ruby-dev:23690]
+ * configure.in: Check endgrnam function.
-Wed Jun 16 16:01:17 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Apr 27 23:53:00 2013 Charlie Somerville <charlie@charliesomerville.com>
- * gc.c (stack_grow_direction): memoize the direction.
+ * lib/yaml.rb: add security warning to YAML documentation
- * gc.c (Init_stack): should always move to end of VALUE.
+Sat Apr 27 23:25:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Jun 15 12:10:04 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * lib/yaml.rb: Documentation for YAML module [Bug #8213]
- * ext/tk/lib/tk.rb: bug fix (TkWindow#grab)
+Sat Apr 27 20:19:21 2013 Tanaka Akira <akr@fsij.org>
-Mon Jun 14 18:23:27 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * thread_pthread.c (ruby_init_stack): Add STACK_GROW_DIR_DETECTION.
+ This fixes a compilation failure while cross-compiling for Tensilica
+ Xtensa Processor.
- * ext/tk/lib/remote-tk.rb: bug fix
+Sat Apr 27 19:32:44 2013 Benoit Daloze <eregontp@gmail.com>
-Sun Jun 13 00:23:04 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * thread.c: fix typos and documentation
- * ext/tcltklib/extconf.rb: [EXPERIMENTAL] MacOS X (darwin) support
+Sat Apr 27 19:04:55 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/tcltklib.c: fix thread trouble on callback proc, and
- eliminate warning about instance variable access
+ * 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
- * ext/tk/lib/tk/menubar.rb: improve supported menu_spec
+Sat Apr 27 17:22:50 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/menuspec.rb: [add] menu_spec support library
+ * ext/socket/extconf.rb: Redundant test removed.
- * ext/tk/lib/tk/root.rb: add menu_spec support
+Sat Apr 27 16:00:10 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk/text.rb: bug fix
+ * ext/socket/extconf.rb (test_recvmsg_with_msg_peek_creates_fds):
+ Extracted.
- * ext/tk/lib/tk/toplevel.rb: add menu_spec support
+Sat Apr 27 15:50:40 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/sample/menubar?.rb: [add] sample of menu_spec usage
+ * 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.
-Sat Jun 12 11:15:53 2004 WATANABE Hirofumi <eban@ruby-lang.org>
+ * thread.c (TIMEVAL_SEC_MAX): Use SIGNED_INTEGER_MAX.
+ (TIMEVAL_SEC_MIN): Use SIGNED_INTEGER_MIN.
- * configure.in (target_os): strip -gnu suffix on Linux.
+Sat Apr 27 10:52:52 2013 Tanaka Akira <akr@fsij.org>
-Fri Jun 11 17:08:21 2004 Akinori MUSHA <knu@iDaemons.org>
+ * 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).
- * config.guess: Restore a wrongly removed hyphen.
+Fri Apr 26 23:34:59 2013 Kouhei Sutou <kou@cozmixng.org>
-Fri Jun 11 14:30:08 2004 Akinori MUSHA <knu@iDaemons.org>
+ * 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.
- * config.guess: Attempt to avoid system name change on
- Darwin platforms also.
+Fri Apr 26 22:53:55 2013 Kouhei Sutou <kou@cozmixng.org>
-Fri Jun 11 14:22:45 2004 Akinori MUSHA <knu@iDaemons.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.
- * config.guess, config.sub: Attempt to avoid system name change on
- Linux platforms. We have been using "linux" instead of
- "linux-gnu" on this branch.
+Fri Apr 26 21:48:29 2013 Kouhei Sutou <kou@cozmixng.org>
-Thu Jun 10 19:19:41 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rss/atom.rb (RSS::Atom::Entry): Fix indent of document comment.
- * ext/sdbm/init.c (fsdbm_store): sdbm should use StringValue().
- [ruby-talk:103062]
+Fri Apr 26 21:21:17 2013 Kouhei Sutou <kou@cozmixng.org>
-Wed Jun 9 18:04:14 2004 akira yamada <akira@ruby-lang.org>
+ * lib/rss/maker.rb (RSS::Maker): Fix indent of document comment.
- * lib/uri/generic.rb (URI::Generic::merge,
- URI::Generic::route_from): accepts non-hierarchical URI.
- [ruby-dev:23631]
+Fri Apr 26 18:41:04 2013 Tanaka Akira <akr@fsij.org>
- * test/uri/test_generic.rb (TestGeneric::test_route,
- TestGeneric::test_merge): added tests for above changes.
+ * ext/socket/extconf.rb: Use a block of enable_config() for
+ --{enable,disable}-close-fds-by-recvmsg-with-peek configure option
-Wed Jun 9 17:39:37 2004 Akinori MUSHA <knu@iDaemons.org>
+Fri Apr 26 18:08:08 2013 Tanaka Akira <akr@fsij.org>
- * config.guess, config.sub: Update to a more recent version as of
- 2004-01-20.
+ * dir.c (dir_set_pos): Fix a compilation error when seekdir() is not
+ exist.
- * configure.in: Add support for DragonFly BSD.
+Fri Apr 26 17:41:17 2013 Tanaka Akira <akr@fsij.org>
-Wed Jun 2 20:16:03 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread_pthread.c (ruby_init_stack): Add STACK_GROW_DIR_DETECTION.
+ This fixes a compilation failure while cross-compiling for ARM.
- * string.c (str_new4): should share shared instance if it already
- exists. [ruby-dev:23665]
+Fri Apr 26 14:35:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Wed Jun 2 12:41:53 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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
- * io.c (rb_io_gets_m): set lastline ($_) even when read line is
- nil. [ruby-dev:23663]
+Fri Apr 26 12:41:22 2013 Tanaka Akira <akr@fsij.org>
-Fri May 28 11:20:31 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/curses/extconf.rb: Test linkability of curses_version at first.
- * eval.c (rb_eval): bad influence on frame node.
-
- * eval.c (eval): reverted wrongly removed condition. [ruby-dev:23638]
-
-Thu May 27 23:15:18 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/logger.rb: leading 0 padding of timestamp usec part.
-
- * lib/csv.rb (CSV.parse): [CAUTION] behavior changed. in the past,
- CSV.parse accepts a filename to be read-opened (it was just a
- shortcut of CSV.open(filename, 'r')). now CSV.parse accepts a
- string or a stream to be parsed e.g.
- CSV.parse("1,2\n3,r") #=> [['1', '2'], ['3', '4']]
-
- * lib/csv.rb: CSV::Row and CSV::Cell are deprecated. these classes
- are removed in the future. in the new csv.rb, row is represented
- as just an Array. since CSV::Row was a subclass of Array, it won't
- hurt almost all programs except one which depended CSV::Row#match.
- and a cell is represented as just a String or nil(NULL). this
- change will cause widespread destruction.
-
- CSV.open("foo.csv", "r") do |row|
- row.each do |cell|
- if cell.is_null # using Cell#is_null
- p "(NULL)"
- else
- p cell.data # using Cell#data
- end
- end
- end
-
- must be just;
-
- CSV.open("foo.csv", "r") do |row|
- row.each do |cell|
- if cell.nil?
- p "(NULL)"
- else
- p cell
- end
- end
- end
-
- * lib/csv.rb: [CAUTION] record separator(CR, LF, CR+LF) behavior
- change. CSV.open, CSV.parse, and CSV,generate now do not force
- opened file binmode. formerly it set binmode explicitly.
-
- with CSV.open, binmode of opened file depends the given mode
- parameter "r", "w", "rb", and "wb". CSV.parse and CSV.generate open
- file with "r" and "w".
-
- setting mode properly is user's responsibility now.
-
- * lib/csv.rb: accepts String as a fs (field separator/column separator)
- and rs (record separator/row separator)
-
- * lib/csv.rb (CSV.read, CSV.readlines): added. works as IO.read and
- IO.readlines in CSV format.
-
- * lib/csv.rb: added CSV.foreach(path, rs = nil, &block). CSV.foreach
- now does not handle "| cmd" as a path different from IO.foreach.
- needed?
-
- * test/csv/test_csv.rb: updated.
-
- * test/ruby/test_float.rb: added test_strtod to test Float("0").
-
-Thu May 27 21:37:50 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/pathname.rb (Pathname#initialize): refine pathname initialization
- by pathname.
-
-Thu May 27 20:22:05 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * io.c (rb_io_fwrite): check all case errno != 0 [ruby-dev:23648]
-
-Thu May 27 14:53:13 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * io.c (rb_io_fwrite): workaround for bcc32's fwrite bug.
- add errno checking. [ruby-dev:23627]
-
-Wed May 26 14:19:42 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_eval, eval): make line number consistent on eval with
- Proc. [ruby-talk:101253]
-
-Wed May 26 13:59:17 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::skip_for_variable): Allow for
- 'do' after for statement
-
-Wed May 26 13:56:03 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb (Generators::MarkUp::style_url): Fix
- relative path to code CSS file
-
-Wed May 26 13:14:52 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * io.c (rb_io_init_copy): copy also positions. [ruby-talk:100910]
-
-Wed May 26 00:00:00 2004 why the lucky stiff <why@ruby-lang.org>
-
- * ext/syck/syck.c (syck_new_parser): clear parser on init.
- thanks, ts. [ruby-core:02931]
-
- * ext/syck/token.c (sycklex_yaml_utf8): buffer underflow.
- thanks, ts. [ruby-core:02929]
-
- * lib/yaml/baseemitter.rb (indent_text): simpler flow block code.
-
- * lib/yaml.rb: added rdoc to beginning of lib.
-
-Mon May 24 10:46:26 2004 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-
- * lib/rdoc/generators/template/html/html.rb: SYSTEM identifiers
- must be absolute URIs
-
-Sat May 22 12:00:04 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * MANIFEST: add new encodings in rexml.
-
- * ext/tk/MANIFEST: add recent files.
-
-Sat May 22 05:37:11 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/remote-tk.rb: (NEW library) controll Tk interpreters
- on the other processes by Tcl/Tk's 'send' command
-
-Fri May 21 09:22:05 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_parameters):
- Add ()'s around parameters that don't have them
-
-Thu May 20 17:02:03 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (check_sizeof): define result size. [ruby-core:02911]
-
- * lib/mkmf.rb (create_header): macro name should not include equal
- sign.
-
-Thu May 20 15:59:50 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * ext/socket/socket.c: fix SEGV. [ruby-dev:23550]
-
-Thu May 20 14:35:52 2004 Tanaka Akira <akr@m17n.org>
-
- * ext/socket/socket.c: check SCM_RIGHTS macro addition to
- the msg_control field to test existence of file descriptor passing
- by msg_control.
-
-Thu May 20 12:38:06 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * numeric.c (flo_eq): always check if operands are NaN.
- [ruby-list:39685]
-
-Thu May 20 12:34:39 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_visibility):
- At Ryan Davis' suggestion, honor visibility modifers if guarded by a
- statement modifier
-
-Thu May 20 12:22:13 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (have_type): do not check pointer to incomplete type,
- which always get compiled. [ruby-list:39683]
-
-Wed May 19 11:09:00 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tk.rb: change permition of TkObject#tk_send from
- private to public
-
-Tue May 18 14:00:46 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * node.h (NEW_DSTR): adjust list length.
-
- * parse.y (literal_concat): ditto.
-
-Mon May 17 16:14:25 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * numeric.c (flo_to_s): it's preferable that "p 0.0" outputs "0.0"
- instead of "0.0e+00". [ruby-dev:23480]
-
- * numeric.c (flo_to_s): it's preferable that "p 0.00000000000000000001"
- outputs "1.0e-20" instead of "9.999999999999999e-21". (the precision
- is considered, but there is assumption DBL_DIG == 15 in current
- implementation)
-
-Mon May 17 10:13:33 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * ext/socket/socket.c (setup_domain_and_type): honor duck typing.
- [ruby-dev:23522]
-
- * ext/socket/socket.c (sock_s_getnameinfo): ditto.
-
-Mon May 17 01:15:23 2004 why the lucky stiff <why@ruby-lang.org>
-
- * lib/yaml.rb: removed fallback to pure Ruby parser.
-
- * lib/yaml/baseemitter.rb (indent_text): was forcing a mod value
- of zero at times, which kept some blocks from getting indentation.
-
- * lib/yaml/baseemitter.rb (node_text): rewriting folded scalars.
-
- * ext/syck/syck.h: reports style of scalars now, be they plain, block
- single-, or double-quoted.
-
- * ext/syck/syck.c: ditto.
-
- * ext/syck/gram.c: ditto.
-
- * ext/syck/node.c: ditto.
-
- * ext/syck/token.c: ditto.
-
- * ext/syck/rubyext.c (yaml_org_handler): symbols loaded only
- if scalar style is plain.
-
- * ext/syck/rubyext.c (yaml_org_handler): some empty strings were
- loaded as symbols.
-
- * test/yaml/test_yaml.rb (test_perl_regexp): updated test to
- match new regexp serialization.
-
-Mon May 17 00:03:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/drb/drb.rb: Cosmetic documentation changes.
-
-Sun May 16 22:36:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/test/unit.rb: Removed :nodoc: directive (it prevented effective
- RDoc operation), and added file-level comment.
-
-Sun May 16 20:55:49 2004 Tanaka Akira <akr@m17n.org>
-
- * ext/dbm/dbm.c (fdbm_initialize): accept optional 3rd argument to
- specify an open flag.
- (Init_dbm): define open flags: DBM::READER, DBM::WRITER, DBM::WRCREAT
- and DBM::NEWDB.
-
-Sun May 16 13:10:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/test/unit/**/*.rb: Removed :nodoc: directives (many were
- generating warnings, many were on private methods).
-
-Sat May 15 01:41:34 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (eval): forgot to restore $SAFE value before evaluating
- compiled node. [ruby-core:02872]
-
-Sat May 15 01:33:12 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * range.c (range_each_func): terminates loop if generating value
- is same to @end. [ruby-talk:100269]
-
-Fri May 14 22:08:38 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * string.c (rb_str_new4): should not reuse frozen shared string if
- the original is not an instance of String. [ruby-talk:100193]
-
-Fri May 14 18:39:25 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tk/canvas.rb: improve coords support for canvas items.
- Now, supports all of the followings.
- TkcLine.new(c, 0, 0, 100, 100, :fill=>'red')
- TkcLine.new(c, [0, 0, 100, 100], :fill=>'red')
- TkcLine.new(c, [0, 0], [100, 100], :fill=>'red')
- TkcLine.new(c, [[0, 0], [100, 100]], :fill=>'red')
- TkcLine.new(c, :coords=>[0, 0, 100, 100], :fill=>'red')
- TkcLine.new(c, :coords=>[[0, 0], [100, 100]], :fill=>'red')
-
-Fri May 14 12:11:43 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * util.c (ruby_strtod): strtod("0", &end); => end should point '\0'.
- [ruby-dev:23498]
-
-Thu May 13 15:47:30 2004 akira yamada <akira@ruby-lang.org>
-
- * lib/net/telnet.rb (Net::Telnet::login): "options" can specify
- regexps for login prompt and/or password prompt.
-
-Thu May 13 14:23:45 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * hash.c (delete_if_i): use st_delete_safe() (via
- rb_hash_delete()) instead of returning ST_DELETE.
- backport from HEAD. [ruby-dev:23487]
-
-Thu May 13 13:01:30 2004 akira yamada <akira@ruby-lang.org>
-
- * lib/uri/mailto.rb (URI::MailTo::to_s): should include fragment.
-
-Thu May 13 11:04:08 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * pack.c (pack_pack): always add with null for 'Z'.
-
- * pack.c (pack_unpack): terminated by null for 'Z'. [ruby-talk:98281]
-
-Wed May 12 19:59:43 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (have_type, check_sizeof): replace unusable characters.
- [ruby-talk:99788]
-
-Wed May 12 17:41:42 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/resolv.rb (Resolv::DNS::Config): make it configurable without
- external file such as /etc/resolv.conf.
-
-Wed May 12 14:37:27 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_x509name.c: attribute value of DC (short name of
- domainComponent) should be IA5String.
-
-Wed May 12 13:20:19 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tk/composite.rb: improve configure methods (based on
- the proposal of [ruby-talk:99671]).
-
-Wed May 12 11:51:08 2004 Dave Thomas <dave@pragprog.com>
-
- * class.c (rb_obj_singleton_methods): fix rdoc
-
-Mon May 10 21:44:42 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb: Change scheme for
- looking up symbols in HTML generator.
-
-Mon May 10 16:45:21 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (eval): warning during eval should not cause deadlock.
- [ruby-talk:98651]
-
- * eval.c (rb_eval): raise TypeError exception for superclass
- mismatch. [ruby-list:39567]
-
-Mon May 10 12:11:37 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb: Hack to search parents
- for unqualified constant names.
-
-Mon May 10 12:11:37 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb: Hack to search parents
- for unqualified constant names.
-
-Sun May 9 22:37:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/net/ftp.rb: improved documentation
- * lib/net/imap.rb: ditto
- * lib/net/pop.rb: ditto
- * lib/net/smtp.rb: ditto
- * lib/net/telnet.rb: ditto
-
-Fri May 7 21:50:21 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::parse_include): Allow
- multiple arguments to 'include'
-
-Fri May 7 21:31:56 2004 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (fu_list): Array() breaks pathes including "\n".
- [ruby-core:02843]
-
-Fri May 7 11:25:53 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * util.c (ruby_strtod): "0.0000000000000000001" should be converted
- to 1.0e-19 instead of 0.0. (leading zeros aren't significant digits)
- [ruby-talk:99318] [ruby-dev:23465]
-
-Fri May 7 10:00:05 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/tkutil.c (get_eval_string_core): bug fix. [ruby-dev:23466]
-
-Thu May 6 22:13:17 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * ext/socket/socket.c (ippaddr): use NUMERICHOST if can not resolve
- hostname.
-
-Thu May 6 14:22:29 2004 why the lucky stiff <why@ruby-lang.org>
-
- * lib/yaml/rubytypes.rb (to_yaml): added instance variable handling
- for Ranges, Strings, Structs, Regexps.
-
- * lib/yaml/rubytypes.rb (to_yaml_fold): new method for setting a
- String's flow style.
-
- * lib/yaml.rb (YAML::object_maker): now uses Object.allocate.
-
- * ext/syck/gram.c: fixed transfer methods on structs, broke it
- last commit.
-
-Thu May 6 11:40:28 2004 Shugo Maeda <shugo@ruby-lang.org>
-
- * lib/net/imap.rb (string): accept NIL.
-
- * lib/net/imap.rb (body_type_basic): allow body-fields omissions.
-
-Thu May 6 01:59:04 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb (Generators::HtmlMethod::params):
- Don't include the &block parameter if we have explicit
- yield parameters.
-
-Wed May 5 03:40:29 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/rinda/ring.rb: use recv instead of recvfrom.
-
-Tue May 4 23:52:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/gserver.rb: documented
-
-Tue May 4 23:46:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/xmlrpc/README.txt: introduced for documentation purposes
-
-Mon May 3 09:47:24 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):
- Fix parsing bug if yield called within 1 line block
-
-Sun May 2 01:04:38 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tcltklib, ext/tk: renewal Ruby/Tk
-
-Fri Apr 30 20:08:41 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * time.c (SIZEOF_TIME_T): support SIZEOF_TIME_T == SIZEOF_INT.
-
-Tue Apr 27 13:12:42 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_eval): too many line trace call. (ruby-bugs PR#1320)
-
-Tue Apr 27 08:41:28 2004 why the lucky stiff <why@ruby-lang.org>
-
- * lib/yaml/rubytypes.rb: passing Range tests.
-
- * ext/syck/syck.h: version 0.44.
-
- * ext/syck/gram.c: transfers no longer open an indentation.
- fixed transfers which precede blocks.
-
- * ext/syck/token.c: ditto.
-
- * ext/syck/syck.c: fixed segfault if an anchor has been released already.
-
- * ext/syck/node.c (syck_free_members): organized order of free'd nodes.
-
- * ext/syck/rubyext.c (syck_emitter_write_m): test for proper string with
- StringValue.
-
-Mon Apr 26 23:56:54 2004 Daniel Kelley <news-1082945587@dkelley.gmp.san-jose.ca.us>
-
- * README.EXT, README.EXT.ja: fixed wrong function signature.
- [ruby-talk:98349]
-
-Mon Apr 26 21:40:09 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/code_objects.rb (RDoc::Context::add_alias): Only alias
- to instance methods.
-
-Sat Apr 24 10:38:31 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::group_lines):
- Fix bug where consecutive headings are merged.
-
-Fri Apr 23 23:26:13 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb: $hdrdir should not contain macros for backward
- compatibility. [bruby-dev:28]
-
- * version.c (ruby_show_copyright): obtain copyright year from
- RUBY_RELEASE_YEAR.
-
- * win32/resource.rb: ditto.
-
- * win32/resource.rb: default rubyw icon to ruby.ico, and let DLL also
- include them.
-
- * win32/resource.rb: include winver.h for older WindowsCE.
-
-Fri Apr 23 16:38:46 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/pathname.rb: sync taint/freeze flag between
- a pathname object and its internal string object.
-
-Fri Apr 23 14:52:08 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (stmt, arg, aref_args): should not make sole splat into
- array, in aref_args other than aref with op_asgn.
-
-Fri Apr 23 14:14:38 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/resolv.rb: don't use Regexp#source to embed regexps.
- [ruby-dev:23432]
-
-Thu Apr 22 04:15:36 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (aref_args): should pass expanded list. [ruby-core:02793]
-
-Thu Apr 22 01:12:57 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * numeric.c (flo_to_s): tweak output string based to preserve
- decimal point and to remove trailing zeros. [ruby-talk:97891]
-
- * string.c (rb_str_index_m): use unsigned comparison for T_FIXNUM
- search. [ruby-talk:97342]
-
-Wed Apr 21 22:57:27 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/rinda/rinda.rb, test/rinda/test_rinda.rb: check Hash tuple size.
-
-Wed Apr 21 20:05:00 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/open-uri.rb (URI::HTTP#proxy_open): set Host: field explicitly.
- [ruby-list:39542]
-
-Mon Apr 19 18:11:15 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * hash.c (rb_hash_equal): returns true if two hashes have same set
- of key-value set. [ruby-talk:97559]
-
- * hash.c (rb_hash_eql): returns true if two hashes are equal and
- have same default values.
-
-Mon Apr 19 08:19:58 2004 Doug Kearns <djkea2@mugca.its.monash.edu.au>
-
- * dln.c, io.c, lib/benchmark.rb, lib/cgi.rb, lib/csv.rb, lib/date.rb,
- lib/ftools.rb, lib/getoptlong.rb, lib/logger.rb, lib/matrix.rb,
- lib/monitor.rb, lib/set.rb, lib/thwait.rb, lib/timeout.rb,
- lib/yaml.rb, lib/drb/drb.rb, lib/irb/workspace.rb, lib/net/ftp.rb,
- lib/net/http.rb, lib/net/imap.rb, lib/net/telnet.rb,
- lib/racc/parser.rb, lib/rinda/rinda.rb, lib/rinda/tuplespace.rb,
- lib/shell/command-processor.rb, lib/soap/rpc/soaplet.rb,
- lib/test/unit/testcase.rb, lib/test/unit/testsuite.rb: typo fix.
-
-Mon Apr 19 08:14:18 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Allow for
- #ifdef HAVE_PROTOTYPES
-
-Fri Apr 16 22:33:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * ext/iconv/iconv.c: nearly finished RDoc comments.
-
-Fri Apr 16 17:04:07 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * string.c (rb_str_equal): always returns true or false, never
- returns nil. [ruby-dev:23404]
-
-Fri Apr 16 08:27:02 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/extmk.rb: skip linking when libraries to be preloaded not
- compiled. [ruby-list:39561]
-
-Thu Apr 15 23:21:52 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * process.c (pst_success_p): new method Process::Status#success?.
- [ruby-dev:23385]
-
-Thu Apr 15 17:12:13 2004 Tanaka Akira <akr@m17n.org>
-
- * ext/gdbm/gdbm.c (Init_gdbm): define GDBM::READER, GDBM::WRITER,
- GDBM::WRCREAT and GDBM::NEWDB.
- (fgdbm_initialize): use specified read/write flag.
-
-Wed Apr 14 11:29:56 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * numeric.c (flo_eq): workaround for bcc32's bug.
- (ruby-bugs-ja:PR#594)
-
-Wed Apr 14 13:06:35 2004 Doug Kearns <djkea2@mugca.its.monash.edu.au>
-
- * array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,
- process.c, re.c, string.c: typos in RDoc comments. [ruby-core:02783]
-
-Wed Apr 14 11:06:38 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::scan): Changed
- behavior of :enddoc: -- it now unconditionally terminates
- processing of the current file.
-
-Wed Apr 14 11:03:22 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * defines.h: include <net/socket.h> to get fd_set definition in BeOS.
-
-Tue Apr 13 23:06:30 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/rinda/rinda.rb: change pattern matching.
- a === b -> a == b || a === b. [druby-ja:98]
-
- * test/rinda/test_rinda.rb: ditto.
-
-Tue Apr 13 19:54:29 2004 Minero Aoki <aamine@loveruby.net>
-
- * lib/net/http.rb: should not overwrite HTTP request header.
- [ruby-list:39543]
-
-Tue Apr 13 01:30:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * ext/iconv/iconv.c: RDoc documentation (from RD; nearly finished).
- * ext/iconv/charset_alias.rb: Prevent from RDoc'ing.
-
-Mon Apr 12 19:11:29 2004 Eric Hodel <drbrain@segment7.net>
-
- * gc.c (rb_gc_copy_finalizer): typo. [ruby-core:02774]
-
-Mon Apr 12 18:52:32 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_x509name.c (ossl_x509name_init_i): should return
- a value.
-
-Mon Apr 12 10:43:47 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * dir.c (rb_glob2, rb_glob, rb_globi, push_globs, push_braces,
- rb_push_glob): fix memory leak. (leaked when block was interrupted)
-
-Mon Apr 12 10:27:37 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * bcc32/Makefile.sub: backport SIZEOF_TIME_T definition from 1.9.
-
- * win32/Makefile.sub: ditto.
-
- * wince/Makefile.sub: ditto.
-
-Sun Apr 11 19:12:35 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ruby.c (require_libraries): restore source file/line after
- statically linked extensions initialized. [ruby-dev:23357]
-
-Sun Apr 11 10:47:04 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/code_objects.rb (RDoc::TopLevel::add_class_or_module): Toplevel
- classes and modules are a special case too... (handle extending existing
- classes with or without :enddoc:)
-
-Sat Apr 10 23:51:13 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/code_objects.rb (RDoc::Context::add_to): Implementation of :enddoc:
- made one too many assumptions...
-
-Sat Apr 10 00:00:19 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/markup/simple_markup/inline.rb: Fix problem
- with \_cat_<b>dog</b>
+ * 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.
-Wed Apr 7 00:19:50 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Fri Apr 26 00:07:52 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * lib/rinda/rinda.rb: fix hash tuple bug.
+ * lib/rinda/ring.rb (Rinda::RingServer#initialize): accept array
+ arguments of address to specify multicast interface.
- * lib/rinda/tuplespace.rb: ditto.
+ * lib/rinda/ring.rb (Rinda::RingServer#make_socket): add optional
+ arguments for multicast interface.
* test/rinda/test_rinda.rb
+ (TestRingFinger#test_ring_server_ipv4_multicast,
+ TestRingFinger#test_ring_server_ipv6_multicast): add tests for
+ above change.
-Tue Apr 6 18:24:18 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (rb_io_reopen): should use rb_io_check_io().
-
-Tue Apr 6 16:46:09 2004 Tanaka Akira <akr@m17n.org>
-
- * configure.in: check the size of time_t.
-
- * time.c (time_add): new function.
- (time_plus): use time_add.
- (time_minus): use time_add.
-
-Tue Apr 6 13:21:30 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/socket/socket.c (make_hostent): must return value.
-
-Tue Apr 6 00:05:30 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/rinda/rinda.rb: add require 'drb/drb'
-
-Mon Apr 5 08:18:23 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/rdoc.rb: Remove leading ./ from file names so that cross
- references work properly.
-
-Sun Apr 4 20:33:42 2004 Minero Aoki <aamine@loveruby.net>
-
- * eval.c (Init_load): make $LOADED_FEATURES built-in.
- [ruby-dev:23299]
-
- * ruby.c (ruby_prog_init): make $PROGRAM_NAME built-in.
-
- * lib/English.rb: remove $LOADED_FEATURES and $PROGRAM_NAME.
-
-Sun Apr 4 14:01:20 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/options.rb (Options::parse): Allow multiple -x options to RDoc.
- Fix bug where files weren't being excluded properly
-
-Sat Apr 3 17:11:05 2004 why the lucky stiff <why@ruby-lang.org>
-
- * ext/syck/syck.h: version 0.43.
-
- * ext/syck/lib/gram.c: allow root-level inline collections.
- [ruby-talk:94922]
-
- * lib/yaml/rubytypes.rb (Symbol#to_yaml): emit symbols as implicits.
- [ruby-talk:94930]
-
- * ext/syck/bytecode.c: turn off default implicit typing.
-
- * ext/syck/implicit.c: detect base60 integers.
-
- * ext/syck/rubyext.c: handle base60, as well as hex and octal
- with commas. implicit typing of ruby symbols.
-
-Fri Apr 2 17:27:17 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (top_include): include in the wrapped load is done for
- the wrapper, not for a singleton class for wrapped main.
- [ruby-dev:23305]
-
-Fri Apr 2 15:13:44 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * bignum.c (rb_big_eq): use temporary double variable to save the
- result (internal float register may be bigger than 64 bits, for
- example, 80 bits on x86). [ruby-dev:23311]
-
-Fri Apr 2 14:35:26 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (block_pass): should generate unique identifier of the
- pushing block. [ruby-talk:96363]
-
-Fri Apr 2 07:31:38 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * ext/socket/socket.c (make_hostent): fix memory leak, based on
- the patch from HORIKAWA Hisashi <vzw00011@nifty.ne.jp>.
-
-Thu Apr 1 22:55:33 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb: Allow rdoc comments in
- =begin rdoc/=end
-
- * lib/rdoc/parsers/parse_rb.rb: Fix problem with comment in
- top-level method being taken as file comment.
-
-Thu Apr 1 22:55:04 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_options.rb: Fix undefined variable warning.
-
-Thu Apr 1 19:58:37 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/mapping/{factory.rb,registry.rb}: fixed illegal mapped URI
- object with soap/marshal.
- added URIFactory class for URI mapping. BasetypeFactory checks
- instance_variables when original mapping is not allowed (ivar must
- be empty). Instance of URI have instance_variables but it must be
- llowed whenever original mapping is allowed or not.
-
- * lib/xsd/datatypes.rb: check the smallest positive non-zero
- single-precision float exactly instead of packing with "f".
- [ruby-talk:88822]
-
- * lib/soap/mapping/rubytypeFactory.rb: should not dump singleton class.
- [ruby-dev:22588]
- c = class << Object.new; class C; self; end; end; SOAPMarshal.dump(c)
-
-Wed Mar 31 19:06:23 2004 Tanaka Akira <akr@m17n.org>
-
- * time.c (year_leap_p): new function.
- (timegm_noleapsecond): ditto.
- (search_time_t): use timegm_noleapsecond instead of
- mktime for first guess.
-
-Wed Mar 31 12:04:04 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/delegate.rb (DelegateClass): define internal methods of the
- result class, but not metaclass of the caller. [ruby-talk:96156]
-
- * intern.h: provide proper prototypes. [ruby-core:02724]
-
- * ruby.h: missing.h is now prerequisite to intern.h.
-
-Tue Mar 30 20:25:34 2004 Tanaka Akira <akr@m17n.org>
-
- * time.c (search_time_t): limit guess range by mktime if it is
- available. [ruby-dev:23274]
-
-Sun Mar 28 14:16:59 2004 Minero Aoki <aamine@loveruby.net>
-
- * lib/net/pop.rb (auth): failed when account/password include "%".
- [ruby-talk:95933]
-
-Sat Mar 27 21:40:41 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/open-uri.rb: permit extra semicolon in content-type field.
-
-Sat Mar 27 10:40:48 2004 Tanaka Akira <akr@m17n.org>
-
- * (lib/pp.rb, lib/prettyprint.rb): define seplist in PP::PPMethods
- instead of PrettyPrint.
-
-Thu Mar 25 23:28:52 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * time.c (time_overflow_p): backport 1.9 usec overflow function.
- (ruby-bugs PR#1307)
-
-Thu Mar 25 23:15:24 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_options.rb (RI::Options::show_version):
- Add --version option
-
-Thu Mar 25 04:16:18 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_options.rb (RI::Options): Add the --list-names option,
- which dumps our all known names
-
-Thu Mar 25 03:57:47 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_util.rb (NameDescriptor::initialize): No longer
- allow nested classes to be designated using "."--you must
- now use "::"
-
-Thu Mar 25 02:00:18 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/template/html/one_page_html.rb (Page):
- Fix to work with C modules.
-
-Wed Mar 24 21:17:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/uri.rb: Documented (thanks Dmitry V. Sabanin).
- * lib/uri/common.rb: Ditto.
- * lib/uri/ftp.rb: Ditto.
- * lib/uri/generic.rb: Ditto.
- * lib/uri/http.rb: Ditto.
- * lib/uri/https.rb: Ditto.
- * lib/uri/ldap.rb: Ditto.
- * lib/uri/mailto.rb: Ditto.
- (All backported from 1.9)
-
-Wed Mar 24 18:48:26 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb ($ruby, $topdir, $hdrdir): should not be affected by
- DESTDIR after installed.
-
- * lib/mkmf.rb (RUBY): / is not recognized as path separator on
- nmake/bmake. [ruby-list:39388]
-
- * lib/mkmf.rb (init_mkmf): $INCFLAGS also should be lazy-evaluated.
-
-Wed Mar 24 12:32:56 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::handle_class_module):
- Don't document methods if we don't know for sure the
- class or module.
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):
- Don't store documentation for singleton classes if we
- don't know the real class.
-
-Wed Mar 24 11:11:26 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb (Generators::HTMLGenerator::load_html_template):
- Allow non-RDoc templates by putting a slash in the template name
-
-Mon Mar 22 16:19:57 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * ruby.1: add -width option to .Bl for old groff.
-
-Sun Mar 21 21:11:16 2004 Keiju Ishitsuka <keiju@ishitsuka.com>
-
- * lib/shell/*: bug fix for Shell#system(command_line_string).
-
-Sat Mar 20 20:57:10 2004 David Black <dblack@wobblini.net>
-
- * lib/scanf.rb: Backported 1.9 branch
- modifications/corrections to 1.8 branch
-
-Sat Mar 20 23:51:03 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * eval.c (rb_require_safe): preserve old ruby_errinfo.
- [ruby-talk:95409]
-
- * eval.c (rb_f_raise): should not clear backtrace information if
- exception object already have one.
-
-Sat Mar 20 15:25:36 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/template/html/html.rb (RDoc::Page): Force
- page background to white.
-
-Sat Mar 20 09:52:33 2004 Tadayoshi Funaba <tadf@dotrb.org>
-
- * lib/date.rb, lib/date/format.rb: _parse() now accepts fractional
- part of second minute that follows a comma or a full stop.
-
-Fri Mar 19 01:55:57 2004 Mauricio Fernandez <batsman.geo@yahoo.com>
-
- * io.c (rb_io_sync): need not to check writable. [ruby-core:02674]
-
-Thu Mar 18 21:44:38 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/drb/drb.rb: backport drb.rb 1.16.
-
-Fri Mar 18 17:49:51 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * struct.c (make_struct): allow const_id for accessor names.
- [ruby-core:04585]
-
- * eval.c (rb_attr): check if attribute name is local_id or
- const_id.
-
-Thu Mar 18 16:22:38 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (proc_eq): avoid false positive by using scope and
- dyna_vars. no longer use frame.uniq.
-
-Wed Mar 17 14:44:43 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * dir.c (range): fix possible "\0" overrun. (in case of "\0-")
-
-Mon Mar 15 07:39:13 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_yield_0): should not re-submit TAG_BREAK if this
- yield is not break destination. [ruby-dev:23197]
-
-Sat Mar 13 14:28:16 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * test/drb/test_drbssl.rb: rescue LoadError. (Barkport from main
- trunk)
-
- * test/drb/test_drbunix.rb: ditto.
-
-Wed Mar 10 22:28:09 2004 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (remove_dir): should handle symlink correctly.
- This patch is contributed by Christian Loew. [ruby-talk:94635]
- (Backport from main trunk)
-
-Wed Mar 10 16:28:42 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (return_jump): set return value to the return
- destination. separated from localjump_destination().
-
- * eval.c (break_jump): break innermost loop (or thread or proc).
-
- * eval.c (rb_yield_0): set exit_value for block break.
-
-Wed Mar 10 15:58:43 2004 Ryan Davis <ryand@zenspider.com>
-
- * eval.c (eval): Only print backtrace if generating the backtrace
- doesn't generate an exception. [ruby-core:02621]
-
-Tue Mar 9 13:04:26 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (rb_io_ungetc): raise IOError instead of calling
- rb_sys_fail(). [ruby-talk:23181]
-
-Mon Mar 8 19:32:28 2004 akira yamada <akira@ruby-lang.org>
-
- * lib/uri/common.rb (URI::REGEXP::PATTERN::HOSTPORT): (?:#{PORT})
- -> (?::#{PORT}). [ruby-dev:23170]
-
-Mon Mar 8 15:31:41 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * dir.c (range): treat incomplete '[' as ordinary character (like
- has_magic does).
-
- * dir.c (range): Cancel above change. More discussion is needed.
-
-Sun Mar 7 22:37:46 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * test/drb/ut_drb.rb: use 'druby://localhost:0'. [ruby-dev:23078]
-
- * test/drb/ut_eval.rb: ditto.
-
- * test/drb/ut_large.rb: ditto.
-
- * test/drb/ut_safe1.rb: ditto.
-
- * test/drb/ut_drb_drbssl.rb: use 'drbssl://localhost:0'.
-
-Sun Mar 7 16:22:26 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * Makefile.in (lex.c): use $? instead of $<.
-
-Fri Mar 5 00:54:14 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/test/unit.rb: MOve RDoc documentation so that you can
- now say 'ri Test::Unit'
-
-Tue Mar 2 12:32:59 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * win32/Makefile.sub, wince/Makefile.sub (config.h): shouldn't check
- defined? NORETURN. [ruby-dev:23100]
-
-Mon Mar 1 12:24:10 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_alias):
- Allow aliases to have parentheses
-
-Sun Feb 29 23:14:53 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):
- Handle :nodoc: on singleton classes.
-
-Sat Feb 28 10:58:49 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * MANIFEST: add test_erb.rb
-
- * lib/erb.rb, test/erb/test_erb.rb: don't forget filename,
- if both filename and safe_level given. [ruby-dev:23050]
-
-Fri Feb 27 01:00:09 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/drb/drb.rb, test/drb/drbtest.rb: require drb/eq.rb by default
-
-Wed Feb 25 21:16:25 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * instruby.rb (with_destdir): should return the given argument if no
- DESTDIR is given.
-
- * instruby.rb: use path name expansion of cmd.exe.
-
-Wed Feb 25 09:35:22 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * error.c (NameError::Message): new class for lazy evaluation of
- message to ensure replaced before marshalling. merge from HEAD.
- (ruby-bugs-ja:PR#588)
-
- * eval.c (rb_method_missing): use NameError::Message. merge from
- HEAD. (ruby-bugs-ja:PR#588)
-
-Tue Feb 24 18:59:37 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * dir.c (glob_helper): '**/' should not match leading period
- unless File::FNM_DOTMATCH is set. (like '*/') [ruby-dev:23014]
-
-Tue Feb 24 13:22:21 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/rdoc.rb (RDoc::RDoc::normalized_file_list): Attempt to get better
- heuristics on which files to include and exclude. Now only include
- non-standard files if they are explicitly named in ARGV.
-
-Tue Feb 24 07:23:30 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb: Deal with :stopdoc: when
- choosing a default main page to display (ie. don't select a page
- if we don't have documentation for it).
-
-Tue Feb 24 06:40:14 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_identifier): Handle
- class variables in code listings
-
-Tue Feb 24 06:40:14 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_identifier): Handle
- class variables in code listings
-
-Tue Feb 24 06:32:27 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_aliases): Handle
- aliases in C files.
-
-Tue Feb 24 06:16:22 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/rdoc.rb (RDoc::RDoc::document): Now create op dir _before_
- parsing files.
-
-Tue Feb 24 06:08:47 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_constant):
- Start collecting text of constant values earlier: was missing
- values in output if there was no space after '='
-
-Tue Feb 24 06:08:25 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb: Escape contant values.
-
-Tue Feb 24 03:45:06 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_config.c (ossl_config_each): add new method
- OpenSSL::Config#each. it iterates with section name, field name
- and value.
-
- * ext/openssl/ossl_config.c (Init_ossl_config): include Enumerable.
-
-Mon Feb 23 09:16:35 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * instruby.rb (DOSISH): embedded path in batch files should not be
- prefixed by DESTDIR. [ruby-core:02186]
-
-Sun Feb 22 09:54:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * re.c: corrected documentation format (again)
-
-Sun Feb 22 09:43:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * re.c: corrected documentation format (rb_reg_initialize_m)
-
-Sat Feb 21 22:36:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * ext/zlib/zlib.c: documented, but needs more effort.
-
-Sat Feb 21 11:12:15 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * missing/os2.c, missing/x68.c: typo fix. pointed out by greentea.
-
-Fri Feb 20 18:59:47 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/irb/init.rb (IRB::IRB.parse_opts): add -I option to
- irb. [ruby-dev:39243]
-
-Thu Feb 19 23:24:16 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb (Generators::HtmlClass::build_attribute_list):
- Support visibility modifiers for attributes
-
-Thu Feb 19 23:24:16 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb (Generators::HtmlClass::build_attribute_list):
- Support visibility modifiers for attributes
-
-Thu Feb 19 22:39:04 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/rinda/test_rinda.rb: DRb.start_service only once in testsuites.
- DRb.start_service could handle this.
-
-Thu Feb 19 22:19:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/ostruct.rb: documented
-
-Thu Feb 19 21:28:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * ext/strscan/strscan.c: improved documentation
-
-Thu Feb 19 03:10:52 2004 Minero Aoki <aamine@loveruby.net>
-
- * ext/strscan/strscan.c: synchronized with main trunk (rev 1.11).
-
-Thu Feb 19 02:30:34 2004 Minero Aoki <aamine@loveruby.net>
-
- * ext/strscan/strscan.c: documentation checked.
-
-Thu Feb 19 00:11:05 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/markup/simple_markup/preprocess.rb (SM::PreProcess::handle):
- Strip extraneous space from filenames in :include:
-
-Wed Feb 18 22:52:00 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/drb/unix.rb: remove O_NONBLOCK, thanks \ay
-
-Wed Feb 18 22:47:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * ext/strscan/strscan.c: documented
-
-Wed Feb 18 22:03:11 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/*: should not depend on $KCODE.
-
-Wed Feb 18 17:18:01 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * ext/win32ole/win32ole.c: need to include <olectl.h> on Cygwin.
-
-Wed Feb 18 10:40:38 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * sprintf.c (rb_f_sprintf): do not prepend dots for negative
- numbers if FZERO is specified. [ruby-list:39218]
-
-Tue Feb 17 23:40:34 2004 Guy Decoux <ts@moulon.inra.fr>
-
- * sprintf.c (rb_f_sprintf): preserve original val for
- format_integer. [ruby-talk:92975]
-
-Tue Feb 17 23:28:45 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/ruby/marshaltestlib.rb: common marshal testcase added.
-
- * test/ruby/test_marshal.rb: use above testsuite.
-
- * test/soap/marshal/test_marshal.rb: ditto.
-
- * test/soap/marshal/cmarshal.rb: removed (not used).
-
-Tue Feb 17 10:51:23 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/syck/rubyext.c (syck_emitter_end_object): takes only one arg.
-
-Tue Feb 17 01:35:28 2004 Tanaka Akira <akr@m17n.org>
-
- * eval.c (rb_eval): care that another thread replace NODE_DREGX_ONCE
- to NODE_LIT. [ruby-dev:22920]
-
-Tue Feb 17 01:24:35 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * bcc32/Makefile.sub, win32/Makefile.sub (config.h): define
- STACK_GROW_DIRECTION. [ruby-dev:22910]
-
- * bcc32/Makefile.sub (config.h): add newer checks.
-
- * wince/Makefile.sub (config.h): define NEED_IO_SEEK_BETWEEN_RW.
-
-Tue Feb 17 00:38:10 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/rinda/tuplespace.rb: TupleSpace#initialize, stop doubling timeout
-
-Tue Feb 17 00:18:03 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * test/rinda/test_rinda.rb: import test_rinda.rb
-
-Tue Feb 17 00:14:30 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * bcc32/Makefile.sub: avoid warning "Redefinition of macro
- 'HAVE_GETLOGIN'".
-
- * vms/config.h_in: ditto.
-
-Mon Feb 16 23:28:14 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/csv.rb: document reduction. [ruby-core:02429]
-
-Mon Feb 16 22:08:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/generator.rb: corrected doc format
- * lib/rinda/rinda.rb: added documentation (from Hugh Sasse)
- * lib/rinda/tuplespace.rb: ditto
-
-Mon Feb 16 20:41:32 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * bcc32/Makefile.sub: show more warnings. (refering to mingw)
-
- * bcc32/setup.mak: ditto.
-
-Mon Feb 16 13:39:44 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * dir.c (rb_glob, rb_globi): add const.
-
- * ruby.h: ditto.
-
-Mon Feb 16 02:16:33 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * bcc32/Makefile.sub: should warn suspicious pointer conversion.
-
- * bcc32/setup.mak: ditto.
-
-Sun Feb 15 19:06:42 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/rinda/tuplespace.rb: TupleSpace#read(tpl, 0), raise
- RequestExpiredError if not found.
-
-Sun Feb 15 15:56:46 2004 Masaki Suketa <masaki.suketa@nifty.ne.jp>
-
- * ext/win32ole/win32ole.c: add IDispatch wrapper in val2variant.
- Thanks, arton.
-
-Sun Feb 15 01:46:05 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/mkmf.rb: absolute path of ruby is assigned to $(RUBY).
- [ruby-dev:22870]
-
-Sat Feb 14 11:29:41 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * sample/drb/*: import lib/drb/sample
-
-Sat Feb 14 11:08:23 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/drb/drb.rb: add pretty_print, thanks gotoken.
-
-Fri Feb 13 12:35:08 2004 Minero Aoki <aamine@loveruby.net>
-
- * test/fileutils/test_fileutils.rb: File.link may raise EINVAL and
- EACCES on Windows.
-
-Thu Feb 12 21:45:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/ftools.rb: documented
-
-Thu Feb 12 21:25:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/base64.rb: backported from HEAD (modularised and documented)
-
-Thu Feb 12 20:31:48 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (create_tmpsrc): cpp32 of Borland C++ ignores #error
- directives in DOS line-ending files at all.
-
-Thu Feb 12 02:23:56 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/pathname.rb: use assert_raise instead of assert_raises.
-
- * lib/pp.rb: ditto.
-
- * lib/time.rb: ditto.
-
- * lib/tsort.rb: ditto.
- use TSortHash and TSortArray instead of Hash and Array in test.
-
-Wed Feb 11 20:01:12 2004 akira yamada <akira@ruby-lang.org>
-
- * test/ruby/test_file.rb (TestFile::test_fnmatch): added tests for
- File.fnmatch. [ruby-dev:22815][ruby-dev:22819]
-
- * test/ruby/test_proc.rb (TestProc::test_eq): added a
- test. [ruby-dev:22599]
-
- * test/ruby/test_proc.rb (TestProc::test_eq): added tests for
- Proc#==. [ruby-dev:22592], [ruby-dev:22601]
-
-Tue Feb 10 16:43:56 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (umethod_bind): purge unused check. [ruby-dev:22850]
-
-Mon Feb 9 17:16:00 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * lib/rdoc/parsers/parse_c.rb: escape '{' and '}' to avoid warnings.
-
-Mon Feb 9 13:00:55 2004 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
-
- * dir.c (fnmatch): File.fnmatch('*?', 'a') should return true.
- [ruby-dev:22815]
-
- * dir.c (fnmatch): File.fnmatch('\[1\]' , '[1]') should return true.
- [ruby-dev:22819]
-
-Sun Feb 8 16:46:13 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/pp.rb (PP::PPMethods::object_address_group): suppress negative
- sign for higher heap areas.
-
-Fri Feb 6 22:48:16 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb (gen_url): Support
- https in RDoc hyperlinks
-
-Fri Feb 6 22:41:22 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/pp.rb (PPInspectTest#test_to_s_with_iv): rollback the previous
- commit. [ruby-dev:22813]
-
-Fri Feb 6 22:22:50 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/pp.rb (PPInspectTest#test_to_s_with_iv): remove instance
- variable which is defined in the test.
-
-Fri Feb 6 00:48:37 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/prettyprint.rb (PrettyPrint#first?): obsoleted.
-
-Thu Feb 5 23:56:55 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/prettyprint.rb (PrettyPrint#seplist): added.
-
- * lib/pp.rb (PPMethods#pp_object): use seplist.
- (PPMethods#pp_hash): ditto.
- (Array#pretty_print): ditto.
- (Struct#pretty_print): ditto.
- (MatchData#pretty_print): ditto.
-
- * lib/set.rb (Set#pretty_print): use seplist.
-
-Wed Feb 4 02:12:06 2004 Tanaka Akira <akr@m17n.org>
-
- * file.c (test_l): fix wrong method name in document.
- (test_S): ditto.
- (test_b): ditto.
- (test_c): ditto.
- (test_suid): ditto.
- (test_sgid): ditto.
- (test_sticky): ditto.
-
-Tue Feb 3 08:04:57 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/pp.rb (Struct#pretty_print_cycle): follow 1.8 style.
-
-Mon Feb 2 19:33:49 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * configure.in: backport from 1.9 for Interix.
-
- * dln.c (dln_load): ditto.
-
-Mon Feb 2 13:31:51 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * lib/net/http.rb (canonical_each): fix merge miss.
-
-Mon Feb 2 01:54:00 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/pp.rb (Struct#pretty_print): make it 1.8 style.
- (Numeric#pretty_print, FalseClass#pretty_print)
- (TrueClass#pretty_print, Module#pretty_print): fix pp for objects
- with instance variables. [ruby-talk:91157]
-
- * lib/open-uri.rb (URI::Generic#find_proxy): return nil on loopback
- address.
-
- * lib/resolv-replace.rb (BasicSocket#send): don't replace because
- it has no hostname argument.
- (IPSocket.getaddress): raise SocketError instead of
- Resolv::ResolvError for errors.
- (TCPSocket#initialize, UDPSocket#bind, UDPSocket#connect)
- (SOCKSSocket#initialize): use IPSocket.getaddress instead of
- Resolv.getaddress.
- (UDPSocket#send): recognize 3 arguments form. try all addresses on
- 4 arguments form.
-
-Sun Feb 1 18:17:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/net/http.rb: merged coding style changes from HEAD.
-
-Sun Feb 1 16:15:00 2004 Gavin Sinclair <gsinclair@soyabean.com.au>
-
- * lib/test/unit.rb: rearranged documentation for RDoc's sake.
- * lib/matrix.rb: improved documentation.
- * lib/net/http.rb: slight documentation formatting improvement.
-
-Sun Feb 1 05:30:06 2004 Tanaka Akira <akr@m17n.org>
-
- * lib/open-uri.rb (URI::Generic#find_proxy): warn HTTP_PROXY.
- raise an errror on non-http proxy URI.
- (OpenURI::Buffer#<<): make a tempfile binmode. [ruby-talk:90793]
-
-Sat Jan 31 09:20:32 2004 NAKAMURA, Hiroshi <nakahiro@sairon.co.jp>
-
- * sample/openssl/gen_csr.rb: wrong usage string.
-
-Sat Jan 31 01:00:32 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/wsdlDriver.rb, lib/wsdl/soap/operation.rb: add support of
- "parts" attribute of soap:body element in WSDL.
-
- * lib/wsdl/xmlSchema/schema.rb: friendly warning message for
- simpleType element which is not supported for now.
-
- * lib/soap/mapping/factory.rb: deleted unused methods.
-
- * lib/soap/mapping/rubytypeFactory.rb: do no ignore case while xsi:type
- string <-> Ruby class name matching.
-
- * test/wsdl/soap/{soapbodyparts.wsdl,test_soapbodyparts.wsdl}: new
- files.
-
-Thu Jan 29 23:56:00 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * util.c (mblen): fix overrun. [ruby-dev:22672]
-
-Thu Jan 29 22:41:53 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb: Allow 'link:' in Tidylinks.
- THis means you can write "see f1[link:files/f1_rb.html]".
-
-Thu Jan 29 15:33:23 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_x509hame.c (ossl_x509name_initialize): change
- second argument. it expected to be a Hash not an Integer.
-
- * ext/openssl/ossl_x509name.c (ossl_x509name_add_entry): add new
- function for OpenSSL::X509::Name#add_entry.
-
- * ext/openssl/ossl_x509name.c (ossl_x509name_to_a): append ASN.1
- tag number to each element of return value.
-
- * ext/openssl/ossl_x509name.c (Init_ossl_x509name): add constants
- OpenSSL::X509::Name::DEFAULT_OBJECT_TYPE and OBJECT_TYPE_TEMPLATE.
-
- * ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name#initialize):
- second argument takes OBJECT_TYPE_TEMPLATE by default.
-
- * sample/openssl/gen_csr.rb: use OpenSSL::X509::Name.parse.
-
-Wed Jan 28 04:29:41 2004 Eric Schwartz <emschwar@fc.hp.com>
-
- * lib/cgi/session.rb: use LOCK_SH to read, and a few other
- improvements. [ruby-core:02328]
-
-Tue Jan 27 11:09:29 2004 FUKUMOTO Atsushi <fukumoto@nospam.imasy.or.jp>
-
- * ext/socket/socket.c (s_recvfrom): sending length should be an
- invariant while retrying on EAGAIN. [ruby-talk:89962]
-
-Tue Jan 27 10:35:18 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/win32ole/win32ole.c (set_argv): fix condition.
-
-Tue Jan 27 02:26:31 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/httputils.rb (WEBrick:HTTPUtils::parse_header):
- refine regex for header-name.
-
-Tue Jan 27 00:30:11 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * win32/Makefile.sub: rollback.
-
-Mon Jan 26 22:53:04 2004 Dave Thomas <dave@pragprog.com>
-
- * io.c: Remove documentation references to $defout.
-
-Mon Jan 26 15:11:47 2004 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * sample/exyacc.rb: escape '}' to avoid warning.
-
-Mon Jan 26 14:41:46 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/delegate.rb (Delegator::initialize): preserve
- singleton_method_added method [ruby-dev:22685]
-
- * lib/delegate.rb (Delegator::initialize): use Kernel::raise
- instead of mere raise. [ruby-dev:22681]
-
-Mon Jan 26 12:47:17 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tcltklib/tcltklib.c: define CONST84 when TCL_MAJOR_VERSION == 7
-
-Mon Jan 26 11:35:23 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/extmk.rb: Makefiles should depend on also rbconfig.rb.
- (ruby-bugs:PR#1256)
-
- * ext/win32ole/win32ole.c (set_argv): set real arguments to
- WIN32OLE::ARGV. [ruby-list:39073]
-
-Thu Jan 22 22:54:53 2004 Shugo Maeda <shugo@ruby-lang.org>
-
- * lib/net/imap.rb (BEG_REGEXP): allow 8-bit characters in quoted
- strings for Novell GroupWise Internet Agent.
- * lib/net/imap.rb (DATA_REGEXP): ditto.
-
-Thu Jan 22 16:21:33 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (string_content): reset lexical states at the beginning of
- string contents. [ruby-list:39061]
-
-Wed Jan 21 21:55:51 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/drb/drb.rb: remove O_NONBLOCK, thanks \ay
- * lib/drb/extserv.rb: typo
-
-Wed Jan 21 17:57:56 2004 Shugo Maeda <shugo@ruby-lang.org>
-
- * lib/net/imap.rb (envelope): allow NIL.
- * lib/net/imap.rb (body): ditto.
- * lib/net/imap.rb (number): ditto.
- * lib/net/imap.rb (ensure_nz_number): show a detailed error
- message.
-
-Wed Jan 21 16:44:20 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/mkmf.rb (merge_libs): squeeze successive same libraries.
- [ruby-dev:22652]
-
-Wed Jan 21 16:01:37 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/digest/rmd160/extconf.rb: have_library appends found library.
-
-Wed Jan 21 11:36:00 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * parse.y (block_append): update nd_end for "real" head node.
- [ruby-list:39058]
-
-Tue Jan 20 14:48:13 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/extconf.rb: should check <openssl/conf_api.h> instead
- of OPENSSL_VERSION_NUMBER. [ruby-list:39056]
-
-Tue Jan 20 14:43:17 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/base64.rb: Add RDoc
-
-Tue Jan 20 14:25:51 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/abbrev.rb: Add RDoc
-
-Tue Jan 20 13:22:39 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb: Document aliases at
- top-most level.
-
- * lib/English.rb: Document English.rb.
-
-Tue Jan 20 02:49:22 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/extconf.rb: add check for OpenSSL version.
- [ruby-list:39054]
-
-Tue Jan 20 02:38:13 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * marshal.c (w_class): should not dump singleton class.
- [ruby-dev:22631]
-
-Tue Jan 20 01:31:36 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * io.c (lineno): typo fix(FIX2INT -> INT2FIX).
-
-Mon Jan 19 21:53:38 2004 akira yamada <akira@ruby-lang.org>
-
- * io.c, re.c, string.c, time.c: fixed up positions of RDocs.
-
-Mon Jan 19 07:09:20 2004 Tadayoshi Funaba <tadf@dotrb.org>
-
- * lib/date.rb: zone was wrong when it was behind UTC.
- Thanks Mark J. Reed.
-
- * lib/date/format.rb: %z is now always replaced by four digits
- with a leading plus or minus sign.
-
- * sample/cal.rb: added a class, anyway.
-
-Sun Jan 18 20:47:35 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * ruby.c: use translate_char() on Cygwin.
-
-Sun Jan 18 02:33:26 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * defines.h (_WIN32): undef _WIN32 on Cygwin before defining DOSISH.
-
-Sun Jan 18 00:23:55 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * marshal.c (class2path): check anonymous class/module before
- checking referable, and allow singleton classes.
-
-Fri Jan 16 14:33:35 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * marshal.c (class2path): get class path and check referable.
- [ruby-dev:22588]
-
-Fri Jan 16 09:52:23 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (proc_eq): Proc with empty body may not be equal.
- [ruby-dev:22590]
-
-Thu Jan 15 13:03:10 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * io.c (argf_read): do not append EOF. (ruby-bugs-ja:PR#585)
-
- * io.c (rb_io_fwrite): ad-hockery hack to get rid of HP-UX stdio
- weird behavior. [ruby-dev:22424]
-
-Wed Jan 14 13:31:06 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/iconv/extconf.rb: wrapper iconv.rb is dependent on platform.
-
-Tue Jan 13 18:54:28 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/logger.rb(Logger#msg2str): no special treatment for the object
- which responds to :to_str. commited at 2004-01-11T21:46:27 by
- gsinclair.
-
- * lib/logger.rb(LogDevice#initialize): remove type checking if the
- given object is a String. Kernel.open handles it correctly.
- commited at 2004-01-11T21:46:27 by gsinclair.
-
- * test/logger/test_logger.rb: follow above change (ArgumentError ->
- TypeError.) follow above commit.
-
-Tue Jan 13 14:27:13 2004 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-
- * lib/test/unit/ui/testrunnerutilities.rb (TestRunnerUtilities):
- moved run method which allows output level. [ruby-dev:22554]
-
-Tue Jan 13 04:29:52 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_driver.rb (RiDriver::report_method_stuff):
- Show fully-qualified class names in class list.
-
-Tue Jan 13 01:04:37 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_paths.rb (RI::Paths): First attempt at
- incorporating DESTDIR in the rdoc installation.
-
-Mon Jan 12 23:27:19 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (primary): fix position after FCALL. [ruby-dev:22574]
-
-Mon Jan 12 12:07:22 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods):
- Someone changed the "// in eval.c" comments to "/*...*/" style,
- so the parsing of the source file name broke.
-
- * object.c: Remove spurious space in TrueClass documentation.
-
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Fix
- bad regexp: if the code before a documented method contained
- a comment that wasn't terminated by whitespace, that comment
- and all intervening code was included in the following
- method's documentation.
-
- * lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter::break_to_newline):
- HTML formats need explicit line breaks.
-
-Mon Jan 12 11:46:30 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * configure.in (LIBPATHFLAG, RPATHFLAG): enclose paths with single
- quotes. [ruby-dev:22564]
-
- * lib/mkmf.rb (libpathflag): do not enclose with quotes always.
-
- * {bcc32,win32,wince}/Makefile.sub (LIBPATHFLAG): quoted.
-
-Mon Jan 12 02:24:07 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter): Add HTML
- generation support to ri (Elliot Hughes)
-
-Mon Jan 12 02:24:07 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter): Add HTML
- generation support to ri (Elliot Hughes)
-
-Sun Jan 11 02:07:47 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_options.rb (RI::Options::OptionList::OptionList):
- Also accept command line options via the 'RI' environment variable.
-
-Sun Jan 11 02:07:47 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_options.rb (RI::Options::OptionList::OptionList):
- Also accept command line options via the 'RI' environment variable.
-
-Sat Jan 10 21:27:41 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (eval): need to add message delimiter. [ruby-dev:22561]
-
-Sat Jan 10 01:54:50 2004 Eric Sunshine <sunshine@sunshineco.com>
-
- * defines.h (__NeXT__): Ensure that all standard S_IRUSR, S_IWGRP,
- S_IRWXO, etc. macros are defined since future code might require
- them (even though present code only requires a subset).
-
- * defines.h (__NeXT__): Bug fix: WORDS_BIGENDIAN was not being set
- correctly on Rhapsody when -arch compiler flag was used (via
- configure's --enable-fat-binary option).
-
-Fri Jan 9 10:05:14 2004 Siena. <siena@faculty.chiba-u.jp>
-
- * lib/mkmf.rb (libpathflag): use single quotes. [ruby-dev:22440]
-
-Thu Jan 8 23:49:21 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * configure.in (RDOCTARGET): new macro. if you want to install
- rdoc documentation, you need to run configure with
- --enable-install-doc.
-
-Thu Jan 8 21:29:43 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_pkey.c (ossl_pkey_to_der): removed; it returns
- public key only.
-
- * ext/openssl/ossl_pkey_dh.c (ossl_dh_to_der): new function for
- OpenSSL::PKey::DH#to_der.
-
- * ext/openssl/ossl_pkey_dsa.c (ossl_dsa_to_der): new function for
- OpenSSL::PKey::DSA#to_der.
-
- * ext/openssl/ossl_pkey_rsa.c (ossl_rsa_to_der): new function for
- OpenSSL::PKey::RSA#to_der.
-
-Thu Jan 8 16:51:04 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/wsdl/datetime/test_datetime.rb: fixed a stupid testcase which
- dumps "E" at month-end.
-
-Thu Jan 8 11:20:01 2004 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * eval.c, object.c, process.c, re.c: don't use C++ style comments.
-
-Thu Jan 8 04:36:21 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/cgi.rb (WEBrick::CGI#initialize): should create
- @config[:Logger] if it was not given.
-
- * sample/webrick/*: new files.
-
- * MANIFEST: add sample/webrick/*
-
-Wed Jan 7 13:00:18 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/ri/ri_driver.rb: Fix problem where ri was
- being too eager to find matches of ambiguous method
- names (such as "ri Thread.join" would return both
- Thread.join and ThreadsWait.join)
-
-Wed Jan 7 12:35:41 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/debug.rb: revert command parse regexps. [ruby-list:39014] by
- Shirai,Kaoru.
-
-Wed Jan 7 08:21:04 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parserfactory.rb: Check for shebang
- line in files that would otherwise be treated as
- plain text.
-
-Tue Jan 6 22:13:34 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_mod_modfunc): should break if m has no super class.
- [ruby-dev:22498]
-
-Tue Jan 6 21:55:02 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * io.c (fptr_finalize): should save errno just after failure.
- [ruby-dev:22492]
-
-Tue Jan 6 14:53:14 2004 Dave Thomas <dave@pragprog.com>
-
- * bin/ri: split out the display side, making it pluggable. Added
- new ri_driver and ri_display files in lib/rdoc/ri.
-
-Tue Jan 6 06:37:53 2004 Dave Thomas <dave@pragprog.com>
-
- * bin/rdoc: Add --ri-system switch
-
- * lib/.document: Update with list of files that seem to have
- documentation
-
- * lib/test/unit.rb: Reorder comment to make it RDoc friendly.
-
- * Makefile.in: add install-nodoc target, and make it
- generate RDoc on default install.
-
- * lib/rdoc/ri/ri_options.rb (RI::Options::parse): Add
- --doc-dir option to ri.
-
-Tue Jan 6 00:04:40 2004 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):
- fix parsing if there are braces in a method parameter list
-
-Fri Jan 2 14:54:11 2004 Dave Thomas <dave@pragprog.com>
-
- * bin/ri: Add new --classes option, and arrange for
- help messages to be paged too.
-
- * bin/rdoc: Add statistics.
-
- * process.c: (MG) Added Process documentation
-
- * lib/rdoc/ri/ri_formatter.rb (RI::AttributeFormatter::wrap):
- Fix problem with labels not displaying in RI labeled
- lists using BS and ANSI modes.
-
-Fri Jan 2 01:50:13 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (argf_eof): ARGF.eof? should not have any side effect.
- [ruby-dev:22469]
-
-Wed Dec 31 17:25:17 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (argf_each_byte): should return self. [ruby-dev:22465]
-
-Wed Dec 31 11:20:34 2003 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): Make
- file referenced in "// in sss.c" relative to current file.
-
-Wed Dec 31 11:17:37 2003 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/generators/html_generator.rb: Fix problem when
- a public method was aliased, but the alias is then
- made private, and hence doesn't appear in RDoc output.
-
-Wed Dec 31 01:33:05 2003 Dave Thomas <dave@pragprog.com>
-
- * array.c, error.c, eval.c, io.c, prec.c, range.c, re.c,
- string.c, time.c: Add RDoc for Kernel functions, and tidy.
-
-Tue Dec 30 19:39:14 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (rb_f_readline): should raise EOFError at the end of
- files. [ruby-dev:22458]
-
- * io.c (argf_read): should concatenate input files when length
- argument is nil. [ruby-dev:22450]
+ * 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]
- * io.c (argf_read): should update supplied string buffer (2nd
- argument) even when IO#read is called multiple times.
+Thu Apr 25 23:45:02 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * io.c: should initialize lineno by zero. [ruby-dev:22460]
+ * 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.
-Tue Dec 30 12:30:30 2003 Dave Thomas <dave@pragprog.com>
+ * lib/rinda/ring.rb (Rinda::RingServer#make_socket): ditto.
- * lib/rdoc/code_objects.rb (RDoc::Context::find_symbol): If a
- class and a method have the same name, finding Xxx.abc was trying
- to find 'abc' in method 'Xxx', not class 'Xxx'.
+Thu Apr 25 23:39:42 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
+ * 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.
-Tue Dec 30 08:32:32 2003 Dave Thomas <dave@pragprog.com>
+Thu Apr 25 23:16:28 2013 Tanaka Akira <akr@fsij.org>
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method):
- Handle undoing nesting of yield parameters correctly for:
+ * ext/curses/extconf.rb: Implement
+ --with-curses-version={function,variable} configure option for
+ cross-compiling.
- def each_entry(&b) Dir.foreach(@path) {|f| yield P.new(f) } end
+Thu Apr 25 18:15:46 2013 Tanaka Akira <akr@fsij.org>
+ * ext/socket/extconf.rb: Don't use WIDE getaddrinfo by default.
-Tue Dec 30 08:32:32 2003 Dave Thomas <dave@pragprog.com>
+Thu Apr 25 17:56:39 2013 Tanaka Akira <akr@fsij.org>
- * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method):
- Handle undoing nesting of yield parameters correctly for:
+ * ext/socket/extconf.rb: Remove obsolete options: ---with-ipv6-lib and
+ --with-ipv6-libdir.
- def each_entry(&block) Dir.foreach(@path) {|f| yield Pathname.new(f) } end
+Thu Apr 25 17:43:49 2013 Tanaka Akira <akr@fsij.org>
-Mon Dec 29 12:51:02 2003 Dave Thomas <dave@pragprog.com>
+ * 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.
- * eval.c: Add RDoc for Kernel global functions.
+Thu Apr 25 16:11:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Dec 29 11:00:16 2003 Dave Thomas <dave@pragprog.com>
+ * 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]
- * array.c: Tidy up RDoc loose ends.
+ * io.c (io_set_encoding_by_bom): reset extenal encoding if no BOM
+ found. [ruby-core:54569]
-Mon Dec 29 05:05:51 2003 Dave Thomas <dave@pragprog.com>
+Thu Apr 25 14:35:01 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * struct.c, random: Add RDoc comments
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): allow Fixnum and Bignum.
+ [ruby-core:53986] [Feature #8217]
-Mon Dec 29 02:20:54 2003 Dave Thomas <dave@pragprog.com>
+Thu Apr 25 14:26:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * eval.c: Add RDoc for class Proc, Method, UnboundMethod
+ * 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]
-Mon Dec 29 00:41:44 2003 Dave Thomas <dave@pragprog.com>
+ * 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.
- * math.c: Add RDoc comments
+Wed Apr 25 14:26:00 2013 Charlie Somerville <charlie@charliesomerville.com>
-Sun Dec 28 20:19:11 2003 Tanaka Akira <akr@m17n.org>
+ * benchmark/bm_hash_shift.rb: add benchmark for Hash#shift
- * ext/stringio/stringio.c (strio_sysread): StringIO.new.sysread didn't
- raise EOFError.
+ * hash.c (rb_hash_shift): use st_shift if hash is not being iterated to
+ delete element without iterating the whole hash.
- * ext/zlib/zlib.c (gzreader_gets): don't increment lineno when
- gzfile_read_all returns "".
+ * hash.c (shift_i): remove function
-Sun Dec 28 15:25:08 2003 Dave Thomas <dave@pragprog.com>
+ * include/ruby/st.h (st_shift): add st_shift function
- * class.c,object.c,parse.y,sprintf.c,variable.c: Document classes
- Object, Module, etc...
+ * st.c (st_shift): ditto
-Sun Dec 28 11:55:29 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ [Bug #8312] [ruby-core:54524] Patch by funny-falcon
- * test/csv/test_csv.rb: generate bom.csv and mac.csv files on the fly.
- [ruby-talk:88852]
+Thu Apr 25 12:03:38 2013 Tanaka Akira <akr@fsij.org>
- * test/csv/{bom.csv,mac.csv}: removed.
+ * ext/socket/extconf.rb: Extract C programs as toplevel constants.
-Sun Dec 28 08:56:51 2003 Dave Thomas <dave@pragprog.com>
+Thu Apr 25 02:23:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c: Thead[Group] RDoc (thanks to MG)
+ * configure.in (RUBY_RM_RECURSIVE): this hack is needed by only
+ autoconf 2.69 or earlier on darwin.
-Sun Dec 28 03:50:05 2003 Dave Thomas <dave@pragprog.com>
+Thu Apr 25 01:22:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_override_comment):
- Escape method names used in regexp
+ * lib/tracer.rb (get_line): simply read by File.readlines.
-Sun Dec 28 01:46:02 2003 Dave Thomas <dave@pragprog.com>
+ * lib/debug.rb (script_lines): get source lines from SCRIPT_LINES__ or
+ read from the file.
- * lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::display_flow_item):
- Add support for rules in 'ri' output.
+ * lib/debug.rb (display_list): use script_lines instead of recursion.
+ [Bug #8318]
-Sun Dec 28 01:35:35 2003 Dave Thomas <dave@pragprog.com>
+ * lib/debug.rb (line_at): use script_lines same as display_list.
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body):
- Sometimes the Ruby source aliases two otherwise
- unrelated methods (for example Kernel#object_id and
- Kernel#hash are both the same C function). Provide a
- facility to allow the methods to be documented
- separately.
+ * 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]
-Sun Dec 28 01:05:31 2003 Dave Thomas <dave@pragprog.com>
+Wed Apr 24 21:51:13 2013 Tanaka Akira <akr@fsij.org>
- * marshal.c, signal.c: RDoc collemts added by Elliott Hughes
+ * configure.in: Check mblen().
+ mblen() is optional in uClibc.
-Sun Dec 28 00:48:47 2003 Dave Thomas <dave@pragprog.com>
+ * eval_intern.h (CharNext): Don't use mblen() is not available.
- * lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_class_comment):
- Some source files use lower case class or module names
- when naming the Init_XXX function in C.
+Wed Apr 24 15:55:06 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Sat Dec 27 23:41:46 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * io.c (rb_fd_fix_cloexec): use rb_update_max_fd().
- * configure.in: fix "test: too many arguments" error.
+Wed Apr 24 14:08:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Dec 27 15:32:19 2003 Dave Thomas <dave@wireless_3.local.thomases.com>
+ * numeric.c: Fix wiki link on Float imprecision in overview, patched
+ by Makoto Kishimoto [Bug #8304] [ruby-dev:47280]
- * time.c: RDoc comments added
+Wed Apr 24 14:03:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Dec 27 15:07:57 2003 Dave Thomas <dave@pragprog.com>
+ * parse.y (parser_yylex): disallow $- without following identifier
+ character. [ruby-talk:406969]
- * object.c: Add RDoc comments for Symbol class.
+ * parse.y (is_special_global_name): mere $- is not a valid global
+ variable name.
-Sat Dec 27 14:42:30 2003 Dave Thomas <dave@pragprog.com>
+Wed Apr 24 13:54:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * numeric.c: Add RDoc comments.
+ * string.c: Document String#setbyte return value by @gjmurakami-10gen
+ [Fixes GH-294]
-Sat Dec 27 00:44:00 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Apr 24 13:45:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * io.c (next_argv): warn always for stdin on inplace edit mode.
+ * class.c: Example of Object#methods by @windwiny [Fixes GH-293]
+ * ruby.c: Document return values of Kernel #sub, #gsub, and #chop
- * io.c (read_all): need to check string value.
+Wed Apr 24 12:54:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * io.c (argf_read): allow ARGF.read(nil). [ruby-dev:22433]
+ * ext/socket/lib/socket.rb: Doc typos by @vipulnsward [Fixes GH-292]
-Fri Dec 26 23:02:09 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
- * io.c (rb_f_backquote): need not to check nil result.
- [ruby-core:02078]
+Wed Apr 24 12:54:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * io.c (rb_io_getline): should return nil when read_all gives
- empty string, even when nil rs is specified. [ruby-core:02077]
+ * ext/socket/lib/socket.rb: Doc typos by @vipulnsward [Fixes GH-292]
-Fri Dec 26 18:50:59 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Apr 24 12:27:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * configure.in: check if getcontext and setcontext are available.
+ * array.c: Fix documentation for Array#index and #replace aliases
+ Based on a patch by @phiggins [Fixes GH-282]
- * eval.c: use presence of getcontext/setcontext.
+Tue Apr 23 21:14:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Dec 26 16:40:53 2003 Tanaka Akira <akr@m17n.org>
+ * 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]
- * lib/pathname.rb (PathnameTest#test_plus): add 2 assertions.
+Tue Apr 23 20:10:02 2013 Tanaka Akira <akr@fsij.org>
-Fri Dec 26 09:26:58 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * missing/isnan.c (isnan): Don't define if isnan() macro is defined.
+ This fixes a compilation failure on uClibc based Gentoo system.
- * pack.c (pack_pack): add sign check for 'i', and 'l'.
- [ruby-dev:22427]
+Tue Apr 23 17:40:40 2013 Martin Duerst <duerst@it.aoyama.ac.jp>
- * bignum.c (rb_quad_pack): add range check for 'quad int'.
+ * lib/rexml/document.rb, lib/rexml/element.rb,
+ lib/rexml/formatters/pretty.rb: remove opinionated
+ language in documentation. [Bug #8309],
+ reported by Charles Beckmann
-Thu Dec 25 22:39:59 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Apr 23 14:04:44 2013 Shugo Maeda <shugo@ruby-lang.org>
- * string.c (rb_str_update): don't return any value.
+ * lib/net/imap.rb (getacl_response): parse the mailbox of an ACL
+ response correctly. [ruby-core:54365] [Bug #8281]
-Thu Dec 25 15:30:17 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Apr 23 11:58:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * string.c (rb_str_update): call rb_str_modify().
+ * 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]
-Thu Dec 25 05:08:09 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Apr 23 10:26:50 2013 Akinori MUSHA <knu@iDaemons.org>
- * eval.c (search_required): search actual file name once when no
- extension specified.
+ * test/ruby/test_module.rb
+ (TestModule#test_const_get_invalid_name)
+ (test_const_defined_invalid_name): Fix expected values.
-Thu Dec 25 04:00:44 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Apr 23 09:51:26 2013 Akinori MUSHA <knu@iDaemons.org>
- * stable version 1.8.1 released.
+ * string.c (rb_str_inspect): NUL should not be represented as "\0"
+ when octal digits may follow. [ruby-core:54458] [Bug #8290]
-Thu Dec 25 00:17:53 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Apr 22 22:54:00 2013 Charlie Somerville <charlie@charliesomerville.com>
- * configure.in: check for nanosleep, -lrt if required.
- [ruby-core:02059]
+ * insns.def (opt_mod): Use % operator if both operands are positive for
+ a significant performance improvement. Thanks to @samsaffron.
- * eval.c (thread_timer): use select(2) if nanosleep(2) is not
- available.
+Mon Apr 22 17:09:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c: check __stub_getcontext for glibc on some platforms.
- [ruby-list:38984]
+ * marshal.c (r_object0): copy all instance variables not only generic
+ ivars, before calling post proc. [ruby-core:51163] [Bug #7627]
-Wed Dec 24 23:48:04 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Mon Apr 22 10:25:21 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/soap/test_basetype.rb, test/soap/marshal/test_marshal.rb
- test/xsd/test_xsd.rb: use "(-1.0 / (1.0 / 0.0))" instead of "-0.0"
- to express -0.0. [ruby-talk:88786]
+ * 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.
-Wed Dec 24 23:29:30 2003 Tanaka Akira <akr@m17n.org>
+Sun Apr 21 23:19:00 2013 Charlie Somerville <charlie@charliesomerville.com>
- * lib/tsort.rb (test_orphaned_break): removed.
+ * configure.in: Revert using sigsetjmp by default due to performance
+ problems on some systems (eg. older Linux)
-Wed Dec 24 20:53:06 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Apr 21 21:35:00 2013 Charlie Somerville <charlie@charliesomerville.com>
- * ext/tk/sample/tkmulticolumnlist.rb: new sample
+ * 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]
- * ext/tk/sample/tkmultilistframe.rb: bug fix
+ * configure.in: Manually check for presence of sigsetjmp. It is not a
+ function on some systems, so AC_CHECK_FUNCS cannot be used.
-Wed Dec 24 20:37:37 2003 Eric Sunshine <sunshine@sunshineco.com>
+Sun Apr 21 08:00:55 2013 Tanaka Akira <akr@fsij.org>
- * configure.in (LDSHARED): Fixed typographical error in assignment of
- LDSHARED for Rhapsody which caused linking of extension modules to
- fail.
+ * 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.
-Wed Dec 24 17:51:18 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Apr 21 00:15:36 2013 Tanaka Akira <akr@fsij.org>
- * file.c (rb_thread_flock): enable thread support again.
+ * lib/tempfile.rb (Tempfile.create): Close when the block exits.
-Wed Dec 24 16:46:08 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Apr 20 23:38:14 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (catch_timer): do not call rb_thread_schedule() inside to
- avoid pthread_mutex_lock() deadlock. interrupts to system calls
- are detected by TRAP_END via EINTR error.
+ * lib/webrick/httpauth/htpasswd.rb: Use Tempfile.create to avoid
+ unintentional unlink() by the finalizer.
+ lib/webrick/httpauth/htdigest.rb: Ditto.
- * eval.c (thread_timer): do not post signal unless it is
- absolutely necessary.
+Sat Apr 20 22:47:48 2013 Tanaka Akira <akr@fsij.org>
- * rubysig.h (TRAP_END): add CHECK_INTS to switch thread.
+ * lib/tempfile.rb (Tempfile.create): New method.
+ The method name is proposed by Shugo Maeda. [ruby-dev:47220]
+ [ruby-core:41478] [Feature #5707]
- * regex.c (re_compile_pattern): check if nextp is smaller than
- pend. [ruby-dev:22372]
+Sat Apr 20 14:22:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (umethod_bind): remove method overridden check.
- [ruby-dev:22366]
+ * marshal.c (w_object): dump no ivars to the original by marshal_dump.
+ [ruby-core:54334] [Bug #8276]
-Wed Dec 24 16:13:05 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * marshal.c (r_object0): copy all ivars of marshal_dump data to the
+ result object instead. [ruby-core:51163] [Bug #7627]
- * ext/openssl/ossl_ssl.c (ossl_ssl_read): should check for error
- status by SSL_get_error().
+Sat Apr 20 02:33:27 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/openssl/ossl_ssl.c (ossl_ssl_write): ditto.
+ * string.c (str_scrub): add ruby method String#scrub which verify and
+ fix invalid byte sequence. [ruby-dev:45975] [Feature #6752]
-Wed Dec 24 14:23:27 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * string.c (str_compat_and_valid): check given string is compatible
+ and valid with given encoding.
- * ext/stringio/stringio.c (strio_read): clear the buffer argument
- when returning nil. [ruby-dev:22363]
+ * 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.
- * test/ruby/ut_eof.rb (TestEOF::test_eof_0, TestEOF::test_eof_1):
- add buffer argument tests.
+Fri Apr 19 21:55:40 2013 Kouhei Sutou <kou@cozmixng.org>
-Wed Dec 24 14:07:55 2003 Nobuyoshi Nakada <nobu@ruby-lang.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]
- * lib/test/unit/assertions.rb: Modules are allowed to rescue.
+Fri Apr 19 17:54:57 2013 Shugo Maeda <shugo@ruby-lang.org>
- * lib/test/unit/autorunner.rb: show output_level in order.
+ * lib/net/imap.rb (body_type_msg): should accept
+ message/delivery-status with extra data.
+ [ruby-core:53741] [Bug #8167]
- * lib/test/unit/collector/dir.rb: get rid of successive same
- directories in load path.
+ * test/net/imap/test_imap_response_parser.rb: related test.
- * test/testunit/test_assertions.rb (test_assert_nothing_raised,
- test_assert_raise): test for modules.
+Fri Apr 19 13:03:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 24 13:43:34 2003 Shugo Maeda <shugo@ruby-lang.org>
+ * marshal.c (w_object): do not dump encoding which is dumped with
+ marshal_dump data. [ruby-core:54334] [Bug #8276]
- * lib/net/imap.rb (authenticate): remove "\n" from base64 encoded
- strings.
+Fri Apr 19 11:36:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 24 11:26:41 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (stack_protector): control use of -fstack-protector.
- * test/fileutils/test_fileutils.rb: should not create any
- files or directories in current directory. [ruby-talk:88724]
+ * configure.in (debugflags): let -fstack-protector precede and disable
+ debugflags, because they can't work together on SmartOS. [Bug #8268]
-Wed Dec 24 10:29:53 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Apr 19 07:43:52 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/stringio/stringio.c (strio_read): never return nil at
- unlimited read. [ruby-dev:22334]
+ * test/openssl/test_cipher.rb: Correct a typo
+ by jgls <joerg@joergleis.com>
+ https://github.com/ruby/ruby/pull/291 fix GH-291
- * ext/stringio/stringio.c (strio_read): support second
- argument. [ruby-dev:22350]
+Thu Apr 18 16:58:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 24 09:38:49 2003 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]
- * parse.y (arg): should return 0 after error. [ruby-dev:22360]
+Thu Apr 18 16:20:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 24 00:56:54 2003 Yukihiro Matsumoto <matz@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]
- * io.c (read_all): do not return nil at the end of file.
- [ruby-dev:22334]
+Thu Apr 18 16:20:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (argf_read): do not depend on nil at eof behavior of
- IO#read().
+ * pack.c (pack_unpack): increase buffer size to fix buffer overflow,
+ and fix garbage just after unpacking without missing paddings.
+ [Bug #8286]
- * eval.c (rb_thread_join): dup exception before re-raising it.
+Thu Apr 18 13:35:54 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * io.c (rb_io_eof): call clearerr() to prevent side effect. this
- patch is supplied by Masahiro Sakai <sakai@tom.sfc.keio.ac.jp>.
- [ruby-dev:22234]
+ * pack.c (pack_unpack): output characters even if the input doesn't
+ have paddings. [Bug #8286]
- * pack.c (OFF16): get offset for big endian machines.
+Thu Apr 18 08:20:48 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * pack.c (pack_pack): use OFF16 instead of OFF16B.
- [ruby-dev:22344]
+ * common.mk (clean-ext): remove timestamps.
- * pack.c (pack_unpack): ditto.
+Wed Apr 17 22:07:50 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 23 22:47:14 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/socket/rubysocket.h (SOCKLEN_MAX): Expression simplified.
- * io.c (rb_io_check_readable): set FMODE_RBUF always, even if
- NEED_IO_SEEK_BETWEEN_RW is not defined. [ruby-dev:22340]
+Wed Apr 17 20:09:19 2013 Aman Gupta <ruby@tmm1.net>
- * io.c (rb_io_check_writable): clear FMODE_RBUF before writing
- something.
+ * compile.c (iseq_add_mark_object): Use new rb_iseq_add_mark_object().
-Tue Dec 23 22:25:00 2003 Gavin Sinclair <gsinclair@soyabean.com.au>
+ * insns.def (setinlinecache): Ditto.
- * lib/optparse.rb: incomplete RDoc documentation added in place of
- existing RD comments. Tabs converted to spaces.
+ * iseq.c (rb_iseq_add_mark_object): New function to allocate
+ iseq->mark_ary on demand. [Bug #8142]
-Tue Dec 23 19:44:47 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * iseq.h (rb_iseq_add_mark_object): Ditto.
- * test/soap/test_streamhandler.rb (test_basic_auth): removed.
- soap4r + basic_auth is not officially supported in ruby/1.8.1 even
- though soap4r + basic_auth + http-access2 should run fine.
+ * iseq.c (prepare_iseq_build): Avoid allocating mark_ary until needed.
-Tue Dec 23 19:42:59 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * iseq.c (rb_iseq_build_for_ruby2cext): Ditto.
- * io.c (rb_io_ungetc): raise an exception at unread stream to
- avoid unspecified behavior. [ruby-dev:22330]
+Wed Apr 17 20:00:18 2013 Tanaka Akira <akr@fsij.org>
- * test/ruby/test_system.rb (test_syntax): glob relatively from
- __FILE__.
+ * ext/socket/rubysocket.h (SOCKLEN_MAX): Defined.
-Tue Dec 23 18:09:40 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/socket/raddrinfo.c (ext/socket/raddrinfo.c): Reject too long
+ Linux abstract socket name.
- * pack.c (pack_pack): remove unnecessary negative value check.
- [ruby-dev:22329]
+Wed Apr 17 19:45:27 2013 Aman Gupta <tmm1@ruby-lang.org>
-Tue Dec 23 17:26:55 2003 KONISHI Hiromasa <konishih@fd6.so-net.ne.jp>
+ * iseq.c (iseq_location_setup): re-use existing string when iseq has
+ the same path and absolute_path. [Bug #8149]
- * bcc32/Makefile.sub (config.h): bcc has finite(). [ruby-list:38940]
+Wed Apr 17 11:38:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Dec 23 16:08:16 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):
+ UNASSIGNED is not a valid message.
- * lib/rexml/encodings/US-ASCII.rb: typo. [ruby-talk:88650]
+Wed Apr 17 10:58:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_system.rb: num of asserts depended on running dir.
+ * thread.c (sleep_timeval): get rid of overflow on Windows where
+ timeval.tv_sec is not time_t but mere long.
- * test/xsd/test_noencoding.rb: rexml + without iconv/uconv cannot
- handle euc-jp. install iconv, uconv or xmlscan.
+Tue Apr 16 23:07:12 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 23 14:13:51 2003 akira yamada <akira@ruby-lang.org>
+ * ext/socket/unixsocket.c (unix_send_io): Suppress a warning by clang.
+ (unix_recv_io): Ditto.
- * lib/uri/generic.rb (URI::Generic::check_userinfo,
- URI::Generic::check_user, URI::Generic::check_password): tests
- conflicts/depends with other components closely.
+Tue Apr 16 12:27:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/uri/test_generic.rb (TestGeneric::test_set_component):
- added tets.
+ * ext/sdbm/init.c: Fix comment indentation, by windwiny [Fixes GH-277]
-Tue Dec 23 11:08:34 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Tue Apr 16 12:25:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/xsd/test_noencoding.rb: rescue Errno::EINVAL and do not test.
- "euc-jp" might not be in supported encoding name list.
- [ruby-talk:88650]
+ * 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/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
-Tue Dec 23 06:10:31 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Tue Apr 16 11:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/webrick/cgi.rb (CGI): add support for mod_ruby.
+ * ext/openssl/*: Document synonymous methods, by windwiny [GH-277]
- * lib/webrick/cgi.rb (CGI::Socket): add check for existence of
- OpenSSL module in all HTTPS related methods.
+Mon Apr 15 22:21:42 2013 Tanaka Akira <akr@fsij.org>
- * lib/webrick/cgi.rb (CGI::Socket#cipher): should create similar
- value to OpenSSL::SSLSocket#cipher.
+ * ext/fiddle/depend: New file.
- * lib/webrick/httpresponse.rb (HTTPResponse#setup_header): should
- set "connection: close" if @keep_alive is false.
+Mon Apr 15 22:01:02 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/webrick/https.rb (HTTPrequest#meta_vars): add supprt for
- SSL_PROTOCOL, SSL_CIPHER_USEKEYSIZE and SSL_CIPHER_ALGKEYSIZE.
+ * misc/ruby-electric.el (ruby-electric-insert): Check
+ ruby-electric-is-last-command-char-expandable-punct-p here.
-Mon Dec 22 23:00:05 2003 akira yamada <akira@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 "{ } }".
- * lib/uri/generic.rb (URI::Generic::check_opaque): fixed typo.
+Mon Apr 15 12:54:42 2013 Martin Bosslet <Martin.Bosslet@gmail.com>
-Mon Dec 22 21:59:24 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/openssl/ossl_ssl.c: Correct shutdown behavior w.r.t GC.
- * ext/iconv/iconv.c (map_charset): always ensure code is a String.
+ * test/openssl/test_ssl.rb: Add tests to verify correct behavior.
-Mon Dec 22 21:15:29 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ [Bug #8240] Patch provided by Shugo Maeda. Thanks!
- * class.c (rb_mod_init_copy): always copy singleton class.
- [ruby-dev:22325]
+Mon Apr 15 10:23:39 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Mon Dec 22 20:44:36 2003 akira yamada <akira@ruby-lang.org>
+ * ext/coverage/depend: fix id.h place as r40283.
- * lib/uri/generic.rb (URI::Generic#route_from): accepts urls which
- has no host-part.
+ * ext/coverage/extconf.rb: add topdir and topsrcdir to VPATH.
- * test/uri/test_generic.rb (TestGeneric::test_route): added a test.
+Sun Apr 14 19:46:14 2013 Tanaka Akira <akr@fsij.org>
-Mon Dec 22 20:38:44 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/-test-/debug/depend: New file.
- * lib/cgi.rb: reduce eval.
+ * ext/-test-/exception/depend: Ditto.
- * lib/cgi.rb (CGI::QueryExtension::read_multipart): alias path to
- local_path. [ruby-list:38883]
+ * ext/-test-/printf/depend: Ditto.
-Mon Dec 22 20:09:31 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ext/-test-/string/depend: Ditto.
- * test/soap/test_property.rb: remove duplicated test method.
+ * ext/coverage/depend: Ditto.
-Mon Dec 22 18:22:04 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/io/console/depend: Ditto.
- * bcc32/Makefile.sub, win32/Makefile.sub (config.h): remove
- HAVE_ISINF definition to follow previous commits of missing.h
- and win32/win32.h.
+ * ext/io/nonblock/depend: Ditto.
-Mon Dec 22 17:23:42 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/io/wait/depend: Ditto.
- * configure.in (ac_cv_func_setitimer): moved from defines.h
+ * ext/openssl/depend: Ditto.
- * defines.h, rubysig.h, signal.c: removed macro handling which
- should be done in configure.
+ * ext/pathname/depend: Ditto.
- * configure.in (intrinsics.h): check if present.
+ * ext/psych/depend: Ditto.
- * ruby.h: include intrinsics.h if available.
+ * ext/zlib/depend: Ditto.
- * bignum.c, marshal.c: include ieeefp.h if available.
+Sun Apr 14 02:46:50 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * missing.h (isinf): define as a macro if finite() and isnan()
- are available. [ruby-core:02032]
+ * lib/mkmf.rb (MakeMakefile#create_makefile): remove {$(VPATH)} other
+ than nmake.
-Mon Dec 22 17:07:31 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * ext/ripper/depend: use VPATH expecting removed by above.
- * configure.in (mingw): set isnan, finite and isinf to yes.
+Sat Apr 13 23:06:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Dec 22 13:40:19 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * lib/mkmf.rb (timestamp_file): gather timestamp files in one
+ directory from each extension directories.
- * lib/soap/property.rb: passing block by reference.
+Sat Apr 13 21:09:02 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Mon Dec 22 00:32:43 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/mkmf.rb (MakeMakefile#create_makefile): output new macro
+ disthdrdir to specify the path of id.h, parse.h and etc.
- * eval.c (rb_with_disable_interrupt): use ENABLE_INTS instead of
- ALLOW_INTS which may switch context. [ruby-dev:22319]
+ * ext/ripper/depend: use above macro.
- * ext/syck/emitter.c (syck_emitter_write): str bigger than
- e->bufsize causes buffer overflow. [ruby-dev:22307]
+Sat Apr 13 20:28:08 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Dec 21 17:29:00 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * Merge Onigmo 5.13.4 f22cf2e566712cace60d17f84d63119d7c5764ee.
+ [bug] fix problem with optimization of \z (Issue #16) [Bug #8210]
- * class.c (rb_check_inheritable): new function. [ruby-dev:22316]
+Sat Apr 13 18:56:15 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * intern.h: add prototype.
+ * ext/ripper/depend: parse.h and id.h may be created on topdir.
- * eval.c (superclass): use rb_check_inheritable().
+Sat Apr 13 12:08:16 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
- * object.c (rb_class_initialize): check argument validity.
+ * lib/matrix.rb: Add Vector#cross_product, patch by Luis Ezcurdia
+ [fix GH-276] [rubyspec:81eec89a124]
-Sun Dec 21 16:25:10 2003 Tanaka Akira <akr@m17n.org>
+Sat Apr 13 10:20:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/pathname.rb (Pathname#+): re-implemented to resolve ".." in
- beginning of the argument.
- (Pathname#join): concatenate from the last argument.
- (Pathname#parent): just use Pathname#+.
+ * struct.c (rb_struct_define_without_accessor, rb_struct_define),
+ (rb_struct_s_def): hide member names array.
-Sun Dec 21 00:12:37 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * struct.c (anonymous_struct, new_struct, setup_struct): split
+ make_struct() for each purpose.
- * ext/tk/lib/tk.rb: add new methods (TkScrollbar#assign, assign_list)
+Sat Apr 13 09:34:31 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/sample/tkmultilistframe.rb: use TkScrollbar#assign method
+ * 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.
-Sat Dec 20 21:59:03 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * ext/-test-/old_thread_select/depend: Update dependencies.
- * lib/webrick/httprequest.rb (HTTPRequest#meta_vars): refine regexp.
+ * ext/-test-/wait_for_single_fd/depend: Ditto.
- * lib/webrick/cgi.rb (CGI#start): NPH scripts return status line
- instead of Status: header field.
+ * ext/bigdecimal/depend: Ditto.
- * lib/webrick/cgi.rb (CGI::Socket): refine some coditions.
+ * ext/curses/depend: Ditto.
-Sat Dec 20 16:07:14 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/digest/bubblebabble/depend: Ditto.
- * lib/optparse.rb (OptionParser::Completion::complete): wrong
- Regexp for word boundary. pointed out by Gavin Sinclair.
+ * ext/digest/depend: Ditto.
- * lib/optparse.rb (OptionParser::make_switch): [no-] prefix was
- missing.
+ * ext/digest/md5/depend: Ditto.
-Sat Dec 20 11:40:10 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/digest/rmd160/depend: Ditto.
- * lib/yaml.rb (YAML::YAML): adjust Marshal version.
+ * ext/digest/sha1/depend: Ditto.
-Sat Dec 20 03:56:02 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/digest/sha2/depend: Ditto.
- * eval.c (rb_with_disable_interrupt): prohibit thread context
- switch during proc execution. [ruby-dev:21899]
+ * ext/dl/callback/depend: Ditto.
-Sat Dec 20 02:41:02 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * ext/dl/depend: Ditto.
- * lib/webrick/cgi.rb: add file. (yet another CGI library)
+ * ext/etc/depend: Ditto.
- * MANIFEST: add lib/webrick/cgi.rb.
+ * ext/nkf/depend: Ditto.
-Sat Dec 20 02:18:31 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/objspace/depend: Ditto.
- * misc/ruby-mode.el (ruby-calculate-indent): proper indentation
- inside of parentheses. [ruby-dev:22308]
+ * ext/pty/depend: Ditto.
-Fri Dec 19 21:24:22 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * ext/readline/depend: Ditto.
- * lib/webrick/httprequest.rb (HTTPRequest#meta_vars): should not set
- HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH.
+ * ext/ripper/depend: Ditto.
- * lib/webrick/https.rb (HTTPRequest#parse): should check presence
- of cert() method to detect SSLSocket.
+ * ext/sdbm/depend: Ditto.
-Fri Dec 19 22:56:46 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ext/socket/depend: Ditto.
- * lib/soap/property.rb (SOAP::Property#load): new method for loading
- property value into existing property tree.
+ * ext/stringio/depend: Ditto.
- * test/soap/test_property.rb: add test.
+ * ext/strscan/depend: Ditto.
-Fri Dec 19 19:21:49 2003 akira yamada <akira@ruby-lang.org>
+ * ext/syslog/depend: Ditto.
- * lib/runit/cui/testrunner.rb (RUNIT::CUI::TestRunner::run):
- should use Test::Unit::UI::{PROGRESS_ONLY,VERBOSE}.
+ * ext/-test-/num2int/depend: Removed.
-Fri Dec 19 17:36:49 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/dbm/depend: Ditto.
- * ext/tk/sample/tkmultilistbox.rb: bug fix
+ * ext/fcntl/depend: Ditto.
- * ext/tk/sample/tkmultilistframe.rb: new sample script
+ * ext/gdbm/depend: Ditto.
-Fri Dec 19 03:44:27 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * ext/racc/cparse/depend: Ditto.
- * lib/webrick/httputils.rb (parse_form_data): should return an
- empty Hash if the body is empty.
+Sat Apr 13 00:15:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Dec 18 21:47:35 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/etc/etc.c (Init_etc): move Passwd and Group under Etc namespace
+ as primary names.
- * lib/mkmf.rb (create_makefile): should remove deffile if it's
- made by miniruby. based on nobu's patch.
+Fri Apr 12 21:06:55 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 18 21:44:21 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * common.mk: pack.o depends on internal.h.
- * eval.c (stack_extend): ignore inline optimization on VC7.
+Fri Apr 12 20:59:24 2013 Tanaka Akira <akr@fsij.org>
- * win32/Makefile.sub (OS, RT): can override.
+ * bignum.c (ones): Use __builtin_popcountl if available.
- * win32/Makefile.sub (LDFLAGS): ditto. shouldn't use pdb:none
- option. based on Tietew's patch [ruby-dev:22289]
+ * internal.h (GCC_VERSION_SINCE): Macro moved from pack.c.
-Thu Dec 18 16:38:44 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * pack.c: Include internal.h for GCC_VERSION_SINCE.
- * dir.c (fnmatch): unlike find_dirsep(), rb_path_next() never
- return NULL.
+Fri Apr 12 18:29:42 2013 Tanaka Akira <akr@fsij.org>
-Thu Dec 18 15:27:59 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * 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]
- * lib/ipaddr.rb (IPSocket::getaddress): merge usa's patch.
- [ruby-dev:21678]
+Fri Apr 12 15:21:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Dec 17 15:15:30 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg): non-symbol key is not
+ a keyword argument, keep it as a positional argument.
- * lib/cgi.rb (CGI::QueryExtension::Value::[]): should work like
- String#[] if more than one arguments are specified.
+Fri Apr 12 11:58:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/delegate.rb: avoid using common instance name as "@obj".
+ * 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
- * lib/cgi.rb (CGI::QueryExtension::Value): Value is no longer
- subclass of String, but DelegateClass(String).
+Thu Apr 11 23:41:46 2013 Tanaka Akira <akr@fsij.org>
- * ext/curses/extconf.rb: restore function check for init_color.
- [ruby-list:38905]
+ * common.mk: Add dependencies for include/ruby.h
- * Makefile.in: need to specify $(MAINLIBS) for the miniruby
- generation rule.
+ * tool/update-deps: Use "make -p all miniruby ruby golf" to extract
+ dependencies in makefiles.
- * configure.in: better FreeBSD -lc_r support.
+Thu Apr 11 23:21:17 2013 Tanaka Akira <akr@fsij.org>
-Wed Dec 17 00:16:14 2003 Minero Aoki <aamine@loveruby.net>
+ * tool/update-deps: Use "make -p all golf" to extract dependencies in
+ makefiles.
- * ext/strscan/strscan.c: new method
- StringScanner#beginning_of_line? (alias #bol?)
+Thu Apr 11 21:02:19 2013 Tanaka Akira <akr@fsij.org>
- * ext/strscan/strscan.c: new method StringScanner#concat and #<<.
+ * common.mk: Dependency updated.
- * ext/strscan/strscan.c: StringScanner#new(str) does not duplicate
- nor freeze STR (allow destructive modification).
+ * tool/update-deps: Rewritten.
- * test/strscan/test_stringscanner.rb: test new methods above.
+Thu Apr 11 19:59:48 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/strscan/test_stringscanner.rb: test destructive string
- modification.
+ * 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)
-Tue Dec 16 21:20:47 2003 Tanaka Akira <akr@m17n.org>
+Thu Apr 11 16:10:01 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/pp.rb: don't use local variable `pp'.
+ * ext/fiddle/closure.c (USE_FFI_CLOSURE_ALLOC): define 0 on
+ Mac OS X and Linux [Bug #3371]
- * lib/prettyprint.rb: ditto.
+Thu Apr 11 13:19:22 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Dec 16 13:20:43 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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]
- * ext/tk/lib/tk.rb: condition bug of if statement on
- {pack,grid}_propagate methods
+Thu Apr 11 11:11:38 2013 Akinori MUSHA <knu@iDaemons.org>
-Tue Dec 16 03:17:29 2003 why the lucky stiff <why@ruby-lang.org>
+ * dir.c: Fix a typo.
- * lib/yaml/rubytypes.rb: comments in strings. [ruby-talk:88012]
+Thu Apr 11 10:39:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/yaml/test_yaml.rb: add test.
+ * ext/fiddle/closure.c (USE_FFI_CLOSURE_ALLOC): add missing case:
+ RUBY_LIBFFI_MODVERSION is not defined (usually on Windows).
-Tue Dec 16 01:14:44 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Apr 11 09:27:04 2013 Konstantin Haase <me@rkh.im>
- * eval.c (catch_timer): check rb_thread_crtical in main native
- thread.
+ * dir.c (file_s_fnmatch): Document File::FNM_EXTGLOB flag.
- * eval.c (thread_timer): just sends signals periodically, to
- prevent main native thread from receiving them in critical
- section. [ruby-core:01959]
+Thu Apr 11 09:17:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Dec 15 13:32:22 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * README: Fix typo by Benjamin Winkler [Fixes GH-281]
- * dir.c (check_dirname): check string safety and remove extraneous
- trailing directory separators. [ruby-dev:22279]
+Thu Apr 11 06:15:51 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * file.c: renamed and externalized rb_path_next,
- rb_path_skip_prefix, rb_path_last_separator, rb_path_end.
+ * regint.h: fix typo: _M_AMD86 -> _M_AMD64.
- * intern.h: prototypes for rb_path_next, rb_path_skip_prefix,
- rb_path_last_separator, rb_path_end.
+ * siphash.c: ditto.
-Mon Dec 15 09:27:46 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * st.c: ditto.
- * ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): first argument
- of rb_protect should take an argument of VALUE.
+Thu Apr 11 06:09:57 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sun Dec 14 18:46:48 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * ext/fiddle/extconf.rb: define RUBY_LIBFFI_MODVERSION macro.
- * ext/socket/socket.c (Init_socket): IPv6 is not supported although
- AF_INET6 is defined on MinGW.
+ * ext/fiddle/closure.c (USE_FFI_CLOSURE_ALLOC): define 0 or 1
+ with platform and libffi's version. [Bug #3371]
- * lib/ipaddr.rb (AF_INET6): workaround in the environment which does
- not support IPv6.
+Thu Apr 11 05:30:43 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sat Dec 13 18:55:16 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * lib/mkmf.rb (pkg_config): Add optional argument "option".
+ If it is given, it returns the result of
+ `pkg-config --<option> <pkgname>`.
- * ext/iconv/charset_alias.rb: preserve original order.
+Thu Apr 11 03:33:05 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/iconv/extconf.rb: remove wrapper file at clean.
+ * 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
-Sat Dec 13 18:09:42 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Apr 10 17:39:13 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (thread_timer): use timer by sub-thread and nanosleep.
- [ruby-talk:87519]
+ * ext/bigdecimal/bigdecimal.c (VpCtoV): Initialize a local variable
+ even when overflow.
- * gc.c (Init_stack): no stack adjustment for THREAD_SAFE.
+Wed Apr 10 12:32:37 2013 Tanaka Akira <akr@fsij.org>
-Sat Dec 13 17:17:59 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * bignum.c (rb_ll2big): Don't overflow on signed integer negation.
- * eval.c (proc_alloc): cache the created object at first time.
- [ruby-talk:61288], [ruby-dev:22240]
+ * 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.
-Sat Dec 13 09:01:23 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Apr 10 06:32:12 2013 Tanaka Akira <akr@fsij.org>
- * configure.in: check ucontext.h.
+ * internal.h (MUL_OVERFLOW_INT_P): New macro.
- * eval.c: use getcontext/setcontext() instead of setjmp/longjmp()
- on ia64 or with native thread enabled. [ruby-core:01932]
+ * sprintf.c (GETNUM): Don't overflow on signed integer multiplication.
-Sat Dec 13 03:09:14 2003 why the lucky stiff <why@ruby-lang.org>
+Tue Apr 9 20:38:20 2013 Tanaka Akira <akr@fsij.org>
- * lib/yaml/rubytypes.rb: anonymous struct fix. [ruby-core:01946]
+ * internal.h (MUL_OVERFLOW_SIGNED_INTEGER_P): New macro.
+ (MUL_OVERFLOW_FIXNUM_P): Ditto.
+ (MUL_OVERFLOW_LONG_P): Ditto.
- * test/yaml/test_yaml.rb: add test.
+ * array.c (rb_ary_product): Don't overflow on signed integer
+ multiplication.
-Fri Dec 12 22:36:44 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * numeric.c (fix_mul): Ditto.
+ (int_pow): Ditto.
- * lib/csv.rb: add Cell#to_str and Cell#to_s for /.../ =~ aCell,
- "#{aCell}" and so on.
+ * rational.c (f_imul): Ditto.
- * test/csv/test_csv.rb: add tests.
+ * insns.def (opt_mult): Ditto.
-Fri Dec 12 19:33:06 2003 Minero Aoki <aamine@loveruby.net>
+ * thread.c (sleep_timeval): Don't overflow on signed integer addition.
- * lib/fileutils.rb (mkdir): remove trailing `/' from pathes.
+ * bignum.c (rb_int2big): Don't overflow on signed integer negation.
+ (rb_big2ulong): Ditto.
+ (rb_big2long): Ditto.
+ (rb_big2ull): Ditto.
+ (rb_big2ll): Ditto.
- * lib/fileutils.rb (rmdir): ditto. [ruby-dev:22238]
+Tue Apr 9 19:45:44 2013 Tanaka Akira <akr@fsij.org>
- * lib/fileutils.rb (rmdir_r): ditto.
+ * 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.
- * lib/fileutils.rb (fu_copy_dir): check if it is a directory after
- mkdir(2).
+Tue Apr 9 15:26:12 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Dec 12 06:06:09 2003 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]
- * eval.c (proc_invoke): fix class name in warning message for
- define_method. [ruby-dev:22235]
+Tue Apr 9 10:02:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Dec 11 21:24:43 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * lib/mkmf.rb (timestamp_file): gather timestamp files in one
+ directory from each extension directories, with considering
+ target_prefix.
- * ext/openssl/ossl_pkcs12.[ch]: new files. add OpenSSL::PKCS12.
+Tue Apr 9 04:57:59 JST 2013 Charles Oliver Nutter <headius@headius.com>
- * ext/openssl/ossl.[ch]: ditto.
+ * 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.
- * ext/openssl/MANIFEST: add ossl_pkcs12.[ch].
+Tue Apr 9 02:44:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Dec 11 20:54:28 2003 Minero Aoki <aamine@loveruby.net>
+ * ext/socket/extconf.rb: $defs needs -D or -U. nothing is added
+ otherwize.
- * lib/fileutils.rb (mkdir_p): remove trailing `/' befere mkdir(2).
- mkdir("nonexistdir/") does not work on NetBSD/Alpha 1.6.1.
+ * ext/socket/extconf.rb: check struct in_addr6, which is defined in
+ VC6 instead of in6_addr.
- * lib/fileutils.rb (fu_list): call to_str for all arguments.
+ * ext/socket/option.c (optname_to_sym): fix macro name.
-Thu Dec 11 20:07:01 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * ext/socket/constants.c (rsock_cmsg_type_arg): fix macro name.
- * lib/ftools.rb (makedirs): sync with fileutils.
+Mon Apr 8 23:57:21 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Dec 11 19:53:03 2003 Minero Aoki <aamine@loveruby.net>
+ * object.c (id_for_setter): extract common code from const, class
+ variable, instance variable setters.
- * lib/fileutils.rb (mkdir_p): catch all SystemCallErrors.
- (mkdir("C:\") causes EACCESS on Windows 2000/NTFS)
+Mon Apr 8 23:55:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Dec 11 19:08:02 2003 Minero Aoki <aamine@loveruby.net>
+ * ext/depend (ENCOBJS, TRANSOBJS): use explicit path to ruby.h for
+ nmake.
- * lib/fileutils.rb (mkdir_p): check if it is a directory after
- mkdir(2) instead of before mkdir(2), to avoid race condition.
- [ruby-talk:87730]
- Refer: mkinstalldirs sh script, GNU mkdir(1) (coreutils 5.0)
+ * 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.
-Thu Dec 11 18:49:30 2003 Minero Aoki <aamine@loveruby.net>
+Mon Apr 8 20:30:37 2013 Yuki Yugui Sonoda <yugui@google.com>
- * lib/fileutils.rb: def m( arg ) -> def m(arg).
+ * ext/depend (ENCOBJS, TRANSOBJS): Add missing dependencies.
-Thu Dec 11 11:39:43 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Apr 8 17:19:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in (ieeefp.h), numeric.c: needed for finite() on
- Solaris. [ruby-core:01921]
+ * ext/win32ole/win32ole.c (fole_missing): should check actual argument
+ count before accessing.
- * file.c (rb_stat_inspect): adjust format specifier.
+Mon Apr 8 16:03:55 2013 Yuki Yugui Sonoda <yugui@google.com>
- * parse.c (arg_prepend): nodetype() is for debug use.
+ 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.
- * ruby.h (ISASCII, etc): cast to int to get rid of warning.
+Mon Apr 8 12:05:02 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ruby.h (alloca.h): include even in GCC. [ruby-core:01925]
+ * 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.
- * ext/bigdecimal/bigdecimal.c (GetVpValue): adjust format
- specifier.
+ * object.c (rb_mod_const_set): ditto.
- * ext/bigdecimal/bigdecimal.c (BigDecimal_prec, BigDecimal_coerce,
- BigDecimal_divmod): use rb_assoc_new() to suppress memory usage.
-
- * ext/bigdecimal/bigdecimal.c (BigDecimal_split): ditto.
+ * object.c (rb_mod_cvar_set): ditto.
- * ext/dl/sym.c (rb_dlsym_guardcall): guard itself should be
- volatile.
+Sun Apr 7 13:56:16 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * ext/iconv/iconv.c (iconv_convert): ensure actual parameter with
- format specifier.
+ * test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
+ RUBY_PLATFORM should escape as Regexp,
+ because RUBY_PLATFORM may contain '.'.
- * ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): do not
- define unless used.
+Sun Apr 7 10:44:01 2013 Tanaka Akira <akr@fsij.org>
- * ext/pty/pty.c (getDevice): get rid of warning.
+ * include/ruby/defines.h: Simplify the logic to include sys/select.h.
+ This fixes a compilation error on Haiku (gcc2 and gcc4).
- * ext/socket/socket.c (port_str, sock_s_getaddrinfo,
- sock_s_getnameinfo): FIX2INT() now returns long.
+ * configure.in: Use shared linker as $(CC) for Haiku.
+ This fixes a build error on Haiku (gcc2).
- * ext/socket/socket.c (init_inetsock_internal): uninitialized
- variable.
+Sun Apr 7 10:41:30 2013 Tanaka Akira <akr@fsij.org>
- * ext/syck/rubyext.c (syck_parser_assign_io): add prototype.
+ * lib/resolv.rb (MDNSOneShot#sender): Delete an unused variable.
- * ext/syck/rubyext.c (rb_syck_mktime, yaml_org_handler): use
- ISDIGIT() instead of isdigit() to avoid warnings and for
- platforms which don't support non-ascii charater.
+Sun Apr 7 03:24:36 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Wed Dec 10 19:28:56 2003 Nobuyoshi Nakada <nobu@ruby-lang.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/stringio/stringio.c (strio_read): set EOF flag at short read.
- [ruby-dev:22223], [ruby-dev:22224]
+ * addr2line.c (imax): inline is defined by configure.
-Wed Dec 10 18:07:25 2003 Minero Aoki <aamine@loveruby.net>
+Sun Apr 7 01:40:39 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/erb.rb: new method ERB#filename(=). [ruby-dev:22208]
+ * misc/ruby-electric.el (ruby-electric-hash): New electric
+ function that expands a hash sign inside a string or regexp to
+ "#{}".
-Wed Dec 10 17:54:51 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * misc/ruby-electric.el (ruby-electric-curlies): Do not insert
+ spaces inside when the curly brace is a delimiter of %r, %w,
+ etc.
- * ext/stringio/stringio.c (strio_read): do not set EOF flag when
- requested length is zero. [ruby-dev:22214]
+ * misc/ruby-electric.el (ruby-electric-curlies): Insert another
+ space before a closing curly brace when
+ ruby-electric-newline-before-closing-bracket is nil.
-Wed Dec 10 17:17:18 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Apr 7 01:01:26 2013 Tanaka Akira <akr@fsij.org>
- * io.c (read_all): should return given string even if data read is
- empty. [ruby-dev:22207]
+ * strftime.c (rb_strftime_with_timespec): Test yday range.
+ [ruby-core:44088] [Bug #6247] reported by Ruby Submit.
-Wed Dec 10 17:16:06 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Apr 6 23:46:54 2013 Naohisa Goto <ngotogenome@gmail.com>
- * ext/stringio/stringio.c (strio_read): adjust behavior at reading
- beyond EOF to IO. [ruby-dev:22205]
+ * configure.in (AC_CHECK_HEADERS): atomic.h for Solaris atomic_ops.
- * test/ruby/ut_eof.rb (TestEOF::Seek): test behaviors at reading
- beyond EOF.
+ * ruby_atomic.h: Skip using Solaris10 atomic_ops on Solaris 9 or
+ earlier if atomic.h is not available. [ruby-dev:47229] [Bug #8228]
- * test/ruby/test_file.rb, test/stringio/test_stringio.rb: include
- TestEOF::Seek test case.
+Sat Apr 6 23:40:40 2013 Tanaka Akira <akr@fsij.org>
-Wed Dec 10 15:01:19 2003 Shugo Maeda <shugo@ruby-lang.org>
+ * lib/resolv.rb: Support LOC resources.
+ [ruby-core:23361] [Feature #1436] by JB Smith.
- * test/monitor/test_monitor.rb (test_cond): use Queue#deq
- instead of sleep.
+Sat Apr 6 23:38:09 2013 Naohisa Goto <ngotogenome@gmail.com>
-Wed Dec 10 14:45:39 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * 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]
- * ext/pty/pty.c (HAVE_SYS_IOCTL_H): need to include <sys/ioctl.h>
- for TIOCSCTTY on *BSD. based on gotoyuzo's patch.
- (ruby-bugs:PR#1211)
+Sat Apr 6 23:31:38 2013 Tanaka Akira <akr@fsij.org>
- * ext/pty/pty.c (establishShell): should close descriptors if fork
- failed.
+ * lib/resolv.rb: Add one-shot multicast DNS support.
+ [ruby-core:53387] [Feature #8089] by Eric Hodel.
-Wed Dec 10 12:53:05 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat Apr 6 22:12:01 2013 Tanaka Akira <akr@fsij.org>
- * win32/win32.h: define execv() using do_aspawn().
+ * lib/resolv.rb (Resolv::DNS.fetch_resource): New method to obtain
+ full result.
+ [ruby-dev:43587] [Feature #4788] proposed by Makoto Kishimoto.
- * process.c (proc_exec_v): remove #ifdef's which stopped needing.
+Sat Apr 6 20:17:51 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 9 23:32:23 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * ext/tk/lib/tk.rb, ext/tk/lib/tkcanvas.rb, ext/tk/lib/tkdialog.rb,
- ext/tk/lib/tkentry.rb, ext/tk/lib/tkscrollbox.rb, ext/tk/lib/tktext.rb,
- ext/tk/sample/tkalignbox.rb, ext/tk/sample/tkcombobox.rb,
- ext/tk/sample/tkmultilistbox.rb, ext/tk/sample/tkoptdb.rb, ext/tk/sample/tktextframe.rb,
- ext/tk/sample/demos-en/dialog1.rb, ext/tk/sample/demos-en/dialog2.rb,
- ext/tk/sample/demos-jp/dialog1.rb, ext/tk/sample/demos-jp/dialog2.rb:
- overrided instance methods, which are private methods on the super
- class, are changed to 'private'
+ * ext/socket/rubysocket.h: Follow the above change.
-Tue Dec 9 19:53:02 2003 akira yamada <akira@ruby-lang.org>
+Sat Apr 6 19:24:59 2013 Tanaka Akira <akr@fsij.org>
- * lib/uri/generic.rb (URI::Generic#route_from0): make case insensitive
- for host-part.
+ * 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.
- * test/uri/test_generic.rb (test_route): added tests for the above
+ * ext/socket/rubysocket.h (rsock_sys_fail_sockaddr): Follow the above
change.
-Tue Dec 9 14:10:48 2003 Tanaka Akira <akr@m17n.org>
-
- * io.c (rb_io_check_readable): don't call io_seek if EOF flag is set,
- to avoid clearing EOF flag.
- (rb_io_check_writable): ditto.
-
-Tue Dec 9 02:53:55 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/sample/tkalignbox.rb: new sample script
-
-Tue Dec 9 00:45:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
-
- * lib/test/unit/assertions.rb: renamed #assert_raises to #assert_raise
- and made the former call the latter. [ruby-core:01890]
-
- * test/testunit/test_assertions.rb: ditto.
-
-Tue Dec 9 00:07:35 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/rpc/standaloneServer.rb: add 'shutdown' and 'status'
- methods as delegates to WEBrick.
-
- * test/soap/calc/{test_calc.rb,test_calc2.rb},
- test/soap/helloworld/test_helloworld.rb,
- test/wsdl/datetime/test_datetime.rb, test/wsdl/raa/test_raa.rb:
- follow the change.
-
-Mon Dec 8 22:48:03 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/test/unit/autorunner.rb: remove dependency to a particular
- runner. [ruby-core:01901], [ruby-list:38869]
-
- * lib/test/unit/ui/testrunnerutilities.rb: moved output level
- constants from Console.
-
- * lib/test/unit/ui/console/testrunner.rb: ditto.
-
- * lib/test/unit/ui/{fox,gtk,gtk2,tk}/testrunner.rb (initialize):
- accept output_level.
-
-Mon Dec 8 15:03:30 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/syck/syck.c (syck_io_str_read): get rid of buffer overflow.
-
-Mon Dec 8 13:02:11 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/uri/common.rb: new method URI.regexp. [ruby-dev:22121]
-
- * test/uri/test_common.rb: add test for URI.regexp.
-
-Mon Dec 8 12:44:14 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * pack.c: define swap16 and swap32 only if they are not
- defined. OpenBSD defines these macros. [ruby-dev:22181]
-
-Sun Dec 7 20:54:17 2003 Tanaka Akira <akr@m17n.org>
-
- * ext/iconv/iconv.c (map_charset): make case sensitive.
- ext/iconv/charset_alias.rb (charset_alias): don't ignore
- config.charset's information. sort aliases.
-
-Sat Dec 6 22:58:03 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_ssl.c (ossl_start_ssl): new function to wrap
- SSL_connect and SSL_accept; if SSL_connect (or SSL_accept) returned
- but not finished the handshake process, we should retry it.
-
- * ext/openssl/ossl_ssl.c (ossl_ssl_connect): call ossl_start_ssl.
-
- * ext/openssl/ossl_ssl.c (ossl_ssl_accept): ditto.
-
- * ext/openssl/ossl_ssl.c (ossl_ssl_read): allow signal traps.
-
-Sat Dec 6 21:45:10 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * io.c (flush_before_seek): flush before seek on any platform.
-
- * configure.in: ditto.
-
-Sat Dec 6 17:23:00 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/soap.rb(SOAP::Env.getenv): allow upcase environment variable
- as well as downcase one.
-
- * lib/soap/netHttpClient.rb(SOAP::NetHttpClient#proxy=): check URI.
-
-Fri Dec 5 23:22:30 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_raises,
- Test::Unit::Assertions::assert_nothing_raised): use the last
- argument as message unless class object.
-
- * test/testunit/test_assertions.rb (test_assert_raises): test for
- multiple exception list. [ruby-core:01891]
-
- * test/testunit/test_assertions.rb (test_assert_nothing_raised): test
- for non-exception classes.
-
-Fri Dec 5 22:23:04 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/netHttpClient.rb: proxy support did not work. fixed.
-
- * lib/soap/property.rb: add class methods for loading property from
- stream/file/propertyfile. propertyfile is a file which is located at
- somedir in $:.
-
- * lib/soap/soap.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb,
- lib/wsdl/importer.rb: load property from propertyfile 'soap/property'
- e.g. /usr/local/lib/ruby/site_ruby/1.8/soap/property.
-
- * test/soap/test_property.rb, test/soap/test_streamhandler.rb: new file.
-
-Fri Dec 5 17:26:23 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_exec_end_proc): maintain tmp_end_procs.
- [ruby-dev:22154]
-
-Fri Dec 5 13:36:59 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_exec_end_proc): should not clear end_procs and
- ephemeral_end_procs before execution. [ruby-dev:22144]
-
- * eval.c (rb_obj_extend): call Module#extended hook after
- extended_object. [ruby-list:38866]
-
- * object.c (Init_Object): Module#extended defined.
-
-Fri Dec 5 13:17:30 2003 Tanaka Akira <akr@m17n.org>
-
- * test/ruby/test_pipe.rb: use IO.pipe instead of IO.popen.
-
-Fri Dec 5 11:54:45 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/stringio/stringio.c (strio_read): follow IO#read.
-
- * test/ruby/ut_eof.rb, test/ruby/test_file.rb, test/ruby/test_pipe.rb,
- test/stringio/test_stringio.rb: add EOF test.
-
-Fri Dec 5 02:49:35 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_raises):
- allow multiple exception list. [ruby-core:01884]
-
- * lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_nothing_raised):
- check whether arguments are subclass of Exception.
-
-Thu Dec 4 23:54:00 2003 Rick Ohnemus <rick.ohnemus@systemware.com>
-
- * dln.c (aix_loaderror): should not use member named 'errno' which
- might be a macro (e.g. on AIX).
-
-Thu Dec 4 23:32:26 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (read_all): do not depend on lseek position.
- [ruby-dev:22026]
-
-Thu Dec 4 22:37:26 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_eval): preserve $! value when retry happens in the
- rescue clause. [ruby-talk:86697]
-
-Thu Dec 4 21:50:07 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/drb/drb.rb (DRb::DRbMessage::send_request, send_reply):
- should rescue errors and re-raise DRbConnError on write too.
- [ruby-dev:22132]
-
-Thu Dec 4 16:41:17 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (exc_list): allow expanding list. [ruby-dev:22134]
-
-Thu Dec 4 14:09:24 2003 Minero Aoki <aamine@loveruby.net>
-
- * test/fileutils/test_fileutils.rb (test_cp): test if the error is
- kind of SystemCallError. It is needless details that which errno
- is set on each systems.
-
-Thu Dec 4 13:24:13 2003 Shugo Maeda <shugo@ruby-lang.org>
-
- * lib/monitor.rb: use Object#__send__ instead of Object#send.
-
-Thu Dec 4 13:17:45 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/streamHandler.rb: support latest released version of
- http-access2.
-
-Thu Dec 4 13:04:44 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/soap.rb: add SOAP::Env module for environment repository
- such as HTTP_PROXY.
-
- * lib/soap/property.rb: property implementation.
-
- * lib/soap/streamHandler.rb, lib/soap/wsdlDriver.rb,
- lib/soap/rpc/driver.rb: use soap/property.rb.
-
- * lib/wsdl/importer.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb:
- use SOAP::Env.
-
- * lib/soap/netHttpClient.rb: add basic_auth, ssl_config, and cookie
- management interface, but ignored for now.
-
- * lib/xsd/charset.rb: add XSD::Charset.encoding= interface to set
- wiredump charset explicitly. it was fixed to 'utf-8' when iconv or
- uconv module was found.
-
-Thu Dec 4 10:43:58 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/dl/sym.c (rb_dlsym_guardcall): __declspec(noinline) is VC7
- feature.
-
-Thu Dec 4 10:27:12 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/net/http.rb: update hyperlink to the Japanese document.
-
-Thu Dec 4 09:12:43 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_asn1.c (asn1time_to_time): should check that
- the underlying value of ASN1_TIME isn't NULL. [ruby-core:01881]
-
-Thu Dec 4 08:29:43 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/server.rb (GenericServer#start): should rescue
- Exception to avoid unexpected aborting. [ruby-core:01853]
-
- * lib/webrick/server.rb (GenericServer#start_thread): should check
- that peeraddr isn't nil before printing.
-
- * lib/webrick/httpresponse.rb (HTTPResponse#start_thread): should
- rescue Exception to avoid unexpected aborting of thread.
-
-Thu Dec 4 03:48:59 2003 Tanaka Akira <akr@m17n.org>
-
- * lib/pathname.rb (Pathname#link, Pathname#symlink): obsoleted.
- (Pathname#make_link, Pathname#make_symlink): new method.
-
-Thu Dec 4 01:45:24 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (argf_read): should not terminate on empty string; wait
- until real EOF. [ruby-dev:21969]
-
- * io.c (argf_read): should adjust length to read, when length is
- specified and read spans command line argument files.
-
-Wed Dec 3 19:38:36 2003 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/drb/drb.rb: correct fcntl parameter. [ruby-dev:22120]
-
-Wed Dec 3 13:49:07 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tk.rb: 'format'==>'Kernel.format' (avoid override trouble)
-
- * ext/tk/lib/tkafter.rb: ditto.
-
- * ext/tk/lib/tkcanvas.rb: ditto.
-
- * ext/tk/lib/tkdialog.rb: ditto.
-
- * ext/tk/lib/tktext.rb: ditto.
-
-Wed Dec 3 13:28:13 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * Makefile.in (lex.c): try gperf first, and copy from the source
- directory if failed. [ruby-dev:22123]
-
- * ext/extmk.rb (MTIMES): let makefiles depend to mkmf.rb.
-
- * lib/mkmf.rb (configuration): DLDFLAGS was duplicated.
+Sat Apr 6 14:28:23 2013 Tanaka Akira <akr@fsij.org>
-Tue Dec 2 23:18:12 2003 Minero Aoki <aamine@loveruby.net>
+ * 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.
- * lib/net/http.rb: wrote the warning about HTTP_PROXY environment
- variable.
+ * 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.
-Tue Dec 2 21:31:42 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * bin/testrb: new test runner. [ruby-core:01845]
+Sat Apr 6 13:34:20 2013 Tanaka Akira <akr@fsij.org>
- * lib/test/unit/autorunner.rb (Test::Unit::AutoRunner.run,
- Test::Unit::AutoRunner#process_args): take test list to run and
- options.
+ * ext/socket/socket.c (rsock_sys_fail_sockaddr): Delete 2nd argument.
- * lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::RUNNERS,
- Test::Unit::AutoRunner#run): should not exit inside a library,
- just return the result instead.
-
- * lib/test/unit.rb: ditto.
-
- * test/runner.rb: exit with the test result.
-
-Tue Dec 2 20:18:48 2003 Eric Sunshine <sunshine@sunshineco.com>
-
- * configure.in (AC_PROG_YACC): AC_DEFINE(OLD_YACC) if Yacc is found
- instead of Bison or byacc.
-
- * parse.y: If OLD_YACC is defined, ensure that YYMAXDEPTH is at least
- 10000 (Bison's default) since some old versions of Yacc define it as
- low as 150 by default, which is too low for Ruby to parse some files,
- such as date/format.rb. Among other issues, the parse problem causes
- "make test" to fail.
-
-Tue Dec 2 20:03:20 2003 Minero Aoki <aamine@loveruby.net>
-
- * test/fileutils/test_fileutils.rb: check if Pathnames are usable
- for arguments.
-
-Tue Dec 2 04:22:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
-
- * lib/test/unit/assertions.rb: fixed #assert_no_match message.
-
- * test/testunit/test_assertions.rb: ditto.
-
-Tue Dec 2 00:43:00 2003 why the lucky stiff <why@ruby-lang.org>
-
- * ext/syck/syck.c: string buffering bug. decrementing by full
- max_size now. [ruby-core:01834]
-
-Mon Dec 1 21:33:08 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * numeric.c (num_sadded): prohibit singleton method definition for
- Numerics. fill yet another gap between Fixnum and Bignum.
-
-Mon Dec 1 17:33:47 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * pack.c (htov16): converts endian using swap16. htov32(), hton16,
- hton32 as well. [ruby-talk:85377]
-
- * pack.c (swap16): swap 2 bytes no matter how big short is on the
- platform. swap32() is also prepared.
-
- * numeric.c (rb_num2int): returns long to preserve information.
- rb_fix2int(), rb_num2uint(), rb_fix2uint() as well.
- [ruby-talk:85377]
-
- * numeric.c (rb_num2uint): should not check for value range if the
- source value is negative.
-
-Mon Dec 1 17:14:34 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * sample/optparse/opttest.rb: added.
-
-Mon Dec 1 16:10:52 2003 Dave Thomas <dave@pragprog.com>
-
- * lib/rdoc/rdoc.rb: (etc) initial merge into main tree.
-
-Mon Dec 1 14:17:49 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (fu_each_src_dest0): call #to_str to allow
- Pathname for arguments. [ruby-core:01795]
-
- * test/fileutils/test_fileutils.rb: does much strict test on
- "same" files detecting.
-
-Mon Dec 1 09:28:14 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
- (XCFLAGS): re-export $(XCFLAGS).
-
- * bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
- (ARCH_FLAG): export $(ARCH_FLAG) (perhaps empty value).
-
-Mon Dec 1 01:03:27 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * lib/mkmf.rb (TRY_LINK, link_command): added support for DLDFLAGS
- and ARCH_FLAG. [ruby-dev:22085]
-
-Sun Nov 30 20:18:07 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * configure.in: keep ARCH_FLAG separate. export ARCH_FLAG.
- [ruby-core:01819]
-
- * Makefile.in: add ARCH_FLAG to CFLAGS.
-
- * Makefile.in: add @CPPFLAGS@ to CPPFLAGS.
-
- * lib/mkmf.rb (link_command, cc_command): use ARCH_FLAG.
-
- * lib/mkmf.rb (configuration): add ARCH_FLAG to DLDFLAGS.
-
- * Makefile.in: add ARCH_FLAG to DLDFLAGS.
-
- * configure.in: should put getcwd in AC_CHECK_FUNCS, not
- AC_REPLACE_FUNCS. [ruby-core:01826]
-
-Sun Nov 30 18:22:48 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * configure.in: do not override CCDLDFLAGS, LDFLAGS, XLDFLAGS,
- DLDFLAGS and LDSHARED.
-
- * configure.in: XCFLAGS for compiling ruby itself. ARCH_FLAG is
- reflected in CFLAGS.
-
- * lib/mkmf.rb: ditto. do not import XCFLAGS from config.status.
-
-Sun Nov 30 17:37:36 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/tk.rb: bug fix [ruby-talk:86746]
-
-Sun Nov 30 13:02:00 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/encodingstyle/soapHandler.rb: refactoring - Simplifying
- Conditional Expressions.
-
- * lib/wsdl/soap/definitions.rb: refactoring - Move Method.
-
- * test/xsd/{test_noencoding.rb,noencoding.xml}: new files. test for
- encoding unspecified XML file parsing.
-
- * test/wsdl/{test_fault.rb,map,datetime}: new files. test of
- SOAPFault, dateTime and Apache's Map.
-
-Sun Nov 30 09:35:14 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * string.c (rb_str_update): get rid of SEGV at just allocated String.
- [ruby-core:01812]
-
-Fri Nov 28 23:19:34 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * gc.c (gc_mark): explicitly check mark recursion levels, instead
- of unreliable stack length.
-
-Fri Nov 28 22:49:56 2003 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
-
- * lib/rinda/rinda.rb: fix TupleSpaceProxy#read, read_all.
+ * ext/socket/rubysocket.h (rsock_sys_fail_sockaddr): Follow above
+ change.
-Fri Nov 28 21:44:40 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat Apr 6 13:13:39 2013 Tanaka Akira <akr@fsij.org>
- * test/fileutils/test_fileutils.rb (test_ln_s): should be a file, not
- a directory for FreeBSD.
+ * ext/socket/socket.c (rsock_sys_fail_path): Use rb_str_inspect only
+ for String to avoid SEGV.
-Fri Nov 28 19:37:56 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Apr 6 12:40:16 2013 Tanaka Akira <akr@fsij.org>
- * hash.c (env_has_value, env_index): must match exactly.
+ * 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_env.rb (test_has_value, test_index): condition for
- aboves.
+Sat Apr 6 11:49:35 2013 Tanaka Akira <akr@fsij.org>
-Fri Nov 28 17:59:20 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/socket/socket.c (rsock_sys_fail_path): Use rb_str_inspect if the
+ path contains a NUL.
- * test/ruby/test_env.rb: add tests for ENV.
+Sat Apr 6 11:39:19 2013 Tanaka Akira <akr@fsij.org>
-Fri Nov 28 17:47:46 2003 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * ext/socket: Improve socket exception message to show socket address.
+ [ruby-core:45617] [Feature #6583] proposed Eric Hodel.
- * lib/drb/drb.rb (DRbMessage#load): rescue Errno::* and raise
- DRbConnError.
+ * ext/socket/rubysocket.h (rsock_sys_fail_host_port): Declared.
+ (rsock_sys_fail_path): Ditto.
+ (rsock_sys_fail_sockaddr): Ditto.
-Fri Nov 28 15:41:15 2003 Tanaka Akira <akr@m17n.org>
+ * ext/socket/udpsocket.c (udp_connect): Use rsock_sys_fail_host_port.
+ (udp_bind): Ditto.
+ (udp_send): Ditto.
- * lib/pathname.rb (Pathname#realpath): obsolete the force_absolute
+ * ext/socket/init.c (rsock_init_sock): Specify a string for rb_sys_fail
argument.
+ (make_fd_nonblock): Ditto.
+ (rsock_s_accept): Ditto.
-Fri Nov 28 14:41:52 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/streamHandler.rb: drop unused http parameters.
-
- * lib/soap/encodingstyle/soapHandler.rb, lib/soap/mapping/factory.rb,
- lib/soap/mapping/mapping.rb, lib/soap/mapping/registry.rb,
- lib/wsdl/soap/complexType.rb: ApacheSOAP's map support was broken
- under WSDL dynanic client environment. fixed.
-
- * test/wsdl/raa/*: add tests.
-
- * lib/xsd/datatypes.rb: dateTime precision bug fix (at least, I hope.)
- bug of soap4r. XSDDateTimeImple.to_time passed a Float to
- Time.local/Time.gm as an usec, and NUM2LONG(rb_num2long for Float)
- causes rounding error.
-
- * test/soap/test_basetype.rb, test/xsd/test_xsd.rb: add tests.
-
-Fri Nov 28 04:15:24 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (method_arity): used wrong Proc object. [ruby-talk:86504]
-
-Fri Nov 28 00:47:29 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_f_exit), process.c (rb_f_exit_bang): treat true as
- success, false as failure. [ruby-dev:22067]
-
- * eval.c (rb_f_abort, rb_thread_switch), process.c (rb_f_system): use
- ANSI macro instead of hard coded value.
-
- * eval.c (rb_f_exit), process.c (rb_f_exit_bang): use VALUEs not but
- TYPEs.
-
-Thu Nov 27 22:05:48 2003 Akinori MUSHA <knu@iDaemons.org>
-
- * eval.c, gc.c: FreeBSD/ia64 currently does not have a way for a
- process to get the base address for the RSE backing store, so
- hardcode it for the moment.
- [submitted by: Marcel Moolenaar <marcel@FreeBSD.org>]
-
-Thu Nov 27 17:36:42 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * ext/socket/ipsocket.c (init_inetsock_internal): Use
+ rsock_sys_fail_host_port.
- * ext/tk/lib/tkafter.rb: bug fix on TkTimer#cancel_on_exception=(mode).
- TkTimer#wait recieves the exception of the callback.
- The exception is kept on @return_value.
+ * 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.
-Thu Nov 27 16:58:48 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * 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.
- * win32/win32.c (rb_w32_stat): remove _fullpath() for NUL: device.
+ * 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.
-Wed Nov 26 15:38:47 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat Apr 6 11:23:18 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * test/fileutils/test_fileutils.rb (test_ln_s): should take the
- existing symbolic link for OpenBSD.
+ * test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
+ fix load path for encoding to run the test as stand-alone.
-Wed Nov 26 04:48:42 2003 why the lucky stiff <why@ruby-lang.org>
+Sat Apr 6 09:54:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/syck/token.c: removed YYTOKTMP references which
- were causing buffer overflows on large block scalars,
- comments, quoted scalars and plain scalars.
+ * pack.c (NATINT_LEN): fix definition order, must be after
+ NATINT_PACK.
- * ext/syck/rubyext.c: dynamic changing of buffer size.
+Sat Apr 6 03:11:07 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/syck/syck.h: default buffer size of 4k.
+ * ext/psych/lib/psych/visitors/yaml_tree.rb: fix symbol keys in coder
+ emission. Thanks @tjwallace
+ * test/psych/test_coder.rb: test for change
-Wed Nov 26 00:55:30 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sat Apr 6 02:54:08 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * lib/webrick/httpresponse.rb: add HTTPResponse#keep_alive=.
+ * 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
- * lib/webrick/httpserver.rb (HTTPServer#run): should pass the
- request's keep_alive flag to the response.
+Sat Apr 6 02:30:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Nov 25 21:41:35 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * parse.y (new_defined): remove all extra parentheses, and return
+ "nil" for defined? with empty expression.
+ [ruby-core:54024] [Bug #8224]
- * defines.h (ENV_IGNORECASE): should define when DOSISH without
- human68k. [ruby-dev:22047]
+Sat Apr 6 02:06:04 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * hash.c (env_has_value, env_index): don't ignore case of value.
- [ruby-dev:22048]
+ * ext/psych/lib/psych/visitors/to_ruby.rb: correctly register
+ self-referential strings. Fixes tenderlove/psych #135
-Tue Nov 25 21:39:37 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/psych/test_string.rb: appropriate test.
- * file.c (path_check_1): honor sticky bits always.
- [ruby-talk:86273]
+Sat Apr 6 01:21:56 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 25 20:02:14 2003 Minero Aoki <aamine@loveruby.net>
+ * 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.
- * test/fileutils/test_fileutils.rb: do test in more deep
- directory.
+Sat Apr 6 00:19:30 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * test/fileutils/test_nowrite.rb: ditto.
+ * 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]
-Tue Nov 25 19:04:23 2003 Tanaka Akira <akr@m17n.org>
+ * test/ruby/test_require.rb (TestRequire#test_require_nonascii_path):
+ a test for the above.
- * lib/open-uri.rb (URI::Generic#find_proxy): ENV case sensitivity test
- refined.
+Fri Apr 5 20:41:49 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 25 18:13:30 2003 Minero Aoki <aamine@loveruby.net>
+ * include/ruby/defines.h (HAVE_TRUE_LONG_LONG): Defined to distinguish
+ availability of long long and availability of 64bit integer type.
- * test/fileutils/test_fileutils.rb: chdir Dir.tmpdir before each
- test. [ruby-dev:22045]
+ * pack.c: Use HAVE_TRUE_LONG_LONG to distinguish q! and Q! support.
- * test/fileutils/test_nowrite.rb: ditto.
+Fri Apr 5 20:19:42 2013 Tanaka Akira <akr@fsij.org>
-Tue Nov 25 17:52:11 2003 Tanaka Akira <akr@m17n.org>
+ * addr2line.c: Include ruby/missing.h to fix compile error on Debian.
- * lib/open-uri.rb (URI::Generic#find_proxy): use http_proxy under CGI
- if the environment variable is case sensitive.
+Fri Apr 5 19:39:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Nov 25 16:41:33 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * compile.c (iseq_compile_each): fix of defined? with empty
+ expression. [ruby-core:53999] [Bug #8220]
- * test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb:
- removed. this test requires extra libraries in soap4r/1.5.*.
+Fri Apr 5 13:22:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Nov 25 16:24:42 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ext/curses/curses.c (Init_curses): fix implementation function,
+ crmode should be same as cbreak. [ruby-core:54013] [Bug #8222]
- * lib/soap/**/*.rb, lib/wsdl/**/*.rb, lib/xsd/**/*.rb: changed license;
- GPL2 -> Ruby's.
+Fri Apr 5 12:06:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/soap/rpc/driver.rb, lib/soap/wsdlDriver.rb,
- lib/soap/streamHandler.rb: add interface to streamhandler.
+ * ext/curses/hello.rb: Typo in Curses example by Drew Blas
+ [Fixes GH-273]
- * lib/soap/marshal.rb: raise error if parse fails.
+Thu Apr 4 23:45:13 2013 Tanaka Akira <akr@fsij.org>
- * lib/soap/netHttpClient.rb: add https support. Patched by
- Oliver M. Bolzer.
+ * 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.
- * lib/soap/netHttpClient.rb: dump HTTP response message body by itself.
+Thu Apr 4 23:24:45 2013 Tanaka Akira <akr@fsij.org>
- * lib/soap/rpc/driver.rb, lib/soap/rpc/proxy.rb,
- lib/soap/wsdlDriver.rb: add driver#mandatorycharset interface to foce
- using charset for parsing response from buggy server.
+ * ext/socket/extconf.rb: Remove condition for bcc.
- * lib/soap/encodingstyle/soapHandler.rb: support Apache Axis's half
- typed multi-ref array.
+Thu Apr 4 22:53:23 2013 Tanaka Akira <akr@fsij.org>
- * lib/soap/mapping/factory.rb, lib/soap/mapping/registry.rb: map
- SOAPStruct which has multi-accessors which name are the same, to an
- array.
+ * include/ruby/ruby.h (FIX2LONG): Parenthesize the macro body.
- * lib/soap/rpc/element.rb: fixed illegal parameter order.
+Thu Apr 4 22:32:32 2013 Tanaka Akira <akr@fsij.org>
- * lib/soap/rpc/element.rb: element name of response message could have
- the name other than 'return'.
+ * time.c (time_strftime): Describe %L and %N truncates digits under
+ the specified length.
+ [ruby-core:52130] [Bug #7829]
- * lib/wsdl/operation.rb, lib/wsdl/operationBinding.rb,
- lib/wsdl/soap/classDefCreator.rb, lib/wsdl/soap/methodDefCreator.rb,
- lib/wsdl/soap/methodDefCreatorSupport.rb: WSDL/1.1 allows plural
- fault definition in a operation. [ruby-talk:84948]
+Thu Apr 4 22:08:46 2013 Tanaka Akira <akr@fsij.org>
- * test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb: add
- test for above fix.
+ * object.c (rb_mod_cvar_set): Reverted "avoid inadvertent
+ symbol creation" to avoid SEGV by
+ Class.new.class_variable_set(1, 2).
- * lib/wsdl/soap/complexType.rb: support WSDL array definition with
- maxOccures="unbound".
+Thu Apr 4 20:07:19 2013 Tanaka Akira <akr@fsij.org>
- * lib/xsd/charset.rb: use cp932 under emx. Patched by
- Siena. / SHINAGAWA, Norihide in [ruby-dev:21972]
+ * ext/pathname/pathname.c (path_write): New method.
+ (path_binwrite): Ditto.
+ [ruby-core:49468] [Feature #7378]
- * lib/xsd/xmlparser/parser.rb: set @charset nil by default. Nil means
- 'follow encoding declaration in XML'.
+Thu Apr 4 16:51:29 2013 Yuki Yugui Sonoda <yugui@google.com>
- * sample/soap/digraph.rb, sample/wsdl/amazon/wsdlDriver.rb,
- sample/wsdl/googleSearch/sampleClient.rb,
- sample/wsdl/googleSearch/wsdlDriver.rb,
- test/wsdl/test_emptycomplextype.rb,
- test/wsdl/marshal/test_wsdlmarshal.rb,
- test/xsd/test_xmlschemaparser.rb: use File.open(...) { |f| f.read }
- instead of File.open(...).read. [ruby-dev:21964]
+ * thread_pthread.c: Fixes wrong scopes of #if USE_SLEEPY_TIMER_THREAD
+ .. #endif sections. This fixes a build error on NativeClient.
- * test/wsdl/emptycomplextype.wsdl, test/wsdl/test_emptycomplextype.rb:
- simplify the test case.
+Wed Apr 3 17:25:31 2013 Yuki Yugui Sonoda <yugui@google.com>
- * test/wsdl/axisArray/*: add tests for axis's array encoding.
+ * thread_pthread.c (ruby_init_stack): Avoid using uninitialized value.
+ stackaddr and size are not set if get_stack() fails.
-Tue Nov 25 16:15:29 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Thu Apr 4 16:55:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ruby.h: don't treat Cygwin as Windows.
+ * struct.c (make_struct): avoid inadvertent symbol creation.
+ (rb_struct_aref): ditto.
+ (rb_struct_aset): ditto.
-Tue Nov 25 15:18:28 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Thu Apr 4 16:54:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * configure.in: change default value of --enable-pthread (default: no)
+ * object.c (rb_mod_const_set): avoid inadvertent symbol creation.
+ (rb_obj_ivar_set): ditto.
+ (rb_mod_cvar_set): ditto.
-Tue Nov 25 07:31:16 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Apr 4 15:46:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (primary): allow newlines just before right argument
- parenthesis. (ruby-bugs:PR#1221)
+ * enum.c (enum_inject): avoid inadvertent symbol creation.
-Mon Nov 24 23:32:06 2003 Tanaka Akira <akr@m17n.org>
+Thu Apr 4 14:37:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/open-uri.rb (OpenURI.open_loop, URI::HTTP#proxy_open): use
- catch/throw for redirection instead of exception.
- (OpenURI.open_loop, OpenURI.redirectable?): restrict redirection.
+ * thread.c (rb_thread_aref): avoid inadvertent symbol creation.
+ (rb_thread_variable_get): ditto.
+ (rb_thread_key_p): ditto.
+ (rb_thread_variable_p): ditto.
-Mon Nov 24 19:59:48 2003 Tanaka Akira <akr@m17n.org>
+Thu Apr 4 11:33:57 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/open-uri.rb (URI::Generic#find_proxy): use CGI_HTTP_PROXY
- instead of HTTP_PROXY in the CGI environment.
+ * ext/openssl/ossl_bn.c (ossl_bn_to_i): Use bn2hex to speed up.
+ In general, binary to/from decimal needs extra cost.
-Mon Nov 24 19:32:55 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Thu Apr 4 07:24:18 2013 Tanaka Akira <akr@fsij.org>
- * ext/etc/extconf.rb: check for pw_passwd in struct passwd and
- gr_passwd in struct group for DJGPP.
+ * ext/socket/extconf.rb: Specify arguments to test functions.
- * ext/etc/etc.c: ditto.
+Thu Apr 4 03:25:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/Setup.dj: support for curses, etc, zlib.
+ * ext/openssl/ossl_bn.c (ossl_bn_initialize): fix can't create from bn.
-Mon Nov 24 17:00:00 2003 Tanaka Akira <akr@m17n.org>
+Wed Apr 3 22:09:25 2013 Tanaka Akira <akr@fsij.org>
- * lib/open-uri.rb: validate option names.
- :content_length_proc and :progress_proc option implemented.
+ * ext/socket/extconf.rb: Test functions and libraries after headers.
-Mon Nov 24 14:53:10 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Apr 3 21:23:29 2013 Tanaka Akira <akr@fsij.org>
- * bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
- (XCFLAGS): output empty value instead of `-DRUBY_EXPORT'.
+ * io.c (rb_io_seek_m): Accept :CUR, :END, :SET as "whence" argument.
+ (interpret_seek_whence): New function.
+ [ruby-dev:45818] [Feature #6643]
-Sat Nov 22 23:09:45 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Wed Apr 3 20:52:49 2013 Tanaka Akira <akr@fsij.org>
- * configure.in: set enable_pthread to no on MinGW.
+ * process.c: Describe the behavior which Ruby invokes a commandline
+ directly without shell if the commandline is simple enough.
+ [ruby-core:50459] [Bug #7489]
-Sat Nov 22 22:56:20 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Wed Apr 3 20:27:37 2013 Tanaka Akira <akr@fsij.org>
- * configure.in: add --enable-pthread option (default: yes)
+ * ext/extmk.rb (extmake): Invoke Logging::log_close in a ensure
+ clause.
-Sat Nov 22 22:48:46 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Wed Apr 3 18:53:58 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tk.rb: add Tk.grab_release and fix bug of TkComposite
+ * 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.
- * ext/tk/lib/tkafter.rb: bug fix of TkAfter#start
+ * lib/mkmf.rb (Logging.log_opened?): New method.
- * ext/tk/sample/tkcombobox.rb: new sample script
+ [ruby-dev:47215] [Bug #8209]
- * ext/tcltklib/tcltklib.c: add native thread check
+Wed Apr 3 17:11:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Nov 22 18:49:47 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * 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]
- * ext/curses/curses.c (window_nodelay): nodelay() of NetBSD's
- libcruses returns no value, just like keypad().
+Wed Apr 3 16:35:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Nov 22 17:36:36 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * bignum.c (rb_big_eq): hide intermediate Bignums not just freeing
+ memory. [ruby-core:53893] [Bug #8204]
- * bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
- (HAVE_GETCWD): output to config.h.
+ * object.c (rb_obj_hide): hide an object by clearing klass.
- * bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub
- (XCFLAGS): output to config.status.
+ * bignum.c (rb_big_eq): test as Fixnum if possible and get rid of zero
+ length Bignum. [ruby-core:53893] [Bug #8204]
-Sat Nov 22 13:10:10 2003 Minero Aoki <aamine@loveruby.net>
+Tue Apr 2 23:56:03 2013 Tanaka Akira <akr@fsij.org>
- * lib/fileutils.rb (have_st_ino?): djgpp has valid st_ino.
+ * 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]
-Sat Nov 22 11:28:48 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Apr 2 20:24:52 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (Init_stack): stack region is far smaller than usual if
- pthread is used.
+ * 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]
-Sat Nov 22 07:30:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+Tue Apr 2 19:24:26 2013 Tanaka Akira <akr@fsij.org>
- * lib/test/unit/util/backtracefilter.rb: fixed a bug that occurred
- when an exception had no backtrace.
+ * ext/-test-/num2int/num2int.c: Define utility methods
+ as module methods of Num2int.
- * test/testunit/util/test_backtracefilter.rb: ditto.
+ * test/-ext-/num2int/test_num2int.rb: Follow the above change.
-Fri Nov 21 16:44:18 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Tue Apr 2 18:49:01 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkentry.rb: fix the encoding trouble of percent
- substitutions on validatecommand option of TkEntry widget
+ * lib/securerandom.rb: Don't use Array#to_s.
+ [ruby-core:52058] [Bug #7811] fixed by zzak (Zachary Scott).
- * ext/tk/lib/tk.rb: fix bug on {pack|grid}_propagate() method
+Tue Apr 2 17:38:20 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Nov 21 16:12:11 2003 Akinori MUSHA <knu@iDaemons.org>
+ * 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]
- * ruby.1: Fix markups and grammar.
+Tue Apr 2 16:00:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Nov 21 14:49:42 2003 Minero Aoki <aamine@loveruby.net>
+ * vm_dump.c (rb_print_backtrace): separate to ease showing C backtrace.
- * ruby.1: wrote about ruby related environment variables.
+ * internal.h (rb_print_backtrace): ditto.
-Fri Nov 21 12:28:03 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Apr 2 15:22:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * marshal.c (w_extended): singleton methods should not be checked
- when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
+ * test/ruby/envutil.rb (assert_separately): stop_auto_run of
+ Test::Unit::Runner to prevent auto runner use ARGV.
-Fri Nov 21 01:40:00 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * test/ruby/envutil.rb (assert_separately): add $: to separate process.
- * configure.in: check <pthread.h>
+ * test/ruby/envutil.rb (assert_separately): fail if stderr is not
+ empty and ignore_stderr is false.
- * ruby.h: include pthread.h if existence.
- define is_ruby_native() macro when not HAVE_NATIVETHREAD
+Tue Apr 2 06:46:59 2013 Tanaka Akira <akr@fsij.org>
- * eval.c: undef is_ruby_native() function when not HAVE_NATIVETHREAD
+ * ext/-test-/num2int/num2int.c: Rename utility methods
+ to global functions to ease manual experiments.
-Fri Nov 21 00:43:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+ * test/-ext-/num2int/test_num2int.rb: Follow the above change.
- * lib/test/unit/assertions.rb: use #__send__ instead of #send.
-
- * lib/test/unit/testcase.rb: ditto.
-
-Thu Nov 20 19:19:22 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * configure.in: don't find the Cygwin's pthread library on MinGW.
-
-Thu Nov 20 19:15:50 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (have_st_ino?): emx (OS/2 with EMX) does not
- have st_ino (always 0). [ruby-dev:21972]
-
- * lib/fileutils.rb (rename_cannot_overwrite_file?): emx does not
- allow overwriting files by rename(2).
-
- * test/fileutils/test_fileutils.rb: windows? ->
- have_drive_letter?, have_file_perm?
-
-Thu Nov 20 17:50:58 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/sample/tkballoonhelp.rb: new sample script
-
- * ext/tk/sample/tkmultilistbox.rb: ditto
-
- * ext/tk/sample/tktextframe.rb: ditto
-
-Thu Nov 20 13:37:34 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ruby.h: define is_ruby_native_thread() for no native thread
- environment
-
- * eval.c: ditto
-
-Thu Nov 20 12:42:47 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * configure.in: always check existence of the pthread library
-
- * ruby.h: define macros for ruby's native thread check
-
- * eval.c: add ruby's native thread check
-
- * gc.c: ditto
-
-Wed Nov 19 14:45:18 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/net/http.rb (to_ary): print more friendly warning message.
-
-Wed Nov 19 14:32:08 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (fu_same?): add djgpp and wince.
-
- * lib/fileutils.rb (cannot_overwrite_file?): add wince.
-
-Wed Nov 19 11:04:47 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * lib/fileutils.rb (cannot_overwrite_file?, have_st_ino?): bccwin32
- is same as mswin32.
-
-Wed Nov 19 07:54:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
-
- * lib/test/unit.rb: do not run tests if $! is set.
-
- * lib/test/unit/assertionfailederror.rb: extend StandardError instead
- Exception (irb catches the former but not the latter).
-
-Tue Nov 18 23:31:36 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * missing/memmove.c (memmove): take void *, not char *.
-
- * missing.h (memmove): ditto.
-
- * missing.h (strchr, strrchr): return char *, not int.
-
-Tue Nov 18 22:20:10 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (fu_same?): temporal fix for windows.
-
-Tue Nov 18 19:05:04 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (fu_same?): check by inode instead of path
- name, to detect two hard links pointing to the same content.
-
- * test/fileutils.rb: did not create correctly looped symlinks.
-
-Tue Nov 18 18:23:05 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/stringio/stringio.c (strio_read): behave as IO at empty string.
- [ruby-dev:21939], [ruby-dev:21941]
-
- * ext/stringio/stringio.c (strio_getc, strio_getline): set EOF flag.
-
- * ext/stringio/stringio.c (strio_rewind, strio_seek, strio_ungetc):
- clear EOF flag.
-
- * test/stringio/test_stringio.rb: imported from [ruby-dev:21941].
-
-Tue Nov 18 14:06:35 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/fileutils.rb (fu_each_src_dest): raise if src==dest.
- [ruby-talk:85344] [ruby-core:01699]
-
- * lib/fileutils.rb: use Object#is_a? instead of Class#=== to allow
- e.g. remote objects for receivers.
-
- * lib/fileutils.rb: FileTest -> File.
-
- * lib/fileutils.rb: put parentheses for arguments of File.xxxx?
-
- * test/fileutils/test_fileutils.rb (test_cp): test "cp a a".
-
- * test/fileutils/test_fileutils.rb (test_mv): test "mv a a".
-
- * test/fileutils/test_fileutils.rb (test_ln): test "ln a a".
-
- * test/fileutils/test_fileutils.rb (test_ln_s): test "ln_s a a".
-
- * test/fileutils/test_fileutils.rb (test_install): test "install a a".
-
- * test/fileutils/fileasserts.rb: new method assert_symlink.
-
- * test/fileutils/fileasserts.rb: assert_is_directory -> assert_directory.
-
-Mon Nov 17 19:38:49 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * file.c (getcwdofdrv): avoid using getcwd() directly, use
- my_getcwd() instead.
-
- * merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
- <sunshine@sunshineco.com>. [ruby-core:01596]
-
-Mon Nov 17 10:50:27 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/optparse.rb (OptionParser::Completion::complete): allow least
- common completion for three or more candidates.
-
-Mon Nov 17 09:41:38 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/test/unit/ui/tk/testrunner.rb,
- lib/test/unit/ui/gtk/testrunner.rb:
- run GUI main loop in sub thread.
-
- * lib/test/unit/ui/gtk2/testrunner.rb: imported from rough.
-
- * lib/test/unit/autorunner.rb (keyword_display): sort keywords.
-
-Sun Nov 16 18:10:57 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (rb_eval): iterator should return value from next inside
- begin/rescue/end. (ruby-bugs:PR#1218)
-
-Sun Nov 16 13:26:07 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * marshal.c (w_object): LINK check earlier than anything else,
- i.e. do not dump TYPE_IVAR for already dumped objects.
- (ruby-bugs:PR#1220)
-
- * eval.c (rb_eval): call "inherited" only when a new class is
- generated; not on reopening.
-
- * eval.c (eval): prepend error position in evaluating string to
- "mesg" attribute string only when it's available and is a
- string.
+Mon Apr 1 22:26:17 2013 Tanaka Akira <akr@fsij.org>
-Sun Nov 16 12:16:10 2003 Minero Aoki <aamine@loveruby.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.
- * lib/net/protocol.rb: logging response body. [experimental]
- [ruby-list:38800]
+Mon Apr 1 22:08:02 2013 Benoit Daloze <eregontp@gmail.com>
-Sun Nov 16 10:49:38 2003 Gavin Sinclair <gsinclair@soyabean.com.au>
+ * ext/zlib/zlib.c (Zlib::Inflate.new):
+ Fix documentation syntax and naming errors.
+ Based on patch by Robin Dupret. Fix GH-271.
- * lib/thread.rb (Thread.exclusive): wrap method definition in
- class Thread to enable rdoc to process.
+Mon Apr 1 21:22:31 2013 Tanaka Akira <akr@fsij.org>
-Sun Nov 16 09:45:23 2003 Minero Aoki <aamine@loveruby.net>
+ * test/-ext-/num2int/test_num2int.rb: Test small bignums.
- * lib/net/http.rb (set_debug_output): warn if method is called
- after #start. [ruby-dev:38798]
+Mon Apr 1 21:10:56 2013 Tanaka Akira <akr@fsij.org>
-Sun Nov 16 04:41:33 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * eval.c (eval): do not re-raise exception to avoid unnecessary
- exception copying, instead modify exception and internal
- information to adjust eval().
+Mon Apr 1 20:57:57 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (backtrace): can return the current frame information
- only if lev < -1.
+ * ext/-test-/num2int/num2int.c: Return string for result, instead of
+ printing.
-Sat Nov 15 22:16:42 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * test/-ext-/num2int/test_num2int.rb: updated to follow above change.
- * /ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext):
- refine error message.
+Mon Apr 1 20:08:07 2013 Tanaka Akira <akr@fsij.org>
-Sat Nov 15 10:05:40 2003 Tanaka Akira <akr@m17n.org>
+ * 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.
- * lib/open-uri.rb (OpenURI.open_loop, OpenURI::HTTP#proxy_open):
- refactored to support options.
- (Buffer): maintain size by this class.
+Mon Apr 1 18:41:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Nov 15 07:40:14 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in: skip autoconf 2.64 and 2.66, 2.67 seems short-lived
+ but stick on it for Debian Squeeze.
- * eval.c (rb_method_node): new API to retrieve method body.
+Mon Apr 1 14:22:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Nov 14 13:21:30 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * configure.in: check clang version by predefined macro values.
+ [Bug #8192]
- * ext/tcltklib/tcltklib.c: fix (en-bugged at 2003/11/07)
+Mon Apr 1 12:05:15 2013 Tanaka Akira <akr@fsij.org>
- * ext/tk/lib/tkdialog.rb: TkDialog.new accepts a parent widget
- argument [ruby-talk:85066]
+ * numeric.c (check_uint): Take the 1st argument as unsigned long,
+ instead of VALUE. Refine the validity test conditions.
+ (check_ushort): Ditto.
-Thu Nov 13 20:53:35 2003 Tanaka Akira <akr@m17n.org>
+Mon Apr 1 07:15:03 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * lib/open-uri.rb (Kernel[#.]open): hard coded URI schemes removed.
- [ruby-ext:02251]
+ * configure.in: use quadrigraph to put '[' or ']'. [Bug #8192]
-Thu Nov 13 19:17:00 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Apr 1 04:16:41 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/test/unit/ui/tk/testrunner.rb: use grid and panedwindow
- (if available)
+ * configure.in: kick old clang. [ruby-dev:47204] [Bug #8192]
-Thu Nov 13 17:56:41 2003 Tanaka Akira <akr@m17n.org>
+Mon Apr 1 01:12:46 2013 Tanaka Akira <akr@fsij.org>
- * lib/open-uri.rb (OpenURI.open_uri): use File::RDONLY.
- reported by Take_tk <ggb03124@nifty.ne.jp>.
- [ruby-ext:02245]
+ * include/ruby/ruby.h (FIX2ULONG): Make it consistent with NUM2ULONG.
-Thu Nov 13 16:45:53 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * ext/-test-/num2int/num2int.c: Add utility methods for FIX2XXX tests.
- * ext/openssl/ossl_x509req.c (ossl_x509req_to_der): add function for
- X509::Request#to_der.
+ * test/-ext-/num2int/test_num2int.rb: Add tests for FIX2XXX.
-Thu Nov 13 11:31:14 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 31 17:17:56 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/optparse.rb (OptionParser::Completion#complete): prior shorter
- name to containing longer name.
+ * proc.c (rb_mod_define_method): consider visibility in define_method.
+ patch by mashiro <mail AT mashiro.org>. fix GH-268.
-Thu Nov 13 06:08:54 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Mar 31 15:40:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk.rb: stop freezing some classes
+ * win32/configure.bat: try to fix option arguments split by commas and
+ equals here. this batch file no longer run with old command.com.
- * ext/tk/lib/multi-tk.rb: ditto.
+ * tool/mkconfig.rb: no hacks for cmd.exe.
-Wed Nov 12 17:32:49 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 31 13:47:04 2013 Tanaka Akira <akr@fsij.org>
- * lib/test/unit/assertions.rb (assert_throws, assert_nothing_thrown):
- uncaught throw in sub thread raises ThreadError.
+ * 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.
- * lib/test/unit/ui/tk/testrunner.rb (setup_ui): "expand" is not
- necessary.
+Sun Mar 31 06:27:17 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Nov 12 14:09:43 2003 Shugo Maeda <shugo@ruby-lang.org>
+ * 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]
- * test/monitor/test_monitor.rb: fix the timing problem by Queue.
+Sat Mar 30 14:11:28 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Wed Nov 12 12:59:44 2003 Shugo Maeda <shugo@ruby-lang.org>
+ * bcc32: removed. agreed at
+ http://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20130223Japan
- * test/monitor/test_monitor.rb: added.
+Sat Mar 30 03:58:00 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Wed Nov 12 10:14:28 2003 Shugo Maeda <shugo@ruby-lang.org>
+ * 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).
- * lib/monitor.rb: refactored. Thanks, Gennady Bystritsky.
+Sat Mar 30 03:49:21 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Wed Nov 12 06:11:39 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * 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).
- * ext/openssl/ossl.c (ossl_x509_sk2ary, ossl_x509crl_sk2ary):
- add functions to convert STACK into Array.
+Fri Mar 29 22:09:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl.h: add prototypes.
+ * thread.c (rb_mutex_synchronize_m): yield no block params. patch by
+ splattael (Peter Suschlik) in [ruby-core:53773] [Bug #8097].
+ fix GH-266.
- * ext/openssl/ossl_pkcs7.c (ossl_pkcs7_set_certificates,
- ossl_pkcs7_get_certificates, ossl_pkcs7_get_crls,
- ossl_pkcs7_set_crls): add functions for PKCS7#certificates=
- PKCS7#certificates, PKCS7#crls= and PKCS7#crls.
+Fri Mar 29 16:51:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Nov 12 00:47:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+ * io.c (argf_next_argv): set init flag if succeeded to forward, after
+ skipping.
- * lib/test/unit/ui/testrunnermediator.rb: should require 'test/unit'.
+ * io.c (argf_block_call_i, argf_block_call): no more forwarding if
+ forwarded after skipping. [ruby-list:49185]
-Tue Nov 11 23:54:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+ * io.c (argf_close): deal with init flag.
- * lib/test/unit/ui/gtk/testrunner.rb: added a rescue clause to handle
- the case when the requested font is not available.
+ * io.c (argf_block_call_i, argf_block_call): forward next file if
+ skipped while iteration, to get rid of IOError. [ruby-list:49185]
-Tue Nov 11 22:44:08 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Mar 29 11:09:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (appendline): file may not end with newline. a bug if
- READ_DATA_PENDING_PTR is defined. [ruby-talk:84925]
+ * lib/mkmf.rb (configuration): not include all CFLAGS in CXXFLAGS, to
+ use different set than C for C++. [ruby-core:45273] [Bug #6504]
-Tue Nov 11 10:42:41 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Fri Mar 29 10:24:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tk/lib/tk.rb: raise an exception when creating TkWindow
- object, because TkWindow class is an abstract class.
+ * 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 Nov 11 03:30:43 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Fri Mar 29 06:39:42 2013 Tanaka Akira <akr@fsij.org>
- * lib/ext/openssl/ossl_conf.c (ossl_config_get_value): return nil
- if the specified value doesn't exist.
+ * 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
- * lib/ext/openssl/ossl_conf.c (ossl_config_get_section): return
- a empty hash if the specified section doesn't exist.
+Fri Mar 29 00:54:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Nov 10 11:40:29 2003 Shugo Maeda <shugo@ruby-lang.org>
+ * lib/mkmf.rb (MAIN_DOES_NOTHING): ensure symbols for tests to be
+ preserved. [ruby-core:53745] [Bug #8169]
- * lib/monitor.rb (wait): return true on signal/broadcastfalse and
- false on timeout. Thanks Gennady Bystritsky.
+Thu Mar 28 23:11:25 2013 Tanaka Akira <akr@fsij.org>
-Mon Nov 10 00:07:10 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * parse.y (primary): primary_value may be 0 when syntax error.
- [ruby-talk:84893]
+Thu Mar 28 23:10:10 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Nov 9 02:05:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+ * include/ruby/io.h: rename SVR3,4 member names as POSIX compliant,
+ to get rid of conflict on AIX. [ruby-core:53765] [Bug #8174]
- * lib/test/unit/assertions.rb: un-deprecated #assert_not_nil to
- maintain symmetry with #assert_nil. Also added better output for
- #assert_kind_of.
+Thu Mar 28 18:22:21 2013 Tanaka Akira <akr@fsij.org>
- * test/testunit/tc_assertions.rb: ditto.
+ * test/-ext-/num2int/test_num2int.rb: extract
+ assert_num2i_success_internal and assert_num2i_error_internal and
+ provide assertion messages as "NUM2XXX(NNN)".
-Sat Nov 8 18:50:20 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Thu Mar 28 07:05:25 2013 Tanaka Akira <akr@fsij.org>
- * test/wsdl/raa/*: add new testcase for WSDL loading, parsing and
- reading.
+ * include/ruby/intern.h: Delete redundant inclusions caused by
+ AC_INCLUDES_DEFAULT in defines.h.
- * test/soap/marshal/*: backport from soap4r/1.5.1. all differences are
- for ruby/1.6.
+ * include/ruby/defines.h: Ditto.
- * lib/soap/*: backport from soap4r/1.5.1. all differences are for
- ruby/1.6.
+ * include/ruby/ruby.h: Ditto.
- * lib/wsdl/data.rb, lib/wsdl/xmlSchema/data.rb: move definition of
- ArrayTypeAttrName from ::WSDL::XMLSchema::* to ::WSDL::*.
- [ruby-talk:84813]
+ * include/ruby/st.h: Ditto.
- * lib/wsdl/soap/definitions.rb: element name typo in custom exception
- struct definition which is needed for wsdlDriver; camelCase ->
- underscore_name.
+Thu Mar 28 06:51:31 2013 Tanaka Akira <akr@fsij.org>
-Sat Nov 8 13:49:50 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * configure.in: improvement of pthread check
+Wed Mar 27 22:09:14 2013 Tanaka Akira <akr@fsij.org>
-Sat Nov 8 13:28:46 2003 Takaaki Tateishi <ttate@ttsky.net>
- * ext/dl/sym.c: Add DL.win32_last_error and DL.last_error.
- Thanks, Kaoru Shirai.
+ * 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.
-Sat Nov 8 06:19:38 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * 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.
- * ext/tcltklib/tcltklib.c: To fix 'pthread-enabled Tcl/Tk' problem,
- TclTkIp#_eval calls Tcl_Eval() on the mainloop thread only
- (queueing a handler to the EventQueue).
+Wed Mar 27 20:59:47 2013 Tanaka Akira <akr@fsij.org>
- * ext/tcltklib/README.1st: edit the description of '--with-pthread-ext'
+ * test/-ext-/num2int/test_num2int.rb (assert_num2i_success): New
+ utility method.
+ (assert_num2i_error): Ditto.
-Fri Nov 7 23:23:04 2003 Tanaka Akira <akr@m17n.org>
+Wed Mar 27 20:37:59 2013 Tanaka Akira <akr@fsij.org>
- * lib/pathname.rb (Pathname#+): if self or the argument is `.', return
- another.
- (Pathname#parent): if self is `.', return `..'.
- (Pathname#children): if self is `.', don't prepend self for a
- pathname in a result.
- (Pathname#join): re-implemented using Pathname#+.
- (Pathname#find): if self is `.', remove `./' prefix of yielding
- pathname.
-
-Fri Nov 7 10:23:24 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/socket/socket.c (make_hostent): get rid of SEGV on aliases
- lookup failure. (ruby-bugs:PR#1215)
-
-Fri Nov 7 04:08:05 2003 UENO Katsuhiro <katsu@blue.sky.or.jp>
-
- * ext/zlib/zlib.c (Init_zlib): define Zlib::GzipReader#each_line as
- an alias of Zlib::GzipReader#each.
-
-Fri Nov 7 01:03:16 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_load): save and restore rb_prohibit_interrupt.
- [ruby-dev:21857]
-
-Thu Nov 6 18:05:07 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * io.c (rb_io_inspect): show the path also at a closed file.
- [ruby-dev:21851]
-
-Thu Nov 6 11:42:07 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/stringio/stringio.c (strio_set_string, strio_reopen): check
- tainted.
-
- * ext/stringio/stringio.c (strio_copy, strio_ungetc, strio_write,
- strio_putc): add infection.
-
- * ext/stringio/stringio.c (strio_path): just nil. [ruby-dev:21846]
-
- * ruby.c (proc_options): reserve searched script path in the
- source file name table. [ruby-list:38765]
-
- * lib/optparse.rb (OptionParser::Completion#complete): default not to
- ignore case on completion. [ruby-talk:84726]
-
- * win32/win32.c (make_cmdvector): process backslashes even if a quote
- is not enclosed.
-
-Wed Nov 5 23:49:45 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * sample/openssl/gen_csr.rb: there (at least) is a CA which does not
- accept DN in UTF8STRING format. it's a sample.
-
-Wed Nov 5 22:55:16 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * configure.in, eval.c, signal.c: : add '--with-pthread-ext'
- option to fix the pthread trouble on 'tcltklib'
-
- * ext/tcltklib/README.1st: add the description of '--with-pthread-ext'
-
- * ext/tk/lib/tktext.rb : add TkText#text_copy, text_cut, text_paste
- to support Tcl/Tk8.4's tk_textCopy, tk_textCut, tk_textPaste
-
- * ext/tk/lib/tk.rb : add TkMenu#set_focus support Tcl/Tk's
- tk_menuSetFocus
-
-Wed Nov 5 17:33:45 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_load): allow interrupt during loaded program
- evaluation. [ruby-dev:21834]
-
- * hash.c (rb_hash_fetch): always warn if default argument and a
- block are supplied at the same time. [ruby-dev:21842]
-
- * hash.c (env_fetch): ditto.
-
- * array.c (rb_ary_fetch): ditto.
-
-Wed Nov 5 19:08:47 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/optparse.rb (OptionParser::Switch::PlacedArgument::parse):
- do not remove next argument if empty value is placed.
-
- * test/optparse: added.
-
-Wed Nov 5 17:05:18 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/test/unit/ui/gtk/testrunner.rb: typo.
-
-Wed Nov 5 11:13:32 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * string.c: add #include "version.h". this file still depends on it.
-
- * Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,
- wince/Makefile.sub: add version.h dependency to string.c.
-
-Wed Nov 5 09:14:23 2003 Shugo Maeda <shugo@ruby-lang.org>
-
- * lib/monitor.rb: revert to the previous revision.
-
-Wed Nov 5 08:39:51 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/https.rb (HTTPRequest#parse): set @client_cert_chain.
-
- * lib/webrick/https.rb (HTTPRequest#meta_vars): create
- SSL_CLIENT_CERT_CHAIN_n from @client_cert_chain.
-
- * ext/openssl/ossl_ssl.c (ossl_ssl_get_peer_cert_chain): return nil
- if no cert-chain was given.
-
-Tue Nov 4 23:44:48 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub:
- remove needless version.h dependency.
-
-Tue Nov 4 23:38:43 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * class.c, hash.c, string.c: remove #include "version.h".
-
- * Makefile.in: remove needless version.h dependency.
-
-Tue Nov 4 06:54:52 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * io.c (read_all): fptr->f may be NULL, if IO is closed in the
- signal handler.
-
- * io.c (io_read): ditto.
-
- * string.c (get_pat): remove 1.8.0 warning code.
-
- * string.c (rb_str_match): extend warning until 1.8.2.
-
- * string.c (rb_str_match2): ditto.
-
- * class.c (class_instance_method_list): remove 1.8.0 warnings.
- method_list now recurs. [ruby-dev:21816]
-
- * class.c (rb_obj_singleton_methods): ditto.
-
- * array.c (rb_ary_select): remove select with block.
- [ruby-dev:21824]
-
- * hash.c (rb_hash_select): ditto.
-
- * hash.c (env_select): ditto.
-
- * re.c (match_select): ditto.
-
- * struct.c (rb_struct_select): ditto.
-
-Mon Nov 3 22:53:21 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/racc/parser.rb: synchronize with Racc 1.4.4.
-
- * ext/racc/cparse/cparse.c: ditto.
-
- * ext/racc/cparse/cparse.c (parse_main): should abort when
- the length of LR state stack <=1, not ==0.
-
-Mon Nov 3 08:50:47 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * process.c (check_uid_switch): remove duplicated error messages.
-
- * process.c (check_gid_switch): ditto.
-
-Sun Nov 2 02:28:33 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/ssl.rb: new option :SSLExtraChainCert.
-
-Sun Nov 2 01:02:04 2003 Akinori MUSHA <knu@iDaemons.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.
- * string.c (rb_str_hash): Update the HASH_PERL alternative hash
- algorithm in sync with Perl 5.8.
+Wed Mar 27 12:07:40 2013 Tanaka Akira <akr@fsij.org>
- * st.c (strhash): Ditto.
+ * test/-ext-/num2int/test_num2int.rb (test_num2ll): test LLONG_MIN,
+ not LONG_MIN.
-Sat Nov 1 18:21:09 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Wed Mar 27 12:02:45 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_ssl.c (ossl_ssl_peer_cert_chain): add new method
- SSLSocket#peer_cert_chain.
+ * internal.h (TIMET_MAX_PLUS_ONE): definition simplified.
- * ext/openssl/ossl_x509req.c (GetX509ReqPtr): new function
- which returns underlying X509_REQ.
+Wed Mar 27 06:39:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_issuer_cert,
- ossl_x509extfactory_set_subject_cert, ossl_x509extfactory_set_crl,
- ossl_x509extfactory_set_subject_req, ossl_x509extfactory_set_config):
- use underlying C struct without duplication not to leak momory.
+ * lib/mkmf.rb (MAIN_DOES_NOTHING): force to refer symbols for tests
+ to be preserved. [ruby-core:53745] [Bug #8169]
-Sat Nov 1 01:49:03 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Wed Mar 27 05:15:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/soap/mapping/factory.rb: mark marshalled basetype objects when
- @allow_original_mapping is true. multi-referencing basetype node is
- prohibited in SOAP/1.1 encoding but soap4r's original ruby object
- mapping requires basetype to be marked to detect self referencing
- loop. e.g. o = 1; o.instance_eval { @iv = o } soap4r's original
- mapping is only used through soap/marshal API.
+ * configure.in (RUBY_REPLACE_TYPE): define SIGNEDNESS_OF_type same as
+ check_signedness of mkmf.rb.
- * test/soap/marshal/test_marshal.rb: add tests for self referencing
- immutable objects.
+ * internal.h (TIMET_MAX, TIMET_MIN, TIMET_MAX_PLUS_ONE): use
+ SIGNEDNESS_OF_TIME_T.
- * test/soap/calc/test_calc_cgi.rb: fix test name.
+Wed Mar 27 00:28:45 2013 Tanaka Akira <akr@fsij.org>
-Fri Oct 31 22:26:29 2003 Takaaki Uematsu <uema2x@jcom.home.ne.jp>
+ * internal.h (TIMET_MAX_PLUS_ONE): Defined.
- * wince/string_wce.c (strrchr): should decrement pointer.
+ * thread.c (double2timeval): Saturate out-of-range values.
- * wince/Makefile.sub: correct a range of isdigit().
+Tue Mar 26 23:41:18 2013 Tanaka Akira <akr@fsij.org>
-Fri Oct 31 12:55:24 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * internal.h: Define TIMET_MAX and TIMET_MIN here.
- * configure.in, lib/mkmf.rb: add RPATHFLAG for NetBSD.
- [ruby-dev:21791]
+ * time.c: Remove TIMET_MAX and TIMET_MIN definitions.
- * bcc32/Makefile.sub, win32/Makefile.sub, win32/Makefile.sub: ditto.
+ * thread.c: Ditto.
-Fri Oct 31 01:38:14 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * thread_pthread.c: Remove TIMET_MAX definition.
- * wince/Makefile.sub, win32/Makefile.sub (.y.c): allow white spaces
- at the beginning of line to remove by sed. (ruby-bugs-ja:PR#580)
+ * thread_win32.c: Ditto.
-Fri Oct 31 01:02:24 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Tue Mar 26 22:31:10 2013 Tanaka Akira <akr@fsij.org>
- * compar.c (cmp_equal): protect exceptions from <=> comparison
- again. returns nil if any exception or error happened during
- comparison.
+ * ext/socket/socket.c (sockaddr_len): return the shortest length for
+ unknown socket address.
- * eval.c (search_required): should update *featurep when DLEXT2 is
- defined. (ruby-bugs-ja:PR#581)
+Tue Mar 26 22:14:46 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 30 23:41:04 2003 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * thread.c (double2timeval): convert the infinity to TIME_MAX to avoid
+ SEGV by Thread.new {}.join(Float::INFINITY) on
+ Debian GNU/Linux (amd64).
- * lib/drb/drb.rb: add DRbArray
+Mon Mar 25 07:09:20 2013 Eric Hodel <drbrain@segment7.net>
- * lib/drb/invokemethod.rb: fix Hash#each problem. [ruby-dev:21773]
+ * 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]
- * lib/drb/unix.rb: add LoadError. [ruby-dev:21743]
+Mon Mar 25 06:59:01 2013 Eric Hodel <drbrain@segment7.net>
-Thu Oct 30 23:19:11 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.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]
- * lib/soap/generator.rb: better XML pretty printing.
+Sun Mar 24 10:38:24 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * lib/soap/encodingstyle/soapHandler.rb: remove unnecessary namespace
- assignment in the element which has "encodingStyle" attribute, and
- add necessary namespace assignment for "arrayType" attribute.
+ * addr2line.c (putce): suppress unused return value warning.
- * test/soap/calc/test_calc_cgi.rb: take over $DEBUG to ruby process
- through CGI.
+Mon Mar 25 02:01:03 2013 Narihiro Nakamura <authornari@gmail.com>
-Thu Oct 30 22:59:39 2003 why the lucky stiff <why@ruby-lang.org>
+ * proc.c (bm_free): need to clean up the mark flag of a free and
+ unlinked method entry. [Bug #8100] [ruby-core:53439]
- * ext/syck/yaml2byte.c: HASH const too long. Thanks, matz.
+Sun Mar 24 22:13:51 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Thu Oct 30 19:13:53 2003 Akinori MUSHA <knu@iDaemons.org>
+ * 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]
- * ext/syck/MANIFEST: Add yamlbyte.h.
+Sun Mar 24 18:29:46 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Oct 30 14:25:31 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * string.c (rb_str_rpartition): Fix String#rpartition(/re/)
+ against a multibyte string. [Bug #8138] [ruby-dev:47183]
- * io.c (READ_DATA_BUFFERED): new macro to detect whether stdio
- buffer filled.
+Sun Mar 24 13:42:24 2013 Narihiro Nakamura <authornari@gmail.com>
- * io.c (rb_io_fptr_cleanup): move path deallocation to
- rb_io_fptr_finalize (finalizer called by GC).
+ * gc.c (GC_ENABLE_LAZY_SWEEP): new macro to switch lazy sweeping
+ for debugging. [Feature #8024] [ruby-dev:47135]
-Thu Oct 30 13:23:39 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Mar 24 12:55:47 2013 Narihiro Nakamura <authornari@gmail.com>
- * parse.y (logop): left may be NULL. [ruby-talk:84539]
+ * 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.
- * eval.c (rb_eval): NODE_CASE nd_head may be NULL.
+Sun Mar 24 11:03:31 2013 Tanaka Akira <akr@fsij.org>
-Thu Oct 30 10:14:51 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * test/ruby/test_require.rb: Remove temporally files in the tests.
- * lib/test/unit/autorunner.rb: make fox runner work.
+ * test/ruby/test_rubyoptions.rb: Ditto.
-Thu Oct 30 09:32:26 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * test/logger/test_logger.rb: Ditto.
- * process.c (rb_f_system): fixed lack of security check before
- calling do_spawn() on win32. [ruby-talk:84555]
+ * test/psych/test_psych.rb: Ditto.
-Thu Oct 30 02:46:35 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/readline/test_readline.rb: Ditto.
- * eval.c (proc_invoke): single array value to normal Proc#call
- (i.e. not via lambda call), should be treated just like yield.
- [ruby-dev:21726]
+ * test/syslog/test_syslog_logger.rb: Ditto.
-Thu Oct 30 02:25:48 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * test/webrick/test_httpauth.rb: Ditto.
- * ext/openssl/lib/openssl/buffering.rb (Buffering#initialize):
- add new method to inherit @sync from @io.sync.
+ * test/zlib/test_zlib.rb: Ditto.
- * ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): no need to
- set sync flag explicitly.
+Sun Mar 24 05:36:29 2013 Eric Hodel <drbrain@segment7.net>
- * ext/openssl/ossl_ssl.c (ossl_sslctx_initialize): call super.
+ * lib/rinda/ring.rb: Added documentation for multicast support.
- * ext/openssl/ossl_ssl.c (ossl_sslctx_setup): set extra chain
- certificates in @extra_chain_cert.
+ * NEWS: Point to above documentation.
-Wed Oct 29 22:02:04 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Sun Mar 24 05:32:39 2013 Eric Hodel <drbrain@segment7.net>
- * test/drb/drbtest.rb: use rbconfig.rb to make the path of ruby
- interpreter to exec, instead of test/ruby/envutil.rb,
+ * test/rinda/test_rinda.rb: Restore tests commented out while fixing
+ test slowdown bug before r39895.
-Wed Oct 29 19:58:59 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+Sun Mar 24 05:03:36 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tcltklib/tcltklib.c (CONST84): define CONST84 when it is not
- defined and TCL_MAJOR_VERSION >= 8.
+ * 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.
- * ext/tcltklib/tcltklib.c (VwaitVarProc, WaitVariableProc,
- rb_threadVwaitProc): use CONST84 instead of CONST.
+ * NEWS: Update with Rinda multicast support
- * ext/tcltklib/tcltklib.c (ip_rbTkWaitCommand,
- ip_rb_threadTkWaitCommand): use CONST84 always.
+Sun Mar 24 04:13:27 2013 Eric Hodel <drbrain@segment7.net>
-Wed Oct 29 17:27:05 2003 Tanaka Akira <akr@m17n.org>
+ * test/rinda/test_rinda.rb: Fixed test failures in r39890 and r39891
+ due to stopping DRb service.
- * re.c (rb_reg_s_union, Init_Regexp): new method `Regexp.union'.
+Sun Mar 24 03:34:02 2013 Eric Hodel <drbrain@segment7.net>
- * lib/pathname.rb (realpath): examine Dir.pwd because it may have
- symlinks.
+ * 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 Oct 29 17:16:31 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 24 02:14:53 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_longjmp): must not disturb original jump.
- [ruby-dev:21733]
+ * test/mkmf/test_have_macro.rb: remove temporally files in the tests.
-Wed Oct 29 15:28:34 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Mar 23 23:50:04 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * eval.c (Init_Proc): taint preallocated exception object
- sysstack_error. [ruby-talk:84534]
+ * addr2line.c (kprintf): added from FreeBSD libstand's printf.
+ this is consided as async signal safe function.
-Wed Oct 29 11:27:39 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * addr2line.c (rb_dump_backtrace_with_lines): use kfprintf.
+ [Bug #8144] [ruby-core:53632]
- * parse.y (ret_args): node may be NULL. [ruby-talk:84530]
+Sat Mar 23 23:28:00 2013 Kenta Murata <mrkn@mrkn.jp>
-Tue Oct 28 15:20:12 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_divide): Use Qnil and NIL_P
+ instead of (VALUE)0 as a return value.
- * ext/tcltklib/tcltklib.c (VwaitVarProc, ip_rbVwaitObjCmd,
- WaitVariableProc, WaitVisibilityProc, WaitWindowProc,
- ip_rbTkWaitObjCmd, ip_rbTkWaitCommand, rb_threadVwaitProc,
- rb_threadWaitVisibilityProc, rb_threadWaitWindowProc,
- ip_rb_threadVwaitObjCmd, ip_rb_threadTkWaitObjCmd): prototype;
- avoid VC++ warnings.
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_div): ditto.
-Mon Oct 27 19:19:55 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_divremain): ditto.
- * eval.c (rb_longjmp): ignore reentering error while warning.
- [ruby-dev:21730]
+ * ext/bigdecimal/bigdecimal.c (BigDecimal_remainder): ditto.
-Mon Oct 27 00:23:50 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sat Mar 23 17:39:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/tcltklib.c (ip_ruby): bug fix on Win : hang-up when
- calling 'exit' in the Tk callback procedure. [ruby-list:38656]
+ * 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]
-Sat Oct 25 09:18:04 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Mar 22 17:48:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (rb_method_missing): protect exception from within
- "inspect". (ruby-bugs:PR#1204)
+ * 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].
-Fri Oct 24 23:26:34 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Mar 22 17:38:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * hash.c (rb_hash_each): Hash#each should yield single value.
- [ruby-talk:84420]
+ * 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]
- * hash.c (env_each): ditto for ENV.each.
+Fri Mar 22 10:29:00 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Oct 23 20:25:32 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * ext/bigdecimal/bigdecimal.c: Fix style.
- * lib/webrick/server.rb (GenericServer#start): should rescue
- IOError from IO::accept. [ruby-dev:21692]
+Fri Mar 22 05:30:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Oct 23 17:59:36 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * parse.y (ambiguous_operator): refine warning message, since this
+ warning is shown after literal too.
- * eval.c (ruby_cleanup): initialize stack bottom for embedding.
- [ruby-dev:21686]
+Fri Mar 22 04:51:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/dl/extconf.rb: move list of files to clean from DEPEND file,
- to get rid of macro redefinitions.
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg): should check required
+ keyword arguments even if rest hash is defined. [ruby-core:53608]
+ [Bug #8139]
-Thu Oct 23 13:44:00 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Mar 22 01:00:17 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * parse.y: integrate operations for stack_type. [ruby-dev:21681]
+ * process.c (rb_execarg_addopt, run_exec_pgroup): use rb_pid_t
+ instead of pid_t.
-Thu Oct 23 00:41:45 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ext/pty/pty.c (raise_from_check, pty_check): ditto.
- * test/soap/calc/*, test/soap/helloworld/*: set logging threshold
- to ERROR.
+Fri Mar 22 00:04:15 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Wed Oct 22 12:53:31 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * addr2line.c (rb_dump_backtrace_with_lines): output line at once.
- * lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):
- ignore tests which raised LoadError.
+Thu Mar 21 23:17:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/drb/drbtest.rb, test/ruby/test_beginendblock.rb,
- test/ruby/test_system.rb: avoid requiring same file twice.
+ * thread.c (ruby_kill): get rid of deadlock on signal 0.
+ [ruby-dev:47182] [Bug #8137]
- * test/drb/test_drbssl.rb, test/drb/test_drbunix.rb: should not use
- ARGV unless invoked directly. do not create test cases unless
- required libraries are available.
+Thu Mar 21 22:39:46 2013 Naohisa Goto <ngotogenome@gmail.com>
-Wed Oct 22 02:31:34 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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]
- * eval.c (ruby_cleanup): should not ignore exit_value in END
- execution. [ruby-dev:21670]
+Thu Mar 21 16:48:06 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Oct 21 23:16:26 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * parse.y (simple_re_meta): escape all closing characters, not only
+ round parenthesis. [ruby-core:53578] [Bug #8133]
- * eval.c (ruby_cleanup): call finalizers and exit procs before
- terminating threads.
+Thu Mar 21 13:50:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (ruby_cleanup): preserve ruby_errinfo before ruby_finalize_0().
+ * vm_core.h (UNINITIALIZED_VAR): suppress warnings by clang 4.2.
+ [ruby-core:51742] [Bug #7756]
-Tue Oct 21 15:57:11 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Mar 21 07:34:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):
- prepend the directory of target file to the load path.
+ * ext/date/date_core.c: Typo in Date::MONTHNAMES by Matt Gauger
+ [GH fixes #261]
-Tue Oct 21 15:08:53 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+Wed Mar 20 22:53:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * win32/win32.c (do_spawn, do_aspawn): should wait child process even
- if callded with P_OVERLAY.
+ * lib/mkmf.rb (find_library): fix to format message.
+ [ruby-core:53568] [Bug #8130]
- * win32/win32.c (do_spawn, do_aspawn): should return child's exit
- status to parent.
+Wed Mar 20 22:52:52 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Oct 21 00:35:02 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * lib/mkmf.rb (install_dirs, with_destdir): prefix with DESTDIR
+ directories to install only unless bundled extension libraries.
+ [ruby-core:53502] [Bug #8115]
- * test/soap/calc/*, test/soap/helloworld/*: catch the exception from
- test server thread and recover.
+Wed Mar 20 17:47:53 2013 NAKAMURA Usaku <usa@ruby-lang.org>
-Tue Oct 21 00:22:57 2003 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+ * 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.
- * test/drb/*: import drb/runit.
+Wed Mar 20 16:40:48 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
-Mon Oct 20 23:55:47 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_signal.rb (test_hup_me): skip if HUP isn't supported.
+ On Windows this test causes ArgumentError.
- * eval.c (rb_eval): set current node after arguments evaluation.
- [ruby-dev:21632]
+Wed Mar 20 16:24:12 2013 Hiroshi Shirosaki <h.shirosaki@gmail.com>
- * eval.c (rb_yield_0): set current node and keep it at local jump.
+ * 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 Oct 20 22:01:18 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Mar 20 15:22:07 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * eval.c (rb_thread_cleanup): keep thread group for main thread.
- [ruby-dev:21644]
+ * test/win32ole/test_err_in_callback.rb (TestErrInCallBack#setup): use
+ relative path to get rid of "too long commandline" error.
-Mon Oct 20 18:28:10 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Mar 20 04:27:42 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * eval.c (rb_catch): backout.
+ * test/rinda/test_rinda.rb: remove unused variables.
+ patched by Vipul A M <vipulnsward@gmail.com>
-Mon Oct 20 17:31:46 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Mar 20 04:15:32 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * eval.c (PUSH_FRAME): generate unique number to be TAG_JUMP()
- destination.
+ * ext/bigdecimal/bigdecimal.c: fixed typo.
+ patched by Vipul A M <vipulnsward@gmail.com>
- * eval.c (localjump_destination): use unique number in ruby_frame
- for localjump destination.
+Sat Mar 16 03:40:49 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Oct 20 11:31:44 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/ruby/test_signal.rb (test_hup_me): added a few comments.
- * test/ruby/test_signal.rb (test_signal): restore old trap.
+Sat Mar 16 03:39:38 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Mon Oct 20 11:00:46 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * thread.c (ruby_kill): added a few comments.
- * gc.c (gc_sweep): loosen page free condition to avoid add_heap()
- race condition. [ruby-dev:21633]
+Sat Mar 16 03:36:56 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * gc.c (gc_sweep): do not update malloc_limit when malloc_increase
- is smaller than malloc_limit.
+ * thread.c (ruby_kill): release GVL while waiting signal delivered.
-Mon Oct 20 09:45:12 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+Tue Mar 19 19:50:48 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * lib/debug.rb (debug_command): remove debug print.
+ * ruby_kill (internal.h, thread.c): use rb_pid_t instead of pid_t.
+ this fixes the build failure of mswin introduced at r39819.
-Wed Oct 20 00:25:41 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Mar 19 17:09:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (search_required): required name must not be changed before
- loading. [ruby-dev:24492]
+ * string.c (rb_str_conv_enc_opts): convert with one converter, instead
+ of re-creating converters for each buffer expansion.
-Sun Oct 19 13:12:30 2003 Tanaka Akira <akr@m17n.org>
+Tue Mar 19 17:06:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/pathname.rb (foreachline, dir_foreach): add obsolete warning.
+ * dir.c (glob_helper): compose HFS file names from UTF8-MAC.
+ [ruby-core:48745] [Bug #7267]
-Sun Oct 19 00:14:22 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Sat Mar 16 01:44:29 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * test/soap/calc/*, test/soap/helloworkd/*: changed port# of test
- server. (17171)
+ * internal.h: added a declaration of ruby_kill().
+ * thread.c (ruby_kill): helper function of kill().
-Sat Oct 18 23:01:32 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * 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]
- * missing/acosh.c (DBL_MANT_DIG): typo fix(ifdef -> ifndef).
+ * 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.
-Sat Oct 18 05:48:59 2003 why the lucky stiff <why@ruby-lang.org>
+ * test/ruby/test_signal.rb (TestSignal#test_hup_me): test for
+ the above.
- * ext/syck/rubyext.c: YAML::Syck::compile method.
+Sat Mar 16 00:42:39 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/syck/syck.c: Buffer edge bug.
+ * io.c (linux_iocparm_len): enable only exist _IOC_SIZE().
+ Because musl libc doesn't have it. [Bug #8051] [ruby-core:53229]
- * ext/syck/yaml2byte.c: YAML to bytecode converter.
+Tue Mar 19 10:05:04 2013 Shota Fukumori <her@sorah.jp>
- * ext/syck/yamlbyte.h: Ditto.
+ * ext/objspace/objspace.c: Fix typo in doc. Patch by Sho Hashimoto.
+ [Bug #8116] [ruby-dev:47177]
- * ext/syck/bytecode.c: Bytecode parser fixes to empty collections
- and empty strings.
+Tue Mar 19 02:13:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * ext/syck/token.c: Ditto.
+ * configure.in: set ac_cv_prog_cxx if CXX is supplied.
-Fri Oct 17 23:07:38 2003 Akinori MUSHA <knu@iDaemons.org>
+Tue Mar 19 01:18:00 2013 Kenta Murata <mrkn@mrkn.jp>
- * ext/enumerator/enumerator.c, ext/enumerator/enumerator.txt:
- Provide Kernel#to_enum as an alias for Kernel#enum_for. Maybe
- this is a better name.
+ * configure.in: Fix c++ compiler auto-selection not only for
+ Darwin 11.x, but also the other versions of Darwin.
-Fri Oct 17 23:00:30 2003 Akinori MUSHA <knu@iDaemons.org>
+Tue Mar 19 00:26:22 2013 Narihiro Nakamura <authornari@gmail.com>
- * lib/generator.rb: Add rdoc documentation.
+ * gc.c: Improve accuracy of objspace_live_num() and
+ allocated/freed counters. patched by tmm1(Aman Gupta).
+ [Bug #8092] [ruby-core:53392]
-Fri Oct 17 22:16:42 2003 Akinori MUSHA <knu@iDaemons.org>
+Mon Mar 18 21:42:48 2013 Narihiro Nakamura <authornari@gmail.com>
- * lib/set.rb: Reword and fix Overview.
+ * gc.c: Avoid unnecessary heap growth. patched by tmm1(Aman Gupta).
+ [Bug #8093] [ruby-core:53393]
- * lib/set.rb: It is not necessary to require
- 'test/unit/ui/console/testrunner'.
+Mon Mar 18 17:58:36 2013 Narihiro Nakamura <authornari@gmail.com>
-Fri Oct 17 11:15:22 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.c: Fix unlimited memory growth with large values of
+ RUBY_FREE_MIN. patched by tmm1(Aman Gupta).
+ [Bug #8095] [ruby-core:53405]
- * test/ruby/test_range.rb: added.
+Mon Mar 18 14:46:19 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * MANIFEST: add test/ruby/test_range.rb.
+ * test/win32ole/test_err_in_callback.rb
+ (TestErrInCallBack#test_err_in_callback): shouldn't create a file in
+ the top of build directory.
-Fri Oct 17 03:21:23 2003 William Sobel <will.sobel@barra.com>
+Mon Mar 18 13:29:52 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/socket/socket.c (make_hostent): h_aliases may be NULL.
- (ruby-bugs:PR#1195)
+ * vm_dump.c (backtrace): on darwin use custom backtrace() to trace
+ beyond _sigtramp. darwin's backtrace can't trace beyond signal
+ trampoline with sigaltstack.
- * ext/socket/socket.c (sock_s_gethostbyaddr): ditto.
+ * configure.in: check execinfo.h on darwin.
-Fri Oct 17 00:12:41 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Mar 18 11:03:23 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/tk/lib/tk.rb: (bug fix) instance variable @frame was used
- without initializing on TkComposite module.
+ * vm_exec.h (END_INSN): revert r39517 because the segv seems fixed by
+ r39806.
-Thu Oct 16 23:51:04 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Mon Mar 18 10:41:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/tk/lib/tk.rb: If $DEBUG == true and some exception is caused
- in a callback operation, Ruby/Tk shows a (verbose) backtrace
- information on the callback process.
+ * vm_exec.c: Correct predefined macro name. This typo is introduced by
+ r36534 and should be backported to ruby_2_0_0.
-Thu Oct 16 17:09:19 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Mar 18 03:18:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/debug.rb (DEBUGGER__::Context::debug_command): do not call
- debug_silent_eval() when $1 is not set. (ruby-bugs:PR#1194)
+ * array.c: Typo in Array#delete by Timo Sand [GH fixes #258]
-Thu Oct 16 16:54:57 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Mar 18 01:14:56 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * string.c (rb_str_upto): ("a"..."a").to_a should return [].
- [ruby-core:01634]
+ * io.c (io_fillbuf): show fd number on failure to debug.
+ http://c5632.rubyci.org/~chkbuild/ruby-trunk/log/20130316T050302Z.diff.html.gz
-Thu Oct 16 16:40:51 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Mar 17 02:38:21 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/tk/lib/tk.rb:
- Add Tk::EncodedString and Tk::UTF8_String class to support
- characters using the \uXXXX escape to the UNICODE string.
+ * ext/date/date_core.c: include sys/time.h for avoiding implicit
+ declaration of gettimeofday().
- * ext/tk/sample/{demos-en,demos-jp}/unicodeout.rb
- new demo-scripts (samples of Tk::UTF8_String)
+Sun Mar 17 00:55:31 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/tk/sample/{demos-en,demos-jp}/widget
- add entries for 'unicodeout.rb'
+ * include/ruby/missing.h: removed __linux__. it's unnecessary.
-Thu Oct 16 08:38:06 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Mar 15 14:57:16 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * test/digest/test_digest.rb (test_eq): show failed class.
+ * 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.
- * test/ruby/test_iterator.rb (test_break, test_return_trace_func):
- test localjump destination.
+Wed Mar 13 15:16:35 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Oct 15 20:22:31 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * include/ruby/missing.h (__syscall): moved to...
+ * io.c: here. because __syscall() is only used from io.c.
- * lib/soap/netHttpClient.rb: use URI::HTTP#request_uri instead of
- instance_eval('path_query'). [ruby-list:38575]
+ * 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].
-Wed Oct 15 17:24:45 2003 URABE Shyouhei <root@mput.dip.jp>
+Wed Mar 13 14:38:53 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * lib/cgi.rb (CGI::Cookie): tiny typo fix.
+ * include/ruby/missing.h (struct timespec): include <sys/time.h>
-Wed Oct 15 15:00:54 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Mar 13 13:54:45 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (ruby_run): just return FAILURE instead of parse error
- count. [ruby-list:38569]
+ * 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.
-Wed Oct 15 13:17:02 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * file.c: include sys/time.h explicitly.
+ * random.c: ditto.
+ * thread_pthread.c: ditto.
+ * time.c: ditto.
+ * ext/date/date_strftime.c: ditto.
- * ext/digest/digest.c (rb_digest_base_alloc): need to initialize
- buffer. [ruby-dev:21622]
+Fri Mar 15 14:45:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Oct 15 11:23:05 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in (_FORTIFY_SOURCE): added a few comments.
- * marshal.c (w_object): dump extended modules as well.
+Fri Mar 15 14:17:55 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * marshal.c (r_object0): TYPE_USRMARSHAL should restore extended
- modules before invoking marshal_load. these two fixes are done
- by Masatoshi Seki <m_seki@mva.biglobe.ne.jp>.
+ * thread_pthread.c (numberof): renamed from ARRAY_SIZE() because
+ other all files use numberof().
-Wed Oct 15 09:30:34 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+Say Mar 15 01:33:00 2013 Charles Oliver Nutter <headius@headius.com>
- * ext/enumerator/enumerator.c (enumerator_each): avoid VC++ warning.
+ * 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.
- * ext/syck/syck.h: include stdio.h for definition of FILE.
+Fri Mar 15 23:06:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 15 08:09:07 2003 why the lucky stiff <why@ruby-lang.org>
+ * time.c (GetTimeval): check if already initialized instance.
- * ext/syck/bytecode.c: Checkin of YAML bytecode support.
+ * time.c (GetNewTimeval): check if newly created instance.
- * ext/syck/gram.c: Ditto.
+ * time.c (time_init_0, time_init_1, time_init_copy, time_mload): must
+ be newly created instance. [ruby-core:53436] [Bug #8099]
- * ext/syck/syck.c: Ditto.
+Fri Mar 15 14:51:33 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/syck/token.c: Ditto.
+ * file.c (rb_sys_fail_path_with_func): share same function, and path
+ may be nil.
- * ext/syck/handler.c: Ditto.
+Fri Mar 15 08:24:51 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/syck/handler.c: Now using 'tag' rather than 'taguri' in type URIs.
+ * io.c (rb_sys_fail_path): define & use rb_sys_fail_path0 like r39752
- * ext/syck/rubyext.c: Ditto (on both counts).
+Fri Mar 15 04:08:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Wed Oct 15 05:05:53 2003 Akinori MUSHA <knu@iDaemons.org>
+ * proc.c: Typo in Proc.arity found by Jack Nagel [Bug #8094]
- * lib/generator.rb: A new library which converts an internal
- iterator to an external iterator.
+Thu Mar 14 16:59:09 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/abbrev.rb: A new library which creates an abbreviation table
- from a list.
+ * configure.in (rb_cv_function_name_string): macro for function name
+ string predefined identifier, __func__ in C99, or __FUNCTION__ in
+ gcc.
-Wed Oct 15 04:31:51 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * file.c (rb_sys_fail_path): use RUBY_FUNCTION_NAME_STRING.
- * ext/tk/sample/demos-en/entry3.rb, ext/tk/sample/demos-jp/entry3.rb :
- new demo-scripts
+Thu Mar 14 14:12:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/tk/sample/demos-en/widget, ext/tk/sample/demos-jp/widget :
- add entries for 'entry3.rb'
+ * file.c (rb_sys_fail_path): use rb_sys_fail_path0 only on GCC.
+ __func__ is C99 feature.
-Wed Oct 15 04:31:47 2003 Akinori MUSHA <knu@iDaemons.org>
+Thu Mar 14 12:59:59 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * test/digest/test_digest.rb: Moved from ext/digest/test.rb.
+ * 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 Oct 15 03:53:20 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * file.c (rb_sys_fail_path): use rb_sys_fail_path0.
- * ext/tk/lib/tk.rb: fixed trouble on auto-load Tcl commands (enbug
- on the last commit).
+Thu Mar 14 12:53:15 2013 Luis Lavena <luislavena@gmail.com>
-Wed Oct 15 00:25:00 2003 Yukihiro Matsumoto <matz@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]
- * parse.y (yylex): argument parentheses preceded by spaces should
- be warned; not error. [ruby-talk:84103]
+Thu Mar 14 11:53:01 2013 Narihiro Nakamura <authornari@gmail.com>
-Wed Oct 15 00:20:15 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * NEWS: describe RUBY_HEAP_SLOTS_GROWTH_FACTOR.
- * ext/tcltklib/tcltklib.c: replace Tcl/Tk's vwait and tkwait to
- switch on threads smoothly and avoid seg-fault.
+Thu Mar 14 10:01:12 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tcltklib/tcltklib.c: add TclTkIp._thread_vwait and
- _thread_tkwait for waiting on a thread. (Because Tcl/Tk's vwait
- and tkwait command wait on an eventloop.)
+ * doc/globals.rdoc: $? is thread-local
- * ext/tk/lib/multi-tk.rb: support TclTkIp._thread_vwait and
- _thread_tkwait.
+Wed Mar 13 23:25:59 2013 Narihiro Nakamura <authornari@gmail.com>
- * ext/tk/lib/tk.rb: now, TkVariable#wait has 2 arguments.
- If 1st argument is true, waits on a thread. If false, waits on
- an eventloop. If 2nd argument is true, checks existence of
- rootwidgets. If false, doesn't. Default is wait(true, false).
+ * 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]
- * ext/tk/lib/tk.rb: add TkVariable#tkwait(arg) which is equal to
- TkVariable#wait(arg, true). wait_visibility and wait_destroy
- have an argument for waiting on a thread or an eventloop.
+Wed Mar 13 19:43:46 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
- * ext/tk/lib/tk.rb: improve of accessing Tcl/Tk's special variables.
+ * doc/irb/irb.rd.ja: fix typo
- * ext/tk/lib/tkafter.rb: support 'wait on a thread' and 'wait on
- an eventloop'.
+ * ext/tk/MANUAL_tcltklib.eng: fix typos
-Wed Oct 15 00:10:24 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ext/tk/sample/tktextframe.rb (Tk#component_delegates): fix typo
- * lib/soap/baseData.rb: Introduce SOAPType as the common ancestor of
- SOAPBasetype and SOAPCompoundtype.
+Wed Mar 13 15:13:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/soap/generator.rb, lib/soap/element.rb, lib/soap/encodingstyle/*:
- Encoding methods signature change. Pass SOAPGenerator as a parameter.
+ * class.c (rb_obj_singleton_methods): collect methods from the origin
+ class. [ruby-core:53207] [Bug #8044]
- * lib/soap/mapping/*, test/soap/marshal/test_marshal.rb: Refactoring
- for better marshalling/unmarshalling support. Now I think SOAP
- marshaller supports all kind of object graph which is supported by
- Ruby's original marshaller. Of course there could be bugs as always.
- Find it. :-)
+Wed Mar 13 14:51:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/soap/rpc/standaloneServer.rb: Set severity threshould to INFO.
- DEBUG is too noisy.
+ * 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/xsd/datatypes.rb: DateTime#of is obsoleted. Use DateTime#offset.
+Wed Mar 13 13:06:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/wsdl/emptycomplextype.wsdl, test/xsd/xmlschema.xml: Avoid
- useless warning.
+ * configure.in (rm, shvar_to_cpp, unexpand_shvar): local is not
+ available on old shells.
-Tue Oct 14 19:09:35 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (shvar_to_cpp): escape quotes for old shells.
+ [Bug #7959] [Bug #8071]
- * eval.c (ruby_finalize_0): return the given exit status unless
- SystemExit got raised.
+Wed Mar 13 11:11:07 2013 Shugo Maeda <shugo@ruby-lang.org>
-Tue Oct 14 11:53:49 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * object.c (Init_Object): remove Module#used, which has been
+ introduced in Ruby 2.0 by mistake. [Bug #7916] [ruby-core:52719]
- * intern.h (ruby_stop): never return.
+Wed Mar 13 05:49:29 2013 Eric Hodel <drbrain@segment7.net>
- * ruby.h (ruby_run): ditto.
+ * lib/irb.rb: Fix typo
-Tue Oct 14 04:43:55 2003 Tanaka Akira <akr@m17n.org>
+Tue Mar 12 22:20:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/pathname.rb (realpath): make ELOOP check bit more robust.
- (children): prepend self by default.
- (chroot): obsoleted.
+ * compile.c (iseq_set_arguments, iseq_compile_each): support required
+ keyword arguments. [ruby-core:51454] [Feature #7701]
-Tue Oct 14 02:29:31 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * iseq.c (rb_iseq_parameters): ditto.
- * eval.c (rb_require_safe): segfault after loading .so.
+ * parse.y (f_kw, f_block_kw): ditto. this syntax is still
+ experimental, the notation may change.
-Tue Oct 14 02:05:23 2003 Akinori MUSHA <knu@iDaemons.org>
+ * vm_core.h (rb_iseq_struct): ditto.
- * ext/Setup*, ext/enumerator/*: Add ext/enumerator, a helper
- module for the Enumerable interface.
+ * vm_insnhelper.c (vm_callee_setup_keyword_arg): ditto.
-Mon Oct 13 23:55:59 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Tue Mar 12 17:02:53 2013 TAKANO Mitsuhiro <tak@no32.tk>
- * test/ruby/envutil.rb: use Config::CONFIG["ruby_install_name"],
- not "ruby".
+ * date_core.c: clearly specify operator precedence.
-Mon Oct 13 23:57:29 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Mar 12 17:00:45 2013 TAKANO Mitsuhiro <tak@no32.tk>
- * eval.c (rb_feature_p): match by classified suffix.
+ * insns.def: fix condition.
- * eval.c (rb_require_safe): require library in the specified safe
- level.
+Tue Mar 12 16:48:19 2013 TAKANO Mitsuhiro <tak@no32.tk>
- * variable.c (rb_autoload, rb_autoload_load): restore safe level
- when autoload was called. [ruby-dev:21338]
+ * rational.c: fix dangling if, else-if and else.
- * intern.h: prototypes; rb_require_safe.
+Tue Mar 12 06:27:59 2013 Eric Hodel <drbrain@segment7.net>
- * test/runner.rb: accept non-option arguments.
+ * 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.
-Mon Oct 13 20:49:51 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems/ext/ext_conf_builder.rb: Use full path to siteconf.rb
+ in case the extconf.rb changes directories (like memcached does).
- * string.c (str_new4): should not preserve FL_TAINT status in the
- internal shared string. [ruby-dev:21601]
+ * 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.
- * string.c (rb_str_new4): ditto.
+ * 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.
- * eval.c: use EXIT_SUCCESS and EXIT_FAILURE for exit values.
+Tue Mar 12 02:25:19 2013 Eric Hodel <drbrain@segment7.net>
- * process.c: ditto. [ruby-list:38521]
+ * 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.
-Mon Oct 13 19:51:02 2003 Koji Arai <jca02266@nifty.ne.jp>
+Mon Mar 11 22:44:57 2013 Tanaka Akira <akr@fsij.org>
- * lib/debug.rb (debug_command): should enter emacs mode when
- assigned any value to the environment variable "EMACS".
- On Meadow, (getenv "EMACS") is "meadow".
+ * 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.
-Sun Oct 12 14:45:03 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Mon Mar 11 19:22:54 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/win32ole/extconf.rb: check "windows.h", not "windows".
- [ruby-talk:84051]
+ * test/mkmf/base.rb: class name conflict.
-Sat Oct 11 20:41:03 2003 Corinna Vinschen <corinna@vinschen.de>
+Mon Mar 11 18:45:09 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * file.c (eaccess): Use access(2) on Cygwin.
+ * enumerator.c (enumerator_with_index): try to convert given offset to
+ integer. fix bug introduced in r39594.
-Sat Oct 11 17:09:21 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Mon Mar 11 17:27:57 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * lib/rexml/quickpath.rb (REXML::QuickPath::match):
- escape '[' to avoid warning.
+ * test/ruby/envutil.rb (EnvUtil.with_default_external): add for
+ changing Encoding.default_external without warnings.
-Sat Oct 11 16:08:41 2003 Tanaka Akira <akr@m17n.org>
+ * test/ruby/envutil.rb (EnvUtil.with_default_internal): ditto.
- * lib/pathname.rb (realpath): check existence of the file.
+ * test/ruby/test_io_m17n.rb: use above with_default_external.
- * lib/pathname.rb (realpath): re-implemented.
- (realpath_root?, realpath_rec): removed
+Mon Mar 11 16:57:00 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sat Oct 11 10:19:39 2003 Shugo Maeda <shugo@ruby-lang.org>
+ * io.c (extract_binmode): raise error even if binmode and textmode
+ don't conflict. [Bug #5918] [ruby-core:42199]
- * lib/monitor.rb: handle exceptions correctly. Thanks, Gennady
- Bystritsky.
+Mon Mar 11 12:25:12 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Oct 10 07:50:54 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * Merge Onigmo d4bad41e16e3eccd97ccce6f1f96712e557c4518.
+ fix lookbehind assertion fails with /m mode enabled. [Bug #8023]
+ fix \Z matches where it shouldn't. [Bug #8001]
- * eval.c (is_defined): inheritance line adjustment as like as
- rb_call_super().
+Mon Mar 11 11:53:35 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Oct 10 01:19:00 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * lib/mkmf.rb (MakeMakefile#dir_config, MakeMakefile#_libdir_basename):
+ defer use of instance variable until needed. [Bug #8074]
- * ext/openssl/ossl_x509name.c (ossl_x509name_initialize): add
- optional argument to specify the DirectoryString type
- (ASN1::UTF8STRING by default). RFC3280 deprecates PrintableString
- for DirectoryString, and strongly requires to use UTF8String for
- all certificates issued after December, 31 2003.
+Thu Mar 7 10:42:28 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/openssl/lib/openssl/x509.rb (X509::Name::parse): ditto.
+ * 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.
-Thu Oct 9 23:50:21 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Mar 7 10:40:49 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (rb_thread_start_0): prevent thread from GC.
- [ruby-dev:21572]
+ * tool/change_maker.rb (#diff2index): check Encoding::BINARY.
+ BASERUBY may still be 1.8.x.
-Thu Oct 9 19:11:44 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Mar 7 08:47:42 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (rb_thread_start_0): non-volatile should be restored from
- volatile.
+ * NEWS (Mutex#owned?): no longer experimental.
-Thu Oct 9 17:43:36 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Mar 10 23:38:15 2013 Luis Lavena <luislavena@gmail.com>
- * eval.c (proc_save_safe_level, proc_get_safe_level,
- proc_set_safe_level): save/restore safe level 1..4.
+ * 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.
-Thu Oct 9 16:33:23 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Mar 10 23:27:05 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * marshal.c (r_object0): remove unnecessary iv restoration for
- USRMARSHAL. [ruby-dev:21582]
+ * 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]
- * marshal.c (w_object): dump generic instance variables from
- a string from '_dump'.
+Sun Mar 10 17:00:22 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * variable.c (rb_generic_ivar_table): return 0 if obj's FL_EXIVAR
- is not set.
+ * complex.c: edited rdoc.
+ * rational.c: ditto.
- * time.c (time_dump): copy instance variables to dumped string, to
- be included in the marshaled data.
+Sun Mar 10 15:02:39 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * bignum.c (rb_big2ulong): add range check to ensure round trip.
+ * process.c (setup_communication_pipe): remove unused function.
+ it was unintentionally added r39683.
-Thu Oct 9 15:45:27 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Mar 6 00:30:40 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * pack.c (uv_to_utf8): change message to "out of range", since
- negative values are not "too big". [ruby-dev:21567]
+ * tool/gen_ruby_tapset.rb: add tapset generator.
-Thu Oct 9 14:05:38 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Mar 6 03:27:43 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (rb_set_end_proc, rb_exec_end_proc): restore safe level.
- [ruby-dev:21557]
+ * probes.d (symbol-create): change argument name `string' to
+ `str'. `string' is a keyword for systemtap.
-Thu Oct 9 10:51:04 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Mar 5 22:23:01 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (rb_yield_0): no error if block is empty.
+ * probes.d: added argument name
-Thu Oct 9 06:43:33 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Mar 7 01:17:00 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (localjump_error): id should be ID.
+ * 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.
- * eval.c (rb_eval): nd_rval is set in copy_node_scope().
+Thu Mar 7 00:14:51 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (rb_yield_0): unused variable.
+ * io.c (rb_update_max_fd): use ATOMIC_CAS because this function
+ is used from timer thread too.
- * eval.c (rb_yield_0): nothing to do for empty node.
+Wed Mar 6 23:30:21 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (call_end_proc, proc_invoke): adjust backtrace in END.
- [ruby-dev:21551]
+ * 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.
- * eval.c (rb_thread_start_0): set the value by break as the result.
- [ruby-dev:21552]
+Wed Mar 6 22:36:19 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (rb_thread_start_0, rb_thread_raise, rb_callcc): save
- variables across THREAD_SAVE_CONTEXT.
+ * 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.
-Thu Oct 9 12:05:46 2003 Eric Sunshine <sunshine@sunshineco.com>
+ * thread_pthread.c (timer_thread_sleep): adjust the above changes.
- * configure.in: revived NextStep, OpenStep, and Rhapsody ports which
- had become unbuildable; enhanced --enable-fat-binary option so that
- it accepts a list of desired architectures (rather than assuming a
- fixed list), or defaults to a platform-appropriate list if user does
- not provide an explicit list; made the default list of architectures
- for MAB (fat binary) more comprehensive; now uses -fno-common even
- when building the interpreter (in addition to using it for
- extensions), thus allowing the interpreter to be embedded into a
- plugin module of an external project (in addition to allowing
- embedding directly into an application); added checks for
- <netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
- ensures that -I/usr/local/include is employed when extensions'
- extconf.rb scripts invoke have_header() since extension checks on
- NextStep and OpenStep will fail without it if the desired resource
- resides in the /usr/local tree; fixed formatting of --help message.
+ * thread_pthread.c (setup_communication_pipe_internal): factor
+ out pipe initialize logic.
- * Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
- invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
- (see configure's --enable-fat-binary option); added rule for new
- missing/getcwd.c.
+Wed Mar 6 22:56:14 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * defines.h: fixed endian handling during MAB build (see configure's
- --enable-fat-binary option) to ensure that all portions of the
- project see the correct WORDS_BIGENDIAN value (some extension modules
- were getting the wrong endian setting); added missing constants
- GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
- and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
- define in NeXT section.
+ * thread_pthread.c (ubf_select): add to small comments why we
+ need to call rb_thread_wakeup_timer_thread().
- * dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
- NextStep since, on some installations, this value always resolves
- uselessly to zero.
+Wed Mar 6 21:42:24 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * dln.c: added error reporting to NextStep extension loader since the
- previous behavior of failing silently was not useful; now ensures
- that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
- for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
- on Rhapsody since this header lacks multiple-include protection,
- which resulted in "redefinition" compilation errors.
+ * 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.
- * main.c: also create hard reference to objc_msgSend() on NeXT
- platforms (in addition to Apple platforms).
+Sun Mar 3 02:42:29 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * lib/mkmf.rb: now exports XCFLAGS from configure script to extension
- makefiles so that extensions can be built MAB (see configure's
- --enable-fat-binary option); also utilize XCFLAGS in cc_command()
- (but not cpp_command() because MAB flags are incompatible with
- direct invocation of `cpp').
+ * thread_pthread.c (consume_communication_pipe): retry when
+ read returned CCP_READ_BUFF_SIZE.
- * ext/curses/extconf.rb: now additionally checks for presence of these
- curses functions which are not present on NextStep or Openstep:
- bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
- setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
- wscrl(), wsetscrreg()
+Wed Mar 6 21:31:35 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/curses/curses.c: added appropriate #ifdef's for additional set of
- curses functions now checked by extconf.rb; fixed curses_bkgd() and
- window_bkgd() to correctly return boolean result rather than numeric
- result; fixed window_getbkgd() to correctly signal an error by
- returning nil rather than -1.
+ * 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.
- * ext/etc/etc.c: setup_passwd() and setup_group() now check for null
- pointers before invoking rb_tainted_str_new2() upon fields extracted
- from `struct passwd' and `struct group' since null pointers in some
- fields are common on NextStep/OpenStep (especially so for the
- `pw_comment' field) and rb_tainted_str_new2() throws an exception
- when it receives a null pointer.
+Wed Mar 6 21:00:23 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
- platforms such as NextStep and OpenStep which lack strdup().
+ * thread_pthread.c (USE_SLEEPY_TIMER_THREAD): use more accurate
+ ifdef conditions.
- * ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
- gethostbyaddr(), and gethostbyname() from (const char*) to non-const
- (char*) for older platforms such as NextStep and OpenStep.
+Sun Mar 3 02:30:36 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
- platforms such as NextStep and OpenStep which lack strdup(); include
- <netinet/in_systm.h> if present for NextStep and OpenStep; cast first
- argument of gethostbyaddr() and getservbyname() from (const char*) to
- non-const (char*) for older platforms.
+ * 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.
- * ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
- platforms such as NextStep and OpenStep which lack strdup().
+Sun Mar 10 09:12:51 2013 Tadayoshi Funaba <tadf@dotrb.org>
-Wed Oct 8 22:19:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+ * complex.c: described syntax of string form.
+ * rational.c: ditto.
- * lib/test/unit.rb: removed installation instructions.
+Sat Mar 9 11:58:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/test/unit/ui/testrunnermediator.rb: moved the run flag to a more
- central location.
+ * marshal.c (w_extended): check for prepended object.
+ [ruby-core:53206] [Bug #8043]
- * lib/test/unit.rb: ditto.
+Sat Mar 9 08:36:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/test/unit.rb: extracted the running code in to AutoRunner.
+ * 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].
- * lib/test/unit/autorunner.rb: added.
+Sat Mar 9 00:25:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/test/unit/collector/objectspace.rb: extracted common test
- collection functionality in to a module.
+ * 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]
- * lib/test/unit/collector.rb: ditto; added.
+Fri Mar 8 19:44:00 2013 Akinori MUSHA <knu@iDaemons.org>
- * test/testunit/collector/test_objectspace.rb: ditto.
+ * man/rake.1, man/ruby.1: Use the Pa macro to make URLs stand out.
- * lib/test/unit/collector/dir.rb: added. Supports collecting tests out
- of a directory structure.
+Fri Mar 8 13:20:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/testunit/collector/test_dir.rb: added.
+ * ext/pathname/pathname.c (path_f_pathname): rdoc for Pathname()
- * test/runner.rb: simplified to use the new capabilities.
+Fri Mar 8 12:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Oct 7 15:23:09 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * man/rake.1: Document ENVIRONMENT variables on RAKE(1) manpage
- * test/ruby/test_beginendblock.rb: add tests for nested BEGIN/END.
+Fri Mar 8 10:44:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/ruby/beginmainend.rb: add tests for nested BEGIN/END.
+ * lib/webrick/httpproxy.rb: Fix typos in HTTPProxyServer [Bug #8013]
+ Patch by Nobuhiro IMAI [ruby-core:53127]
- * test/ruby/endblockwarn.rb: new file added to test of END-in-method
- warning.
+Fri Mar 8 03:16:15 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
-Tue Oct 7 12:23:47 2003 Tanaka Akira <akr@m17n.org>
+ * class.c (rb_mod_ancestors): Include singleton_class in ancestors
+ list [Feature #8035]
- * ext/fcntl/fcntl.c (Init_fcntl): define Fcntl::O_ACCMODE.
+ * test/ruby/test_module.rb (class): test for above
- * ext/socket/extconf.rb: useless assignment removed.
+ * test/ruby/marshaltestlib.rb (module): adapt test
-Tue Oct 7 09:13:24 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * NEWS: list change
- * test/ruby/test_beginendblock.rb (test_endinmethod): END{} is now
- allowed in eval.
+Thu Mar 7 14:21:37 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Oct 7 04:15:25 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * compile.c (iseq_compile_each): pass keyword arguments to zsuper,
+ with current values. [ruby-core:53114] [Bug #8008]
- * parse.y (stmt): should not expand mrhs if lhs is solely starred.
+Thu Mar 7 12:53:47 2013 Eric Hodel <drbrain@segment7.net>
-Tue Oct 7 02:57:53 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems/commands/setup_command.rb: Install .pem files.
+ * test/rubygems/test_gem_commands_setup_command.rb: Test for the
+ above.
- * parse.y (stmt): rhs of multiple assignment should not be
- expanded using "to_a". [ruby-dev:21527]
+ * 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.
-Tue Oct 7 01:42:34 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * lib/rubygems.rb: Version 2.0.2
- * ext/openssl/ossl_asn1.c (ossl_asn1_get_asn1type): use appropriate
- free function for ASN1_OBJECT.
+ * lib/rubygems/test_utilities.rb: Ensure scheme and uri class match.
- * ext/openssl/ossl_asn1.c (ossl_asn1obj_get_sn): add new function for
- ASN1::ObjectId#sn; it returns short name text representation of OID.
+Thu Mar 7 10:39:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/ossl_asn1.c (ossl_asn1obj_get_ln): add new function for
- ASN1::ObjectId#ln; it returns long name text representation of OID.
+ * tool/rbinstall.rb (gem): Gem.ensure_gem_subdirectories now has mode
+ option since r39607. refix of r38870.
- * ext/openssl/ossl_asn1.c (ossl_asn1obj_get_oid): add new function for
- ASN1::ObjectId#oid; it returns numerical representation of OID.
+Wed Mar 6 13:14:28 2013 Eric Hodel <drbrain@segment7.net>
-Mon Oct 6 22:59:46 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * test/rubygems/test_gem_spec_fetcher.rb: Removed unused variable.
- * lib/csv.rb (IOReader, BasicWriter): call binmode when a given IO
- respond_to?(:binmode). record separator was wrong when you gave
- text mode IO to Reader.parse and Writer.generate.
+Wed Mar 6 08:10:15 2013 Eric Hodel <drbrain@segment7.net>
- * test/csv/test_csv.rb: add tests for above change.
+ * test/rubygems/test_require.rb: Fix tests when 'a.rb' exists.
+ [ruby-trunk - Bug #7749]
-Sun Oct 5 23:27:09 2003 Tanaka Akira <akr@m17n.org>
+Wed Mar 6 08:00:59 2013 Eric Hodel <drbrain@segment7.net>
- * ext/socket/extconf.rb: check recvmsg even if sendmsg is exists.
+ * lib/rubygems.rb: Allow specification of directory permissions.
+ [ruby-trunk - Bug #7713]
+ * test/rubygems/test_gem.rb: Test for the above.
- * ext/socket/socket.c (thread_read_select): restored.
+Wed Mar 6 07:40:21 2013 Eric Hodel <drbrain@segment7.net>
-Mon Oct 6 16:23:38 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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.
- * marshal.c (w_object): wrong method name in the message.
+ * lib/rubygems/security.rb: Make OpenSSL optional for RubyGems.
+ * lib/rubygems/commands/cert_command.rb: ditto.
-Mon Oct 6 16:02:05 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rubygems/config_file.rb: Display file with YAML error, not
+ ~/.gemrc
- * parse.y (stmt): END in method should cause warning.
- [ruby-dev:21519]
+ * 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.
-Mon Oct 6 15:17:23 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * 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.
- * test/ruby/test_iterator.rb (test_block_argument_without_paren):
- added. (follows sample/test.rb)
+ * lib/rubygems.rb: Update win_platform? check for JRuby compatibility.
-Mon Oct 6 11:57:06 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * test/rubygems/test_gem_installer.rb: Update for Ruby 1.9.2
+ compatibility
- * test/ruby/test_beginendblock.rb, test/ruby/beginmainend.rb: added
- test for eval-ed BEGIN END order.
+Wed Mar 6 01:19:28 2013 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
-Mon Oct 6 09:19:54 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * enumerator.c (enumerator_with_index, lazy_take): use INT2FIX(0)
+ instead of INT2NUM(0).
- * marshal.c (w_object): should pass "weak" value to next level.
- [ruby-dev:21496]
+ * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): ditto.
- * eval.c (proc_alloc): should not use cached object if klass is
- different. [ruby-talk:83685]
+ * ext/fiddle/function.c (function_call): ditto.
-Sun Oct 5 23:27:09 2003 Tanaka Akira <akr@m17n.org>
+ * ext/openssl/ossl_x509store.c (ossl_x509store_initialize): ditto.
- * lib/pathname.rb: version information is added in document.
+ * process.c (proc_getsid): ditto.
-Sun Oct 5 23:07:03 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * transcode.c (econv_finish): ditto.
- * eval.c (rb_f_END): block should be given. [ruby-dev:21497]
+Tue Mar 5 21:36:43 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 5 22:51:23 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * class.c (rb_prepend_module): check redefinition of built-in optimized
+ methods. [ruby-dev:47124] [Bug #7983]
- * lib/ext/openssl/extconf.rb: add check for some engine functions
- unavailable in OpenSSL-0.9.6.
+ * vm.c (rb_vm_check_redefinition_by_prepend): ditto.
- * lib/ext/openssl/ossl_engine.c: ditto.
+Tue Mar 5 20:29:25 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 5 17:56:30 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * proc.c (mnew): revert r39224. [ruby-core:53038] [Bug #7988]
- * eval.c (rb_eval): fix evaluation order. [ruby-list:38431]
+Tue Mar 5 20:23:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 5 15:05:06 2003 akira yamada <akira@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.
- * test/uri/*: translated RUNIT to Test::Unit.
+Tue Mar 5 12:30:55 2013 Eric Hodel <drbrain@segment7.net>
-Sun Oct 5 14:37:39 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * lib/rubygems.rb: Bump version to 2.0.1 for upcoming bugfix release
- * lib/xsd/datatypes.rb: Rational -> Decimal string bug fix.
+ * lib/rubygems/ext/ext_conf_builder.rb: Restore ruby 1.8 compatibility
+ for [Bug #7698]
+ * test/rubygems/test_gem_installer.rb: Ditto.
- * test/soap/marshal/test_marshal.rb: ditto.
+ * lib/rubygems/package.rb: Restore ruby 1.8 compatibility.
- * test/soap/calc/test_calc_cgi.rb: add Config::CONFIG["EXEEXT"] to
- RUBYBIN.
+ * test/rubygems/test_gem_dependency_installer.rb: Fix warnings
-Sun Oct 5 13:47:22 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Tue Mar 5 12:24:23 2013 Eric Hodel <drbrain@segment7.net>
- * test/ruby/test_beginendblock.rb, test/ruby/beginmainend.rb: add tests
- about scope, order and allowed syntax.
+ * enumerator.c (enumerator_with_index): Restore handling of a nil memo
+ from r39594.
-Sun Oct 5 11:54:29 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Tue Mar 5 10:40:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/envutil.rb: added. split "rubybin" from test_system.rb.
+ * 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]
- * test/ruby/test_system.rb: use envutil.rb
+Tue Mar 5 10:20:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/ruby/test_beginendblock.rb: added.
+ * enumerator.c (enumerator_with_index_i): allow Bignum as offset, to
+ get rid of conversion exception and integer overflow.
+ [ruby-dev:47131] [Bug #8010]
- * test/ruby/beginmainend.rb: added. used in test_beginendblock.rb.
+ * numeric.c (rb_int_succ, rb_int_pred): shortcut optimization for
+ Bignum.
-Sun Oct 5 11:23:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+Tue Mar 5 10:02:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/testunit/runit/test_testresult.rb: removed some unnecessary
- cruft.
+ * lib/rubygems/ext/ext_conf_builder.rb (Gem::Ext::ExtConfBuilder.build):
+ clear DESTDIR so RUBYARCHDIR and RUBYLIBDIR are not be overridden.
+ [Bug #7698]
-Sun Oct 5 11:14:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+Mon Mar 4 15:33:40 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/rubyunit.rb: aliasing TestCase into the top level is
- problematic.
+ * 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]
- * lib/runit/assert.rb: fixed a couple of bugs caused by recent
- refactoring in Test::Unit.
+Mon Mar 4 14:13:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * test/testunit/runit/*: added.
+ * 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]
-Sun Oct 5 10:55:29 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Mon Mar 4 10:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/open-uri.rb (URI::Generic#find_proxy): no_proxy support did not
- work. [ruby-dev:21484]
+ * encoding.c: Typo in Encoding overview by Tom Wardrop [GH fixes #255]
-Sun Oct 5 09:52:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+Sun Mar 3 12:35:08 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/test/unit/assertions.rb: will use pp for output if available.
- Can be disabled by setting Assertions.use_pp = false.
+ * lib/mkmf.rb (MakeMakefile#libpath_env): set runtime library path for
+ the case rpath is disabled.
- * test/testunit/test_assertions.rb: made a small change to exception
- formatting.
+Sun Mar 3 12:17:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 5 07:42:00 2003 Nathaniel Talbott <ntalbott@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]
- * lib/test/unit/assertions.rb: made small improvements to assertion
- messages. Deprecated Assertions#assert_not_nil; use #assert instead.
+Sun Mar 3 07:33:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/testunit/test_assertions.rb: ditto.
+ * ext/socket/tcpserver.c: Grammar for TCPServer.new from r39554
- * test/testunit/util/test_procwrapper.rb: use #assert instead of
- #assert_not_nil.
+Sun Mar 3 01:17:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 5 04:10:00 2003 Nathaniel Talbott <ntalbott@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/test/unit/assertions.rb: refactored message building.
+ * lib/rubygems/ext/ext_conf_builder.rb (Gem::Ext::ExtConfBuilder.build):
+ use RUBYOPT instead of -r option, and revert some tests. [Bug #7698]
-Sun Oct 5 03:40:22 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * 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]
- * ext/openssl/ossl_asn1.h: global symbols should be declared
- as external.
+Sun Mar 3 00:04:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 5 03:03:20 2003 akira yamada <akira@ruby-lang.org>
+ * enc/depend (CPPFLAGS), lib/mkmf.rb (MakeMakefile#create_makefile):
+ define RUBY_EXPORT for static-linked-ext mswin. [Bug #7960]
- * test/ruby/test_exception.rb (test_else): added.
+Sat Mar 2 22:49:47 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Oct 5 02:12:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+ * win32/Makefile.sub (ENCOBJS, EXTOBJS, config.h): definitions for
+ static-linked-ext. [Bug #7960]
- * lib/test/unit/assertions.rb: changed assertion messages to rely more
- heavily on #inspect. Added backtrace filtering for exceptions in
- assertion messages.
+Sat Mar 2 17:34:19 2013 Tanaka Akira <akr@fsij.org>
- * test/testunit/test_assertions.rb: ditto.
+ * 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).
-Sun Oct 5 02:12:00 2003 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
+Sat Mar 2 02:45:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/drb/acl.rb, lib/drb/ssl.rb: added.
+ * array.c: typo in comment patch by Nami-Doc [Github fixes #253]
- * lib/drb/drb.rb: exit from a thread using 'break'.
+Sat Mar 2 01:33:17 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Sat Oct 4 21:49:14 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * Merge Onigmo 0fe387da2fee089254f6b04990541c731a26757f
+ v5.13.3 [Bug#7972] [Bug#7974]
- * gc.c (Init_stack): the type of space is changed to unsigned int
- from double. [ruby-dev:21483]
+Fri Mar 1 11:09:06 2013 Eric Hodel <drbrain@segment7.net>
-Sat Oct 4 17:52:59 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * lib/fileutils.rb: Revert r34669 which altered the way
+ metaprogramming in FileUtils occurred. [ruby-trunk - Bug #7958]
- * lib/soap/netHttpClient.rb: follow http-access2. hosts which matches
- ENV['no_proxy'] or ENV['NO_PROXY'] are not proxyed.
- - [,:] separated. ("ruby-lang.org:rubyist.net")
- - no regexp. (give "ruby-lang.org", not "*.ruby-lang.org")
- - if you want specify host by IP address, give full address.
- ("192.168.1.1, 192.168.1.2")
+ * 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.
- * lib/soap/rpc/cgistub.rb: return "Status: XXX MMM" line.
+Fri Mar 1 09:18:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * test/runner.rb: give testsuite name.
+ * lib/psych.rb: specify in rdoc what object is returned in parser
+ By Adam Stankiewicz [Github tenderlove/psych#133]
-Sat Oct 4 15:16:02 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Mar 1 07:21:41 2013 Eric Hodel <drbrain@segment7.net>
- * marshal.c (w_object): instance variable dump do not cause error
- for objects that cannot be dumped, if they traversed from
- marshal_dump. they are just ignored.
+ * 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.
- * gc.c (Init_stack): cast "space" (doble value) into unsigned
- int. should run on PowerPC.
+ * 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.
- * eval.c (rb_eval): should not execute else part if any exception
- is caught. [ruby-dev:21482]
+Fri Mar 1 03:25:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * parse.y (f_args): should allow unparenthesized block argument.
+ * ext/psych/lib/psych.rb: rdoc for Psych overview by Adam Stankiewicz
+ [Github tenderlove/psych#134]
- * parse.y (f_rest_arg): should allow unparenthesized rest
- argument.
+Thu Feb 28 22:57:48 2013 Koichi Sasada <ko1@atdot.net>
-Sat Oct 4 14:59:51 2003 Tanaka Akira <akr@m17n.org>
+ * 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.
- * lib/pathname.rb (initialize): raise ArgumentError if argument has
- '\0' character.
- (relative_path_from): new method.
- (each_entry): new method for replacement of dir_foreach.
- (foreach, foreachline, dir_foreach, chdir): obsoleted.
+ * test/ruby/test_iseq.rb: add a test.
-Sat Oct 4 12:58:48 2003 akira yamada <akira@ruby-lang.org>
+Thu Feb 28 22:23:27 2013 Tanaka Akira <akr@fsij.org>
- * test/uri/* (6 files): added.
+ * 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.
-Sat Oct 4 12:44:45 2003 akira yamada <akira@ruby-lang.org>
+Thu Feb 28 21:33:01 2013 WATANABE Hirofumi <eban@ruby-lang.org>
- * lib/uri/ftp.rb, lib/uri/mailto.rb: renamed to #to_s from #to_str.
+ * configure.in(AC_DISABLE_OPTION_CHECKING): avoid warning "WARNING:
+ Unrecognized options: --with-PACKAGE".
-Sat Oct 4 07:33:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+Thu Feb 28 20:22:04 2013 Koichi Sasada <ko1@atdot.net>
- * lib/test/unit/testsuite.rb: changed #<< to return self, and added
- #delete.
+ * 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/testunit/test_testsuite.rb: ditto. Also slightly refactored
- #test_size.
+ * test/ruby/test_iseq.rb: add a test of lines after ISeq#to_a.
- * lib/test/unit/collector/objectspace.rb: collector now preserves the
- hierarchy of suites.
+Thu Feb 28 08:20:33 2013 Eric Hodel <drbrain@segment7.net>
- * test/testunit/collector/test_objectspace.rb: ditto.
+ * lib/rubygems/available_set.rb: Undent for style
-Sat Oct 4 04:48:49 2003 why the lucky stiff <why@ruby-lang.org>
+ * 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.
- * ext/syck/rubyext.c: default keys handled.
+ * lib/rubygems/dependency_installer.rb: Don't display "Done installing
+ documentation" if documentation will not be installed.
+ * lib/rubygems/rdoc.rb: ditto
- * ext/syck/syck.h: lowered default buffer size to 16k for increased
+ * lib/rubygems/dependency_list.rb: Use Array#concat for Ruby 1.x
performance.
- * test/yaml: checkin of basic unit tests.
-
-Sat Oct 4 04:24:19 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/extconf.rb: add check for X509V3_set_nconf.
-
- * ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_config):
- cannot implement if X509V3_set_nconf doesn't exist.
-
-Sat Oct 4 02:12:44 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/xsd/datatypes.rb: dump sign by itself. under the problematic
- platform, sprintf("%+.10g", -0.0) => +0. sigh.
-
- * sample/wsdl/amazon/*: update schema ver2 to ver3.
-
-Sat Oct 4 01:33:46 2003 Tanaka Akira <akr@m17n.org>
-
- * lib/pathname.rb (initialize): duplicate and freeze argument.
- (to_s): return duplicated string.
- (children): new method.
- (each_line): new alias to foreachline.
-
-Fri Oct 3 16:13:19 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_asn1.c: add DER encoder and decoder.
-
- * ext/openssl/ossl_asn1.h: add OpenSSL::ASN1 module.
-
- * ext/openssl/ossl.c (Init_openssl): call Init_ossl_asn1.
-
- * ext/openssl/extconf.rb: check if X509_ATTRIBUTE has field "single".
-
- * ext/openssl/ossl_x509attr.c (ossl_x509attr_set_value): accept
- DER encoded data argument.
-
- * ext/openssl/ossl_x509attr.c (ossl_x509attr_get_value): return
- DER encoded data in OpenSSL::ASN1 types.
-
-Fri Oct 3 13:02:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
-
- * lib/test/unit.rb: refactored to use optparse.
-
- * lib/test/unit.rb: added support for selecting the output
- level from the command-line.
-
- * lib/test/unit.rb: added a command-line switch to stop processing
- the command-line, allowing arguments to be passed to tests.
-
- * lib/test/unit.rb: changed the method for specifying a runner or a
- filter from the command-line.
-
- * lib/test/unit/collector/objectspace.rb: fixed a bug causing all
- tests to be excluded when the filter was set to an empty array.
-
- * test/testunit/collector/test_objectspace.rb: ditto.
-
-Fri Oct 3 08:14:32 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * lib/irb/ruby-lex.rb (RubyLex::identify_identifier): support
- 'class ::Foo' syntax. [ruby-talk:83514]
-
-Fri Oct 3 08:01:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
-
- * lib/test/unit/assertions.rb: added a default message for #assert,
- #assert_block, and #flunk.
-
- * test/testunit/test_assertions.rb: ditto.
-
- * lib/test/unit/failure.rb: failures now show a better trace of where
- they occurred.
-
- * test/testunit/test_failure.rb: ditto (added).
-
- * lib/test/unit/testcase.rb: ditto.
-
- * test/testunit/test_testcase.rb: ditto.
-
- * lib/test/unit/util/backtracefilter.rb: added.
-
- * test/testunit/util/test_backtracefilter.rb: added.
-
- * lib/test/unit/error.rb: changed to use BacktraceFilter and improved
- output.
-
- * test/testunit/test_error.rb: ditto.
-
-Thu Oct 2 20:33:49 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/iconv/iconv.c (iconv_failure_initialize): conform with
- orthodox initialization method.
-
- * ext/iconv/iconv.c (iconv_fail): initialize exception instance
- from the class, and do not share instance variables with the
- others. [ruby-dev:21470]
-
-Thu Oct 2 18:20:27 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * time.c (Init_Time): define initialize. [ruby-dev:21469]
-
-Thu Oct 2 17:39:38 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_engine.c: add a new module OpenSSL::Engine.
- it supports OpenSSL hardware cryptographic engine interface.
-
- * ext/openssl/ossl_engine.h: ditto.
-
- * ext/openssl/MANIFEST: add ossl_engine.c and ossl_engine.h.
-
- * ext/openssl/extconf.rb: add check for openssl/engine.h.
-
- * ext/openssl/ossl.c: call Init_ossl_engine().
-
- * ext/openssl/ossl.h: include openssl/engine.h.
-
- * ext/openssl/ossl_pkey_{rsa,dsa,dh}.c: check if underlying
- EVP_PKEY referes engine.
-
-Thu Oct 2 17:22:37 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * time.c (time_load): restore instance variables (if any) before
- loading from marshaled data.
-
-Thu Oct 2 14:19:15 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/iconv/iconv.c (iconv_fail): now yield erred substring, and
- set error object to $!.
-
- * ext/iconv/iconv.c (iconv_convert): error handler block should
- return appended part and the rest. if rest is nil, the
- conversion stops.
-
-Thu Oct 2 12:00:18 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * variable.c (rb_const_defined_0): look up constants in Object as
- well. [ruby-dev:21458]
-
- * test/ruby/test_defined.rb (TestDefined::test_defined): test for
- constants.
-
-Thu Oct 2 11:17:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
-
- * lib/test/unit/assertions.rb: should not capture an
- AssertionFailedError unless explicitly requested.
-
- * test/testunit/test_assertions.rb: ditto.
-
- * test/testunit/collector/test_objectspace.rb: fixed a test failure
- caused by methods being returned in different orders on different
- platforms by moving test sorting from TestSuite into the locations
- where suites are constructed. [ruby-talk:83156]
-
- * lib/test/unit/testcase.rb: ditto.
-
- * lib/test/unit/testsuite.rb: ditto.
-
- * lib/test/unit/collector/objectspace.rb: ditto.
-
-Thu Oct 2 03:25:01 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * eval.c (rb_thread_raise): prototype; avoid VC++ warning.
-
-Thu Oct 2 01:37:34 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * time.c (time_mdump): new marshal dumper. _dump is still
- available for compatibility.
-
- * time.c (time_mload): new marshal loader.
-
- * marshal.c (w_object): preserve instance variables for objects
- with marshal_dump.
+ * 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.
- * marshal.c (r_object0): restore instance variables before calling
- marshal_load.
+ * lib/rubygems/package.rb: Use more explicit feature check to work
+ around JRuby bug #552
- * error.c (rb_warn_m): always return nil.
+ * lib/rubygems/ssl_certs/GeoTrust_Global_CA.pem: Added GeoTrust root
+ certificate.
-Thu Oct 2 01:32:46 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * test/rubygems/test_gem_source_list.rb: Use "example" instead of real
+ hostname
- * eval.c (rb_f_block_given_p): real required condition is
- ruby_frame->prev->iter == ITER_CUR.
+Thu Feb 28 05:57:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * eval.c (rb_block_given_p): ditto.
+ * thread.c: rdoc formatting for Thread, ThreadGroup, and ThreadError
- * eval.c (block_pass): update ruby_frame->iter only when previous
- value is ITER_NOT.
+Thu Feb 28 02:42:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Thu Oct 2 01:02:35 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm.c: Typo in overview for example of Thread#status returning false
+ Reported by Lee Jarvis
- * variable.c (rb_const_defined_at): should exclude constants from
- Object when TYPE(klass) == T_MODULE *and* exclude is on.
- [ruby-dev:21458]
+Wed Feb 27 22:54:27 2013 Tanaka Akira <akr@fsij.org>
- * variable.c (rb_const_get_0): do not lookup constants from Object
- when TYPE(klass) == T_MODULE *and* exclude is on.
+ * ext/socket/rubysocket.h (union_sockaddr): make it longer for SunOS
+ and Darwin.
-Thu Oct 2 00:21:11 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Wed Feb 27 21:14:34 2013 Kouhei Sutou <kou@cozmixng.org>
- * test/logger/test_logger.rb: unlinking file before close causes
- problem under win32 box.
+ * 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.
- * lib/xsd/datatypes.rb(XSDFloat, XSDDouble): add +/- sign explicitly
- when stringified and embedded into XML instance. Ruby's sprintf may
- format -0.0 as "0.0" (no minus sign) depending on underlying C
- sprintf implementation.
+Wed Feb 27 19:53:32 2013 Benoit Daloze <eregontp@gmail.com>
- * test/xsd/test_xsd.rb, test/soap/test_basetype.rb: follow above change.
+ * vm.c (Thread): fix typos in overview
- * test/soap/calc/*: give httpd config param "CGIInterpreter".
- "/usr/bin/env ruby" thing does not work under non-Unix boxes.
+Wed Feb 27 13:21:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Oct 2 00:42:20 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm.c (Thread): Typo in overview, swap setting and getting
- * marshal.c (r_byte): retrieve pointer from string value for each
- time. [ruby-dev:24404]
+Wed Feb 27 13:02:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * marshal.c (r_bytes0): ditto.
+ * vm.c (Thread): Documentation overview of Thread class
- * enum.c (sort_by_i): re-entrance check added. [ruby-dev:24399]
+Wed Feb 27 12:57:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * io.c (io_read): should freeze all reading buffer.
- [ruby-dev:24400]
+ * thread.c (rb_thread_wakeup): rdoc formatting
- * string.c (rb_str_sum): should use bignums when bits is greater
- than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]
+Wed Feb 27 12:53:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * eval.c (specific_eval): defer pointer retrieval to prevent
- unsafe sourcefile string modification. [ruby-dev:24382]
+ * thread.c (rb_thread_group): rdoc formatting
- * string.c (rb_str_sum): wrong cast caused wrong result.
- [ruby-dev:24385]
+Wed Feb 27 12:33:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * enum.c (enum_sort_by): hide temporary array from
- ObjectSpace.each_object. [ruby-dev:24386]
+ * lib/ostruct.rb: Typo in OpenStruct overview [Github Fixes #251]
+ Patch by Chun-wei Kuo
- * string.c (rb_str_sum): check was done with false pointer.
- [ruby-dev:24383]
+Wed Feb 27 12:13:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * string.c (rb_str_sum): string may be altered. [ruby-dev:24381]
+ * 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]
-Thu Oct 2 00:25:21 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Feb 27 10:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * signal.c (ruby_signal_name): adjust to the prototype.
+ * thread.c (thread_raise_m): rdoc formatting
- * process.c (pst_inspect): ditto.
+Tue Feb 26 23:32:44 2013 Kouhei Sutou <kou@cozmixng.org>
- * ext/etc/etc.c (etc_getgrent, Init_etc): typo.
+ * 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.
-Wed Oct 1 20:49:41 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Feb 26 23:26:13 2013 Kouhei Sutou <kou@cozmixng.org>
- * gc.c (heaps): manage slots and limits together. [ruby-dev:21453]
+ * 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]
- * gc.c (add_heap): should not clear heaps slot even if realloc()
- failed.
+Tue Feb 26 15:12:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 1 20:36:49 2003 WATANABE Hirofumi <eban@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.
- * MANIFEST: add wince/mkconfig_wce.rb.
+Tue Feb 26 15:04:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 1 17:22:33 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in (unexpand_shvar): get rid of non-portable shell
+ behavior on OpenBSD, so no extra quotes. [Bug #7959]
- * ext/etc/etc.c: add new functions: setpwent, getpwent, endpwent,
- setgrent, getgrent, endgrent.
+Tue Feb 26 10:24:49 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/socket/socket.c (sock_s_gethostbyname): do not reverse lookup.
+ * parse.y (IS_LABEL_POSSIBLE): allow labels for keyword arguments just
+ after method definition without a parenthesis. [ruby-core:52820]
+ [Bug #7942]
-Wed Oct 1 17:01:30 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Feb 26 04:50:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * eval.c (rb_load): Object scope had priority over required file
- scope. [ruby-dev:21415]
+ * error.c: clarify reason for sleep in SignalException example
-Wed Oct 1 14:09:53 2003 Takaaki Uematsu <uema2x@jcom.home.ne.jp>
+Tue Feb 26 03:47:00 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * wince/mkconfig_wce.rb: sorry, forget to commit.
+ * error.c: clarify a document of SignalException. Process.kill()
+ doesn't have any guarantee when signal will be delivered.
+ [Bug #7951] [ruby-core:52864]
-Wed Oct 1 10:08:42 2003 Takaaki Uematsu <uema2x@jcom.home.ne.jp>
+Mon Feb 25 23:51:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * wince/setup.mak: add sigmarionIII SDK support.
+ * include/ruby/version.h: bump RUBY_API_VERSION same as RUBY_VERSION.
- * wince/Makefile.sub: ditto.
+Mon Feb 25 21:03:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * wince/mkexports.rb: fix linker error in SH4.
+ * string.c (str_byte_substr): don't set coderange if it's not known.
+ [Bug #7954] [ruby-dev:47108]
- * wince/mkconfig_wce.rb: camouflage RUBY_PLATFORM for compiling ext.
+Mon Feb 25 16:47:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Wed Oct 1 08:02:52 2003 Takaaki Uematsu <uema2x@jcom.home.ne.jp>
+ * common.mk (realclean-local): miniprelude.c is made by srcs, so it
+ should not removed by distclean but by realclean. [Bug #6807]
- * wince/time_wce.c (time): add zero check.
+Mon Feb 25 16:30:30 2013 Eric Hodel <drbrain@segment7.net>
-Tue Sep 30 16:11:05 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * Makefile.in: copy lex.c from $(srcdir) if it's not the current
- directory. [ruby-dev:21437]
-
-Tue Sep 30 11:29:23 2003 Tanaka Akira <akr@m17n.org>
-
- * process.c (pst_inspect): describe stopped process "stopped".
-
-Tue Sep 30 09:31:56 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * test/runner.rb: glob for directories.
-
-Tue Sep 30 09:11:43 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_eval): while/until should not capture break unless
- they are destination of the break.
-
-Tue Sep 30 03:12:02 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/net/http.rb (finish): revert to 1.93.
-
- * lib/net/pop.rb (finish): revert to 1.60.
-
- * lib/net/smtp.rb (finish): revert to 1.67.
-
- * lib/net/http.rb (do_start): ensure to close socket if failed to
- start session.
-
- * lib/net/pop.rb (do_start): ditto.
-
- * lib/net/smtp.rb (do_start): ditto.
-
- * lib/net/smtp.rb: SMTP#started? wrongly returned false always.
-
-Tue Sep 30 02:54:49 2003 Minero Aoki <aamine@loveruby.net>
-
- * test/ruby/test_iterator.rb: new test
- test_break__nested_loop[123].
-
-Mon Sep 29 23:39:13 2003 Minero Aoki <aamine@loveruby.net>
-
- * lib/net/http.rb (finish): does not raise IOError even if
- !started?, to allow closing socket which was opened before
- session started.
-
- * lib/net/pop.rb (finish): ditto.
-
- * lib/net/smtp.rb (finish): ditto.
-
-Mon Sep 29 19:06:51 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * ext/win32ole/extconf.rb: add windows.h checking.
- (ruby-bugs:PR#1185)
-
-Mon Sep 29 16:18:30 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/logger.rb: check if the given logdevice object respond_to :write
- and :close, not is_a? IO. duck duck.
-
- * test/logger/test_logger.rb: self IO.pipe reading/writing may be
- locked by the flood. use tempfile.
-
- * lib/wsdl/xmlSchema/data.rb: wrong constant reference.
-
-Mon Sep 29 16:11:23 2003 Minero Aoki <aamine@loveruby.net>
-
- * test/fileutils/test_fileutils.rb: clean up temporary symlink.
- Patched by NaHi. [ruby-dev:21420]
-
-Mon Sep 29 11:16:55 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_thread_atfork): wrong format specifier.
- [ruby-dev:21428]
-
- * process.c (pst_inspect): better description.
-
-Mon Sep 29 02:31:44 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/utils.rb (Utils::su): use setgid and setuid to
- set real and effective IDs. and setup group access list by
- initgroups.
-
-Sun Sep 28 11:14:19 2003 Koji Arai <jca02266@nifty.ne.jp>
-
- * ext/digest/digest.c (Init_digest): `copy_object' was deprecated.
- `initialize_copy' should be defined.
-
- * ext/stringio/stringio.c (Init_stringio): ditto.
-
-Sat Sep 27 18:25:13 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/xsd/charset.rb: XSD::Charset.is_ces did return always true under
- $KCODE = "NONE" environment. check added.
-
- * test/xsd/test_xsd.rb: add tests for above fix.
-
-Sat Sep 27 15:58:50 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/rpc/cgistub.rb: make logging severity threshold higher.
-
- * lib/soap/rpc/standaloneServer.rb: defer WEBrick server start to give
- a chance to reset logging severity threshold.
-
- * test/soap/calc/test_*, test/soap/helloworld/test_helloworld.rb: run
- silent.
-
-Sat Sep 27 09:44:18 2003 Minero Aoki <aamine@loveruby.net>
-
- * test/fileutils/test_fileutils.rb: clear all errors on Windows.
- [ruby-dev:21417]
-
- * test/fileutils/test_nowrite.rb: ditto.
-
-Mon Sep 27 09:14:03 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * array.c (rb_ary_delete): comparison may change the capacity.
- [ruby-dev:24348]
-
- * array.c (rb_ary_fill): fill should honor length argument.
- [ruby-dev:24346]
-
- * array.c (rb_ary_replace): should not use ptr from shared array.
- [ruby-dev:24345]
-
- * ext/socket/socket.c (s_accept): don't retry for EWOULDBLOCK.
- [ruby-talk:113807]
-
-Sat Sep 27 04:57:07 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/ruby/test_file.rb: new file. only asserts unlink-before-close
- behaviour now.
-
- * test/soap/marshal/test_digraph.rb: should close before unlink.
- unlink-before-close pattern is not needed here.
-
-Sat Sep 27 03:32:37 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/soap/*, test/wsdl/*, test/xsd/*: move TestCase classes into
- each module namespace. TestMarshal in
- test/soap/marshal/test_marshal.rb crashed with
- test/ruby/test_marshal.rb.
-
-Sat Sep 27 01:30:59 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/socket/socket.c (ruby_connect): on win32, type of the 4th
- argument of getsockopt is char *.
-
-Fri Sep 26 18:35:40 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/resolv-replace.rb: 1.8 compliance. [ruby-talk:82946]
-
-Fri Sep 26 17:39:27 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/ruby/test_marshal.rb: add test for ruby's objects.
-
-Fri Sep 26 09:52:44 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * defines.h (flush_register_windows): use volatile only for gcc on
- Solaris. [ruby-dev:21403]
-
- * lib/mkmf.rb (xsystem): use system directly to honor shell meta
- charaters.
-
-Fri Sep 26 00:10:13 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/README: updated.
-
-Thu Sep 25 17:48:10 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * ext/openssl/ossl.c (ossl_buf2str): fix type of 1st argument for
- rb_protect.
-
- * ext/openssl/ossl_hmac.c (ossl_hmac_digest): should return meaningful
- value.
-
-Thu Sep 25 09:00:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
-
- * lib/ostruct.rb: Added OpenStruct#==.
-
- * test/ostruct/test_ostruct.rb: Added.
-
-Thu Sep 25 07:55:26 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * ext/win32ole/win32ole.c, ext/openssl/ossl_pkey_dsa.c,
- ext/openssl/ossl_pkey_rsa.c, ext/bigdecimal/bigdecimal.h: must
- not use C++ or C99 style comment yet. (ruby-bugs:PR#1184)
-
-Thu Sep 25 00:23:22 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * MANIFEST: add SOAP4R.
-
-Thu Sep 25 00:13:15 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/soap/* (29 files): SOAP4R added.
-
- * lib/wsdl/* (42 files): WSDL4R added.
-
- * lib/xsd/* (12 files): XSD4R added.
-
- * test/soap/* (16 files): added.
-
- * test/wsdl/* (2 files): added.
-
- * test/xsd/* (3 files): added.
-
- * sample/soap/* (27 files): added.
-
- * sample/wsdl/* (13 files): added.
-
-Wed Sep 24 02:08:11 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/httpservlet/cgihandler.rb: conform to mswin32.
- [ruby-talk:82735], [ruby-talk:82748], [ruby-talk:82818]
-
-Tue Sep 23 23:10:16 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/logger.rb: add Logger#<<(msg) for writing msg without any
- formatting.
-
- * test/logger/test_logger.rb: ditto.
-
-Tue Sep 23 20:47:51 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * error.c (rb_warn_m): should not warn if -W0 is specified.
- [ruby-talk:82675]
-
-Mon Sep 22 21:28:57 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * MANIFEST: updated.
-
-Mon Sep 22 19:22:26 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * configure.in (AC_CHECK_FUNCS): add setuid and setgid.
-
-Mon Sep 22 12:34:55 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * util.c (ruby_strtod): skip preceding zeros before counting
- digits in the mantissa. (ruby-bugs:PR#1181)
-
-Sun Sep 21 04:12:36 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_ocsp.c (ossl_ocspreq_initialize): the argument
- should be a String.
-
- * ext/openssl/ossl_ocsp.c (ossl_ocspres_initialize): ditt.
-
- * ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): ditto.
-
- * ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.
-
- * ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): ditto.
-
-Sat Sep 20 11:49:05 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/logger.rb: typo fixed.
-
- * test/logger/test_logger.rb: new file.
-
-Fri Sep 19 11:39:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
-
- * test/testunit/*: Added.
-
- * lib/test/unit.rb: Documentation update.
-
- * lib/test/unit/ui/console/testrunner.rb (TestRunner#initialize):
- Ditto.
-
- * lib/test/unit.rb: Factored out an ObjectSpace collector.
-
- * lib/test/unit/collector/objectspace.rb: Ditto.
-
- * sample/testunit/*: Added.
-
-Fri Sep 19 01:00:48 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/log.rb (BasicLog#log): get rid of as ineffectual
- condition.
-
- * lib/webrick/log.rb (BasicLog#format): add "\n" to message.
-
-Thu Sep 18 22:43:20 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (proc_invoke): should push PROT_PCALL tag for orphans.
-
- * eval.c (proc_invoke): should update "result" for orphans.
-
-Thu Sep 18 20:33:03 2003 Tietew <tietew-ml-ruby-list@tietew.net>
-
- * parse.y (str_xquote): do not prepend escapes in
- backqoute literals. [ruby-list:38409]
-
-Thu Sep 18 20:30:17 2003 Tanaka Akira <akr@m17n.org>
-
- * lib/pathname.rb: update document.
-
-Thu Sep 18 15:27:05 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/logger.rb: new file. Logger, formerly called devel-logger or
- Devel::Logger.
-
- * sample/logger/*: new file. samples of logger.rb.
-
-Wed Sep 17 23:41:45 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (localjump_destination): should not raise ThreadError
- exception for "break". [ruby-dev:21348]
-
- * eval.c (proc_invoke): use result instead of prot_tag->retval.
- retval is no longer propagated to the ancestors.
-
-Wed Sep 17 20:34:00 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * parse.y (tokadd_string, parse_string, yylex): escaped terminator
- is now interpreted as is. [ruby-talk:82206]
-
-Wed Sep 17 18:52:36 2003 Minero Aoki <aamine@loveruby.net>
-
- * test/fileutils/fileassertions.rb: new file.
-
- * test/fileutils/test_fileutils.rb: new file.
-
- * test/fileutils/test_nowrite.rb: new file.
-
-Wed Sep 17 18:51:02 2003 Minero Aoki <aamine@loveruby.net>
-
- * test/strscan/test_stringscanner.rb: require test/unit.
-
-Wed Sep 17 18:35:34 2003 Minero Aoki <aamine@loveruby.net>
-
- * test/strscan/test_stringscanner.rb: new file.
-
-Wed Sep 17 18:03:30 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl: all files are reviewed to simplify and avoid memory leak.
-
- * ext/openssl/extconf.rb: add check for assert.h.
-
- * ext/openssl/ossl.c (ossl_buf2str): new function to convert
- C buffer to String and free buffer.
-
- * ext/openssl/ossl.c (ossl_x509_ary2sk): new function to convert
- Array of OpenSSL::X509 to STACK_OF(X509) with exception safe.
-
- * ext/openssl/ossl.c (ossl_to_der, ossl_to_der_if_possible): new
- functions to convert object to DER string.
-
- * ext/openssl/ossl.h: ditto.
-
- * ext/openssl/ossl_bio.c (ossl_membio2str): new function to convert
- BIO to String object and free BIO.
-
- * ext/openssl/ossl_bio.h: ditto.
-
- * ext/openssl/ossl_pkcs7.c (ossl_pkcs7_to_der): add for "to_der".
-
- * ext/openssl/ossl_x509name.c (ossl_x509name_to_der): ditto.
-
- * ext/openssl/ossl_x509ext.c (ossl_x509ext_to_der): ditto.
-
- * ext/openssl/ossl_x509ext.c (create_ext_from_array): removed
- and reimplement in openssl/x509.rb.
-
- * ext/openssl/ossl_x509attr.c: reimplemented and disable some
- method temporarily. this class doesn't work fine without ASN.1
- data support;-) I'll rewrite in near future.
-
- * ext/openssl/lib/openssl/x509.c (X509::Attribute): get rid off
- unused code.
-
- * ext/openssl/lib/openssl/x509.c (X509::ExtensionFactory): refine all.
-
-Tue Sep 16 22:25:06 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/csv/test_csv.rb: add negative tests of row_sep.
-
-Tue Sep 16 18:02:36 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * regex.c (re_compile_pattern): should not translate character
- class range edge. [ruby-list:38393]
-
-Tue Sep 16 16:47:56 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * MANIFEST: add test/csv/mac.csv.
-
- * win32/Makefile.sub, bcc32/Makefile.sub (test): add phony NUL target.
-
-Mon Sep 15 19:02:52 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * lib/csv.rb: add extra pamameter to specify row(record) separater
- character. To parse Mac's CR separated CSV, do like this.
- CSV.open("mac.csv", "r", ?,, ?\r) { |row| p row.to_a }
- The 3rd parameter in this example ?, is for column separater and the
- 4th ?\r is for row separater. Row separater is nil by default. Nil
- separater means "\r\n" or "\n".
-
- * test/csv/test_csv.rb: add tests for above feature.
-
- * test/csv/mac.csv: added. Sample CR separated CSV file.
-
-Fri Sep 12 22:41:48 2003 Michal Rokos <m.rokos@sh.cvut.cz>
-
- * ext/openssl/ossl.c: move ASN.1 stuff to ossl_asn1.[ch]
-
- * ext/openssl/ossl.c: move BIO stuff to ossl_bio.[ch]
-
- * ext/openssl/ossl_asn1.[ch]: new files
-
- * ext/openssl/ossl_bio.[ch]: new files
-
-Fri Sep 12 12:30:41 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * intern.h (rb_disable_super, rb_enable_super): replace with dummy
- expressions instead of prototypes. the functions remain yet for
- binary compatibility. [ruby-talk:81758]
-
-Fri Sep 12 12:09:54 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * bignum.c (rb_big_and): convert argument using 'to_int'.
-
- * bignum.c (rb_big_or): ditto.
-
- * bignum.c (rb_big_xor): ditto.
-
-Fri Sep 12 07:06:14 2003 David Black <dblack@superlink.net>
-
- * lib/scanf.rb: Took out useless @matched_item variable; some small
- refactoring.
-
-Thu Sep 11 08:43:44 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
-
- * eval.c (rb_f_require): allow "require" on $SAFE>0, if feature
- name is not tainted.
-
- * lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser::stream):
- Supports StringIO.
-
-Wed Sep 10 22:47:30 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl.h: add a workaround for win32 platform.
- libeay32.dll doesn't export functions defined in conf_api.h.
-
- * ext/openssl/ossl_config.c (ossl_config_initialize): ditto.
-
- * ext/openssl/ossl_config.c (ossl_config_add_value): ditto.
-
- * ext/openssl/ossl_config.c (set_conf_section_i): should check
- if the argument is Array.
-
-Wed Sep 10 22:41:54 2003 Tietew <tietew@tietew.net>
-
- * eval.c (win32_get_exception_list): avoid VC7 warning.
- [ruby-win32:577]
-
-Tue Sep 9 10:39:51 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (struct tag): dst should be VALUE.
-
-Tue Sep 9 10:39:51 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * eval.c (localjump_destination): stop at the scope where the current
- block was created. [ruby-dev:21353]
-
-Tue Sep 9 05:17:04 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl_config.rb: avoid compile error in OpenSSL-0.9.6.
-
-Tue Sep 9 02:41:35 2003 Michal Rokos <m.rokos@sh.cvut.cz>
-
- * ext/openssl/ossl_config.c: Refine compatibility.
-
-Tue Sep 9 01:50:45 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/httpserver.rb (HTTPServer#access_log): add "\n" to
- the message.
-
- * lib/webrick/log.rb (BasicLog#log): add "\n" only if needed.
-
-Mon Sep 8 22:15:33 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tk/lib/multi-tk.rb: modify security check at creating
- a new interpreter
-
-Mon Sep 8 20:00:12 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/optparse.rb, lib/optparse/version.rb: search also all
- capital versions.
-
-Mon Sep 8 19:26:33 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ossl.h: include openssl/conf.h and openssl/conf_api.h.
-
- * ext/openssl/ossl_config.c: refine all with backward compatibility.
-
- * ext/openssl/ossl_config.h: export GetConfigPtr() and DupConfigPtr().
-
- * ext/openssl/ossl_x509.c: added new constants under X509 module.
- DEFAULT_CERT_AREA, DEFAULT_CERT_DIR, DEFAULT_CERT_FILE,
- DEFAULT_CERT_DIR_ENV, DEFAULT_CERT_FILE_ENV and DEFAULT_PRIVATE_DIR.
-
- * ext/openssl/ossl_x509ext.c (ossl_x509extfactory_free): don't free
- the members of the struct. it's left to GC.
-
- * ext/openssl/ossl_x509ext.c (ossl_x509_set_config): add for config=.
-
- * ext/openssl/ossl_x509ext.c (Xossl_x509extfactory_initialize):
- add attr readers: issuer_certificate, subject_certificate,
- subject_request, crl and config.
-
-Mon Sep 8 18:26:41 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * lib/webrick/accesslog.rb (AccessLog::setup_params): use req.port
- instead of config[:Port] or req.request_uri.port.
-
- * lib/webrick/httprequest.rb (HTTPRequest#meta_vars): ditto.
-
- * lib/webrick/httpservlet/filehandler.rb (FileHandler#dir_list): ditto.
-
- * lib/webrick/config.rb: :Listen option never be used.
-
- * lib/webrick/server.rb (GenericServer#initialize): don't use :Listen
- option and add warning message.
-
- * lib/webrick/log.rb (BasicLog#<<): shortcut of log(INFO, ...).
-
- * lib/webrick/httpserver.rb (HTTPServer#accesslog): use << for logging.
-
-Sun Sep 7 16:08:28 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
-
- * ext/tcltklib/tcltklib.c (lib_mainloop_core): fixed signal-trap bug
-
- * ext/tk/lib/*.rb : Ruby/Tk works at $SAFE == 4
-
-Sat Sep 6 02:26:34 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/ruby/test_*.rb: assert_same, assert_match, and so on.
-
-Sat Sep 6 18:45:46 2003 Mauricio Fernandez <batsman.geo@yahoo.com>
-
- * parse.y (assignable): call rb_compile_error(), not rb_bug().
- [ruby-core:01523]
-
-Sat Sep 6 17:40:41 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/ruby_missing.c: rid of unnecessary backward
- compatibility stuff. and remove DEFINE_ALLOC_WRAPPER from
- all sources.
-
- * ext/openssl/ossl_x509ext.c (X509::Extension.new): new method.
-
- * ext/openssl/ossl_x509ext.c (X509::Extension#oid=): new method.
-
- * ext/openssl/ossl_x509ext.c (X509::Extension#value=): new method.
-
- * ext/openssl/ossl_x509ext.c (X509::Extension#critical=): new method.
-
-Sat Sep 6 01:23:22 2003 NAKAMURA Usaku <usa@ruby-lang.org>
-
- * win32/win32.c (CreateChild): need to quote cmd if RUBYSHELL is set.
-
- * win32/win32.c (CreateChild): fix condition about whether to call
- shell or not.
-
-Sat Sep 6 00:36:20 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
-
- * Makefile.in (test): phony target.
-
- * lib/mkmf.rb (have_library, find_library): configure by library
- name.
-
- * lib/optparse.rb (OptionParser#order, #permute, #parse): allow an
- array as argument.
-
- * test/ruby/test_*.rb: moved invariants to left side in
- assert_equal, and use assert_nil, assert_raises and so on.
-
- * win32/win32.c (isInternalCmd): distinguish command.com and
- cmd.exe.
-
- * win32/win32.c (make_cmdvector): a character just after wildcard
- was ignored. [ruby-core:01518]
-
-Fri Sep 5 20:27:08 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/ruby/test_*.rb: replace 'assert(a == b)' with assert_equal(a, b)'
-
-Fri Sep 5 18:00:51 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
-
- * ext/openssl/lib/openssl/x509.rb: new method X509::Name::parse.
-
- * ext/openssl/ossl_digest.c: add ossl_digest_new().
-
- * ext/openssl/ossl_digest.h: ditto.
-
- * ext/openssl/ossl_cipher.c: add ossl_cipher_new().
-
- * ext/openssl/ossl_cipher.h: ditto.
-
-Fri Sep 5 15:32:04 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): should not
- search delimiter forward if found in backward.
-
-Fri Sep 5 13:32:48 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * test/runner.rb: arguments should be keys.
-
-Fri Sep 5 12:09:55 2003 WATANABE Hirofumi <eban@ruby-lang.org>
-
- * test/ruby/test_system.rb (test_system): check existence of ruby
- interpreter.
-
-Fri Sep 5 11:32:17 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/optparse.rb (--version): fix assignment/reference order.
-
- * lib/optparse.rb (OptionParser#help): new; OptionParser#to_s may
- be deprecated in future.
-
- * lib/optparse/version.rb (OptionParser#show_version): hide Object.
-
- * test/runner.rb: fix optparse usage.
-
- * test/runner.rb: glob all testsuits if no tests given.
-
-Fri Sep 5 10:42:58 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/runner.rb: added. gets testcases from command line and runs it.
-
- * test/ruby/test_gc.rb: remove useless part which was for dumping test
- result.
-
-Fri Sep 5 09:28:59 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/ruby/test_gc.rb: added. splitter.rb which I made to split
- sample/test.rb into test/ruby/test_* kindly removed GC test (the
- last section in the original test) to reduce things to be worried.
-
-Fri Sep 5 03:00:04 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * test/ruby/test_iterator.rb (test_block_in_arg): add no block
- given tests.
-
- * test/ruby/test_iterator.rb (test_ljump): uncomment LocalJumpError
+ * test/rubygems/test_gem_commands_push_command.rb: Remove duplicated
test.
-Fri Sep 5 01:10:11 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
-
- * test/ruby: tests for ruby itself.
-
- * test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases.
- some tests could not be translates... search '!!' mark to see it.
-
- * test/csv/test_csv.rb: should require 'csv', not '../lib/csv'. test
- runner should set load path correctly.
+Mon Feb 25 15:47:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Sep 5 01:03:59 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * enc/depend (ARFLAGS): VisualC++ linker does not allow spaces between
+ output option and the output file name. [Bug #7950]
- * test/csv/test_csv.rb: close opened files for CSV::IOBuf explicitly.
- opened file cannot be removed under win32 box.
+ * enc/depend (RANLIB): set default command to do nothing, or make the
+ entire line a label on Windows.
-Thu Sep 4 23:59:40 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Feb 25 14:41:07 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * parse.y (tokadd_string): newlines have no special meanings in
- %w/%W, otherwise they are ignored only when interpolation is
- enabled. [ruby-dev:21325]
+ * lib/mkmf.rb (MakeMakefile#init_mkmf): default libdirname to libdir.
-Thu Sep 4 19:38:25 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * tool/rbinstall.rb: ditto.
- * ext/io/wait/.cvsignore: added.
+Mon Feb 25 13:12:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/.cvsignore: added.
+ * 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.
-Thu Sep 4 19:28:24 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+Mon Feb 25 12:48:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * sample/openssl: added. Sample of standard distribution library
- should be locate in sample/{module_name}/*.
+ * thread.c: Document Thread::new, clean up ::fork and mention calling
+ super if subclassing Thread
- * ext/openssl/sample/*: removed. move to sample/openssl/*.
+Mon Feb 25 12:38:50 2013 Tanaka Akira <akr@fsij.org>
-Thu Sep 4 18:02:15 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.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.
- * test/csv/test_csv.rb: use remove_const to reduce warnings. use
- Dir.tmpdir to locate working files.
+Mon Feb 25 11:03:38 2013 Akinori MUSHA <knu@iDaemons.org>
-Thu Sep 4 17:41:31 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in (unexpand_shvar): Use the numeric comparison
+ operator instead of '==' which is a ksh extension. [Bug #7941]
- * misc/ruby-mode.el (ruby-here-doc-beg-re): underscore also is
- valid delimiter.
+Mon Feb 25 02:37:56 2013 Tanaka Akira <akr@fsij.org>
- * misc/ruby-mode.el (ruby-here-doc-end-match): must quote
- arbitrary string to use as regexp.
+ * ext/socket: define and use union_sockaddr instead of struct
+ sockaddr_storage for less casts.
- * misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): must not
- call `ruby-here-doc-end-match' unless `ruby-here-doc-beg-re'
- matched.
+ * ext/socket/rubysocket.h (union_sockaddr): defined.
-Thu Sep 4 15:40:07 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ext/socket/socket.c (sock_accept): use union_sockaddr.
+ (sock_accept_nonblock): ditto.
+ (sock_sysaccept): ditto.
+ (sock_s_getnameinfo): ditto.
- * test/csv/test_csv.rb: run on test/unit original layer.
+ * ext/socket/basicsocket.c (bsock_getsockname): ditto.
+ (bsock_getpeername): ditto.
+ (bsock_local_address): ditto.
+ (bsock_remote_address): ditto.
-Thu Sep 4 12:54:50 2003 why the lucky stiff <why@ruby-lang.org>
+ * ext/socket/ancdata.c (bsock_recvmsg_internal): ditto.
- * ext/syck/token.c: headerless documents with root-level spacing now
- honored.
+ * ext/socket/init.c (recvfrom_arg): ditto.
+ (recvfrom_blocking): ditto.
+ (rsock_s_recvfrom): ditto.
+ (rsock_s_recvfrom_nonblock): ditto.
+ (rsock_getfamily): ditto.
-Thu Sep 4 00:06:14 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * 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.
- * eval.c (mark_frame_adj): need to adjust argv pointer if using
- system's alloca. [ruby-core:01503]
+ * ext/socket/tcpserver.c (tcp_accept): ditto.
+ (tcp_accept_nonblock): ditto.
+ (tcp_sysaccept): ditto.
-Wed Sep 3 21:33:20 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+ * ext/socket/ipsocket.c (ip_addr): ditto.
+ (ip_peeraddr): ditto.
+ (ip_s_getaddress): ditto.
- * test: add test directory. Test::Unit aware testcases and needed
- files should be located in this directory. dir/file name convention;
- test/{module_name}/test_{testcase_name}.rb
- test/{module_name}/{needed_files}
- someday, someone will write testrunner which searches test_*.rb and
- run testcases automatically.
+Sun Feb 24 21:15:05 2013 Tadayoshi Funaba <tadf@dotrb.org>
- * test/csv/*: add testcase for lib/csv.rb.
+ * ext/date/date_core.c: [ruby-core:52303]
-Wed Sep 3 01:37:09 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Feb 24 15:33:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * io.c (rb_f_gets): should call next_argv() before type check
- current_file. [ruby-list:38336]
+ * 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]
-Tue Sep 2 20:37:15 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sun Feb 24 15:32:36 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): warning
- for skipping server verification.
+ * 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]
-Tue Sep 2 23:36:57 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sun Feb 24 15:14:43 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (proc_invoke): should retrieve retval when pcall is true.
+ * 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.
-Tue Sep 2 14:09:20 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Feb 20 14:28:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/socket/extconf.rb: check s6_addr8 in in6_addr (Tru64 UNIX).
- the patch is submitted by nmu <nmu@users.sourceforge.jp>.
+ * thread.c: Document ThreadGroup::Default
- * ext/socket/getaddrinfo.c (getaddrinfo): should use in6_addr8 on
- some platforms.
+Wed Feb 20 14:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/socket/getnameinfo.c (getnameinfo): ditto.
+ * thread.c: Grammar for #backtrace_locations and ::handle_interrupt
-Tue Sep 2 14:02:19 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+Sun Feb 24 13:35:57 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/tcltklib.c (ip_invoke): fixed bug on passing a exception
+ * 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]
- * ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb} :
- bug fix and improvement of font control
+Wed Feb 20 13:23:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Tue Sep 2 09:51:36 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * object.c: Document methods receiving string and convert to symbol
+ Patch by Stefan Rusterholz
+ * vm_eval.c: ditto
+ * vm_method.c: ditto
- * eval.c (rb_eval): should not handle exceptions within rescue
- argument. [ruby-talk:80804]
+Wed Feb 20 07:20:56 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Tue Sep 2 00:44:37 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * signal.c (sigsegv): suppress unused result warning. Because
+ write(2) is marked __warn_unused_result__ on Linux glibc.
- * re.c (rb_memsearch): fix overrun. [ruby-talk:80759]
+Sun Feb 24 07:50:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Sep 2 00:41:27 2003 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]
- * ext/iconv/iconv.c (map_charset): use lower case keys.
+Sat Feb 23 16:51:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/iconv/iconv.c (iconv_fail): just yield error and return the
- result if a block is given.
+ * thread.c: Documentation for Thread#backtrace_locations
- * ext/iconv/iconv.c (iconv_convert): yield error and append the
- result if a block is given.
+Sat Feb 23 16:05:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/iconv/charset_alias.rb (charset_alias): optional third
- argument.
+ * vm.c: Typo in ObjectSpace::WeakMap overview
- * ext/iconv/charset_alias.rb (charset_alias): use CP932 instead of
- SHIFT_JIS on cygwin.
+Sat Feb 23 16:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Sep 1 18:34:25 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * thread.c: Improved rdoc for ::handle_interrupt, ::pending_interrupt?
+ and #pending_interrupt?
- * eval.c (rb_eval): make tail recursion in ELSE clause of
- RESCUE a jump.
+Sat Feb 23 12:26:43 2013 Akinori MUSHA <knu@iDaemons.org>
-Mon Sep 1 18:00:02 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * misc/ruby-electric.el (ruby-electric-curlies)
+ (ruby-electric-matching-char, ruby-electric-bar): Avoid electric
+ insertion when there is a prefix argument.
- * parse.y (aref_args): forgot to call NEW_SPLAT(). reported by
- Dave Butcher.
+ * 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.
- * eval.c (Init_Thread): protect thgroup_default. suggested by Guy
- Decoux in [ruby-talk:80623]
+Sat Feb 23 12:35:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Mon Sep 1 16:59:10 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * 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
- * eval.c (rb_thread_switch): add RESTORE_EXIT; exit by another
- thread termination.
+Sat Feb 23 10:50:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * eval.c (rb_thread_start_0): should not error_print() within
- terminated thread, because $stderr used by it might be
- overriden now. [ruby-dev:21280]
+ * array.c (rb_ary_diff, rb_ary_and, rb_ary_or): Document return order
+ [RubySpec #7803]
-Sun Aug 31 22:46:55 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat Feb 23 10:17:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * eval.c (TAG_DST()): take no argument.
+ * object.c (rb_obj_comp): Documenting Object#<=> return values
+ Patch by Stefan Rusterholz
- * process.c (p_gid_sw_ensure): return VALUE.
+Sat Feb 23 09:48:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Aug 31 22:27:10 2003 Hidetoshi NAGAI <nagai@dumbo.ai.kyutech.ac.jp>
+ * dir.c (file_s_fnmatch, fnmatch_brace): encoding-incompatible pattern
+ and string do not match, instead of exception. [ruby-dev:47069]
+ [Bug #7911]
- * process.c (p_gid_sw_ensure): lack of function type
+Sat Feb 23 08:57:46 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
-Sun Aug 31 12:25:06 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+ * doc/NEWS-*: Update NEWS from their respective branches
- * lib/optparse.rb: --version takes an optional argument; "all" or
- a list of package names.
+Sat Feb 23 08:14:43 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
-Sun Aug 31 10:17:02 2003 Tadayoshi Funaba <tadf@dotrb.org>
+ * NEWS: many additions for Ruby 2.0.0
- * lib/date/format.rb: yyyy/mm is not an acceptable format.
+ * object.c: Add doc for Module.prepended
- * lib/time.rb: follow above.
+Sat Feb 23 07:52:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Aug 30 14:25:43 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * template/ruby.pc.in: reorder library flags which may refer library
+ names. [Bug #7913]
- * eval.c (rb_iter_break): should not call TAG_JUMP directly.
+Fri Feb 22 23:46:20 2013 CHIKANAGA Tomoyuki <nagachika@ruby-lang.org>
-Sat Aug 30 03:58:21 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit):
+ fix a typo in comment in r39384.
- * eval.c (struct BLOCK): remove BLOCKTAG, use scope instead.
+Fri Feb 22 18:31:46 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * eval.c (POP_TAG): no longer propagate retval. retval is now set
- directly by localjump_destination().
+ * lib/rexml/document.rb (REXML::Document.entity_expansion_text_limit):
+ new attribute to read/write entity expansion text limit. the default
+ limit is 10Kb.
- * eval.c (localjump_destination): new function to cast
- return/break local jump.
+ * lib/rexml/text.rb (REXML::Text.unnormalize): check above attribute.
- * eval.c (rb_yield_0): stop TAG_RETURN/TAG_BREAK escaping.
+Fri Feb 22 17:36:23 2013 NARUSE, Yui <naruse@ruby-lang.org>
-Fri Aug 29 22:35:00 2003 Shigeo Kobayashi <shigek@ruby-lang.org>
+ * test/test_rbconfig.rb (TestRbConfig): fix r39372.
+ It must see RbConfig::CONFIG instead of CONFIG.
- * bigdecimal.c *.html: The 2nd arg. for add,sub,mult, and div is 0,
- then result will be the same as +,-,*,/ respectively.
+Fri Feb 22 14:55:41 2013 Naohisa Goto <ngotogenome@gmail.com>
-Fri Aug 29 17:30:15 2003 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+ * signal.c (ruby_abort): fix typo in r39354 [Bug #5014]
- * process.c: bug fix
+Fri Feb 22 12:46:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * process.c: add rb_secure(2) to methods of Process::{UID,GID,Sys}
+ * random.c (rb_random_ulong_limited): fix error message for negative
+ value. [ruby-dev:47061] [Bug #7903]
- * process.c: deny handling IDs during evaluating the block given to
- the Process::{UID,GID}.switch method
+Fri Feb 22 11:36:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/tcltklib.c : some methods have no effect if on slave-IP
+ * test/test_rbconfig.rb (TestRbConfig): skip user defined values by
+ configuration options. [Bug #7902]
- * ext/tcltklib/tcltklib.c : can create a interpreter without Tk
+Fri Feb 22 11:33:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/tcltklib/tcltklib.c : bug fix on handling exceptions
+ * lib/mkmf.rb (MakeMakefile#init_mkmf): adjust default library path
+ for multiarch. [Bug #7874]
- * ext/tcltklib/MANUAL.euc : modify
+Fri Feb 22 11:10:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/tk/lib/tk.rb : freeze some core modules
+ * enum.c (Enumerable#chunk: Improved examples, grammar, and formatting
+ Patch by Dan Bernier and Rich Bruchal of newhaven.rb
+ [Github documenting-ruby/ruby#8]
- * ext/tk/lib/multi-tk.rb : more secure
+Fri Feb 22 11:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/tk/lib/tk.rb: TkVariable.new(array) --> treat the array as the
- Tk's list
+ * 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]
- * ext/tk/lib/tk.rb: improve accessibility of TkVariable object
+Fri Feb 22 07:04:41 2013 Eric Hodel <drbrain@segment7.net>
- * ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb,
- ext/tk/lib/tktext.rb : fix bug of font handling
+ * 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.
- * ext/tk/lib/tkfont.rb TkFont.new() accepts compound fonts
+Fri Feb 22 06:30:57 2013 Eric Hodel <drbrain@segment7.net>
-Thu Aug 28 22:07:12 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * doc/globals.rdoc: Document what setting $DEBUG does.
- * variable.c (rb_autoload_load): call const_missing if autoloading
- constant is not defined to allow hook.
+ * doc/globals.rdoc: Added pointer to $-d for full documentation.
- * eval.c (rb_eval): use rb_const_get_from() instead of
- rb_const_get_at().
+Fri Feb 22 06:27:07 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (is_defined): forgot to check NODE_COLON3.
+ * doc/globals.rdoc: Document what setting $VERBOSE does. [Bug #7899]
-Thu Aug 28 17:30:24 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * doc/globals.rdoc: Added pointer to $-w and $-v for full
+ documentation.
- * variable.c (rb_const_get_0): should check constants defined in
- included modules, if klass is Object. [ruby-talk:79302]
+Fri Feb 22 02:33:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * numeric.c (check_uint): check should be done using UINT_MAX, not
- INT_MAX. this fix is submitted by Lyle Johnson
- <lyle@knology.net> in [ruby-core:01486]
+ * lib/abbrev.rb: Add words parameter to Abbrev::abbrev
+ Patch by Devin Weaver [Github documenting-ruby/ruby#7]
-Thu Aug 28 05:02:52 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Feb 21 17:28:14 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * parse.y (singleton): typo fixed (ruby-bugs-ja:PR#562)
+ * tool/merger.rb: add interaction when only ChangeLog is modified.
-Thu Aug 28 02:37:45 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Thu Feb 21 16:34:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (rb_eval): *a = [1,2] now assigns [[1,2]] to a.
- consistent with *a = [1], which set [[1]] to a.
+ * signal.c (check_stack_overflow): extract duplicated code and get rid
+ of declaration-after-statement. [Bug #5014]
- * node.h: merge NODE_RESTARY to NODE_SPLAT.
+Thu Feb 21 14:14:13 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * parse.y: rules simplified a bit by removing NODE_RESTARY.
+ * signal.c (sigsegv): avoid to use async signal unsafe functions
+ when nested sigsegv is happen.
+ [Bug #5014] [ruby-dev:44082]
- * sample/test.rb: updated for new assignment behavior.
+Thu Feb 21 13:47:59 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Aug 27 22:33:24 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * file.c (rb_group_member): added an error check. SUS says,
+ getgroups(small_value) may return EINVAL.
- * error.c (rb_bug): should not use other methods; this function is
- not for ordinary use. [ruby-dev:21259]
+Thu Feb 21 13:37:07 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Aug 27 15:07:57 2003 Minero Aoki <aamine@loveruby.net>
+ * process.c (RB_MAX_GROUPS): moved to
+ * internal.h (RB_MAX_GROUPS): here.
- * lib/net/smtp.rb (check_response): AUTH CRAM-MD5 returns 334
- response. [ruby-list:38279]
+ * file.c (rb_group_member): use RB_MAX_GROUPS instead of
+ RUBY_GROUP_MAX. They are the same.
-Wed Aug 27 05:10:15 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+Thu Feb 21 13:15:40 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * win32/win32.c (map_errno): support winsock error.
+ * 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.
- * win32/win32.c (pipe_exec, CreateChild, poll_child_status, waitpid,
- kill, link, rb_w32_rename, unixtime_to_filetime, rb_w32_utime):
- pass errno to map_errno().
+Thu Feb 21 13:04:59 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * win32/win32.c (rb_w32_select, rb_w32_accept, rb_w32_bind,
- rb_w32_connect, rb_w32_getpeername, rb_w32_getsockname,
- rb_w32_getsockopt, rb_w32_ioctlsocket, rb_w32_listen, rb_w32_recv,
- rb_w32_recvfrom, rb_w32_send, rb_w32_sendto, rb_w32_setsockopt,
- rb_w32_shutdown, rb_w32_socket, rb_w32_gethostbyaddr,
- rb_w32_gethostbyname, rb_w32_gethostname, rb_w32_getprotobyname,
- rb_w32_getprotobynumber, rb_w32_getservbyname, rb_w32_getservbyport,
- rb_w32_fclose, rb_w32_close): use map_errno().
+ * file.c (eaccess): use access() when not using setuid nor setgid.
+ This is minor optimization.
- * win32/win32.h: add winsock errors.
+Thu Feb 21 12:56:19 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Tue Aug 26 23:53:23 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * file.c (rb_group_member): get rid of NGROUPS dependency.
+ [Bug #7886] [ruby-core:52537]
- * lib/ostruct.rb (OpenStruct::method_missing): prohibit modifying
- frozen OpenStruct. [ruby-talk:80214]
+Thu Feb 21 12:45:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Tue Aug 26 20:03:50 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ruby.c (ruby_init_loadpath_safe): try two levels upper for stripping
+ libdir name. [Bug #7874]
- * lib/mkmf.rb (create_tmpsrc): add the hook for source.
- [ruby-list:38122]
+ * configure.in (libdir_basename): expand with multiarch in configure,
+ not to defer the expansion till ruby.pc.in and mkmf.rb. [Bug #7874]
-Tue Aug 26 15:59:53 2003 why the lucky stiff <why@ruby-lang.org>
+ * configure.in (libdir_basename): also -rpath and -install_name flags
+ are affected when libruby directory changes. [Bug #7874]
- * implicit.c (syck_type_id_to_taguri): corrected detection of
- x-private types.
+Wed Feb 20 19:27:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Aug 24 01:02:48 2003 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]
- * file.c (file_expand_path): performance improvement.
- [ruby-talk:79748]
+Wed Feb 20 18:02:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sat Aug 23 23:41:16 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in (target_os): do not strip -gnu suffix on Linux if
+ --target is given explicitly. [Bug #7874]
- * file.c (rb_file_s_expand_path): avoid calling rb_scan_args() for
- apparent cases. [ruby-talk:79748]
+ * configure.in (libdirname): adjust library path name which libruby
+ files will be installed. [Bug #7874]
-Sat Aug 23 18:56:53 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * tool/rbinstall.rb (libdir): ditto.
- * ext/nkf/nkf.c (rb_nkf_putchar): should use rb_str_resize() to just
- resize a string, rb_str_cat() disallows NULL. [ruby-dev:21237]
+Wed Feb 20 13:37:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Aug 23 16:48:41 2003 Keiju Ishitsuka <keiju@ishitsuka.com>
+ * ext/pty/pty.c: Documentation for the PTY module
- * lib/irb/ruby-lex.rb: bug fix for "foo" !~ /bar/. [ruby-talk:79942]
+Wed Feb 20 12:18:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Aug 23 15:59:58 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * object.c: Document Data class [Bug #7890] [ruby-core:52549]
+ Patch by Matthew Mongeau
- * eval.c (rb_eval, rb_iterate, block_pass): reduce PUSH/POP_TAG and
- EXEC_TAG() for retry. [ruby-dev:21216]
+Wed Feb 20 11:50:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Sat Aug 23 02:32:33 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * lib/mutex_m.rb: Add rdoc for Mutex_m module
- * eval.c (rb_yield_splat): should check if "values" is array.
+Wed Feb 20 09:34:43 2013 Eric Hodel <drbrain@segment7.net>
- * enum.c (each_with_index_i): typo.
+ * 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.
-Fri Aug 22 17:07:05 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Wed Feb 20 07:51:19 2013 Eric Hodel <drbrain@segment7.net>
- * enum.c (inject_i): use rb_yield_values.
+ * lib/rubygems/installer.rb: Use gsub instead of gsub! to avoid
+ altering @bin_dir. Fixes tests on windows. [ruby-trunk - Bug #7885]
- * enum.c (each_with_index_i): ditto.
+Tue Feb 19 20:50:00 2013 Kenta MURATA <mrkn@mrkn.jp>
- * eval.c (rb_yield_splat): new function to call "yield *values".
+ * ext/bigdecimal/bigdecimal.gemspec: bump to 1.2.0.
+ [ruby-core:51777] [Bug #7761]
- * string.c (rb_str_scan): use rb_yield_splat().
+Tue Feb 19 13:07:25 2013 Akinori MUSHA <knu@iDaemons.org>
-Fri Aug 22 06:13:22 2003 why the lucky stiff <why@ruby-lang.org>
+ * ext/syslog/syslog.c (Init_syslog): Define inspect as a singleton
+ method and remove it as an instance method. [Bug #6502]
- * ext/syck/rubyext.c: refactoring of the transfer method
- dispatch. added yaml_org_handler for faster dispatch of
- transfers to base types.
+Tue Feb 19 12:30:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/yaml/rubytypes.rb: removed handling of builtins from
- Ruby library.
+ * object.c: rdoc formatting for Kernel#Array()
+ * array.c: Add rdoc for Array() method to Creating Arrays section
- * ext/syck/token.c: quoted and block scalars are now implicit !str
+Tue Feb 19 10:35:52 2013 Eric Hodel <drbrain@segment7.net>
- * ext/syck/implicit.c: empty string detected as !null.
+ * ext/openssl/ossl.c (class OpenSSL): Use only inner parenthesis in
+ create_extension examples.
-Fri Aug 22 01:00:31 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Feb 19 10:27:12 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (block_pass): improve passing current block.
+ * ext/openssl/ossl.c (class OpenSSL): Fixed ExtensionFactory example.
+ Patch by Richard Bradley. [ruby-trunk - Bug #7551]
-Fri Aug 22 00:13:00 2003 Shigeo Kobayashi <shigek@ruby-lang.org>
+Tue Feb 19 08:32:11 2013 Koichi Sasada <ko1@atdot.net>
- * ext/bigdecimal/bigdecimal.c: Int. overflow bug in multiplication
- fixed, and VpNmlz() speed up.
+ * vm_eval.c (vm_call0_body): check interrupts after method dispatch
+ from C methods. [Bug #7878]
-Wed Aug 20 16:44:49 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Feb 19 08:14:40 2013 Eric Hodel <drbrain@segment7.net>
- * ext/socket/socket.c (ruby_connect): many systems seem to have
- a problem in select() after EINPROGRESS. [ruby-list:38080]
+ * lib/rubygems/installer.rb: Fixed placement of executables with
+ --user-install. [ruby-trunk - Bug #7779]
+ * test/rubygems/test_gem_installer.rb: Test for above.
-Wed Aug 20 01:31:17 2003 why the lucky stiff <why@ruby-lang.org>
+Tue Feb 19 06:04:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/syck/syck.h: Parser definition problems on HP-UX.
- [ruby-talk:79389]
+ * 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).
- * ext/syck/handler.c (syck_hdlr_get_anchor): Memory leak.
+ * configure.in: remove r38342's hack and check libunwind.
- * ext/syck/syck.s (syck_io_file_read): Bad arguments to fread.
+Tue Feb 19 04:26:29 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/syck/rubyext.c: Tainting issues.
+ * configure.in: check whether backtrace(3) works well or not.
-Tue Aug 19 23:20:00 2003 Shigeo Kobayashi <shigek@ruby-lang.org>
+ * vm_dump.c: set HAVE_BACKTRACE 0 if BROKEN_BACKTRACE.
- * ext/bigdecimal/bigdecimal.c .h .html: to_s("+") implemented.
+Mon Feb 18 16:30:18 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/bigdecimal/lib/bigdecimal/math.rb: E implemented.
+ * lib/ipaddr.rb (IPAddr#in6_addr): Fix a typo with the closing
+ parenthesis.
-Tue Aug 19 07:47:09 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Mon Feb 18 12:32:24 2013 Akinori MUSHA <knu@iDaemons.org>
- * lib/webrick/ssl.rb: new file; SSL/TLS enhancement for GenericServer.
+ * 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]
- * lib/webrick/https.rb: SSLSocket handling is moved to webrick/ssl.rb.
+Mon Feb 18 10:09:54 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/webrick/compat.rb (File::fnmatch): remove old migration code.
+ * configure.in (unexpand_shvar): regularize a shell variable by
+ unexpanding shell variables in it.
- * lib/webrick/httpserver.rb (HTTPServer#run): ditto.
+Sun Feb 17 20:55:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/webrick/server.rb (GenericServer#listen): the body of this
- method is pull out as Utils::create_lisnteners.
+ * compar.c (rb_invcmp): compare by inversed comparison, with preventing
+ from infinite recursion. [ruby-core:52305] [Bug #7870]
- * lib/webrick/utils.rb (Utils::create_lisnteners): new method.
+ * string.c (rb_str_cmp_m), time.c (time_cmp): get rid of infinite
+ recursion.
- * lib/webrick/server.rb (GenericServer#start): should rescue
- unknown errors. and refine comments.
+Sun Feb 17 17:23:22 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/lib/openssl/ssl.rb (SSLServer#accept): should close
- socket if SSLSocket raises error.
+ * 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]
-Tue Aug 19 11:19:33 2003 Shugo Maeda <shugo@ruby-lang.org>
+Sun Feb 17 01:19:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * io.c (next_argv): should not call GetOpenFile() if rb_stdout is
- not a IO (T_FILE).
+ * ext/psych/lib/psych/y.rb: Document Kernel#y by Adam Stankiewicz
+ [Github tenderlove/psych#127]
-Tue Aug 19 07:47:09 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Sun Feb 17 00:52:14 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * ext/openssl/ossl_ssl.c: sync_close is moved to SSLSocket as
- a builtin.
+ * 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.
- * ext/openssl/lib/openssl/buffering.rb (Buffering#close): ditto.
+Sat Feb 16 20:51:17 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * ext/openssl/lib/openssl/buffering.rb (Buffering#puts): should
- add a return to the tails of each line.
+ * vm.c (ENV_IN_HEAP_P): fix off-by-one error.
- * ext/openssl/lib/openssl/ssl.rb: new class OpenSSL::SSL::SSLServer.
+Sat Feb 16 20:47:16 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): use sync_close.
+ * 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.
- * ext/openssl/sample/echo_svr.rb: use SSLServer.
+Sat Feb 16 20:43:20 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/sample/echo_cli.rb: add example of SSLSocket#sync_close.
+ * ext/socket/ancdata.c (rsock_recvmsg): ignore truncated part of
+ socket address returned from recvmsg().
-Tue Aug 19 01:24:34 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/init.c (recvfrom_blocking): ignore truncated part of
+ socket address returned from recvfrom().
+ (rsock_s_recvfrom_nonblock): ditto.
- * ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): Mac OS X standard
- headers are inconsistent at this macro. [ruby-core:01432]
+Sat Feb 16 20:05:26 2013 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
- * ext/curses/extconf.rb: check if _XOPEN_SOURCE_EXTENDED breaks.
+ * test/ruby/test_thread.rb: fixed typo
+ patched by Hiroki Matsue via https://github.com/ruby/ruby/pull/248
- * ext/tcltklib/stubs.c: Status macro in X11/Xthreads.h bothers
- winspool.h
+Sat Feb 16 16:08:35 2013 Koichi Sasada <ko1@atdot.net>
- * instruby.rb: make list at first instead of iterator.
- [ruby-talk:79347]
+ * 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]
-Mon Aug 18 11:23:11 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ 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.
- * dir.c (glob_helper): preserve raw order for **.
+ * test/ruby/test_method.rb: add a test.
-Sun Aug 17 23:39:55 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sat Feb 16 15:45:56 2013 Koichi Sasada <ko1@atdot.net>
- * ext/openssl/extconf.rb (HAVE_VA_ARGS_MACRO): need to compile.
+ * 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]
-Sun Aug 17 17:10:03 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * test/ruby/test_settracefunc.rb: add a test.
- * ext/openssl/lib/openssl/ssl.rb (SSLSocket#sync_close=): add a
- method to specify if the underlying IO will be closed in
- SSLSocket#close.
+Sat Feb 16 13:40:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/openssl/lib/openssl/buffering.rb: add forwarders to
- setsockopt, getsockopt and fcntl.
+ * configure.in (shvar_to_cpp): do not substitute exec_prefix itself
+ with RUBY_EXEC_PREFIX, which cause recursive definition.
+ [ruby-core:52296] [Bug #7860]
- * ext/openssl/lib/net/protocols.rb: enable sync for SSLSocket.
+Sat Feb 16 13:13:04 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Sun Aug 17 11:32:04 2003 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/extmk.rb (extmake): should not force to remake Makefile when
- installation and so on.
+ * ext/io/console/console.c (console_dev): compatibility with ruby 1.8.
-Sat Aug 16 23:58:18 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/io/console/console.c (rawmode_opt, console_dev): compatibility
+ with ruby 1.9. [ruby-core:52220] [Bug #7847]
- * marshal.c (w_symbol, w_object): get rid of warnings.
+Sat Feb 16 12:45:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * re.c (rb_memsearch): ditto.
+ * 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]
- * time.c (time_dump): ditto.
+Sat Feb 16 12:15:20 2013 Aaron Patterson <aaron@tenderlovemaking.com>
- * ext/extmk.rb (extmake): not continue making when extconf.rb
- failed.
+ * parse.y: add dtrace probe for symbol create.
- * ext/openssl/extconf.rb: check __VA_ARGS__ macro more precisely.
+ * probes.d: ditto
- * ext/openssl/ossl.h: remove version.h dependency.
+Sat Feb 16 09:27:37 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ruby_missing.h: ditto.
+ * 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 ?".
- * lib/mkmf.rb (pkg_config): use --libs output except with
- only-L for other options. [ruby-list:38099]
+Sat Feb 16 09:24:37 2013 Tanaka Akira <akr@fsij.org>
- * lib/mkmf.rb (create_makefile): separate rule for static
- library from shared object.
+ * ext/socket/extconf.rb: reorder header tests to consider inclusion
+ order in rubysocket.h.
- * win32/Makefile.sub, bcc32/Makefile.sub, wince/Makefile.sub:
- define exec_prefix and libdir.
+Sat Feb 16 08:42:58 2013 Tanaka Akira <akr@fsij.org>
-Fri Aug 15 23:15:00 2003 Shigeo Kobayashi <shigek@ruby-lang.org>
+ * configure.in, ext/socket/extconf.rb: test netinet/in_systm.h in
+ ext/socket/extconf.rb instead of configure.in.
- * ext/bigdecimal/bigdecimal.c .h: Bug in combination of limit & div
- method fixed.
+ Originally, netinet/in_systm.h is included for NextStep, OpenStep,
+ and Rhapsody. [ruby-core:1596]
- * ext/bigdecimal/lib/bigdecimal/math.rb: atan() & sqrt() added.
+Sat Feb 16 07:55:40 2013 Tanaka Akira <akr@fsij.org>
-Fri Aug 15 12:01:43 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * configure.in: don't test xti.h here.
- * configure.in (HUGE_ST_INO): check whether struct stat.st_ino
- is larger than long. [ruby-dev:21194]
- http://www.geocities.co.jp/SiliconValley-PaloAlto/1409/ruby/beos.html
+ * ext/socket/extconf.rb: test xti.h here.
- * error.c (syserr_eqq): errno might exceed Fixnum limit.
+ Originally, xti.h is included for IRIX [ruby-core:14447].
- * error.c (Init_Exception): moved base initialization from
- init_syserr().
+Sat Feb 16 07:16:49 2013 Tanaka Akira <akr@fsij.org>
- * inits.c (rb_call_inits): postpone initializing errnos until
- Bignum is available.
+ * ext/socket/extconf.rb: test struct sockaddr_un and its member,
+ sun_len.
-Fri Aug 15 12:01:43 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * ext/socket/sockport.h (INIT_SOCKADDR_UN): new macro defined.
- * ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): needed to let
- keyname() and so on be declared.
+ * ext/socket/socket.c (sock_s_pack_sockaddr_un): use INIT_SOCKADDR_UN.
- * ext/curses/curses.c (curses_resizeterm, window_resize):
- arguments conflicted with macros in term.h.
+ * ext/socket/unixsocket.c (rsock_init_unixsock): ditto.
- * ext/curses/curses.c (Curses module methods): ensure
- initialized. [ruby-dev:21191]
+ * ext/socket/raddrinfo.c (init_unix_addrinfo): ditto.
+ (addrinfo_mload): ditto.
-Fri Aug 15 02:08:53 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Sat Feb 16 07:05:59 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (id2ref): recycle check should be done by klass == 0.
- [ruby-core:01408]
+ * ext/socket/sockport.h (INIT_SOCKADDR_IN): don't need family
+ argument. it is always AF_INET.
-Fri Aug 15 01:34:23 2003 Michal Rokos <m.rokos@sh.cvut.cz>
+ * ext/socket/raddrinfo.c (make_inetaddr): follow INIT_SOCKADDR_IN
+ change.
+ (addrinfo_ipv6_to_ipv4): ditto.
- * ext/openssl/ossl_pkey.c: move generate_cb here
+Sat Feb 16 04:21:07 2013 NAKAMURA Usaku <usa@ruby-lang.org>
- * ext/openssl/ossl_pkey_{dh|dsa|rsa}.c: adapt to this cb
+ * ext/socket/extconf.rb: workaround for mswin/mingw build problem.
+ sendmsg emulation in win32/win32.c is not enough.
- * ext/openssl/openssl_missing.[ch]: add (0.9.6x, x<j) missing BN funcs
+Sat Feb 16 00:19:20 2013 Tanaka Akira <akr@fsij.org>
- * ext/openssl/ossl_bn.c: use supplied funcs from openssl_missing.c
+ * ext/socket/extconf.rb: use all all tested available headers for
+ have_func.
-Fri Aug 15 00:38:00 2003 Shigeo Kobayashi <shigek@ruby-lang.org>
+Fri Feb 15 22:21:37 2013 Akinori MUSHA <knu@iDaemons.org>
- * ext/bigdecimal/bigdecimal.c: Bug in div method fixed.
+ * 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]
- * ext/bigdecimal/lib/bigdecimal/math.rb: Newly added.
+Fri Feb 15 20:29:11 2013 Tanaka Akira <akr@fsij.org>
- * ext/bigdecimal/sample/pi.rb: Changed so as to use math.rb.
+ * ext/socket/sockport.h (SET_SIN_LEN): defined for strict-aliasing
+ rule.
+ (INIT_SOCKADDR_IN): ditto.
-Thu Aug 14 21:19:14 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/socket/raddrinfo.c (make_inetaddr): use INIT_SOCKADDR_IN.
+ (addrinfo_ipv6_to_ipv4): ditto.
- * eval.c (Init_Thread): Continuation#[] added. [ruby-talk:79028]
+Fri Feb 15 18:24:48 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Aug 14 20:03:34 2003 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+ * lib/mkmf.rb (MakeMakefile#try_run): bail out explicitly if cross
+ compiling, because it cannot work of course.
- * ext/win32ole/win32ole.c (OLE_FREE): should not call
- ole_message_loop.
+Fri Feb 15 12:34:58 2013 Tanaka Akira <akr@fsij.org>
- * ext/win32ole/win32ole.c (ole_event_free): ditto.
+ * ext/socket/extconf.rb: test struct sockaddr_storage directly.
- * ext/win32ole/win32ole.c (ole_initialize): stop calling
- OleUninitialize at exit.
+ * ext/socket/rubysocket.h: use HAVE_TYPE_STRUCT_SOCKADDR_STORAGE.
-Thu Aug 14 11:27:37 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+Fri Feb 15 12:26:13 2013 Tanaka Akira <akr@fsij.org>
- * gc.c (rb_data_object_alloc): check type of 1st argument.
- [ruby-dev:21192]
+ * ext/socket/getaddrinfo.c (GET_AI): don't cast 1st argument for
+ INIT_SOCKADDR.
-Thu Aug 14 00:21:14 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Feb 15 08:12:11 2013 Tanaka Akira <akr@fsij.org>
- * parse.y (mlhs_node): should allow "::Foo" (colon3) as lhs.
+ * ext/socket/sockport.h (SET_SS_LEN): removed.
+ (SET_SIN_LEN): removed.
+ (INIT_SOCKADDR): new macro.
- * parse.y (lhs): ditto.
+ * ext/socket/ancdata.c (extract_ipv6_pktinfo): use INIT_SOCKADDR.
- * parse.y (yylex): should return tCOLON3 right after kCLASS.
- [ruby-talk:78918]
+ * ext/socket/raddrinfo.c (make_inetaddr): use INIT_SOCKADDR.
+ (addrinfo_ipv6_to_ipv4): ditto.
- * error.c (exc_initialize): was converting argument to string too
- eagerly. Only check was needed. [ruby-talk:78958]
+ * ext/socket/getaddrinfo.c (GET_AI): use INIT_SOCKADDR.
-Wed Aug 13 23:31:00 2003 Shigeo Kobayashi <shigek@ruby-lang.org>
+Fri Feb 15 07:49:27 2013 Eric Hodel <drbrain@segment7.net>
- * ext/bigdecimal/bigdecimal.c .h .html: Ambiguity of
- BigDecimal::limit removed.
+ * lib/rdoc.rb: Update to release version of 4.0.0
-Wed Aug 13 19:21:34 2003 Christian Neukirchen <chneukirchen@yahoo.de>
+ * lib/rubygems.rb: Update to release version of 2.0.0
- * lib/webrick/https.rb (HTTPServer#run): should set syncing-mode
- to SSLSocket. [ruby-talk:78919]
+Fri Feb 15 07:07:27 2013 Tanaka Akira <akr@fsij.org>
-Wed Aug 13 18:13:49 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/socket/sockport.h (SA_LEN): removed because unused now.
+ (SS_LEN): ditto.
+ (SIN_LEN): ditto.
- * eval.c (POP_BLOCK): turn on BLOCK_LEFT flag when leaving block.
+Thu Feb 14 10:45:31 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
- * eval.c (proc_invoke): unpack return/break destination when block
- is already left.
+ * test/ruby/test_process.rb (test_setsid): Added a workaround for
+ MacOS X. Patch by nagachika. [Bug #7826] [ruby-core:52126]
-Wed Aug 13 15:58:31 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Fri Feb 15 00:15:31 2013 Tanaka Akira <akr@fsij.org>
- * object.c (rb_class_s_alloc): add function prototype to avoid VC++
- warning.
+ * ext/socket/sockport.h (VALIDATE_SOCKLEN): new macro to validate
+ sa_len member of 4.4BSD socket address.
-Wed Aug 13 13:50:59 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * ext/socket/getnameinfo.c (getnameinfo): use VALIDATE_SOCKLEN,
+ instead of SA_LEN.
- * ext/Win32API/Win32API.c (Win32API_initialize): should pass some
- class to first argument of Data_Wrap_Struct(). (ruby-bugs:PR#1109)
+ * ext/socket/socket.c (sock_s_getnameinfo): use VALIDATE_SOCKLEN
+ instead of SS_LEN.
-Tue Aug 12 16:55:11 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Feb 14 22:25:54 2013 Tanaka Akira <akr@fsij.org>
- * Makefile.in: static link libraries to LIBRUBY_SO with static linked
- ext. [ruby-dev:21157]
+ * 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.
- * ext/extmk.rb (extmake): sort extension library initialization order.
+Thu Feb 14 20:11:23 2013 Tanaka Akira <akr@fsij.org>
- * ext/extmk.rb (extmake): compact $extlibs.
+ * ext/socket: always operate length of socket address companion with
+ socket address.
-Tue Aug 12 02:48:56 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/socket/rubysocket.h (rsock_make_ipaddr): add an argument for
+ socket address length.
+ (rsock_ipaddr): ditto.
- * eval.c (THREAD_SAVE_CONTEXT): should explicitly turn off the
- flag before calling getcontext(2).
+ * ext/socket/ipsocket.c (ip_addr): pass length to rsock_ipaddr.
+ (ip_peeraddr): ditto.
+ (ip_s_getaddress): pass length to rsock_make_ipaddr.
- * eval.c (struct thread): add member to save backing store on
- IA64. (ruby-bugs PR1086)
+ * 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.
- * eval.c (thread_mark): mark IA64 backing store region.
+ * ext/socket/init.c (rsock_s_recvfrom): pass length to rsock_ipaddr.
+ (rsock_s_recvfrom_nonblock): ditto.
- * eval.c (thread_free): free saved IA64 backing store.
+ * ext/socket/tcpsocket.c (tcp_sockaddr): pass length to
+ rsock_make_ipaddr.
- * eval.c (rb_thread_save_context): save IA64 backing store as well.
+ * 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.
- * eval.c (rb_thread_restore_context): restore IA64 backing store.
+Thu Feb 14 14:31:43 2013 Eric Hodel <drbrain@segment7.net>
- * eval.c (THREAD_ALLOC): initialize IA64 members.
+ * lib/net/http.rb: Removed OpenSSL dependency from Net::HTTP.
-Mon Aug 11 22:31:50 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
- * lib/debug.rb(debug_command): inspection command should inspect
- resulting value even if it's nil. [ruby-dev:21180] by OMAE, jun
- <jun66j5@ybb.ne.jp>.
+ * test/net/http/test_http.rb: Remove Zlib dependency from tests.
+ * test/net/http/test_http_request.rb: ditto.
- * lib/debug.rb(debug_command): incomplete regexp.
+Thu Feb 14 11:08:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Mon Aug 11 17:33:07 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * class.c (include_modules_at): detect cyclic prepend with original
+ method table. [ruby-core:52205] [Bug #7841]
- * eval.c (rb_call_super): do not use rb_block_given_p() for
- check. [ruby-talk:78656]
+Thu Feb 14 10:30:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * eval.c (BEGIN_CALLARGS): push ITER_NOT only when ITER_PRE.
+ * vm_method.c: call method_removed hook on called class, not on
+ prepending iclass. [ruby-core:52207] [Bug #7843]
-Sun Aug 10 10:43:05 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+Thu Feb 14 10:05:57 2013 Eric Hodel <drbrain@segment7.net>
- * ext/openssl/lib/openssl/buffering.rb: increase BLOCK_SIZE
- from 1k to 16k bytes. [ruby-talk:78603]
+ * 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.
- * ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc): enable
- partial write to allow interruption in SSLSocket#write.
+Thu Feb 14 08:18:47 2013 Tanaka Akira <akr@fsij.org>
-Sun Aug 10 00:34:16 2003 WATANABE Hirofumi <eban@ruby-lang.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.
- * cygwin/GNUmakefile: remove unnecessary '--drive-name=$(CC)'
- for ccache.
+Wed Feb 13 20:59:48 2013 Tanaka Akira <akr@fsij.org>
-Sat Aug 9 10:36:21 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * ext/socket/extconf.rb: don't define socklen_t here, just test.
- * marshal.c (w_object): do not dump generic instance variable when
- marshal_dump is defined.
+ * ext/socket/rubysocket.h: define socklen_t if not available.
-Sat Aug 9 00:35:00 2003 Shigeo Kobayashi <shigek@ruby-lang.org>
+Wed Feb 13 18:37:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * ext/bigdecimal.c: F style output(like 1234.56789) implemented
- to to_s method.
- * ext/bigdecimal_??.html: F style output(like 1234.56789)
- implemented to to_s method.
+ * proc.c (mnew): skip prepending modules and return the method bound
+ on the given class. [ruby-core:52160] [Bug #7836]
-Fri Aug 8 12:33:17 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Wed Feb 13 18:11:59 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * bcc32/Makefile.sub: rubyw.exe should be a Windows GUI program.
- add the -aa option to WLDFLAGS.
+ * proc.c (method_original_name): new methods Method#original_name and
+ UnboundMethod#original_name. [ruby-core:52048] [Bug #7806]
+ [EXPERIMENTAL]
-Fri Aug 8 11:29:26 2003 Koji Arai <jca02266@nifty.ne.jp>
+ * proc.c (method_inspect): show the given name primarily, and
+ original_id if aliased. [ruby-core:52048] [Bug #7806]
- * marshal.c (w_object): should set `c_arg' at first.
+Wed Feb 13 17:56:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Fri Aug 8 03:22:28 2003 GOTOU Yuuzou <gotoyuzo@notwork.org>
+ * configure.in (warnflags): disable -Werror by default unless
+ development. [ruby-core:52131] [Bug #7830]
- * lib/webrick/httputils.rb (FormData#list): should not take
- a side effect for the receiver.
+Wed Feb 13 06:05:52 2013 Eric Hodel <drbrain@segment7.net>
-Thu Aug 7 14:40:37 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+ * 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.
- * cygwin/GNUmakefile: better --disbale-shared option support.
+Wed Feb 13 05:49:21 2013 Tanaka Akira <akr@fsij.org>
- * cygwin/GNUmakefile: add forwarding DLL target for cygwin.
+ * ext/socket/extconf.rb: test functions just after struct members.
-Thu Aug 7 14:21:05 2003 Corinna Vinschen <vinschen@redhat.com>
+Tue Feb 12 12:02:35 2013 NARUSE, Yui <naruse@ruby-lang.org>
- * configure.in: Fix Cygwin specific naming of libraries to
- be net distribution compliant. (ruby-bugs:PR#1077)
- cygwin-ruby18.dll -> cygruby18.dll
+ * 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
-Thu Aug 7 12:51:38 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Feb 11 23:08:48 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_f_at_exit): should not be called without a block.
- block_given check added.
+ * configure.in: enable rb_cv_page_size_log test for MirOS BSD.
-Thu Aug 7 06:46:06 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Mon Feb 11 20:06:38 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_call0): forgot to pop ruby_class.
+ * configure.in: use -pthread on mirbsd*.
- * eval.c (rb_call0): update ruby_class as well as ruby_cref.
- (ruby-bugs-ja:PR#540)
+Mon Feb 11 16:07:09 2013 Tanaka Akira <akr@fsij.org>
-Thu Aug 7 04:52:50 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * configure.in: add SOLIBS and LIBRUBY_SO definition for mirbsd*.
- * eval.c (rb_yield_0): remove ruby_frame->cbase and unify to
- ruby_cref. [ruby-talk:78141]
+Mon Feb 11 13:17:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
-Thu Aug 7 04:19:15 2003 Akinori MUSHA <knu@iDaemons.org>
+ * configure.in (rubysitearchprefix): sitearchdir and vendorarchdir
+ should use sitearch, not arch. [ruby-dev:46964] [Bug #7823]
- * gc.c: FreeBSD/ia64's mcontext_t is a bit different from that of
- Linux/ia64. This makes gc.c compile but miniruby coredumps for
- the moment.
+ * win32/Makefile.sub (config.status): site and vendor directories
+ should use sitearch, not arch. [ruby-dev:46964] [Bug #7823]
-Thu Aug 7 00:15:00 2003 Shigeo Kobayashi <shigek@ruby-lang.org>
+Mon Feb 11 12:31:25 2013 Tanaka Akira <akr@fsij.org>
- * ext/bigdecimal.c: Comparison results adjusted to Float's.
- * ext/bigdecimal.c: Use rb_num_coerce_????(x,y) instead of own.
+ * configure.in: move OS specific header/function knowledge before
+ automatic header tests.
-Wed Aug 6 22:58:00 2003 Nathaniel Talbott <ntalbott@ruby-lang.org>
+Mon Feb 11 11:04:29 2013 Tanaka Akira <akr@fsij.org>
- * lib/test/unit/testcase.rb: Added equality checking.
- * lib/test/unit/testsuite.rb: Added equality checking.
- * lib/test/unit/assertions.rb: Fixed a warning.
+ * configure.in: move the test for -march=i486 just after
+ RUBY_UNIVERSAL_ARCH/RUBY_DEFAULT_ARCH.
-Wed Aug 6 17:28:10 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Sun Feb 10 23:42:26 2013 Tanaka Akira <akr@fsij.org>
- * ext/extmk.rb (extmake): pass LIBPATH to make ruby. [ruby-dev:21137]
+ * ext/socket/extconf.rb: test structure members just after types test.
- * ext/extmk.rb (extmake): set library name as source file name in
- Init_ext(). [ruby-dev:21137]
+Sun Feb 10 20:58:17 2013 Tanaka Akira <akr@fsij.org>
- * lib/mkmf.rb (Logging::postpone): postpone logging messages after
- heading message as the result of the block.
+ * ext/socket/extconf.rb: test types just after headers test.
- * lib/mkmf.rb (macro_defined?): append newline to src unless ended
- with it.
+Sun Feb 10 16:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/mkmf.rb (have_library): treat nil function name as "main".
- (ruby-bugs:PR#1083)
+ * 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
- * lib/mkmf.rb (pkg_config): should append additional libraries to
- $libs but not $LIBS. [ruby-dev:21137]
+Sun Feb 10 15:26:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * ext/io/wait/extconf.rb: check DOSISH macro instead of platform.
+ * lib/rake/doc/*: Sync Rake rdoc files from upstream
- * ext/digest/sha1/extconf.rb: have_library already appends library
- name.
+Sun Feb 10 15:50:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Aug 6 17:23:57 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * vm_exec.h (DISPATCH_ARCH_DEPEND_WAY): use __asm__ __volatile__
+ instead of asm volatile.
- * eval.c: initialize /* OK */ variables by Qnil to stop warnings.
+Sun Feb 10 15:50:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
-Wed Aug 6 04:58:32 2003 NAKAMURA Usaku <usa@ruby-lang.org>
+ * gc.h (SET_MACHINE_STACK_END): use __volatile__ instead of volatile.
- * ext/Setup*: add io/wait and openssl.
+Sun Feb 10 14:25:00 2013 Zachary Scott <zachary@zacharyscott.net>
-Wed Aug 6 01:13:38 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+ * doc/rake/, lib/rake/doc/: Move Rake rdoc files to lib/rake
- * eval.c (rb_f_autoload): use ruby_cbase instead of ruby_class.
+Sun Feb 10 12:10:25 2013 Tanaka Akira <akr@fsij.org>
- * eval.c (rb_f_autoload_p): ditto.
+ * ext/socket/extconf.rb: test headers at first.
- * class.c (rb_mod_init_copy): no longer implements independent
- clone and dup methods. override "initialize_copy" instead.
- [ruby-core:01352]
+Sun Feb 10 12:00:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * object.c (rb_class_s_alloc): define Class allocation function.
- this makes Classes to follow clone framework that uses
- initialize_copy.
+ * doc/rake/*: Removed stale Rake static files
- * object.c (rb_class_initialize): separate instantiation and
- initialization.
+Sun Feb 10 09:10:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * object.c (rb_obj_alloc): prohibit instantiation from
- uninitialized class.
+ * lib/pp.rb, lib/prettyprint.rb: Documentation for PP and PrettyPrint
+ Based on a patch by Vincent Batts [ruby-core:51253] [Bug #7656]
- * object.c (rb_class_superclass): check uninitialized class.
+Sat Feb 9 21:11:21 2013 Tanaka Akira <akr@fsij.org>
- * array.c (rb_ary_fill): wrong index processing with block. this
- fix was done by Koji Arai <JCA02266@nifty.ne.jp> [ruby-list:38029]
+ * 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.
- * marshal.c (w_object): should preserve generic ivar for nil,
- true, false, symbols, and fixnums.
+Sat Feb 9 17:45:58 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * marshal.c (w_uclass): base_klass check should be done after
- rb_class_real().
+ * configure.in, version.c: prevent duplicated load paths by empty
+ version string, it does not work right now.
-Wed Aug 6 01:18:50 2003 Minero Aoki <aamine@loveruby.net>
+Sat Feb 9 17:38:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * lib/net/http.rb: update document.
+ * configure.in: fix arch parameters in help message. [Bug #7804]
- * lib/net/pop.rb: ditto.
+Sat Feb 9 13:13:00 2013 Zachary Scott <zachary@zacharyscott.net>
- * lib/net/protocol.rb: ditto.
+ * vm_trace.c: Note about TracePoint events set, and comment on
+ Kernel#set_trace_func to prefer new TracePoint API
-Wed Aug 6 00:48:37 2003 Koji Arai <jca02266@nifty.ne.jp>
+Sat Feb 9 10:07:47 2013 Kazuki Tsujimoto <kazuki@callcc.net>
- * marshal.c (w_object): should recommend marshal_dump rather than
- _dump_data.
+ * BSDL: update copyright notice for 2013.
-Tue Aug 5 17:58:57 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+Sat Feb 9 09:24:38 2013 Eric Hodel <drbrain@segment7.net>
- * lib/fileutils.rb (install): should preserve timestamp only.
+ * lib/rubygems/package/old.rb: Fix behavior only on ruby 1.8.
-Tue Aug 5 17:31:59 2003 Ian Macdonald <ian@caliban.org>
+ * lib/rubygems/package.rb: Include checksums.yaml.gz signatures for
+ verification.
+ * test/rubygems/test_gem_package.rb: Test for the above.
- * lib/shell/command-processor.rb (Shell::CommandProcessor::rmdir):
- simple typo.
+Sat Feb 9 01:23:24 2013 Tanaka Akira <akr@fsij.org>
-Tue Aug 5 15:47:34 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
+ * test/fiddle/helper.rb: specify libc and libm locations for MirOS BSD.
- * eval.c (rb_load): should preserve current source file/line.
+ * test/dl/test_base.rb: ditto.
-Tue Aug 5 10:04:42 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Feb 8 23:25:33 2013 Tanaka Akira <akr@fsij.org>
- * string.c (str_new4): ptr may refer null_str.
+ * configure.in: change CFLAGS temporally to test
+ ARCH_FLAG="-march=i486".
-Mon Aug 4 17:25:18 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+Fri Feb 8 21:19:41 2013 Tanaka Akira <akr@fsij.org>
- * stable version 1.8.0 released.
+ * configure.in: don't define ARCH_FLAG="-march=i486" if it causes
+ compilation problem.
+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
Local variables:
+coding: us-ascii
add-log-time-format: (lambda ()
(let* ((time (current-time))
+ (system-time-locale "C")
(diff (+ (cadr time) 32400))
(lo (% diff 65536))
- (hi (+ (car time) (/ diff 65536))))
+ (hi (+ (car time) (/ diff 65536))))
(format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))
indent-tabs-mode: t
tab-width: 8
+change-log-indent-text: 2
end:
+vim: tabstop=8 shiftwidth=2
diff --git a/GPL b/GPL
index 5b6e7c66c2..d159169d10 100644
--- a/GPL
+++ b/GPL
@@ -1,12 +1,12 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
+the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
-
- GNU GENERAL PUBLIC LICENSE
+
+ GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
-
+
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
-
+
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
-
+
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
@@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
+library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
diff --git a/KNOWNBUGS.rb b/KNOWNBUGS.rb
new file mode 100644
index 0000000000..b97a08d928
--- /dev/null
+++ b/KNOWNBUGS.rb
@@ -0,0 +1,5 @@
+#
+# This test file concludes tests which point out known bugs.
+# So all tests will cause failure.
+#
+
diff --git a/LEGAL b/LEGAL
index 908eb270f5..65706459cd 100644
--- a/LEGAL
+++ b/LEGAL
@@ -5,34 +5,59 @@ 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.
-regex.[ch]:
-
- These files are under LGPL. Treat them as LGPL says. (See the file
- LGPL for details)
-
- Extended regular expression matching and search library.
- Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file LGPL. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
- Multi-byte extension added May, 1993 by t^2 (Takahiro Tanimoto)
- Last change: May 21, 1993 by t^2
- removed gapped buffer support, multiple syntax support by matz <matz@nts.co.jp>
- Perl5 extension added by matz <matz@caelum.co.jp>
- UTF-8 extension added Jan 16 1999 by Yoshida Masato <yoshidam@tau.bekkoame.ne.jp>
+include/ruby/oniguruma.h:
+regcomp.c:
+regenc.[ch]:
+regerror.c:
+regexec.c:
+regint.h:
+regparse.[ch]:
+enc/ascii.c
+enc/big5.c
+enc/cp949.c
+enc/emacs_mule.c
+enc/encdb.c
+enc/euc_jp.c
+enc/euc_kr.c
+enc/euc_tw.c
+enc/gb18030.c
+enc/gb2312.c
+enc/gbk.c
+enc/iso_8859_1.c
+enc/iso_8859_10.c
+enc/iso_8859_11.c
+enc/iso_8859_13.c
+enc/iso_8859_14.c
+enc/iso_8859_15.c
+enc/iso_8859_16.c
+enc/iso_8859_2.c
+enc/iso_8859_3.c
+enc/iso_8859_4.c
+enc/iso_8859_5.c
+enc/iso_8859_6.c
+enc/iso_8859_7.c
+enc/iso_8859_8.c
+enc/iso_8859_9.c
+enc/koi8_r.c
+enc/koi8_u.c
+enc/shift_jis.c
+enc/unicode.c
+enc/us_ascii.c
+enc/utf_16be.c
+enc/utf_16le.c
+enc/utf_32be.c
+enc/utf_32le.c
+enc/utf_8.c
+enc/windows_1251.c
+
+Oniguruma ---- (C) K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
+
+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,
+ this of Ruby follows the license of Ruby.
configure:
@@ -43,9 +68,8 @@ configure:
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
-config.guess:
-config.sub:
-parse.c:
+tool/config.guess:
+tool/config.sub:
As long as you distribute these files with the file configure, they
are covered under the Ruby's license.
@@ -72,7 +96,58 @@ parse.c:
configuration script generated by Autoconf, you may include it under
the same distribution terms that you use for the rest of that program.
+parse.c:
+
+ 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.
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+ /* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
util.c (partly):
+
+ Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
+
+ Permission to use, copy, modify, and distribute this software for any
+ purpose without fee is hereby granted, provided that this entire notice
+ is included in all copies of any software which is or includes a copy
+ or modification of this software and in all copies of the supporting
+ documentation for such software.
+
+ THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+ WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
+ REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
+ OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+
win32/win32.[ch]:
You can apply the Artistic License to these files. (or GPL,
@@ -83,6 +158,32 @@ win32/win32.[ch]:
You may distribute under the terms of either the GNU General Public
License or the Artistic License, as specified in the perl README file.
+util.c (partly):
+
+ Copyright (c) 2004-2008 David Schultz <das@FreeBSD.ORG>
+ 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.
+
random.c
This file is under the new-style BSD license.
@@ -130,72 +231,109 @@ random.c
http://www.math.keio.ac.jp/matumoto/emt.html
email: matumoto@math.keio.ac.jp
+vsnprintf.c:
+
+ This file is under the old-style BSD license. Note that the
+ paragraph 3 below is now null and void.
+
+ Copyright (c) 1990, 1993
+ The Regents of the University of California. All rights reserved.
+
+ This code is derived from software contributed to Berkeley by
+ Chris Torek.
+
+ 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.
+ 3. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+
+ IMPORTANT NOTE:
+ --------------
+ From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
+ paragraph 3 above is now null and void.
+
st.[ch]:
-x68/*:
missing/alloca.c:
missing/dup2.c:
+missing/erf.c:
missing/finite.c:
missing/hypot.c:
missing/isinf.c:
missing/isnan.c:
+missing/lgamma_r.c:
missing/memcmp.c:
missing/memmove.c:
-missing/strcasecmp.c:
missing/strchr.c:
-missing/streror.c:
-missing/strftime.c:
-missing/strncasecmp.c:
missing/strstr.c:
missing/strtol.c:
+missing/tgamma.c:
ext/digest/sha1/sha1.[ch]:
These files are all under public domain.
-missing/strtod.c:
-
- This file will not be used on most platforms depending on how the
- configure script results. In any case you must not receive any fee
- with the file itself.
-
- Copyright (c) 1988-1993 The Regents of the University of California.
- Copyright (c) 1994 Sun Microsystems, Inc.
+missing/crypt.c:
- Permission to use, copy, modify, and distribute this
- software and its documentation for any purpose and without
- fee is hereby granted, provided that the above copyright
- notice appear in all copies. The University of California
- makes no representations about the suitability of this
- software for any purpose. It is provided "as is" without
- express or implied warranty.
+ This file is under the old-style BSD license. Note that the
+ paragraph 3 below is now null and void.
-missing/strtoul.c:
+ Copyright (c) 1989, 1993
+ The Regents of the University of California. All rights reserved.
- This file will not be used on most platforms depending on how the
- configure script results. In any case you must not receive any fee
- with the file itself.
+ This code is derived from software contributed to Berkeley by
+ Tom Truscott.
- Copyright 1988 Regents of the University of California
+ 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.
+ 3. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
- Permission to use, copy, modify, and distribute this
- software and its documentation for any purpose and without
- fee is hereby granted, provided that the above copyright
- notice appear in all copies. The University of California
- makes no representations about the suitability of this
- software for any purpose. It is provided "as is" without
- express or implied warranty.
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
-missing/erf.c:
-missing/crypt.c:
-missing/vsnprintf.c:
+missing/setproctitle.c
This file is under the old-style BSD license. Note that the
paragraph 3 below is now null and void.
- Copyright (c) 1990, 1993
- The Regents of the University of California. All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- Chris Torek.
+ Copyright 2003 Damien Miller
+ Copyright (c) 1983, 1995-1997 Eric P. Allman
+ Copyright (c) 1988, 1993
+ The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -221,10 +359,46 @@ missing/vsnprintf.c:
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
- IMPORTANT NOTE:
- --------------
- From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
- paragraph 3 above is now null and void.
+missing/strlcat.c
+missing/strlcpy.c
+
+ These files are under the new-style BSD license.
+
+ Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ 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.
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED ``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 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.
+
+missing/langinfo.c
+
+ This file is from http://www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c.
+ Ruby uses a modified version. The file contains the following
+ author/copyright notice:
+
+ Markus.Kuhn@cl.cam.ac.uk -- 2002-03-11
+ Permission to use, copy, modify, and distribute this software
+ for any purpose and without fee is hereby granted. The author
+ disclaims all warranties with regard to this software.
ext/digest/md5/md5.[ch]:
@@ -264,18 +438,7 @@ ext/digest/rmd160/rmd160.[ch]:
Copyright (c) Katholieke Universiteit Leuven
1996, All Rights Reserved
-ext/digest/rmd160/rmd160hl.c:
-ext/digest/sha1/sha1hl.c:
-
- These files are under the beer-ware license.
-
- "THE BEER-WARE LICENSE" (Revision 42):
- <phk@login.dkuug.dk> wrote this file. As long as you retain this notice you
- can do whatever you want with this stuff. If we meet some day, and you think
- this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
-
ext/digest/sha2/sha2.[ch]:
-ext/digest/sha2/sha2hl.c:
These files are under the new-style BSD license.
diff --git a/LGPL b/LGPL
deleted file mode 100644
index b1e3f5a263..0000000000
--- a/LGPL
+++ /dev/null
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/Makefile.in b/Makefile.in
index 314e1ed256..98749dec61 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,17 +1,33 @@
SHELL = /bin/sh
-NULLCMD = :
+NULLCMD = @NULLCMD@
+n=$(NULLCMD)
+ECHO1 = $(V:1=@$n)
+RUNCMD = $(SHELL)
+CDPATH = .
+CHDIR = @CHDIR@
+exec = exec
+NULL = /dev/null
+PATH_SEPARATOR = @PATH_SEPARATOR@
#### Start of system configuration section. ####
srcdir = @srcdir@
-VPATH = $(srcdir):$(srcdir)/missing
+top_srcdir = $(srcdir)
+hdrdir = $(srcdir)/include
+PLATFORM_DIR = @PLATFORM_DIR@
CC = @CC@
-YACC = @YACC@
+CPP = @CPP@
+LD = @LD@
+YACC = bison
PURIFY =
AUTOCONF = autoconf
@SET_MAKE@
MKFILES = @MAKEFILES@
+BASERUBY = @BASERUBY@
+TEST_RUNNABLE = @TEST_RUNNABLE@
+CROSS_COMPILING = @CROSS_COMPILING@
+DOXYGEN = @DOXYGEN@
prefix = @prefix@
exec_prefix = @exec_prefix@
@@ -24,37 +40,79 @@ datadir = @datadir@
arch = @arch@
sitearch = @sitearch@
sitedir = @sitedir@
+archlibdir = @archlibdir@
+ruby_version = @ruby_version@
TESTUI = console
TESTS =
-RDOCTARGET = @RDOCTARGET@
+INSTALLDOC = @INSTALLDOC@
+DOCTARGETS = @RDOCTARGET@ @CAPITARGET@
EXTOUT = @EXTOUT@
-RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system
+arch_hdrdir = $(EXTOUT)/include/$(arch)
+VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/enc:$(srcdir)/missing
empty =
+CC_VERSION = @CC_VERSION@
OUTFLAG = @OUTFLAG@$(empty)
-CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@
-CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@
+COUTFLAG = @COUTFLAG@$(empty)
+ARCH_FLAG = @ARCH_FLAG@
+CFLAGS = @CFLAGS@ $(ARCH_FLAG)
+cflags = @cflags@
+optflags = @optflags@
+debugflags = @debugflags@
+warnflags = @warnflags@ @strict_warnflags@
+INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir)
+XCFLAGS = @XCFLAGS@
+CPPFLAGS = @CPPFLAGS@ $(INCFLAGS)
LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
-EXTLDFLAGS =
+EXTLDFLAGS = @EXTLDFLAGS@
XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)
-EXTLIBS =
+EXTLIBS =
LIBS = @LIBS@ $(EXTLIBS)
MISSING = @LIBOBJS@ @ALLOCA@
LDSHARED = @LIBRUBY_LDSHARED@
-DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(EXTLDFLAGS) @ARCH_FLAG@
+DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
SOLIBS = @SOLIBS@
MAINLIBS = @MAINLIBS@
-MINIOBJS = @MINIOBJS@
-
+ARCHMINIOBJS = @MINIOBJS@
+DLNOBJ = @DLNOBJ@
+ENCOBJS = @ENCOBJS@
+EXTOBJS = @EXTOBJS@
+BUILTIN_ENCOBJS = @BUILTIN_ENCOBJS@
+BUILTIN_TRANSSRCS = @BUILTIN_TRANSSRCS@
+BUILTIN_TRANSOBJS = @BUILTIN_TRANSOBJS@
+POSTLINK = @POSTLINK@
+
+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)
RUBY = $(RUBY_INSTALL_NAME)
-MINIRUBY = @MINIRUBY@ $(MINIRUBYOPT)
-RUNRUBY = @RUNRUBY@
+MINIRUBY = @MINIRUBY@\
+ $(MINIRUBYOPT)
+# RUNRUBY_COMMAND:: runruby.rb or baseruby. do not append options directly
+RUNRUBY_COMMAND = @RUNRUBY_COMMAND@
+# RUNRUBY:: run ruby with RUN_OPTS which is passed to ruby
+RUNRUBY = @RUNRUBY@ $(RUN_OPTS)
+# RUNRUBY_DEBUGGER:: debugging option for runruby.rb
+RUNRUBY_DEBUGGER = --debugger='gdb -x run.gdb --quiet --args'
+XRUBY = @XRUBY@
+BTESTRUBY = @BTESTRUBY@\
+ $(MINIRUBYOPT)
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+XRUBY_LIBDIR = @XRUBY_LIBDIR@
+XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@
+XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@
+
+DEFAULT_PRELUDES = $(GEM_PRELUDE)
#### End of system configuration section. ####
@@ -69,26 +127,70 @@ LIBRUBY = @LIBRUBY@
LIBRUBYARG = @LIBRUBYARG@
LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@
LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
+LIBRUBY_RELATIVE = @LIBRUBY_RELATIVE@
+LIBRUBY_A_OBJS = @LIBRUBY_A_OBJS@
+
+THREAD_MODEL = @THREAD_MODEL@
PREP = @PREP@
ARCHFILE = @ARCHFILE@
SETUP =
EXTSTATIC = @EXTSTATIC@
+SET_LC_MESSAGES = env LC_MESSAGES=C
+MAKEDIRS = @MKDIR_P@
+CP = cp
+MV = mv
RM = rm -f
+RMDIR = @RMDIR@
+RMDIRS = @RMDIRS@
+RMALL = @RMALL@
NM = @NM@
AR = @AR@
ARFLAGS = rcu
RANLIB = @RANLIB@
AS = @AS@
-ASFLAGS = @ASFLAGS@
+ASFLAGS = @ASFLAGS@ $(INCFLAGS)
+IFCHANGE = $(srcdir)/tool/ifchange
+SET_LC_MESSAGES = env LC_MESSAGES=C
+OBJDUMP = @OBJDUMP@
+OBJCOPY = @OBJCOPY@
+VCS = @VCS@
+VCSUP = @VCSUP@
+DTRACE = @DTRACE@
+DTRACE_EXT = @DTRACE_EXT@
+DTRACE_OBJ = @DTRACE_OBJ@
+DTRACE_GLOMMED_OBJ = @DTRACE_GLOMMED_OBJ@
OBJEXT = @OBJEXT@
+ASMEXT = S
+DLEXT = @DLEXT@
MANTYPE = @MANTYPE@
+SYMBOL_PREFIX = @SYMBOL_PREFIX@
INSTALLED_LIST= .installed.list
+
+MKMAIN_CMD = mkmain.sh
+
+NEWLINE_C = newline.c
+MINIPRELUDE_C = miniprelude.c
+RBCONFIG = .rbconfig.time
+
+SRC_FILE = $<
+OS_SRC_FILE = $<
+DEST_FILE = $@
+OS_DEST_FILE = $@
+
+MESSAGE_BEGIN = @for line in
+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
+
+configure_args = @configure_args@
#### End of variables
+.SUFFIXES: .inc .h .c .y .i .$(DTRACE_EXT)
+
all:
.DEFAULT: all
@@ -97,84 +199,281 @@ all:
.NOEXPORT:
miniruby$(EXEEXT):
- @$(RM) $@
- $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) $(OUTFLAG)$@
+ @-if test -f $@; then $(MV) -f $@ $@.old; $(RM) $@.old; fi
+ $(ECHO) linking $@
+ $(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(DTRACE_OBJ) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@
$(PROGRAM):
@$(RM) $@
- $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@
+ $(ECHO) linking $@
+ $(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@
+ $(Q) $(POSTLINK)
# We must `rm' the library each time this rule is invoked because "updating" a
# MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not
# supported.
$(LIBRUBY_A):
@$(RM) $@
- $(AR) $(ARFLAGS) $@ $(OBJS) $(DMYEXT)
+ $(ECHO) linking static-library $@
+ $(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)
+ @$(RM) conftest$(EXEEXT) conftest.c
$(LIBRUBY_SO):
@-$(PRE_LIBRUBY_UPDATE)
- $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@
- @-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \
+ $(ECHO) linking shared-library $@
+ $(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; \
File.symlink "$(LIBRUBY_SO)", link}' \
$(LIBRUBY_ALIASES) || true
-
-fake.rb: Makefile
- @echo ' \
- class Object; \
- CROSS_COMPILING = RUBY_PLATFORM; \
- remove_const :RUBY_PLATFORM; \
- remove_const :RUBY_VERSION; \
- RUBY_PLATFORM = "@arch@"; \
- RUBY_VERSION = "@MAJOR@.@MINOR@.@TEENY@"; \
- end; \
- if RUBY_PLATFORM =~ /mswin|bccwin|mingw/; \
- class File; \
- remove_const :ALT_SEPARATOR; \
- ALT_SEPARATOR = "\\"; \
- end; \
- end; \
- ' > $@
-
-Makefile: $(srcdir)/Makefile.in
-
-$(MKFILES): config.status $(srcdir)/common.mk
- MAKE=$(MAKE) $(SHELL) ./config.status
- @{ \
+$(arch)-fake.rb: config.status $(srcdir)/template/fake.rb.in
+ @./config.status --file=$@:$(srcdir)/template/fake.rb.in
+ @chmod +x $@
+
+ruby_pc = @ruby_pc@
+$(ruby_pc):
+ @./config.status --file=$@:$(srcdir)/template/ruby.pc.in
+
+install-cross: $(arch)-fake.rb $(RBCONFIG) rbconfig.rb $(arch_hdrdir)/ruby/config.h \
+ $(LIBRUBY_A) $(LIBRUBY_SO) $(ARCHFILE)
+ $(ECHO) installing cross-compiling stuff
+ $(Q) $(MAKEDIRS) $(XRUBY_RUBYLIBDIR)/$(arch) $(XRUBY_RUBYHDRDIR)/$(arch)/ruby
+ $(Q) sed '/^\$$:\.unshift/q' $(arch)-fake.rb > fake.rb
+ $(Q) $(BASERUBY) -p \
+ -e '~/^\s*CONFIG\["LDFLAGS"\]/ and' \
+ -e '$$_[/(?=\s*"$$)/] = %q[ #{(CONFIG["LIBPATHFLAG"]%File.dirname(__FILE__)).strip}]' \
+ rbconfig.rb > fake-rbconfig.rb
+ $(INSTALL_SCRIPT) fake.rb $(XRUBY_RUBYLIBDIR)/$(arch)/fake.rb
+ $(INSTALL_SCRIPT) fake-rbconfig.rb $(XRUBY_RUBYLIBDIR)/$(arch)/rbconfig.rb
+ @$(RM) fake.rb fake-rbconfig.rb
+ $(INSTALL_DATA) $(arch_hdrdir)/ruby/config.h $(XRUBY_RUBYHDRDIR)/$(arch)/ruby
+ $(INSTALL_DATA) $(top_srcdir)/include/ruby/win32.h $(XRUBY_RUBYHDRDIR)/ruby
+ $(INSTALL_DATA) $(LIBRUBY) $(LIBRUBY_A) $(XRUBY_RUBYLIBDIR)/$(arch)
+ $(INSTALL_PROGRAM) $(LIBRUBY_SO) $(XRUBY_RUBYLIBDIR)/$(arch)
+
+Makefile: $(srcdir)/Makefile.in $(srcdir)/enc/Makefile.in
+
+$(MKFILES): config.status
+ @[ -f $@ ] && mv $@ $@.old
+ MAKE=$(MAKE) $(SHELL) ./config.status $@
+ @cmp $@ $@.old > /dev/null 2>&1 && echo $@ unchanged && exit 0; \
+ { \
echo "all:; -@rm -f conftest.mk"; \
echo "conftest.mk: .force; @echo AUTO_REMAKE"; \
echo ".force:"; \
} > conftest.mk || exit 1; \
$(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' >/dev/null 2>&1 || \
- { echo "Makefile updated, restart."; exit 1; }
+ { echo "$@ updated, restart."; exit 1; }
-config.status: $(srcdir)/configure
- MINIRUBY="$(MINIRUBY)" $(SHELL) ./config.status --recheck
+uncommon.mk: $(srcdir)/common.mk
+ sed 's/{\$$([^(){}]*)[^{}]*}//g' $< > $@
-$(srcdir)/configure: $(srcdir)/configure.in
- cd $(srcdir) && $(AUTOCONF)
+.PHONY: reconfig
+reconfig-args = $(srcdir)/configure $(configure_args)
+config.status-args = ./config.status --recheck
+reconfig-exec-0 = exec 3>&1; exit `exec 4>&1; { "$$@" 3>&- 4>&-; echo $$? 1>&4; } | fgrep -v '(cached)' 1>&3`
+reconfig-exec-1 = set -x; "$$@"
-lex.c: keywords
- @-$(RM) $@
- gperf -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? > $@ || \
- cp "$(srcdir)/$@" .
+reconfig config.status: $(srcdir)/configure $(srcdir)/enc/Makefile.in \
+ $(srcdir)/include/ruby/version.h
+ @PWD= MINIRUBY="$(MINIRUBY)"; export MINIRUBY; \
+ set $(SHELL) $($@-args); $(reconfig-exec-$(V))
-.y.c:
- $(YACC) $<
- sed '/^#/s|y\.tab\.c|$@|' y.tab.c > $@
- rm -f y.tab.c
+$(srcdir)/configure: $(srcdir)/configure.in
+ $(CHDIR) $(srcdir) && exec $(AUTOCONF)
+
+incs: id.h
+all-incs: probes.h
+
+# Things which should be considered:
+# * with gperf v.s. without gperf
+# * committers may have various versions of gperf
+# * ./configure v.s. ../ruby/configure
+# * GNU make v.s. HP-UX make # HP-UX make invokes the action if lex.c and keywords has same mtime.
+# * svn checkout generate a file with mtime as current time
+# * ext4 and XFS has a mtime with fractional part
+lex.c: defs/keywords
+ @\
+ if cmp -s $(srcdir)/defs/lex.c.src $?; then \
+ [ $(Q) ] && echo copying $@ || set -x; \
+ $(CP) $(srcdir)/lex.c.blt $@; \
+ else \
+ [ $(Q) ] && echo generating $@ || set -x; \
+ gperf -C -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? > $@.tmp && \
+ $(MV) $@.tmp $@ && \
+ $(CP) $? $(srcdir)/defs/lex.c.src && \
+ $(CP) $@ $(srcdir)/lex.c.blt; \
+ fi
+
+NAME2CTYPE_OPTIONS = -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p
+
+enc/unicode/name2ctype.h: enc/unicode/name2ctype.kwd
+ $(MAKEDIRS) $(@D)
+ @set +e; \
+ if cmp -s $(?:.kwd=.src) $?; then \
+ set -x; \
+ $(CP) $(?:.kwd=.h.blt) $@; \
+ else \
+ trap '$(RM) $@-1.h $@-2.h' 0 && \
+ set -x; \
+ sed '/^#ifdef USE_UNICODE_PROPERTIES/,/^#endif/d' $? | gperf $(NAME2CTYPE_OPTIONS) > $@-1.h && \
+ sed '/^#ifdef USE_UNICODE_PROPERTIES/d;/^#endif/d' $? | gperf $(NAME2CTYPE_OPTIONS) > $@-2.h && \
+ diff -DUSE_UNICODE_PROPERTIES $@-1.h $@-2.h > $@.tmp || :; \
+ $(MV) $@.tmp $@ && \
+ $(CP) $? $(?:.kwd=.src) && \
+ $(CP) $@ $(?:.kwd=.h.blt); \
+ fi
.c.@OBJEXT@:
- $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+ @$(ECHO) compiling $<
+ $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $<
.s.@OBJEXT@:
- $(AS) $(ASFLAGS) -o $@ $<
+ @$(ECHO) assembling $<
+ $(Q) $(AS) $(ASFLAGS) -o $@ $<
+
+.c.S:
+ @$(ECHO) translating $<
+ $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -S $<
+
+.c.i:
+ @$(ECHO) preprocessing $<
+ $(Q) $(CPP) $(warnflags) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -E $< > $@
+
+.d.h:
+ @$(ECHO) translating probes $<
+ $(Q) $(DTRACE) -o $@.tmp -h -C $(INCFLAGS) -s $<
+ $(Q) sed -e 's/RUBY_/RUBY_DTRACE_/g' -e 's/PROBES_H_TMP/PROBES_H/g' -e 's/(char \*/(const char */g' -e 's/, char \*/, const char */g' $@.tmp > $@
+ $(Q) $(RM) $@.tmp
+
+.dmyh.h:
+ @$(ECHO) copying dummy $(DEST_FILE)
+ $(Q) $(CP) $(OS_SRC_FILE) $(OS_DEST_FILE)
+
+probes.@OBJEXT@: $(srcdir)/probes.d
+ @$(ECHO) processing probes in object files
+ $(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) $(DTRACE_OBJ)
clean-local::
- @$(RM) ext/extinit.c ext/extinit.$(OBJEXT)
+ $(Q)$(RM) ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output \
+ enc/encinit.c enc/encinit.$(OBJEXT)
+ -$(Q)$(RM) $(pkgconfig_DATA)
distclean-local::
- @$(RM) ext/config.cache $(RBCONFIG)
+ $(Q)$(RM) ext/config.cache $(RBCONFIG) Doxyfile
+ -$(Q)$(RM) run.gdb
+ -$(Q)$(RM) $(INSTALLED_LIST) $(arch_hdrdir)/ruby/config.h verconf.h
+ -$(Q)$(RMDIRS) $(arch_hdrdir)/ruby 2> /dev/null || true
+
+clean-ext distclean-ext realclean-ext::
+ @cd ext 2>/dev/null || exit 0; set dummy `echo "${EXTS}" | tr , ' '`; shift; \
+ test "$$#" = 0 && set .; \
+ set dummy `\
+ find "$$@" -name Makefile -print | sed 's:^\./::;s:/Makefile$$:~:' | sort | sed 's:~$$::'; \
+ `; shift; \
+ cd ..; \
+ for dir do \
+ echo $(@:-ext=)ing "$$dir"; \
+ (cd "ext/$$dir" && exec $(MAKE) $(MFLAGS) $(@:-ext=)) && \
+ case "$@" in \
+ *distclean-ext*|*realclean-ext*) \
+ $(RMDIRS) "ext/$$dir" 2> /dev/null || true;; \
+ esac; \
+ done
+ -$(Q)$(RM) ext/extinit.$(OBJEXT)
+
+distclean-ext realclean-ext::
+ -$(Q)$(RM) ext/extinit.c
+ -$(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)
- $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(OUTFLAG)$@ -c ext/extinit.c
+ $(ECHO) compiling $@
+ $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c
+
+enc/encinit.$(OBJEXT): enc/encinit.c $(SETUP)
+
+up::
+ @$(CHDIR) "$(srcdir)" && LC_TIME=C exec $(VCSUP)
+
+up::
+ -$(Q)$(MAKE) $(MFLAGS) after-update
+
+after-update:: update-config_files
+
+update-mspec:
+ @$(CHDIR) $(srcdir); \
+ if [ -d spec/mspec ]; then \
+ cd spec/mspec; \
+ echo updating mspec ...; \
+ exec git pull; \
+ else \
+ echo retrieving mspec ...; \
+ exec git clone $(MSPEC_GIT_URL) spec/mspec; \
+ fi
+
+update-rubyspec: update-mspec
+ @$(CHDIR) $(srcdir); \
+ if [ -d spec/rubyspec ]; then \
+ cd spec/rubyspec; \
+ echo updating rubyspec ...; \
+ exec git pull; \
+ else \
+ echo retrieving rubyspec ...; \
+ exec git clone $(RUBYSPEC_GIT_URL) spec/rubyspec; \
+ fi
+
+test-rubyspec-precheck:
+ @if [ ! -d $(srcdir)/spec/rubyspec ]; then echo No rubyspec here. make update-rubyspec first.; exit 1; fi
+
+INSNS = opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \
+ vmtc.inc vm.inc
+
+$(INSNS): $(srcdir)/insns.def vm_opts.h \
+ $(srcdir)/defs/opt_operand.def $(srcdir)/defs/opt_insn_unif.def \
+ $(srcdir)/tool/instruction.rb $(srcdir)/tool/insns2vm.rb
+ $(ECHO) generating $@
+ $(Q) $(BASERUBY) -Ku $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@
+
+loadpath: verconf.h
+ @$(CPP) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/loadpath.c | \
+ sed -e '1,/^const char ruby_initial_load_paths/d;/;/,$$d' \
+ -e '/^ /!d;s/ *"\\0"$$//;s/" *"//g'
diff --git a/NEWS b/NEWS
index de1dafb533..ae44d7effb 100644
--- a/NEWS
+++ b/NEWS
@@ -1,115 +1,312 @@
-= NEWS
+# -*- rdoc -*-
+
+= NEWS for Ruby 2.1.0
This document is a list of user visible feature changes made between
-releases excluding bug fixes.
+releases except for bug fixes.
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 with Ruby 1.8.5
-
-=== New platforms/build tools support
-
-* IA64 HP-UX
-
-* Visual C++ 8 SP1
-
-* autoconf 2.6x
-
-=== Library updates (outstanding ones only)
-
-* date
-
- * Updated based on date2 4.0.3.
-
-* digest
-
- * New internal APIs for C and Ruby.
-
- * Support for autoloading.
-
- * See below for new features and compatibility issues.
-
-* nkf
-
- * Updated based on nkf as of 2007-01-28.
-
-* tk
-
- * Tk::X_Scrollable (Y_Scrollable) is renamed to Tk::XScrollable
- (YScrollable). Tk::X_Scrollable (Y_Scrollable) is still available,
- but it is an alias name.
-
- * Updated Tile extension support based on Tile 0.7.8.
-
- * Support --without-X11 configure option for non-X11 versions of
- Tcl/Tk (e.g. Tcl/Tk Aqua).
-
- * New sample script: irbtkw.rbw -- IRB on Ruby/Tk. It has no trouble
- about STDIN blocking on Windows.
-
-=== New methods and features
-
-* builtin classes
-
- * New method: Kernel#instance_variable_defined?
-
- * New method: Module#class_variable_defined?
-
- * New feature: Dir::glob() can now take an array of glob patterns.
-
-* digest
-
- * New digest class methods: file
-
- * New digest instance methods: clone, reset, new,
- inspect, digest_length (alias size or length),
- block_length()
-
- * New library: digest/bubblebabble
-
- * New function: Digest(name)
-
-* fileutils
-
- * New option for FileUtils.cp_r(): :remove_destination
-
-* thread
-
- * Replaced with much faster mutex implementation in C.
- The former implementation is available with a
- configure option `--disable-fastthread'.
-
-* webrick
-
- * New method: WEBrick::Cookie.parse_set_cookies()
-
-=== Compatibility issues (excluding feature bug fixes)
-
-* builtin classes
-
- * String#intern now raises SecurityError when $SAFE level is greater
- than zero.
-
-* fileutils
-
- * A minor implementation change breaks Rake <=0.7.1.
- Updating Rake to 0.7.2 fixes the problem.
-
-* digest
-
- * The constructor does no longer take an initial
- string to feed; digest() and hexdigest() now do,
- instead. The following examples show how to
- migrate:
-
- # Before
- md = Digest::MD5.new("string")
- # After (works with any version)
- md = Digest::MD5.new.update("string")
-
- # Before
- hd = Digest::MD5.new("string").hexdigest
- # After (works with any version)
- hd = Digest::MD5.hexdigest("string")
+== Changes since the 2.0.0 release
+
+=== Language changes
+
+* Now the default values of keyword arguments can be omitted. Those
+ "required keyword arguments" need giving explicitly at the call time.
+
+* 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.
+
+* def-expr now returns the symbol of its name instead of nil.
+
+=== Core classes updates (outstanding ones only)
+
+* Array
+ * New methods
+ * Array#to_h converts an array of key-value pairs into a Hash.
+
+* Binding
+ * New methods
+ * Binding#local_variable_get(symbol)
+ * Binding#local_variable_set(symbol, obj)
+ * Binding#local_variable_defined?(symbol)
+
+* Enumerable
+ * New methods
+ * Enumerable#to_h converts a list of key-value pairs into a Hash.
+
+* Exception
+ * New methods
+ * Exception#cause provides the previous exception which has been caught
+ at where raising the new exception.
+
+* GC
+ * added environment variable:
+ * RUBY_HEAP_SLOTS_GROWTH_FACTOR: growth rate of the heap.
+
+* 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
+ * 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#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
+ * 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
+
+* RbConfig
+ * New constants:
+ * RbConfig::SIZEOF is added to provide the size of C types.
+
+* String
+ * New methods:
+ * String#scrub and String#scrub! verify and fix invalid byte sequence.
+ * extended methods:
+ * If invalid: :replace is specified for String#encode, replace
+ invalid byte sequence even if the destination encoding equals to
+ the source encoding.
+
+* Symbol
+ * All symbols are now frozen.
+
+* pack/unpack (Array/String)
+ * Q! and q! directives for long long type if platform has the type.
+
+* 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.
+
+=== Core classes compatibility issues (excluding feature bug fixes)
+
+* IO
+ * incompatible changes:
+ * open ignore internal encoding if external encoding is ASCII-8BIT.
+
+* 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.
+
+* 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.
+
+* Module#ancestors
+ * The ancestors of a singleton class now include singleton classes,
+ in particular itself.
+
+* Module#define_method and Object#define_singleton_method
+ * Now they return the symbols of the defined methods, not the methods/procs
+ themselves.
+
+* Numeric#quo
+ * Raises TypeError instead of ArgumentError if the receiver doesn't have
+ to_r method.
+
+* 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.
+
+=== Stdlib updates (outstanding ones only)
+
+* CGI::Util
+ * All class methods modulized.
+
+* Digest
+ * extended methods:
+ * Digest::Class.file takes optional arguments for its constructor
+
+* Matrix
+ * 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
+
+* OpenSSL::BN
+ * extended methods:
+ * OpenSSL::BN.new allows Fixnum/Bignum argument.
+
+* open-uri
+ * Support multiple fields with same field name (like Set-Cookie).
+
+* Pathname
+ * New methods:
+ * Pathname#write
+ * Pathname#binwrite
+
+* 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.
+
+ For a complete list of changes since rake 0.9.6 see:
+
+ http://rake.rubyforge.org/doc/release_notes/rake-10_1_0_rdoc.html
+
+ http://rake.rubyforge.org/doc/release_notes/rake-10_0_3_rdoc.html
+
+* RDoc
+ * Updated to 4.1.0.preview.2. Major enhancements include a modified default
+ template and accessibility enhancements.
+
+ For a list of minor enhancements and bug fixes see:
+ https://github.com/rdoc/rdoc/blob/v4.1.0.preview.1/History.rdoc
+
+* Resolv
+ * New methods:
+ * Resolv::DNS.fetch_resource
+ * One-shot multicast DNS support
+ * Support LOC resources
+
+* 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 backword
+ compatibility.
+
+* REXML::Parsers::StreamParser
+ * Supports "entity" event.
+
+* REXML::Text
+ * REXML::Text#<< supports method chain like 'text << "XXX" << "YYY"'.
+ * REXML::Text#<< supports not "raw" mode.
+
+* Rinda::RingServer, Rinda::RingFinger
+ * Rinda now supports multicast sockets. See Rinda::RingServer and
+ Rinda::RingFinger for details.
+
+* RubyGems
+ * Updated to 2.2.0.preview.2 For a list of enhancements and bug fixes see:
+ https://github.com/rubygems/rubygems/blob/v2.2.0.preview.1/History.txt
+
+* Set
+ * New methods:
+ * Set#intersect?
+ * Set#disjoint?
+
+* Socket
+ * New methods:
+ * Socket.getifaddrs
+
+* StringScanner
+ * extended methods:
+ * StringScanner#[] supports named captures.
+
+* Syslog::Logger
+ * Added facility.
+
+* Tempfile
+ * New methods:
+ * Tempfile.create
+
+* 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.
+
+* TSort
+ * New methods:
+ * TSort.tsort
+ * TSort.tsort_each
+ * TSort.strongly_connected_components
+ * TSort.each_strongly_connected_component
+ * TSort.each_strongly_connected_component_from
+
+* WEBrick
+ * The body of a response may now be a StringIO or other IO-like that responds
+ to #readpartial and #read.
+
+* 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.
+
+=== Stdlib compatibility issues (excluding feature bug fixes)
+
+* Set
+ * incompatible changes:
+ * Set#to_set now returns self instead of generating a copy.
+
+* 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.
+
+=== Built-in global variables compatibility issues
+
+* $SAFE
+ * $SAFE=4 is obsolete. If $SAFE is set to 4 or larger, an ArgumentError
+ is raised.
+
+=== C API updates
diff --git a/README b/README
index cf836415ad..3ffe3553a8 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-* What's Ruby
+= What's Ruby
Ruby is the interpreted scripting language for quick and
easy object-oriented programming. It has many features to
@@ -6,109 +6,161 @@ process text files and to do system management tasks (as in
Perl). It is simple, straight-forward, and extensible.
-* Features of Ruby
+== 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 machines, and on DOS,
- Windows, Mac, BeOS etc.)
+* 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
+== How to get Ruby
-The Ruby distribution files can be found in the following FTP site:
+For a complete list of ways to install Ruby, including using third party
+tools like rvm, see:
- ftp://ftp.ruby-lang.org/pub/ruby/
+http://www.ruby-lang.org/en/downloads/
-The latest source code of this version series can be checked out
-through SVN with the following command:
+The Ruby distribution files can be found in the following FTP site:
- $ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_6/
+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
+== Ruby home-page
The URL of the Ruby home-page is:
- http://www.ruby-lang.org/
+http://www.ruby-lang.org/
-* Mailing list
+== Mailing list
There is a mailing list to talk about Ruby.
To subscribe this list, please send the following phrase
- subscribe YourFirstName YourFamilyName
+ subscribe YourFirstName YourFamilyName
e.g.
subscribe Joseph Smith
-in the mail body (not subject) to the address <ruby-talk-ctl@ruby-lang.org>.
+in the mail body (not subject) to the address <mailto:ruby-talk-ctl@ruby-lang.org>.
-* How to compile and install
+== How to compile and install
This is what you need to do to compile and install Ruby:
- 1. If ./configure does not exist or is older than configure.in,
+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.
+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.
+3. Edit +defines.h+ if you need. Usually this step will not be needed.
- 4. Remove comment mark(#) before the module names from ext/Setup (or
- add module names if not present), if you want to link modules
+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 "#option nodynamic" in
- ext/Setup.
+ remove comment mark from the line "<tt>#option nodynamic</tt>" in
+ +ext/Setup+.
+
+ Usually this step will not be needed.
- 5. Run make.
+5. Run +make+.
- 6. Optionally, run 'make test' to check whether the compiled Ruby
- interpreter works well. If you see the message "test succeeded",
+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 'make install'
+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+.
-* Copying
+== Feedback
-See the file COPYING.
+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
+== The Author
-Feel free to send comments and bug reports to the author. Here is the
-author's latest mail address:
+Ruby was originally designed and developed by Yukihiro Matsumoto (Matz) in 1995.
- matz@netlab.jp
+<mailto:matz@ruby-lang.org>
--------------------------------------------------------
-created at: Thu Aug 3 11:57:36 JST 1995
+--
Local variables:
-mode: indented-text
+mode: rdoc
end:
diff --git a/README.EXT b/README.EXT
index 2fc2fd606a..b7a1728110 100644
--- a/README.EXT
+++ b/README.EXT
@@ -1,8 +1,8 @@
-.\" README.EXT - -*- Text -*- created at: Mon Aug 7 16:45:54 JST 1995
+# README.EXT - -*- RDoc -*- created at: Mon Aug 7 16:45:54 JST 1995
This document explains how to make extension libraries for Ruby.
-1. Basic knowledge
+= Basic Knowledge
In C, variables have types and data do not have types. In contrast,
Ruby variables do not have a static type, and data themselves have
@@ -13,46 +13,46 @@ has its data-type.
To retrieve C data from a VALUE, you need to:
- (1) Identify the VALUE's data type
- (2) Convert the VALUE into C data
+1. Identify the VALUE's data type
+2. Convert the VALUE into C data
Converting to the wrong data type may cause serious problems.
-
-1.1 Data-types
+== Data-Types
The Ruby interpreter has the following data types:
- T_NIL nil
- T_OBJECT ordinary object
- T_CLASS class
- T_MODULE module
- T_FLOAT floating point number
- T_STRING string
- T_REGEXP regular expression
- T_ARRAY array
- T_FIXNUM Fixnum(31bit integer)
- T_HASH associative array
- T_STRUCT (Ruby) structure
- T_BIGNUM multi precision integer
- T_FILE IO
- T_TRUE true
- T_FALSE false
- T_DATA data
- T_SYMBOL symbol
+T_NIL :: nil
+T_OBJECT :: ordinary object
+T_CLASS :: class
+T_MODULE :: module
+T_FLOAT :: floating point number
+T_STRING :: string
+T_REGEXP :: regular expression
+T_ARRAY :: array
+T_HASH :: associative array
+T_STRUCT :: (Ruby) structure
+T_BIGNUM :: multi precision integer
+T_FIXNUM :: Fixnum(31bit or 63bit integer)
+T_COMPLEX :: complex number
+T_RATIONAL :: rational number
+T_FILE :: IO
+T_TRUE :: true
+T_FALSE :: false
+T_DATA :: data
+T_SYMBOL :: symbol
In addition, there are several other types used internally:
- T_ICLASS
- T_MATCH
- T_UNDEF
- T_VARMAP
- T_SCOPE
- T_NODE
+T_ICLASS :: included module
+T_MATCH :: MatchData object
+T_UNDEF :: undefined
+T_NODE :: syntax tree node
+T_ZOMBIE :: object awaiting finalization
Most of the types are represented by C structures.
-1.2 Check Data Type of the VALUE
+== Check Data Type of the VALUE
The macro TYPE() defined in ruby.h shows the data type of the VALUE.
TYPE() returns the constant number T_XXXX described above. To handle
@@ -78,65 +78,80 @@ There is the data-type check function
void Check_Type(VALUE value, int type)
-which raises an exception if the VALUE does not have the type specified.
+which raises an exception if the VALUE does not have the type
+specified.
There are also faster check macros for fixnums and nil.
FIXNUM_P(obj)
NIL_P(obj)
-1.3 Convert VALUE into C data
+== Convert VALUE into C Data
-The data for type T_NIL, T_FALSE, T_TRUE are nil, true, false
+The data for type T_NIL, T_FALSE, T_TRUE are nil, false, true
respectively. They are singletons for the data type.
-
-The T_FIXNUM data is a 31bit length fixed integer (63bit length on
-some machines), which can be converted to a C integer by using the
-FIX2INT() macro. There is also NUM2INT() which converts any Ruby
-numbers into C integers. The NUM2INT() macro 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.
-
-In version 1.7 or later it is recommended that you use the new macros
+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 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
+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 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 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
+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.
-In version 1.6 or earlier, STR2CSTR() was used to do the same thing
-but now it is deprecated in version 1.7, because STR2CSTR() has a risk
-of a dangling pointer problem in the to_str() impliclit conversion.
+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
+the ArgumentError exception.
+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".
-
-For example, `RSTRING(str)->len' is the way to get the size of the
-Ruby String object. The allocated region can be accessed by
-`RSTRING(str)->ptr'. For arrays, use `RARRAY(ary)->len' and
-`RARRAY(ary)->ptr' respectively.
+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 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).
+
+There are some accessing macros for structure members, for example
+`RSTRING_LEN(str)' to get the size of the Ruby String object. The
+allocated region can be accessed by `RSTRING_PTR(str)'.
Notice: Do not change the value of the structure directly, unless you
-are responsible for the result. This ends up being the cause of interesting
-bugs.
+are responsible for the result. This ends up being the cause of
+interesting bugs.
-1.4 Convert C data into VALUE
+== Convert C Data into VALUE
To convert C data to Ruby values:
- * FIXNUM
+FIXNUM ::
- left shift 1 bit, and turn on LSB.
+ left shift 1 bit, and turn on LSB.
- * Other pointer values
+Other pointer values::
- cast to VALUE.
+ cast to VALUE.
-You can determine whether a VALUE is 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
should be pointers to the structures which Ruby knows about. The known
@@ -144,81 +159,161 @@ structures are defined in <ruby.h>.
To convert C numbers to Ruby values, use these macros.
- INT2FIX() for integers within 31bits.
- INT2NUM() for arbitrary sized integer.
+INT2FIX() :: for integers within 31bits.
+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.
-1.5 Manipulating Ruby data
+== Manipulating Ruby Data
+
+As I already mentioned, it is not recommended to modify an object's
+internal structure. To manipulate objects, use the functions supplied
+by the Ruby interpreter. Some (not all) of the useful functions are
+listed below:
+
+=== String Functions
+
+rb_str_new(const char *ptr, long len) ::
+
+ Creates a new Ruby string.
+
+rb_str_new2(const char *ptr) ::
+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_tainted_str_new(const char *ptr, long len) ::
+
+ Creates a new tainted Ruby string. Strings from external data
+ sources should be tainted.
+
+rb_tainted_str_new2(const char *ptr) ::
+rb_tainted_str_new_cstr(const char *ptr) ::
+
+ Creates a new tainted Ruby string from a C string.
+
+rb_sprintf(const char *format, ...) ::
+rb_vsprintf(const char *format, va_list ap) ::
+
+ Creates a new Ruby string with printf(3) format.
+
+ 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.
-As I already mentioned, it is not recommended to modify an object's internal
-structure. To manipulate objects, use the functions supplied by the Ruby
-interpreter. Some (not all) of the useful functions are listed below:
+rb_str_cat(VALUE str, const char *ptr, long len) ::
- String functions
+ Appends len bytes of data from ptr to the Ruby string.
- rb_str_new(const char *ptr, long len)
+rb_str_cat2(VALUE str, const char* ptr) ::
- Creates a new Ruby string.
+ Appends C string ptr to Ruby string str. This function is
+ equivalent to rb_str_cat(str, ptr, strlen(ptr)).
- rb_str_new2(const char *ptr)
+rb_str_catf(VALUE str, const char* format, ...) ::
+rb_str_vcatf(VALUE str, const char* format, va_list ap) ::
- Creates a new Ruby string from a C string. This is equivalent to
- rb_str_new(ptr, strlen(ptr)).
+ Appends C string format and successive arguments to Ruby string
+ str according to a printf-like format. These functions are
+ equivalent to rb_str_cat2(str, rb_sprintf(format, ...)) and
+ rb_str_cat2(str, rb_vsprintf(format, ap)), respectively.
- rb_tainted_str_new(const char *ptr, long len)
+rb_enc_str_new(const char *ptr, long len, rb_encoding *enc) ::
+rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc) ::
- Creates a new tainted Ruby string. Strings from external data
- sources should be tainted.
+ Creates a new Ruby string with the specified encoding.
- rb_tainted_str_new2(const char *ptr)
+rb_usascii_str_new(const char *ptr, long len) ::
+rb_usascii_str_new_cstr(const char *ptr) ::
- Creates a new tainted Ruby string from a C string.
+ Creates a new Ruby string with encoding US-ASCII.
- rb_str_cat(VALUE str, const char *ptr, long len)
+rb_str_resize(VALUE str, long len) ::
- Appends len bytes of data from ptr to the Ruby string.
+ 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
+ the content beyond the old length bytes will not be preserved but
+ will be garbage. Note that RSTRING_PTR(str) may change by calling
+ this function.
- Array functions
+rb_str_set_len(VALUE str, long len) ::
- rb_ary_new()
+ Sets the length of Ruby string. If str is not modifiable, this
+ function raises an exception. This function preserves the content
+ upto len bytes, regardless RSTRING_LEN(str). len must not exceed
+ the capacity of str.
- Creates an array with no elements.
+=== Array Functions
- rb_ary_new2(long len)
+rb_ary_new() ::
- Creates an array with no elements, allocating internal buffer
- for len elements.
+ Creates an array with no elements.
- rb_ary_new3(long n, ...)
+rb_ary_new2(long len) ::
+rb_ary_new_capa(long len) ::
- Creates an n-element array from the arguments.
+ Creates an array with no elements, allocating internal buffer
+ for len elements.
- rb_ary_new4(long n, VALUE *elts)
+rb_ary_new3(long n, ...) ::
+rb_ary_new_from_args(long n, ...) ::
- Creates an n-element array from a C array.
+ Creates an n-element array from the arguments.
- rb_ary_push(VALUE ary, VALUE val)
- rb_ary_pop(VALUE ary)
- rb_ary_shift(VALUE ary)
- rb_ary_unshift(VALUE ary, VALUE val)
+rb_ary_new4(long n, VALUE *elts) ::
+rb_ary_new_from_values(long n, VALUE *elts) ::
- Array operations. The first argument to each functions must be an
- array. They may dump core if other types are given.
+ Creates an n-element array from a C array.
-2. Extending Ruby with C
+rb_ary_to_ary(VALUE obj) ::
-2.1 Addding new features to Ruby
+ Converts the object into an array.
+ Equivalent to Object#to_ary.
+
+There are many functions to operate an array. They may dump core if other
+types are given.
+
+rb_ary_aref(argc, VALUE *argv, VALUE ary) ::
+
+ Equivalent to Array#[].
+
+rb_ary_entry(VALUE ary, long offset) ::
+
+ ary[offset]
+
+rb_ary_store(VALUE ary, long offset, VALUE obj) ::
+
+ ary[offset] = obj
+
+rb_ary_subseq(VALUE ary, long beg, long len) ::
+
+ ary[beg, len]
+
+rb_ary_push(VALUE ary, VALUE val) ::
+rb_ary_pop(VALUE ary) ::
+rb_ary_shift(VALUE ary) ::
+rb_ary_unshift(VALUE ary, VALUE val) ::
+
+rb_ary_cat(VALUE ary, const VALUE *ptr, long len) ::
+
+ Appends len elements of objects from ptr to the array.
+
+= Extending Ruby with C
+
+== Adding New Features to Ruby
You can add new features (classes, methods, etc.) to the Ruby
interpreter. Ruby provides APIs for defining the following things:
- * Classes, Modules
- * Methods, Singleton Methods
- * Constants
+* Classes, Modules
+* Methods, Singleton Methods
+* Constants
-2.1.1 Class/module definition
+=== Class and Module Definition
To define a class or module, use the functions below:
@@ -233,21 +328,21 @@ To define nested classes or modules, use the functions below:
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
VALUE rb_define_module_under(VALUE outer, const char *name)
-2.1.2 Method/singleton method definition
+=== Method and Singleton Method Definition
To define methods or singleton methods, use these functions:
- void rb_define_method(VALUE klass, const char *name,
+ void rb_define_method(VALUE klass, const char *name,
VALUE (*func)(), int argc)
- void rb_define_singleton_method(VALUE object, const char *name,
+ void rb_define_singleton_method(VALUE object, const char *name,
VALUE (*func)(), int argc)
The `argc' represents the number of the arguments to the C function,
which must be less than 17. But I doubt you'll need that many.
If `argc' is negative, it specifies the calling sequence, not number of
-the arguments.
+the arguments.
If argc is -1, the function will be called as:
@@ -264,15 +359,23 @@ will be called like:
where obj is the receiver, and args is the Ruby array containing
actual arguments.
-There are two more functions to define methods. One is to define
-private methods:
+There are some more functions to define methods. One takes an ID
+as the name of method to be defined. See also ID or Symbol below.
+
+ void rb_define_method_id(VALUE klass, ID name,
+ VALUE (*func)(ANYARGS), int argc)
- void rb_define_private_method(VALUE klass, const char *name,
+There are two functions to define private/protected methods:
+
+ void rb_define_private_method(VALUE klass, const char *name,
VALUE (*func)(), int argc)
+ void rb_define_protected_method(VALUE klass, const char *name,
+ VALUE (*func)(), int argc)
-The other is to define module functions, which are private AND singleton
-methods of the module. For example, sqrt is the module function
-defined in Math module. It can be called in the following way:
+At last, rb_define_module_function defines a module functions,
+which are private AND singleton methods of the module.
+For example, sqrt is the module function defined in Math module.
+It can be called in the following way:
Math.sqrt(4)
@@ -283,10 +386,10 @@ or
To define module functions, use:
- void rb_define_module_function(VALUE module, const char *name,
+ void rb_define_module_function(VALUE module, const char *name,
VALUE (*func)(), int argc)
-Oh, in addition, function-like methods, which are private methods defined
+In addition, function-like methods, which are private methods defined
in the Kernel module, can be defined using:
void rb_define_global_function(const char *name, VALUE (*func)(), int argc)
@@ -295,16 +398,20 @@ To define an alias for the method,
void rb_define_alias(VALUE module, const char* new, const char* old);
+To define a reader/writer for an attribute,
+
+ void rb_define_attr(VALUE klass, const char *name, int read, int write)
+
To define and undefine the `allocate' class method,
void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE klass));
void rb_undef_alloc_func(VALUE klass);
-func have to take the klass as the argument and return a newly
-allocated instance. This instance should be empty as possible,
+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.
-2.1.3 Constant definition
+=== Constant Definition
We have 2 functions to define constants:
@@ -314,11 +421,11 @@ We have 2 functions to define constants:
The former is to define a constant under specified class/module. The
latter is to define a global constant.
-2.2 Use Ruby features from C
+== Use Ruby Features from C
There are several ways to invoke Ruby's features from C code.
-2.2.1 Evaluate Ruby Programs in a String
+=== Evaluate Ruby Programs in a String
The easiest way to use Ruby's functionality from a C program is to
evaluate the string as Ruby program. This function will do the job:
@@ -328,23 +435,46 @@ evaluate the string as Ruby program. This function will do the job:
Evaluation is done under the current context, thus current local variables
of the innermost method (which is defined by Ruby) can be accessed.
-2.2.2 ID or Symbol
+Note that the evaluation can raise an exception. There is a safer
+function:
+
+ VALUE rb_eval_string_protect(const char *str, int *state)
+
+It returns nil when an error occur. Moreover, *state is zero if str was
+successfully evaluated, or nonzero otherwise.
+
+=== ID or Symbol
-You can invoke methods directly, without parsing the string. First I need
-to explain about ID. ID is the integer number to represent Ruby's
-identifiers such as variable names. The Ruby data type corresponding to ID
-is Symbol. It can be accessed from Ruby in the form:
+You can invoke methods directly, without parsing the string. First I
+need to explain about ID. ID is the integer number to represent
+Ruby's identifiers such as variable names. The Ruby data type
+corresponding to ID is Symbol. It can be accessed from Ruby in the
+form:
- :Identifier
+ :Identifier
+
+or
+
+ :"any kind of string"
You can get the ID value from a string within C code by using
rb_intern(const char *name)
+ rb_intern_str(VALUE name)
You can retrieve ID from Ruby object (Symbol or String) given as an
argument by using
rb_to_id(VALUE symbol)
+ rb_check_id(volatile VALUE *name)
+ rb_check_id_cstr(const char *name, long len, rb_encoding *enc)
+
+These functions try to convert the argument to a String if it was not
+a Symbol nor a String. The second function stores the converted
+result into *name, and returns 0 if the string is not a known symbol.
+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 convert C ID to Ruby Symbol by using
@@ -354,7 +484,7 @@ and to convert Ruby Symbol object to ID, use
ID SYM2ID(VALUE symbol)
-2.2.3 Invoke Ruby method from C
+=== Invoke Ruby Method from C
To invoke methods directly, you can use the function below
@@ -363,11 +493,11 @@ To invoke methods directly, you can use the function below
This function invokes a method on the recv, with the method name
specified by the symbol mid.
-2.2.4 Accessing the variables and constants
+=== Accessing the Variables and Constants
You can access class variables and instance variables using access
-functions. Also, global variables can be shared between both environments.
-There's no way to access Ruby's local variables.
+functions. Also, global variables can be shared between both
+environments. There's no way to access Ruby's local variables.
The functions to access/modify instance variables are below:
@@ -380,13 +510,14 @@ To access the constants of the class/module:
VALUE rb_const_get(VALUE obj, ID id)
-See 2.1.3 for defining new constant.
+See also Constant Definition above.
-3. Information sharing between Ruby and C
+= Information Sharing Between Ruby and C
-3.1 Ruby constants that C can be accessed from C
+=== Ruby Constants That C Can Be Accessed From C
-The following Ruby constants can be referred from C.
+As stated in section 1.3,
+the following Ruby constants can be referred from C.
Qtrue
Qfalse
@@ -397,7 +528,7 @@ Boolean values. Qfalse is false in C also (i.e. 0).
Ruby nil in C scope.
-3.2 Global variables shared between C and Ruby
+== Global Variables Shared Between C and Ruby
Information can be shared between the two environments using shared global
variables. To define them, you can use functions listed below:
@@ -416,30 +547,37 @@ function below.
You can defined hooked variables. The accessor functions (getter and
setter) are called on access to the hooked variables.
- void rb_define_hooked_variable(constchar *name, VALUE *var,
+ void rb_define_hooked_variable(const char *name, VALUE *var,
VALUE (*getter)(), void (*setter)())
If you need to supply either setter or getter, just supply 0 for the
hook you don't need. If both hooks are 0, rb_define_hooked_variable()
works just like rb_define_variable().
- void rb_define_virtual_variable(const char *name,
- VALUE (*getter)(), void (*setter)())
+The prototypes of the getter and setter functions are as follows:
+
+ VALUE (*getter)(ID id, VALUE *var);
+ void (*setter)(VALUE val, ID id, VALUE *var);
-This function defines a Ruby global variable without a corresponding C
+
+Also you can define a Ruby global variable without a corresponding C
variable. The value of the variable will be set/get only by hooks.
+ void rb_define_virtual_variable(const char *name,
+ VALUE (*getter)(), void (*setter)())
+
The prototypes of the getter and setter functions are as follows:
- (*getter)(ID id, void *data, struct global_entry* entry);
- (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);
+ VALUE (*getter)(ID id);
+ void (*setter)(VALUE val, ID id);
-3.3 Encapsulate C data into a Ruby object
+
+== Encapsulate C Data into a Ruby Object
To wrap and objectify a C pointer as a Ruby object (so called
DATA), use Data_Wrap_Struct().
- Data_Wrap_Struct(klass, mark, free, ptr)
+ Data_Wrap_Struct(klass, mark, free, sval)
Data_Wrap_Struct() returns a created DATA object. The klass argument
is the class for the DATA object. The mark argument is the function
@@ -448,6 +586,10 @@ function to free the pointer allocation. If this is -1, the pointer
will be just freed. The functions mark and free will be called from
garbage collector.
+These mark / free functions are invoked during GC execution. No
+object allocations are allowed during it, so do not allocate ruby
+objects inside them.
+
You can allocate and wrap the structure in one step.
Data_Make_Struct(klass, type, mark, free, sval)
@@ -468,31 +610,34 @@ Data_Get_Struct().
A pointer to the structure will be assigned to the variable sval.
-See the example below for details.
+See the example below for details.
-4. Example - Creating 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/
directory in the Ruby's source tree.
-(1) make the directory
+== Make the Directory
% mkdir ext/dbm
Make a directory for the extension library under ext directory.
-(2) design the library
+== Design the Library
You need to design the library features, before making it.
-(3) write C code.
+== Write the C Code
You need to write C code for your extension library. If your library
has only one source file, choosing ``LIBRARY.c'' as a file name is
preferred. On the other hand, in case your library has multiple source
files, avoid choosing ``LIBRARY.c'' for a file name. It may conflict
with an intermediate file ``LIBRARY.o'' on some platforms.
+Note that some functions in mkmf library described below generate
+a file ``conftest.c'' for checking with compilation. You shouldn't
+choose ``conftest.c'' as a name of a source file.
Ruby will execute the initializing function named ``Init_LIBRARY'' in
the library. For example, ``Init_dbm()'' will be executed when loading
@@ -500,53 +645,48 @@ the library.
Here's the example of an initializing function.
---
-Init_dbm()
-{
- /* define DBM class */
- cDBM = rb_define_class("DBM", rb_cObject);
- /* DBM includes Enumerate module */
- rb_include_module(cDBM, rb_mEnumerable);
-
- /* DBM has class method open(): arguments are received as C array */
- rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);
-
- /* DBM instance method close(): no args */
- rb_define_method(cDBM, "close", fdbm_close, 0);
- /* DBM instance method []: 1 argument */
- rb_define_method(cDBM, "[]", fdbm_fetch, 1);
- :
-
- /* ID for a instance variable to store DBM data */
- id_dbm = rb_intern("dbm");
-}
---
-
-The dbm extension wraps the dbm struct in the C environment using
-Data_Make_Struct.
+ void
+ Init_dbm(void)
+ {
+ /* define DBM class */
+ cDBM = rb_define_class("DBM", rb_cObject);
+ /* DBM includes Enumerate module */
+ rb_include_module(cDBM, rb_mEnumerable);
+
+ /* DBM has class method open(): arguments are received as C array */
+ rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);
+
+ /* DBM instance method close(): no args */
+ rb_define_method(cDBM, "close", fdbm_close, 0);
+ /* DBM instance method []: 1 argument */
+ rb_define_method(cDBM, "[]", fdbm_fetch, 1);
---
-struct dbmdata {
- int di_size;
- DBM *di_dbm;
-};
+ /* ... */
+
+ /* ID for a instance variable to store DBM data */
+ id_dbm = rb_intern("dbm");
+ }
+
+The dbm extension wraps the dbm struct in the C environment using
+Data_Make_Struct.
+ struct dbmdata {
+ int di_size;
+ DBM *di_dbm;
+ };
-obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);
---
+ obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);
-This code wraps the dbmdata structure into a Ruby object. We avoid wrapping
-DBM* directly, because we want to cache size information.
+This code wraps the dbmdata structure into a Ruby object. We avoid
+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) {\
- Data_Get_Struct(obj, struct dbmdata, dbmp);\
- if (dbmp->di_dbm == 0) closed_dbm();\
-}
---
+ #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.
@@ -554,14 +694,11 @@ the DBM.
There are three kinds of way to receive method arguments. First,
methods with a fixed number of arguments receive arguments like this:
---
-static VALUE
-fdbm_delete(obj, keystr)
- VALUE obj, keystr;
-{
- :
-}
---
+ static VALUE
+ fdbm_delete(VALUE obj, VALUE keystr)
+ {
+ /* ... */
+ }
The first argument of the C function is the self, the rest are the
arguments to the method.
@@ -569,52 +706,44 @@ arguments to the method.
Second, methods with an arbitrary number of arguments receive
arguments like this:
---
-static VALUE
-fdbm_s_open(argc, argv, klass)
- int argc;
- VALUE *argv;
- VALUE klass;
-{
- :
- if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
- mode = 0666; /* default value */
- }
- :
-}
---
+ static VALUE
+ fdbm_s_open(int argc, VALUE *argv, VALUE klass)
+ {
+ /* ... */
+ if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
+ mode = 0666; /* default value */
+ }
+ /* ... */
+ }
The first argument is the number of method arguments, the second
argument is the C array of the method arguments, and the third
argument is the receiver of the method.
You can use the function rb_scan_args() to check and retrieve the
-arguments. For example, "11" means that the method requires at least one
-argument, and at most receives two arguments.
+arguments. The third argument is a string that specifies how to
+capture method arguments and assign them to the following VALUE
+references.
+
-Methods with an arbitrary number of arguments can receive arguments
-by Ruby's array, like this:
+The following is an example of a method that takes arguments by Ruby's
+array:
---
-static VALUE
-fdbm_indexes(obj, args)
- VALUE obj, args;
-{
- :
-}
---
+ static VALUE
+ thread_initialize(VALUE thread, VALUE args)
+ {
+ /* ... */
+ }
The first argument is the receiver, the second one is the Ruby array
which contains the arguments to the method.
-** Notice
-
-GC should know about global variables which refer to Ruby's objects, but
-are not exported to the Ruby world. You need to protect them by
+*Notice*: GC should know about global variables which refer to Ruby's objects,
+but are not exported to the Ruby world. You need to protect them by
void rb_global_variable(VALUE *var)
-(4) prepare extconf.rb
+== Prepare extconf.rb
If the file named extconf.rb exists, it will be executed to generate
Makefile.
@@ -627,10 +756,26 @@ need to put
at the top of the file. You can use the functions below to check
various conditions.
- have_library(lib, func): check whether library containing function exists.
- have_func(func, header): check whether function exists
- have_header(header): check whether header file exists
- create_makefile(target): generate Makefile
+ have_macro(macro[, headers[, opt]]): check whether macro is defined
+ have_library(lib[, func[, headers[, opt]]]): check whether library containing function exists
+ find_library(lib[, func, *paths]): find library from paths
+ have_func(func[, headers[, opt]): check whether function exists
+ have_var(var[, headers[, opt]]): check whether variable exists
+ have_header(header[, preheaders[, opt]]): check whether header file exists
+ find_header(header, *paths): find header from paths
+ have_framework(fw): check whether framework exists (for MacOS X)
+ have_struct_member(type, member[, headers[, opt]]): check whether struct has member
+ have_type(type[, headers[, opt]]): check whether type exists
+ find_type(type, opt, *headers): check whether type exists in headers
+ have_const(const[, headers[, opt]]): check whether constant is defined
+ check_sizeof(type[, headers[, opts]]): check size of type
+ check_signedness(type[, headers[, opts]]): check signedness of type
+ convertible_int(type[, headers[, opts]]): find convertible integer type
+ find_executable(bin[, path]): find executable file path
+ create_header(header): generate configured header
+ create_makefile(target[, target_prefix]): generate Makefile
+
+See MakeMakefile for full documentation of these functions.
The value of the variables below will affect the Makefile.
@@ -647,7 +792,7 @@ If a compilation condition is not fulfilled, you should not call
``create_makefile''. The Makefile will not be generated, compilation will
not be done.
-(5) prepare depend (optional)
+== Prepare Depend (Optional)
If the file named depend exists, Makefile will include that file to
check dependencies. You can make this file by invoking
@@ -656,17 +801,22 @@ check dependencies. You can make this file by invoking
It's harmless. Prepare it.
-(6) generate Makefile
+== Generate Makefile
Try generating the Makefile by:
ruby extconf.rb
+If the library should be installed under vendor_ruby directory
+instead of site_ruby directory, use --vendor option as follows.
+
+ ruby extconf.rb --vendor
+
You don't need this step if you put the extension library under the ext
directory of the ruby source tree. In that case, compilation of the
interpreter will do this step for you.
-(7) make
+== Run make
Type
@@ -675,482 +825,672 @@ Type
to compile your extension. You don't need this step either if you have
put the extension library under the ext directory of the ruby source tree.
-(8) debug
+== Debug
You may need to rb_debug the extension. Extensions can be linked
statically by adding the directory name in the ext/Setup file so that
you can inspect the extension with the debugger.
-(9) done, now you have the extension library
+== Done! Now You Have the Extension Library
You can do anything you want with your library. The author of Ruby
will not claim any restrictions on your code depending on the Ruby API.
Feel free to use, modify, distribute or sell your program.
-Appendix A. Ruby source files overview
+= Appendix A. Ruby Source Files Overview
-ruby language core
+== Ruby Language Core
- class.c
- error.c
- eval.c
- gc.c
- object.c
- parse.y
- variable.c
+class.c :: classes and modules
+error.c :: exception classes and exception mechanism
+gc.c :: memory management
+load.c :: library loading
+object.c :: objects
+variable.c :: variables and constants
+
+== Ruby Syntax Parser
+
+parse.y :: grammar definition
+parse.c :: automatically generated from parse.y
+keywords :: reserved keywords
+lex.c :: automatically generated from keywords
-utility functions
+== Ruby Evaluator (a.k.a. YARV)
+
+ compile.c
+ eval.c
+ eval_error.c
+ eval_jump.c
+ eval_safe.c
+ insns.def : definition of VM instructions
+ iseq.c : implementation of VM::ISeq
+ thread.c : thread management and context switching
+ thread_win32.c : thread implementation
+ thread_pthread.c : ditto
+ vm.c
+ vm_dump.c
+ vm_eval.c
+ vm_exec.c
+ vm_insnhelper.c
+ vm_method.c
+
+ opt_insns_unif.def : instruction unification
+ opt_operand.def : definitions for optimization
+
+ -> insn*.inc : automatically generated
+ -> opt*.inc : automatically generated
+ -> vm.inc : automatically generated
+
+== Regular Expression Engine (Oniguruma)
- dln.c
regex.c
- st.c
- util.c
+ regcomp.c
+ regenc.c
+ regerror.c
+ regexec.c
+ regparse.c
+ regsyntax.c
-ruby interpreter implementation
+== Utility Functions
+
+debug.c :: debug symbols for C debugger
+dln.c :: dynamic loading
+st.c :: general purpose hash table
+strftime.c :: formatting times
+util.c :: misc utilities
+
+== Ruby Interpreter Implementation
dmyext.c
+ dmydln.c
+ dmyencoding.c
+ id.c
inits.c
main.c
ruby.c
version.c
-class library
+ gem_prelude.rb
+ prelude.rb
- array.c
- bignum.c
- compar.c
- dir.c
- enum.c
- file.c
- hash.c
- io.c
- marshal.c
- math.c
- numeric.c
- pack.c
- prec.c
- process.c
- random.c
- range.c
- re.c
- signal.c
- sprintf.c
- string.c
- struct.c
- time.c
+== Class Library
-Appendix B. Ruby extension API reference
+array.c :: Array
+bignum.c :: Bignum
+compar.c :: Comparable
+complex.c :: Complex
+cont.c :: Fiber, Continuation
+dir.c :: Dir
+enum.c :: Enumerable
+enumerator.c :: Enumerator
+file.c :: File
+hash.c :: Hash
+io.c :: IO
+marshal.c :: Marshal
+math.c :: Math
+numeric.c :: Numeric, Integer, Fixnum, Float
+pack.c :: Array#pack, String#unpack
+proc.c :: Binding, Proc
+process.c :: Process
+random.c :: random number
+range.c :: Range
+rational.c :: Rational
+re.c :: Regexp, MatchData
+signal.c :: Signal
+sprintf.c :: String#sprintf
+string.c :: String
+struct.c :: Struct
+time.c :: Time
-** Types
+defs/known_errors.def :: Errno::* exception classes
+-> known_errors.inc :: automatically generated
- VALUE
+== Multilingualization
-The type for the Ruby object. Actual structures are defined in ruby.h,
-such as struct RString, etc. To refer the values in structures, use
-casting macros like RSTRING(obj).
+encoding.c :: Encoding
+transcode.c :: Encoding::Converter
+enc/*.c :: encoding classes
+enc/trans/* :: codepoint mapping tables
-** Variables and constants
+== goruby Interpreter Implementation
- Qnil
+ goruby.c
+ golf_prelude.rb : goruby specific libraries.
+ -> golf_prelude.c : automatically generated
-const: nil object
- Qtrue
+= Appendix B. Ruby Extension API Reference
-const: true object(default true value)
+== Types
- Qfalse
+VALUE ::
-const: false object
+ The type for the Ruby object. Actual structures are defined in ruby.h,
+ such as struct RString, etc. To refer the values in structures, use
+ casting macros like RSTRING(obj).
-** C pointer wrapping
+== Variables and Constants
- Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)
+Qnil::
+ nil object
-Wrap a C pointer into a Ruby object. If object has references to other
-Ruby objects, they should be marked by using the mark function during
-the GC process. Otherwise, mark should be 0. When this object is no
-longer referred by anywhere, the pointer will be discarded by free
-function.
+Qtrue::
+ true object (default true value)
- Data_Make_Struct(klass, type, mark, free, sval)
+Qfalse::
+ false object
-This macro allocates memory using malloc(), assigns it to the variable
-sval, and returns the DATA encapsulating the pointer to memory region.
+== C Pointer Wrapping
- Data_Get_Struct(data, type, sval)
+Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval) ::
-This macro retrieves the pointer value from DATA, and assigns it to
-the variable sval.
+ Wrap a C pointer into a Ruby object. If object has references to other
+ Ruby objects, they should be marked by using the mark function during
+ the GC process. Otherwise, mark should be 0. When this object is no
+ longer referred by anywhere, the pointer will be discarded by free
+ function.
-** Checking data types
+Data_Make_Struct(klass, type, mark, free, sval) ::
-TYPE(value)
-FIXNUM_P(value)
-NIL_P(value)
-void Check_Type(VALUE value, int type)
-void Check_SafeStr(VALUE value)
+ This macro allocates memory using malloc(), assigns it to the variable
+ sval, and returns the DATA encapsulating the pointer to memory region.
-** Data type conversion
+Data_Get_Struct(data, type, sval) ::
-FIX2INT(value)
-INT2FIX(i)
-NUM2INT(value)
-INT2NUM(i)
-NUM2DBL(value)
-rb_float_new(f)
-StringValue(value)
-StringValuePtr(value)
-StringValueCStr(value)
-rb_str_new2(s)
+ This macro retrieves the pointer value from DATA, and assigns it to
+ the variable sval.
-** defining class/module
+== Checking Data Types
- VALUE rb_define_class(const char *name, VALUE super)
+TYPE(value) ::
-Defines a new Ruby class as a subclass of super.
+ Internal type (T_NIL, T_FIXNUM, etc.)
- VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)
+FIXNUM_P(value) ::
-Creates a new Ruby class as a subclass of super, under the module's
-namespace.
+ Is +value+ a Fixnum?
- VALUE rb_define_module(const char *name)
+NIL_P(value) ::
-Defines a new Ruby module.
+ Is +value+ nil?
- VALUE rb_define_module_under(VALUE module, const char *name)
+void Check_Type(VALUE value, int type) ::
-Defines a new Ruby module under the module's namespace.
+ Ensures +value+ is of the given internal +type+ or raises a TypeError
- void rb_include_module(VALUE klass, VALUE module)
+SaveStringValue(value) ::
-Includes module into class. If class already includes it, just
-ignored.
+ Checks that +value+ is a String and is not tainted
- void rb_extend_object(VALUE object, VALUE module)
+== Data Type Conversion
-Extend the object with the module's attributes.
+FIX2INT(value), INT2FIX(i) ::
-** Defining Global Variables
+ Fixnum <-> integer
- void rb_define_variable(const char *name, VALUE *var)
+FIX2LONG(value), LONG2FIX(l) ::
-Defines a global variable which is shared between C and Ruby. If name
-contains a character which is not allowed to be part of the symbol,
-it can't be seen from Ruby programs.
+ Fixnum <-> long
- void rb_define_readonly_variable(const char *name, VALUE *var)
+NUM2INT(value), INT2NUM(i) ::
-Defines a read-only global variable. Works just like
-rb_define_variable(), except the defined variable is read-only.
+ Numeric <-> integer
- void rb_define_virtual_variable(const char *name,
- VALUE (*getter)(), VALUE (*setter)())
+NUM2UINT(value), UINT2NUM(ui) ::
-Defines a virtual variable, whose behavior is defined by a pair of C
-functions. The getter function is called when the variable is
-referenced. The setter function is called when the variable is set to a
-value. The prototype for getter/setter functions are:
+ Numeric <-> unsigned integer
- VALUE getter(ID id)
- void setter(VALUE val, ID id)
+NUM2LONG(value), LONG2NUM(l) ::
-The getter function must return the value for the access.
+ Numeric <-> long
- void rb_define_hooked_variable(const char *name, VALUE *var,
- VALUE (*getter)(), VALUE (*setter)())
+NUM2ULONG(value), ULONG2NUM(ul) ::
-Defines hooked variable. It's a virtual variable with a C variable.
-The getter is called as
+ Numeric <-> unsigned long
- VALUE getter(ID id, VALUE *var)
+NUM2LL(value), LL2NUM(ll) ::
-returning a new value. The setter is called as
+ Numeric <-> long long
- void setter(VALUE val, ID id, VALUE *var)
+NUM2ULL(value), ULL2NUM(ull) ::
-GC requires C global variables which hold Ruby values to be marked.
+ Numeric <-> unsigned long long
- void rb_global_variable(VALUE *var)
+NUM2OFFT(value), OFFT2NUM(off) ::
-Tells GC to protect these variables.
+ Numeric <-> off_t
-** Constant Definition
+NUM2SIZET(value), SIZET2NUM(size) ::
- void rb_define_const(VALUE klass, const char *name, VALUE val)
+ Numeric <-> size_t
-Defines a new constant under the class/module.
+NUM2SSIZET(value), SSIZET2NUM(ssize) ::
- void rb_define_global_const(const char *name, VALUE val)
+ Numeric <-> ssize_t
-Defines a global constant. This is just the same as
+rb_integer_pack(value, words, numwords, wordsize, nails, flags), rb_integer_unpack(words, numwords, wordsize, nails, flags) ::
- rb_define_const(cKernal, name, val)
+ Numeric <-> Arbitrary size integer buffer
-** Method Definition
+NUM2DBL(value) ::
- rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+ Numeric -> double
-Defines a method for the class. func is the function pointer. argc
-is the number of arguments. if argc is -1, the function will receive
-3 arguments: argc, argv, and self. if argc is -2, the function will
-receive 2 arguments, self and args, where args is a Ruby array of
-the method arguments.
+rb_float_new(f) ::
- rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+ double -> Float
-Defines a private method for the class. Arguments are same as
-rb_define_method().
+StringValue(value) ::
- rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+ Object with #to_str -> String
-Defines a singleton method. Arguments are same as rb_define_method().
+StringValuePtr(value) ::
- rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)
+ Object with #to_str -> pointer to String data
-Retrieve argument from argc, argv. The fmt is the format string for
-the arguments, such as "12" for 1 non-optional argument, 2 optional
-arguments. If `*' appears at the end of fmt, it means the rest of
-the arguments are assigned to the corresponding variable, packed in
-an array.
+StringValueCStr(value) ::
-** Invoking Ruby method
+ Object with #to_str -> pointer to String data without NULL bytes
- VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)
+rb_str_new2(s) ::
-Invokes a method. To retrieve mid from a method name, use rb_intern().
+ char * -> String
- VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
+== Defining Class and Module
-Invokes a method, passing arguments by an array of values.
+VALUE rb_define_class(const char *name, VALUE super) ::
- VALUE rb_eval_string(const char *str)
+ Defines a new Ruby class as a subclass of super.
-Compiles and executes the string as a Ruby program.
+VALUE rb_define_class_under(VALUE module, const char *name, VALUE super) ::
- ID rb_intern(const char *name)
+ Creates a new Ruby class as a subclass of super, under the module's
+ namespace.
-Returns ID corresponding to the name.
+VALUE rb_define_module(const char *name) ::
- char *rb_id2name(ID id)
+ Defines a new Ruby module.
-Returns the name corresponding ID.
+VALUE rb_define_module_under(VALUE module, const char *name) ::
- char *rb_class2name(VALUE klass)
+ Defines a new Ruby module under the module's namespace.
-Returns the name of the class.
+void rb_include_module(VALUE klass, VALUE module) ::
- int rb_respond_to(VALUE object, ID id)
+ Includes module into class. If class already includes it, just ignored.
-Returns true if the object responds to the message specified by id.
+void rb_extend_object(VALUE object, VALUE module) ::
-** Instance Variables
+ Extend the object with the module's attributes.
- VALUE rb_iv_get(VALUE obj, const char *name)
+== Defining Global Variables
-Retrieve the value of the instance variable. If the name is not
-prefixed by `@', that variable shall be inaccessible from Ruby.
+void rb_define_variable(const char *name, VALUE *var) ::
- VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)
+ Defines a global variable which is shared between C and Ruby. If name
+ contains a character which is not allowed to be part of the symbol,
+ it can't be seen from Ruby programs.
-Sets the value of the instance variable.
+void rb_define_readonly_variable(const char *name, VALUE *var) ::
-** Control Structure
+ Defines a read-only global variable. Works just like
+ rb_define_variable(), except the defined variable is read-only.
- VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)
+void rb_define_virtual_variable(const char *name, VALUE (*getter)(), VALUE (*setter)()) ::
-Calls the function func1, supplying func2 as the block. func1 will be
-called with the argument arg1. func2 receives the value from yield as
-the first argument, arg2 as the second argument.
-
- VALUE rb_yield(VALUE val)
+ Defines a virtual variable, whose behavior is defined by a pair of C
+ functions. The getter function is called when the variable is
+ referenced. The setter function is called when the variable is set to a
+ value. The prototype for getter/setter functions are:
-Evaluates the block with value val.
+ VALUE getter(ID id)
+ void setter(VALUE val, ID id)
- VALUE rb_rescue(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)
+ The getter function must return the value for the access.
-Calls the function func1, with arg1 as the argument. If an exception
-occurs during func1, it calls func2 with arg2 as the argument. The
-return value of rb_rescue() is the return value from func1 if no
-exception occurs, from func2 otherwise.
+void rb_define_hooked_variable(const char *name, VALUE *var, VALUE (*getter)(), VALUE (*setter)()) ::
- VALUE rb_ensure(VALUE (*func1)(), void *arg1, void (*func2)(), void *arg2)
+ Defines hooked variable. It's a virtual variable with a C variable.
+ The getter is called as
-Calls the function func1 with arg1 as the argument, then calls func2
-with arg2 if execution terminated. The return value from
-rb_ensure() is that of func1.
+ VALUE getter(ID id, VALUE *var)
-** Exceptions and Errors
+ returning a new value. The setter is called as
- void rb_warn(const char *fmt, ...)
+ void setter(VALUE val, ID id, VALUE *var)
-Prints a warning message according to a printf-like format.
+ GC requires C global variables which hold Ruby values to be marked.
- void rb_warning(const char *fmt, ...)
+void rb_global_variable(VALUE *var)
-Prints a warning message according to a printf-like format, if
-$VERBOSE is true.
+ Tells GC to protect these variables.
-void rb_raise(rb_eRuntimeError, const char *fmt, ...)
+== Constant Definition
-Raises RuntimeError. The fmt is a format string just like printf().
+void rb_define_const(VALUE klass, const char *name, VALUE val) ::
- void rb_raise(VALUE exception, const char *fmt, ...)
+ Defines a new constant under the class/module.
-Raises a class exception. The fmt is a format string just like printf().
+void rb_define_global_const(const char *name, VALUE val) ::
- void rb_fatal(const char *fmt, ...)
+ Defines a global constant. This is just the same as
-Raises a fatal error, terminates the interpreter. No exception handling
-will be done for fatal errors, but ensure blocks will be executed.
+ rb_define_const(cKernal, name, val)
- void rb_bug(const char *fmt, ...)
+== Method Definition
-Terminates the interpreter immediately. This function should be
-called under the situation caused by the bug in the interpreter. No
-exception handling nor ensure execution will be done.
+rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc) ::
-** Initialize and Start the Interpreter
+ Defines a method for the class. func is the function pointer. argc
+ is the number of arguments. if argc is -1, the function will receive
+ 3 arguments: argc, argv, and self. if argc is -2, the function will
+ receive 2 arguments, self and args, where args is a Ruby array of
+ the method arguments.
-The embedding API functions are below (not needed for extension libraries):
+rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc) ::
- void ruby_init()
+ Defines a private method for the class. Arguments are same as
+ rb_define_method().
-Initializes the interpreter.
+rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc) ::
- void ruby_options(int argc, char **argv)
+ Defines a singleton method. Arguments are same as rb_define_method().
-Process command line arguments for the interpreter.
+rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::
- void ruby_run()
+ Retrieve argument from argc and argv to given VALUE references
+ according to the format string. The format can be described in ABNF
+ as follows:
-Starts execution of the interpreter.
+ scan-arg-spec := param-arg-spec [option-hash-arg-spec] [block-arg-spec]
- void ruby_script(char *name)
+ param-arg-spec := pre-arg-spec [post-arg-spec] / post-arg-spec /
+ pre-opt-post-arg-spec
+ pre-arg-spec := num-of-leading-mandatory-args [num-of-optional-args]
+ post-arg-spec := sym-for-variable-length-args
+ [num-of-trailing-mandatory-args]
+ pre-opt-post-arg-spec := num-of-leading-mandatory-args num-of-optional-args
+ num-of-trailing-mandatory-args
+ option-hash-arg-spec := sym-for-option-hash-arg
+ block-arg-spec := sym-for-block-arg
-Specifies the name of the script ($0).
+ num-of-leading-mandatory-args := DIGIT ; The number of leading
+ ; mandatory arguments
+ num-of-optional-args := DIGIT ; The number of optional
+ ; arguments
+ sym-for-variable-length-args := "*" ; Indicates that variable
+ ; length arguments are
+ ; captured as a ruby array
+ num-of-trailing-mandatory-args := DIGIT ; The number of trailing
+ ; mandatory arguments
+ sym-for-option-hash-arg := ":" ; Indicates that an option
+ ; hash is captured if the last
+ ; argument is a hash or can be
+ ; converted to a hash with
+ ; #to_hash. When the last
+ ; argument is nil, it is
+ ; captured if it is not
+ ; ambiguous to take it as
+ ; empty option hash; i.e. '*'
+ ; is not specified and
+ ; arguments are given more
+ ; than sufficient.
+ sym-for-block-arg := "&" ; Indicates that an iterator
+ ; block should be captured if
+ ; given
-** Hooks for the Interpreter Events
+ For example, "12" means that the method requires at least one
+ argument, and at most receives three (1+2) arguments. So, the format
+ string must be followed by three variable references, which are to be
+ assigned to captured arguments. For omitted arguments, variables are
+ set to Qnil. NULL can be put in place of a variable reference, which
+ means the corresponding captured argument(s) should be just dropped.
- void rb_add_event_hook(rb_event_hook_func_t func, rb_event_t events)
+ The number of given arguments, excluding an option hash or iterator
+ block, is returned.
-Adds a hook function for the specified interpreter events.
-events should be Or'ed value of:
-
- RUBY_EVENT_LINE
- RUBY_EVENT_CLASS
- RUBY_EVENT_END
- RUBY_EVENT_CALL
- RUBY_EVENT_RETURN
- RUBY_EVENT_C_CALL
- RUBY_EVENT_C_RETURN
- RUBY_EVENT_RAISE
- RUBY_EVENT_ALL
+== Invoking Ruby method
-The definition of rb_event_hook_func_t is below:
+VALUE rb_funcall(VALUE recv, ID mid, int narg, ...) ::
- typedef void (*rb_event_hook_func_t)(rb_event_t event, NODE *node,
- VALUE self, ID id, VALUE klass)
+ Invokes a method. To retrieve mid from a method name, use rb_intern().
+ Able to call even private/protected methods.
- int rb_remove_event_hook(rb_event_hook_func_t func)
+VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv) ::
+VALUE rb_funcallv(VALUE recv, ID mid, int argc, VALUE *argv) ::
-Removes the specified hook function.
+ Invokes a method, passing arguments as an array of values.
+ Able to call even private/protected methods.
+
+VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, VALUE *argv) ::
+
+ Invokes a method, passing arguments as an array of values.
+ Able to call only public methods.
+
+VALUE rb_eval_string(const char *str) ::
+
+ Compiles and executes the string as a Ruby program.
+
+ID rb_intern(const char *name) ::
+
+ Returns ID corresponding to the name.
+
+char *rb_id2name(ID id) ::
+
+ Returns the name corresponding ID.
+
+char *rb_class2name(VALUE klass) ::
+
+ Returns the name of the class.
+
+int rb_respond_to(VALUE object, ID id) ::
+
+ Returns true if the object responds to the message specified by id.
+
+== Instance Variables
+
+VALUE rb_iv_get(VALUE obj, const char *name) ::
+
+ Retrieve the value of the instance variable. If the name is not
+ prefixed by `@', that variable shall be inaccessible from Ruby.
+
+VALUE rb_iv_set(VALUE obj, const char *name, VALUE val) ::
+
+ Sets the value of the instance variable.
+
+== Control Structure
+
+VALUE rb_block_call(VALUE recv, ID mid, int argc, VALUE * argv, VALUE (*func) (ANYARGS), VALUE data2) ::
+
+ Calls a method on the recv, with the method name specified by the
+ symbol mid, with argc arguments in argv, supplying func as the
+ block. When func is called as the block, it will receive the value
+ from yield as the first argument, and data2 as the second argument.
+ When yielded with multiple values (in C, rb_yield_values(),
+ rb_yield_values2() and rb_yield_splat()), data2 is packed as an Array,
+ whereas yielded values can be gotten via argc/argv of the third/fourth
+ arguments.
+
+[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
+ the first argument, arg2 as the second argument.
+
+ When rb_iterate is used in 1.9, func1 has to call some Ruby-level method.
+ This function is obsolete since 1.9; use rb_block_call instead.
-Appendix C. Functions Available in extconf.rb
+VALUE rb_yield(VALUE val) ::
-These functions are available in extconf.rb:
+ Evaluates the block with value val.
- have_macro(macro, headers)
+VALUE rb_rescue(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2) ::
-Checks whether macro is defined with header. Returns true if the macro
-is defined.
+ Calls the function func1, with arg1 as the argument. If an exception
+ occurs during func1, it calls func2 with arg2 as the argument. The
+ return value of rb_rescue() is the return value from func1 if no
+ exception occurs, from func2 otherwise.
- have_library(lib, func)
+VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2) ::
-Checks whether the library exists, containing the specified function.
-Returns true if the library exists.
+ Calls the function func1 with arg1 as the argument, then calls func2
+ with arg2 if execution terminated. The return value from
+ rb_ensure() is that of func1 when no exception occurred.
- find_library(lib, func, path...)
+VALUE rb_protect(VALUE (*func) (VALUE), VALUE arg, int *state) ::
-Checks whether a library which contains the specified function exists in
-path. Returns true if the library exists.
+ Calls the function func with arg as the argument. If no exception
+ occurred during func, it returns the result of func and *state is zero.
+ Otherwise, it returns Qnil and sets *state to nonzero. If state is
+ NULL, it is not set in both cases.
+ You have to clear the error info with rb_set_errinfo(Qnil) when
+ ignoring the caught exception.
- have_func(func, header)
+void rb_jump_tag(int state) ::
-Checks whether func exists with header. Returns true if the function
-exists. To check functions in an additional library, you need to
-check that library first using have_library().
+ Continues the exception caught by rb_protect() and rb_eval_string_protect().
+ state must be the returned value from those functions. This function
+ never return to the caller.
- have_var(var, header)
+void rb_iter_break() ::
-Checks whether var exists with header. Returns true if the variable
-exists. To check variables in an additional library, you need to
-check that library first using have_library().
+ Exits from the current innermost block. This function never return to
+ the caller.
- have_header(header)
+void rb_iter_break_value(VALUE value) ::
-Checks whether header exists. Returns true if the header file exists.
+ Exits from the current innermost block with the value. The block will
+ return the given argument value. This function never return to the
+ caller.
- find_header(header, path...)
+== Exceptions and Errors
-Checks whether header exists in path. Returns true if the header file
-exists.
+void rb_warn(const char *fmt, ...) ::
+
+ Prints a warning message according to a printf-like format.
+
+void rb_warning(const char *fmt, ...) ::
+
+ Prints a warning message according to a printf-like format, if
+ $VERBOSE is true.
+
+void rb_raise(rb_eRuntimeError, const char *fmt, ...) ::
+
+ Raises RuntimeError. The fmt is a format string just like printf().
+
+void rb_raise(VALUE exception, const char *fmt, ...) ::
+
+ Raises a class exception. The fmt is a format string just like printf().
+
+void rb_fatal(const char *fmt, ...) ::
+
+ Raises a fatal error, terminates the interpreter. No exception handling
+ will be done for fatal errors, but ensure blocks will be executed.
+
+void rb_bug(const char *fmt, ...) ::
+
+ Terminates the interpreter immediately. This function should be
+ 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, %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
+
+The embedding API functions are below (not needed for extension libraries):
+
+void ruby_init() ::
+
+ Initializes the interpreter.
+
+void ruby_options(int argc, char **argv) ::
+
+ Process command line arguments for the interpreter.
+
+void ruby_run() ::
+
+ Starts execution of the interpreter.
+
+void ruby_script(char *name) ::
+
+ Specifies the name of the script ($0).
+
+== Hooks for the Interpreter Events
+
+ void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events,
+ VALUE data)
+
+Adds a hook function for the specified interpreter events.
+events should be OR'ed value of:
+
+ RUBY_EVENT_LINE
+ RUBY_EVENT_CLASS
+ RUBY_EVENT_END
+ RUBY_EVENT_CALL
+ RUBY_EVENT_RETURN
+ RUBY_EVENT_C_CALL
+ RUBY_EVENT_C_RETURN
+ RUBY_EVENT_RAISE
+ RUBY_EVENT_ALL
+
+The definition of rb_event_hook_func_t is below:
+
+ typedef void (*rb_event_hook_func_t)(rb_event_t event, VALUE data,
+ VALUE self, ID id, VALUE klass)
+
+The third argument `data' to rb_add_event_hook() is passed to the hook
+function as the second argument, which was the pointer to the current
+NODE in 1.8. See RB_EVENT_HOOKS_HAVE_CALLBACK_DATA below.
+
+ int rb_remove_event_hook(rb_event_hook_func_t func)
+
+Removes the specified hook function.
- have_struct_member(type, member, header)
+== Macros for Compatibility
-Checks whether type has member with header. Returns true if the type
-is defined and has the member.
+Some macros to check API compatibilities are available by default.
- have_type(type, header, opt)
+NORETURN_STYLE_NEW ::
-Checks whether type is defined with header. Returns true if the type
-is defined.
+ Means that NORETURN macro is functional style instead of prefix.
- check_sizeof(type, header)
+HAVE_RB_DEFINE_ALLOC_FUNC ::
-Checks the size of type in char with header. Returns the size if the
-type is defined, otherwise nil.
+ Means that function rb_define_alloc_func() is provided, that means the
+ allocation framework is used. This is same as the result of
+ have_func("rb_define_alloc_func", "ruby.h").
- create_makefile(target)
+HAVE_RB_REG_NEW_STR ::
-Generates the Makefile for the extension library. If you don't invoke
-this method, the compilation will not be done.
+ Means that function rb_reg_new_str() is provided, that creates Regexp
+ object from String object. This is same as the result of
+ have_func("rb_reg_new_str", "ruby.h").
- find_executable(bin, path)
+HAVE_RB_IO_T ::
-Finds command in path, which is File::PATH_SEPARATOR-separated list of
-directories. If path is nil or omitted, environment varialbe PATH
-will be used. Returns the path name of the command if it is found,
-otherwise nil.
+ Means that type rb_io_t is provided.
- with_config(withval[, default=nil])
+USE_SYMBOL_AS_METHOD_NAME ::
-Parses the command line options and returns the value specified by
---with-<withval>.
+ Means that Symbols will be returned as method names, e.g.,
+ Module#methods, #singleton_methods and so on.
- enable_config(config, *defaults)
- disable_config(config, *defaults)
+HAVE_RUBY_*_H ::
-Parses the command line options for boolean. Returns true if
---enable-<config> is given, or false if --disable-<config> is given.
-Otherwise, yields defaults to the given block and returns the result
-if it is called with a block, or returns defaults.
+ Defined in ruby.h and means corresponding header is available. For
+ instance, when HAVE_RUBY_ST_H is defined you should use ruby/st.h not
+ mere st.h.
- dir_config(target[, default_dir])
- dir_config(target[, default_include, default_lib])
+RB_EVENT_HOOKS_HAVE_CALLBACK_DATA ::
-Parses the command line options and adds the directories specified by
---with-<target>-dir, --with-<target>-include, and/or --with-<target>-lib
-to $CFLAGS and/or $LDFLAGS. --with-<target>-dir=/path is equivalent to
---with-<target>-include=/path/include --with-<target>-lib=/path/lib.
-Returns an array of the added directories ([include_dir, lib_dir]).
+ Means that rb_add_event_hook() takes the third argument `data', to be
+ passed to the given event hook function.
- pkg_config(pkg)
+= Appendix C. Functions available for use in extconf.rb
-Obtains the information for pkg by pkg-config command. The actual
-command name can be overriden by --with-pkg-config command line
-option.
+See documentation for {mkmf}[rdoc-ref:MakeMakefile].
/*
* Local variables:
diff --git a/README.EXT.ja b/README.EXT.ja
index 30c4d520ba..9bba51a0d0 100644
--- a/README.EXT.ja
+++ b/README.EXT.ja
@@ -1,1255 +1,1631 @@
-.\" README.EXT.ja - -*- Text -*- created at: Mon Aug 7 16:45:54 JST 1995
+# README.EXT.ja - -*- RDoc -*- created at: Mon Aug 7 16:45:54 JST 1995
-Ruby¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Îºî¤êÊý¤òÀâÌÀ¤·¤Þ¤¹¡¥
+Rubyã®æ‹¡å¼µãƒ©ã‚¤ãƒ–ラリã®ä½œã‚Šæ–¹ã‚’説明ã—ã¾ã™ï¼Ž
-1¡¥´ðÁÃÃμ±
+= 基礎知識
-C¤ÎÊÑ¿ô¤Ë¤Ï·¿¤¬¤¢¤ê¡¤¥Ç¡¼¥¿¤Ë¤Ï·¿¤¬¤¢¤ê¤Þ¤»¤ó¡¥¤Ç¤¹¤«¤é¡¤¤¿
-¤È¤¨¤Ð¥Ý¥¤¥ó¥¿¤òint¤ÎÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤È¡¤¤½¤ÎÃͤÏÀ°¿ô¤È¤·¤Æ¼è
-¤ê°·¤ï¤ì¤Þ¤¹¡¥µÕ¤ËRuby¤ÎÊÑ¿ô¤Ë¤Ï·¿¤¬¤Ê¤¯¡¤¥Ç¡¼¥¿¤Ë·¿¤¬¤¢¤ê¤Þ
-¤¹¡¥¤³¤Î°ã¤¤¤Î¤¿¤á¡¤C¤ÈRuby¤ÏÁê¸ß¤ËÊÑ´¹¤·¤Ê¤±¤ì¤Ð¡¤¤ª¸ß¤¤¤Î
-¥Ç¡¼¥¿¤ò¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó¡¥
+Cã®å¤‰æ•°ã«ã¯åž‹ãŒã‚り,データã«ã¯åž‹ãŒã‚りã¾ã›ã‚“.ã§ã™ã‹ã‚‰ï¼ŒãŸ
+ã¨ãˆã°ãƒã‚¤ãƒ³ã‚¿ã‚’intã®å¤‰æ•°ã«ä»£å…¥ã™ã‚‹ã¨ï¼Œãã®å€¤ã¯æ•´æ•°ã¨ã—ã¦å–
+り扱ã‚れã¾ã™ï¼Žé€†ã«Rubyã®å¤‰æ•°ã«ã¯åž‹ãŒãªã,データã«åž‹ãŒã‚りã¾
+ã™ï¼Žã“ã®é•ã„ã®ãŸã‚,Cã¨Rubyã¯ç›¸äº’ã«å¤‰æ›ã—ãªã‘れã°ï¼ŒãŠäº’ã„ã®
+データをアクセスã§ãã¾ã›ã‚“.
-Ruby¤Î¥Ç¡¼¥¿¤ÏVALUE¤È¤¤¤¦C¤Î·¿¤Çɽ¸½¤µ¤ì¤Þ¤¹¡¥VALUE·¿¤Î¥Ç¡¼
-¥¿¤Ï¤½¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ò¼«Ê¬¤ÇÃΤäƤ¤¤Þ¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤È
-¤¤¤¦¤Î¤Ï¥Ç¡¼¥¿(¥ª¥Ö¥¸¥§¥¯¥È)¤Î¼ÂºÝ¤Î¹½Â¤¤ò°ÕÌ£¤·¤Æ¤¤¤Æ¡¤Ruby
-¤Î¥¯¥é¥¹¤È¤Ï¤Þ¤¿°ã¤Ã¤¿¤â¤Î¤Ç¤¹¡¥
+Rubyã®ãƒ‡ãƒ¼ã‚¿ã¯VALUEã¨ã„ã†Cã®åž‹ã§è¡¨ç¾ã•れã¾ã™ï¼ŽVALUEåž‹ã®ãƒ‡ãƒ¼
+ã‚¿ã¯ãã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—を自分ã§çŸ¥ã£ã¦ã„ã¾ã™ï¼Žã“ã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ã¨
+ã„ã†ã®ã¯ãƒ‡ãƒ¼ã‚¿(オブジェクト)ã®å®Ÿéš›ã®æ§‹é€ ã‚’æ„味ã—ã¦ã„ã¦ï¼ŒRuby
+ã®ã‚¯ãƒ©ã‚¹ã¨ã¯ã¾ãŸé•ã£ãŸã‚‚ã®ã§ã™ï¼Ž
-VALUE¤«¤éC¤Ë¤È¤Ã¤Æ°ÕÌ£¤Î¤¢¤ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Ë¤Ï
+VALUEã‹ã‚‰Cã«ã¨ã£ã¦æ„味ã®ã‚るデータをå–り出ã™ãŸã‚ã«ã¯
- (1) VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤òÃΤë
- (2) VALUE¤òC¤Î¥Ç¡¼¥¿¤ËÊÑ´¹¤¹¤ë
+1. VALUEã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—を知る
+2. VALUEã‚’Cã®ãƒ‡ãƒ¼ã‚¿ã«å¤‰æ›ã™ã‚‹
-¤ÎξÊý¤¬É¬ÍפǤ¹¡¥(1)¤ò˺¤ì¤ë¤È´Ö°ã¤Ã¤¿¥Ç¡¼¥¿¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì
-¤Æ¡¤ºÇ°­¥×¥í¥°¥é¥à¤¬core dump¤·¤Þ¤¹¡¥
+ã®ä¸¡æ–¹ãŒå¿…è¦ã§ã™ï¼Ž(1)を忘れるã¨é–“é•ã£ãŸãƒ‡ãƒ¼ã‚¿ã®å¤‰æ›ãŒè¡Œã‚れ
+ã¦ï¼Œæœ€æ‚ªãƒ—ログラムãŒcore dumpã—ã¾ã™ï¼Ž
-1.1 ¥Ç¡¼¥¿¥¿¥¤¥×
+== データタイプ
-Ruby¤Ë¤Ï¥æ¡¼¥¶¤¬»È¤¦²ÄǽÀ­¤Î¤¢¤ë°Ê²¼¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹¡¥
+Rubyã«ã¯ãƒ¦ãƒ¼ã‚¶ãŒä½¿ã†å¯èƒ½æ€§ã®ã‚る以下ã®ã‚¿ã‚¤ãƒ—ãŒã‚りã¾ã™ï¼Ž
- T_NIL nil
- T_OBJECT Ä̾ï¤Î¥ª¥Ö¥¸¥§¥¯¥È
- T_CLASS ¥¯¥é¥¹
- T_MODULE ¥â¥¸¥å¡¼¥ë
- T_FLOAT ÉâÆ°¾®¿ôÅÀ¿ô
- T_STRING ʸ»úÎó
- T_REGEXP Àµµ¬É½¸½
- T_ARRAY ÇÛÎó
- T_FIXNUM Fixnum(31bitĹÀ°¿ô)
- T_HASH Ï¢ÁÛÇÛÎó
- T_STRUCT (Ruby¤Î)¹½Â¤ÂÎ
- T_BIGNUM ¿ÇÜĹÀ°¿ô
- T_FILE Æþ½ÐÎÏ
- T_TRUE ¿¿
- T_FALSE µ¶
- T_DATA ¥Ç¡¼¥¿
- T_SYMBOL ¥·¥ó¥Ü¥ë
+T_NIL :: nil
+T_OBJECT :: 通常ã®ã‚ªãƒ–ジェクト
+T_CLASS :: クラス
+T_MODULE :: モジュール
+T_FLOAT :: æµ®å‹•å°æ•°ç‚¹æ•°
+T_STRING :: 文字列
+T_REGEXP :: æ­£è¦è¡¨ç¾
+T_ARRAY :: é…列
+T_HASH :: 連想é…列
+T_STRUCT :: (Rubyã®)構造体
+T_BIGNUM :: 多å€é•·æ•´æ•°
+T_FIXNUM :: Fixnum(31bitã¾ãŸã¯63bité•·æ•´æ•°)
+T_COMPLEX :: 複素数
+T_RATIONAL :: æœ‰ç†æ•°
+T_FILE :: 入出力
+T_TRUE :: 真
+T_FALSE :: å½
+T_DATA :: データ
+T_SYMBOL :: シンボル
-¤½¤Î¾¤ËÆâÉô¤ÇÍøÍѤµ¤ì¤Æ¤¤¤ë°Ê²¼¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹¡¥
+ãã®ä»–ã«å†…部ã§åˆ©ç”¨ã•れã¦ã„る以下ã®ã‚¿ã‚¤ãƒ—ãŒã‚りã¾ã™ï¼Ž
- T_ICLASS
- T_MATCH
- T_UNDEF
- T_VARMAP
- T_SCOPE
- T_NODE
+ T_ICLASS
+ T_MATCH
+ T_UNDEF
+ T_NODE
+ T_ZOMBIE
-¤Û¤È¤ó¤É¤Î¥¿¥¤¥×¤ÏC¤Î¹½Â¤ÂΤǼÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ã»ã¨ã‚“ã©ã®ã‚¿ã‚¤ãƒ—ã¯Cã®æ§‹é€ ä½“ã§å®Ÿè£…ã•れã¦ã„ã¾ã™ï¼Ž
-1.2 VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤¹¤ë
+== VALUEã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹
-ruby.h¤Ç¤ÏTYPE()¤È¤¤¤¦¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¤VALUE¤Î¥Ç¡¼¥¿
-¥¿¥¤¥×¤òÃΤ뤳¤È¤¬½ÐÍè¤Þ¤¹¡¥TYPE()¥Þ¥¯¥í¤Ï¾å¤Ç¾Ò²ð¤·¤¿T_XXXX
-¤Î·Á¼°¤ÎÄê¿ô¤òÊÖ¤·¤Þ¤¹¡¥VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Ë±þ¤¸¤Æ½èÍý¤¹¤ë
-¾ì¹ç¤Ë¤Ï¡¤TYPE()¤ÎÃͤÇʬ´ô¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥
+ruby.hã§ã¯TYPE()ã¨ã„ã†ãƒžã‚¯ãƒ­ãŒå®šç¾©ã•れã¦ã„ã¦ï¼ŒVALUEã®ãƒ‡ãƒ¼ã‚¿
+タイプを知るã“ã¨ãŒå‡ºæ¥ã¾ã™ï¼ŽTYPE()マクロã¯ä¸Šã§ç´¹ä»‹ã—ãŸT_XXXX
+ã®å½¢å¼ã®å®šæ•°ã‚’è¿”ã—ã¾ã™ï¼ŽVALUEã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ã«å¿œã˜ã¦å‡¦ç†ã™ã‚‹
+å ´åˆã«ã¯ï¼ŒTYPE()ã®å€¤ã§åˆ†å²ã™ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ï¼Ž
switch (TYPE(obj)) {
case T_FIXNUM:
- /* FIXNUM¤Î½èÍý */
+ /* FIXNUMã®å‡¦ç† */
break;
case T_STRING:
- /* ʸ»úÎó¤Î½èÍý */
+ /* 文字列ã®å‡¦ç† */
break;
case T_ARRAY:
- /* ÇÛÎó¤Î½èÍý */
+ /* é…列ã®å‡¦ç† */
break;
default:
- /* Îã³°¤òȯÀ¸¤µ¤»¤ë */
+ /* 例外を発生ã•ã›ã‚‹ */
rb_raise(rb_eTypeError, "not valid value");
break;
}
-¤½¤ì¤È¥Ç¡¼¥¿¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤·¤Æ¡¤Àµ¤·¤¯¤Ê¤±¤ì¤ÐÎã³°¤òȯÀ¸¤¹
-¤ë´Ø¿ô¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡¥
+ãれã¨ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ï¼Œæ­£ã—ããªã‘れã°ä¾‹å¤–を発生ã™
+る関数ãŒç”¨æ„ã•れã¦ã„ã¾ã™ï¼Ž
void Check_Type(VALUE value, int type)
-¤³¤Î´Ø¿ô¤Ïvalue¤¬type¤Ç̵¤±¤ì¤Ð¡¤Îã³°¤òȯÀ¸¤µ¤»¤Þ¤¹¡¥°ú¿ô¤È
-¤·¤ÆÍ¿¤¨¤é¤ì¤¿VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤¬Àµ¤·¤¤¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤¹
-¤ë¤¿¤á¤Ë¤Ï¡¤¤³¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+ã“ã®é–¢æ•°ã¯valueãŒtypeã§ç„¡ã‘れã°ï¼Œä¾‹å¤–を発生ã•ã›ã¾ã™ï¼Žå¼•æ•°ã¨
+ã—ã¦ä¸Žãˆã‚‰ã‚ŒãŸVALUEã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ãŒæ­£ã—ã„ã‹ã©ã†ã‹ãƒã‚§ãƒƒã‚¯ã™
+ã‚‹ãŸã‚ã«ã¯ï¼Œã“ã®é–¢æ•°ã‚’使ã„ã¾ã™ï¼Ž
-FIXNUM¤ÈNIL¤Ë´Ø¤·¤Æ¤Ï¤è¤ê¹â®¤ÊȽÊÌ¥Þ¥¯¥í¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡¥
+FIXNUMã¨NILã«é–¢ã—ã¦ã¯ã‚ˆã‚Šé«˜é€Ÿãªåˆ¤åˆ¥ãƒžã‚¯ãƒ­ãŒç”¨æ„ã•れã¦ã„ã¾ã™ï¼Ž
FIXNUM_P(obj)
NIL_P(obj)
-1.3 VALUE¤òC¤Î¥Ç¡¼¥¿¤ËÊÑ´¹¤¹¤ë
+== VALUEã‚’Cã®ãƒ‡ãƒ¼ã‚¿ã«å¤‰æ›ã™ã‚‹
+
+データタイプãŒT_NIL,T_FALSE,T_TRUEã§ã‚る時,データã¯ãれãž
+れnil,false,trueã§ã™ï¼Žã“ã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ã®ã‚ªãƒ–ジェクトã¯ã²ã¨
+ã¤ãšã¤ã—ã‹å­˜åœ¨ã—ã¾ã›ã‚“.
+
+データタイプãŒT_FIXNUMã®æ™‚,ã“れã¯31bitã¾ãŸã¯63bitã®ã‚µã‚¤ã‚ºã‚’
+æŒã¤æ•´æ•°ã§ã™ï¼Žlongã®ã‚µã‚¤ã‚ºãŒ32bitã®ãƒ—ラットフォームã§ã‚れã°
+31bitã«ï¼Œlongã®ã‚µã‚¤ã‚ºãŒ64bitã®ãƒ—ラットフォームã§ã‚れã°63bit
+ã«ãªã‚Šã¾ã™. FIXNUM ã‚’ C ã®æ•´æ•°ã«å¤‰æ›ã™ã‚‹ãŸã‚ã«ã¯ãƒžã‚¯ãƒ­
+「FIX2INT()ã€ã¾ãŸã¯ã€ŒFIX2LONG()ã€ã‚’使ã„ã¾ã™ï¼Žã“れらã®ãƒžã‚¯ãƒ­
+を使用ã™ã‚‹éš›ã«ã¯äº‹å‰ã«ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ãŒFIXNUMã§ã‚ã‚‹ã“ã¨ã‚’確èªã™
+ã‚‹å¿…è¦ãŒã‚りã¾ã™ãŒï¼Œæ¯”較的高速ã«å¤‰æ›ã‚’行ã†ã“ã¨ãŒã§ãã¾ã™ï¼Žã¾
+ãŸï¼Œã€ŒFIX2LONG()ã€ã¯ä¾‹å¤–を発生ã—ã¾ã›ã‚“ãŒï¼Œã€ŒFIX2INT()ã€ã¯å¤‰
+æ›çµæžœãŒintã®ã‚µã‚¤ã‚ºã«åŽã¾ã‚‰ãªã„å ´åˆã«ã¯ä¾‹å¤–を発生ã—ã¾ã™ï¼Ž
+ãれã‹ã‚‰ï¼ŒFIXNUMã«é™ã‚‰ãšRubyã®ãƒ‡ãƒ¼ã‚¿ã‚’æ•´æ•°ã«å¤‰æ›ã™ã‚‹
+「NUM2INT()ã€ãŠã‚ˆã³ã€ŒNUM2LONG()ã€ã¨ã„ã†ãƒžã‚¯ãƒ­ãŒã‚りã¾ã™ï¼Žã“
+れらã®ãƒžã‚¯ãƒ­ã¯ãƒžã‚¯ãƒ­ã¯ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ã®ãƒã‚§ãƒƒã‚¯ç„¡ã—ã§ä½¿ãˆã¾ã™
+(æ•´æ•°ã«å¤‰æ›ã§ããªã„å ´åˆã«ã¯ä¾‹å¤–ãŒç™ºç”Ÿã™ã‚‹)ï¼ŽåŒæ§˜ã«ãƒã‚§ãƒƒã‚¯ç„¡
+ã§ä½¿ãˆã‚‹å¤‰æ›ãƒžã‚¯ãƒ­ã¯doubleã‚’å–り出ã™ã€ŒNUM2DBL()ã€ãŒã‚りã¾ã™ï¼Ž
-¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_NIL, T_FALSE, T_TRUE¤Ç¤¢¤ë»þ¡¤¥Ç¡¼¥¿¤Ï¤½¤ì¤¾
-¤ìnil, false, true¤Ç¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Ò¤È
-¤Ä¤º¤Ä¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡¥
+char* ã‚’å–り出ã™å ´åˆï¼Œ StringValue() 㨠StringValuePtr()
+を使ã„ã¾ã™ï¼Ž
+StringValue(var) 㯠var ㌠String
+ã§ã‚れã°ä½•ã‚‚ã›ãšï¼Œãã†ã§ãªã‘れ㰠var ã‚’ var.to_str() ã®çµæžœ
+ã«ç½®ãæ›ãˆã‚‹ãƒžã‚¯ãƒ­ï¼ŒStringValuePtr(var) ã¯åŒæ§˜ã« var ã‚’
+String ã«ç½®ãæ›ãˆã¦ã‹ã‚‰ var ã®ãƒã‚¤ãƒˆåˆ—表ç¾ã«å¯¾ã™ã‚‹ char* ã‚’
+è¿”ã™ãƒžã‚¯ãƒ­ã§ã™ï¼Žvar ã®å†…å®¹ã‚’ç›´æŽ¥ç½®ãæ›ãˆã‚‹å‡¦ç†ãŒå…¥ã‚‹ã®ã§ï¼Œ
+var 㯠lvalue ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼Ž
+ã¾ãŸï¼ŒStringValuePtr() ã«é¡žä¼¼ã—㟠StringValueCStr() ã¨ã„ã†ãƒž
+クロもã‚りã¾ã™ï¼ŽStringValueCStr(var) 㯠var ã‚’ String ã«ç½®ã
+æ›ãˆã¦ã‹ã‚‰ var ã®æ–‡å­—列表ç¾ã«å¯¾ã™ã‚‹ char* ã‚’è¿”ã—ã¾ã™ï¼Žè¿”ã•れ
+ã‚‹æ–‡å­—åˆ—ã®æœ«å°¾ã«ã¯ nul 文字ãŒä»˜åŠ ã•れã¾ã™ï¼ŽãªãŠï¼Œé€”中㫠nul
+文字ãŒå«ã¾ã‚Œã‚‹å ´åˆã¯ ArgumentError ãŒç™ºç”Ÿã—ã¾ã™ï¼Ž
+一方,StringValuePtr() ã§ã¯ï¼Œæœ«å°¾ã« nul 文字ãŒã‚ã‚‹ä¿è¨¼ã¯ãªã,
+途中㫠nul 文字ãŒå«ã¾ã‚Œã¦ã„ã‚‹å¯èƒ½æ€§ã‚‚ã‚りã¾ã™ï¼Ž
-¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_FIXNUM¤Î»þ¡¤¤³¤ì¤Ï31bit¤Î¥µ¥¤¥º¤ò»ý¤ÄÀ°¿ô¤Ç
-¤¹¡¥FIXNUM¤òC¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Ë¤Ï¥Þ¥¯¥í¡ÖFIX2INT()¡×¤ò»È
-¤¤¤Þ¤¹¡¥¤½¤ì¤«¤é¡¤FIXNUM¤Ë¸Â¤é¤ºRuby¤Î¥Ç¡¼¥¿¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë
-¡ÖNUM2INT()¡×¤È¤¤¤¦¥Þ¥¯¥í¤¬¤¢¤ê¤Þ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¥Ç¡¼¥¿¥¿¥¤
-¥×¤Î¥Á¥§¥Ã¥¯Ìµ¤·¤Ç»È¤¨¤Þ¤¹(À°¿ô¤ËÊÑ´¹¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤ÏÎã³°¤¬
-ȯÀ¸¤¹¤ë)¡¥Æ±Íͤ˥Á¥§¥Ã¥¯Ìµ¤·¤Ç»È¤¨¤ëÊÑ´¹¥Þ¥¯¥í¤Ïdouble¤ò
-¼è¤ê½Ð¤¹¡ÖNUM2DBL()¡×¤¬¤¢¤ê¤Þ¤¹¡£
+ãれ以外ã®ãƒ‡ãƒ¼ã‚¿ã‚¿ã‚¤ãƒ—ã¯å¯¾å¿œã™ã‚‹Cã®æ§‹é€ ä½“ãŒã‚りã¾ã™ï¼Žå¯¾å¿œã™
+る構造体ã®ã‚ã‚‹VALUEã¯ãã®ã¾ã¾ã‚­ãƒ£ã‚¹ãƒˆ(型変æ›)ã™ã‚Œã°æ§‹é€ ä½“ã®
+ãƒã‚¤ãƒ³ã‚¿ã«å¤‰æ›ã§ãã¾ã™ï¼Ž
-char* ¤ò¼è¤ê½Ð¤¹¾ì¹ç¡¢version 1.6 °ÊÁ°¤Ç¤Ï¡ÖSTR2CSTR()¡×¤È
-¤¤¤¦¥Þ¥¯¥í¤ò»È¤Ã¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¤³¤ì¤Ï to_str() ¤Ë¤è¤ë°ÅÌÛ¤Î
-·¿ÊÑ´¹·ë²Ì¤¬ GC ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤¿¤á¡¢version 1.7 °Ê¹ß¤Ç¤Ï
-obsolete ¤È¤Ê¤ê¡¢Âå¤ï¤ê¤Ë StringValue() ¤È StringValuePtr()
-¤ò»È¤¦»ö¤ò¿ä¾©¤·¤Æ¤¤¤Þ¤¹¡£StringValue(var) ¤Ï var ¤¬ String
- ¤Ç¤¢¤ì¤Ð²¿¤â¤»¤º¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð var ¤ò var.to_str() ¤Î·ë²Ì¤Ë
-ÃÖ¤­´¹¤¨¤ë¥Þ¥¯¥í¡¢StringValuePtr(var) ¤ÏƱÍÍ¤Ë var ¤òÃÖ¤­´¹¤¨
-¤Æ¤«¤é var ¤Îʸ»úÎóɽ¸½¤ËÂФ¹¤ë char* ¤òÊÖ¤¹¥Þ¥¯¥í¤Ç¤¹¡£var ¤Î
-ÆâÍÆ¤òľÀÜÃÖ¤­´¹¤¨¤ë½èÍý¤¬Æþ¤ë¤Î¤Ç¡¢var ¤Ï lvalue ¤Ç¤¢¤ëɬÍפ¬
-¤¢¤ê¤Þ¤¹¡£
+構造体ã¯ã€Œstruct RXxxxxã€ã¨ã„ã†åå‰ã§ruby.hã§å®šç¾©ã•れã¦ã„ã¾
+ã™ï¼Žä¾‹ãˆã°æ–‡å­—列ã¯ã€Œstruct RStringã€ã§ã™ï¼Žå®Ÿéš›ã«ä½¿ã†å¯èƒ½æ€§ãŒ
+ã‚ã‚‹ã®ã¯æ–‡å­—列ã¨é…列ãらã„ã ã¨æ€ã„ã¾ã™ï¼Ž
-¤½¤ì°Ê³°¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ÏÂбþ¤¹¤ëC¤Î¹½Â¤ÂΤ¬¤¢¤ê¤Þ¤¹¡¥Âбþ¤¹
-¤ë¹½Â¤ÂΤΤ¢¤ëVALUE¤Ï¤½¤Î¤Þ¤Þ¥­¥ã¥¹¥È(·¿ÊÑ´¹)¤¹¤ì¤Ð¹½Â¤ÂΤÎ
-¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤¹¡¥
+ruby.hã§ã¯æ§‹é€ ä½“ã¸ã‚­ãƒ£ã‚¹ãƒˆã™ã‚‹ãƒžã‚¯ãƒ­ã‚‚「RXXXXX()ã€(全部大文
+å­—ã«ã—ãŸã‚‚ã®)ã¨ã„ã†åå‰ã§æä¾›ã•れã¦ã„ã¾ã™(例: RSTRING()).ãŸ
+ã ã—ã€æ§‹é€ ä½“ã¸ã®ç›´æŽ¥ã®ã‚¢ã‚¯ã‚»ã‚¹ã¯ã§ãã‚‹ã ã‘é¿ã‘,対応ã™ã‚‹
+rb_xxxx() ã¨ã„ã£ãŸé–¢æ•°ã‚’使ã†ã‚ˆã†ã«ã—ã¦ä¸‹ã•ã„.例ãˆã°ï¼Œé…列ã®
+è¦ç´ ã¸ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ï¼Œrb_ary_entry(ary, offset),
+rb_ary_store(ary, offset, obj) を利用ã™ã‚‹ã‚ˆã†ã«ã—ã¦ä¸‹ã•ã„.
-¹½Â¤ÂΤϡÖstruct RXxxxx¡×¤È¤¤¤¦Ì¾Á°¤Çruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ
-¤¹¡¥Î㤨¤Ðʸ»úÎó¤Ï¡Östruct RString¡×¤Ç¤¹¡¥¼ÂºÝ¤Ë»È¤¦²ÄǽÀ­¤¬
-¤¢¤ë¤Î¤Ïʸ»úÎó¤ÈÇÛÎ󤯤餤¤À¤È»×¤¤¤Þ¤¹¡¥
+構造体ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’å–り出ã™ãƒžã‚¯ãƒ­ãŒæä¾›ã•れã¦ã„ã¾ã™ï¼Žæ–‡å­—列
+strã®é•·ã•ã‚’å¾—ã‚‹ãŸã‚ã«ã¯ã€ŒRSTRING_LEN(str)ã€ã¨ã—,文字列strã‚’
+char*ã¨ã—ã¦å¾—ã‚‹ãŸã‚ã«ã¯ã€ŒRSTRING_PTR(str)ã€ã¨ã—ã¾ã™ï¼Ž
-ruby.h¤Ç¤Ï¹½Â¤ÂΤإ­¥ã¥¹¥È¤¹¤ë¥Þ¥¯¥í¤â¡ÖRXXXXX()¡×(Á´ÉôÂçʸ
-»ú¤Ë¤·¤¿¤â¤Î)¤È¤¤¤¦Ì¾Á°¤ÇÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹(Îã: RSTRING())¡¥
+Rubyã®æ§‹é€ ä½“を直接アクセスã™ã‚‹æ™‚ã«æ°—ã‚’ã¤ã‘ãªã‘れã°ãªã‚‰ãªã„ã“
+ã¨ã¯ï¼Œé…åˆ—ã‚„æ–‡å­—åˆ—ã®æ§‹é€ ä½“ã®ä¸­èº«ã¯å‚ç…§ã™ã‚‹ã ã‘ã§ï¼Œç›´æŽ¥å¤‰æ›´ã—
+ãªã„ã“ã¨ã§ã™ï¼Žç›´æŽ¥å¤‰æ›´ã—ãŸå ´åˆï¼Œã‚ªãƒ–ジェクトã®å†…å®¹ã®æ•´åˆæ€§ãŒ
+ã¨ã‚Œãªããªã£ã¦ï¼Œæ€ã‚ã¬ãƒã‚°ã®åŽŸå› ã«ãªã‚Šã¾ã™ï¼Ž
-Î㤨¤Ð¡¤Ê¸»úÎóstr¤ÎŤµ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING(str)->len¡×¤È
-¤·¡¤Ê¸»úÎóstr¤òchar*¤È¤·¤ÆÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING(str)->ptr¡×
-¤È¤·¤Þ¤¹¡¥ÇÛÎó¤Î¾ì¹ç¤Ë¤Ï¡¤¤½¤ì¤¾¤ì¡ÖRARRAY(ary)->len¡×¡¤
-¡ÖRARRAY(ary)->ptr¡×¤È¤Ê¤ê¤Þ¤¹¡¥
+== Cã®ãƒ‡ãƒ¼ã‚¿ã‚’VALUEã«å¤‰æ›ã™ã‚‹
-Ruby¤Î¹½Â¤ÂΤòľÀÜ¥¢¥¯¥»¥¹¤¹¤ë»þ¤Ëµ¤¤ò¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³
-¤È¤Ï¡¤ÇÛÎó¤äʸ»úÎó¤Î¹½Â¤ÂΤÎÃæ¿È¤Ï»²¾È¤¹¤ë¤À¤±¤Ç¡¤Ä¾ÀÜÊѹ¹¤·
-¤Ê¤¤¤³¤È¤Ç¤¹¡¥Ä¾ÀÜÊѹ¹¤·¤¿¾ì¹ç¡¤¥ª¥Ö¥¸¥§¥¯¥È¤ÎÆâÍÆ¤ÎÀ°¹çÀ­¤¬
-¤È¤ì¤Ê¤¯¤Ê¤Ã¤Æ¡¤»×¤ï¤Ì¥Ð¥°¤Î¸¶°ø¤Ë¤Ê¤ê¤Þ¤¹¡¥
+VALUEã®å®Ÿéš›ã®æ§‹é€ ã¯
-1.4 C¤Î¥Ç¡¼¥¿¤òVALUE¤ËÊÑ´¹¤¹¤ë
+FIXNUMã®å ´åˆ ::
-VALUE¤Î¼ÂºÝ¤Î¹½Â¤¤Ï
+ 1bit左シフトã—ã¦ï¼ŒLSBã‚’ç«‹ã¦ã‚‹ï¼Ž
- * FIXNUM¤Î¾ì¹ç
+ãã®ä»–ã®ãƒã‚¤ãƒ³ã‚¿ã®å ´åˆ ::
- 1bitº¸¥·¥Õ¥È¤·¤Æ¡¤LSB¤òΩ¤Æ¤ë¡¥
+ ãã®ã¾ã¾VALUEã«ã‚­ãƒ£ã‚¹ãƒˆã™ã‚‹ï¼Ž
- * ¤½¤Î¾¤Î¥Ý¥¤¥ó¥¿¤Î¾ì¹ç
+ã¨ãªã£ã¦ã„ã¾ã™ï¼Žã‚ˆã£ã¦ï¼ŒLSBã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚Œã°VALUEãŒFIXNUMã‹ã©
+ã†ã‹ã‚ã‹ã‚‹ã‚ã‘ã§ã™(ãƒã‚¤ãƒ³ã‚¿ã®LSBãŒç«‹ã£ã¦ã„ãªã„ã“ã¨ã‚’仮定ã—ã¦
+ã„ã‚‹).
- ¤½¤Î¤Þ¤ÞVALUE¤Ë¥­¥ã¥¹¥È¤¹¤ë¡¥
+ã§ã™ã‹ã‚‰ï¼ŒFIXNUM以外ã®Rubyã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®æ§‹é€ ä½“ã¯å˜ã«VALUE
+ã«ã‚­ãƒ£ã‚¹ãƒˆã™ã‚‹ã ã‘ã§VALUEã«å¤‰æ›å‡ºæ¥ã¾ã™ï¼ŽãŸã ã—,任æ„ã®æ§‹é€ 
+体ãŒVALUEã«ã‚­ãƒ£ã‚¹ãƒˆå‡ºæ¥ã‚‹ã‚ã‘ã§ã¯ã‚りã¾ã›ã‚“.キャストã™ã‚‹ã®
+ã¯Rubyã®çŸ¥ã£ã¦ã„る構造体(ruby.hã§å®šç¾©ã•れã¦ã„ã‚‹struct RXxxx
+ã®ã‚‚ã®)ã ã‘ã§ã™ï¼Ž
-¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥¤è¤Ã¤Æ¡¤LSB¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤ÐVALUE¤¬FIXNUM¤«¤É
-¤¦¤«¤ï¤«¤ë¤ï¤±¤Ç¤¹(¥Ý¥¤¥ó¥¿¤ÎLSB¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò²¾Äꤷ¤Æ
-¤¤¤ë)¡¥
+FIXNUMã«é–¢ã—ã¦ã¯å¤‰æ›ãƒžã‚¯ãƒ­ã‚’経由ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼ŽCã®æ•´æ•°
+ã‹ã‚‰VALUEã«å¤‰æ›ã™ã‚‹ãƒžã‚¯ãƒ­ã¯ä»¥ä¸‹ã®ã‚‚ã®ãŒã‚りã¾ã™ï¼Žå¿…è¦ã«å¿œã˜
+ã¦ä½¿ã„分ã‘ã¦ãã ã•ã„.
-¤Ç¤¹¤«¤é¡¤FIXNUM°Ê³°¤ÎRuby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¹½Â¤ÂΤÏñ¤ËVALUE
-¤Ë¥­¥ã¥¹¥È¤¹¤ë¤À¤±¤ÇVALUE¤ËÊÑ´¹½ÐÍè¤Þ¤¹¡¥¤¿¤À¤·¡¤Ç¤°Õ¤Î¹½Â¤
-ÂΤ¬VALUE¤Ë¥­¥ã¥¹¥È½ÐÍè¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¥­¥ã¥¹¥È¤¹¤ë¤Î
-¤ÏRuby¤ÎÃΤäƤ¤¤ë¹½Â¤ÂÎ(ruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëstruct RXxxx
-¤Î¤â¤Î)¤À¤±¤Ç¤¹¡¥
+INT2FIX() :: ã‚‚ã¨ã®æ•´æ•°ãŒ31bitã¾ãŸã¯63bit以内ã«åŽã¾ã‚‹è‡ªä¿¡
+ ãŒã‚る時
+INT2NUM() :: ä»»æ„ã®æ•´æ•°ã‹ã‚‰VALUEã¸
-FIXNUM¤Ë´Ø¤·¤Æ¤ÏÊÑ´¹¥Þ¥¯¥í¤ò·Ðͳ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥C¤ÎÀ°¿ô
-¤«¤éVALUE¤ËÊÑ´¹¤¹¤ë¥Þ¥¯¥í¤Ï°Ê²¼¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡¥É¬Íפ˱þ¤¸
-¤Æ»È¤¤Ê¬¤±¤Æ¤¯¤À¤µ¤¤¡¥
+INT2NUM()ã¯æ•´æ•°ãŒFIXNUMã®ç¯„囲ã«åŽã¾ã‚‰ãªã„å ´åˆï¼ŒBignumã«å¤‰æ›
+ã—ã¦ãれã¾ã™(ãŒï¼Œå°‘ã—é…ã„).
- INT2FIX() ¤â¤È¤ÎÀ°¿ô¤¬31bit°ÊÆâ¤Ë¼ý¤Þ¤ë¼«¿®¤¬¤¢¤ë»þ
- INT2NUM() Ǥ°Õ¤ÎÀ°¿ô¤«¤éVALUE¤Ø
+== Rubyã®ãƒ‡ãƒ¼ã‚¿ã‚’æ“作ã™ã‚‹
-INT2NUM()¤ÏÀ°¿ô¤¬FIXNUM¤ÎÈϰϤ˼ý¤Þ¤é¤Ê¤¤¾ì¹ç¡¤Bignum¤ËÊÑ´¹
-¤·¤Æ¤¯¤ì¤Þ¤¹(¤¬¡¤¾¯¤·ÃÙ¤¤)¡¥
+先程も述ã¹ãŸé€šã‚Šï¼ŒRubyã®æ§‹é€ ä½“をアクセスã™ã‚‹æ™‚ã«å†…å®¹ã®æ›´æ–°ã‚’
+行ã†ã“ã¨ã¯å‹§ã‚られã¾ã›ã‚“.ã§ï¼ŒRubyã®ãƒ‡ãƒ¼ã‚¿ã‚’æ“作ã™ã‚‹æ™‚ã«ã¯
+RubyãŒç”¨æ„ã—ã¦ã„る関数を用ã„ã¦ãã ã•ã„.
-1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë
+ã“ã“ã§ã¯ã‚‚ã£ã¨ã‚‚使ã‚れるã§ã‚ã‚ã†æ–‡å­—列ã¨é…列ã®ç”Ÿæˆ/æ“作を行
+ã†é–¢æ•°ã‚’ã‚ã’ã¾ã™(全部ã§ã¯ãªã„ã§ã™).
-ÀèÄø¤â½Ò¤Ù¤¿Ä̤ꡤRuby¤Î¹½Â¤ÂΤò¥¢¥¯¥»¥¹¤¹¤ë»þ¤ËÆâÍÆ¤Î¹¹¿·¤ò
-¹Ô¤¦¤³¤È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥¤Ç¡¤Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë»þ¤Ë¤Ï
-Ruby¤¬ÍѰդ·¤Æ¤¤¤ë´Ø¿ô¤òÍѤ¤¤Æ¤¯¤À¤µ¤¤¡¥
+=== 文字列ã«å¯¾ã™ã‚‹é–¢æ•°
-¤³¤³¤Ç¤Ï¤â¤Ã¤È¤â»È¤ï¤ì¤ë¤Ç¤¢¤í¤¦Ê¸»úÎó¤ÈÇÛÎó¤ÎÀ¸À®/Áàºî¤ò¹Ô
-¤¤´Ø¿ô¤ò¤¢¤²¤Þ¤¹(Á´Éô¤Ç¤Ï¤Ê¤¤¤Ç¤¹)¡¥
+rb_str_new(const char *ptr, long len) ::
- ʸ»úÎó¤ËÂФ¹¤ë´Ø¿ô
+ æ–°ã—ã„Rubyã®æ–‡å­—列を生æˆã™ã‚‹ï¼Ž
- rb_str_new(const char *ptr, long len)
+rb_str_new2(const char *ptr)
+rb_str_new_cstr(const char *ptr)
- ¿·¤·¤¤Ruby¤Îʸ»úÎó¤òÀ¸À®¤¹¤ë¡¥
+ Cã®æ–‡å­—列ã‹ã‚‰Rubyã®æ–‡å­—列を生æˆã™ã‚‹ï¼Žã“ã®é–¢æ•°ã®æ©Ÿèƒ½ã¯
+ rb_str_new(ptr, strlen(ptr))ã¨åŒç­‰ã§ã‚る.
- rb_str_new2(const char *ptr)
+rb_tainted_str_new(const char *ptr, long len)
- C¤Îʸ»úÎ󤫤éRuby¤Îʸ»úÎó¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤Îµ¡Ç½¤Ï
- rb_str_new(ptr, strlen(ptr))¤ÈƱÅù¤Ç¤¢¤ë¡¥
+ 汚染マークãŒä»˜åŠ ã•ã‚ŒãŸæ–°ã—ã„Rubyã®æ–‡å­—列を生æˆã™ã‚‹ï¼Žå¤–部
+ ã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã«åŸºã¥ã文字列ã«ã¯æ±šæŸ“マークãŒä»˜åŠ ã•れるã¹ã
+ ã§ã‚る.
- rb_tainted_str_new(const char *ptr, long len)
+rb_tainted_str_new2(const char *ptr)
+rb_tainted_str_new_cstr(const char *ptr)
- ±øÀ÷¥Þ¡¼¥¯¤¬Éղ䵤줿¿·¤·¤¤Ruby¤Îʸ»úÎó¤òÀ¸À®¤¹¤ë¡¥³°Éô
- ¤«¤é¤Î¥Ç¡¼¥¿¤Ë´ð¤Å¤¯Ê¸»úÎó¤Ë¤Ï±øÀ÷¥Þ¡¼¥¯¤¬Éղ䵤ì¤ë¤Ù¤­
- ¤Ç¤¢¤ë¡¥
+ Cã®æ–‡å­—列ã‹ã‚‰æ±šæŸ“マークãŒä»˜åŠ ã•れãŸRubyã®æ–‡å­—列を生æˆã™ã‚‹ï¼Ž
- rb_tainted_str_new2(const char *ptr)
+rb_sprintf(const char *format, ...)
+rb_vsprintf(const char *format, va_list ap)
- C¤Îʸ»úÎ󤫤鱸À÷¥Þ¡¼¥¯¤¬Éղ䵤줿Ruby¤Îʸ»úÎó¤òÀ¸À®¤¹¤ë¡¥
+ Cã®æ–‡å­—列formatã¨ç¶šã引数をprintf(3)ã®ãƒ•ォーマットã«ã—ãŸãŒã£ã¦
+ æ•´å½¢ã—,Rubyã®æ–‡å­—列を生æˆã™ã‚‹ï¼Ž
- rb_str_cat(VALUE str, const char *ptr, long len)
+ 注æ„: %iã¯Object#to_s('+'ãƒ•ãƒ©ã‚°ãŒæŒ‡å®šã•れã¦ã„ã‚‹ã¨ãã¯Object#inspect)ã‚’
+ 使ã£ãŸVALUEã®å‡ºåŠ›ã«ä½¿ç”¨ã•れã¦ã„ã‚‹ãŸã‚,整数ã«ã¯%dを使用ã™ã‚‹ã“ã¨ï¼Ž
- Ruby¤Îʸ»úÎóstr¤Ëlen¥Ð¥¤¥È¤Îʸ»úÎóptr¤òÄɲ乤롥
+rb_str_cat(VALUE str, const char *ptr, long len)
- ÇÛÎó¤ËÂФ¹¤ë´Ø¿ô
+ Rubyã®æ–‡å­—列strã«lenãƒã‚¤ãƒˆã®æ–‡å­—列ptrを追加ã™ã‚‹ï¼Ž
- rb_ary_new()
+rb_str_cat2(VALUE str, const char* ptr)
- Í×ÁǤ¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥
+ Rubyã®æ–‡å­—列strã«Cã®æ–‡å­—列ptrを追加ã™ã‚‹ï¼Žã“ã®é–¢æ•°ã®æ©Ÿèƒ½ã¯
+ rb_str_cat(str, ptr, strlen(ptr))ã¨åŒç­‰ã§ã‚る.
- rb_ary_new2(long len)
+rb_str_catf(VALUE str, const char* format, ...)
+rb_str_vcatf(VALUE str, const char* format, va_list ap)
- Í×ÁǤ¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥lenÍ×ÁÇʬ¤ÎÎΰè¤ò¤¢¤é¤«¤¸¤á³ä¤ê
- Åö¤Æ¤Æ¤ª¤¯¡¥
+ Cã®æ–‡å­—列formatã¨ç¶šã引数をprintf(3)ã®ãƒ•ォーマットã«ã—ãŸãŒã£ã¦
+ æ•´å½¢ã—,Rubyã®æ–‡å­—列strã«è¿½åŠ ã™ã‚‹ï¼Žã“ã®é–¢æ•°ã®æ©Ÿèƒ½ã¯ï¼Œãれãžã‚Œ
+ rb_str_cat2(str, rb_sprintf(format, ...)) ã‚„
+ rb_str_cat2(str, rb_vsprintf(format, ap)) ã¨åŒç­‰ã§ã‚る.
- rb_ary_new3(long n, ...)
+rb_enc_str_new(const char *ptr, long len, rb_encoding *enc)
+rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc)
- °ú¿ô¤Ç»ØÄꤷ¤¿nÍ×ÁǤò´Þ¤àÇÛÎó¤òÀ¸À®¤¹¤ë¡¥
+ 指定ã•れãŸã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã§Rubyã®æ–‡å­—列を生æˆã™ã‚‹.
- rb_ary_new4(long n, VALUE *elts)
+rb_usascii_str_new(const char *ptr, long len)
+rb_usascii_str_new_cstr(const char *ptr)
- ÇÛÎó¤ÇÍ¿¤¨¤¿nÍ×ÁǤÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥
+ エンコーディングãŒUS-ASCIIã®Rubyã®æ–‡å­—列を生æˆã™ã‚‹.
- rb_ary_push(VALUE ary, VALUE val)
- rb_ary_pop(VALUE ary)
- rb_ary_shift(VALUE ary)
- rb_ary_unshift(VALUE ary, VALUE val)
+rb_str_resize(VALUE str, long len)
- Array¤ÎƱ̾¤Î¥á¥½¥Ã¥É¤ÈƱ¤¸Æ¯¤­¤ò¤¹¤ë´Ø¿ô¡¥Âè1°ú¿ô¤Ïɬ¤º
- ÇÛÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¥
+ Rubyã®æ–‡å­—列ã®ã‚µã‚¤ã‚ºã‚’lenãƒã‚¤ãƒˆã«å¤‰æ›´ã™ã‚‹ï¼Žstrã®é•·ã•ã¯å‰
+ 以ã¦ã‚»ãƒƒãƒˆã•れã¦ã„ãªã‘れã°ãªã‚‰ãªã„.lenãŒå…ƒã®é•·ã•よりも短
+ ã„æ™‚ã¯ï¼Œlenãƒã‚¤ãƒˆã‚’è¶ŠãˆãŸéƒ¨åˆ†ã®å†…å®¹ã¯æ¨ã¦ã‚‰ã‚Œã‚‹ï¼ŽlenãŒå…ƒ
+ ã®é•·ã•ã‚ˆã‚Šã‚‚é•·ã„æ™‚ã¯ï¼Œå…ƒã®é•·ã•ã‚’è¶ŠãˆãŸéƒ¨åˆ†ã®å†…容ã¯ä¿å­˜ã•
+ れãªã„ã§ã‚´ãƒŸã«ãªã‚‹ã ã‚ã†ï¼Žã“ã®é–¢æ•°ã®å‘¼ã³å‡ºã—ã«ã‚ˆã£ã¦
+ RSTRING_PTR(str)ãŒå¤‰æ›´ã•れるã‹ã‚‚ã—れãªã„ã“ã¨ã«æ³¨æ„.
-2¡¥Ruby¤Îµ¡Ç½¤ò»È¤¦
+rb_str_set_len(VALUE str, long len)
-¸¶ÍýŪ¤ËRuby¤Ç½ñ¤±¤ë¤³¤È¤ÏC¤Ç¤â½ñ¤±¤Þ¤¹¡¥Ruby¤½¤Î¤â¤Î¤¬C¤Çµ­
-½Ò¤µ¤ì¤Æ¤¤¤ë¤ó¤Ç¤¹¤«¤é¡¤ÅöÁ³¤È¤¤¤¨¤ÐÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¥¤³¤³¤Ç
-¤ÏRuby¤Î³ÈÄ¥¤Ë»È¤¦¤³¤È¤¬Â¿¤¤¤À¤í¤¦¤Èͽ¬¤µ¤ì¤ëµ¡Ç½¤òÃæ¿´¤Ë¾Ò
-²ð¤·¤Þ¤¹¡¥
+ Rubyã®æ–‡å­—列ã®ã‚µã‚¤ã‚ºã‚’lenãƒã‚¤ãƒˆã«ã‚»ãƒƒãƒˆã™ã‚‹ï¼ŽstrãŒå¤‰æ›´å¯
+ 能ã§ãªã‘れã°ä¾‹å¤–ãŒç™ºç”Ÿã™ã‚‹ï¼ŽRSTRING_LEN(str)ã¨ã¯ç„¡é–¢ä¿‚ã«ï¼Œ
+ lenãƒã‚¤ãƒˆã¾ã§ã®å†…容ã¯ä¿å­˜ã•れる.lenã¯strã®å®¹é‡ã‚’è¶Šãˆã¦ã„
+ ã¦ã¯ãªã‚‰ãªã„.
-2.1 Ruby¤Ëµ¡Ç½¤òÄɲ乤ë
-Ruby¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤¨¤ÐRuby¥¤¥ó¥¿¥×¥ê¥¿¤Ë¿·¤·¤¤µ¡Ç½
-¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡¥Ruby¤Ç¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲä¹¤ë´Ø¿ô¤¬
-Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+== é…列ã«å¯¾ã™ã‚‹é–¢æ•°
- * ¥¯¥é¥¹¡¤¥â¥¸¥å¡¼¥ë
- * ¥á¥½¥Ã¥É¡¤ÆÃ°Û¥á¥½¥Ã¥É¤Ê¤É
- * Äê¿ô
+rb_ary_new()
-¤Ç¤Ï½ç¤Ë¾Ò²ð¤·¤Þ¤¹¡¥
+ è¦ç´ ãŒ0ã®é…列を生æˆã™ã‚‹ï¼Ž
-2.1.1 ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ
+rb_ary_new2(long len)
+rb_ary_new_capa(long len)
-¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+ è¦ç´ ãŒ0ã®é…列を生æˆã™ã‚‹ï¼Žlenè¦ç´ åˆ†ã®é ˜åŸŸã‚’ã‚らã‹ã˜ã‚割り
+ 当ã¦ã¦ãŠã.
+
+rb_ary_new3(long n, ...)
+rb_ary_new_from_args(long n, ...)
+
+ å¼•æ•°ã§æŒ‡å®šã—ãŸnè¦ç´ ã‚’å«ã‚€é…列を生æˆã™ã‚‹ï¼Ž
+
+rb_ary_new4(long n, VALUE *elts)
+rb_ary_new_from_values(long n, VALUE *elts)
+
+ é…列ã§ä¸ŽãˆãŸnè¦ç´ ã®é…列を生æˆã™ã‚‹ï¼Ž
+
+rb_ary_to_ary(VALUE obj)
+
+ オブジェクトをé…列ã«å¤‰æ›ã™ã‚‹.
+ Object#to_aryã¨åŒç­‰ã§ã‚ã‚‹.
+
+ä»–ã«ã‚‚é…列をæ“作ã™ã‚‹é–¢æ•°ãŒå¤šæ•°ã‚ã‚‹. ã“れらã¯
+引数aryã«é…列を渡ã•ãªã‘れã°ãªã‚‰ãªã„. ã•ã‚‚ãªã„ã¨
+コアをåã.
+
+rb_ary_aref(argc, VALUE *argv, VALUE ary)
+
+ Array#[]ã¨åŒç­‰.
+
+rb_ary_entry(VALUE ary, long offset)
+
+ ary[offset]
+
+rb_ary_store(VALUE ary, long offset, VALUE obj) ::
+
+ ary[offset] = obj
+
+rb_ary_subseq(VALUE ary, long beg, long len)
+
+ ary[beg, len]
+
+rb_ary_push(VALUE ary, VALUE val)
+rb_ary_pop(VALUE ary)
+rb_ary_shift(VALUE ary)
+rb_ary_unshift(VALUE ary, VALUE val)
+
+rb_ary_cat(VALUE ary, const VALUE *ptr, long len)
+
+ é…列aryã«ptrã‹ã‚‰len個ã®ã‚ªãƒ–ジェクトを追加ã™ã‚‹ï¼Ž
+
+= Rubyã®æ©Ÿèƒ½ã‚’使ã†
+
+原ç†çš„ã«Rubyã§æ›¸ã‘ã‚‹ã“ã¨ã¯Cã§ã‚‚書ã‘ã¾ã™ï¼ŽRubyãã®ã‚‚ã®ãŒCã§è¨˜
+è¿°ã•れã¦ã„ã‚‹ã‚“ã§ã™ã‹ã‚‰ï¼Œå½“ç„¶ã¨ã„ãˆã°å½“ç„¶ãªã‚“ã§ã™ã‘ã©ï¼Žã“ã“ã§
+ã¯Rubyã®æ‹¡å¼µã«ä½¿ã†ã“ã¨ãŒå¤šã„ã ã‚ã†ã¨äºˆæ¸¬ã•れる機能を中心ã«ç´¹
+介ã—ã¾ã™ï¼Ž
+
+== Rubyã«æ©Ÿèƒ½ã‚’追加ã™ã‚‹
+
+Rubyã§æä¾›ã•れã¦ã„る関数を使ãˆã°Rubyã‚¤ãƒ³ã‚¿ãƒ—ãƒªã‚¿ã«æ–°ã—ã„æ©Ÿèƒ½
+を追加ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ï¼ŽRubyã§ã¯ä»¥ä¸‹ã®æ©Ÿèƒ½ã‚’追加ã™ã‚‹é–¢æ•°ãŒ
+æä¾›ã•れã¦ã„ã¾ã™ï¼Ž
+
+* クラス,モジュール
+* メソッド,特異メソッドãªã©
+* 定数
+
+ã§ã¯é †ã«ç´¹ä»‹ã—ã¾ã™ï¼Ž
+
+=== クラス/モジュール定義
+
+クラスやモジュールを定義ã™ã‚‹ãŸã‚ã«ã¯ï¼Œä»¥ä¸‹ã®é–¢æ•°ã‚’使ã„ã¾ã™ï¼Ž
VALUE rb_define_class(const char *name, VALUE super)
VALUE rb_define_module(const char *name)
-¤³¤ì¤é¤Î´Ø¿ô¤Ï¿·¤·¤¯ÄêµÁ¤µ¤ì¤¿¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÊÖ¤·¤Þ¤¹¡¥
-¥á¥½¥Ã¥É¤äÄê¿ô¤ÎÄêµÁ¤Ë¤³¤ì¤é¤ÎÃͤ¬É¬ÍפʤΤǡ¤¤Û¤È¤ó¤É¤Î¾ì¹ç
-¤ÏÌá¤êÃͤòÊÑ¿ô¤Ë³ÊǼ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡¥
+ã“れらã®é–¢æ•°ã¯æ–°ã—ã定義ã•れãŸã‚¯ãƒ©ã‚¹ã‚„モジュールを返ã—ã¾ã™ï¼Ž
+メソッドや定数ã®å®šç¾©ã«ã“れらã®å€¤ãŒå¿…è¦ãªã®ã§ï¼Œã»ã¨ã‚“ã©ã®å ´åˆ
+ã¯æˆ»ã‚Šå€¤ã‚’å¤‰æ•°ã«æ ¼ç´ã—ã¦ãŠãå¿…è¦ãŒã‚ã‚‹ã§ã—ょã†ï¼Ž
-¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤ò¾¤Î¥¯¥é¥¹¤ÎÆâÉô¤Ë¥Í¥¹¥È¤·¤ÆÄêµÁ¤¹¤ë»þ¤Ë
-¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+クラスやモジュールを他ã®ã‚¯ãƒ©ã‚¹ã®å†…部ã«ãƒã‚¹ãƒˆã—ã¦å®šç¾©ã™ã‚‹æ™‚ã«
+ã¯ä»¥ä¸‹ã®é–¢æ•°ã‚’使ã„ã¾ã™ï¼Ž
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
VALUE rb_define_module_under(VALUE outer, const char *name)
-2.1.2 ¥á¥½¥Ã¥É/ÆÃ°Û¥á¥½¥Ã¥ÉÄêµÁ
+=== メソッド/特異メソッド定義
-¥á¥½¥Ã¥É¤äÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+メソッドや特異メソッドを定義ã™ã‚‹ã«ã¯ä»¥ä¸‹ã®é–¢æ•°ã‚’使ã„ã¾ã™ï¼Ž
- void rb_define_method(VALUE klass, const char *name,
- VALUE (*func)(), int argc)
+ void rb_define_method(VALUE klass, const char *name,
+ VALUE (*func)(), int argc)
+
+ void rb_define_singleton_method(VALUE object, const char *name,
+ VALUE (*func)(), int argc)
- void rb_define_singleton_method(VALUE object, const char *name,
- VALUE (*func)(), int argc)
+念ã®ãŸã‚説明ã™ã‚‹ã¨ã€Œç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ã€ã¨ã¯ï¼Œãã®ç‰¹å®šã®ã‚ªãƒ–ジェク
+トã«å¯¾ã—ã¦ã ã‘有効ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ï¼ŽRubyã§ã¯ã‚ˆãSmalltalkã«ãŠ
+ã‘るクラスメソッドã¨ã—ã¦ï¼Œã‚¯ãƒ©ã‚¹ã«å¯¾ã™ã‚‹ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ãŒä½¿ã‚れ
+ã¾ã™ï¼Ž
-ǰ¤Î¤¿¤áÀâÌÀ¤¹¤ë¤È¡ÖÆÃ°Û¥á¥½¥Ã¥É¡×¤È¤Ï¡¤¤½¤ÎÆÃÄê¤Î¥ª¥Ö¥¸¥§¥¯
-¥È¤ËÂФ·¤Æ¤À¤±Í­¸ú¤Ê¥á¥½¥Ã¥É¤Ç¤¹¡¥Ruby¤Ç¤Ï¤è¤¯Smalltalk¤Ë¤ª
-¤±¤ë¥¯¥é¥¹¥á¥½¥Ã¥É¤È¤·¤Æ¡¤¥¯¥é¥¹¤ËÂФ¹¤ëÆÃ°Û¥á¥½¥Ã¥É¤¬»È¤ï¤ì
-¤Þ¤¹¡¥
+ã“れらã®é–¢æ•°ã® argcã¨ã„ã†å¼•æ•°ã¯Cã®é–¢æ•°ã¸æ¸¡ã•ã‚Œã‚‹å¼•æ•°ã®æ•°(ã¨
+å½¢å¼)を決ã‚ã¾ã™ï¼ŽargcãŒ0ä»¥ä¸Šã®æ™‚ã¯é–¢æ•°ã«å¼•ãæ¸¡ã™å¼•æ•°ã®æ•°ã‚’æ„
+味ã—ã¾ã™ï¼Ž16個以上ã®å¼•æ•°ã¯ä½¿ãˆã¾ã›ã‚“(ãŒï¼Œè¦ã‚Šã¾ã›ã‚“よã­ï¼Œã
+ã‚“ãªã«).実際ã®é–¢æ•°ã«ã¯å…ˆé ­ã®å¼•æ•°ã¨ã—ã¦selfãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã®
+ã§ï¼ŒæŒ‡å®šã—ãŸæ•°ã‚ˆã‚Š1多ã„引数をæŒã¤ã“ã¨ã«ãªã‚Šã¾ã™ï¼Ž
-¤³¤ì¤é¤Î´Ø¿ô¤Î argc¤È¤¤¤¦°ú¿ô¤ÏC¤Î´Ø¿ô¤ØÅϤµ¤ì¤ë°ú¿ô¤Î¿ô(¤È
-·Á¼°)¤ò·è¤á¤Þ¤¹¡¥argc¤¬0°Ê¾å¤Î»þ¤Ï´Ø¿ô¤Ë°ú¤­ÅϤ¹°ú¿ô¤Î¿ô¤ò°Õ
-Ì£¤·¤Þ¤¹¡¥16¸Ä°Ê¾å¤Î°ú¿ô¤Ï»È¤¨¤Þ¤»¤ó(¤¬¡¤Íפê¤Þ¤»¤ó¤è¤Í¡¤¤½
-¤ó¤Ê¤Ë)¡¥¼ÂºÝ¤Î´Ø¿ô¤Ë¤ÏÀèÆ¬¤Î°ú¿ô¤È¤·¤Æself¤¬Í¿¤¨¤é¤ì¤Þ¤¹¤Î
-¤Ç¡¤»ØÄꤷ¤¿¿ô¤è¤ê1¿¤¤°ú¿ô¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥
+argcãŒè² ã®æ™‚ã¯å¼•æ•°ã®æ•°ã§ã¯ãªã,形å¼ã‚’指定ã—ãŸã“ã¨ã«ãªã‚Šã¾ã™ï¼Ž
+argcãŒ-1ã®æ™‚ã¯å¼•æ•°ã‚’é…列ã«å…¥ã‚Œã¦æ¸¡ã•れã¾ã™ï¼ŽargcãŒ-2ã®æ™‚ã¯å¼•
+æ•°ã¯Rubyã®é…列ã¨ã—ã¦æ¸¡ã•れã¾ã™ï¼Ž
-argc¤¬Éé¤Î»þ¤Ï°ú¿ô¤Î¿ô¤Ç¤Ï¤Ê¤¯¡¤·Á¼°¤ò»ØÄꤷ¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥
-argc¤¬-1¤Î»þ¤Ï°ú¿ô¤òÇÛÎó¤ËÆþ¤ì¤ÆÅϤµ¤ì¤Þ¤¹¡¥argc¤¬-2¤Î»þ¤Ï°ú
-¿ô¤ÏRuby¤ÎÇÛÎó¤È¤·¤ÆÅϤµ¤ì¤Þ¤¹¡¥
+メソッドを定義ã™ã‚‹é–¢æ•°ã¯ã¾ã ã„ãã¤ã‹ã‚りã¾ã™. ã²ã¨ã¤ã¯ãƒ¡ã‚½ãƒƒãƒ‰
+åã¨ã—ã¦IDã‚’å–りã¾ã™. IDã«ã¤ã„ã¦ã¯2.2.2ã‚’å‚ç…§.
-¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï¤â¤¦Æó¤Ä¤¢¤ê¤Þ¤¹¡¥¤Ò¤È¤Ä¤Ïprivate¥á
-¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ç¡¤°ú¿ô¤Ïrb_define_method()¤ÈƱ¤¸¤Ç¤¹¡¥
+ void rb_define_method_id(VALUE klass, ID name,
+ VALUE (*func)(ANYARGS), int argc)
- void rb_define_private_method(VALUE klass, const char *name,
+private/protectedãªãƒ¡ã‚½ãƒƒãƒ‰ã‚’定義ã™ã‚‹ãµãŸã¤ã®é–¢æ•°ãŒã‚りã¾ã™.
+
+ void rb_define_private_method(VALUE klass, const char *name,
VALUE (*func)(), int argc)
+ void rb_define_protected_method(VALUE klass, const char *name,
+ VALUE (*func)(), int argc)
-private¥á¥½¥Ã¥É¤È¤Ï´Ø¿ô·Á¼°¤Ç¤·¤«¸Æ¤Ó½Ð¤¹¤³¤È¤Î½ÐÍè¤Ê¤¤¥á¥½¥Ã
-¥É¤Ç¤¹¡¥
+privateメソッドã¨ã¯é–¢æ•°å½¢å¼ã§ã—ã‹å‘¼ã³å‡ºã™ã“ã¨ã®å‡ºæ¥ãªã„メソッ
+ドã§ã™ï¼Ž
-¤â¤¦¤Ò¤È¤Ä¤Ï¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô
-¤È¤Ï¥â¥¸¥å¡¼¥ë¤ÎÆÃ°Û¥á¥½¥Ã¥É¤Ç¤¢¤ê¡¤Æ±»þ¤Ëprivate¥á¥½¥Ã¥É¤Ç
-¤â¤¢¤ë¤â¤Î¤Ç¤¹¡¥Îã¤ò¤¢¤²¤ë¤ÈMath¥â¥¸¥å¡¼¥ë¤Îsqrt()¤Ê¤É¤¬¤¢¤²
-¤é¤ì¤Þ¤¹¡¥¤³¤Î¥á¥½¥Ã¥É¤Ï
+最後ã«ï¼Œ rb_define_module関数ã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«é–¢æ•°ã‚’定義ã—ã¾ã™ï¼Ž
+モジュール関数ã¨ã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ã§ã‚ã‚Šï¼ŒåŒæ™‚ã«
+privateメソッドã§ã‚‚ã‚ã‚‹ã‚‚ã®ã§ã™ï¼Žä¾‹ã‚’ã‚ã’ã‚‹ã¨Mathモジュール
+ã®sqrt()ãªã©ãŒã‚ã’られã¾ã™ï¼Žã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯
Math.sqrt(4)
-¤È¤¤¤¦·Á¼°¤Ç¤â
+ã¨ã„ã†å½¢å¼ã§ã‚‚
include Math
sqrt(4)
-¤È¤¤¤¦·Á¼°¤Ç¤â»È¤¨¤Þ¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤Î
-Ä̤ê¤Ç¤¹¡¥
+ã¨ã„ã†å½¢å¼ã§ã‚‚使ãˆã¾ã™ï¼Žãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«é–¢æ•°ã‚’定義ã™ã‚‹é–¢æ•°ã¯ä»¥ä¸‹ã®
+通りã§ã™ï¼Ž
- void rb_define_module_function(VALUE module, const char *name,
+ void rb_define_module_function(VALUE module, const char *name,
VALUE (*func)(), int argc)
-´Ø¿ôŪ¥á¥½¥Ã¥É(Kernel¥â¥¸¥å¡¼¥ë¤Îprivate method)¤òÄêµÁ¤¹¤ë¤¿
-¤á¤Î´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡¥
+関数的メソッド(Kernelモジュールã®private method)を定義ã™ã‚‹ãŸ
+ã‚ã®é–¢æ•°ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ï¼Ž
void rb_define_global_function(const char *name, VALUE (*func)(), int argc)
-¥á¥½¥Ã¥É¤ÎÊÌ̾¤òÄêµÁ¤¹¤ë¤¿¤á¤Î´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
+メソッドã®åˆ¥åを定義ã™ã‚‹ãŸã‚ã®é–¢æ•°ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ï¼Ž
void rb_define_alias(VALUE module, const char* new, const char* old);
-¥¯¥é¥¹¥á¥½¥Ã¥Éallocate¤òÄêµÁ¤·¤¿¤êºï½ü¤·¤¿¤ê¤¹¤ë¤¿¤á¤Î´Ø¿ô¤Ï
-°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
+属性ã®å–得・設定メソッドを定義ã™ã‚‹ã«ã¯
+
+ void rb_define_attr(VALUE klass, const char *name, int read, int write)
+
+クラスメソッドallocateを定義ã—ãŸã‚Šå‰Šé™¤ã—ãŸã‚Šã™ã‚‹ãŸã‚ã®é–¢æ•°ã¯
+以下ã®é€šã‚Šã§ã™ï¼Ž
void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE klass));
void rb_undef_alloc_func(VALUE klass);
-func¤Ï¥¯¥é¥¹¤ò°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤Æ¡¢¿·¤·¤¯³ä¤êÅö¤Æ¤é¤ì¤¿¥¤¥ó
-¥¹¥¿¥ó¥¹¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤³¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¢³°Éô¥ê
-¥½¡¼¥¹¤Ê¤É¤ò´Þ¤Þ¤Ê¤¤¡¢¤Ç¤­¤ë¤À¤±¡Ö¶õ¡×¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¤¤¿¤Û¤¦
-¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£
+funcã¯ã‚¯ãƒ©ã‚¹ã‚’引数ã¨ã—ã¦å—ã‘å–ã£ã¦ï¼Œæ–°ã—ã割り当ã¦ã‚‰ã‚ŒãŸã‚¤ãƒ³
+スタンスを返ã•ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“.ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã¯ï¼Œå¤–部リ
+ソースãªã©ã‚’å«ã¾ãªã„,ã§ãã‚‹ã ã‘「空ã€ã®ã¾ã¾ã«ã—ã¦ãŠã„ãŸã»ã†
+ãŒã‚ˆã„ã§ã—ょã†ï¼Ž
-2.1.3 Äê¿ôÄêµÁ
+=== 定数定義
-³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤¬É¬ÍפÊÄê¿ô¤Ï¤¢¤é¤«¤¸¤áÄêµÁ¤·¤Æ¤ª¤¤¤¿Êý¤¬Îɤ¤
-¤Ç¤·¤ç¤¦¡¥Äê¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤ÏÆó¤Ä¤¢¤ê¤Þ¤¹¡¥
+拡張ライブラリãŒå¿…è¦ãªå®šæ•°ã¯ã‚らã‹ã˜ã‚定義ã—ã¦ãŠã„ãŸæ–¹ãŒè‰¯ã„
+ã§ã—ょã†ï¼Žå®šæ•°ã‚’定義ã™ã‚‹é–¢æ•°ã¯äºŒã¤ã‚りã¾ã™ï¼Ž
void rb_define_const(VALUE klass, const char *name, VALUE val)
void rb_define_global_const(const char *name, VALUE val)
-Á°¼Ô¤ÏÆÃÄê¤Î¥¯¥é¥¹/¥â¥¸¥å¡¼¥ë¤Ë°¤¹¤ëÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¡¤¸å
-¼Ô¤Ï¥°¥í¡¼¥Ð¥ë¤ÊÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥
+å‰è€…ã¯ç‰¹å®šã®ã‚¯ãƒ©ã‚¹/モジュールã«å±žã™ã‚‹å®šæ•°ã‚’定義ã™ã‚‹ã‚‚ã®ï¼Œå¾Œ
+者ã¯ã‚°ãƒ­ãƒ¼ãƒãƒ«ãªå®šæ•°ã‚’定義ã™ã‚‹ã‚‚ã®ã§ã™ï¼Ž
-2.2 Ruby¤Îµ¡Ç½¤òC¤«¤é¸Æ¤Ó½Ð¤¹
+== Rubyã®æ©Ÿèƒ½ã‚’Cã‹ã‚‰å‘¼ã³å‡ºã™
-´û¤Ë¡Ø1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë¡Ù¤Ç°ìÉô¾Ò²ð¤·¤¿¤è¤¦¤Ê´Ø¿ô¤ò
-»È¤¨¤Ð¡¤Ruby¤Îµ¡Ç½¤ò¼Â¸½¤·¤Æ¤¤¤ë´Ø¿ô¤òľÀܸƤӽФ¹¤³¤È¤¬½ÐÍè
-¤Þ¤¹¡¥
+æ—¢ã«ã€Ž1.5 Rubyã®ãƒ‡ãƒ¼ã‚¿ã‚’æ“作ã™ã‚‹ã€ã§ä¸€éƒ¨ç´¹ä»‹ã—ãŸã‚ˆã†ãªé–¢æ•°ã‚’
+使ãˆã°ï¼ŒRubyã®æ©Ÿèƒ½ã‚’実ç¾ã—ã¦ã„る関数を直接呼ã³å‡ºã™ã“ã¨ãŒå‡ºæ¥
+ã¾ã™ï¼Ž
-# ¤³¤Î¤è¤¦¤Ê´Ø¿ô¤Î°ìÍ÷ɽ¤Ï¤¤¤Þ¤Î¤È¤³¤í¤¢¤ê¤Þ¤»¤ó¡¥¥½¡¼¥¹¤ò¸«
-# ¤ë¤·¤«¤Ê¤¤¤Ç¤¹¤Í¡¥
+# ã“ã®ã‚ˆã†ãªé–¢æ•°ã®ä¸€è¦§è¡¨ã¯ã„ã¾ã®ã¨ã“ã‚ã‚りã¾ã›ã‚“.ソースを見
+# ã‚‹ã—ã‹ãªã„ã§ã™ã­ï¼Ž
-¤½¤ì°Ê³°¤Ë¤âRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹ÊýË¡¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡¥
+ãれ以外ã«ã‚‚Rubyã®æ©Ÿèƒ½ã‚’呼ã³å‡ºã™æ–¹æ³•ã¯ã„ãã¤ã‹ã‚りã¾ã™ï¼Ž
-2.2.1 Ruby¤Î¥×¥í¥°¥é¥à¤òeval¤¹¤ë
+=== Rubyã®ãƒ—ログラムをevalã™ã‚‹
-C¤«¤éRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹¤â¤Ã¤È¤â´Êñ¤ÊÊýË¡¤È¤·¤Æ¡¤Ê¸»úÎó¤Ç
-Í¿¤¨¤é¤ì¤¿Ruby¤Î¥×¥í¥°¥é¥à¤òɾ²Á¤¹¤ë°Ê²¼¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥
+Cã‹ã‚‰Rubyã®æ©Ÿèƒ½ã‚’呼ã³å‡ºã™ã‚‚ã£ã¨ã‚‚ç°¡å˜ãªæ–¹æ³•ã¨ã—ã¦ï¼Œæ–‡å­—列ã§
+与ãˆã‚‰ã‚ŒãŸRubyã®ãƒ—ログラムを評価ã™ã‚‹ä»¥ä¸‹ã®é–¢æ•°ãŒã‚りã¾ã™ï¼Ž
VALUE rb_eval_string(const char *str)
-¤³¤Îɾ²Á¤Ï¸½ºß¤Î´Ä¶­¤Ç¹Ô¤ï¤ì¤Þ¤¹¡¥¤Ä¤Þ¤ê¡¤¸½ºß¤Î¥í¡¼¥«¥ëÊÑ¿ô
-¤Ê¤É¤ò¼õ¤±·Ñ¤®¤Þ¤¹¡¥
+ã“ã®è©•価ã¯ç¾åœ¨ã®ç’°å¢ƒã§è¡Œã‚れã¾ã™ï¼Žã¤ã¾ã‚Šï¼Œç¾åœ¨ã®ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°
+ãªã©ã‚’å—ã‘ç¶™ãŽã¾ã™ï¼Ž
-2.2.2 ID¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë
+評価ã¯ä¾‹å¤–を発生ã™ã‚‹ã‹ã‚‚ã—れãªã„ã“ã¨ã«æ³¨æ„ã—ã¾ã—ょã†. より安全
+ãªé–¢æ•°ã‚‚ã‚りã¾ã™.
-C¤«¤éʸ»úÎó¤ò·Ðͳ¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤Þ
-¤¹¡¥¤½¤ÎÁ°¤Ë¡¤Ruby¥¤¥ó¥¿¥×¥ê¥¿Æâ¤Ç¥á¥½¥Ã¥É¤äÊÑ¿ô̾¤ò»ØÄꤹ¤ë
-»þ¤Ë»È¤ï¤ì¤Æ¤¤¤ëID¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡¥
+ VALUE rb_eval_string_protect(const char *str, int *state)
-ID¤È¤ÏÊÑ¿ô̾¡¤¥á¥½¥Ã¥É̾¤òɽ¤¹À°¿ô¤Ç¤¹¡¥Ruby¤Ç¤ÏID¤ËÂбþ¤¹¤ë
-¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¥·¥ó¥Ü¥ë(Symbol)¤¬¤¢¤ê¡¤
+ã“ã®é–¢æ•°ã¯ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã™ã‚‹ã¨nilã‚’è¿”ã—ã¾ã™ï¼Žãã—ã¦ï¼ŒæˆåŠŸæ™‚ã«ã¯
+*stateã¯ã‚¼ãƒ­ã«ï¼Œã•ã‚‚ãªãã°éžã‚¼ãƒ­ã«ãªã‚Šã¾ã™ï¼Ž
- :¼±ÊÌ»Ò
+=== IDã¾ãŸã¯ã‚·ãƒ³ãƒœãƒ«
-¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡¥C¤«¤é¤³¤ÎÀ°¿ô¤òÆÀ¤ë¤¿¤á¤Ë¤Ï´Ø¿ô
+Cã‹ã‚‰æ–‡å­—列を経由ã›ãšã«Rubyã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã™ã“ã¨ã‚‚ã§ãã¾
+ã™ï¼Žãã®å‰ã«ï¼ŒRubyインタプリタ内ã§ãƒ¡ã‚½ãƒƒãƒ‰ã‚„変数åを指定ã™ã‚‹
+時ã«ä½¿ã‚れã¦ã„ã‚‹IDã«ã¤ã„ã¦èª¬æ˜Žã—ã¦ãŠãã¾ã—ょã†ï¼Ž
- rb_intern(const char *name)
+IDã¨ã¯å¤‰æ•°å,メソッドåã‚’è¡¨ã™æ•´æ•°ã§ã™ï¼ŽRubyã®ä¸­ã§ã¯
-¤ò»È¤¤¤Þ¤¹¡¥Ruby¤«¤é°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¥·¥ó¥Ü¥ë(¤Þ¤¿¤Ïʸ»ú
-Îó)¤òID¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+ :識別å­
- rb_to_id(VALUE symbol)
+ã¾ãŸã¯
-ID¤«¤é¥·¥ó¥Ü¥ë¤òÆÀ¤ë¤¿¤á¤Ë¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥
+ :"ä»»æ„ã®æ–‡å­—列"
- VALUE ID2SYM(ID id)
+ã§ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ï¼ŽCã‹ã‚‰ã“ã®æ•´æ•°ã‚’å¾—ã‚‹ãŸã‚ã«ã¯é–¢æ•°
-¥·¥ó¥Ü¥ë¤«¤éID¤òÆÀ¤ë¤¿¤á¤Ë¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥
+ rb_intern(const char *name)
+ rb_intern_str(VALUE name)
+
+を使ã„ã¾ã™ï¼ŽRubyã‹ã‚‰å¼•æ•°ã¨ã—ã¦ä¸Žãˆã‚‰ã‚ŒãŸã‚·ãƒ³ãƒœãƒ«(ã¾ãŸã¯æ–‡å­—
+列)ã‚’IDã«å¤‰æ›ã™ã‚‹ã«ã¯ä»¥ä¸‹ã®é–¢æ•°ã‚’使ã„ã¾ã™ï¼Ž
- ID SYM2ID(VALUE symbol)
+ rb_to_id(VALUE symbol)
+ rb_check_id(volatile VALUE *name)
+ rb_check_id_cstr(const char *name, long len, rb_encoding *enc)
-2.2.3 C¤«¤éRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹
+ã‚‚ã—引数ãŒã‚·ãƒ³ãƒœãƒ«ã§ã‚‚文字列ã§ã‚‚ãªã‘れã°ã€to_strãƒ¡ã‚½ãƒƒãƒ‰ã§æ–‡
+字列ã«å¤‰æ›ã—よã†ã¨ã—ã¾ã™ï¼Žç¬¬äºŒã®é–¢æ•°ã¯ãã®å¤‰æ›çµæžœã‚’*nameã«ä¿
+å­˜ã—,ãã®åå‰ãŒæ—¢çŸ¥ã®ã‚·ãƒ³ãƒœãƒ«ã§ãªã„å ´åˆã¯0ã‚’è¿”ã—ã¾ã™ï¼Žã“ã®é–¢
+æ•°ãŒ0以外を返ã—ãŸå ´åˆã¯*nameã¯å¸¸ã«ã‚·ãƒ³ãƒœãƒ«ã‹æ–‡å­—列ã§ã‚りã€0ã‚’
+è¿”ã—ãŸå ´åˆã¯å¸¸ã«æ–‡å­—列ã§ã™ï¼Žç¬¬ä¸‰ã®é–¢æ•°ã¯Rubyã®æ–‡å­—列ã§ã¯ãªã
+NUL終端ã•れãŸCã®æ–‡å­—列を使ã„ã¾ã™ï¼Ž
-C¤«¤éʸ»úÎó¤ò·Ðͳ¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Ë¤Ï°Ê²¼
-¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+=== Cã‹ã‚‰Rubyã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã™
+
+Cã‹ã‚‰æ–‡å­—列を経由ã›ãšã«Rubyã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã™ãŸã‚ã«ã¯ä»¥ä¸‹
+ã®é–¢æ•°ã‚’使ã„ã¾ã™ï¼Ž
VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)
-¤³¤Î´Ø¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥Èrecv¤Îmid¤Ç»ØÄꤵ¤ì¤ë¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð
-¤·¤Þ¤¹¡¥¤½¤Î¾¤Ë°ú¿ô¤Î»ØÄê¤Î»ÅÊý¤¬°ã¤¦°Ê²¼¤Î´Ø¿ô¤â¤¢¤ê¤Þ¤¹¡¥
+ã“ã®é–¢æ•°ã¯ã‚ªãƒ–ジェクトrecvã®midã§æŒ‡å®šã•れるメソッドを呼ã³å‡º
+ã—ã¾ã™ï¼Žãã®ä»–ã«å¼•æ•°ã®æŒ‡å®šã®ä»•æ–¹ãŒé•ã†ä»¥ä¸‹ã®é–¢æ•°ã‚‚ã‚りã¾ã™ï¼Ž
VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
+ VALUE rb_funcallv(VALUE recv, ID mid, int argc, VALUE *argv)
VALUE rb_apply(VALUE recv, ID mid, VALUE args)
-apply¤Ë¤Ï°ú¿ô¤È¤·¤ÆRuby¤ÎÇÛÎó¤òÍ¿¤¨¤Þ¤¹¡¥
+applyã«ã¯å¼•æ•°ã¨ã—ã¦Rubyã®é…列を与ãˆã¾ã™ï¼Ž
-2.2.4 ÊÑ¿ô/Äê¿ô¤ò»²¾È/¹¹¿·¤¹¤ë
+=== 変数/定数をå‚ç…§/æ›´æ–°ã™ã‚‹
-C¤«¤é´Ø¿ô¤ò»È¤Ã¤Æ»²¾È¡¦¹¹¿·¤Ç¤­¤ë¤Î¤Ï¡¤Äê¿ô¡¤¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ
-¿ô¤Ç¤¹¡¥Âç°èÊÑ¿ô¤Ï°ìÉô¤Î¤â¤Î¤ÏC¤ÎÂç°èÊÑ¿ô¤È¤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­
-¤Þ¤¹¡¥¥í¡¼¥«¥ëÊÑ¿ô¤ò»²¾È¤¹¤ëÊýË¡¤Ï¸ø³«¤·¤Æ¤¤¤Þ¤»¤ó¡¥
+Cã‹ã‚‰é–¢æ•°ã‚’使ã£ã¦å‚照・更新ã§ãã‚‹ã®ã¯ï¼Œå®šæ•°ï¼Œã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰
+æ•°ã§ã™ï¼Žå¤§åŸŸå¤‰æ•°ã¯ä¸€éƒ¨ã®ã‚‚ã®ã¯Cã®å¤§åŸŸå¤‰æ•°ã¨ã—ã¦ã‚¢ã‚¯ã‚»ã‚¹ã§ã
+ã¾ã™ï¼Žãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã‚’å‚ç…§ã™ã‚‹æ–¹æ³•ã¯å…¬é–‹ã—ã¦ã„ã¾ã›ã‚“.
-¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ò»²¾È¡¦¹¹¿·¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ
-¤ê¤Ç¤¹¡¥
+オブジェクトã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã‚’å‚照・更新ã™ã‚‹é–¢æ•°ã¯ä»¥ä¸‹ã®é€š
+りã§ã™ï¼Ž
VALUE rb_ivar_get(VALUE obj, ID id)
VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)
-id¤Ïrb_intern()¤ÇÆÀ¤é¤ì¤ë¤â¤Î¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥
+idã¯rb_intern()ã§å¾—られるもã®ã‚’使ã£ã¦ãã ã•ã„.
-Äê¿ô¤ò»²¾È¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥
+定数をå‚ç…§ã™ã‚‹ã«ã¯ä»¥ä¸‹ã®é–¢æ•°ã‚’使ã£ã¦ãã ã•ã„.
VALUE rb_const_get(VALUE obj, ID id)
-Äê¿ô¤ò¿·¤·¤¯ÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡Ø2.1.3 Äê¿ôÄêµÁ¡Ù¤Ç¾Ò²ð¤µ
-¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥
+定数を新ã—ã定義ã™ã‚‹ãŸã‚ã«ã¯ã€Ž2.1.3 定数定義ã€ã§ç´¹ä»‹ã•
+れã¦ã„る関数を使ã£ã¦ãã ã•ã„.
-3¡¥Ruby¤ÈC¤È¤Î¾ðÊó¶¦Í­
+= Rubyã¨Cã¨ã®æƒ…報共有
-C¸À¸ì¤ÈRuby¤Î´Ö¤Ç¾ðÊó¤ò¶¦Í­¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ²òÀ⤷¤Þ¤¹¡¥
+C言語ã¨Rubyã®é–“ã§æƒ…報を共有ã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦è§£èª¬ã—ã¾ã™ï¼Ž
-3.1 C¤«¤é»²¾È¤Ç¤­¤ëRuby¤ÎÄê¿ô
+== Cã‹ã‚‰å‚ç…§ã§ãã‚‹Rubyã®å®šæ•°
-°Ê²¼¤ÎRuby¤ÎÄê¿ô¤ÏC¤Î¥ì¥Ù¥ë¤«¤é»²¾È¤Ç¤­¤Þ¤¹¡¥
+以下ã®Rubyã®å®šæ•°ã¯Cã®ãƒ¬ãƒ™ãƒ«ã‹ã‚‰å‚ç…§ã§ãã¾ã™ï¼Ž
Qtrue
Qfalse
- ¿¿µ¶ÃÍ¡¥Qfalse¤ÏC¸À¸ì¤Ç¤âµ¶¤È¤ß¤Ê¤µ¤ì¤Þ¤¹(¤Ä¤Þ¤ê0)¡¥
+真å½å€¤ï¼ŽQfalseã¯C言語ã§ã‚‚å½ã¨ã¿ãªã•れã¾ã™(ã¤ã¾ã‚Š0).
Qnil
- C¸À¸ì¤«¤é¸«¤¿¡Önil¡×¡¥
+C言語ã‹ã‚‰è¦‹ãŸã€Œnilã€ï¼Ž
-3.2 C¤ÈRuby¤Ç¶¦Í­¤µ¤ì¤ëÂç°èÊÑ¿ô
+== Cã¨Rubyã§å…±æœ‰ã•れる大域変数
-C¤ÈRuby¤ÇÂç°èÊÑ¿ô¤ò»È¤Ã¤Æ¾ðÊó¤ò¶¦Í­¤Ç¤­¤Þ¤¹¡¥¶¦Í­¤Ç¤­¤ëÂç°è
-ÊÑ¿ô¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¼ïÎब¤¢¤ê¤Þ¤¹¡¥¤½¤Î¤Ê¤«¤Ç¤â¤Ã¤È¤âÎɤ¯»È¤ï
-¤ì¤ë¤È»×¤ï¤ì¤ë¤Î¤Ïrb_define_variable()¤Ç¤¹¡¥
+Cã¨Rubyã§å¤§åŸŸå¤‰æ•°ã‚’使ã£ã¦æƒ…報を共有ã§ãã¾ã™ï¼Žå…±æœ‰ã§ãる大域
+変数ã«ã¯ã„ãã¤ã‹ã®ç¨®é¡žãŒã‚りã¾ã™ï¼Žãã®ãªã‹ã§ã‚‚ã£ã¨ã‚‚良ã使ã‚
+ã‚Œã‚‹ã¨æ€ã‚れるã®ã¯rb_define_variable()ã§ã™ï¼Ž
void rb_define_variable(const char *name, VALUE *var)
-¤³¤Î´Ø¿ô¤ÏRuby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëÂç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ¤¹¡¥ÊÑ¿ô̾¤¬
-`$'¤Ç»Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄɲ䵤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤ÎÃͤòÊÑ
-¹¹¤¹¤ë¤È¼«Æ°Åª¤ËRuby¤ÎÂбþ¤¹¤ëÊÑ¿ô¤ÎÃͤâÊѤï¤ê¤Þ¤¹¡¥
+ã“ã®é–¢æ•°ã¯Rubyã¨Cã¨ã§å…±æœ‰ã™ã‚‹å¤§åŸŸå¤‰æ•°ã‚’定義ã—ã¾ã™ï¼Žå¤‰æ•°åãŒ
+`$'ã§å§‹ã¾ã‚‰ãªã„時ã«ã¯è‡ªå‹•çš„ã«è¿½åŠ ã•れã¾ã™ï¼Žã“ã®å¤‰æ•°ã®å€¤ã‚’変
+æ›´ã™ã‚‹ã¨è‡ªå‹•çš„ã«Rubyã®å¯¾å¿œã™ã‚‹å¤‰æ•°ã®å€¤ã‚‚変ã‚りã¾ã™ï¼Ž
-¤Þ¤¿Ruby¦¤«¤é¤Ï¹¹¿·¤Ç¤­¤Ê¤¤ÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¡¥¤³¤Îread only¤Î
-ÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ÇÄêµÁ¤·¤Þ¤¹¡¥
+ã¾ãŸRubyå´ã‹ã‚‰ã¯æ›´æ–°ã§ããªã„変数もã‚りã¾ã™ï¼Žã“ã®read onlyã®
+変数ã¯ä»¥ä¸‹ã®é–¢æ•°ã§å®šç¾©ã—ã¾ã™ï¼Ž
void rb_define_readonly_variable(const char *name, VALUE *var)
-¤³¤ì¤éÊÑ¿ô¤Î¾¤Ëhook¤ò¤Ä¤±¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤Ç¤­¤Þ¤¹¡¥hookÉÕ¤­
-¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤òÍѤ¤¤ÆÄêµÁ¤·¤Þ¤¹¡¥hookÉÕ¤­Âç°èÊÑ¿ô¤Î
-Ãͤλ²¾È¤äÀßÄê¤Ïhook¤Ç¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥
+ã“れら変数ã®ä»–ã«hookã‚’ã¤ã‘ãŸå¤§åŸŸå¤‰æ•°ã‚’定義ã§ãã¾ã™ï¼Žhook付ã
+ã®å¤§åŸŸå¤‰æ•°ã¯ä»¥ä¸‹ã®é–¢æ•°ã‚’用ã„ã¦å®šç¾©ã—ã¾ã™ï¼Žhook付ã大域変数ã®
+値ã®å‚照や設定ã¯hookã§è¡Œã†å¿…è¦ãŒã‚りã¾ã™ï¼Ž
void rb_define_hooked_variable(const char *name, VALUE *var,
VALUE (*getter)(), void (*setter)())
-¤³¤Î´Ø¿ô¤ÏC¤Î´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ
-¤¹¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï´Ø¿ôgetter¤¬¡¤ÊÑ¿ô¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì
-¤¿»þ¤Ë¤Ï´Ø¿ôsetter¤¬¸Æ¤Ð¤ì¤ë¡¥hook¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ïgetter¤ä
-setter¤Ë0¤ò»ØÄꤷ¤Þ¤¹¡¥
+ã“ã®é–¢æ•°ã¯Cã®é–¢æ•°ã«ã‚ˆã£ã¦hookã®ã¤ã‘られãŸå¤§åŸŸå¤‰æ•°ã‚’定義ã—ã¾
+ã™ï¼Žå¤‰æ•°ãŒå‚ç…§ã•ã‚ŒãŸæ™‚ã«ã¯é–¢æ•°getterãŒï¼Œå¤‰æ•°ã«å€¤ãŒã‚»ãƒƒãƒˆã•れ
+ãŸæ™‚ã«ã¯é–¢æ•°setterãŒå‘¼ã°ã‚Œã‚‹ï¼Žhookを指定ã—ãªã„å ´åˆã¯getterã‚„
+setterã«0を指定ã—ã¾ã™ï¼Ž
+# getterã‚‚setterã‚‚0ãªã‚‰ã°rb_define_variable()ã¨åŒã˜ã«ãªã‚‹ï¼Ž
+
+getterã¨setterã®ä»•æ§˜ã¯æ¬¡ã®é€šã‚Šã§ã™ï¼Ž
-# getter¤âsetter¤â0¤Ê¤é¤Ðrb_define_variable()¤ÈƱ¤¸¤Ë¤Ê¤ë¡¥
+ VALUE (*getter)(ID id, VALUE *var);
+ void (*setter)(VALUE val, ID id, VALUE *var);
-¤½¤ì¤«¤é¡¤C¤Î´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRuby¤ÎÂç°èÊÑ¿ô¤òÄêµÁ¤¹¤ë
-´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥
+
+ãれã‹ã‚‰ï¼Œå¯¾å¿œã™ã‚‹Cã®å¤‰æ•°ã‚’æŒãŸãªã„Rubyã®å¤§åŸŸå¤‰æ•°ã‚’定義ã™ã‚‹
+ã“ã¨ã‚‚ã§ãã¾ã™. ãã®å¤‰æ•°ã®å€¤ã¯ãƒ•ック関数ã®ã¿ã«ã‚ˆã£ã¦å–得・設定
+ã•れã¾ã™.
void rb_define_virtual_variable(const char *name,
VALUE (*getter)(), void (*setter)())
-¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤¿Ruby¤ÎÂç°èÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï
-getter¤¬¡¤ÊÑ¿ô¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì¤Þ¤¹¡¥
+ã“ã®é–¢æ•°ã«ã‚ˆã£ã¦å®šç¾©ã•れãŸRubyã®å¤§åŸŸå¤‰æ•°ãŒå‚ç…§ã•ã‚ŒãŸæ™‚ã«ã¯
+getterãŒï¼Œå¤‰æ•°ã«å€¤ãŒã‚»ãƒƒãƒˆã•ã‚ŒãŸæ™‚ã«ã¯setterãŒå‘¼ã°ã‚Œã¾ã™ï¼Ž
+
+getterã¨setterã®ä»•様ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ï¼Ž
-getter¤Èsetter¤Î»ÅÍͤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡¥
+ (*getter)(ID id);
+ (*setter)(VALUE val, ID id);
- (*getter)(ID id, void *data, struct global_entry* entry);
- (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);
+== Cã®ãƒ‡ãƒ¼ã‚¿ã‚’Rubyオブジェクトã«ã™ã‚‹
-3.3 C¤Î¥Ç¡¼¥¿¤òRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤¹¤ë
+Cã®ä¸–界ã§å®šç¾©ã•れãŸãƒ‡ãƒ¼ã‚¿(構造体)ã‚’Rubyã®ã‚ªãƒ–ジェクトã¨ã—ã¦
+å–り扱ã„ãŸã„å ´åˆãŒã‚りãˆã¾ã™ï¼Žã“ã®ã‚ˆã†ãªå ´åˆã«ã¯ï¼ŒDataã¨ã„ã†
+Rubyオブジェクトã«Cã®æ§‹é€ ä½“(ã¸ã®ãƒã‚¤ãƒ³ã‚¿)ã‚’ãã‚‹ã‚€ã“ã¨ã§Ruby
+オブジェクトã¨ã—ã¦å–り扱ãˆã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ï¼Ž
-C¤ÎÀ¤³¦¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¡¼¥¿(¹½Â¤ÂÎ)¤òRuby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ
-¼è¤ê°·¤¤¤¿¤¤¾ì¹ç¤¬¤¢¤ê¤¨¤Þ¤¹¡¥¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¤Data¤È¤¤¤¦
-Ruby¥ª¥Ö¥¸¥§¥¯¥È¤ËC¤Î¹½Â¤ÂÎ(¤Ø¤Î¥Ý¥¤¥ó¥¿)¤ò¤¯¤ë¤à¤³¤È¤ÇRuby
-¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¼è¤ê°·¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥
+Dataオブジェクトを生æˆã—ã¦æ§‹é€ ä½“ã‚’Rubyオブジェクトã«ã‚«ãƒ—セル
+化ã™ã‚‹ãŸã‚ã«ã¯ï¼Œä»¥ä¸‹ã®ãƒžã‚¯ãƒ­ã‚’使ã„ã¾ã™ï¼Ž
-Data¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Æ¹½Â¤ÂΤòRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥«¥×¥»¥ë
-²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥
+ Data_Wrap_Struct(klass, mark, free, sval)
- Data_Wrap_Struct(klass, mark, free, ptr)
+ã“ã®ãƒžã‚¯ãƒ­ã®æˆ»ã‚Šå€¤ã¯ç”Ÿæˆã•れãŸDataオブジェクトã§ã™ï¼Ž
-¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃͤÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥
+klassã¯ã“ã®Dataオブジェクトã®ã‚¯ãƒ©ã‚¹ã§ã™ï¼Žmarkã¯ã“ã®æ§‹é€ ä½“ãŒ
+Rubyã®ã‚ªãƒ–ジェクトã¸ã®å‚ç…§ãŒã‚る時ã«ä½¿ã†é–¢æ•°ã§ã™ï¼Žãã®ã‚ˆã†ãª
+å‚ç…§ã‚’å«ã¾ãªã„時ã«ã¯0を指定ã—ã¾ã™ï¼Ž
-klass¤Ï¤³¤ÎData¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¯¥é¥¹¤Ç¤¹¡¥ptr¤Ï¥«¥×¥»¥ë²½¤¹¤ë
-C¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¹¡¥mark¤Ï¤³¤Î¹½Â¤ÂΤ¬Ruby¤Î¥ª¥Ö¥¸¥§
-¥¯¥È¤Ø¤Î»²¾È¤¬¤¢¤ë»þ¤Ë»È¤¦´Ø¿ô¤Ç¤¹¡¥¤½¤Î¤è¤¦¤Ê»²¾È¤ò´Þ¤Þ¤Ê¤¤
-»þ¤Ë¤Ï0¤ò»ØÄꤷ¤Þ¤¹¡¥
+# ãã®ã‚ˆã†ãªå‚ç…§ã¯å‹§ã‚られã¾ã›ã‚“.
-# ¤½¤Î¤è¤¦¤Ê»²¾È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥
+freeã¯ã“ã®æ§‹é€ ä½“ãŒã‚‚ã†ä¸è¦ã«ãªã£ãŸæ™‚ã«å‘¼ã°ã‚Œã‚‹é–¢æ•°ã§ã™ï¼Žã“ã®
+関数ãŒã‚¬ãƒ¼ãƒ™ãƒ¼ã‚¸ã‚³ãƒ¬ã‚¯ã‚¿ã‹ã‚‰å‘¼ã°ã‚Œã¾ã™ï¼Žã“れãŒ-1ã®å ´åˆã¯ï¼Œå˜
+ç´”ã«é–‹æ”¾ã•れã¾ã™ï¼Ž
-free¤Ï¤³¤Î¹½Â¤ÂΤ¬¤â¤¦ÉÔÍפˤʤä¿»þ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤Ç¤¹¡¥¤³¤Î
-´Ø¿ô¤¬¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤«¤é¸Æ¤Ð¤ì¤Þ¤¹¡¥¤³¤ì¤¬-1¤Î¾ì¹ç¤Ï¡¤Ã±
-½ã¤Ë³«Êü¤µ¤ì¤Þ¤¹¡¥
+markãŠã‚ˆã³free関数ã¯GC実行中ã«å‘¼ã³å‡ºã•れã¾ã™.
+ãªãŠ, GC実行中ã¯Rubyオブジェクトã®ã‚¢ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã¯ç¦æ­¢ã•れã¾
+ã™. よã£ã¦, markãŠã‚ˆã³free関数ã§Rubyオブジェクトã®ã‚¢ãƒ­ã‚±ãƒ¼ã‚·
+ョンã¯è¡Œã‚ãªã„ã§ãã ã•ã„.
-C¤Î¹½Â¤ÂΤγäÅö¤ÈData¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤òƱ»þ¤Ë¹Ô¤¦¥Þ¥¯¥í¤È
-¤·¤Æ°Ê²¼¤Î¤â¤Î¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+Cã®æ§‹é€ ä½“ã®å‰²å½“ã¨Dataオブジェクトã®ç”Ÿæˆã‚’åŒæ™‚ã«è¡Œã†ãƒžã‚¯ãƒ­ã¨
+ã—ã¦ä»¥ä¸‹ã®ã‚‚ã®ãŒæä¾›ã•れã¦ã„ã¾ã™ï¼Ž
Data_Make_Struct(klass, type, mark, free, sval)
-¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃͤÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥
+ã“ã®ãƒžã‚¯ãƒ­ã®æˆ»ã‚Šå€¤ã¯ç”Ÿæˆã•れãŸDataオブジェクトã§ã™ï¼Žã“ã®ãƒžã‚¯
+ロã¯ä»¥ä¸‹ã®å¼ã®ã‚ˆã†ã«åƒãã¾ã™:
-klass, mark, free¤ÏData_Wrap_Struct¤ÈƱ¤¸Æ¯¤­¤ò¤·¤Þ¤¹¡¥type
-¤Ï³ä¤êÅö¤Æ¤ëC¹½Â¤ÂΤη¿¤Ç¤¹¡¥³ä¤êÅö¤Æ¤é¤ì¤¿¹½Â¤ÂΤÏÊÑ¿ôsval
-¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤Î·¿¤Ï (type*) ¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
+ (sval = ALLOC(type), Data_Wrap_Struct(klass, mark, free, sval))
-Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤Î¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤òÍѤ¤
-¤Þ¤¹¡¥
+klass, mark, freeã¯Data_Wrap_Structã¨åŒã˜åƒãã‚’ã—ã¾ã™ï¼Žtype
+ã¯å‰²ã‚Šå½“ã¦ã‚‹C構造体ã®åž‹ã§ã™ï¼Žå‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸæ§‹é€ ä½“ã¯å¤‰æ•°sval
+ã«ä»£å…¥ã•れã¾ã™ï¼Žã“ã®å¤‰æ•°ã®åž‹ã¯ (type*) ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼Ž
+
+Dataオブジェクトã‹ã‚‰ãƒã‚¤ãƒ³ã‚¿ã‚’å–り出ã™ã®ã¯ä»¥ä¸‹ã®ãƒžã‚¯ãƒ­ã‚’用ã„
+ã¾ã™ï¼Ž
Data_Get_Struct(obj, type, sval)
-C¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ÏÊÑ¿ôsval¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥
+Cã®æ§‹é€ ä½“ã¸ã®ãƒã‚¤ãƒ³ã‚¿ã¯å¤‰æ•°svalã«ä»£å…¥ã•れã¾ã™ï¼Ž
-¤³¤ì¤é¤ÎData¤Î»È¤¤Êý¤Ï¤Á¤ç¤Ã¤Èʬ¤«¤ê¤Ë¤¯¤¤¤Î¤Ç¡¤¸å¤ÇÀâÌÀ¤¹¤ë
-ÎãÂê¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥
+ã“れらã®Dataã®ä½¿ã„æ–¹ã¯ã¡ã‚‡ã£ã¨åˆ†ã‹ã‚Šã«ãã„ã®ã§ï¼Œå¾Œã§èª¬æ˜Žã™ã‚‹
+例題をå‚ç…§ã—ã¦ãã ã•ã„.
-4¡¥ÎãÂê - dbm¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë
+= 例題 - dbmパッケージを作る
-¤³¤³¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤È¤ê¤¢¤¨¤º³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ïºî¤ì¤ë¤Ï¤º¤Ç¤¹¡¥
-Ruby¤Îext¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤Ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëdbm¥é¥¤¥Ö¥é¥ê¤òÎã¤Ë
-¤·¤ÆÃʳ¬Åª¤ËÀâÌÀ¤·¤Þ¤¹¡¥
+ã“ã“ã¾ã§ã®èª¬æ˜Žã§ã¨ã‚Šã‚ãˆãšæ‹¡å¼µãƒ©ã‚¤ãƒ–ãƒ©ãƒªã¯ä½œã‚Œã‚‹ã¯ãšã§ã™ï¼Ž
+Rubyã®extディレクトリã«ã™ã§ã«å«ã¾ã‚Œã¦ã„ã‚‹dbmライブラリを例ã«
+ã—ã¦æ®µéšŽçš„ã«èª¬æ˜Žã—ã¾ã™ï¼Ž
-(1) ¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ë
+== ディレクトリを作る
% mkdir ext/dbm
-Ruby 1.1¤«¤é¤ÏǤ°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºî
-¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡¥Ruby¤ËÀÅŪ¤Ë¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Ë
-¤ÏRuby¤òŸ³«¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¡¤ext¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë³ÈÄ¥
-¥é¥¤¥Ö¥é¥êÍѤΥǥ£¥ì¥¯¥È¥ê¤òºî¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥Ì¾Á°¤ÏŬÅö¤Ë
-Áª¤ó¤Ç¹½¤¤¤Þ¤»¤ó¡¥
-
-(2) À߷פ¹¤ë
-
-¤Þ¤¢¡¤ÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¤¤É¤¦¤¤¤¦µ¡Ç½¤ò¼Â¸½¤¹¤ë¤«¤É¤¦¤«¤Þ¤ºÀß
-·×¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¤É¤ó¤Ê¥¯¥é¥¹¤ò¤Ä¤¯¤ë¤«¡¤¤½¤Î¥¯¥é¥¹¤Ë¤Ï
-¤É¤ó¤Ê¥á¥½¥Ã¥É¤¬¤¢¤ë¤«¡¤¥¯¥é¥¹¤¬Ä󶡤¹¤ëÄê¿ô¤Ê¤É¤Ë¤Ä¤¤¤ÆÀß·×
-¤·¤Þ¤¹¡¥
-
-(3) C¥³¡¼¥É¤ò½ñ¤¯
-
-³ÈÄ¥¥é¥¤¥Ö¥é¥êËÜÂΤȤʤëC¸À¸ì¤Î¥½¡¼¥¹¤ò½ñ¤­¤Þ¤¹¡¥C¸À¸ì¤Î¥½¡¼
-¥¹¤¬¤Ò¤È¤Ä¤Î»þ¤Ë¤Ï¡Ö¥é¥¤¥Ö¥é¥ê̾.c¡×¤òÁª¤Ö¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡¥C
-¸À¸ì¤Î¥½¡¼¥¹¤¬Ê£¿ô¤Î¾ì¹ç¤Ë¤ÏµÕ¤Ë¡Ö¥é¥¤¥Ö¥é¥ê̾.c¡×¤È¤¤¤¦¥Õ¥¡
-¥¤¥ë̾¤ÏÈò¤±¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¥â¥¸¥å¡¼
-¥ëÀ¸À®»þ¤ËÃæ´ÖŪ¤ËÀ¸À®¤µ¤ì¤ë¡Ö¥é¥¤¥Ö¥é¥ê̾.o¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë
-¤È¤¬¾×ÆÍ¤¹¤ë¤«¤é¤Ç¤¹¡¥
-
-Ruby¤Ï³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë»þ¤Ë¡ÖInit_¥é¥¤¥Ö¥é¥ê̾¡×¤È
-¤¤¤¦´Ø¿ô¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Þ¤¹¡¥dbm¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¡ÖInit_dbm¡×
-¤Ç¤¹¡¥¤³¤Î´Ø¿ô¤ÎÃæ¤Ç¥¯¥é¥¹¡¤¥â¥¸¥å¡¼¥ë¡¤¥á¥½¥Ã¥É¡¤Äê¿ô¤Ê¤É¤Î
-ÄêµÁ¤ò¹Ô¤¤¤Þ¤¹¡¥dbm.c¤«¤é°ìÉô°úÍѤ·¤Þ¤¹¡¥
-
---
-Init_dbm()
-{
- /* DBM¥¯¥é¥¹¤òÄêµÁ¤¹¤ë */
- cDBM = rb_define_class("DBM", rb_cObject);
- /* DBM¤ÏEnumerate¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë */
- rb_include_module(cDBM, rb_mEnumerable);
-
- /* DBM¥¯¥é¥¹¤Î¥¯¥é¥¹¥á¥½¥Ã¥Éopen(): °ú¿ô¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë */
- rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);
-
- /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥Éclose(): °ú¿ô¤Ï¤Ê¤· */
- rb_define_method(cDBM, "close", fdbm_close, 0);
- /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥É[]: °ú¿ô¤Ï1¸Ä */
- rb_define_method(cDBM, "[]", fdbm_fetch, 1);
- :
-
- /* DBM¥Ç¡¼¥¿¤ò³ÊǼ¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô̾¤Î¤¿¤á¤ÎID */
- id_dbm = rb_intern("dbm");
-}
---
-
-DBM¥é¥¤¥Ö¥é¥ê¤Ïdbm¤Î¥Ç¡¼¥¿¤ÈÂбþ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ë¤Ï¤º¤Ç
-¤¹¤«¤é¡¤C¤ÎÀ¤³¦¤Îdbm¤òRuby¤ÎÀ¤³¦¤Ë¼è¤ê¹þ¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
-
-
-dbm.c¤Ç¤ÏData_Make_Struct¤ò°Ê²¼¤Î¤è¤¦¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹¡¥
-
---
-struct dbmdata {
- int di_size;
- DBM *di_dbm;
-};
-
-
-obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);
---
-
-¤³¤³¤Ç¤Ïdbmstruct¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òData¤Ë¥«¥×¥»¥ë²½¤·¤Æ¤¤
-¤Þ¤¹¡¥DBM*¤òľÀÜ¥«¥×¥»¥ë²½¤·¤Ê¤¤¤Î¤Ïclose()¤·¤¿»þ¤Î½èÍý¤ò¹Í
-¤¨¤Æ¤Î¤³¤È¤Ç¤¹¡¥
-
-Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤édbmstruct¹½Â¤ÂΤΥݥ¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á
-¤Ë°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡¥
-
---
-#define GetDBM(obj, dbmp) {\
- Data_Get_Struct(obj, struct dbmdata, dbmp);\
- if (dbmp->di_dbm == 0) closed_dbm();\
-}
---
-
-¤Á¤ç¤Ã¤ÈÊ£»¨¤Ê¥Þ¥¯¥í¤Ç¤¹¤¬¡¤Íפ¹¤ë¤Ëdbmdata¹½Â¤ÂΤΥݥ¤¥ó¥¿
-¤Î¼è¤ê½Ð¤·¤È¡¤close¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¤Þ¤È¤á¤Æ¤¤
-¤ë¤À¤±¤Ç¤¹¡¥
-
-DBM¥¯¥é¥¹¤Ë¤Ï¤¿¤¯¤µ¤ó¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¤¬¡¤Ê¬Îह¤ë¤È3¼ïÎà¤Î
-°ú¿ô¤Î¼õ¤±Êý¤¬¤¢¤ê¤Þ¤¹¡¥¤Ò¤È¤Ä¤Ï°ú¿ô¤Î¿ô¤¬¸ÇÄê¤Î¤â¤Î¤Ç¡¤Îã¤È
-¤·¤Æ¤Ïdelete¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¡¥delete¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ë
-fdbm_delete()¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
-
---
-static VALUE
-fdbm_delete(obj, keystr)
- VALUE obj, keystr;
-{
- :
-}
---
-
-°ú¿ô¤Î¿ô¤¬¸ÇÄê¤Î¥¿¥¤¥×¤ÏÂè1°ú¿ô¤¬self¡¤Âè2°ú¿ô°Ê¹ß¤¬¥á¥½¥Ã¥É
-¤Î°ú¿ô¤È¤Ê¤ê¤Þ¤¹¡¥
-
-°ú¿ô¤Î¿ô¤¬ÉÔÄê¤Î¤â¤Î¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë¤â¤Î¤ÈRuby¤ÎÇÛÎó¤Ç¼õ¤±
-¤ë¤â¤Î¤È¤¬¤¢¤ê¤Þ¤¹¡¥dbm¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ç¡¤C¤ÎÇÛÎó¤Ç¼õ¤±¤ë¤â¤Î
-¤ÏDBM¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¤Ç¤¢¤ëopen()¤Ç¤¹¡¥¤³¤ì¤ò¼ÂÁõ¤·¤Æ¤¤¤ë´Ø
-¿ôfdbm_s_open()¤Ï¤³¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
-
---
-static VALUE
-fdbm_s_open(argc, argv, klass)
- int argc;
- VALUE *argv;
- VALUE klass;
-{
- :
- if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
- mode = 0666; /* default value */
- }
- :
-}
---
-
-¤³¤Î¥¿¥¤¥×¤Î´Ø¿ô¤ÏÂè1°ú¿ô¤¬Í¿¤¨¤é¤ì¤¿°ú¿ô¤Î¿ô¡¤Âè2°ú¿ô¤¬Í¿¤¨
-¤é¤ì¤¿°ú¿ô¤ÎÆþ¤Ã¤Æ¤¤¤ëÇÛÎó¤Ë¤Ê¤ê¤Þ¤¹¡¥self¤ÏÂè3°ú¿ô¤È¤·¤ÆÍ¿
-¤¨¤é¤ì¤Þ¤¹¡¥
-
-¤³¤ÎÇÛÎó¤ÇÍ¿¤¨¤é¤ì¤¿°ú¿ô¤ò²òÀϤ¹¤ë¤¿¤á¤Î´Ø¿ô¤¬open()¤Ç¤â»È¤ï
-¤ì¤Æ¤¤¤ërb_scan_args()¤Ç¤¹¡¥Âè3°ú¿ô¤Ë»ØÄꤷ¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë
-½¾¤¤¡¤Âè4ÊÑ¿ô°Ê¹ß¤Ë»ØÄꤷ¤¿ÊÑ¿ô¤ËÃͤòÂåÆþ¤·¤Æ¤¯¤ì¤Þ¤¹¡¥¤³¤Î
-¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¤Âè1ʸ»úÌܤ¬¾Êά¤Ç¤­¤Ê¤¤°ú¿ô¤Î¿ô¡¤Âè2ʸ»úÌܤ¬
-¾Êά¤Ç¤­¤ë°ú¿ô¤Î¿ô¡¤Âè3ʸ»úÌܤ¬Âбþ¤¹¤ëÁê¼ê¤¬Ìµ¤¤¤¢¤Þ¤ê¤Î°ú
-¿ô¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¼¨¤¹"*"¤Ç¤¹¡¥2ʸ»úÌܤÈ3ʸ»úÌܤϾÊά¤Ç¤­¤Þ
-¤¹¡¥dbm.c¤ÎÎã¤Ç¤Ï¡¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï"11"¤Ç¤¹¤«¤é¡¤°ú¿ô¤ÏºÇÄã1¤Ä
-¤Ç¡¤2¤Ä¤Þ¤Çµö¤µ¤ì¤ë¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡¥¾Êά¤µ¤ì¤Æ¤¤¤ë»þ¤Î
-ÊÑ¿ô¤ÎÃͤÏnil(C¸À¸ì¤Î¥ì¥Ù¥ë¤Ç¤ÏQnil)¤Ë¤Ê¤ê¤Þ¤¹¡¥
-
-Ruby¤ÎÇÛÎó¤Ç°ú¿ô¤ò¼õ¤±¼è¤ë¤â¤Î¤Ïindexes¤¬¤¢¤ê¤Þ¤¹¡¥¼ÂÁõ¤Ï¤³
-¤¦¤Ç¤¹¡¥
-
---
-static VALUE
-fdbm_indexes(obj, args)
- VALUE obj, args;
-{
- :
-}
---
-
-Âè1°ú¿ô¤Ïself¡¤Âè2°ú¿ô¤ÏRuby¤ÎÇÛÎó¤Ç¤¹¡¥
-
-** Ãí°Õ»ö¹à
-
-Ruby¤È¶¦Í­¤Ï¤·¤Ê¤¤¤¬Ruby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò³ÊǼ¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë
-C¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤ÆRuby¥¤¥ó¥¿¥×¥ê¥¿¤ËÊÑ¿ô¤Î¸ºß
-¤ò¶µ¤¨¤Æ¤¢¤²¤Æ¤¯¤À¤µ¤¤¡¥¤Ç¤Ê¤¤¤ÈGC¤Ç¥È¥é¥Ö¥ë¤òµ¯¤³¤·¤Þ¤¹¡¥
+Ruby 1.1ã‹ã‚‰ã¯ä»»æ„ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ©ã‚¤ãƒ–ラリを作
+ã‚‹ã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã—ãŸï¼ŽRubyã«é™çš„ã«ãƒªãƒ³ã‚¯ã™ã‚‹å ´åˆã«
+ã¯Rubyを展開ã—ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ä¸‹ï¼Œextディレクトリã®ä¸­ã«æ‹¡å¼µ
+ライブラリ用ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’作る必è¦ãŒã‚りã¾ã™ï¼Žåå‰ã¯é©å½“ã«
+é¸ã‚“ã§æ§‹ã„ã¾ã›ã‚“.
+
+== 設計ã™ã‚‹
+
+ã¾ã‚,当然ãªã‚“ã§ã™ã‘ã©ï¼Œã©ã†ã„ã†æ©Ÿèƒ½ã‚’実ç¾ã™ã‚‹ã‹ã©ã†ã‹ã¾ãšè¨­
+計ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼Žã©ã‚“ãªã‚¯ãƒ©ã‚¹ã‚’ã¤ãã‚‹ã‹ï¼Œãã®ã‚¯ãƒ©ã‚¹ã«ã¯
+ã©ã‚“ãªãƒ¡ã‚½ãƒƒãƒ‰ãŒã‚ã‚‹ã‹ï¼Œã‚¯ãƒ©ã‚¹ãŒæä¾›ã™ã‚‹å®šæ•°ãªã©ã«ã¤ã„ã¦è¨­è¨ˆ
+ã—ã¾ã™ï¼Ž
+
+== Cコードを書ã
+
+拡張ライブラリ本体ã¨ãªã‚‹C言語ã®ã‚½ãƒ¼ã‚¹ã‚’書ãã¾ã™ï¼ŽC言語ã®ã‚½ãƒ¼
+スãŒã²ã¨ã¤ã®æ™‚ã«ã¯ã€Œãƒ©ã‚¤ãƒ–ラリå.cã€ã‚’é¸ã¶ã¨è‰¯ã„ã§ã—ょã†ï¼ŽC
+言語ã®ã‚½ãƒ¼ã‚¹ãŒè¤‡æ•°ã®å ´åˆã«ã¯é€†ã«ã€Œãƒ©ã‚¤ãƒ–ラリå.cã€ã¨ã„ã†ãƒ•ã‚¡
+イルåã¯é¿ã‘ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼Žã‚ªãƒ–ジェクトファイルã¨ãƒ¢ã‚¸ãƒ¥ãƒ¼
+ãƒ«ç”Ÿæˆæ™‚ã«ä¸­é–“çš„ã«ç”Ÿæˆã•れる「ライブラリå.oã€ã¨ã„ã†ãƒ•ァイル
+ã¨ãŒè¡çªã™ã‚‹ã‹ã‚‰ã§ã™ï¼Žã¾ãŸï¼Œå¾Œè¿°ã™ã‚‹ mkmf ライブラリã®ã„ãã¤
+ã‹ã®é–¢æ•°ãŒã‚³ãƒ³ãƒ‘イルをè¦ã™ã‚‹ãƒ†ã‚¹ãƒˆã®ãŸã‚ã«ã€Œconftest.cã€ã¨ã„
+ã†ãƒ•ァイルåを使用ã™ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„.ソースファイル
+åã¨ã—ã¦ã€Œconftest.cã€ã‚’使用ã—ã¦ã¯ãªã‚Šã¾ã›ã‚“.
+
+Rubyã¯æ‹¡å¼µãƒ©ã‚¤ãƒ–ラリをロードã™ã‚‹æ™‚ã«ã€ŒInit_ライブラリåã€ã¨
+ã„ã†é–¢æ•°ã‚’自動的ã«å®Ÿè¡Œã—ã¾ã™ï¼Ždbmライブラリã®å ´åˆã€ŒInit_dbmã€
+ã§ã™ï¼Žã“ã®é–¢æ•°ã®ä¸­ã§ã‚¯ãƒ©ã‚¹ï¼Œãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ï¼Œãƒ¡ã‚½ãƒƒãƒ‰ï¼Œå®šæ•°ãªã©ã®
+定義を行ã„ã¾ã™ï¼Ždbm.cã‹ã‚‰ä¸€éƒ¨å¼•用ã—ã¾ã™ï¼Ž
+
+ void
+ Init_dbm(void)
+ {
+ /* DBMクラスを定義ã™ã‚‹ */
+ cDBM = rb_define_class("DBM", rb_cObject);
+ /* DBMã¯Enumerateモジュールをインクルードã™ã‚‹ */
+ rb_include_module(cDBM, rb_mEnumerable);
+
+ /* DBMクラスã®ã‚¯ãƒ©ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰open(): 引数ã¯Cã®é…列ã§å—ã‘ã‚‹ */
+ rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);
+
+ /* DBMクラスã®ãƒ¡ã‚½ãƒƒãƒ‰close(): 引数ã¯ãªã— */
+ rb_define_method(cDBM, "close", fdbm_close, 0);
+ /* DBMクラスã®ãƒ¡ã‚½ãƒƒãƒ‰[]: 引数ã¯1個 */
+ rb_define_method(cDBM, "[]", fdbm_fetch, 1);
+
+ /* ... */
+
+ /* DBMデータを格ç´ã™ã‚‹ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°åã®ãŸã‚ã®ID */
+ id_dbm = rb_intern("dbm");
+ }
+
+DBMライブラリã¯dbmã®ãƒ‡ãƒ¼ã‚¿ã¨å¯¾å¿œã™ã‚‹ã‚ªãƒ–ジェクトã«ãªã‚‹ã¯ãšã§
+ã™ã‹ã‚‰ï¼ŒCã®ä¸–界ã®dbmã‚’Rubyã®ä¸–界ã«å–り込む必è¦ãŒã‚りã¾ã™ï¼Ž
+
+dbm.cã§ã¯Data_Make_Structを以下ã®ã‚ˆã†ã«ä½¿ã£ã¦ã„ã¾ã™ï¼Ž
+
+ struct dbmdata {
+ int di_size;
+ DBM *di_dbm;
+ };
+
+
+ obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);
+
+ã“ã“ã§ã¯dbmstruct構造体ã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‚’Dataã«ã‚«ãƒ—セル化ã—ã¦ã„
+ã¾ã™ï¼ŽDBM*を直接カプセル化ã—ãªã„ã®ã¯close()ã—ãŸæ™‚ã®å‡¦ç†ã‚’考
+ãˆã¦ã®ã“ã¨ã§ã™ï¼Ž
+
+Dataオブジェクトã‹ã‚‰dbmstruct構造体ã®ãƒã‚¤ãƒ³ã‚¿ã‚’å–り出ã™ãŸã‚
+ã«ä»¥ä¸‹ã®ãƒžã‚¯ãƒ­ã‚’使ã£ã¦ã„ã¾ã™ï¼Ž
+
+ #define GetDBM(obj, dbmp) {\
+ Data_Get_Struct(obj, struct dbmdata, dbmp);\
+ if (dbmp->di_dbm == 0) closed_dbm();\
+ }
+
+ã¡ã‚‡ã£ã¨è¤‡é›‘ãªãƒžã‚¯ãƒ­ã§ã™ãŒï¼Œè¦ã™ã‚‹ã«dbmdata構造体ã®ãƒã‚¤ãƒ³ã‚¿
+ã®å–り出ã—ã¨ï¼Œcloseã•れã¦ã„ã‚‹ã‹ã©ã†ã‹ã®ãƒã‚§ãƒƒã‚¯ã‚’ã¾ã¨ã‚ã¦ã„
+ã‚‹ã ã‘ã§ã™ï¼Ž
+
+DBMクラスã«ã¯ãŸãã•んメソッドãŒã‚りã¾ã™ãŒï¼Œåˆ†é¡žã™ã‚‹ã¨3種類ã®
+引数ã®å—ã‘æ–¹ãŒã‚りã¾ã™ï¼Žã²ã¨ã¤ã¯å¼•æ•°ã®æ•°ãŒå›ºå®šã®ã‚‚ã®ã§ï¼Œä¾‹ã¨
+ã—ã¦ã¯deleteメソッドãŒã‚りã¾ã™ï¼Ždeleteメソッドを実装ã—ã¦ã„ã‚‹
+fdbm_delete()ã¯ã“ã®ã‚ˆã†ã«ãªã£ã¦ã„ã¾ã™ï¼Ž
+
+ static VALUE
+ fdbm_delete(VALUE obj, VALUE keystr)
+ {
+ /* ... */
+ }
+
+å¼•æ•°ã®æ•°ãŒå›ºå®šã®ã‚¿ã‚¤ãƒ—ã¯ç¬¬1引数ãŒself,第2引数以é™ãŒãƒ¡ã‚½ãƒƒãƒ‰
+ã®å¼•æ•°ã¨ãªã‚Šã¾ã™ï¼Ž
+
+å¼•æ•°ã®æ•°ãŒä¸å®šã®ã‚‚ã®ã¯Cã®é…列ã§å—ã‘ã‚‹ã‚‚ã®ã¨Rubyã®é…列ã§å—ã‘
+ã‚‹ã‚‚ã®ã¨ãŒã‚りã¾ã™ï¼Ždbmライブラリã®ä¸­ã§ï¼ŒCã®é…列ã§å—ã‘ã‚‹ã‚‚ã®
+ã¯DBMã®ã‚¯ãƒ©ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã§ã‚ã‚‹open()ã§ã™ï¼Žã“れを実装ã—ã¦ã„ã‚‹é–¢
+æ•°fdbm_s_open()ã¯ã“ã†ãªã£ã¦ã„ã¾ã™ï¼Ž
+
+ static VALUE
+ fdbm_s_open(int argc, VALUE *argv, VALUE klass)
+ {
+ /* ... */
+
+ if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
+ mode = 0666; /* default value */
+ }
+
+ /* ... */
+ }
+
+ã“ã®ã‚¿ã‚¤ãƒ—ã®é–¢æ•°ã¯ç¬¬1引数ãŒä¸Žãˆã‚‰ã‚ŒãŸå¼•æ•°ã®æ•°ï¼Œç¬¬2引数ãŒä¸Žãˆ
+られãŸå¼•æ•°ã®å…¥ã£ã¦ã„ã‚‹é…列ã«ãªã‚Šã¾ã™ï¼Žselfã¯ç¬¬3引数ã¨ã—ã¦ä¸Ž
+ãˆã‚‰ã‚Œã¾ã™ï¼Ž
+
+ã“ã®é…列ã§ä¸Žãˆã‚‰ã‚ŒãŸå¼•æ•°ã‚’è§£æžã™ã‚‹ãŸã‚ã®é–¢æ•°ãŒopen()ã§ã‚‚使ã‚
+れã¦ã„ã‚‹rb_scan_args()ã§ã™ï¼Žç¬¬3å¼•æ•°ã«æŒ‡å®šã—ãŸãƒ•ォーマットã«å¾“
+ã„,第4変数以é™ã«æŒ‡å®šã—ãŸVALUEã¸ã®å‚ç…§ã«å€¤ã‚’代入ã—ã¦ãれã¾
+ã™ï¼Ž
+
+
+引数をRubyã®é…列ã¨ã—ã¦å—ã‘å–るメソッドã®ä¾‹ã«ã¯
+Thread#initializeãŒã‚りã¾ã™ï¼Žå®Ÿè£…ã¯ã“ã†ã§ã™ï¼Ž
+
+ static VALUE
+ thread_initialize(VALUE thread, VALUE args)
+ {
+ /* ... */
+ }
+
+第1引数ã¯self,第2引数ã¯Rubyã®é…列ã§ã™ï¼Ž
+
+*注æ„事項*
+
+Rubyã¨å…±æœ‰ã¯ã—ãªã„ãŒRubyã®ã‚ªãƒ–ジェクトを格ç´ã™ã‚‹å¯èƒ½æ€§ã®ã‚ã‚‹
+Cã®å¤§åŸŸå¤‰æ•°ã¯ä»¥ä¸‹ã®é–¢æ•°ã‚’使ã£ã¦Rubyインタプリタã«å¤‰æ•°ã®å­˜åœ¨
+ã‚’æ•™ãˆã¦ã‚ã’ã¦ãã ã•ã„.ã§ãªã„ã¨GCã§ãƒˆãƒ©ãƒ–ルを起ã“ã—ã¾ã™ï¼Ž
void rb_global_variable(VALUE *var)
-(4) extconf.rb¤òÍѰդ¹¤ë
+== extconf.rbを用æ„ã™ã‚‹
-Makefile¤òºî¤ë¾ì¹ç¤Î¿÷·¿¤Ë¤Ê¤ëextconf.rb¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òºî¤ê
-¤Þ¤¹¡¥extconf.rb¤Ï¥é¥¤¥Ö¥é¥ê¤Î¥³¥ó¥Ñ¥¤¥ë¤ËɬÍפʾò·ï¤Î¥Á¥§¥Ã
-¥¯¤Ê¤É¤ò¹Ô¤¦¤³¤È¤¬ÌÜŪ¤Ç¤¹¡¥¤Þ¤º¡¤
+Makefileを作る場åˆã®é››åž‹ã«ãªã‚‹extconf.rbã¨ã„ã†ãƒ•ァイルを作り
+ã¾ã™ï¼Žextconf.rbã¯ãƒ©ã‚¤ãƒ–ラリã®ã‚³ãƒ³ãƒ‘イルã«å¿…è¦ãªæ¡ä»¶ã®ãƒã‚§ãƒƒ
+クãªã©ã‚’行ã†ã“ã¨ãŒç›®çš„ã§ã™ï¼Žã¾ãšï¼Œ
require 'mkmf'
-¤òextconf.rb¤ÎÀèÆ¬¤ËÃÖ¤­¤Þ¤¹¡¥extconf.rb¤ÎÃæ¤Ç¤Ï°Ê²¼¤ÎRuby´Ø
-¿ô¤ò»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥
+ã‚’extconf.rbã®å…ˆé ­ã«ç½®ãã¾ã™ï¼Žextconf.rbã®ä¸­ã§ã¯ä»¥ä¸‹ã®Rubyé–¢
+数を使ã†ã“ã¨ãŒå‡ºæ¥ã¾ã™ï¼Ž
- have_library(lib, func): ¥é¥¤¥Ö¥é¥ê¤Î¸ºß¥Á¥§¥Ã¥¯
- have_func(func, header): ´Ø¿ô¤Î¸ºß¥Á¥§¥Ã¥¯
- have_header(header): ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¸ºß¥Á¥§¥Ã¥¯
- create_makefile(target): Makefile¤ÎÀ¸À®
+ have_library(lib, func): ライブラリã®å­˜åœ¨ãƒã‚§ãƒƒã‚¯
+ have_func(func, header): 関数ã®å­˜åœ¨ãƒã‚§ãƒƒã‚¯
+ have_header(header): ヘッダファイルã®å­˜åœ¨ãƒã‚§ãƒƒã‚¯
+ create_makefile(target[, target_prefix]): Makefileã®ç”Ÿæˆ
-°Ê²¼¤ÎÊÑ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+以下ã®å¤‰æ•°ã‚’使ã†ã“ã¨ãŒã§ãã¾ã™ï¼Ž
- $CFLAGS: ¥³¥ó¥Ñ¥¤¥ë»þ¤ËÄɲÃŪ¤Ë»ØÄꤹ¤ë¥Õ¥é¥°(-O¤Ê¤É)
- $CPPFLAGS: ¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÄɲÃŪ¤Ë»ØÄꤹ¤ë¥Õ¥é¥°(-I¤ä-D¤Ê¤É)
- $LDFLAGS: ¥ê¥ó¥¯»þ¤ËÄɲÃŪ¤Ë»ØÄꤹ¤ë¥Õ¥é¥°(-L¤Ê¤É)
- $objs: ¥ê¥ó¥¯¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë̾¤Î¥ê¥¹¥È
+ $CFLAGS: コンパイル時ã«è¿½åŠ çš„ã«æŒ‡å®šã™ã‚‹ãƒ•ラグ(-Oãªã©)
+ $CPPFLAGS: プリプロセッサã«è¿½åŠ çš„ã«æŒ‡å®šã™ã‚‹ãƒ•ラグ(-Iã‚„-Dãªã©)
+ $LDFLAGS: リンク時ã«è¿½åŠ çš„ã«æŒ‡å®šã™ã‚‹ãƒ•ラグ(-Lãªã©)
+ $objs: リンクã•れるオブジェクトファイルåã®ãƒªã‚¹ãƒˆ
-¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤Ï¡¢Ä̾ï¤Ï¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤·
-¤Æ¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤Þ¤¹¤¬¡¢make¤ÎÅÓÃæ¤Ç¥½¡¼¥¹¤òÀ¸À®¤¹¤ë¤è¤¦¤Ê
-¾ì¹ç¤ÏÌÀ¼¨Åª¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+オブジェクトファイルã®ãƒªã‚¹ãƒˆã¯ï¼Œé€šå¸¸ã¯ã‚½ãƒ¼ã‚¹ãƒ•ァイルを検索ã—
+ã¦è‡ªå‹•çš„ã«ç”Ÿæˆã•れã¾ã™ãŒï¼Œmakeã®é€”中ã§ã‚½ãƒ¼ã‚¹ã‚’生æˆã™ã‚‹ã‚ˆã†ãª
+å ´åˆã¯æ˜Žç¤ºçš„ã«æŒ‡å®šã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼Ž
-¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ò·ï¤¬Â·¤ï¤º¡¤¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó
-¥Ñ¥¤¥ë¤·¤Ê¤¤»þ¤Ë¤Ïcreate_makefile¤ò¸Æ¤Ð¤Ê¤±¤ì¤ÐMakefile¤ÏÀ¸
-À®¤µ¤ì¤º¡¤¥³¥ó¥Ñ¥¤¥ë¤â¹Ô¤ï¤ì¤Þ¤»¤ó¡¥
+ライブラリをコンパイルã™ã‚‹æ¡ä»¶ãŒæƒã‚ãšï¼Œãã®ãƒ©ã‚¤ãƒ–ラリをコン
+パイルã—ãªã„時ã«ã¯create_makefileを呼ã°ãªã‘れã°Makefileã¯ç”Ÿ
+æˆã•れãšï¼Œã‚³ãƒ³ãƒ‘イルも行ã‚れã¾ã›ã‚“.
-(5) depend¤òÍѰդ¹¤ë
+== dependを用æ„ã™ã‚‹
-¤â¤·¡¤¥Ç¥£¥ì¥¯¥È¥ê¤Ëdepend¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¤
-Makefile¤¬°Í¸´Ø·¸¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤ì¤Þ¤¹¡¥
+ã‚‚ã—,ディレクトリã«dependã¨ã„ã†ãƒ•ァイルãŒå­˜åœ¨ã™ã‚Œã°ï¼Œ
+MakefileãŒä¾å­˜é–¢ä¿‚ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãれã¾ã™ï¼Ž
% gcc -MM *.c > depend
-¤Ê¤É¤Çºî¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤¢¤Ã¤ÆÂ»¤Ï̵¤¤¤Ç¤·¤ç¤¦¡¥
+ãªã©ã§ä½œã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ï¼Žã‚ã£ã¦æã¯ç„¡ã„ã§ã—ょã†ï¼Ž
-(6) Makefile¤òÀ¸À®¤¹¤ë
+== Makefileを生æˆã™ã‚‹
-Makefile¤ò¼ÂºÝ¤ËÀ¸À®¤¹¤ë¤¿¤á¤Ë¤Ï
+Makefileを実際ã«ç”Ÿæˆã™ã‚‹ãŸã‚ã«ã¯
ruby extconf.rb
-¤È¤·¤Þ¤¹¡¥extconf.rb¤Ë require 'mkmf' ¤Î¹Ô¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼
-¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¤°ú¿ô¤òÄɲä·¤Æ
+ã¨ã—ã¾ã™ï¼Žextconf.rbã« require 'mkmf' ã®è¡ŒãŒãªã„å ´åˆã«ã¯ã‚¨ãƒ©ãƒ¼
+ã«ãªã‚Šã¾ã™ã®ã§ï¼Œå¼•数を追加ã—ã¦
ruby -r mkmf extconf.rb
-¤È¤·¤Æ¤¯¤À¤µ¤¤¡¥
+ã¨ã—ã¦ãã ã•ã„.
-¥Ç¥£¥ì¥¯¥È¥ê¤òext°Ê²¼¤ËÍѰդ·¤¿¾ì¹ç¤Ë¤ÏRubyÁ´ÂΤÎmake¤Î»þ¤Ë
-¼«Æ°Åª¤ËMakefile¤¬À¸À®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¤¤³¤Î¥¹¥Æ¥Ã¥×¤ÏÉÔÍפǤ¹¡¥
+site_ruby ディレクトリã§ãªã,
+vendor_ruby ディレクトリã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹å ´åˆã«ã¯
+以下ã®ã‚ˆã†ã« --vendor オプションを加ãˆã¦ãã ã•ã„.
-(7) make¤¹¤ë
+ ruby extconf.rb --vendor
-ưŪ¥ê¥ó¥¯¥é¥¤¥Ö¥é¥ê¤òÀ¸À®¤¹¤ë¾ì¹ç¤Ë¤Ï¤½¤Î¾ì¤Çmake¤·¤Æ¤¯¤À¤µ
-¤¤¡¥É¬ÍפǤ¢¤ì¤Ð make install ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡¥
+ディレクトリをext以下ã«ç”¨æ„ã—ãŸå ´åˆã«ã¯Ruby全体ã®makeã®æ™‚ã«
+自動的ã«MakefileãŒç”Ÿæˆã•れã¾ã™ã®ã§ï¼Œã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã¯ä¸è¦ã§ã™ï¼Ž
-ext°Ê²¼¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÍѰդ·¤¿¾ì¹ç¤Ï¡¤Ruby¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç
-make¤ò¼Â¹Ô¤¹¤ë¤ÈMakefile¤òÀ¸À®¤«¤émake¡¤É¬Íפˤè¤Ã¤Æ¤Ï¤½¤Î¥â
-¥¸¥å¡¼¥ë¤ÎRuby¤Ø¤Î¥ê¥ó¥¯¤Þ¤Ç¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Æ¤¯¤ì¤Þ¤¹¡¥
-extconf.rb¤ò½ñ¤­´¹¤¨¤ë¤Ê¤É¤·¤ÆMakefile¤ÎºÆÀ¸À®¤¬É¬Íפʻþ¤Ï¤Þ
-¤¿Ruby¥Ç¥£¥ì¥¯¥È¥ê¤Çmake¤·¤Æ¤¯¤À¤µ¤¤¡¥
+== makeã™ã‚‹
-³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ïmake install¤ÇRuby¥é¥¤¥Ö¥é¥ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î
-²¼¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤¹¡¥¤â¤·³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤È¶¨Ä´¤·¤Æ»È¤¦Ruby¤Çµ­
-½Ò¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¤¢¤ê¡¤Ruby¥é¥¤¥Ö¥é¥ê¤ËÃÖ¤­¤¿¤¤¾ì¹ç¤Ë¤Ï¡¤
-³ÈÄ¥¥é¥¤¥Ö¥é¥êÍѤΥǥ£¥ì¥¯¥È¥ê¤Î²¼¤Ë lib ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê
-¤òºî¤ê¡¤¤½¤³¤Ë ³ÈÄ¥»Ò .rb ¤Î¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤ª¤±¤ÐƱ»þ¤Ë¥¤¥ó
-¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡¥
+動的リンクライブラリを生æˆã™ã‚‹å ´åˆã«ã¯ãã®å ´ã§makeã—ã¦ãã ã•
+ã„.必è¦ã§ã‚れ㰠make install ã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¾ã™ï¼Ž
-(8) ¥Ç¥Ð¥Ã¥°
+ext以下ã«ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’用æ„ã—ãŸå ´åˆã¯ï¼ŒRubyã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§
+makeを実行ã™ã‚‹ã¨Makefileを生æˆã‹ã‚‰make,必è¦ã«ã‚ˆã£ã¦ã¯ãã®ãƒ¢
+ジュールã®Rubyã¸ã®ãƒªãƒ³ã‚¯ã¾ã§è‡ªå‹•çš„ã«å®Ÿè¡Œã—ã¦ãれã¾ã™ï¼Ž
+extconf.rbã‚’æ›¸ãæ›ãˆã‚‹ãªã©ã—ã¦Makefileã®å†ç”ŸæˆãŒå¿…è¦ãªæ™‚ã¯ã¾
+ãŸRubyディレクトリã§makeã—ã¦ãã ã•ã„.
-¤Þ¤¢¡¤¥Ç¥Ð¥Ã¥°¤·¤Ê¤¤¤Èư¤«¤Ê¤¤¤Ç¤·¤ç¤¦¤Í¡¥ext/Setup¤Ë¥Ç¥£¥ì
-¥¯¥È¥ê̾¤ò½ñ¤¯¤ÈÀÅŪ¤Ë¥ê¥ó¥¯¤¹¤ë¤Î¤Ç¥Ç¥Ð¥Ã¥¬¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê
-¤ê¤Þ¤¹¡¥¤½¤Îʬ¥³¥ó¥Ñ¥¤¥ë¤¬ÃÙ¤¯¤Ê¤ê¤Þ¤¹¤±¤É¡¥
+拡張ライブラリã¯make installã§Rubyライブラリã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®
+下ã«ã‚³ãƒ”ーã•れã¾ã™ï¼Žã‚‚ã—æ‹¡å¼µãƒ©ã‚¤ãƒ–ラリã¨å”調ã—ã¦ä½¿ã†Rubyã§è¨˜
+è¿°ã•れãŸãƒ—ログラムãŒã‚り,Rubyライブラリã«ç½®ããŸã„å ´åˆã«ã¯ï¼Œ
+拡張ライブラリ用ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ä¸‹ã« lib ã¨ã„ã†ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª
+を作り,ãã“ã« æ‹¡å¼µå­ .rb ã®ãƒ•ァイルを置ã„ã¦ãŠã‘ã°åŒæ™‚ã«ã‚¤ãƒ³
+ストールã•れã¾ã™ï¼Ž
-(9) ¤Ç¤­¤¢¤¬¤ê
+== デãƒãƒƒã‚°
-¸å¤Ï¤³¤Ã¤½¤ê»È¤¦¤Ê¤ê¡¤¹­¤¯¸ø³«¤¹¤ë¤Ê¤ê¡¤Çä¤ë¤Ê¤ê¡¤¤´¼«Í³¤Ë¤ª
-»È¤¤¤¯¤À¤µ¤¤¡¥Ruby¤Îºî¼Ô¤Ï³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤·¤Æ°ìÀڤθ¢Íø¤ò
-¼çÄ¥¤·¤Þ¤»¤ó¡¥
+ã¾ã‚,デãƒãƒƒã‚°ã—ãªã„ã¨å‹•ã‹ãªã„ã§ã—ょã†ã­ï¼Žext/Setupã«ãƒ‡ã‚£ãƒ¬
+クトリåを書ãã¨é™çš„ã«ãƒªãƒ³ã‚¯ã™ã‚‹ã®ã§ãƒ‡ãƒãƒƒã‚¬ãŒä½¿ãˆã‚‹ã‚ˆã†ã«ãª
+りã¾ã™ï¼Žãã®åˆ†ã‚³ãƒ³ãƒ‘イルãŒé…ããªã‚Šã¾ã™ã‘ã©ï¼Ž
-Appendix A. Ruby¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎʬÎà
+== ã§ãã‚ãŒã‚Š
-Ruby¤Î¥½¡¼¥¹¤Ï¤¤¤¯¤Ä¤«¤ËʬÎह¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤³¤Î¤¦¤Á¥¯¥é
-¥¹¥é¥¤¥Ö¥é¥ê¤ÎÉôʬ¤Ï´ðËÜŪ¤Ë³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤ÈƱ¤¸ºî¤êÊý¤Ë¤Ê¤Ã
-¤Æ¤¤¤Þ¤¹¡¥¤³¤ì¤é¤Î¥½¡¼¥¹¤Ïº£¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤Û¤È¤ó¤ÉÍý²ò¤Ç¤­¤ë¤È
-»×¤¤¤Þ¤¹¡¥
+後ã¯ã“ã£ãり使ã†ãªã‚Šï¼Œåºƒã公開ã™ã‚‹ãªã‚Šï¼Œå£²ã‚‹ãªã‚Šï¼Œã”自由ã«ãŠ
+使ã„ãã ã•ã„.Rubyã®ä½œè€…ã¯æ‹¡å¼µãƒ©ã‚¤ãƒ–ラリã«é–¢ã—ã¦ä¸€åˆ‡ã®æ¨©åˆ©ã‚’
+主張ã—ã¾ã›ã‚“.
-Ruby¸À¸ì¤Î¥³¥¢
+= Appendix A. Rubyã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®åˆ†é¡ž
- class.c
- error.c
- eval.c
- gc.c
- object.c
- parse.y
- variable.c
+Rubyã®ã‚½ãƒ¼ã‚¹ã¯ã„ãã¤ã‹ã«åˆ†é¡žã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ï¼Žã“ã®ã†ã¡ã‚¯ãƒ©
+スライブラリã®éƒ¨åˆ†ã¯åŸºæœ¬çš„ã«æ‹¡å¼µãƒ©ã‚¤ãƒ–ラリã¨åŒã˜ä½œã‚Šæ–¹ã«ãªã£
+ã¦ã„ã¾ã™ï¼Žã“れらã®ã‚½ãƒ¼ã‚¹ã¯ä»Šã¾ã§ã®èª¬æ˜Žã§ã»ã¨ã‚“ã©ç†è§£ã§ãã‚‹ã¨
+æ€ã„ã¾ã™ï¼Ž
-¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô
+== Ruby言語ã®ã‚³ã‚¢
+
+class.c :: クラスã¨ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«
+error.c :: 例外クラスã¨ä¾‹å¤–機構
+gc.c :: 記憶領域管ç†
+load.c :: ライブラリã®ãƒ­ãƒ¼ãƒ‰
+object.c :: オブジェクト
+variable.c :: 変数ã¨å®šæ•°
+
+== Rubyã®æ§‹æ–‡è§£æžå™¨
+
+ parse.y : å­—å¥è§£æžå™¨ã¨æ§‹æ–‡å®šç¾©
+ -> parse.c : 自動生æˆ
+ keywords : 予約語
+ -> lex.c : 自動生æˆ
+
+== Rubyã®è©•価器 (通称YARV)
+ compile.c
+ eval.c
+ eval_error.c
+ eval_jump.c
+ eval_safe.c
+ insns.def : 仮想機械語ã®å®šç¾©
+ iseq.c : VM::ISeqã®å®Ÿè£…
+ thread.c : スレッド管ç†ã¨ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆåˆ‡ã‚Šæ›¿ãˆ
+ thread_win32.c : スレッド実装
+ thread_pthread.c : åŒä¸Š
+ vm.c
+ vm_dump.c
+ vm_eval.c
+ vm_exec.c
+ vm_insnhelper.c
+ vm_method.c
+
+ opt_insns_unif.def : 命令èžåˆ
+ opt_operand.def : 最é©åŒ–ã®ãŸã‚ã®å®šç¾©
+
+ -> insn*.inc : 自動生æˆ
+ -> opt*.inc : 自動生æˆ
+ -> vm.inc : 自動生æˆ
+
+== æ­£è¦è¡¨ç¾ã‚¨ãƒ³ã‚¸ãƒ³ (鬼車)
- dln.c
regex.c
- st.c
- util.c
+ regcomp.c
+ regenc.c
+ regerror.c
+ regexec.c
+ regparse.c
+ regsyntax.c
+
+== ユーティリティ関数
-Ruby¥³¥Þ¥ó¥É¤Î¼ÂÁõ
+debug.c :: Cデãƒãƒƒã‚¬ç”¨ã®ãƒ‡ãƒãƒƒã‚°ã‚·ãƒ³ãƒœãƒ«
+dln.c :: 動的ローディング
+st.c :: 汎用ãƒãƒƒã‚·ãƒ¥è¡¨
+strftime.c :: 時刻整形
+util.c :: ãã®ä»–ã®ãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£
+
+== Rubyコマンドã®å®Ÿè£…
dmyext.c
+ dmydln.c
+ dmyencoding.c
+ id.c
inits.c
main.c
ruby.c
version.c
-¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê
+ gem_prelude.rb
+ prelude.rb
+
+== クラスライブラリ
- array.c
- bignum.c
- compar.c
- dir.c
- enum.c
- file.c
- hash.c
- io.c
- marshal.c
- math.c
- numeric.c
- pack.c
- prec.c
- process.c
- random.c
- range.c
- re.c
- signal.c
- sprintf.c
- string.c
- struct.c
- time.c
+array.c :: Array
+bignum.c :: Bignum
+compar.c :: Comparable
+complex.c :: Complex
+cont.c :: Fiber, Continuation
+dir.c :: Dir
+enum.c :: Enumerable
+enumerator.c :: Enumerator
+file.c :: File
+hash.c :: Hash
+io.c :: IO
+marshal.c :: Marshal
+math.c :: Math
+numeric.c :: Numeric, Integer, Fixnum, Float
+pack.c :: Array#pack, String#unpack
+proc.c :: Binding, Proc
+process.c :: Process
+random.c :: 乱数
+range.c :: Range
+rational.c :: Rational
+re.c :: Regexp, MatchData
+signal.c :: Signal
+sprintf.c :: String#sprintf
+string.c :: String
+struct.c :: Struct
+time.c :: Time
+defs/known_errors.def :: 例外クラス Errno::*
+-> known_errors.inc :: 自動生æˆ
-Appendix B. ³ÈÄ¥ÍÑ´Ø¿ô¥ê¥Õ¥¡¥ì¥ó¥¹
+== 多言語化
-C¸À¸ì¤«¤éRuby¤Îµ¡Ç½¤òÍøÍѤ¹¤ëAPI¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡¥
+encoding.c :: Encoding
+transcode.c :: Encoding::Converter
+enc/*.c :: エンコーディングクラス群
+enc/trans/* :: コードãƒã‚¤ãƒ³ãƒˆå¯¾å¿œè¡¨
-** ·¿
+== gorubyコマンドã®å®Ÿè£…
-VALUE
+ goruby.c
+ golf_prelude.rb : goruby固有ã®ãƒ©ã‚¤ãƒ–ラリ
+ -> golf_prelude.c : 自動生æˆ
- Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òɽ¸½¤¹¤ë·¿¡¥É¬Íפ˱þ¤¸¤Æ¥­¥ã¥¹¥È¤·¤ÆÍѤ¤¤ë¡¥
- ÁȤ߹þ¤ß·¿¤òɽ¸½¤¹¤ëC¤Î·¿¤Ïruby.h¤Ëµ­½Ò¤·¤Æ¤¢¤ëR¤Ç»Ï¤Þ¤ë¹½Â¤
- ÂΤǤ¢¤ë¡¥VALUE·¿¤ò¤³¤ì¤é¤Ë¥­¥ã¥¹¥È¤¹¤ë¤¿¤á¤ËR¤Ç»Ï¤Þ¤ë¹½Â¤ÂÎ
- ̾¤òÁ´¤ÆÂçʸ»ú¤Ë¤·¤¿Ì¾Á°¤Î¥Þ¥¯¥í¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¡¥
+= Appendix B. 拡張用関数リファレンス
-** ÊÑ¿ô¡¦Äê¿ô
+C言語ã‹ã‚‰Rubyã®æ©Ÿèƒ½ã‚’利用ã™ã‚‹APIã¯ä»¥ä¸‹ã®é€šã‚Šã§ã‚る.
-Qnil
+== åž‹
- Äê¿ô: nil¥ª¥Ö¥¸¥§¥¯¥È
+VALUE ::
-Qtrue
+ Rubyオブジェクトを表ç¾ã™ã‚‹åž‹ï¼Žå¿…è¦ã«å¿œã˜ã¦ã‚­ãƒ£ã‚¹ãƒˆã—ã¦ç”¨ã„る.
+ 組ã¿è¾¼ã¿åž‹ã‚’表ç¾ã™ã‚‹Cã®åž‹ã¯ruby.hã«è¨˜è¿°ã—ã¦ã‚ã‚‹Rã§å§‹ã¾ã‚‹æ§‹é€ 
+ 体ã§ã‚る.VALUE型をã“れらã«ã‚­ãƒ£ã‚¹ãƒˆã™ã‚‹ãŸã‚ã«Rã§å§‹ã¾ã‚‹æ§‹é€ ä½“
+ åã‚’å…¨ã¦å¤§æ–‡å­—ã«ã—ãŸåå‰ã®ãƒžã‚¯ãƒ­ãŒç”¨æ„ã•れã¦ã„る.
- Äê¿ô: true¥ª¥Ö¥¸¥§¥¯¥È(¿¿¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ)
+== 変数・定数
-Qfalse
+Qnil ::
- Äê¿ô: false¥ª¥Ö¥¸¥§¥¯¥È
+ 定数: nilオブジェクト
-** C¥Ç¡¼¥¿¤Î¥«¥×¥»¥ë²½
+Qtrue ::
-Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)
+ 定数: trueオブジェクト(真ã®ãƒ‡ãƒ•ォルト値)
- C¤ÎǤ°Õ¤Î¥Ý¥¤¥ó¥¿¤ò¥«¥×¥»¥ë²½¤·¤¿Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¡¥¤³
- ¤Î¥Ý¥¤¥ó¥¿¤¬Ruby¤«¤é¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿»þ¡¤free¤Ç»ØÄꤷ¤¿
- ´Ø¿ô¤¬¸Æ¤Ð¤ì¤ë¡¥¤Þ¤¿¡¤¤³¤Î¥Ý¥¤¥ó¥¿¤Î»Ø¤¹¥Ç¡¼¥¿¤¬Â¾¤ÎRuby¥ª¥Ö
- ¥¸¥§¥¯¥È¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¡¤mark¤Ë»ØÄꤹ¤ë´Ø¿ô¤Ç¥Þ¡¼¥¯¤¹¤ëɬÍ×
- ¤¬¤¢¤ë¡¥
+Qfalse ::
-Data_Make_Struct(klass, type, mark, free, sval)
+ 定数: falseオブジェクト
- type·¿¤Î¥á¥â¥ê¤òmalloc¤·¡¤ÊÑ¿ôsval¤ËÂåÆþ¤·¤¿¸å¡¤¤½¤ì¤ò¥«¥×¥»
- ¥ë²½¤·¤¿¥Ç¡¼¥¿¤òÊÖ¤¹¥Þ¥¯¥í¡¥
+== Cデータã®ã‚«ãƒ—セル化
-Data_Get_Struct(data, type, sval)
+Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval) ::
- data¤«¤étype·¿¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤·ÊÑ¿ôsval¤ËÂåÆþ¤¹¤ë¥Þ¥¯¥í¡¥
+ Cã®ä»»æ„ã®ãƒã‚¤ãƒ³ã‚¿ã‚’カプセル化ã—ãŸRubyオブジェクトを返ã™ï¼Žã“
+ ã®ãƒã‚¤ãƒ³ã‚¿ãŒRubyã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã•れãªããªã£ãŸæ™‚,freeã§æŒ‡å®šã—ãŸ
+ 関数ãŒå‘¼ã°ã‚Œã‚‹ï¼Žã¾ãŸï¼Œã“ã®ãƒã‚¤ãƒ³ã‚¿ã®æŒ‡ã™ãƒ‡ãƒ¼ã‚¿ãŒä»–ã®Rubyオブ
+ ジェクトを指ã—ã¦ã„ã‚‹å ´åˆï¼Œmarkã«æŒ‡å®šã™ã‚‹é–¢æ•°ã§ãƒžãƒ¼ã‚¯ã™ã‚‹å¿…è¦
+ ãŒã‚る.
-** ·¿¥Á¥§¥Ã¥¯
+Data_Make_Struct(klass, type, mark, free, sval) ::
-TYPE(value)
-FIXNUM_P(value)
-NIL_P(value)
-void Check_Type(VALUE value, int type)
-void Check_SafeStr(VALUE value)
+ typeåž‹ã®ãƒ¡ãƒ¢ãƒªã‚’mallocã—,変数svalã«ä»£å…¥ã—ãŸå¾Œï¼Œãれをカプセ
+ ル化ã—ãŸãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã™ãƒžã‚¯ãƒ­ï¼Ž
-** ·¿ÊÑ´¹
+Data_Get_Struct(data, type, sval) ::
+
+ dataã‹ã‚‰typeåž‹ã®ãƒã‚¤ãƒ³ã‚¿ã‚’å–り出ã—変数svalã«ä»£å…¥ã™ã‚‹ãƒžã‚¯ãƒ­ï¼Ž
+
+== åž‹ãƒã‚§ãƒƒã‚¯
+
+ TYPE(value)
+ FIXNUM_P(value)
+ NIL_P(value)
+ void Check_Type(VALUE value, int type)
+ SafeStringValue(value)
-FIX2INT(value)
-INT2FIX(i)
-NUM2INT(value)
-INT2NUM(i)
-NUM2DBL(value)
-rb_float_new(f)
-StringValue(value)
-StringValuePtr(value)
-StringValueCStr(value)
-rb_str_new2(s)
+== 型変æ›
-** ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ
+ FIX2INT(value), INT2FIX(i)
+ FIX2LONG(value), LONG2FIX(l)
+ NUM2INT(value), INT2NUM(i)
+ NUM2UINT(value), UINT2NUM(ui)
+ NUM2LONG(value), LONG2NUM(l)
+ NUM2ULONG(value), ULONG2NUM(ul)
+ NUM2LL(value), LL2NUM(ll)
+ NUM2ULL(value), ULL2NUM(ull)
+ NUM2OFFT(value), OFFT2NUM(off)
+ NUM2SIZET(value), SIZET2NUM(size)
+ NUM2SSIZET(value), SSIZET2NUM(ssize)
+ rb_integer_pack(value, words, numwords, wordsize, nails, flags), rb_integer_unpack(words, numwords, wordsize, nails, flags)
+ NUM2DBL(value)
+ rb_float_new(f)
+ StringValue(value)
+ StringValuePtr(value)
+ StringValueCStr(value)
+ rb_str_new2(s)
-VALUE rb_define_class(const char *name, VALUE super)
+== クラス/モジュール定義
- super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤¹¤ë¡¥
+VALUE rb_define_class(const char *name, VALUE super) ::
-VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)
+ superã®ã‚µãƒ–クラスã¨ã—ã¦æ–°ã—ã„Rubyクラスを定義ã™ã‚‹ï¼Ž
- super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤·¡¤module¤Î
- Äê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥
+VALUE rb_define_class_under(VALUE module, const char *name, VALUE super) ::
-VALUE rb_define_module(const char *name)
+ superã®ã‚µãƒ–クラスã¨ã—ã¦æ–°ã—ã„Rubyクラスを定義ã—,moduleã®
+ 定数ã¨ã—ã¦å®šç¾©ã™ã‚‹ï¼Ž
- ¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¡¥
+VALUE rb_define_module(const char *name) ::
-VALUE rb_define_module_under(VALUE module, const char *name)
+ æ–°ã—ã„Rubyモジュールを定義ã™ã‚‹ï¼Ž
- ¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤·¡¤module¤ÎÄê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥
+VALUE rb_define_module_under(VALUE module, const char *name) ::
-void rb_include_module(VALUE klass, VALUE module)
+ æ–°ã—ã„Rubyモジュールを定義ã—,moduleã®å®šæ•°ã¨ã—ã¦å®šç¾©ã™ã‚‹ï¼Ž
- ¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡¥class¤¬¤¹¤Ç¤Ëmodule¤ò¥¤¥ó¥¯
- ¥ë¡¼¥É¤·¤Æ¤¤¤ë»þ¤Ë¤Ï²¿¤â¤·¤Ê¤¤(¿½Å¥¤¥ó¥¯¥ë¡¼¥É¤Î¶Ø»ß)¡¥
+void rb_include_module(VALUE klass, VALUE module) ::
-void rb_extend_object(VALUE object, VALUE module)
+ モジュールをインクルードã™ã‚‹ï¼ŽclassãŒã™ã§ã«moduleをインク
+ ルードã—ã¦ã„る時ã«ã¯ä½•ã‚‚ã—ãªã„(多é‡ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã®ç¦æ­¢).
- ¥ª¥Ö¥¸¥§¥¯¥È¤ò¥â¥¸¥å¡¼¥ë(¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É)¤Ç³ÈÄ¥¤¹¤ë¡¥
+void rb_extend_object(VALUE object, VALUE module) ::
-** Âç°èÊÑ¿ôÄêµÁ
+ オブジェクトをモジュール(ã§å®šç¾©ã•れã¦ã„るメソッド)ã§æ‹¡å¼µã™ã‚‹ï¼Ž
-void rb_define_variable(const char *name, VALUE *var)
+== 大域変数定義
- Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô̾¤¬`$'¤Ç
- »Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄɲ䵤ì¤ë¡¥name¤È¤·¤ÆRuby¤Î¼±ÊÌ»Ò
- ¤È¤·¤Æµö¤µ¤ì¤Ê¤¤Ê¸»ú(Î㤨¤Ð` ')¤ò´Þ¤à¾ì¹ç¤Ë¤ÏRuby¥×¥í¥°¥é
- ¥à¤«¤é¤Ï¸«¤¨¤Ê¤¯¤Ê¤ë¡¥
+void rb_define_variable(const char *name, VALUE *var) ::
-void rb_define_readonly_variable(const char *name, VALUE *var)
+ Rubyã¨Cã¨ã§å…±æœ‰ã™ã‚‹ã‚°ãƒ­ãƒ¼ãƒãƒ«å¤‰æ•°ã‚’定義ã™ã‚‹ï¼Žå¤‰æ•°åãŒ`$'ã§
+ å§‹ã¾ã‚‰ãªã„時ã«ã¯è‡ªå‹•çš„ã«è¿½åŠ ã•れる.nameã¨ã—ã¦Rubyã®è­˜åˆ¥å­
+ ã¨ã—ã¦è¨±ã•れãªã„文字(例ãˆã°` ')ã‚’å«ã‚€å ´åˆã«ã¯Rubyプログラ
+ ムã‹ã‚‰ã¯è¦‹ãˆãªããªã‚‹ï¼Ž
- Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëread only¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥
- read only¤Ç¤¢¤ë¤³¤È°Ê³°¤Ïrb_define_variable()¤ÈƱ¤¸¡¥
+void rb_define_readonly_variable(const char *name, VALUE *var) ::
-void rb_define_virtual_variable(const char *name,
- VALUE (*getter)(), void (*setter)())
+ Rubyã¨Cã¨ã§å…±æœ‰ã™ã‚‹read onlyã®ã‚°ãƒ­ãƒ¼ãƒãƒ«å¤‰æ•°ã‚’定義ã™ã‚‹ï¼Ž
+ read onlyã§ã‚ã‚‹ã“ã¨ä»¥å¤–ã¯rb_define_variable()ã¨åŒã˜ï¼Ž
- ´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRubyÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿
- »þ¤Ë¤Ïgetter¤¬¡¤ÊÑ¿ô¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì
- ¤ë¡¥
+void rb_define_virtual_variable(const char *name, VALUE (*getter)(), void (*setter)()) ::
-void rb_define_hooked_variable(const char *name, VALUE *var,
- VALUE (*getter)(), void (*setter)())
+ 関数ã«ã‚ˆã£ã¦å®Ÿç¾ã•れるRuby変数を定義ã™ã‚‹ï¼Žå¤‰æ•°ãŒå‚ç…§ã•れãŸ
+ 時ã«ã¯getterãŒï¼Œå¤‰æ•°ã«å€¤ãŒã‚»ãƒƒãƒˆã•ã‚ŒãŸæ™‚ã«ã¯setterãŒå‘¼ã°ã‚Œ
+ る.
- ´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô
- ¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ïgetter¤¬¡¤´Ø¿ô¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ï
- setter¤¬¸Æ¤Ð¤ì¤ë¡¥getter¤äsetter¤Ë0¤ò»ØÄꤷ¤¿»þ¤Ë¤Ïhook¤ò
- »ØÄꤷ¤Ê¤¤¤Î¤ÈƱ¤¸»ö¤Ë¤Ê¤ë¡¥
+void rb_define_hooked_variable(const char *name, VALUE *var, VALUE (*getter)(), void (*setter)()) ::
+
+ 関数ã«ã‚ˆã£ã¦hookã®ã¤ã‘られãŸã‚°ãƒ­ãƒ¼ãƒãƒ«å¤‰æ•°ã‚’定義ã™ã‚‹ï¼Žå¤‰æ•°
+ ãŒå‚ç…§ã•ã‚ŒãŸæ™‚ã«ã¯getterãŒï¼Œé–¢æ•°ã«å€¤ãŒã‚»ãƒƒãƒˆã•ã‚ŒãŸæ™‚ã«ã¯
+ setterãŒå‘¼ã°ã‚Œã‚‹ï¼Žgetterã‚„setterã«0を指定ã—ãŸæ™‚ã«ã¯hookã‚’
+ 指定ã—ãªã„ã®ã¨åŒã˜äº‹ã«ãªã‚‹ï¼Ž
void rb_global_variable(VALUE *var)
- GC¤Î¤¿¤á¡¤Ruby¥×¥í¥°¥é¥à¤«¤é¤Ï¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¤¬, Ruby¥ª¥Ö
- ¥¸¥§¥¯¥È¤ò´Þ¤àÂç°èÊÑ¿ô¤ò¥Þ¡¼¥¯¤¹¤ë¡¥
+ GCã®ãŸã‚,Rubyプログラムã‹ã‚‰ã¯ã‚¢ã‚¯ã‚»ã‚¹ã•れãªã„ãŒ, Rubyオブ
+ ジェクトをå«ã‚€å¤§åŸŸå¤‰æ•°ã‚’マークã™ã‚‹ï¼Ž
+
+== 定数
+
+void rb_define_const(VALUE klass, const char *name, VALUE val) ::
+
+ 定数を定義ã™ã‚‹ï¼Ž
+
+void rb_define_global_const(const char *name, VALUE val) ::
+
+ 大域定数を定義ã™ã‚‹ï¼Ž
+
+ rb_define_const(rb_cObject, name, val)
+
+ ã¨åŒã˜æ„味.
-** Äê¿ô
+== メソッド定義
-void rb_define_const(VALUE klass, const char *name, VALUE val)
+rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc) ::
- Äê¿ô¤òÄêµÁ¤¹¤ë¡¥
+ メソッドを定義ã™ã‚‹ï¼Žargcã¯selfを除ãå¼•æ•°ã®æ•°ï¼ŽargcãŒ-1ã®æ™‚,
+ 関数ã«ã¯å¼•æ•°ã®æ•°(selfã‚’å«ã¾ãªã„)を第1引数, 引数ã®é…列を第2
+ 引数ã¨ã™ã‚‹å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹(第3引数ã¯self).argcãŒ-2ã®æ™‚,
+ 第1引数ãŒself, 第2引数ãŒargs(argsã¯å¼•æ•°ã‚’å«ã‚€Rubyã®é…列)ã¨
+ ã„ã†å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž
-void rb_define_global_const(const char *name, VALUE val)
+rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc) ::
- Âç°èÄê¿ô¤òÄêµÁ¤¹¤ë¡¥
+ privateメソッドを定義ã™ã‚‹ï¼Žå¼•æ•°ã¯rb_define_method()ã¨åŒã˜ï¼Ž
- rb_define_const(rb_cObject, name, val)
+rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc) ::
- ¤ÈƱ¤¸°ÕÌ£¡¥
+ 特異メソッドを定義ã™ã‚‹ï¼Žå¼•æ•°ã¯rb_define_method()ã¨åŒã˜ï¼Ž
-** ¥á¥½¥Ã¥ÉÄêµÁ
+rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::
-rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+ argc, argvå½¢å¼ã§ä¸Žãˆã‚‰ã‚ŒãŸæŒ‡å®šã•れãŸãƒ•ォーマットã«å¾“ã£ã¦å¼•
+ 数を分解ã—,続ãVALUEã¸ã®å‚ç…§ã«ã‚»ãƒƒãƒˆã—ã¾ã™ï¼Žã“ã®ãƒ•ォーマッ
+ トã¯ï¼ŒABNFã§è¨˜è¿°ã™ã‚‹ã¨ä»¥ä¸‹ã®é€šã‚Šã§ã™ï¼Ž
- ¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥argc¤Ïself¤ò½ü¤¯°ú¿ô¤Î¿ô¡¥argc¤¬-1¤Î»þ,
- ´Ø¿ô¤Ë¤Ï°ú¿ô¤Î¿ô(self¤ò´Þ¤Þ¤Ê¤¤)¤òÂè1°ú¿ô, °ú¿ô¤ÎÇÛÎó¤òÂè2
- °ú¿ô¤È¤¹¤ë·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë(Âè3°ú¿ô¤Ïself)¡¥argc¤¬-2¤Î»þ,
- Âè1°ú¿ô¤¬self, Âè2°ú¿ô¤¬args(args¤Ï°ú¿ô¤ò´Þ¤àRuby¤ÎÇÛÎó)¤È
- ¤¤¤¦·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡¥
-
-rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+ scan-arg-spec := param-arg-spec [option-hash-arg-spec] [block-arg-spec]
- private¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈƱ¤¸¡¥
+ param-arg-spec := pre-arg-spec [post-arg-spec] / post-arg-spec /
+ pre-opt-post-arg-spec
+ pre-arg-spec := num-of-leading-mandatory-args [num-of-optional-args]
+ post-arg-spec := sym-for-variable-length-args
+ [num-of-trailing-mandatory-args]
+ pre-opt-post-arg-spec := num-of-leading-mandatory-args num-of-optional-args
+ num-of-trailing-mandatory-args
+ option-hash-arg-spec := sym-for-option-hash-arg
+ block-arg-spec := sym-for-block-arg
-rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+ num-of-leading-mandatory-args := DIGIT ; 先頭ã«ç½®ã‹ã‚Œã‚‹çœç•¥ä¸èƒ½ãªå¼•æ•°ã®æ•°
+ num-of-optional-args := DIGIT ; ç¶šã„ã¦ç½®ã‹ã‚Œã‚‹çœç•¥å¯èƒ½ãªå¼•æ•°ã®æ•°
+ sym-for-variable-length-args := "*" ; ç¶šã„ã¦ç½®ã‹ã‚Œã‚‹å¯å¤‰é•·å¼•æ•°ã‚’
+ ; Rubyã®é…列ã§å–å¾—ã™ã‚‹ãŸã‚ã®æŒ‡å®š
+ num-of-trailing-mandatory-args := DIGIT ; 終端ã«ç½®ã‹ã‚Œã‚‹çœç•¥ä¸èƒ½ãªå¼•æ•°ã®æ•°
+ sym-for-option-hash-arg := ":" ; オプションãƒãƒƒã‚·ãƒ¥ã‚’å–å¾—ã™ã‚‹
+ ; ãŸã‚ã®æŒ‡å®š; çœç•¥ä¸èƒ½ãªå¼•æ•°ã®
+ ; 数よりも多ãã®å¼•æ•°ãŒæŒ‡å®šã•れ,
+ ; 最後ã®å¼•æ•°ãŒãƒãƒƒã‚·ãƒ¥ï¼ˆã¾ãŸã¯
+ ; #to_hashã§å¤‰æ›å¯èƒ½ï¼‰ã®å ´åˆã«
+ ; å–å¾—ã•れる.最後ã®å¼•æ•°ãŒnilã®
+ ; å ´åˆï¼Œå¯å¤‰é•·å¼•数指定ãŒãªã,
+ ; çœç•¥ä¸èƒ½å¼•æ•°ã®æ•°ã‚ˆã‚Šã‚‚多ãã®
+ ; å¼•æ•°ãŒæŒ‡å®šã•れãŸå ´åˆã«å–å¾—ã•れる
+ sym-for-block-arg := "&" ; イテレータブロックをå–å¾—ã™ã‚‹ãŸã‚ã®
+ ; 指定
- ÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈƱ¤¸¡¥
+ フォーマットãŒ"12"ã®å ´åˆï¼Œå¼•æ•°ã¯æœ€ä½Ž1ã¤ã§ï¼Œ3ã¤(1+2)ã¾ã§è¨±ã•
+ れるã¨ã„ã†æ„味ã«ãªã‚Šã¾ã™ï¼Žå¾“ã£ã¦ï¼Œãƒ•ォーマット文字列ã«ç¶šã„
+ ã¦3ã¤ã®VALUEã¸ã®å‚ç…§ã‚’ç½®ãå¿…è¦ãŒã‚りã¾ã™ï¼Žãれらã«ã¯å–å¾—ã—ãŸ
+ 変数ãŒã‚»ãƒƒãƒˆã•れã¾ã™ï¼Žå¤‰æ•°ã¸ã®å‚ç…§ã®ä»£ã‚りã«NULLを指定ã™ã‚‹
+ ã“ã¨ã‚‚ã§ã,ãã®å ´åˆã¯å–å¾—ã—ãŸå¼•æ•°ã®å€¤ã¯æ¨ã¦ã‚‰ã‚Œã¾ã™ï¼ŽãªãŠï¼Œ
+ çœç•¥å¯èƒ½å¼•æ•°ãŒçœç•¥ã•ã‚ŒãŸæ™‚ã®å¤‰æ•°ã®å€¤ã¯nil(C言語ã®ãƒ¬ãƒ™ãƒ«ã§ã¯
+ Qnil)ã«ãªã‚Šã¾ã™ï¼Ž
-rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)
+ 返り値ã¯ä¸Žãˆã‚‰ã‚ŒãŸå¼•æ•°ã®æ•°ã§ã™ï¼Žã‚ªãƒ—ションãƒãƒƒã‚·ãƒ¥ãŠã‚ˆã³ã‚¤
+ ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ–ãƒ­ãƒƒã‚¯ã¯æ•°ãˆã¾ã›ã‚“.
- argc, argv·Á¼°¤ÇÍ¿¤¨¤é¤ì¤¿°ú¿ô¤òʬ²ò¤¹¤ë¡¥fmt¤Ïɬ¿Ü°ú¿ô¤Î¿ô,
- Éղðú¿ô¤Î¿ô, »Ä¤ê¤Î°ú¿ô¤¬¤¢¤ë¤«¤ò»ØÄꤹ¤ëʸ»úÎó¤Ç, "¿ô»ú
- ¿ô»ú*"¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡¥ 2 ÈÖÌܤοô»ú¤È"*"¤Ï¤½¤ì¤¾¤ì¾Êά²Ä
- ǽ¤Ç¤¢¤ë¡¥É¬¿Ü°ú¿ô¤¬°ì¤Ä¤â¤Ê¤¤¾ì¹ç¤Ï0¤ò»ØÄꤹ¤ë¡¥Âè3°ú¿ô°Ê
- ¹ß¤ÏÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç, ³ºÅö¤¹¤ëÍ×ÁǤ¬¤½¤ÎÊÑ¿ô¤Ë³ÊǼ¤µ¤ì¤ë¡¥
- Éղðú¿ô¤ËÂбþ¤¹¤ë°ú¿ô¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ÏÊÑ¿ô¤ËQnil¤¬
- ÂåÆþ¤µ¤ì¤ë¡¥
+== Rubyメソッド呼ã³å‡ºã—
-** Ruby¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·
+VALUE rb_funcall(VALUE recv, ID mid, int narg, ...) ::
-VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)
+ メソッド呼ã³å‡ºã—.文字列ã‹ã‚‰midã‚’å¾—ã‚‹ãŸã‚ã«ã¯rb_intern()ã‚’
+ 使ã†ï¼Ž
+ private/protectedãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã‚‚呼ã³å‡ºã›ã‚‹ï¼Ž
- ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥Ê¸»úÎ󤫤émid¤òÆÀ¤ë¤¿¤á¤Ë¤Ïrb_intern()¤ò
- »È¤¦¡¥
+VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv) ::
+VALUE rb_funcallv(VALUE recv, ID mid, int argc, VALUE *argv) ::
-VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
+ メソッド呼ã³å‡ºã—.引数をargc, argvå½¢å¼ã§æ¸¡ã™ï¼Ž
+ private/protectedãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã‚‚呼ã³å‡ºã›ã‚‹ï¼Ž
- ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥°ú¿ô¤òargc, argv·Á¼°¤ÇÅϤ¹¡¥
+VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, VALUE *argv) ::
+
+ メソッド呼ã³å‡ºã—.
+ publicãªãƒ¡ã‚½ãƒƒãƒ‰ã—ã‹å‘¼ã¹ãªã„.
VALUE rb_eval_string(const char *str)
- ʸ»úÎó¤òRuby¥¹¥¯¥ê¥×¥È¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¡¦¼Â¹Ô¤¹¤ë¡¥
+ 文字列をRubyスクリプトã¨ã—ã¦ã‚³ãƒ³ãƒ‘イル・実行ã™ã‚‹ï¼Ž
+
+ID rb_intern(const char *name) ::
+
+ 文字列ã«å¯¾å¿œã™ã‚‹IDã‚’è¿”ã™ï¼Ž
+
+char *rb_id2name(ID id) ::
+
+ IDã«å¯¾å¿œã™ã‚‹æ–‡å­—列を返ã™(デãƒãƒƒã‚°ç”¨).
+
+char *rb_class2name(VALUE klass) ::
+
+ クラスã®åå‰ã‚’è¿”ã™(デãƒãƒƒã‚°ç”¨).クラスãŒåå‰ã‚’æŒãŸãªã„時ã«
+ ã¯, 祖先をé¡ã£ã¦åå‰ã‚’æŒã¤ã‚¯ãƒ©ã‚¹ã®åå‰ã‚’è¿”ã™ï¼Ž
+
+int rb_respond_to(VALUE obj, ID id) ::
-ID rb_intern(const char *name)
+ objãŒidã§ç¤ºã•れるメソッドをæŒã¤ã‹ã©ã†ã‹ã‚’è¿”ã™ï¼Ž
- ʸ»úÎó¤ËÂбþ¤¹¤ëID¤òÊÖ¤¹¡¥
+== インスタンス変数
-char *rb_id2name(ID id)
+VALUE rb_iv_get(VALUE obj, const char *name) ::
- ID¤ËÂбþ¤¹¤ëʸ»úÎó¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥
+ objã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã®å€¤ã‚’得る.`@'ã§å§‹ã¾ã‚‰ãªã„インスタン
+ ス変数㯠Rubyプログラムã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„「隠れãŸã€ã‚¤ãƒ³
+ スタンス変数ã«ãªã‚‹ï¼Žå®šæ•°ã¯å¤§æ–‡å­—ã®åå‰ã‚’æŒã¤ã‚¯ãƒ©ã‚¹(ã¾ãŸã¯
+ モジュール)ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã¨ã—ã¦å®Ÿè£…ã•れã¦ã„る.
-char *rb_class2name(VALUE klass)
+VALUE rb_iv_set(VALUE obj, const char *name, VALUE val) ::
- ¥¯¥é¥¹¤Î̾Á°¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥¥¯¥é¥¹¤¬Ì¾Á°¤ò»ý¤¿¤Ê¤¤»þ¤Ë¤Ï,
- ÁÄÀè¤òÁ̤äÆÌ¾Á°¤ò»ý¤Ä¥¯¥é¥¹¤Î̾Á°¤òÊÖ¤¹¡¥
+ objã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã‚’valã«ã‚»ãƒƒãƒˆã™ã‚‹ï¼Ž
-int rb_respond_to(VALUE obj, ID id)
+== 制御構造
- obj¤¬id¤Ç¼¨¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò»ý¤Ä¤«¤É¤¦¤«¤òÊÖ¤¹¡£
+VALUE rb_block_call(VALUE obj, ID mid, int argc, VALUE * argv, VALUE (*func) (ANYARGS), VALUE data2) ::
-** ¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô
+ funcをブロックã¨ã—ã¦è¨­å®šã—,objをレシーãƒï¼Œargcã¨argvを引数
+ ã¨ã—ã¦midメソッドを呼ã³å‡ºã™ï¼Žfuncã¯ç¬¬ä¸€å¼•æ•°ã«yieldã•れãŸå€¤ï¼Œ
+ 第二引数ã«data2ã‚’å—ã‘å–る.複数ã®å€¤ãŒyieldã•れãŸå ´åˆ(Cã§ã¯
+ rb_yield_values()ã¨rb_yield_values2(), rb_yield_splat()),
+ data2ã¯Arrayã¨ã—ã¦ãƒ‘ックã•れã¦ã„る.第三, 第四引数ã®argcã¨
+ argvã«ã‚ˆã£ã¦yieldã•れãŸå€¤ã‚’å–り出ã™ã“ã¨ãŒã§ãる.
-VALUE rb_iv_get(VALUE obj, const char *name)
+[OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2) ::
- obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ÎÃͤòÆÀ¤ë¡¥`@'¤Ç»Ï¤Þ¤é¤Ê¤¤¥¤¥ó¥¹¥¿¥ó
- ¥¹ÊÑ¿ô¤Ï Ruby¥×¥í¥°¥é¥à¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡Ö±£¤ì¤¿¡×¥¤¥ó
- ¥¹¥¿¥ó¥¹ÊÑ¿ô¤Ë¤Ê¤ë¡¥Äê¿ô¤ÏÂçʸ»ú¤Î̾Á°¤ò»ý¤Ä¥¯¥é¥¹(¤Þ¤¿¤Ï
- ¥â¥¸¥å¡¼¥ë)¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡¥
+ func2をブロックã¨ã—ã¦è¨­å®šã—, func1をイテレータã¨ã—ã¦å‘¼ã¶ï¼Ž
+ func1ã«ã¯ arg1ãŒå¼•æ•°ã¨ã—ã¦æ¸¡ã•れ, func2ã«ã¯ç¬¬1引数ã«ã‚¤ãƒ†ãƒ¬ãƒ¼
+ ã‚¿ã‹ã‚‰ä¸Žãˆã‚‰ã‚ŒãŸå€¤, 第2引数ã«arg2ãŒæ¸¡ã•れる.
-VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)
+ 1.9ã§rb_iterateを使ã†å ´åˆã¯, func1ã®ä¸­ã§Rubyレベルã®ãƒ¡ã‚½ãƒƒãƒ‰
+ を呼ã³å‡ºã•ãªã‘れã°ãªã‚‰ãªã„.
+ 1.9ã§obsoleteã¨ãªã£ãŸ. 代ã‚りã«rb_block_callãŒç”¨æ„ã•れãŸ.
- obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤òval¤Ë¥»¥Ã¥È¤¹¤ë¡¥
+VALUE rb_yield(VALUE val) ::
-** À©¸æ¹½Â¤
+ valを値ã¨ã—ã¦ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ãƒ–ロックを呼ã³å‡ºã™ï¼Ž
-VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)
+VALUE rb_rescue(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2) ::
- func2¤ò¥Ö¥í¥Ã¥¯¤È¤·¤ÆÀßÄꤷ, func1¤ò¥¤¥Æ¥ì¡¼¥¿¤È¤·¤Æ¸Æ¤Ö¡¥
- func1¤Ë¤Ï arg1¤¬°ú¿ô¤È¤·¤ÆÅϤµ¤ì, func2¤Ë¤ÏÂè1°ú¿ô¤Ë¥¤¥Æ¥ì¡¼
- ¥¿¤«¤éÍ¿¤¨¤é¤ì¤¿ÃÍ, Âè2°ú¿ô¤Ëarg2¤¬ÅϤµ¤ì¤ë¡¥
-
-VALUE rb_yield(VALUE val)
+ 関数func1ã‚’arg1を引数ã«å‘¼ã³å‡ºã™ï¼Žfunc1ã®å®Ÿè¡Œä¸­ã«ä¾‹å¤–ãŒç™ºç”Ÿ
+ ã—ãŸæ™‚ã«ã¯ func2ã‚’arg2を引数ã¨ã—ã¦å‘¼ã¶ï¼Žæˆ»ã‚Šå€¤ã¯ä¾‹å¤–ãŒç™ºç”Ÿ
+ ã—ãªã‹ã£ãŸæ™‚ã¯func1ã®æˆ»ã‚Šå€¤, 例外ãŒç™ºç”Ÿã—ãŸæ™‚ã«ã¯func2ã®æˆ»
+ り値ã§ã‚る.
- val¤òÃͤȤ·¤Æ¥¤¥Æ¥ì¡¼¥¿¥Ö¥í¥Ã¥¯¤ò¸Æ¤Ó½Ð¤¹¡¥
+VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2) ::
-VALUE rb_rescue(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)
+ 関数func1ã‚’arg1を引数ã¨ã—ã¦å®Ÿè¡Œã—, 実行終了後(ãŸã¨ãˆä¾‹å¤–ãŒ
+ 発生ã—ã¦ã‚‚) func2ã‚’arg2を引数ã¨ã—ã¦å®Ÿè¡Œã™ã‚‹ï¼Žæˆ»ã‚Šå€¤ã¯func1
+ ã®æˆ»ã‚Šå€¤ã§ã‚ã‚‹(例外ãŒç™ºç”Ÿã—ãŸæ™‚ã¯æˆ»ã‚‰ãªã„).
- ´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤Ë¸Æ¤Ó½Ð¤¹¡¥func1¤Î¼Â¹ÔÃæ¤ËÎã³°¤¬È¯À¸
- ¤·¤¿»þ¤Ë¤Ï func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ö¡¥Ìá¤êÃͤÏÎã³°¤¬È¯À¸
- ¤·¤Ê¤«¤Ã¤¿»þ¤Ïfunc1¤ÎÌá¤êÃÍ, Îã³°¤¬È¯À¸¤·¤¿»þ¤Ë¤Ïfunc2¤ÎÌá
- ¤êÃͤǤ¢¤ë¡¥
+VALUE rb_protect(VALUE (*func) (VALUE), VALUE arg, int *state) ::
-VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, void (*func2)(), VALUE arg2)
+ 関数funcã‚’argを引数ã¨ã—ã¦å®Ÿè¡Œã—, 例外ãŒç™ºç”Ÿã—ãªã‘れã°ãã®æˆ»
+ り値を返ã™ï¼Žä¾‹å¤–ãŒç™ºç”Ÿã—ãŸå ´åˆã¯, *stateã«éž0をセットã—ã¦
+ Qnilã‚’è¿”ã™ï¼Ž
+ rb_jump_tag()を呼ã°ãšã«æ•æ‰ã—ãŸä¾‹å¤–を無視ã™ã‚‹å ´åˆã«ã¯ï¼Œ
+ rb_set_errinfo(Qnil)ã§ã‚¨ãƒ©ãƒ¼æƒ…報をクリアã—ãªã‘れã°ãªã‚‰ãªã„.
- ´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤·, ¼Â¹Ô½ªÎ»¸å(¤¿¤È¤¨Îã³°¤¬
- ȯÀ¸¤·¤Æ¤â) func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤¹¤ë¡¥Ìá¤êÃͤÏfunc1
- ¤ÎÌá¤êÃͤǤ¢¤ë(Îã³°¤¬È¯À¸¤·¤¿»þ¤ÏÌá¤é¤Ê¤¤)¡¥
+void rb_jump_tag(int state) ::
-** Îã³°¡¦¥¨¥é¡¼
+ rb_protect()ã‚„rb_eval_string_protect()ã§æ•æ‰ã•れãŸä¾‹å¤–ã‚’å†
+ é€ã™ã‚‹ï¼Žstateã¯ãれらã®é–¢æ•°ã‹ã‚‰è¿”ã•れãŸå€¤ã§ãªã‘れã°ãªã‚‰ãªã„.
+ ã“ã®é–¢æ•°ã¯ç›´æŽ¥ã®å‘¼ã³å‡ºã—å…ƒã«æˆ»ã‚‰ãªã„.
-void rb_warning(const char *fmt, ...)
+void rb_iter_break() ::
- rb_verbose»þ¤Ëɸ½à¥¨¥é¡¼½ÐÎϤ˷ٹð¾ðÊó¤òɽ¼¨¤¹¤ë¡¥°ú¿ô¤Ï
- printf()¤ÈƱ¤¸¡¥
+ ç¾åœ¨ã®æœ€ã‚‚内å´ã®ãƒ–ロックを終了ã™ã‚‹ï¼Žã“ã®é–¢æ•°ã¯ç›´æŽ¥ã®å‘¼ã³å‡º
+ ã—å…ƒã«æˆ»ã‚‰ãªã„.
-void rb_raise(rb_eRuntimeError, const char *fmt, ...)
+void rb_iter_break_value(VALUE value) ::
- RuntimeErrorÎã³°¤òȯÀ¸¤µ¤»¤ë¡¥°ú¿ô¤Ïprintf()¤ÈƱ¤¸¡¥
+ ç¾åœ¨ã®æœ€ã‚‚内å´ã®ãƒ–ロックをvalueã§çµ‚了ã™ã‚‹ï¼Žãƒ–ロックã¯å¼•æ•°ã§
+ 与ãˆã‚‰ã‚ŒãŸvalueã‚’è¿”ã™ï¼Žã“ã®é–¢æ•°ã¯ç›´æŽ¥ã®å‘¼ã³å‡ºã—å…ƒã«æˆ»ã‚‰ãªã„.
-void rb_raise(VALUE exception, const char *fmt, ...)
+== 例外・エラー
- exception¤Ç»ØÄꤷ¤¿Îã³°¤òȯÀ¸¤µ¤»¤ë¡¥fmt°Ê²¼¤Î°ú¿ô¤Ï
- printf()¤ÈƱ¤¸¡¥
+void rb_warning(const char *fmt, ...) ::
-void rb_fatal(const char *fmt, ...)
+ rb_verboseæ™‚ã«æ¨™æº–エラー出力ã«è­¦å‘Šæƒ…報を表示ã™ã‚‹ï¼Žå¼•æ•°ã¯
+ printf()ã¨åŒã˜ï¼Ž
- Ã×̿ŪÎã³°¤òȯÀ¸¤µ¤»¤ë¡¥Ä̾ï¤ÎÎã³°½èÍý¤Ï¹Ô¤Ê¤ï¤ì¤º, ¥¤¥ó¥¿¡¼
- ¥×¥ê¥¿¤¬½ªÎ»¤¹¤ë(¤¿¤À¤·ensure¤Ç»ØÄꤵ¤ì¤¿¥³¡¼¥É¤Ï½ªÎ»Á°¤Ë
- ¼Â¹Ô¤µ¤ì¤ë)¡¥
+void rb_raise(rb_eRuntimeError, const char *fmt, ...) ::
-void rb_bug(const char *fmt, ...)
+ RuntimeError例外を発生ã•ã›ã‚‹ï¼Žå¼•æ•°ã¯printf()ã¨åŒã˜ï¼Ž
- ¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ê¤É¥×¥í¥°¥é¥à¤Î¥Ð¥°¤Ç¤·¤«È¯À¸¤¹¤ë¤Ï¤º¤Î¤Ê¤¤
- ¾õ¶·¤Î»þ¸Æ¤Ö¡¥¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ï¥³¥¢¥À¥ó¥×¤·Ä¾¤Á¤Ë½ªÎ»¤¹¤ë¡¥
- Îã³°½èÍý¤Ï°ìÀڹԤʤï¤ì¤Ê¤¤¡¥
+void rb_raise(VALUE exception, const char *fmt, ...) ::
-** Ruby¤Î½é´ü²½¡¦¼Â¹Ô
+ exceptionã§æŒ‡å®šã—ãŸä¾‹å¤–を発生ã•ã›ã‚‹ï¼Žfmt以下ã®å¼•æ•°ã¯
+ printf()ã¨åŒã˜ï¼Ž
-Ruby¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËËä¤á¹þ¤à¾ì¹ç¤Ë¤Ï°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹
-¤ò»È¤¦¡¥Ä̾ï¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ë¤ÏɬÍפʤ¤¡¥
+void rb_fatal(const char *fmt, ...) ::
-void ruby_init()
+ 致命的例外を発生ã•ã›ã‚‹ï¼Žé€šå¸¸ã®ä¾‹å¤–処ç†ã¯è¡Œãªã‚れãš, インター
+ プリタãŒçµ‚了ã™ã‚‹(ãŸã ã—ensureã§æŒ‡å®šã•れãŸã‚³ãƒ¼ãƒ‰ã¯çµ‚了å‰ã«
+ 実行ã•れる).
- Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î½é´ü²½¤ò¹Ô¤Ê¤¦¡¥
+void rb_bug(const char *fmt, ...) ::
-void ruby_options(int argc, char **argv)
+ インタープリタãªã©ãƒ—ログラムã®ãƒã‚°ã§ã—ã‹ç™ºç”Ÿã™ã‚‹ã¯ãšã®ãªã„
+ 状æ³ã®æ™‚呼ã¶ï¼Žã‚¤ãƒ³ã‚¿ãƒ¼ãƒ—リタã¯ã‚³ã‚¢ãƒ€ãƒ³ãƒ—ã—ç›´ã¡ã«çµ‚了ã™ã‚‹ï¼Ž
+ 例外処ç†ã¯ä¸€åˆ‡è¡Œãªã‚れãªã„.
- Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Î½èÍý¤ò¹Ô¤Ê¤¦¡¥
+注æ„: %iã¯Object#to_s('+'ãƒ•ãƒ©ã‚°ãŒæŒ‡å®šã•れã¦ã„ã‚‹ã¨ãã¯Object#inspect)ã‚’
+使ã£ãŸVALUEã®å‡ºåŠ›ã«ä½¿ç”¨ã•れã¦ã„ã‚‹ãŸã‚,整数ã«ã¯%dを使用ã™ã‚‹ã“ã¨ï¼Ž
-void ruby_run()
+== Rubyã®åˆæœŸåŒ–・実行
- Ruby¥¤¥ó¥¿¥×¥ê¥¿¤ò¼Â¹Ô¤¹¤ë¡¥
+Rubyをアプリケーションã«åŸ‹ã‚込む場åˆã«ã¯ä»¥ä¸‹ã®ã‚¤ãƒ³ã‚¿ãƒ•ェース
+を使ã†ï¼Žé€šå¸¸ã®æ‹¡å¼µãƒ©ã‚¤ãƒ–ラリã«ã¯å¿…è¦ãªã„.
-void ruby_script(char *name)
+void ruby_init() ::
- Ruby¤Î¥¹¥¯¥ê¥×¥È̾($0)¤òÀßÄꤹ¤ë¡¥
+ Rubyインタプリタã®åˆæœŸåŒ–を行ãªã†ï¼Ž
+void ruby_options(int argc, char **argv) ::
-Appendix C. extconf.rb¤Ç»È¤¨¤ë´Ø¿ô¤¿¤Á
+ Rubyインタプリタã®ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³å¼•æ•°ã®å‡¦ç†ã‚’行ãªã†ï¼Ž
-extconf.rb¤ÎÃæ¤Ç¤ÏÍøÍѲÄǽ¤Ê¥³¥ó¥Ñ¥¤¥ë¾ò·ï¥Á¥§¥Ã¥¯¤Î´Ø¿ô¤Ï°Ê
-²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡¥
+void ruby_run() ::
-have_macro(macro, headers)
+ Rubyインタプリタを実行ã™ã‚‹ï¼Ž
- ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¥Þ¥¯¥ímacro¤¬ÄêµÁ¤µ
- ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þtrue
- ¤òÊÖ¤¹¡¥
+void ruby_script(char *name) ::
-have_library(lib, func)
+ Rubyã®ã‚¹ã‚¯ãƒªãƒ—トå($0)を設定ã™ã‚‹ï¼Ž
- ´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥
- ¥é¥¤¥Ö¥é¥ê¤¬Â¸ºß¤¹¤ë»þ¡¤true¤òÊÖ¤¹¡¥
+== インタプリタã®ã‚¤ãƒ™ãƒ³ãƒˆã®ãƒ•ック
-find_library(lib, func, path...)
+ void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events,
+ VALUE data)
- ´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤Î¸ºß¤ò -Lpath ¤òÄɲÃ
- ¤·¤Ê¤¬¤é¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥é¥¤¥Ö¥é¥ê¤¬¸«ÉÕ¤«¤Ã¤¿»þ¡¤true¤òÊÖ¤¹¡¥
+指定ã•れãŸã‚¤ãƒ³ã‚¿ãƒ—リタã®ã‚¤ãƒ™ãƒ³ãƒˆã«å¯¾ã™ã‚‹ãƒ•ック関数を追加ã—ã¾ã™ï¼Ž
+eventsã¯ä»¥ä¸‹ã®å€¤ã®orã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“:
-have_func(func, header)
+ RUBY_EVENT_LINE
+ RUBY_EVENT_CLASS
+ RUBY_EVENT_END
+ RUBY_EVENT_CALL
+ RUBY_EVENT_RETURN
+ RUBY_EVENT_C_CALL
+ RUBY_EVENT_C_RETURN
+ RUBY_EVENT_RAISE
+ RUBY_EVENT_ALL
- ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ´Ø¿ôfunc¤Î¸ºß¤ò¥Á¥§¥Ã
- ¥¯¤¹¤ë¡¥func¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤¥é¥¤¥Ö¥é¥êÆâ¤Î¤â¤Î¤Ç¤¢
- ¤ë»þ¤Ë¤ÏÀè¤Ëhave_library¤Ç¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¯
- »ö¡¥´Ø¿ô¤¬Â¸ºß¤¹¤ë»þtrue¤òÊÖ¤¹¡¥
+rb_event_hook_func_tã®å®šç¾©ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:
-have_var(var, header)
+ typedef void (*rb_event_hook_func_t)(rb_event_t event, VALUE data,
+ VALUE self, ID id, VALUE klass)
- ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤ÆÊÑ¿ôvar¤Î¸ºß¤ò¥Á¥§¥Ã
- ¥¯¤¹¤ë¡¥var¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤¥é¥¤¥Ö¥é¥êÆâ¤Î¤â¤Î¤Ç¤¢
- ¤ë»þ¤Ë¤ÏÀè¤Ëhave_library¤Ç¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¯
- »ö¡¥ÊÑ¿ô¤¬Â¸ºß¤¹¤ë»þtrue¤òÊÖ¤¹¡¥
+rb_add_event_hook() ã®ç¬¬3引数 data ã¯ï¼Œãƒ•ック関数ã®ç¬¬2引数ã¨
+ã—ã¦æ¸¡ã•れã¾ã™ï¼Žã“れã¯1.8ã§ã¯ç¾åœ¨ã®NODEã¸ã®ãƒã‚¤ãƒ³ã‚¿ã§ã—ãŸï¼Žä»¥
+下㮠RB_EVENT_HOOKS_HAVE_CALLBACK_DATA ã‚‚å‚ç…§ã—ã¦ãã ã•ã„.
-have_header(header)
+ int rb_remove_event_hook(rb_event_hook_func_t func)
- ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹
- ¤ë»þtrue¤òÊÖ¤¹¡¥
+指定ã•れãŸãƒ•ック関数を削除ã—ã¾ã™ï¼Ž
-find_header(header, path...)
+== äº’æ›æ€§ã®ãŸã‚ã®ãƒžã‚¯ãƒ­
- ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤Î¸ºß¤ò -Ipath ¤òÄɲ䷤ʤ¬¤é¥Á¥§¥Ã¥¯
- ¤¹¤ë¡¥¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¸«ÉÕ¤«¤Ã¤¿»þ¡¤true¤òÊÖ¤¹¡¥
+APIã®äº’æ›æ€§ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ãŸã‚ã«ä»¥ä¸‹ã®ãƒžã‚¯ãƒ­ãŒãƒ‡ãƒ•ォルトã§å®šç¾©ã•れã¦ã„ã¾ã™ï¼Ž
-have_struct_member(type, member, header)
+NORETURN_STYLE_NEW ::
- ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤Ë¥á¥ó¥Ðmember
- ¤¬Â¸ºß¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¤member¤ò
- »ý¤Ä¤¹¤ë»þtrue¤òÊÖ¤¹¡¥
+ NORETURN マクロãŒé–¢æ•°åž‹ãƒžã‚¯ãƒ­ã¨ã—ã¦å®šç¾©ã•れã¦ã„ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ï¼Ž
-have_type(type, header, opt)
+HAVE_RB_DEFINE_ALLOC_FUNC ::
- ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤¬Â¸ºß¤¹¤ë¤«¤ò
- ¥Á¥§¥Ã¥¯¤¹¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þtrue¤òÊÖ¤¹¡¥
+ rb_define_alloc_func() é–¢æ•°ãŒæä¾›ã•れã¦ã„ã‚‹ã“ã¨ï¼Œã¤ã¾ã‚Š
+ allocation framework ãŒä½¿ã‚れるã“ã¨ã‚’æ„味ã™ã‚‹ï¼Ž
+ have_func("rb_define_alloc_func", "ruby.h")
+ ã®çµæžœã¨åŒã˜ï¼Ž
-check_sizeof(type, header)
+HAVE_RB_REG_NEW_STR ::
- ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤Îcharñ°Ì¥µ¥¤
- ¥º¤òÄ´¤Ù¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þ¤½¤Î¥µ¥¤¥º¤òÊÖ¤¹¡¥ÄêµÁ¤µ
- ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ïnil¤òÊÖ¤¹¡¥
+ Stringオブジェクトã‹ã‚‰Regexpオブジェクトを作る
+ rb_reg_new_str() é–¢æ•°ãŒæä¾›ã•れã¦ã„ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ï¼Ž
+ have_func("rb_reg_new_str", "ruby.h").
+ ã®çµæžœã¨åŒã˜ï¼Ž
-create_makefile(target)
+HAVE_RB_IO_T ::
- ³ÈÄ¥¥é¥¤¥Ö¥é¥êÍѤÎMakefile¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤ò¸Æ¤Ð¤Ê¤±¤ì
- ¤Ð¤½¤Î¥é¥¤¥Ö¥é¥ê¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤¤¡¥target¤Ï¥â¥¸¥å¡¼¥ë̾
- ¤òɽ¤¹¡¥
+ rb_io_t åž‹ãŒæä¾›ã•れã¦ã„ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ï¼Ž
-find_executable(command, path)
+USE_SYMBOL_AS_METHOD_NAME ::
- ¥³¥Þ¥ó¥Écommand¤òFile::PATH_SEPARATOR¤Ç¶èÀÚ¤é¤ì¤¿¥Ñ¥¹Ì¾¤Î
- ¥ê¥¹¥Èpath¤«¤éõ¤¹¡¥path¤¬nil¤Þ¤¿¤Ï¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¤´Ä¶­
- ÊÑ¿ôPATH¤ÎÃͤò»ÈÍѤ¹¤ë¡¥¼Â¹Ô²Äǽ¤Ê¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç
- ¤Ï¥Ñ¥¹¤ò´Þ¤à¥Õ¥¡¥¤¥ë̾¡¤¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ïnil¤òÊÖ¤¹¡¥
+ メソッドåã‚’è¿”ã™ãƒ¡ã‚½ãƒƒãƒ‰ï¼ŒModule#methods, #singleton_methods
+ ãªã©ãŒSymbolã‚’è¿”ã™ã“ã¨ã‚’æ„味ã™ã‚‹ï¼Ž
-with_config(withval[, default=nil])
+HAVE_RUBY_*_H ::
- ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--with-<withval>¤Ç»ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥óÃͤòÆÀ¤ë¡¥
+ ruby.h ã§å®šç¾©ã•れã¦ã„る.対応ã™ã‚‹ãƒ˜ãƒƒãƒ€ãŒæä¾›ã•れã¦ã„ã‚‹ã“ã¨
+ ã‚’æ„味ã™ã‚‹ï¼ŽãŸã¨ãˆã°ï¼ŒHAVE_RUBY_ST_H ãŒå®šç¾©ã•れã¦ã„ã‚‹å ´åˆã¯
+ å˜ãªã‚‹ st.h ã§ã¯ãªã ruby/st.h を使用ã™ã‚‹ï¼Ž
-enable_config(config, *defaults)
-disable_config(config, *defaults)
+RB_EVENT_HOOKS_HAVE_CALLBACK_DATA ::
- ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--enable-<config>¤Þ¤¿¤Ï
- --disable-<config>¤Ç»ØÄꤵ¤ì¤¿¿¿µ¶ÃͤòÆÀ¤ë¡¥
- --enable-<config>¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ïtrue¡¤
- --disable-<config>¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡¥
- ¤É¤Á¤é¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤¥Ö¥í¥Ã¥¯¤Ä¤­¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï
- *defaults¤òyield¤·¤¿·ë²Ì¡¤¥Ö¥í¥Ã¥¯¤Ê¤·¤Ê¤é*defaults¤òÊÖ¤¹¡¥
+ rb_add_event_hook() ãŒãƒ•ãƒƒã‚¯é–¢æ•°ã«æ¸¡ã™ data を第3引数ã¨ã—ã¦
+ å—ã‘å–ã‚‹ã“ã¨ã‚’æ„味ã™ã‚‹ï¼Ž
-dir_config(target[, default_dir])
-dir_config(target[, default_include, default_lib])
+= Appendix C. extconf.rbã§ä½¿ãˆã‚‹é–¢æ•°ãŸã¡
- ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--with-<target>-dir, --with-<target>-include,
- --with-<target>-lib¤Î¤¤¤º¤ì¤«¤Ç»ØÄꤵ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò
- $CFLAGS ¤ä $LDFLAGS ¤ËÄɲ乤롥--with-<target>-dir=/path¤Ï
+extconf.rbã®ä¸­ã§ã¯åˆ©ç”¨å¯èƒ½ãªã‚³ãƒ³ãƒ‘イルæ¡ä»¶ãƒã‚§ãƒƒã‚¯ã®é–¢æ•°ã¯ä»¥
+下ã®é€šã‚Šã§ã‚る.
+
+have_macro(macro, headers) ::
+
+ ヘッダファイルheaderをインクルードã—ã¦ãƒžã‚¯ãƒ­macroãŒå®šç¾©ã•
+ れã¦ã„ã‚‹ã‹ã©ã†ã‹ãƒã‚§ãƒƒã‚¯ã™ã‚‹ï¼Žãƒžã‚¯ãƒ­ãŒå®šç¾©ã•れã¦ã„る時true
+ ã‚’è¿”ã™ï¼Ž
+
+have_library(lib, func) ::
+
+ 関数funcを定義ã—ã¦ã„るライブラリlibã®å­˜åœ¨ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ï¼Ž
+ ãƒã‚§ãƒƒã‚¯ã«æˆåŠŸã™ã‚‹ã¨ï¼Œ-llibã‚’$libsã«è¿½åŠ ã—,trueã‚’è¿”ã™ï¼Ž
+
+find_library(lib, func, path...) ::
+
+ 関数funcを定義ã—ã¦ã„るライブラリlibã®å­˜åœ¨ã‚’ -Lpath を追加
+ ã—ãªãŒã‚‰ãƒã‚§ãƒƒã‚¯ã™ã‚‹ï¼Žãƒã‚§ãƒƒã‚¯ã«æˆåŠŸã™ã‚‹ã¨ï¼Œ-llibã‚’$libsã«
+ 追加ã—,trueã‚’è¿”ã™ï¼Ž
+
+have_func(func, header) ::
+
+ ヘッダファイルheaderをインクルードã—ã¦é–¢æ•°funcã®å­˜åœ¨ã‚’ãƒã‚§
+ ックã™ã‚‹ï¼ŽfuncãŒæ¨™æº–ã§ã¯ãƒªãƒ³ã‚¯ã•れãªã„ライブラリ内ã®ã‚‚ã®ã§
+ ã‚る時ã«ã¯å…ˆã«have_libraryã§ãã®ãƒ©ã‚¤ãƒ–ラリをãƒã‚§ãƒƒã‚¯ã—ã¦ãŠ
+ ã事.ãƒã‚§ãƒƒã‚¯ã«æˆåŠŸã™ã‚‹ã¨ï¼Œãƒ—リプロセッサマクロ
+ `HAVE_{FUNC}` を定義ã—,trueã‚’è¿”ã™ï¼Ž
+
+have_var(var, header) ::
+
+ ヘッダファイルheaderをインクルードã—ã¦å¤‰æ•°varã®å­˜åœ¨ã‚’ãƒã‚§ãƒƒ
+ クã™ã‚‹ï¼ŽvarãŒæ¨™æº–ã§ã¯ãƒªãƒ³ã‚¯ã•れãªã„ライブラリ内ã®ã‚‚ã®ã§ã‚
+ る時ã«ã¯å…ˆã«have_libraryã§ãã®ãƒ©ã‚¤ãƒ–ラリをãƒã‚§ãƒƒã‚¯ã—ã¦ãŠã
+ 事.ãƒã‚§ãƒƒã‚¯ã«æˆåŠŸã™ã‚‹ã¨ï¼Œãƒ—リプロセッサマクロ
+ `HAVE_{VAR}` を定義ã—,trueã‚’è¿”ã™ï¼Ž
+
+have_header(header) ::
+
+ ヘッダファイルã®å­˜åœ¨ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ï¼Žãƒã‚§ãƒƒã‚¯ã«æˆåŠŸã™ã‚‹ã¨ï¼Œ
+ プリプロセッサマクロ `HAVE_{HEADER_H}` を定義ã—,trueã‚’è¿”ã™ï¼Ž
+ (スラッシュやドットã¯ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢ã«ç½®æ›ã•れる)
+
+find_header(header, path...) ::
+
+ ヘッダファイルheaderã®å­˜åœ¨ã‚’ -Ipath を追加ã—ãªãŒã‚‰ãƒã‚§ãƒƒã‚¯
+ ã™ã‚‹ï¼Žãƒã‚§ãƒƒã‚¯ã«æˆåŠŸã™ã‚‹ã¨ï¼Œãƒ—リプロセッサマクロ
+ `HAVE_{HEADER_H}` を定義ã—,trueã‚’è¿”ã™ï¼Ž
+ (スラッシュやドットã¯ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢ã«ç½®æ›ã•れる)
+
+have_struct_member(type, member[, header[, opt]]) ::
+
+ ヘッダファイルheaderをインクルードã—ã¦åž‹typeãŒå®šç¾©ã•れ,
+ ãªãŠã‹ã¤ãƒ¡ãƒ³ãƒmemberãŒå­˜åœ¨ã™ã‚‹ã‹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ï¼Žãƒã‚§ãƒƒã‚¯ã«
+ æˆåŠŸã™ã‚‹ã¨ï¼Œãƒ—リプロセッサマクロ `HAVE_{TYPE}_{MEMBER}` ã‚’
+ 定義ã—,trueã‚’è¿”ã™ï¼Ž
+
+have_type(type, header, opt) ::
+
+ ヘッダファイルheaderをインクルードã—ã¦åž‹typeãŒå­˜åœ¨ã™ã‚‹ã‹ã‚’
+ ãƒã‚§ãƒƒã‚¯ã™ã‚‹ï¼Žãƒã‚§ãƒƒã‚¯ã«æˆåŠŸã™ã‚‹ã¨ï¼Œãƒ—リプロセッサマクロ
+ `HAVE_TYPE_{TYPE}` を定義ã—,trueã‚’è¿”ã™ï¼Ž
+
+check_sizeof(type, header) ::
+
+ ヘッダファイルheaderをインクルードã—ã¦åž‹typeã®charå˜ä½ã‚µã‚¤
+ ズを調ã¹ã‚‹ï¼Žãƒã‚§ãƒƒã‚¯ã«æˆåŠŸã™ã‚‹ã¨ï¼Œãƒ—リプロセッサマクロ
+ `SIZEOF_{TYPE}` を定義ã—,ãã®ã‚µã‚¤ã‚ºã‚’è¿”ã™ï¼Žå®šç¾©ã•れã¦ã„ãª
+ ã„ã¨ãã¯nilã‚’è¿”ã™ï¼Ž
+
+create_makefile(target[, target_prefix]) ::
+
+ 拡張ライブラリ用ã®Makefileを生æˆã™ã‚‹ï¼Žã“ã®é–¢æ•°ã‚’呼ã°ãªã‘れ
+ ã°ãã®ãƒ©ã‚¤ãƒ–ラリã¯ã‚³ãƒ³ãƒ‘イルã•れãªã„.targetã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å
+ を表ã™ï¼Ž
+
+find_executable(command, path) ::
+
+ コマンドcommandã‚’File::PATH_SEPARATORã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒ‘スåã®
+ リストpathã‹ã‚‰æŽ¢ã™ï¼ŽpathãŒnilã¾ãŸã¯çœç•¥ã•れãŸå ´åˆã¯ï¼Œç’°å¢ƒ
+ 変数PATHã®å€¤ã‚’使用ã™ã‚‹ï¼Žå®Ÿè¡Œå¯èƒ½ãªã‚³ãƒžãƒ³ãƒ‰ãŒè¦‹ã¤ã‹ã£ãŸå ´åˆ
+ ã¯ãƒ‘スをå«ã‚€ãƒ•ァイルå,見ã¤ã‹ã‚‰ãªã‹ã£ãŸå ´åˆã¯nilã‚’è¿”ã™ï¼Ž
+
+with_config(withval[, default=nil]) ::
+
+ コマンドライン上ã®--with-<withval>ã§æŒ‡å®šã•れãŸã‚ªãƒ—ション値
+ を得る.
+
+enable_config(config, *defaults) ::
+disable_config(config, *defaults) ::
+
+ コマンドライン上ã®--enable-<config>ã¾ãŸã¯
+ --disable-<config>ã§æŒ‡å®šã•れãŸçœŸå½å€¤ã‚’得る.
+ --enable-<config>ãŒæŒ‡å®šã•れã¦ã„ãŸå ´åˆã¯true,
+ --disable-<config>ãŒæŒ‡å®šã•れã¦ã„ãŸå ´åˆã¯falseã‚’è¿”ã™ï¼Ž
+ ã©ã¡ã‚‰ã‚‚指定ã•れã¦ã„ãªã„å ´åˆã¯ï¼Œãƒ–ロックã¤ãã§å‘¼ã³å‡ºã•れã¦
+ ã„ã‚‹å ´åˆã¯*defaultsã‚’yieldã—ãŸçµæžœï¼Œãƒ–ロックãªã—ãªã‚‰
+ *defaultsã‚’è¿”ã™ï¼Ž
+
+dir_config(target[, default_dir]) ::
+dir_config(target[, default_include, default_lib]) ::
+
+ コマンドライン上ã®--with-<target>-dir, --with-<target>-include,
+ --with-<target>-libã®ã„ãšã‚Œã‹ã§æŒ‡å®šã•れるディレクトリを
+ $CFLAGS ã‚„ $LDFLAGS ã«è¿½åŠ ã™ã‚‹ï¼Ž--with-<target>-dir=/pathã¯
--with-<target>-include=/path/include --with-<target>-lib=/path/lib
- ¤ÈÅù²Á¤Ç¤¢¤ë¡¥Äɲ䵤줿 include ¥Ç¥£¥ì¥¯¥È¥ê¤È lib ¥Ç¥£¥ì¥¯¥È¥ê¤Î
- ÇÛÎó¤òÊÖ¤¹¡¥ ([include_dir, lib_dir])
+ ã¨ç­‰ä¾¡ã§ã‚る.追加ã•れ㟠include ディレクトリ㨠lib ディレ
+ クトリã®é…列を返ã™ï¼Ž ([include_dir, lib_dir])
+
+pkg_config(pkg, option=nil) ::
+
+ pkg-configコマンドã‹ã‚‰ãƒ‘ッケージpkgã®æƒ…報を [cflags, ldflags, libs]
+ ã®é…列ã¨ã—ã¦å¾—る.$CFLAGS, $LDFLAGS, $libs ã«ã¯ãれãžã‚Œã®å€¤ãŒ
+ 追加ã•れる.
+
+ pkg-configã®å®Ÿéš›ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ï¼Œä»¥ä¸‹ã®é †ã§è©¦ã•れる.
-pkg_config(pkg)
+ 1. コマンドラインã§--with-{pkg}-config={command}オプションãŒ
+ 指定ã•れãŸå ´åˆ: {command} {option}
+ 2. {pkg}-config {option}
+ 3. pkg-config {option} {pkg}
- pkg-config¥³¥Þ¥ó¥É¤«¤é¥Ñ¥Ã¥±¡¼¥¸pkg¤Î¾ðÊó¤òÆÀ¤ë¡¥
- pkg-config¤Î¼ÂºÝ¤Î¥³¥Þ¥ó¥É̾¤Ï¡¤--with-pkg-config¥³¥Þ¥ó¥É
- ¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç»ØÄê²Äǽ¡¥
+ optionãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€ä¸Šè¨˜ã®é…列ã®ä»£ã‚りã«ãã®ã‚ªãƒ—ションを
+ 指定ã—ã¦å¾—られãŸå‡ºåŠ›ã‚’stripã—ãŸã‚‚ã®ã‚’è¿”ã™ï¼Ž
/*
* Local variables:
diff --git a/README.ja b/README.ja
index df8cfc03f4..9ab2f3ca0e 100644
--- a/README.ja
+++ b/README.ja
@@ -1,160 +1,192 @@
-* Ruby¤È¤Ï
+= Rubyã¨ã¯
-Ruby¤Ï¥·¥ó¥×¥ë¤«¤Ä¶¯ÎϤʥª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥¹¥¯¥ê¥×¥È¸À¸ì¤Ç¤¹¡¥
-Ruby¤ÏºÇ½é¤«¤é½ã¿è¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¸À¸ì¤È¤·¤ÆÀ߷פµ¤ì¤Æ¤¤¤Þ
-¤¹¤«¤é¡¤¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤ò¼ê·Ú¤Ë¹Ô¤¦»ö¤¬½ÐÍè¤Þ
-¤¹¡¥¤â¤Á¤í¤óÄ̾ï¤Î¼ê³¤­·¿¤Î¥×¥í¥°¥é¥ß¥ó¥°¤â²Äǽ¤Ç¤¹¡¥
+Rubyã¯ã‚·ãƒ³ãƒ—ルã‹ã¤å¼·åŠ›ãªã‚ªãƒ–ジェクト指å‘スクリプト言語ã§ã™ï¼Ž
+Rubyã¯æœ€åˆã‹ã‚‰ç´”粋ãªã‚ªãƒ–ジェクト指å‘言語ã¨ã—ã¦è¨­è¨ˆã•れã¦ã„ã¾
+ã™ã‹ã‚‰ï¼Œã‚ªãƒ–ジェクト指å‘プログラミングを手軽ã«è¡Œã†äº‹ãŒå‡ºæ¥ã¾
+ã™ï¼Žã‚‚ã¡ã‚ã‚“é€šå¸¸ã®æ‰‹ç¶šãåž‹ã®ãƒ—ログラミングもå¯èƒ½ã§ã™ï¼Ž
-Ruby¤Ï¥Æ¥­¥¹¥È½èÍý´Ø·¸¤ÎǽÎϤʤɤËÍ¥¤ì¡¤Perl¤ÈƱ¤¸¤¯¤é¤¤¶¯ÎÏ
-¤Ç¤¹¡¥¤µ¤é¤Ë¥·¥ó¥×¥ë¤Êʸˡ¤È¡¤Îã³°½èÍý¤ä¥¤¥Æ¥ì¡¼¥¿¤Ê¤É¤Îµ¡¹½
-¤Ë¤è¤Ã¤Æ¡¤¤è¤êʬ¤«¤ê¤ä¤¹¤¤¥×¥í¥°¥é¥ß¥ó¥°¤¬½ÐÍè¤Þ¤¹¡¥
+Rubyã¯ãƒ†ã‚­ã‚¹ãƒˆå‡¦ç†é–¢ä¿‚ã®èƒ½åŠ›ãªã©ã«å„ªã‚Œï¼ŒPerlã¨åŒã˜ãらã„強力
+ã§ã™ï¼Žã•らã«ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•ã¨ï¼Œä¾‹å¤–処ç†ã‚„イテレータãªã©ã®æ©Ÿæ§‹
+ã«ã‚ˆã£ã¦ï¼Œã‚ˆã‚Šåˆ†ã‹ã‚Šã‚„ã™ã„プログラミングãŒå‡ºæ¥ã¾ã™ï¼Ž
-* Ruby¤ÎÆÃĹ
+== Rubyã®ç‰¹é•·
- + ¥·¥ó¥×¥ë¤Êʸˡ
- + ÉáÄ̤Υª¥Ö¥¸¥§¥¯¥È»Ø¸þµ¡Ç½(¥¯¥é¥¹¡¤¥á¥½¥Ã¥É¥³¡¼¥ë¤Ê¤É)
- + ÆÃ¼ì¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þµ¡Ç½(Mixin, ÆÃ°Û¥á¥½¥Ã¥É¤Ê¤É)
- + ±é»»»Ò¥ª¡¼¥Ð¡¼¥í¡¼¥É
- + Îã³°½èÍýµ¡Ç½
- + ¥¤¥Æ¥ì¡¼¥¿¤È¥¯¥í¡¼¥¸¥ã
- + ¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿
- + ¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥Ç¥£¥ó¥° (¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤ë)
- + °Ü¿¢À­¤¬¹â¤¤¡¥Â¿¤¯¤ÎUNIX¾å¤Çư¤¯¤À¤±¤Ç¤Ê¤¯¡¤DOS¤äWindows¡¤
- Mac¡¤BeOS¤Ê¤É¤Î¾å¤Ç¤âư¤¯
+* ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•
+* 普通ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(クラス,メソッドコールãªã©)
+* 特殊ãªã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(Mixin, 特異メソッドãªã©)
+* 演算å­ã‚ªãƒ¼ãƒãƒ¼ãƒ­ãƒ¼ãƒ‰
+* ä¾‹å¤–å‡¦ç†æ©Ÿèƒ½
+* イテレータã¨ã‚¯ãƒ­ãƒ¼ã‚¸ãƒ£
+* ガーベージコレクタ
+* ダイナミックローディング (アーキテクãƒãƒ£ã«ã‚ˆã‚‹)
+* ç§»æ¤æ€§ãŒé«˜ã„.多ãã®Unix-like/POSIX互æ›ãƒ—ラットフォーム上ã§
+ å‹•ãã ã‘ã§ãªã,Windows, Mac OS X,BeOSãªã©ã®ä¸Šã§ã‚‚å‹•ã
+ cf. http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatformsJa
+== 入手法
-* Æþ¼êË¡
+=== FTPã§
-** FTP¤Ç
+以下ã®å ´æ‰€ã«ãŠã„ã¦ã‚りã¾ã™ï¼Ž
-°Ê²¼¤Î¾ì½ê¤Ë¤ª¤¤¤Æ¤¢¤ê¤Þ¤¹¡¥
+ftp://ftp.ruby-lang.org/pub/ruby/
- ftp://ftp.ruby-lang.org/pub/ruby/
+=== Subversionã§
-** Subversion¤Ç
-
-ËÜ¥Ö¥é¥ó¥Á¤ÎRuby¤ÎºÇ¿·¤Î¥½¡¼¥¹¥³¡¼¥É¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤Ç¼èÆÀ¤Ç¤­¤Þ¤¹¡¥
-
- $ svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_6/
-
-³«È¯Àèü¤Î¥½¡¼¥¹¥³¡¼¥É¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤Ç¼èÆÀ¤Ç¤­¤Þ¤¹¡¥
+開発先端ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§å–å¾—ã§ãã¾ã™ï¼Ž
$ 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¤Ï
+Rubyã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®URLã¯
- http://www.ruby-lang.org/
+http://www.ruby-lang.org/
-¤Ç¤¹¡¥
+ã§ã™ï¼Ž
-* ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È
+== メーリングリスト
-Ruby¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬¤¢¤ê¤Þ¤¹¡£»²²Ã´õ˾¤ÎÊý¤Ï
+Rubyã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆãŒã‚りã¾ã™ã€‚å‚åŠ å¸Œæœ›ã®æ–¹ã¯
- ruby-list-ctl@ruby-lang.org
+mailto:ruby-list-ctl@ruby-lang.org
-¤Þ¤ÇËÜʸ¤Ë
+ã¾ã§æœ¬æ–‡ã«
subscribe YourFirstName YourFamilyName
-
-¤È½ñ¤¤¤ÆÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
-Ruby³«È¯¼Ô¸þ¤±¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Á¤é¤Ç¤Ïruby¤Î¥Ð
-¥°¡¢¾­Íè¤Î»ÅÍͳÈÄ¥¤Ê¤É¼ÂÁõ¾å¤ÎÌäÂê¤Ë¤Ä¤¤¤ÆµÄÏÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-»²²Ã´õ˾¤ÎÊý¤Ï
+ã¨æ›¸ã„ã¦é€ã£ã¦ä¸‹ã•ã„。
+
+Ruby開発者å‘ã‘メーリングリストもã‚りã¾ã™ã€‚ã“ã¡ã‚‰ã§ã¯rubyã®ãƒ
+ã‚°ã€å°†æ¥ã®ä»•様拡張ãªã©å®Ÿè£…上ã®å•題ã«ã¤ã„ã¦è­°è«–ã•れã¦ã„ã¾ã™ã€‚
+å‚åŠ å¸Œæœ›ã®æ–¹ã¯
+
+mailto:ruby-dev-ctl@ruby-lang.org
+
+ã¾ã§ruby-listã¨åŒæ§˜ã®æ–¹æ³•ã§ãƒ¡ãƒ¼ãƒ«ã—ã¦ãã ã•ã„。
+
+Ruby拡張モジュールã«ã¤ã„ã¦è©±ã—åˆã†ruby-extメーリングリストã¨
+数学関係ã®è©±é¡Œã«ã¤ã„ã¦è©±ã—åˆã†ruby-mathメーリングリストã¨
+英語ã§è©±ã—åˆã†ruby-talkメーリングリストもã‚りã¾ã™ã€‚å‚加方法
+ã¯ã©ã‚Œã‚‚åŒã˜ã§ã™ã€‚
+
- 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+ を編集ã™ã‚‹
- 1. ¤â¤·configure¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¤¡¢¤â¤·¤¯¤Ï
- configure.in¤è¤ê¸Å¤¤¤è¤¦¤Ê¤é¡¢autoconf¤ò¼Â¹Ô¤·¤Æ
- ¿·¤·¤¯configure¤òÀ¸À®¤¹¤ë
+ 多分,必è¦ç„¡ã„ã¨æ€ã„ã¾ã™ï¼Ž
- 2. configure¤ò¼Â¹Ô¤·¤ÆMakefile¤Ê¤É¤òÀ¸À®¤¹¤ë
+4. (å¿…è¦ãªã‚‰ã°)+ext/Setup+ ã«é™çš„ã«ãƒªãƒ³ã‚¯ã™ã‚‹æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’
+ 指定ã™ã‚‹
- 3. (ɬÍפʤé¤Ð)defines.h¤òÊÔ½¸¤¹¤ë
+ +ext/Setup+ ã«è¨˜è¿°ã—ãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯é™çš„ã«ãƒªãƒ³ã‚¯ã•れã¾ã™ï¼Ž
- ¿ʬ¡¤É¬Í×̵¤¤¤È»×¤¤¤Þ¤¹¡¥
+ ダイナミックローディングをサãƒãƒ¼ãƒˆã—ã¦ã„ãªã„アーキテク
+ ãƒãƒ£ã§ã¯ +Setup+ ã®1行目ã®ã€Œ<tt>option nodynamic</tt>ã€ã¨ã„ã†è¡Œã®ã‚³
+ メントを外ã™å¿…è¦ãŒã‚りã¾ã™ï¼Žã¾ãŸï¼Œã“ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§
+ 拡張モジュールを利用ã™ã‚‹ãŸã‚ã«ã¯ï¼Œã‚らã‹ã˜ã‚é™çš„ã«ãƒªãƒ³
+ クã—ã¦ãŠãå¿…è¦ãŒã‚りã¾ã™ï¼Ž
- 4. (ɬÍפʤé¤Ð)ext/Setup¤ËÀÅŪ¤Ë¥ê¥ó¥¯¤¹¤ë³ÈÄ¥¥â¥¸¥å¡¼¥ë¤ò
- »ØÄꤹ¤ë
+5. +make+ を実行ã—ã¦ã‚³ãƒ³ãƒ‘イルã™ã‚‹
- ext/Setup¤Ëµ­½Ò¤·¤¿¥â¥¸¥å¡¼¥ë¤ÏÀÅŪ¤Ë¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡¥
+6. <tt>make check</tt>ã§ãƒ†ã‚¹ãƒˆã‚’行ã†ï¼Ž
- ¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥Ç¥£¥ó¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥¢¡¼¥­¥Æ¥¯
- ¥Á¥ã¤Ç¤ÏSetup¤Î1¹ÔÌܤΡÖoption nodynamic¡×¤È¤¤¤¦¹Ô¤Î¥³
- ¥á¥ó¥È¤ò³°¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥¤Þ¤¿¡¤¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç
- ³ÈÄ¥¥â¥¸¥å¡¼¥ë¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¤¤¢¤é¤«¤¸¤áÀÅŪ¤Ë¥ê¥ó
- ¥¯¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥
+ 「<tt>check succeeded</tt>ã€ã¨è¡¨ç¤ºã•ã‚Œã‚Œã°æˆåŠŸã§ã™ï¼ŽãŸã ã—テスト
+ ã«æˆåŠŸã—ã¦ã‚‚完璧ã ã¨ä¿è¨¼ã•れã¦ã„る訳ã§ã¯ã‚りã¾ã›ã‚“.
- 5. make¤ò¼Â¹Ô¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë
+7. <tt>make install</tt>
- 6. make test¤Ç¥Æ¥¹¥È¤ò¹Ô¤¦¡¥
+ 以下ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’作ã£ã¦ï¼Œãã“ã«ãƒ•ァイルをインストー
+ ルã—ã¾ã™ï¼Ž
- ¡Ötest succeeded¡×¤Èɽ¼¨¤µ¤ì¤ì¤ÐÀ®¸ù¤Ç¤¹¡¥¤¿¤À¤·¥Æ¥¹¥È
- ¤ËÀ®¸ù¤·¤Æ¤â´°àú¤À¤ÈÊݾڤµ¤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥
+ * <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>
- 7. make install
+ Rubyã®APIãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒ'_x.y.z_'ã§ã‚れã°ï¼Œ<tt>${MAJOR}</tt>ã¯
+ '_x_'ã§ï¼Œ<tt>${MINOR}</tt>ã¯'_y_',<tt>${TEENY}</tt>ã¯'_z_'ã§ã™ï¼Ž
- root¤Çºî¶È¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥
+ <b>注æ„</b>: APIãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® +teeny+ ã¯ï¼ŒRubyプログラムã®ãƒãƒ¼ã‚¸ãƒ§
+ ンã¨ã¯ç•°ãªã‚‹ã“ã¨ãŒã‚りã¾ã™ï¼Ž
-¤â¤·¡¤¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤Î¥í¥°¤È¥Þ
-¥·¥ó¡¤OS¤Î¼ïÎà¤ò´Þ¤à¤Ç¤­¤ë¤À¤±¾Ü¤·¤¤¥ì¥Ý¡¼¥È¤òºî¼Ô¤ËÁ÷¤Ã¤Æ¤¯
-¤À¤µ¤ë¤È¾¤ÎÊý¤Î¤¿¤á¤Ë¤â¤Ê¤ê¤Þ¤¹¡¥
+ +root+ ã§ä½œæ¥­ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“.
+ã‚‚ã—,コンパイル時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã«ã¯ã‚¨ãƒ©ãƒ¼ã®ãƒ­ã‚°ã¨ãƒž
+シン,OSã®ç¨®é¡žã‚’å«ã‚€ã§ãã‚‹ã ã‘詳ã—ã„レãƒãƒ¼ãƒˆã‚’作者ã«é€ã£ã¦ã
+ã ã•ã‚‹ã¨ä»–ã®æ–¹ã®ãŸã‚ã«ã‚‚ãªã‚Šã¾ã™ï¼Ž
-* °Ü¿¢
-UNIX¤Ç¤¢¤ì¤Ðconfigure¤¬¤Û¤È¤ó¤É¤Îº¹°Û¤òµÛ¼ý¤·¤Æ¤¯¤ì¤ë¤Ï¤º¤Ç
-¤¹¤¬¡¤»×¤ï¤Ì¸«Íî¤È¤·¤¬¤¢¤Ã¤¿¾ì¹ç(¤¢¤ë¤Ë°ã¤¤¤Ê¤¤)¡¤ºî¼Ô¤Ë¤½¤Î
-¤³¤È¤ò¥ì¥Ý¡¼¥È¤¹¤ì¤Ð¡¤²ò·è¤Ç¤­¤ë¤«¤âÃΤì¤Þ¤»¤ó¡¥
+== ç§»æ¤
-¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤â¤Ã¤È¤â°Í¸¤¹¤ë¤Î¤ÏGCÉô¤Ç¤¹¡¥Ruby¤ÎGC¤ÏÂоÝ
-¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬setjmp()¤Ë¤è¤Ã¤ÆÁ´¤Æ¤Î¥ì¥¸¥¹¥¿¤ò jmp_buf¤Ë
-³ÊǼ¤¹¤ë¤³¤È¤È¡¤jmp_buf¤È¥¹¥¿¥Ã¥¯¤¬32bit¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ
-¤¤¤ë¤³¤È¤ò²¾Äꤷ¤Æ¤¤¤Þ¤¹¡¥ÆÃ¤ËÁ°¼Ô¤¬À®Î©¤·¤Ê¤¤¾ì¹ç¤ÎÂбþ¤ÏÈó
-¾ï¤Ëº¤Æñ¤Ç¤·¤ç¤¦¡¥¸å¼Ô¤Î²ò·è¤ÏÈæ³ÓŪ´Êñ¤Ç¡¤gc.c¤Ç¥¹¥¿¥Ã¥¯¤ò
-¥Þ¡¼¥¯¤·¤Æ¤¤¤ëÉôʬ¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤Î¥Ð¥¤¥È¿ô¤À¤±¤º¤é¤·¤Æ¥Þ¡¼
-¥¯¤¹¤ë¥³¡¼¥É¤òÄɲ乤ë¤À¤±¤ÇºÑ¤ß¤Þ¤¹¡¥¡Ödefined(THINK_C)¡×¤Ç
-³ç¤é¤ì¤Æ¤¤¤ëÉôʬ¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤
+UNIXã§ã‚れ㰠+configure+ ãŒã»ã¨ã‚“ã©ã®å·®ç•°ã‚’å¸åŽã—ã¦ãれるã¯ãšã§
+ã™ãŒï¼Œæ€ã‚ã¬è¦‹è½ã¨ã—ãŒã‚ã£ãŸå ´åˆ(ã‚ã‚‹ã«é•ã„ãªã„),作者ã«ãã®
+ã“ã¨ã‚’レãƒãƒ¼ãƒˆã™ã‚Œã°ï¼Œè§£æ±ºã§ãã‚‹ã‹ã‚‚知れã¾ã›ã‚“.
-# ¼ÂºÝ¤Ë¤ÏRuby¤ÏThink C¤Ç¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤»¤ó¡¥
+アーキテクãƒãƒ£ã«ã‚‚ã£ã¨ã‚‚ä¾å­˜ã™ã‚‹ã®ã¯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¤Ç¤Ï¡¤¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¤ò¥¹¥¿¥Ã
-¥¯¤Ë¥Õ¥é¥Ã¥·¥å¤¹¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤òÄɲ乤ëɬÍפ¬¤¢¤ë¤«¤âÃÎ
-¤ì¤Þ¤»¤ó¡¥
+レジスタウィンドウをæŒã¤CPUã§ã¯ï¼Œãƒ¬ã‚¸ã‚¹ã‚¿ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’スタッ
+クã«ãƒ•ラッシュã™ã‚‹ã‚¢ã‚»ãƒ³ãƒ–ラコードを追加ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚知
+れã¾ã›ã‚“.
-* ÇÛÉÛ¾ò·ï
+== é…布æ¡ä»¶
-COPYING.ja¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
++COPYING.ja+ ファイルをå‚ç…§ã—ã¦ãã ã•ã„。
-* Ãø¼Ô
+== 著者
-¥³¥á¥ó¥È¡¤¥Ð¥°¥ì¥Ý¡¼¥È¤½¤Î¾¤Ï matz@netlab.jp ¤Þ¤Ç¡¥
+コメント,ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆãã®ä»–㯠mailto:matz@ruby-lang.org ã¾ã§ï¼Ž
-------------------------------------------------------
created at: Thu Aug 3 11:57:36 JST 1995
+--
Local variables:
-mode: indented-text
+mode: rdoc
end:
diff --git a/ToDo b/ToDo
deleted file mode 100644
index b55e399edf..0000000000
--- a/ToDo
+++ /dev/null
@@ -1,126 +0,0 @@
-Language Spec.
-
-- Class#allocate - basicNew
-- class Foo::Bar<Baz .. end, module Boo::Bar .. end
-* operator !! for rescue. ???
-* objectify characters
-* ../... outside condition invokes operator method too.
-* ... inside condition turns off just before right condition.???
-* package or access control for global variables??
-* named arguments like foo(nation:="german") or foo(nation: "german").
-* method to retrieve argument information (needs new C API)
-* multiple return values, yield values. maybe incompatible ???
-* cascading method invocation ???
-* def Class#method .. end ??
-* def Foo::Bar::baz() .. end ??
-* I18N (or M17N) script/string/regexp
-* Fixnum 0 as false ????
-* discourage use of symbol variables (e.g. $/, etc.) in manual
-* discourage use of Perlish features by giving warnings.
-* non confusing in-block local variable (is it possible?)
- + remove scope by block
- + variables appears within block may have independent values.
-* Regexp: make /o thread safe.
-* decide whether begin with rescue or ensure make do..while loop.
-* a +1 to be a+1, not a(+1).
-* unify == and eql? again
-* to_i returns nil if str contains no digit.
-* raise exception by `` error
-* jar like combined library package. -> RubyGems?
-* resumable Exception via Exception#resume.
-* method combination, e.g. before, after, around, etc.
-* .. or something like defadvice in Emacs.
-* property - for methods, or for objects in general.
-* "in" modifier, to annotate, or to encourage assertion.
-* selector namespace - something like generic-flet in CLOS, to help RubyBehavior
-* private instance variable (as in Python?) @_foo in class Foo => @_Foo_foo
-* warn/error "bare word" method, like "foo", you should type "foo()"
-* clarify evaluation order of operator argument (=~, .., ...)
-* :symbol => value hash in the form of {symbol: value, ...} ??
-
-Hacking Interpreter
-
-- generational GC
-* non-blocking open (e.g. for named pipe) for thread
-* avoid blocking with gethostbyname/gethostbyaddr (use fork ???)
-* objectify interpreters ???
-* remove rb_eval() recursions
-* syntax tree -> bytecode ???
-* scrambled script, or script filter
-* setuid ruby
-* performance tune for in-block (dynamic) local variables.
-* give warnings to assign magic variables.
-* export rb_io_{addstr,printf,puts,print}
-* autoload should work with threads [ruby-talk:4589]
-* remove stdio dependency from IOs.
-* warn for inconsistent local variable usage (lv m and method m at the same time).
-* MicroRuby
-* Built-in Interactive Ruby.
-* Parser API
-* trap every method invocation, which can be enabled by e.g. trap_call :method.
-* unify Errno exceptions of same errno, or new exception comparison scheme.
-* 2.times{|i| if i==0 then a = 15 else puts eval("a") end} should print nil.
-* Thread#max_stack_size attribute (possible??)
-
-Standard Libraries
-
-- Module#define_method which takes a name and a body (block, proc or method).
-- Enume#inject
-- Array#fetch
-- IO::for_fd
-- Process::waitall [ruby-talk:4557]
-- Process::Status
-- File::lchown, File::lchmod; xxx - still need work for non existing platforms
-- move Time::times to Process.
-- Enumerable#sort_by for Schwartzian transformation
-- fork_and_kill_other_threads.
-- signal list (Signal::trap, Signal::list).
-- move NameError under StandardError.
-- Integer#to_s(base)
-- Hash::new{default}
-- hash etc. should handle self referenceing array/hash
-- Array#select(n1,n2...) works like Array#indexes(n1,n2...)
-- use Mersenne Twister RNG for random.
-- deprecate Array#indexes, and Array#indices.
-- remove dependency on MAXPATHLEN.
-* String#scanf(?)
-* Object#fmt(?)
-* Time::strptime
-* Integer[num], Float[num]; Fixnum[num]?
-* method to retrieve non-number trailer for to_i/to_f.
-* Stream or Port, abstract superclass of IO ?
-* String#{pred,prev}, String#downto
-* optional stepsize argument for succ()
-* Ruby module -- Ruby::Version, Ruby::Interpreter
-* introduce Boolean class; super of TrueClass, FalseClass
-* synchronized method - synchronized{...}, synchronized :foo, :bar
-* Array#&, Array#| to allow duplication. ???
-* way to specify immortal (fork endurance) thread;
-* or raise ForkException to every thread but fork caller.
-* new user-defined marshal scheme. _dump(dumper), _load(restorer)
-* library to load per-user profile seeking .ruby_profile or ruby.ini file.
-* warning framework (warn, warning for Ruby level)
-* marshal should not depend on sprintf (works bad with locale).
-* ternary arg pow: a.pow(b,c) == a**b%c
-* new caller(), e.g. call_stack; needs better name.
-* pointer share mechanism similar to one in String for Array.
-* require "1.6" etc. by /usr/lib/ruby/1.6/1.6.rb ;-)
-* save both "feature names" and "normalized path" in $"
-* implement Mutex_m (or MutexMixin) using Mutex.
-
-Extension Libraries
-
-* ptk.rb pTk wrapper that is compatible to tk.rb
-* Berkeley DB extension
-* BitVector
-* thread-safe fcgi
-
-Ruby Libraries
-
-* urllib.rb, nttplib.rb, etc.
-* format like perl's
-
-Tools
-
-* freeze or undump to bundle everything
-* bundle using zlib
diff --git a/addr2line.c b/addr2line.c
new file mode 100644
index 0000000000..f936694724
--- /dev/null
+++ b/addr2line.c
@@ -0,0 +1,1082 @@
+/**********************************************************************
+
+ addr2line.c -
+
+ $Author$
+
+ Copyright (C) 2010 Shinichiro Hamaji
+
+**********************************************************************/
+
+#include "ruby/config.h"
+#include "ruby/missing.h"
+#include "addr2line.h"
+
+#include <stdio.h>
+#include <errno.h>
+
+#ifdef USE_ELF
+
+#include <fcntl.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#ifdef __OpenBSD__
+#include <elf_abi.h>
+#else
+#include <elf.h>
+#endif
+
+/* Make alloca work the best possible way. */
+#ifdef __GNUC__
+# ifndef atarist
+# ifndef alloca
+# define alloca __builtin_alloca
+# endif
+# endif /* atarist */
+#else
+# ifdef HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+#pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+void *alloca();
+# endif
+# endif /* AIX */
+# endif /* HAVE_ALLOCA_H */
+#endif /* __GNUC__ */
+
+#ifdef HAVE_DL_ITERATE_PHDR
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+# endif
+# include <link.h>
+#endif
+
+#define DW_LNS_copy 0x01
+#define DW_LNS_advance_pc 0x02
+#define DW_LNS_advance_line 0x03
+#define DW_LNS_set_file 0x04
+#define DW_LNS_set_column 0x05
+#define DW_LNS_negate_stmt 0x06
+#define DW_LNS_set_basic_block 0x07
+#define DW_LNS_const_add_pc 0x08
+#define DW_LNS_fixed_advance_pc 0x09
+#define DW_LNS_set_prologue_end 0x0a /* DWARF3 */
+#define DW_LNS_set_epilogue_begin 0x0b /* DWARF3 */
+#define DW_LNS_set_isa 0x0c /* DWARF3 */
+
+/* Line number extended opcode name. */
+#define DW_LNE_end_sequence 0x01
+#define DW_LNE_set_address 0x02
+#define DW_LNE_define_file 0x03
+#define DW_LNE_set_discriminator 0x04 /* DWARF4 */
+
+#ifndef ElfW
+# if SIZEOF_VOIDP == 8
+# define ElfW(x) Elf64##_##x
+# else
+# define ElfW(x) Elf32##_##x
+# endif
+#endif
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
+int kprintf(const char *fmt, ...);
+
+typedef struct {
+ const char *dirname;
+ const char *filename;
+ int line;
+
+ int fd;
+ void *mapped;
+ size_t mapped_size;
+ 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];
+
+static unsigned long
+uleb128(char **p)
+{
+ unsigned long r = 0;
+ int s = 0;
+ for (;;) {
+ unsigned char b = *(unsigned char *)(*p)++;
+ if (b < 0x80) {
+ r += (unsigned long)b << s;
+ break;
+ }
+ r += (b & 0x7f) << s;
+ s += 7;
+ }
+ return r;
+}
+
+static long
+sleb128(char **p)
+{
+ long r = 0;
+ int s = 0;
+ for (;;) {
+ unsigned char b = *(unsigned char *)(*p)++;
+ if (b < 0x80) {
+ if (b & 0x40) {
+ r -= (0x80 - b) << s;
+ }
+ else {
+ r += (b & 0x3f) << s;
+ }
+ break;
+ }
+ r += (b & 0x7f) << s;
+ s += 7;
+ }
+ return r;
+}
+
+static const char *
+get_nth_dirname(unsigned long dir, char *p)
+{
+ if (!dir--) {
+ return "";
+ }
+ while (dir--) {
+ while (*p) p++;
+ p++;
+ if (!*p) {
+ kprintf("Unexpected directory number %lu in %s\n",
+ dir, binary_filename);
+ return "";
+ }
+ }
+ return p;
+}
+
+static void
+fill_filename(int file, char *include_directories, char *filenames,
+ line_info_t *line)
+{
+ int i;
+ char *p = filenames;
+ char *filename;
+ unsigned long dir;
+ for (i = 1; i <= file; i++) {
+ filename = p;
+ if (!*p) {
+ /* Need to output binary file name? */
+ kprintf("Unexpected file number %d in %s\n",
+ file, binary_filename);
+ return;
+ }
+ while (*p) p++;
+ p++;
+ dir = uleb128(&p);
+ /* last modified. */
+ uleb128(&p);
+ /* size of the file. */
+ uleb128(&p);
+
+ if (i == file) {
+ line->filename = filename;
+ line->dirname = get_nth_dirname(dir, include_directories);
+ }
+ }
+}
+
+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,
+ unsigned long addr, int file, int line,
+ char *include_directories, char *filenames, line_info_t *lines)
+{
+ int 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) {
+ fill_filename(file, include_directories, filenames, &lines[i]);
+ lines[i].line = line;
+ }
+ }
+}
+
+static void
+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;
+ int default_is_stmt, line_base;
+ unsigned int header_length, minimum_instruction_length, line_range,
+ opcode_base;
+ /* unsigned char *standard_opcode_lengths; */
+
+ /* The registers. */
+ unsigned long addr = 0;
+ unsigned int file = 1;
+ unsigned int line = 1;
+ /* unsigned int column = 0; */
+ int is_stmt;
+ /* int basic_block = 0; */
+ /* int end_sequence = 0; */
+ /* int prologue_end = 0; */
+ /* int epilogue_begin = 0; */
+ /* unsigned int isa = 0; */
+
+ p = *debug_line;
+
+ unit_length = *(unsigned int *)p;
+ p += sizeof(unsigned int);
+ if (unit_length == 0xffffffff) {
+ unit_length = *(unsigned long *)p;
+ p += sizeof(unsigned long);
+ }
+
+ cu_end = p + unit_length;
+
+ /*dwarf_version = *(unsigned short *)p;*/
+ p += 2;
+
+ header_length = *(unsigned int *)p;
+ p += sizeof(unsigned int);
+
+ cu_start = p + header_length;
+
+ minimum_instruction_length = *(unsigned char *)p;
+ p++;
+
+ is_stmt = default_is_stmt = *(unsigned char *)p;
+ p++;
+
+ line_base = *(char *)p;
+ p++;
+
+ line_range = *(unsigned char *)p;
+ p++;
+
+ opcode_base = *(unsigned char *)p;
+ p++;
+
+ /* standard_opcode_lengths = (unsigned char *)p - 1; */
+ p += opcode_base - 1;
+
+ include_directories = p;
+
+ /* skip include directories */
+ while (*p) {
+ while (*p) p++;
+ p++;
+ }
+ p++;
+
+ filenames = p;
+
+ p = cu_start;
+
+#define FILL_LINE() \
+ do { \
+ fill_line(num_traces, traces, addr, file, line, \
+ include_directories, filenames, lines); \
+ /*basic_block = prologue_end = epilogue_begin = 0;*/ \
+ } while (0)
+
+ while (p < cu_end) {
+ unsigned long a;
+ unsigned char op = *p++;
+ switch (op) {
+ case DW_LNS_copy:
+ FILL_LINE();
+ break;
+ case DW_LNS_advance_pc:
+ a = uleb128(&p);
+ addr += a;
+ break;
+ case DW_LNS_advance_line: {
+ long a = sleb128(&p);
+ line += a;
+ break;
+ }
+ case DW_LNS_set_file:
+ file = (unsigned int)uleb128(&p);
+ break;
+ case DW_LNS_set_column:
+ /*column = (unsigned int)*/(void)uleb128(&p);
+ break;
+ case DW_LNS_negate_stmt:
+ is_stmt = !is_stmt;
+ break;
+ case DW_LNS_set_basic_block:
+ /*basic_block = 1; */
+ break;
+ case DW_LNS_const_add_pc:
+ a = ((255 - opcode_base) / line_range) *
+ minimum_instruction_length;
+ addr += a;
+ break;
+ case DW_LNS_fixed_advance_pc:
+ a = *(unsigned char *)p++;
+ addr += a;
+ break;
+ case DW_LNS_set_prologue_end:
+ /* prologue_end = 1; */
+ break;
+ case DW_LNS_set_epilogue_begin:
+ /* epilogue_begin = 1; */
+ break;
+ case DW_LNS_set_isa:
+ /* isa = (unsigned int)*/(void)uleb128(&p);
+ break;
+ case 0:
+ a = *(unsigned char *)p++;
+ op = *p++;
+ switch (op) {
+ case DW_LNE_end_sequence:
+ /* end_sequence = 1; */
+ FILL_LINE();
+ addr = 0;
+ file = 1;
+ line = 1;
+ /* column = 0; */
+ is_stmt = default_is_stmt;
+ /* end_sequence = 0; */
+ /* isa = 0; */
+ break;
+ case DW_LNE_set_address:
+ addr = *(unsigned long *)p;
+ p += sizeof(unsigned long);
+ break;
+ case DW_LNE_define_file:
+ kprintf("Unsupported operation in %s\n",
+ binary_filename);
+ break;
+ case DW_LNE_set_discriminator:
+ /* TODO:currently ignore */
+ uleb128(&p);
+ break;
+ default:
+ kprintf("Unknown extended opcode: %d in %s\n",
+ op, binary_filename);
+ }
+ break;
+ default: {
+ unsigned long addr_incr;
+ unsigned long line_incr;
+ a = op - opcode_base;
+ addr_incr = (a / line_range) * minimum_instruction_length;
+ line_incr = line_base + (a % line_range);
+ addr += (unsigned int)addr_incr;
+ line += (unsigned int)line_incr;
+ FILL_LINE();
+ }
+ }
+ }
+ *debug_line = p;
+}
+
+static void
+parse_debug_line(int num_traces, void **traces,
+ 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, lines);
+ }
+ if (debug_line != debug_line_end) {
+ kprintf("Unexpected size of .debug_line in %s\n",
+ binary_filename);
+ }
+}
+
+/* read file and fill lines */
+static void
+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, 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;
+
+ p = strrchr(binary_filename, '/');
+ if (!p) {
+ return;
+ }
+ p[1] = '\0';
+
+ subdir = (char *)alloca(strlen(binary_filename) + 1);
+ strcpy(subdir, binary_filename);
+ strcpy(binary_filename, global_debug_dir);
+ 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 void
+fill_lines(int num_traces, void **traces, char **syms, int check_debuglink,
+ line_info_t *current_line, line_info_t *lines)
+{
+ int i;
+ char *shstr;
+ char *section_name;
+ ElfW(Ehdr) *ehdr;
+ ElfW(Shdr) *shdr, *shstr_shdr;
+ ElfW(Shdr) *debug_line_shdr = NULL, *gnu_debuglink_shdr = NULL;
+ int fd;
+ off_t filesize;
+ char *file;
+
+ fd = open(binary_filename, O_RDONLY);
+ if (fd < 0) {
+ return;
+ }
+ filesize = lseek(fd, 0, SEEK_END);
+ if (filesize < 0) {
+ int e = errno;
+ close(fd);
+ kprintf("lseek: %s\n", strerror(e));
+ return;
+ }
+#if SIZEOF_OFF_T > SIZEOF_SIZE_T
+ if (filesize > (off_t)SIZE_MAX) {
+ close(fd);
+ kprintf("Too large file %s\n", binary_filename);
+ return;
+ }
+#endif
+ lseek(fd, 0, SEEK_SET);
+ /* async-signal unsafe */
+ file = (char *)mmap(NULL, (size_t)filesize, PROT_READ, MAP_SHARED, fd, 0);
+ if (file == MAP_FAILED) {
+ int e = errno;
+ close(fd);
+ kprintf("mmap: %s\n", strerror(e));
+ return;
+ }
+
+ ehdr = (ElfW(Ehdr) *)file;
+ if (memcmp(ehdr->e_ident, "\177ELF", 4) != 0) {
+ /*
+ * Huh? Maybe filename was overridden by setproctitle() and
+ * it match non-elf file.
+ */
+ close(fd);
+ return;
+ }
+
+ 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);
+
+ shstr_shdr = shdr + ehdr->e_shstrndx;
+ shstr = file + shstr_shdr->sh_offset;
+
+ for (i = 0; i < ehdr->e_shnum; i++) {
+ section_name = shstr + shdr[i].sh_name;
+ if (!strcmp(section_name, ".debug_line")) {
+ debug_line_shdr = shdr + i;
+ break;
+ } else if (!strcmp(section_name, ".gnu_debuglink")) {
+ gnu_debuglink_shdr = shdr + i;
+ }
+ }
+
+ if (!debug_line_shdr) {
+ /* This file doesn't have .debug_line section,
+ let's check .gnu_debuglink section instead. */
+ if (gnu_debuglink_shdr && check_debuglink) {
+ follow_debuglink(file + gnu_debuglink_shdr->sh_offset,
+ num_traces, traces, syms,
+ current_line, lines);
+ }
+ return;
+ }
+
+ parse_debug_line(num_traces, traces,
+ file + debug_line_shdr->sh_offset,
+ debug_line_shdr->sh_size,
+ lines);
+}
+
+#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 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;
+ }
+ }
+ return 0;
+}
+
+#endif /* HAVE_DL_ITERATE_PHDR */
+
+void
+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));
+
+ /* 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);
+ }
+
+ for (i = 0; i < num_traces; i++) {
+ 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);
+ }
+ } else {
+ kprintf("%s\n", syms[i]);
+ }
+ }
+
+ for (i = 0; i < num_traces; i++) {
+ line_info_t *line = &lines[i];
+ if (line->fd) {
+ munmap(line->mapped, line->mapped_size);
+ close(line->fd);
+ }
+ }
+ free(lines);
+}
+
+/* From FreeBSD's lib/libstand/printf.c */
+/*-
+ * Copyright (c) 1986, 1988, 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * 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.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+ *
+ * @(#)subr_prf.c 8.3 (Berkeley) 1/21/94
+ */
+
+#include <stdarg.h>
+#define MAXNBUF (sizeof(intmax_t) * CHAR_BIT + 1)
+extern int rb_toupper(int c);
+#define toupper(c) rb_toupper(c)
+#define hex2ascii(hex) (hex2ascii_data[hex])
+char const hex2ascii_data[] = "0123456789abcdefghijklmnopqrstuvwxyz";
+static inline int imax(int a, int b) { return (a > b ? a : b); }
+static int kvprintf(char const *fmt, void (*func)(int), void *arg, int radix, va_list ap);
+
+static void putce(int c)
+{
+ char s[1];
+ ssize_t ret;
+
+ s[0] = (char)c;
+ ret = write(2, s, 1);
+ (void)ret;
+}
+
+int
+kprintf(const char *fmt, ...)
+{
+ va_list ap;
+ int retval;
+
+ va_start(ap, fmt);
+ retval = kvprintf(fmt, putce, NULL, 10, ap);
+ va_end(ap);
+ return retval;
+}
+
+/*
+ * Put a NUL-terminated ASCII number (base <= 36) in a buffer in reverse
+ * order; return an optional length and a pointer to the last character
+ * written in the buffer (i.e., the first character of the string).
+ * The buffer pointed to by `nbuf' must have length >= MAXNBUF.
+ */
+static char *
+ksprintn(char *nbuf, uintmax_t num, int base, int *lenp, int upper)
+{
+ char *p, c;
+
+ p = nbuf;
+ *p = '\0';
+ do {
+ c = hex2ascii(num % base);
+ *++p = upper ? toupper(c) : c;
+ } while (num /= base);
+ if (lenp)
+ *lenp = (int)(p - nbuf);
+ return (p);
+}
+
+/*
+ * Scaled down version of printf(3).
+ *
+ * Two additional formats:
+ *
+ * The format %b is supported to decode error registers.
+ * Its usage is:
+ *
+ * printf("reg=%b\n", regval, "<base><arg>*");
+ *
+ * where <base> is the output base expressed as a control character, e.g.
+ * \10 gives octal; \20 gives hex. Each arg is a sequence of characters,
+ * the first of which gives the bit number to be inspected (origin 1), and
+ * the next characters (up to a control character, i.e. a character <= 32),
+ * give the name of the register. Thus:
+ *
+ * kvprintf("reg=%b\n", 3, "\10\2BITTWO\1BITONE\n");
+ *
+ * would produce output:
+ *
+ * reg=3<BITTWO,BITONE>
+ *
+ * XXX: %D -- Hexdump, takes pointer and separator string:
+ * ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX
+ * ("%*D", len, ptr, " " -> XX XX XX XX ...
+ */
+static int
+kvprintf(char const *fmt, void (*func)(int), void *arg, int radix, va_list ap)
+{
+#define PCHAR(c) {int cc=(c); if (func) (*func)(cc); else *d++ = cc; retval++; }
+ char nbuf[MAXNBUF];
+ char *d;
+ const char *p, *percent, *q;
+ unsigned char *up;
+ int ch, n;
+ uintmax_t num;
+ int base, lflag, qflag, tmp, width, ladjust, sharpflag, neg, sign, dot;
+ int cflag, hflag, jflag, tflag, zflag;
+ int dwidth, upper;
+ char padc;
+ int stop = 0, retval = 0;
+
+ num = 0;
+ if (!func)
+ d = (char *) arg;
+ else
+ d = NULL;
+
+ if (fmt == NULL)
+ fmt = "(fmt null)\n";
+
+ if (radix < 2 || radix > 36)
+ radix = 10;
+
+ for (;;) {
+ padc = ' ';
+ width = 0;
+ while ((ch = (unsigned char)*fmt++) != '%' || stop) {
+ if (ch == '\0')
+ return (retval);
+ PCHAR(ch);
+ }
+ percent = fmt - 1;
+ qflag = 0; lflag = 0; ladjust = 0; sharpflag = 0; neg = 0;
+ sign = 0; dot = 0; dwidth = 0; upper = 0;
+ cflag = 0; hflag = 0; jflag = 0; tflag = 0; zflag = 0;
+reswitch: switch (ch = (unsigned char)*fmt++) {
+ case '.':
+ dot = 1;
+ goto reswitch;
+ case '#':
+ sharpflag = 1;
+ goto reswitch;
+ case '+':
+ sign = 1;
+ goto reswitch;
+ case '-':
+ ladjust = 1;
+ goto reswitch;
+ case '%':
+ PCHAR(ch);
+ break;
+ case '*':
+ if (!dot) {
+ width = va_arg(ap, int);
+ if (width < 0) {
+ ladjust = !ladjust;
+ width = -width;
+ }
+ } else {
+ dwidth = va_arg(ap, int);
+ }
+ goto reswitch;
+ case '0':
+ if (!dot) {
+ padc = '0';
+ goto reswitch;
+ }
+ case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ for (n = 0;; ++fmt) {
+ n = n * 10 + ch - '0';
+ ch = *fmt;
+ if (ch < '0' || ch > '9')
+ break;
+ }
+ if (dot)
+ dwidth = n;
+ else
+ width = n;
+ goto reswitch;
+ case 'b':
+ num = (unsigned int)va_arg(ap, int);
+ p = va_arg(ap, char *);
+ for (q = ksprintn(nbuf, num, *p++, NULL, 0); *q;)
+ PCHAR(*q--);
+
+ if (num == 0)
+ break;
+
+ for (tmp = 0; *p;) {
+ n = *p++;
+ if (num & (1 << (n - 1))) {
+ PCHAR(tmp ? ',' : '<');
+ for (; (n = *p) > ' '; ++p)
+ PCHAR(n);
+ tmp = 1;
+ } else
+ for (; *p > ' '; ++p)
+ continue;
+ }
+ if (tmp)
+ PCHAR('>');
+ break;
+ case 'c':
+ PCHAR(va_arg(ap, int));
+ break;
+ case 'D':
+ up = va_arg(ap, unsigned char *);
+ p = va_arg(ap, char *);
+ if (!width)
+ width = 16;
+ while(width--) {
+ PCHAR(hex2ascii(*up >> 4));
+ PCHAR(hex2ascii(*up & 0x0f));
+ up++;
+ if (width)
+ for (q=p;*q;q++)
+ PCHAR(*q);
+ }
+ break;
+ case 'd':
+ case 'i':
+ base = 10;
+ sign = 1;
+ goto handle_sign;
+ case 'h':
+ if (hflag) {
+ hflag = 0;
+ cflag = 1;
+ } else
+ hflag = 1;
+ goto reswitch;
+ case 'j':
+ jflag = 1;
+ goto reswitch;
+ case 'l':
+ if (lflag) {
+ lflag = 0;
+ qflag = 1;
+ } else
+ lflag = 1;
+ goto reswitch;
+ case 'n':
+ if (jflag)
+ *(va_arg(ap, intmax_t *)) = retval;
+ else if (qflag)
+ *(va_arg(ap, int64_t *)) = retval;
+ else if (lflag)
+ *(va_arg(ap, long *)) = retval;
+ else if (zflag)
+ *(va_arg(ap, size_t *)) = retval;
+ else if (hflag)
+ *(va_arg(ap, short *)) = retval;
+ else if (cflag)
+ *(va_arg(ap, char *)) = retval;
+ else
+ *(va_arg(ap, int *)) = retval;
+ break;
+ case 'o':
+ base = 8;
+ goto handle_nosign;
+ case 'p':
+ base = 16;
+ sharpflag = (width == 0);
+ sign = 0;
+ num = (uintptr_t)va_arg(ap, void *);
+ goto number;
+ case 'q':
+ qflag = 1;
+ goto reswitch;
+ case 'r':
+ base = radix;
+ if (sign)
+ goto handle_sign;
+ goto handle_nosign;
+ case 's':
+ p = va_arg(ap, char *);
+ if (p == NULL)
+ p = "(null)";
+ if (!dot)
+ n = (int)strlen (p);
+ else
+ for (n = 0; n < dwidth && p[n]; n++)
+ continue;
+
+ width -= n;
+
+ if (!ladjust && width > 0)
+ while (width--)
+ PCHAR(padc);
+ while (n--)
+ PCHAR(*p++);
+ if (ladjust && width > 0)
+ while (width--)
+ PCHAR(padc);
+ break;
+ case 't':
+ tflag = 1;
+ goto reswitch;
+ case 'u':
+ base = 10;
+ goto handle_nosign;
+ case 'X':
+ upper = 1;
+ case 'x':
+ base = 16;
+ goto handle_nosign;
+ case 'y':
+ base = 16;
+ sign = 1;
+ goto handle_sign;
+ case 'z':
+ zflag = 1;
+ goto reswitch;
+handle_nosign:
+ sign = 0;
+ if (jflag)
+ num = va_arg(ap, uintmax_t);
+ else if (qflag)
+ num = va_arg(ap, uint64_t);
+ else if (tflag)
+ num = va_arg(ap, ptrdiff_t);
+ else if (lflag)
+ num = va_arg(ap, unsigned long);
+ else if (zflag)
+ num = va_arg(ap, size_t);
+ else if (hflag)
+ num = (unsigned short)va_arg(ap, int);
+ else if (cflag)
+ num = (unsigned char)va_arg(ap, int);
+ else
+ num = va_arg(ap, unsigned int);
+ goto number;
+handle_sign:
+ if (jflag)
+ num = va_arg(ap, intmax_t);
+ else if (qflag)
+ num = va_arg(ap, int64_t);
+ else if (tflag)
+ num = va_arg(ap, ptrdiff_t);
+ else if (lflag)
+ num = va_arg(ap, long);
+ else if (zflag)
+ num = va_arg(ap, ssize_t);
+ else if (hflag)
+ num = (short)va_arg(ap, int);
+ else if (cflag)
+ num = (char)va_arg(ap, int);
+ else
+ num = va_arg(ap, int);
+number:
+ if (sign && (intmax_t)num < 0) {
+ neg = 1;
+ num = -(intmax_t)num;
+ }
+ p = ksprintn(nbuf, num, base, &n, upper);
+ tmp = 0;
+ if (sharpflag && num != 0) {
+ if (base == 8)
+ tmp++;
+ else if (base == 16)
+ tmp += 2;
+ }
+ if (neg)
+ tmp++;
+
+ if (!ladjust && padc == '0')
+ dwidth = width - tmp;
+ width -= tmp + imax(dwidth, n);
+ dwidth -= n;
+ if (!ladjust)
+ while (width-- > 0)
+ PCHAR(' ');
+ if (neg)
+ PCHAR('-');
+ if (sharpflag && num != 0) {
+ if (base == 8) {
+ PCHAR('0');
+ } else if (base == 16) {
+ PCHAR('0');
+ PCHAR('x');
+ }
+ }
+ while (dwidth-- > 0)
+ PCHAR('0');
+
+ while (*p)
+ PCHAR(*p--);
+
+ if (ladjust)
+ while (width-- > 0)
+ PCHAR(' ');
+
+ break;
+ default:
+ while (percent < fmt)
+ PCHAR(*percent++);
+ /*
+ * Since we ignore an formatting argument it is no
+ * longer safe to obey the remaining formatting
+ * arguments as the arguments will no longer match
+ * the format specs.
+ */
+ stop = 1;
+ break;
+ }
+ }
+#undef PCHAR
+}
+#else /* defined(USE_ELF) */
+#error not supported
+#endif
diff --git a/addr2line.h b/addr2line.h
new file mode 100644
index 0000000000..3782d89e07
--- /dev/null
+++ b/addr2line.h
@@ -0,0 +1,21 @@
+/**********************************************************************
+
+ addr2line.h -
+
+ $Author$
+
+ Copyright (C) 2010 Shinichiro Hamaji
+
+**********************************************************************/
+
+#ifndef RUBY_ADDR2LINE_H
+#define RUBY_ADDR2LINE_H
+
+#ifdef USE_ELF
+
+void
+rb_dump_backtrace_with_lines(int num_traces, void **traces, char **syms);
+
+#endif /* USE_ELF */
+
+#endif /* RUBY_ADDR2LINE_H */
diff --git a/array.c b/array.c
index 503a7adba3..5d01fdb551 100644
--- a/array.c
+++ b/array.c
@@ -3,164 +3,498 @@
array.c -
$Author$
- $Date$
created at: Fri Aug 6 09:46:12 JST 1993
- Copyright (C) 1993-2003 Yukihiro Matsumoto
+ Copyright (C) 1993-2007 Yukihiro Matsumoto
Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
Copyright (C) 2000 Information-technology Promotion Agency, Japan
**********************************************************************/
-#include "ruby.h"
-#include "util.h"
-#include "st.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"
+
+#ifndef ARRAY_DEBUG
+# define NDEBUG
+#endif
+#include <assert.h>
VALUE rb_cArray;
-static ID id_cmp;
+
+static ID id_cmp, id_div, id_power;
#define ARY_DEFAULT_SIZE 16
-#define ARY_MAX_SIZE (LONG_MAX / sizeof(VALUE))
+#define ARY_MAX_SIZE (LONG_MAX / (int)sizeof(VALUE))
void
-rb_mem_clear(mem, size)
- register VALUE *mem;
- register long size;
+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(mem, size, val)
- register VALUE *mem;
- register long size;
- register VALUE val;
+memfill(register VALUE *mem, register long size, register VALUE val)
{
while (size--) {
*mem++ = val;
}
}
-#define ARY_TMPLOCK FL_USER1
+static void
+ary_memfill(VALUE ary, long beg, long size, VALUE val)
+{
+ RARRAY_PTR_USE(ary, ptr, {
+ memfill(ptr + beg, size, val);
+ 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++) {
+ OBJ_WRITE(ary, &ptr[i+beg], argv[i]);
+ }
+ });
+ }
+ }
+ else {
+ RARRAY_PTR_USE(ary, ptr, {
+ MEMCPY(ptr+beg, argv, VALUE, argc);
+ });
+ }
+#else
+ /* use shady (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)
+# define ARY_EMBED_P(ary) \
+ (assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \
+ FL_TEST((ary), RARRAY_EMBED_FLAG)!=0)
+
+#define ARY_HEAP_PTR(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)->as.heap.ptr)
+#define ARY_HEAP_LEN(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)->as.heap.len)
+#define ARY_EMBED_PTR(a) (assert(ARY_EMBED_P(a)), RARRAY(a)->as.ary)
+#define ARY_EMBED_LEN(a) \
+ (assert(ARY_EMBED_P(a)), \
+ (long)((RBASIC(a)->flags >> RARRAY_EMBED_LEN_SHIFT) & \
+ (RARRAY_EMBED_LEN_MASK >> RARRAY_EMBED_LEN_SHIFT)))
+#define ARY_HEAP_SIZE(a) (assert(!ARY_EMBED_P(a)), assert(ARY_OWNS_HEAP_P(a)), RARRAY(a)->as.heap.aux.capa * sizeof(VALUE))
+
+#define ARY_OWNS_HEAP_P(a) (!FL_TEST((a), ELTS_SHARED|RARRAY_EMBED_FLAG))
+#define FL_SET_EMBED(a) do { \
+ assert(!ARY_SHARED_P(a)); \
+ FL_SET((a), RARRAY_EMBED_FLAG); \
+} while (0)
+#define FL_UNSET_EMBED(ary) FL_UNSET((ary), RARRAY_EMBED_FLAG|RARRAY_EMBED_LEN_MASK)
+#define FL_SET_SHARED(ary) do { \
+ assert(!ARY_EMBED_P(ary)); \
+ FL_SET((ary), ELTS_SHARED); \
+} while (0)
+#define FL_UNSET_SHARED(ary) FL_UNSET((ary), ELTS_SHARED)
+
+#define ARY_SET_PTR(ary, p) do { \
+ assert(!ARY_EMBED_P(ary)); \
+ assert(!OBJ_FROZEN(ary)); \
+ RARRAY(ary)->as.heap.ptr = (p); \
+} while (0)
+#define ARY_SET_EMBED_LEN(ary, n) do { \
+ long tmp_n = (n); \
+ assert(ARY_EMBED_P(ary)); \
+ assert(!OBJ_FROZEN(ary)); \
+ RBASIC(ary)->flags &= ~RARRAY_EMBED_LEN_MASK; \
+ RBASIC(ary)->flags |= (tmp_n) << RARRAY_EMBED_LEN_SHIFT; \
+} while (0)
+#define ARY_SET_HEAP_LEN(ary, n) do { \
+ assert(!ARY_EMBED_P(ary)); \
+ RARRAY(ary)->as.heap.len = (n); \
+} while (0)
+#define ARY_SET_LEN(ary, n) do { \
+ if (ARY_EMBED_P(ary)) { \
+ ARY_SET_EMBED_LEN((ary), (n)); \
+ } \
+ else { \
+ ARY_SET_HEAP_LEN((ary), (n)); \
+ } \
+ assert(RARRAY_LEN(ary) == (n)); \
+} while (0)
+#define ARY_INCREASE_PTR(ary, n) do { \
+ assert(!ARY_EMBED_P(ary)); \
+ assert(!OBJ_FROZEN(ary)); \
+ RARRAY(ary)->as.heap.ptr += (n); \
+} while (0)
+#define ARY_INCREASE_LEN(ary, n) do { \
+ assert(!OBJ_FROZEN(ary)); \
+ if (ARY_EMBED_P(ary)) { \
+ ARY_SET_EMBED_LEN((ary), RARRAY_LEN(ary)+(n)); \
+ } \
+ else { \
+ RARRAY(ary)->as.heap.len += (n); \
+ } \
+} while (0)
+
+#define ARY_CAPA(ary) (ARY_EMBED_P(ary) ? RARRAY_EMBED_LEN_MAX : \
+ ARY_SHARED_ROOT_P(ary) ? RARRAY_LEN(ary) : RARRAY(ary)->as.heap.aux.capa)
+#define ARY_SET_CAPA(ary, n) do { \
+ assert(!ARY_EMBED_P(ary)); \
+ assert(!ARY_SHARED_P(ary)); \
+ assert(!OBJ_FROZEN(ary)); \
+ RARRAY(ary)->as.heap.aux.capa = (n); \
+} while (0)
+
+#define ARY_SHARED(ary) (assert(ARY_SHARED_P(ary)), RARRAY(ary)->as.heap.aux.shared)
+#define ARY_SET_SHARED(ary, value) do { \
+ const VALUE _ary_ = (ary); \
+ const VALUE _value_ = (value); \
+ assert(!ARY_EMBED_P(_ary_)); \
+ assert(ARY_SHARED_P(_ary_)); \
+ assert(ARY_SHARED_ROOT_P(_value_)); \
+ OBJ_WRITE(_ary_, &RARRAY(_ary_)->as.heap.aux.shared, _value_); \
+} while (0)
+#define RARRAY_SHARED_ROOT_FLAG FL_USER5
+#define ARY_SHARED_ROOT_P(ary) (FL_TEST((ary), RARRAY_SHARED_ROOT_FLAG))
+#define ARY_SHARED_NUM(ary) \
+ (assert(ARY_SHARED_ROOT_P(ary)), RARRAY(ary)->as.heap.aux.capa)
+#define ARY_SHARED_OCCUPIED(ary) (ARY_SHARED_NUM(ary) == 1)
+#define ARY_SET_SHARED_NUM(ary, value) do { \
+ assert(ARY_SHARED_ROOT_P(ary)); \
+ RARRAY(ary)->as.heap.aux.capa = (value); \
+} while (0)
+#define FL_SET_SHARED_ROOT(ary) do { \
+ assert(!ARY_EMBED_P(ary)); \
+ FL_SET((ary), RARRAY_SHARED_ROOT_FLAG); \
+} while (0)
+
+static void
+ary_resize_capa(VALUE ary, long capacity)
+{
+ assert(RARRAY_LEN(ary) <= capacity);
+ assert(!OBJ_FROZEN(ary));
+ assert(!ARY_SHARED_P(ary));
+ if (capacity > RARRAY_EMBED_LEN_MAX) {
+ if (ARY_EMBED_P(ary)) {
+ long len = ARY_EMBED_LEN(ary);
+ VALUE *ptr = ALLOC_N(VALUE, (capacity));
+ MEMCPY(ptr, ARY_EMBED_PTR(ary), VALUE, len);
+ FL_UNSET_EMBED(ary);
+ ARY_SET_PTR(ary, ptr);
+ ARY_SET_HEAP_LEN(ary, len);
+ }
+ else {
+ SIZED_REALLOC_N(RARRAY(ary)->as.heap.ptr, VALUE, capacity, RARRAY(ary)->as.heap.aux.capa);
+ }
+ ARY_SET_CAPA(ary, (capacity));
+ }
+ else {
+ if (!ARY_EMBED_P(ary)) {
+ long len = RARRAY_LEN(ary);
+ const VALUE *ptr = RARRAY_CONST_PTR(ary);
+ size_t size = ARY_HEAP_SIZE(ary);
+
+ if (len > capacity) len = capacity;
+ MEMCPY((VALUE *)RARRAY(ary)->as.ary, ptr, VALUE, len);
+ FL_SET_EMBED(ary);
+ ARY_SET_LEN(ary, len);
+ ruby_sized_xfree((VALUE *)ptr, size);
+ }
+ }
+}
static inline void
-rb_ary_modify_check(ary)
- VALUE ary;
+ary_shrink_capa(VALUE ary)
{
- if (OBJ_FROZEN(ary)) rb_error_frozen("array");
- if (FL_TEST(ary, ARY_TMPLOCK))
- rb_raise(rb_eRuntimeError, "can't modify array during iteration");
- if (!OBJ_TAINTED(ary) && rb_safe_level() >= 4)
- rb_raise(rb_eSecurityError, "Insecure: can't modify array");
+ long capacity = ARY_HEAP_LEN(ary);
+ long old_capa = RARRAY(ary)->as.heap.aux.capa;
+ assert(!ARY_SHARED_P(ary));
+ assert(old_capa >= capacity);
+ if (old_capa > capacity)
+ REALLOC_N(RARRAY(ary)->as.heap.ptr, VALUE, capacity);
}
static void
-rb_ary_modify(ary)
- VALUE ary;
+ary_double_capa(VALUE ary, long min)
+{
+ long new_capa = ARY_CAPA(ary) / 2;
+
+ if (new_capa < ARY_DEFAULT_SIZE) {
+ new_capa = ARY_DEFAULT_SIZE;
+ }
+ if (new_capa >= ARY_MAX_SIZE - min) {
+ new_capa = (ARY_MAX_SIZE - min) / 2;
+ }
+ new_capa += min;
+ ary_resize_capa(ary, new_capa);
+}
+
+static void
+rb_ary_decrement_share(VALUE shared)
+{
+ if (shared) {
+ long num = ARY_SHARED_NUM(shared) - 1;
+ if (num == 0) {
+ rb_ary_free(shared);
+ rb_gc_force_recycle(shared);
+ }
+ else if (num > 0) {
+ ARY_SET_SHARED_NUM(shared, num);
+ }
+ }
+}
+
+static void
+rb_ary_unshare(VALUE ary)
{
- VALUE *ptr;
+ VALUE shared = RARRAY(ary)->as.heap.aux.shared;
+ rb_ary_decrement_share(shared);
+ FL_UNSET_SHARED(ary);
+}
+static inline void
+rb_ary_unshare_safe(VALUE ary)
+{
+ if (ARY_SHARED_P(ary) && !ARY_EMBED_P(ary)) {
+ rb_ary_unshare(ary);
+ }
+}
+
+static VALUE
+rb_ary_increment_share(VALUE shared)
+{
+ long num = ARY_SHARED_NUM(shared);
+ if (num >= 0) {
+ ARY_SET_SHARED_NUM(shared, num + 1);
+ }
+ return shared;
+}
+
+static void
+rb_ary_set_shared(VALUE ary, VALUE shared)
+{
+ rb_ary_increment_share(shared);
+ FL_SET_SHARED(ary);
+ ARY_SET_SHARED(ary, shared);
+}
+
+static inline void
+rb_ary_modify_check(VALUE ary)
+{
+ rb_check_frozen(ary);
+}
+
+void
+rb_ary_modify(VALUE ary)
+{
rb_ary_modify_check(ary);
- if (FL_TEST(ary, ELTS_SHARED)) {
- ptr = ALLOC_N(VALUE, RARRAY(ary)->len);
- FL_UNSET(ary, ELTS_SHARED);
- RARRAY(ary)->aux.capa = RARRAY(ary)->len;
- MEMCPY(ptr, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
- RARRAY(ary)->ptr = ptr;
+ if (ARY_SHARED_P(ary)) {
+ long shared_len, len = RARRAY_LEN(ary);
+ VALUE shared = ARY_SHARED(ary);
+ if (len <= RARRAY_EMBED_LEN_MAX) {
+ const VALUE *ptr = ARY_HEAP_PTR(ary);
+ FL_UNSET_SHARED(ary);
+ FL_SET_EMBED(ary);
+ MEMCPY((VALUE *)ARY_EMBED_PTR(ary), ptr, VALUE, len);
+ rb_ary_decrement_share(shared);
+ ARY_SET_EMBED_LEN(ary, len);
+ }
+ else if (ARY_SHARED_OCCUPIED(shared) && len > ((shared_len = RARRAY_LEN(shared))>>1)) {
+ long shift = RARRAY_CONST_PTR(ary) - RARRAY_CONST_PTR(shared);
+ FL_UNSET_SHARED(ary);
+ ARY_SET_PTR(ary, RARRAY_CONST_PTR(shared));
+ ARY_SET_CAPA(ary, shared_len);
+ RARRAY_PTR_USE(ary, ptr, {
+ MEMMOVE(ptr, ptr+shift, VALUE, len);
+ });
+ FL_SET_EMBED(shared);
+ rb_ary_decrement_share(shared);
+ }
+ else {
+ VALUE *ptr = ALLOC_N(VALUE, len);
+ MEMCPY(ptr, RARRAY_CONST_PTR(ary), VALUE, len);
+ rb_ary_unshare(ary);
+ ARY_SET_CAPA(ary, len);
+ ARY_SET_PTR(ary, ptr);
+ }
}
}
+static void
+ary_ensure_room_for_push(VALUE ary, long add_len)
+{
+ long new_len = RARRAY_LEN(ary) + add_len;
+ long capa;
+
+ 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);
+ }
+ else {
+ /* if array is shared, then it is likely it participate in push/shift pattern */
+ rb_ary_modify(ary);
+ capa = ARY_CAPA(ary);
+ if (new_len > capa - (capa >> 6)) {
+ ary_double_capa(ary, new_len);
+ }
+ }
+ return;
+ }
+ }
+ }
+ rb_ary_modify(ary);
+ capa = ARY_CAPA(ary);
+ if (new_len > capa) {
+ ary_double_capa(ary, new_len);
+ }
+}
+
+/*
+ * call-seq:
+ * ary.freeze -> ary
+ *
+ * Calls Object#freeze on +ary+ to prevent any further
+ * modification. A RuntimeError will be raised if a modification
+ * attempt is made.
+ *
+ */
+
VALUE
-rb_ary_freeze(ary)
- VALUE ary;
+rb_ary_freeze(VALUE ary)
{
return rb_obj_freeze(ary);
}
/*
* call-seq:
- * array.frozen? -> true or false
+ * ary.frozen? -> true or false
*
- * Return <code>true</code> if this array is frozen (or temporarily frozen
- * while being sorted).
+ * Return +true+ if this array is frozen (or temporarily frozen
+ * while being sorted). See also Object#frozen?
*/
static VALUE
-rb_ary_frozen_p(ary)
- VALUE ary;
+rb_ary_frozen_p(VALUE ary)
{
if (OBJ_FROZEN(ary)) return Qtrue;
- if (FL_TEST(ary, ARY_TMPLOCK)) return Qtrue;
return Qfalse;
}
-static VALUE ary_alloc _((VALUE));
+/* This can be used to take a snapshot of an array (with
+ e.g. rb_ary_replace) and check later whether the array has been
+ modified from the snapshot. The snapshot is cheap, though if
+ something does modify the array it will pay the cost of copying
+ it. If Array#pop or Array#shift has been called, the array will
+ be still shared with the snapshot, but the array length will
+ differ. */
+VALUE
+rb_ary_shared_with_p(VALUE ary1, VALUE ary2)
+{
+ if (!ARY_EMBED_P(ary1) && ARY_SHARED_P(ary1) &&
+ !ARY_EMBED_P(ary2) && ARY_SHARED_P(ary2) &&
+ RARRAY(ary1)->as.heap.aux.shared == RARRAY(ary2)->as.heap.aux.shared &&
+ RARRAY(ary1)->as.heap.len == RARRAY(ary2)->as.heap.len) {
+ return Qtrue;
+ }
+ return Qfalse;
+}
+
static VALUE
-ary_alloc(klass)
- VALUE klass;
+ary_alloc(VALUE klass)
{
- NEWOBJ(ary, struct RArray);
- OBJSETUP(ary, klass, T_ARRAY);
+ NEWOBJ_OF(ary, struct RArray, klass, T_ARRAY | RARRAY_EMBED_FLAG | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));
+ /* Created array is:
+ * FL_SET_EMBED((VALUE)ary);
+ * ARY_SET_EMBED_LEN((VALUE)ary, 0);
+ */
+ return (VALUE)ary;
+}
- ary->len = 0;
- ary->ptr = 0;
- ary->aux.capa = 0;
+static VALUE
+empty_ary_alloc(VALUE klass)
+{
+ if (RUBY_DTRACE_ARRAY_CREATE_ENABLED()) {
+ RUBY_DTRACE_ARRAY_CREATE(0, rb_sourcefile(), rb_sourceline());
+ }
- return (VALUE)ary;
+ return ary_alloc(klass);
}
static VALUE
-ary_new(klass, len)
- VALUE klass;
- long len;
+ary_new(VALUE klass, long capa)
{
- VALUE ary = ary_alloc(klass);
+ VALUE ary,*ptr;
- if (len < 0) {
+ if (capa < 0) {
rb_raise(rb_eArgError, "negative array size (or size too big)");
}
- if (len > ARY_MAX_SIZE) {
+ if (capa > ARY_MAX_SIZE) {
rb_raise(rb_eArgError, "array size too big");
}
- if (len == 0) len++;
- RARRAY(ary)->ptr = ALLOC_N(VALUE, len);
- RARRAY(ary)->aux.capa = len;
+
+ if (RUBY_DTRACE_ARRAY_CREATE_ENABLED()) {
+ RUBY_DTRACE_ARRAY_CREATE(capa, rb_sourcefile(), rb_sourceline());
+ }
+
+ 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;
}
VALUE
-rb_ary_new2(len)
- long len;
+rb_ary_new_capa(long capa)
{
- return ary_new(rb_cArray, len);
+ return ary_new(rb_cArray, capa);
}
-
VALUE
-rb_ary_new()
+rb_ary_new(void)
{
- return rb_ary_new2(ARY_DEFAULT_SIZE);
+ return rb_ary_new2(RARRAY_EMBED_LEN_MAX);
}
-#ifdef HAVE_STDARG_PROTOTYPES
-#include <stdarg.h>
-#define va_init_list(a,b) va_start(a,b)
-#else
-#include <varargs.h>
-#define va_init_list(a,b) va_start(a)
-#endif
-
VALUE
-#ifdef HAVE_STDARG_PROTOTYPES
-rb_ary_new3(long n, ...)
-#else
-rb_ary_new3(n, va_alist)
- long n;
- va_dcl
-#endif
+rb_ary_new_from_args(long n, ...)
{
va_list ar;
VALUE ary;
@@ -168,63 +502,154 @@ rb_ary_new3(n, va_alist)
ary = rb_ary_new2(n);
- va_init_list(ar, n);
+ va_start(ar, n);
for (i=0; i<n; i++) {
- RARRAY(ary)->ptr[i] = va_arg(ar, VALUE);
+ RARRAY_ASET(ary, i, va_arg(ar, VALUE));
}
va_end(ar);
- RARRAY(ary)->len = n;
+ ARY_SET_LEN(ary, n);
return ary;
}
VALUE
-rb_ary_new4(n, elts)
- long n;
- const VALUE *elts;
+rb_ary_new_from_values(long n, const VALUE *elts)
{
VALUE ary;
ary = rb_ary_new2(n);
if (n > 0 && elts) {
- MEMCPY(RARRAY(ary)->ptr, elts, VALUE, n);
+ ary_memcpy(ary, 0, n, elts);
+ ARY_SET_LEN(ary, n);
}
- /* This assignment to len will be moved to the above "if" block in Ruby 1.9 */
- RARRAY(ary)->len = n;
-
return ary;
}
VALUE
-rb_assoc_new(car, cdr)
- VALUE car, cdr;
+rb_ary_tmp_new(long capa)
{
- VALUE ary;
+ return ary_new(0, capa);
+}
- ary = rb_ary_new2(2);
- RARRAY(ary)->ptr[0] = car;
- RARRAY(ary)->ptr[1] = cdr;
- RARRAY(ary)->len = 2;
+void
+rb_ary_free(VALUE ary)
+{
+ if (ARY_OWNS_HEAP_P(ary)) {
+ ruby_sized_xfree((void *)ARY_HEAP_PTR(ary), ARY_HEAP_SIZE(ary));
+ }
+}
- return ary;
+RUBY_FUNC_EXPORTED size_t
+rb_ary_memsize(VALUE ary)
+{
+ if (ARY_OWNS_HEAP_P(ary)) {
+ return RARRAY(ary)->as.heap.aux.capa * sizeof(VALUE);
+ }
+ else {
+ return 0;
+ }
+}
+
+static inline void
+ary_discard(VALUE ary)
+{
+ rb_ary_free(ary);
+ RBASIC(ary)->flags |= RARRAY_EMBED_FLAG;
+ RBASIC(ary)->flags &= ~RARRAY_EMBED_LEN_MASK;
}
static VALUE
-to_ary(ary)
- VALUE ary;
+ary_make_shared(VALUE ary)
+{
+ assert(!ARY_EMBED_P(ary));
+ if (ARY_SHARED_P(ary)) {
+ return ARY_SHARED(ary);
+ }
+ else if (ARY_SHARED_ROOT_P(ary)) {
+ return ary;
+ }
+ else if (OBJ_FROZEN(ary)) {
+ ary_shrink_capa(ary);
+ FL_SET_SHARED_ROOT(ary);
+ ARY_SET_SHARED_NUM(ary, 1);
+ return ary;
+ }
+ else {
+ long capa = ARY_CAPA(ary), len = RARRAY_LEN(ary);
+ NEWOBJ_OF(shared, struct RArray, 0, T_ARRAY); /* keep shared ary as shady */
+ FL_UNSET_EMBED(shared);
+
+ ARY_SET_LEN((VALUE)shared, capa);
+ ARY_SET_PTR((VALUE)shared, RARRAY_CONST_PTR(ary));
+ ary_mem_clear((VALUE)shared, len, capa - len);
+ FL_SET_SHARED_ROOT(shared);
+ ARY_SET_SHARED_NUM((VALUE)shared, 1);
+ FL_SET_SHARED(ary);
+ ARY_SET_SHARED(ary, (VALUE)shared);
+ OBJ_FREEZE(shared);
+ return (VALUE)shared;
+ }
+}
+
+static VALUE
+ary_make_substitution(VALUE ary)
+{
+ long len = RARRAY_LEN(ary);
+
+ if (len <= RARRAY_EMBED_LEN_MAX) {
+ VALUE subst = rb_ary_new2(len);
+ ary_memcpy(subst, 0, len, RARRAY_CONST_PTR(ary));
+ ARY_SET_EMBED_LEN(subst, len);
+ return subst;
+ }
+ else {
+ return rb_ary_increment_share(ary_make_shared(ary));
+ }
+}
+
+VALUE
+rb_assoc_new(VALUE car, VALUE cdr)
+{
+ return rb_ary_new3(2, car, cdr);
+}
+
+static VALUE
+to_ary(VALUE ary)
{
return rb_convert_type(ary, T_ARRAY, "Array", "to_ary");
}
VALUE
-rb_check_array_type(ary)
- VALUE ary;
+rb_check_array_type(VALUE ary)
{
return rb_check_convert_type(ary, T_ARRAY, "Array", "to_ary");
}
-static VALUE rb_ary_replace _((VALUE, VALUE));
+/*
+ * call-seq:
+ * Array.try_convert(obj) -> array or nil
+ *
+ * Tries to convert +obj+ into an array, using +to_ary+ method. Returns the
+ * converted array or +nil+ if +obj+ cannot be converted for any reason.
+ * This method can be used to check if an argument is an array.
+ *
+ * Array.try_convert([1]) #=> [1]
+ * Array.try_convert("1") #=> nil
+ *
+ * if tmp = Array.try_convert(arg)
+ * # the argument is an array
+ * elsif tmp = String.try_convert(arg)
+ * # the argument is a string
+ * end
+ *
+ */
+
+static VALUE
+rb_ary_s_try_convert(VALUE dummy, VALUE ary)
+{
+ return rb_check_array_type(ary);
+}
/*
* call-seq:
@@ -232,56 +657,76 @@ static VALUE rb_ary_replace _((VALUE, VALUE));
* Array.new(array)
* Array.new(size) {|index| block }
*
- * Returns a new array. In the first form, the new array is
- * empty. In the second it is created with _size_ copies of _obj_
- * (that is, _size_ references to the same
- * _obj_). The third form creates a copy of the array
- * passed as a parameter (the array is generated by calling
- * to_ary on the parameter). In the last form, an array
- * of the given size is created. Each element in this array is
- * calculated by passing the element's index to the given block and
- * storing the return value.
- *
- * Array.new
- * Array.new(2)
- * Array.new(5, "A")
- *
- * # only one copy of the object is created
+ * 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 +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).
+ *
+ * first_array = ["Matz", "Guido"]
+ *
+ * second_array = Array.new(first_array) #=> ["Matz", "Guido"]
+ *
+ * first_array.equal? second_array #=> false
+ *
+ * In the last form, an array of the given size is created. Each element in
+ * this array is created by passing the element's index to the given block
+ * and storing the return value.
+ *
+ * Array.new(3){ |index| index ** 2 }
+ * # => [0, 1, 4]
+ *
+ * == Common gotchas
+ *
+ * When sending the second parameter, the same object will be used as the
+ * value for all the array elements:
+ *
* a = Array.new(2, Hash.new)
+ * # => [{}, {}]
+ *
* a[0]['cat'] = 'feline'
- * a
+ * a # => [{"cat"=>"feline"}, {"cat"=>"feline"}]
+ *
* a[1]['cat'] = 'Felix'
- * a
- *
- * # here multiple copies are created
+ * a # => [{"cat"=>"Felix"}, {"cat"=>"Felix"}]
+ *
+ * Since all the Array elements store the same hash, changes to one of them
+ * will affect them all.
+ *
+ * If multiple copies are what you want, you should use the block
+ * version which uses the result of that block each time an element
+ * of the array needs to be initialized:
+ *
* a = Array.new(2) { Hash.new }
* a[0]['cat'] = 'feline'
- * a
- *
- * squares = Array.new(5) {|i| i*i}
- * squares
- *
- * copy = Array.new(squares)
+ * a # => [{"cat"=>"feline"}, {}]
+ *
*/
static VALUE
-rb_ary_initialize(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_initialize(int argc, VALUE *argv, VALUE ary)
{
long len;
VALUE size, val;
rb_ary_modify(ary);
- if (rb_scan_args(argc, argv, "02", &size, &val) == 0) {
- RARRAY(ary)->len = 0;
+ if (argc == 0) {
+ if (ARY_OWNS_HEAP_P(ary) && RARRAY_CONST_PTR(ary) != 0) {
+ ruby_sized_xfree((void *)RARRAY_CONST_PTR(ary), ARY_HEAP_SIZE(ary));
+ }
+ rb_ary_unshare_safe(ary);
+ FL_SET_EMBED(ary);
+ ARY_SET_EMBED_LEN(ary, 0);
if (rb_block_given_p()) {
rb_warning("given block not used");
}
return ary;
}
-
+ rb_scan_args(argc, argv, "02", &size, &val);
if (argc == 1 && !FIXNUM_P(size)) {
val = rb_check_array_type(size);
if (!NIL_P(val)) {
@@ -297,10 +742,8 @@ rb_ary_initialize(argc, argv, ary)
if (len > ARY_MAX_SIZE) {
rb_raise(rb_eArgError, "array size too big");
}
- if (len > RARRAY(ary)->aux.capa) {
- REALLOC_N(RARRAY(ary)->ptr, VALUE, len);
- RARRAY(ary)->aux.capa = len;
- }
+ rb_ary_modify(ary);
+ ary_resize_capa(ary, len);
if (rb_block_given_p()) {
long i;
@@ -309,54 +752,46 @@ rb_ary_initialize(argc, argv, ary)
}
for (i=0; i<len; i++) {
rb_ary_store(ary, i, rb_yield(LONG2NUM(i)));
- RARRAY(ary)->len = i + 1;
+ ARY_SET_LEN(ary, i + 1);
}
}
else {
- memfill(RARRAY(ary)->ptr, len, val);
- RARRAY(ary)->len = len;
+ ary_memfill(ary, 0, len, val);
+ ARY_SET_LEN(ary, len);
}
-
return ary;
}
-
-/*
-* Returns a new array populated with the given objects.
-*
-* Array.[]( 1, 'a', /^A/ )
-* Array[ 1, 'a', /^A/ ]
-* [ 1, 'a', /^A/ ]
-*/
+/*
+ * Returns a new array populated with the given objects.
+ *
+ * Array.[]( 1, 'a', /^A/ ) # => [1, "a", /^A/]
+ * Array[ 1, 'a', /^A/ ] # => [1, "a", /^A/]
+ * [ 1, 'a', /^A/ ] # => [1, "a", /^A/]
+ */
static VALUE
-rb_ary_s_create(argc, argv, klass)
- int argc;
- VALUE *argv;
- VALUE klass;
+rb_ary_s_create(int argc, VALUE *argv, VALUE klass)
{
- VALUE ary = ary_alloc(klass);
-
- if (argc > 0) {
- RARRAY(ary)->ptr = ALLOC_N(VALUE, argc);
- MEMCPY(RARRAY(ary)->ptr, argv, VALUE, argc);
+ VALUE ary = ary_new(klass, argc);
+ if (argc > 0 && argv) {
+ ary_memcpy(ary, 0, argc, argv);
+ ARY_SET_LEN(ary, argc);
}
- RARRAY(ary)->len = RARRAY(ary)->aux.capa = argc;
return ary;
}
void
-rb_ary_store(ary, idx, val)
- VALUE ary;
- long idx;
- VALUE val;
+rb_ary_store(VALUE ary, long idx, VALUE val)
{
+ long len = RARRAY_LEN(ary);
+
if (idx < 0) {
- idx += RARRAY(ary)->len;
+ idx += len;
if (idx < 0) {
- rb_raise(rb_eIndexError, "index %ld out of array",
- idx - RARRAY(ary)->len);
+ rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",
+ idx - len, -len);
}
}
else if (idx >= ARY_MAX_SIZE) {
@@ -364,34 +799,86 @@ rb_ary_store(ary, idx, val)
}
rb_ary_modify(ary);
- if (idx >= RARRAY(ary)->aux.capa) {
- long new_capa = RARRAY(ary)->aux.capa / 2;
+ if (idx >= ARY_CAPA(ary)) {
+ ary_double_capa(ary, idx);
+ }
+ if (idx > len) {
+ ary_mem_clear(ary, len, idx - len + 1);
+ }
- if (new_capa < ARY_DEFAULT_SIZE) {
- new_capa = ARY_DEFAULT_SIZE;
- }
- if (new_capa >= ARY_MAX_SIZE - idx) {
- new_capa = (ARY_MAX_SIZE - idx) / 2;
- }
- new_capa += idx;
- REALLOC_N(RARRAY(ary)->ptr, VALUE, new_capa);
- RARRAY(ary)->aux.capa = new_capa;
+ if (idx >= len) {
+ ARY_SET_LEN(ary, idx + 1);
}
- if (idx > RARRAY(ary)->len) {
- rb_mem_clear(RARRAY(ary)->ptr + RARRAY(ary)->len,
- idx-RARRAY(ary)->len + 1);
+ RARRAY_ASET(ary, idx, val);
+}
+
+static VALUE
+ary_make_partial(VALUE ary, VALUE klass, long offset, long len)
+{
+ assert(offset >= 0);
+ assert(len >= 0);
+ assert(offset+len <= RARRAY_LEN(ary));
+
+ if (len <= RARRAY_EMBED_LEN_MAX) {
+ VALUE result = ary_alloc(klass);
+ ary_memcpy(result, 0, len, RARRAY_CONST_PTR(ary) + offset);
+ ARY_SET_EMBED_LEN(result, len);
+ return result;
+ }
+ else {
+ VALUE shared, result = ary_alloc(klass);
+ FL_UNSET_EMBED(result);
+
+ shared = ary_make_shared(ary);
+ ARY_SET_PTR(result, RARRAY_CONST_PTR(ary));
+ ARY_SET_LEN(result, RARRAY_LEN(ary));
+ rb_ary_set_shared(result, shared);
+
+ ARY_INCREASE_PTR(result, offset);
+ ARY_SET_LEN(result, len);
+ return result;
}
+}
+
+static VALUE
+ary_make_shared_copy(VALUE ary)
+{
+ return ary_make_partial(ary, rb_obj_class(ary), 0, RARRAY_LEN(ary));
+}
+
+enum ary_take_pos_flags
+{
+ ARY_TAKE_FIRST = 0,
+ ARY_TAKE_LAST = 1
+};
+
+static VALUE
+ary_take_first_or_last(int argc, VALUE *argv, VALUE ary, enum ary_take_pos_flags last)
+{
+ VALUE nv;
+ long n;
+ long len;
+ long offset = 0;
- if (idx >= RARRAY(ary)->len) {
- RARRAY(ary)->len = idx + 1;
+ rb_scan_args(argc, argv, "1", &nv);
+ n = NUM2LONG(nv);
+ len = RARRAY_LEN(ary);
+ if (n > len) {
+ n = len;
}
- RARRAY(ary)->ptr[idx] = val;
+ else if (n < 0) {
+ rb_raise(rb_eArgError, "negative array size");
+ }
+ if (last) {
+ offset = len - n;
+ }
+ return ary_make_partial(ary, rb_cArray, offset, n);
}
/*
* call-seq:
- * array << obj -> array
- *
+ * ary << obj -> ary
+ *
* Append---Pushes the given object on to the end of this array. This
* expression returns the array itself, so several appends
* may be chained together.
@@ -402,249 +889,339 @@ rb_ary_store(ary, idx, val)
*/
VALUE
-rb_ary_push(ary, item)
- VALUE ary;
- VALUE item;
+rb_ary_push(VALUE ary, VALUE item)
+{
+ long idx = RARRAY_LEN(ary);
+
+ ary_ensure_room_for_push(ary, 1);
+ RARRAY_ASET(ary, idx, item);
+ ARY_SET_LEN(ary, idx + 1);
+ return ary;
+}
+
+static VALUE
+rb_ary_push_1(VALUE ary, VALUE item)
+{
+ long idx = RARRAY_LEN(ary);
+
+ if (idx >= ARY_CAPA(ary)) {
+ ary_double_capa(ary, idx);
+ }
+ RARRAY_ASET(ary, idx, item);
+ ARY_SET_LEN(ary, idx + 1);
+ return ary;
+}
+
+VALUE
+rb_ary_cat(VALUE ary, const VALUE *ptr, long len)
{
- rb_ary_store(ary, RARRAY(ary)->len, item);
+ long oldlen = RARRAY_LEN(ary);
+
+ ary_ensure_room_for_push(ary, len);
+ ary_memcpy(ary, oldlen, len, ptr);
+ ARY_SET_LEN(ary, oldlen + len);
return ary;
}
-/*
+/*
* call-seq:
- * array.push(obj, ... ) -> array
- *
- * Append---Pushes the given object(s) on to the end of this array. This
+ * ary.push(obj, ... ) -> ary
+ *
+ * Append --- Pushes the given object(s) on to the end of this array. This
* expression returns the array itself, so several appends
- * may be chained together.
+ * may be chained together. See also Array#pop for the opposite
+ * effect.
*
* a = [ "a", "b", "c" ]
- * a.push("d", "e", "f")
+ * a.push("d", "e", "f")
* #=> ["a", "b", "c", "d", "e", "f"]
+ * [1, 2, 3,].push(4).push(5)
+ * #=> [1, 2, 3, 4, 5]
*/
static VALUE
-rb_ary_push_m(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_push_m(int argc, VALUE *argv, VALUE ary)
{
- while (argc--) {
- rb_ary_push(ary, *argv++);
- }
- return ary;
+ return rb_ary_cat(ary, argv, argc);
+}
+
+VALUE
+rb_ary_pop(VALUE ary)
+{
+ long n;
+ rb_ary_modify_check(ary);
+ n = RARRAY_LEN(ary);
+ if (n == 0) return Qnil;
+ if (ARY_OWNS_HEAP_P(ary) &&
+ n * 3 < ARY_CAPA(ary) &&
+ ARY_CAPA(ary) > ARY_DEFAULT_SIZE)
+ {
+ ary_resize_capa(ary, n * 2);
+ }
+ --n;
+ ARY_SET_LEN(ary, n);
+ return RARRAY_AREF(ary, n);
}
/*
* call-seq:
- * array.pop -> obj or nil
- *
- * Removes the last element from <i>self</i> and returns it, or
- * <code>nil</code> if the array is empty.
- *
- * a = [ "a", "m", "z" ]
- * a.pop #=> "z"
- * a #=> ["a", "m"]
+ * ary.pop -> obj or nil
+ * ary.pop(n) -> new_ary
+ *
+ * Removes the last element from +self+ and returns it, or
+ * +nil+ if the array is empty.
+ *
+ * If a number +n+ is given, returns an array of the last +n+ elements
+ * (or less) just like <code>array.slice!(-n, n)</code> does. See also
+ * Array#push for the opposite effect.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.pop #=> "d"
+ * a.pop(2) #=> ["b", "c"]
+ * a #=> ["a"]
*/
-VALUE
-rb_ary_pop(ary)
- VALUE ary;
+static VALUE
+rb_ary_pop_m(int argc, VALUE *argv, VALUE ary)
{
- rb_ary_modify_check(ary);
- if (RARRAY(ary)->len == 0) return Qnil;
- if (!FL_TEST(ary, ELTS_SHARED) &&
- RARRAY(ary)->len * 2 < RARRAY(ary)->aux.capa &&
- RARRAY(ary)->aux.capa > ARY_DEFAULT_SIZE) {
- RARRAY(ary)->aux.capa = RARRAY(ary)->len * 2;
- REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->aux.capa);
+ VALUE result;
+
+ if (argc == 0) {
+ return rb_ary_pop(ary);
}
- return RARRAY(ary)->ptr[--RARRAY(ary)->len];
+
+ rb_ary_modify_check(ary);
+ result = ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);
+ ARY_INCREASE_LEN(ary, -RARRAY_LEN(result));
+ return result;
}
-static VALUE
-ary_make_shared(ary)
- VALUE ary;
+VALUE
+rb_ary_shift(VALUE ary)
{
- if (!FL_TEST(ary, ELTS_SHARED)) {
- NEWOBJ(shared, struct RArray);
- OBJSETUP(shared, rb_cArray, T_ARRAY);
+ VALUE top;
+ long len = RARRAY_LEN(ary);
- shared->len = RARRAY(ary)->len;
- shared->ptr = RARRAY(ary)->ptr;
- shared->aux.capa = RARRAY(ary)->aux.capa;
- RARRAY(ary)->aux.shared = (VALUE)shared;
- FL_SET(ary, ELTS_SHARED);
- OBJ_FREEZE(shared);
- return (VALUE)shared;
+ rb_ary_modify_check(ary);
+ if (len == 0) return Qnil;
+ top = RARRAY_AREF(ary, 0);
+ if (!ARY_SHARED_P(ary)) {
+ if (len < ARY_DEFAULT_SIZE) {
+ RARRAY_PTR_USE(ary, ptr, {
+ MEMMOVE(ptr, ptr+1, VALUE, len-1);
+ }); /* WB: no new reference */
+ ARY_INCREASE_LEN(ary, -1);
+ return top;
+ }
+ assert(!ARY_EMBED_P(ary)); /* ARY_EMBED_LEN_MAX < ARY_DEFAULT_SIZE */
+
+ RARRAY_ASET(ary, 0, Qnil);
+ ary_make_shared(ary);
}
- else {
- return RARRAY(ary)->aux.shared;
+ else if (ARY_SHARED_OCCUPIED(ARY_SHARED(ary))) {
+ RARRAY_ASET(ary, 0, Qnil);
}
+ ARY_INCREASE_PTR(ary, 1); /* shift ptr */
+ ARY_INCREASE_LEN(ary, -1);
+
+ return top;
}
/*
* call-seq:
- * array.shift -> obj or nil
- *
- * Returns the first element of <i>self</i> and removes it (shifting all
- * other elements down by one). Returns <code>nil</code> if the array
+ * ary.shift -> obj or nil
+ * ary.shift(n) -> new_ary
+ *
+ * Removes the first element of +self+ and returns it (shifting all
+ * other elements down by one). Returns +nil+ if the array
* is empty.
- *
+ *
+ * If a number +n+ is given, returns an array of the first +n+ elements
+ * (or less) just like <code>array.slice!(0, n)</code> does. With +ary+
+ * containing only the remainder elements, not including what was shifted to
+ * +new_ary+. See also Array#unshift for the opposite effect.
+ *
+ * args = [ "-m", "-q", "filename" ]
+ * args.shift #=> "-m"
+ * args #=> ["-q", "filename"]
+ *
* args = [ "-m", "-q", "filename" ]
- * args.shift #=> "-m"
- * args #=> ["-q", "filename"]
+ * args.shift(2) #=> ["-m", "-q"]
+ * args #=> ["filename"]
*/
-VALUE
-rb_ary_shift(ary)
- VALUE ary;
+static VALUE
+rb_ary_shift_m(int argc, VALUE *argv, VALUE ary)
{
- VALUE top;
+ VALUE result;
+ long n;
+
+ if (argc == 0) {
+ return rb_ary_shift(ary);
+ }
rb_ary_modify_check(ary);
- if (RARRAY(ary)->len == 0) return Qnil;
- top = RARRAY(ary)->ptr[0];
- if (RARRAY_LEN(ary) < ARY_DEFAULT_SIZE && !FL_TEST(ary, ELTS_SHARED)) {
- MEMMOVE(RARRAY_PTR(ary), RARRAY_PTR(ary)+1, VALUE, RARRAY_LEN(ary)-1);
+ result = ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);
+ n = RARRAY_LEN(result);
+ if (ARY_SHARED_P(ary)) {
+ if (ARY_SHARED_OCCUPIED(ARY_SHARED(ary))) {
+ ary_mem_clear(ary, 0, n);
+ }
+ ARY_INCREASE_PTR(ary, n);
}
else {
- if (!FL_TEST(ary, ELTS_SHARED)) {
- RARRAY(ary)->ptr[0] = Qnil;
- }
- ary_make_shared(ary);
- RARRAY(ary)->ptr++; /* shift ptr */
+ RARRAY_PTR_USE(ary, ptr, {
+ MEMMOVE(ptr, ptr + n, VALUE, RARRAY_LEN(ary)-n);
+ }); /* WB: no new reference */
}
- RARRAY(ary)->len--;
+ ARY_INCREASE_LEN(ary, -n);
- return top;
+ return result;
}
-VALUE
-rb_ary_unshift(ary, item)
- VALUE ary, item;
+static void
+ary_ensure_room_for_unshift(VALUE ary, int argc)
{
- rb_ary_modify(ary);
- if (RARRAY(ary)->len == RARRAY(ary)->aux.capa) {
- long capa_inc = RARRAY(ary)->aux.capa / 2;
- if (capa_inc < ARY_DEFAULT_SIZE) {
- capa_inc = ARY_DEFAULT_SIZE;
+ long len = RARRAY_LEN(ary);
+ long new_len = len + argc;
+ long capa;
+ const VALUE *head, *sharedp;
+
+ if (ARY_SHARED_P(ary)) {
+ VALUE shared = ARY_SHARED(ary);
+ capa = RARRAY_LEN(shared);
+ if (ARY_SHARED_OCCUPIED(shared) && capa > new_len) {
+ head = RARRAY_CONST_PTR(ary);
+ sharedp = RARRAY_CONST_PTR(shared);
+ goto makeroom_if_need;
}
- RARRAY(ary)->aux.capa += capa_inc;
- REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->aux.capa);
}
- /* sliding items */
- MEMMOVE(RARRAY(ary)->ptr + 1, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
+ rb_ary_modify(ary);
+ capa = ARY_CAPA(ary);
+ if (capa - (capa >> 6) <= new_len) {
+ ary_double_capa(ary, new_len);
+ }
- RARRAY(ary)->len++;
- RARRAY(ary)->ptr[0] = item;
+ /* use shared array for big "queues" */
+ if (new_len > ARY_DEFAULT_SIZE * 4) {
+ /* make a room for unshifted items */
+ capa = ARY_CAPA(ary);
+ ary_make_shared(ary);
- return ary;
+ head = sharedp = RARRAY_CONST_PTR(ary);
+ goto makeroom;
+ makeroom_if_need:
+ if (head - sharedp < argc) {
+ long room;
+ makeroom:
+ room = capa - new_len;
+ room -= room >> 4;
+ MEMMOVE((VALUE *)sharedp + argc + room, head, VALUE, len);
+ head = sharedp + argc + room;
+ }
+ ARY_SET_PTR(ary, head - argc);
+ }
+ else {
+ /* sliding items */
+ RARRAY_PTR_USE(ary, ptr, {
+ MEMMOVE(ptr + argc, ptr, VALUE, len);
+ });
+ }
}
/*
* call-seq:
- * array.unshift(obj, ...) -> array
- *
- * Prepends objects to the front of <i>array</i>.
- * other elements up one.
- *
+ * ary.unshift(obj, ...) -> ary
+ *
+ * Prepends objects to the front of +self+, moving other elements upwards.
+ * See also Array#shift for the opposite effect.
+ *
* a = [ "b", "c", "d" ]
* a.unshift("a") #=> ["a", "b", "c", "d"]
* a.unshift(1, 2) #=> [ 1, 2, "a", "b", "c", "d"]
*/
static VALUE
-rb_ary_unshift_m(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_unshift_m(int argc, VALUE *argv, VALUE ary)
{
- long len = RARRAY(ary)->len;
-
- if (argc == 0) return ary;
+ long len = RARRAY_LEN(ary);
- /* make rooms by setting the last item */
- rb_ary_store(ary, len + argc - 1, Qnil);
+ if (argc == 0) {
+ rb_ary_modify_check(ary);
+ return ary;
+ }
- /* sliding items */
- MEMMOVE(RARRAY(ary)->ptr + argc, RARRAY(ary)->ptr, VALUE, len);
- MEMCPY(RARRAY(ary)->ptr, argv, VALUE, argc);
-
+ ary_ensure_room_for_unshift(ary, argc);
+ ary_memcpy(ary, 0, argc, argv);
+ ARY_SET_LEN(ary, len + argc);
return ary;
}
+VALUE
+rb_ary_unshift(VALUE ary, VALUE item)
+{
+ return rb_ary_unshift_m(1,&item,ary);
+}
+
/* faster version - use this if you don't need to treat negative offset */
static inline VALUE
-rb_ary_elt(ary, offset)
- VALUE ary;
- long offset;
+rb_ary_elt(VALUE ary, long offset)
{
- if (RARRAY(ary)->len == 0) return Qnil;
- if (offset < 0 || RARRAY(ary)->len <= offset) {
+ long len = RARRAY_LEN(ary);
+ if (len == 0) return Qnil;
+ if (offset < 0 || len <= offset) {
return Qnil;
}
- return RARRAY(ary)->ptr[offset];
+ return RARRAY_AREF(ary, offset);
}
VALUE
-rb_ary_entry(ary, offset)
- VALUE ary;
- long offset;
+rb_ary_entry(VALUE ary, long offset)
{
if (offset < 0) {
- offset += RARRAY(ary)->len;
+ offset += RARRAY_LEN(ary);
}
return rb_ary_elt(ary, offset);
}
-static VALUE
-rb_ary_subseq(ary, beg, len)
- VALUE ary;
- long beg, len;
+VALUE
+rb_ary_subseq(VALUE ary, long beg, long len)
{
- VALUE klass, ary2, shared;
- VALUE *ptr;
+ VALUE klass;
+ long alen = RARRAY_LEN(ary);
- if (beg > RARRAY(ary)->len) return Qnil;
+ if (beg > alen) return Qnil;
if (beg < 0 || len < 0) return Qnil;
- if (RARRAY(ary)->len < len || RARRAY(ary)->len < beg + len) {
- len = RARRAY(ary)->len - beg;
- if (len < 0)
- len = 0;
+ if (alen < len || alen < beg + len) {
+ len = alen - beg;
}
klass = rb_obj_class(ary);
if (len == 0) return ary_new(klass, 0);
- shared = ary_make_shared(ary);
- ptr = RARRAY(ary)->ptr;
- ary2 = ary_alloc(klass);
- RARRAY(ary2)->ptr = ptr + beg;
- RARRAY(ary2)->len = len;
- RARRAY(ary2)->aux.shared = shared;
- FL_SET(ary2, ELTS_SHARED);
-
- return ary2;
+ return ary_make_partial(ary, klass, beg, len);
}
-/*
+/*
* call-seq:
- * array[index] -> obj or nil
- * array[start, length] -> an_array or nil
- * array[range] -> an_array or nil
- * array.slice(index) -> obj or nil
- * array.slice(start, length) -> an_array or nil
- * array.slice(range) -> an_array or nil
+ * ary[index] -> obj or nil
+ * ary[start, length] -> new_ary or nil
+ * ary[range] -> new_ary or nil
+ * ary.slice(index) -> obj or nil
+ * ary.slice(start, length) -> new_ary or nil
+ * ary.slice(range) -> new_ary or nil
+ *
+ * Element Reference --- Returns the element at +index+, or returns a
+ * subarray starting at the +start+ index and continuing for +length+
+ * elements, or returns a subarray specified by +range+ of indices.
*
- * Element Reference---Returns the element at _index_,
- * or returns a subarray starting at _start_ and
- * continuing for _length_ elements, or returns a subarray
- * specified by _range_.
- * Negative indices count backward from the end of the
- * array (-1 is the last element). Returns nil if the index
- * (or starting index) are out of range.
+ * Negative indices count backward from the end of the array (-1 is the last
+ * element). For +start+ and +range+ cases the starting index is just before
+ * an element. Additionally, an empty array is returned when the starting
+ * index for an element range is at the end of the array.
+ *
+ * Returns +nil+ if the index (or starting index) are out of range.
*
* a = [ "a", "b", "c", "d", "e" ]
* a[2] + a[0] + a[1] #=> "cab"
@@ -656,44 +1233,36 @@ rb_ary_subseq(ary, beg, len)
* a[-3, 3] #=> [ "c", "d", "e" ]
* # special cases
* a[5] #=> nil
+ * a[6, 1] #=> nil
* a[5, 1] #=> []
* a[5..10] #=> []
*
*/
VALUE
-rb_ary_aref(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_aref(int argc, VALUE *argv, VALUE ary)
{
VALUE arg;
long beg, len;
if (argc == 2) {
- if (SYMBOL_P(argv[0])) {
- rb_raise(rb_eTypeError, "Symbol as array index");
- }
beg = NUM2LONG(argv[0]);
len = NUM2LONG(argv[1]);
if (beg < 0) {
- beg += RARRAY(ary)->len;
+ beg += RARRAY_LEN(ary);
}
return rb_ary_subseq(ary, beg, len);
}
if (argc != 1) {
- rb_scan_args(argc, argv, "11", 0, 0);
+ rb_scan_args(argc, argv, "11", NULL, NULL);
}
arg = argv[0];
/* special case - speeding up */
if (FIXNUM_P(arg)) {
return rb_ary_entry(ary, FIX2LONG(arg));
}
- if (SYMBOL_P(arg)) {
- rb_raise(rb_eTypeError, "Symbol as array index");
- }
/* check if idx is Range */
- switch (rb_range_beg_len(arg, &beg, &len, RARRAY(ary)->len, 0)) {
+ switch (rb_range_beg_len(arg, &beg, &len, RARRAY_LEN(ary), 0)) {
case Qfalse:
break;
case Qnil:
@@ -704,15 +1273,13 @@ rb_ary_aref(argc, argv, ary)
return rb_ary_entry(ary, NUM2LONG(arg));
}
-/*
+/*
* call-seq:
- * array.at(index) -> obj or nil
+ * ary.at(index) -> obj or nil
*
- * Returns the element at _index_. A
- * negative index counts from the end of _self_. Returns +nil+
- * if the index is out of range. See also <code>Array#[]</code>.
- * (<code>Array#at</code> is slightly faster than <code>Array#[]</code>,
- * as it does not accept ranges and so on.)
+ * Returns the element at +index+. A negative index counts from the end of
+ * +self+. Returns +nil+ if the index is out of range. See also
+ * Array#[].
*
* a = [ "a", "b", "c", "d", "e" ]
* a.at(0) #=> "a"
@@ -720,113 +1287,91 @@ rb_ary_aref(argc, argv, ary)
*/
static VALUE
-rb_ary_at(ary, pos)
- VALUE ary, pos;
+rb_ary_at(VALUE ary, VALUE pos)
{
return rb_ary_entry(ary, NUM2LONG(pos));
}
/*
* call-seq:
- * array.first -> obj or nil
- * array.first(n) -> an_array
+ * ary.first -> obj or nil
+ * ary.first(n) -> new_ary
*
* Returns the first element, or the first +n+ elements, of the array.
- * If the array is empty, the first form returns <code>nil</code>, and the
- * second form returns an empty array.
+ * If the array is empty, the first form returns +nil+, and the
+ * second form returns an empty array. See also Array#last for
+ * the opposite effect.
*
* a = [ "q", "r", "s", "t" ]
- * a.first #=> "q"
- * a.first(1) #=> ["q"]
- * a.first(3) #=> ["q", "r", "s"]
+ * a.first #=> "q"
+ * a.first(2) #=> ["q", "r"]
*/
static VALUE
-rb_ary_first(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_first(int argc, VALUE *argv, VALUE ary)
{
if (argc == 0) {
- if (RARRAY(ary)->len == 0) return Qnil;
- return RARRAY(ary)->ptr[0];
+ if (RARRAY_LEN(ary) == 0) return Qnil;
+ return RARRAY_AREF(ary, 0);
}
else {
- VALUE nv, result;
- long n, i;
-
- rb_scan_args(argc, argv, "01", &nv);
- n = NUM2LONG(nv);
- if (n > RARRAY(ary)->len) n = RARRAY(ary)->len;
- result = rb_ary_new2(n);
- for (i=0; i<n; i++) {
- rb_ary_push(result, RARRAY(ary)->ptr[i]);
- }
- return result;
+ return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);
}
}
/*
* call-seq:
- * array.last -> obj or nil
- * array.last(n) -> an_array
- *
- * Returns the last element(s) of <i>self</i>. If the array is empty,
- * the first form returns <code>nil</code>.
- *
- * [ "w", "x", "y", "z" ].last #=> "z"
+ * ary.last -> obj or nil
+ * ary.last(n) -> new_ary
+ *
+ * Returns the last element(s) of +self+. If the array is empty,
+ * the first form returns +nil+.
+ *
+ * See also Array#first for the opposite effect.
+ *
+ * a = [ "w", "x", "y", "z" ]
+ * a.last #=> "z"
+ * a.last(2) #=> ["y", "z"]
*/
-static VALUE
-rb_ary_last(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+VALUE
+rb_ary_last(int argc, VALUE *argv, VALUE ary)
{
if (argc == 0) {
- if (RARRAY(ary)->len == 0) return Qnil;
- return RARRAY(ary)->ptr[RARRAY(ary)->len-1];
+ long len = RARRAY_LEN(ary);
+ if (len == 0) return Qnil;
+ return RARRAY_AREF(ary, len-1);
}
else {
- VALUE nv, result;
- long n, i;
-
- rb_scan_args(argc, argv, "01", &nv);
- n = NUM2LONG(nv);
- if (n > RARRAY(ary)->len) n = RARRAY(ary)->len;
- result = rb_ary_new2(n);
- for (i=RARRAY(ary)->len-n; n--; i++) {
- rb_ary_push(result, RARRAY(ary)->ptr[i]);
- }
- return result;
+ return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);
}
}
/*
* call-seq:
- * array.fetch(index) -> obj
- * array.fetch(index, default ) -> obj
- * array.fetch(index) {|index| block } -> obj
- *
- * Tries to return the element at position <i>index</i>. If the index
- * lies outside the array, the first form throws an
- * <code>IndexError</code> exception, the second form returns
- * <i>default</i>, and the third form returns the value of invoking
- * the block, passing in the index. Negative values of <i>index</i>
- * count from the end of the array.
- *
+ * ary.fetch(index) -> obj
+ * ary.fetch(index, default) -> obj
+ * ary.fetch(index) { |index| block } -> obj
+ *
+ * Tries to return the element at position +index+, but throws an IndexError
+ * exception if the referenced +index+ lies outside of the array bounds. This
+ * error can be prevented by supplying a second argument, which will act as a
+ * +default+ value.
+ *
+ * Alternatively, if a block is given it will only be executed when an
+ * invalid +index+ is referenced. Negative values of +index+ count from the
+ * end of the array.
+ *
* a = [ 11, 22, 33, 44 ]
* a.fetch(1) #=> 22
* a.fetch(-1) #=> 44
* a.fetch(4, 'cat') #=> "cat"
- * a.fetch(4) { |i| i*i } #=> 16
+ * a.fetch(100) { |i| puts "#{i} is out of bounds" }
+ * #=> "100 is out of bounds"
*/
static VALUE
-rb_ary_fetch(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_fetch(int argc, VALUE *argv, VALUE ary)
{
VALUE pos, ifnone;
long block_given;
@@ -840,201 +1385,300 @@ rb_ary_fetch(argc, argv, ary)
idx = NUM2LONG(pos);
if (idx < 0) {
- idx += RARRAY(ary)->len;
+ idx += RARRAY_LEN(ary);
}
- if (idx < 0 || RARRAY(ary)->len <= idx) {
+ if (idx < 0 || RARRAY_LEN(ary) <= idx) {
if (block_given) return rb_yield(pos);
if (argc == 1) {
- rb_raise(rb_eIndexError, "index %ld out of array", idx);
+ rb_raise(rb_eIndexError, "index %ld outside of array bounds: %ld...%ld",
+ idx - (idx < 0 ? RARRAY_LEN(ary) : 0), -RARRAY_LEN(ary), RARRAY_LEN(ary));
}
return ifnone;
}
- return RARRAY(ary)->ptr[idx];
+ return RARRAY_AREF(ary, idx);
}
/*
* call-seq:
- * array.index(obj) -> int or nil
- *
- * Returns the index of the first object in <i>self</i> such that is
- * <code>==</code> to <i>obj</i>. Returns <code>nil</code> if
- * no match is found.
- *
+ * ary.find_index(obj) -> int or nil
+ * ary.find_index { |item| block } -> int or nil
+ * ary.find_index -> Enumerator
+ * ary.index(obj) -> int or nil
+ * ary.index { |item| block } -> int or nil
+ * ary.index -> Enumerator
+ *
+ * Returns the _index_ of the first object in +ary+ such that the object is
+ * <code>==</code> to +obj+.
+ *
+ * If a block is given instead of an argument, returns the _index_ of the
+ * first object for which the block returns +true+. Returns +nil+ if no
+ * match is found.
+ *
+ * See also Array#rindex.
+ *
+ * An Enumerator is returned if neither a block nor argument is given.
+ *
* a = [ "a", "b", "c" ]
- * a.index("b") #=> 1
- * a.index("z") #=> nil
+ * a.index("b") #=> 1
+ * a.index("z") #=> nil
+ * a.index { |x| x == "b" } #=> 1
*/
static VALUE
-rb_ary_index(ary, val)
- VALUE ary;
- VALUE val;
+rb_ary_index(int argc, VALUE *argv, VALUE ary)
{
- long i;
+ const VALUE *ptr;
+ VALUE val;
+ long i, len;
- for (i=0; i<RARRAY(ary)->len; i++) {
- if (rb_equal(RARRAY(ary)->ptr[i], val))
+ if (argc == 0) {
+ RETURN_ENUMERATOR(ary, 0, 0);
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {
+ return LONG2NUM(i);
+ }
+ }
+ return Qnil;
+ }
+ rb_check_arity(argc, 0, 1);
+ val = argv[0];
+ if (rb_block_given_p())
+ rb_warn("given block not used");
+ len = RARRAY_LEN(ary);
+ ptr = RARRAY_CONST_PTR(ary);
+ for (i=0; i<len; i++) {
+ VALUE e = ptr[i];
+ switch (rb_equal_opt(e, val)) {
+ case Qundef:
+ if (!rb_equal(e, val)) break;
+ case Qtrue:
return LONG2NUM(i);
+ case Qfalse:
+ continue;
+ }
+ len = RARRAY_LEN(ary);
+ ptr = RARRAY_CONST_PTR(ary);
}
return Qnil;
}
/*
* call-seq:
- * array.rindex(obj) -> int or nil
- *
- * Returns the index of the last object in <i>array</i>
- * <code>==</code> to <i>obj</i>. Returns <code>nil</code> if
- * no match is found.
- *
+ * ary.rindex(obj) -> int or nil
+ * ary.rindex { |item| block } -> int or nil
+ * ary.rindex -> Enumerator
+ *
+ * Returns the _index_ of the last object in +self+ <code>==</code> to +obj+.
+ *
+ * If a block is given instead of an argument, returns the _index_ of the
+ * first object for which the block returns +true+, starting from the last
+ * object.
+ *
+ * Returns +nil+ if no match is found.
+ *
+ * See also Array#index.
+ *
+ * If neither block nor argument is given, an Enumerator is returned instead.
+ *
* a = [ "a", "b", "b", "b", "c" ]
- * a.rindex("b") #=> 3
- * a.rindex("z") #=> nil
+ * a.rindex("b") #=> 3
+ * a.rindex("z") #=> nil
+ * a.rindex { |x| x == "b" } #=> 3
*/
static VALUE
-rb_ary_rindex(ary, val)
- VALUE ary;
- VALUE val;
+rb_ary_rindex(int argc, VALUE *argv, VALUE ary)
{
- long i = RARRAY(ary)->len;
+ const VALUE *ptr;
+ VALUE val;
+ long i = RARRAY_LEN(ary), len;
+ if (argc == 0) {
+ RETURN_ENUMERATOR(ary, 0, 0);
+ while (i--) {
+ if (RTEST(rb_yield(RARRAY_AREF(ary, i))))
+ return LONG2NUM(i);
+ if (i > (len = RARRAY_LEN(ary))) {
+ i = len;
+ }
+ }
+ return Qnil;
+ }
+ rb_check_arity(argc, 0, 1);
+ val = argv[0];
+ if (rb_block_given_p())
+ rb_warn("given block not used");
+ ptr = RARRAY_CONST_PTR(ary);
while (i--) {
- if (i > RARRAY(ary)->len) {
- i = RARRAY(ary)->len;
+ VALUE e = ptr[i];
+ switch (rb_equal_opt(e, val)) {
+ case Qundef:
+ if (!rb_equal(e, val)) break;
+ case Qtrue:
+ return LONG2NUM(i);
+ case Qfalse:
continue;
}
- if (rb_equal(RARRAY(ary)->ptr[i], val))
- return LONG2NUM(i);
+ if (i > (len = RARRAY_LEN(ary))) {
+ i = len;
+ }
+ ptr = RARRAY_CONST_PTR(ary);
}
return Qnil;
}
-/*
- * call-seq:
- * array.indexes( i1, i2, ... iN ) -> an_array
- * array.indices( i1, i2, ... iN ) -> an_array
- *
- * Deprecated; use <code>Array#values_at</code>.
- */
-
-static VALUE
-rb_ary_indexes(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
-{
- VALUE new_ary;
- long i;
-
- rb_warn("Array#%s is deprecated; use Array#values_at", rb_id2name(rb_frame_last_func()));
- new_ary = rb_ary_new2(argc);
- for (i=0; i<argc; i++) {
- rb_ary_push(new_ary, rb_ary_aref(1, argv+i, ary));
- }
-
- return new_ary;
-}
-
VALUE
-rb_ary_to_ary(obj)
- VALUE obj;
+rb_ary_to_ary(VALUE obj)
{
- if (TYPE(obj) == T_ARRAY) {
- return obj;
- }
- if (rb_respond_to(obj, rb_intern("to_ary"))) {
- return rb_convert_type(obj, T_ARRAY, "Array", "to_ary");
- }
+ VALUE tmp = rb_check_array_type(obj);
+
+ if (!NIL_P(tmp)) return tmp;
return rb_ary_new3(1, obj);
}
static void
-rb_ary_splice(ary, beg, len, rpl)
- VALUE ary;
- long beg, len;
- VALUE rpl;
+rb_ary_splice(VALUE ary, long beg, long len, VALUE rpl)
{
long rlen;
+ long olen;
if (len < 0) rb_raise(rb_eIndexError, "negative length (%ld)", len);
+ olen = RARRAY_LEN(ary);
if (beg < 0) {
- beg += RARRAY(ary)->len;
+ beg += olen;
if (beg < 0) {
- beg -= RARRAY(ary)->len;
- rb_raise(rb_eIndexError, "index %ld out of array", beg);
+ rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",
+ beg - olen, -olen);
}
}
- if (RARRAY(ary)->len < len || RARRAY(ary)->len < beg + len) {
- len = RARRAY(ary)->len - beg;
+ if (olen < len || olen < beg + len) {
+ len = olen - beg;
}
- if (NIL_P(rpl)) {
+ if (rpl == Qundef) {
rlen = 0;
}
else {
rpl = rb_ary_to_ary(rpl);
- rlen = RARRAY(rpl)->len;
+ rlen = RARRAY_LEN(rpl);
+ olen = RARRAY_LEN(ary); /* ary may be resized in rpl.to_ary too */
}
- rb_ary_modify(ary);
-
- if (beg >= RARRAY(ary)->len) {
+ if (beg >= olen) {
if (beg > ARY_MAX_SIZE - rlen) {
rb_raise(rb_eIndexError, "index %ld too big", beg);
}
+ ary_ensure_room_for_push(ary, rlen-len); /* len is 0 or negative */
len = beg + rlen;
- if (len >= RARRAY(ary)->aux.capa) {
- REALLOC_N(RARRAY(ary)->ptr, VALUE, len);
- RARRAY(ary)->aux.capa = len;
- }
- rb_mem_clear(RARRAY(ary)->ptr + RARRAY(ary)->len, beg - RARRAY(ary)->len);
+ ary_mem_clear(ary, olen, beg - olen);
if (rlen > 0) {
- MEMCPY(RARRAY(ary)->ptr + beg, RARRAY(rpl)->ptr, VALUE, rlen);
+ ary_memcpy(ary, beg, rlen, RARRAY_CONST_PTR(rpl));
}
- RARRAY(ary)->len = len;
+ ARY_SET_LEN(ary, len);
}
else {
long alen;
- if (beg + len > RARRAY(ary)->len) {
- len = RARRAY(ary)->len - beg;
- }
-
- alen = RARRAY(ary)->len + rlen - len;
- if (alen >= RARRAY(ary)->aux.capa) {
- REALLOC_N(RARRAY(ary)->ptr, VALUE, alen);
- RARRAY(ary)->aux.capa = alen;
+ rb_ary_modify(ary);
+ alen = olen + rlen - len;
+ if (alen >= ARY_CAPA(ary)) {
+ ary_double_capa(ary, alen);
}
if (len != rlen) {
- MEMMOVE(RARRAY(ary)->ptr + beg + rlen, RARRAY(ary)->ptr + beg + len,
- VALUE, RARRAY(ary)->len - (beg + len));
- RARRAY(ary)->len = alen;
+ RARRAY_PTR_USE(ary, ptr,
+ MEMMOVE(ptr + beg + rlen, ptr + beg + len,
+ VALUE, olen - (beg + len)));
+ ARY_SET_LEN(ary, alen);
}
if (rlen > 0) {
- MEMMOVE(RARRAY(ary)->ptr + beg, RARRAY(rpl)->ptr, VALUE, rlen);
+ MEMMOVE(RARRAY_PTR(ary) + beg, RARRAY_CONST_PTR(rpl), VALUE, rlen);
+ }
+ }
+}
+
+void
+rb_ary_set_len(VALUE ary, long len)
+{
+ long capa;
+
+ rb_ary_modify_check(ary);
+ if (ARY_SHARED_P(ary)) {
+ rb_raise(rb_eRuntimeError, "can't set length of shared ");
+ }
+ if (len > (capa = (long)ARY_CAPA(ary))) {
+ rb_bug("probable buffer overflow: %ld for %ld", len, capa);
+ }
+ ARY_SET_LEN(ary, len);
+}
+
+/*!
+ * expands or shrinks \a ary to \a len elements.
+ * expanded region will be filled with Qnil.
+ * \param ary an array
+ * \param len new size
+ * \return \a ary
+ * \post the size of \a ary is \a len.
+ */
+VALUE
+rb_ary_resize(VALUE ary, long len)
+{
+ long olen;
+
+ rb_ary_modify(ary);
+ olen = RARRAY_LEN(ary);
+ if (len == olen) return ary;
+ if (len > ARY_MAX_SIZE) {
+ rb_raise(rb_eIndexError, "index %ld too big", len);
+ }
+ if (len > olen) {
+ if (len >= ARY_CAPA(ary)) {
+ ary_double_capa(ary, len);
}
+ ary_mem_clear(ary, olen, len - olen);
+ ARY_SET_LEN(ary, len);
}
+ else if (ARY_EMBED_P(ary)) {
+ ARY_SET_EMBED_LEN(ary, len);
+ }
+ else if (len <= RARRAY_EMBED_LEN_MAX) {
+ VALUE tmp[RARRAY_EMBED_LEN_MAX];
+ MEMCPY(tmp, ARY_HEAP_PTR(ary), VALUE, len);
+ ary_discard(ary);
+ MEMCPY((VALUE *)ARY_EMBED_PTR(ary), tmp, VALUE, len); /* WB: no new reference */
+ ARY_SET_EMBED_LEN(ary, len);
+ }
+ else {
+ if (olen > len + ARY_DEFAULT_SIZE) {
+ SIZED_REALLOC_N(RARRAY(ary)->as.heap.ptr, VALUE, len, RARRAY(ary)->as.heap.aux.capa);
+ ARY_SET_CAPA(ary, len);
+ }
+ ARY_SET_HEAP_LEN(ary, len);
+ }
+ return ary;
}
-/*
+/*
* call-seq:
- * array[index] = obj -> obj
- * array[start, length] = obj or an_array or nil -> obj or an_array or nil
- * array[range] = obj or an_array or nil -> obj or an_array or nil
+ * ary[index] = obj -> obj
+ * ary[start, length] = obj or other_ary or nil -> obj or other_ary or nil
+ * ary[range] = obj or other_ary or nil -> obj or other_ary or nil
+ *
+ * Element Assignment --- Sets the element at +index+, or replaces a subarray
+ * from the +start+ index for +length+ elements, or replaces a subarray
+ * specified by the +range+ of indices.
+ *
+ * If indices are greater than the current capacity of the array, the array
+ * grows automatically. Elements are inserted into the array at +start+ if
+ * +length+ is zero.
+ *
+ * Negative indices will count backward from the end of the array. For
+ * +start+ and +range+ cases the starting index is just before an element.
+ *
+ * An IndexError is raised if a negative index points past the beginning of
+ * the array.
+ *
+ * See also Array#push, and Array#unshift.
*
- * Element Assignment---Sets the element at _index_,
- * or replaces a subarray starting at _start_ and
- * continuing for _length_ elements, or replaces a subarray
- * specified by _range_. If indices are greater than
- * the current capacity of the array, the array grows
- * automatically. A negative indices will count backward
- * from the end of the array. Inserts elements if _length_ is
- * zero. If +nil+ is used in the second and third form,
- * deletes elements from _self_. An +IndexError+ is raised if a
- * negative index points past the beginning of the array. See also
- * <code>Array#push</code>, and <code>Array#unshift</code>.
- *
* a = Array.new
* a[4] = "4"; #=> [nil, nil, nil, nil, "4"]
* a[0, 3] = [ 'a', 'b', 'c' ] #=> ["a", "b", "c", nil, "4"]
@@ -1042,38 +1686,31 @@ rb_ary_splice(ary, beg, len, rpl)
* a[0, 2] = "?" #=> ["?", 2, nil, "4"]
* a[0..2] = "A" #=> ["A", "4"]
* a[-1] = "Z" #=> ["A", "Z"]
- * a[1..-1] = nil #=> ["A"]
+ * a[1..-1] = nil #=> ["A", nil]
+ * a[1..-1] = [] #=> ["A"]
+ * a[0, 0] = [ 1, 2 ] #=> [1, 2, "A"]
+ * a[3, 0] = "B" #=> [1, 2, "A", "B"]
*/
static VALUE
-rb_ary_aset(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_aset(int argc, VALUE *argv, VALUE ary)
{
long offset, beg, len;
if (argc == 3) {
- if (SYMBOL_P(argv[0])) {
- rb_raise(rb_eTypeError, "Symbol as array index");
- }
- if (SYMBOL_P(argv[1])) {
- rb_raise(rb_eTypeError, "Symbol as subarray length");
- }
- rb_ary_splice(ary, NUM2LONG(argv[0]), NUM2LONG(argv[1]), argv[2]);
+ rb_ary_modify_check(ary);
+ beg = NUM2LONG(argv[0]);
+ len = NUM2LONG(argv[1]);
+ rb_ary_splice(ary, beg, len, argv[2]);
return argv[2];
}
- if (argc != 2) {
- rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
- }
+ rb_check_arity(argc, 2, 2);
+ rb_ary_modify_check(ary);
if (FIXNUM_P(argv[0])) {
offset = FIX2LONG(argv[0]);
goto fixnum;
}
- if (SYMBOL_P(argv[0])) {
- rb_raise(rb_eTypeError, "Symbol as array index");
- }
- if (rb_range_beg_len(argv[0], &beg, &len, RARRAY(ary)->len, 1)) {
+ if (rb_range_beg_len(argv[0], &beg, &len, RARRAY_LEN(ary), 1)) {
/* check if idx is Range */
rb_ary_splice(ary, beg, len, argv[1]);
return argv[1];
@@ -1087,31 +1724,29 @@ fixnum:
/*
* call-seq:
- * array.insert(index, obj...) -> array
- *
- * Inserts the given values before the element with the given index
- * (which may be negative).
- *
+ * ary.insert(index, obj...) -> ary
+ *
+ * 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.
+ *
* a = %w{ a b c d }
* a.insert(2, 99) #=> ["a", "b", 99, "c", "d"]
* a.insert(-2, 1, 2, 3) #=> ["a", "b", 99, "c", 1, 2, 3, "d"]
*/
static VALUE
-rb_ary_insert(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_insert(int argc, VALUE *argv, VALUE ary)
{
long pos;
+ rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
+ rb_ary_modify_check(ary);
if (argc == 1) return ary;
- if (argc < 1) {
- rb_raise(rb_eArgError, "wrong number of arguments (at least 1)");
- }
pos = NUM2LONG(argv[0]);
if (pos == -1) {
- pos = RARRAY(ary)->len;
+ pos = RARRAY_LEN(ary);
}
if (pos < 0) {
pos++;
@@ -1120,55 +1755,71 @@ rb_ary_insert(argc, argv, ary)
return ary;
}
+static VALUE
+rb_ary_length(VALUE ary);
+
+static VALUE
+ary_enum_length(VALUE ary, VALUE args, VALUE eobj)
+{
+ return rb_ary_length(ary);
+}
+
/*
* call-seq:
- * array.each {|item| block } -> array
- *
- * Calls <i>block</i> once for each element in <i>self</i>, passing that
- * element as a parameter.
- *
+ * ary.each { |item| block } -> ary
+ * ary.each -> Enumerator
+ *
+ * Calls the given block once for each element in +self+, passing that element
+ * as a parameter.
+ *
+ * An Enumerator is returned if no block is given.
+ *
* a = [ "a", "b", "c" ]
* a.each {|x| print x, " -- " }
- *
+ *
* produces:
- *
+ *
* a -- b -- c --
*/
VALUE
-rb_ary_each(ary)
- VALUE ary;
+rb_ary_each(VALUE array)
{
long i;
+ volatile VALUE ary = array;
- for (i=0; i<RARRAY(ary)->len; i++) {
- rb_yield(RARRAY(ary)->ptr[i]);
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ rb_yield(RARRAY_AREF(ary, i));
}
return ary;
}
/*
* call-seq:
- * array.each_index {|index| block } -> array
- *
- * Same as <code>Array#each</code>, but passes the index of the element
- * instead of the element itself.
- *
+ * ary.each_index { |index| block } -> ary
+ * ary.each_index -> Enumerator
+ *
+ * Same as Array#each, but passes the +index+ of the element instead of the
+ * element itself.
+ *
+ * An Enumerator is returned if no block is given.
+ *
* a = [ "a", "b", "c" ]
* a.each_index {|x| print x, " -- " }
- *
+ *
* produces:
- *
+ *
* 0 -- 1 -- 2 --
*/
static VALUE
-rb_ary_each_index(ary)
- VALUE ary;
+rb_ary_each_index(VALUE ary)
{
long i;
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- for (i=0; i<RARRAY(ary)->len; i++) {
+ for (i=0; i<RARRAY_LEN(ary); i++) {
rb_yield(LONG2NUM(i));
}
return ary;
@@ -1176,29 +1827,32 @@ rb_ary_each_index(ary)
/*
* call-seq:
- * array.reverse_each {|item| block }
- *
- * Same as <code>Array#each</code>, but traverses <i>self</i> in reverse
- * order.
- *
+ * ary.reverse_each { |item| block } -> ary
+ * ary.reverse_each -> Enumerator
+ *
+ * Same as Array#each, but traverses +self+ in reverse order.
+ *
* a = [ "a", "b", "c" ]
* a.reverse_each {|x| print x, " " }
- *
+ *
* produces:
- *
+ *
* c b a
*/
static VALUE
-rb_ary_reverse_each(ary)
- VALUE ary;
+rb_ary_reverse_each(VALUE ary)
{
- long len = RARRAY(ary)->len;
+ long len;
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ len = RARRAY_LEN(ary);
while (len--) {
- rb_yield(RARRAY(ary)->ptr[len]);
- if (RARRAY(ary)->len < len) {
- len = RARRAY(ary)->len;
+ long nlen;
+ rb_yield(RARRAY_AREF(ary, len));
+ nlen = RARRAY_LEN(ary);
+ if (nlen < len) {
+ len = nlen;
}
}
return ary;
@@ -1206,483 +1860,654 @@ rb_ary_reverse_each(ary)
/*
* call-seq:
- * array.length -> int
- *
- * Returns the number of elements in <i>self</i>. May be zero.
- *
+ * ary.length -> int
+ *
+ * Returns the number of elements in +self+. May be zero.
+ *
* [ 1, 2, 3, 4, 5 ].length #=> 5
+ * [].length #=> 0
*/
static VALUE
-rb_ary_length(ary)
- VALUE ary;
+rb_ary_length(VALUE ary)
{
- return LONG2NUM(RARRAY(ary)->len);
+ long len = RARRAY_LEN(ary);
+ return LONG2NUM(len);
}
/*
* call-seq:
- * array.empty? -> true or false
- *
- * Returns <code>true</code> if <i>self</i> array contains no elements.
- *
+ * ary.empty? -> true or false
+ *
+ * Returns +true+ if +self+ contains no elements.
+ *
* [].empty? #=> true
*/
static VALUE
-rb_ary_empty_p(ary)
- VALUE ary;
+rb_ary_empty_p(VALUE ary)
{
- if (RARRAY(ary)->len == 0)
+ if (RARRAY_LEN(ary) == 0)
return Qtrue;
return Qfalse;
}
VALUE
-rb_ary_dup(ary)
- VALUE ary;
+rb_ary_dup(VALUE ary)
{
- VALUE dup = rb_ary_new2(RARRAY(ary)->len);
-
- DUPSETUP(dup, ary);
- MEMCPY(RARRAY(dup)->ptr, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
- RARRAY(dup)->len = RARRAY(ary)->len;
+ long len = RARRAY_LEN(ary);
+ VALUE dup = rb_ary_new2(len);
+ ary_memcpy(dup, 0, len, RARRAY_CONST_PTR(ary));
+ ARY_SET_LEN(dup, len);
return dup;
}
+VALUE
+rb_ary_resurrect(VALUE ary)
+{
+ return rb_ary_new4(RARRAY_LEN(ary), RARRAY_CONST_PTR(ary));
+}
+
extern VALUE rb_output_fs;
+static void ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first);
+
static VALUE
-inspect_join(ary, arg)
- VALUE ary;
- VALUE *arg;
+recursive_join(VALUE obj, VALUE argp, int recur)
{
- return rb_ary_join(arg[0], arg[1]);
+ VALUE *arg = (VALUE *)argp;
+ VALUE ary = arg[0];
+ VALUE sep = arg[1];
+ VALUE result = arg[2];
+ int *first = (int *)arg[3];
+
+ if (recur) {
+ rb_raise(rb_eArgError, "recursive array join");
+ }
+ else {
+ ary_join_1(obj, ary, sep, 0, result, first);
+ }
+ return Qnil;
}
-VALUE
-rb_ary_join(ary, sep)
- VALUE ary, sep;
+static void
+ary_join_0(VALUE ary, VALUE sep, long max, VALUE result)
{
- long len = 1, i;
- int taint = Qfalse;
- VALUE result, tmp;
-
- if (RARRAY(ary)->len == 0) return rb_str_new(0, 0);
- if (OBJ_TAINTED(ary) || OBJ_TAINTED(sep)) taint = Qtrue;
+ long i;
+ VALUE val;
- for (i=0; i<RARRAY(ary)->len; i++) {
- tmp = rb_check_string_type(RARRAY(ary)->ptr[i]);
- len += NIL_P(tmp) ? 10 : RSTRING(tmp)->len;
- }
- if (!NIL_P(sep)) {
- StringValue(sep);
- len += RSTRING(sep)->len * (RARRAY(ary)->len - 1);
+ if (max > 0) rb_enc_copy(result, RARRAY_AREF(ary, 0));
+ for (i=0; i<max; i++) {
+ val = RARRAY_AREF(ary, i);
+ if (i > 0 && !NIL_P(sep))
+ rb_str_buf_append(result, sep);
+ rb_str_buf_append(result, val);
+ if (OBJ_TAINTED(val)) OBJ_TAINT(result);
}
- result = rb_str_buf_new(len);
- for (i=0; i<RARRAY(ary)->len; i++) {
- tmp = RARRAY(ary)->ptr[i];
- switch (TYPE(tmp)) {
- case T_STRING:
- break;
- case T_ARRAY:
- if (rb_inspecting_p(tmp)) {
- tmp = rb_str_new2("[...]");
+}
+
+static void
+ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first)
+{
+ VALUE val, tmp;
+
+ for (; i<RARRAY_LEN(ary); i++) {
+ if (i > 0 && !NIL_P(sep))
+ rb_str_buf_append(result, sep);
+
+ val = RARRAY_AREF(ary, i);
+ if (RB_TYPE_P(val, T_STRING)) {
+ str_join:
+ rb_str_buf_append(result, val);
+ *first = FALSE;
+ }
+ else if (RB_TYPE_P(val, T_ARRAY)) {
+ obj = val;
+ ary_join:
+ if (val == ary) {
+ rb_raise(rb_eArgError, "recursive array join");
}
else {
- VALUE args[2];
+ VALUE args[4];
- args[0] = tmp;
+ args[0] = val;
args[1] = sep;
- tmp = rb_protect_inspect(inspect_join, ary, (VALUE)args);
+ args[2] = result;
+ args[3] = (VALUE)first;
+ rb_exec_recursive(recursive_join, obj, (VALUE)args);
}
- break;
- default:
- tmp = rb_obj_as_string(tmp);
}
- if (i > 0 && !NIL_P(sep))
- rb_str_buf_append(result, sep);
- rb_str_buf_append(result, tmp);
- if (OBJ_TAINTED(tmp)) taint = Qtrue;
+ else {
+ tmp = rb_check_string_type(val);
+ if (!NIL_P(tmp)) {
+ val = tmp;
+ goto str_join;
+ }
+ tmp = rb_check_convert_type(val, T_ARRAY, "Array", "to_ary");
+ if (!NIL_P(tmp)) {
+ obj = val;
+ val = tmp;
+ goto ary_join;
+ }
+ val = rb_obj_as_string(val);
+ if (*first) {
+ rb_enc_copy(result, val);
+ *first = FALSE;
+ }
+ goto str_join;
+ }
+ }
+}
+
+VALUE
+rb_ary_join(VALUE ary, VALUE sep)
+{
+ long len = 1, i;
+ int taint = FALSE;
+ VALUE val, tmp, result;
+
+ if (RARRAY_LEN(ary) == 0) return rb_usascii_str_new(0, 0);
+ if (OBJ_TAINTED(ary)) taint = TRUE;
+
+ if (!NIL_P(sep)) {
+ StringValue(sep);
+ len += RSTRING_LEN(sep) * (RARRAY_LEN(ary) - 1);
+ }
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ val = RARRAY_AREF(ary, i);
+ tmp = rb_check_string_type(val);
+
+ if (NIL_P(tmp) || tmp != val) {
+ int first;
+ result = rb_str_buf_new(len + (RARRAY_LEN(ary)-i)*10);
+ rb_enc_associate(result, rb_usascii_encoding());
+ if (taint) OBJ_TAINT(result);
+ ary_join_0(ary, sep, i, result);
+ first = i == 0;
+ ary_join_1(ary, ary, sep, i, result, &first);
+ return result;
+ }
+
+ len += RSTRING_LEN(tmp);
}
+ result = rb_str_buf_new(len);
if (taint) OBJ_TAINT(result);
+ ary_join_0(ary, sep, RARRAY_LEN(ary), result);
+
return result;
}
/*
* call-seq:
- * array.join(sep=$,) -> str
- *
+ * ary.join(separator=$,) -> str
+ *
* Returns a string created by converting each element of the array to
- * a string, separated by <i>sep</i>.
- *
+ * a string, separated by the given +separator+.
+ * If the +separator+ is +nil+, it uses current $,.
+ * If both the +separator+ and $, are nil, it uses empty string.
+ *
* [ "a", "b", "c" ].join #=> "abc"
* [ "a", "b", "c" ].join("-") #=> "a-b-c"
*/
static VALUE
-rb_ary_join_m(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_join_m(int argc, VALUE *argv, VALUE ary)
{
VALUE sep;
rb_scan_args(argc, argv, "01", &sep);
if (NIL_P(sep)) sep = rb_output_fs;
-
+
return rb_ary_join(ary, sep);
}
+static VALUE
+inspect_ary(VALUE ary, VALUE dummy, int recur)
+{
+ int tainted = OBJ_TAINTED(ary);
+ long i;
+ VALUE s, str;
+
+ if (recur) return rb_usascii_str_new_cstr("[...]");
+ str = rb_str_buf_new2("[");
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ s = rb_inspect(RARRAY_AREF(ary, i));
+ if (OBJ_TAINTED(s)) tainted = TRUE;
+ if (i > 0) rb_str_buf_cat2(str, ", ");
+ else rb_enc_copy(str, s);
+ rb_str_buf_append(str, s);
+ }
+ rb_str_buf_cat2(str, "]");
+ if (tainted) OBJ_TAINT(str);
+ return str;
+}
+
/*
* call-seq:
- * array.to_s -> string
- *
- * Returns _self_<code>.join</code>.
- *
- * [ "a", "e", "i", "o" ].to_s #=> "aeio"
+ * ary.inspect -> string
+ * ary.to_s -> string
*
+ * Creates a string representation of +self+.
+ *
+ * [ "a", "b", "c" ].to_s #=> "[\"a\", \"b\", \"c\"]"
*/
-VALUE
-rb_ary_to_s(ary)
- VALUE ary;
+static VALUE
+rb_ary_inspect(VALUE ary)
{
- if (RARRAY(ary)->len == 0) return rb_str_new(0, 0);
-
- return rb_ary_join(ary, rb_output_fs);
+ if (RARRAY_LEN(ary) == 0) return rb_usascii_str_new2("[]");
+ return rb_exec_recursive(inspect_ary, ary, 0);
}
-static ID inspect_key;
+VALUE
+rb_ary_to_s(VALUE ary)
+{
+ return rb_ary_inspect(ary);
+}
-struct inspect_arg {
- VALUE (*func)();
- VALUE arg1, arg2;
-};
+/*
+ * call-seq:
+ * ary.to_a -> ary
+ *
+ * Returns +self+.
+ *
+ * If called on a subclass of Array, converts the receiver to an Array object.
+ */
static VALUE
-inspect_call(arg)
- struct inspect_arg *arg;
+rb_ary_to_a(VALUE ary)
{
- return (*arg->func)(arg->arg1, arg->arg2);
+ if (rb_obj_class(ary) != rb_cArray) {
+ VALUE dup = rb_ary_new2(RARRAY_LEN(ary));
+ rb_ary_replace(dup, ary);
+ return dup;
+ }
+ return ary;
}
+/*
+ * call-seq:
+ * ary.to_h -> hash
+ *
+ * Returns the result of interpreting <i>ary</i> as an array of
+ * <tt>[key, value]</tt> pairs. Elements other than pairs of
+ * values are ignored.
+ *
+ * [[:foo, :bar], [1, 2]].to_h
+ * # => {:foo => :bar, 1 => 2}
+ */
+
static VALUE
-get_inspect_tbl(create)
- int create;
+rb_ary_to_h(VALUE ary)
{
- VALUE inspect_tbl = rb_thread_local_aref(rb_thread_current(), inspect_key);
-
- if (NIL_P(inspect_tbl)) {
- if (create) {
- tbl_init:
- inspect_tbl = rb_ary_new();
- rb_thread_local_aset(rb_thread_current(), inspect_key, inspect_tbl);
+ long i;
+ VALUE hash = rb_hash_new();
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ VALUE key_value_pair = rb_check_array_type(rb_ary_elt(ary, i));
+ if (!NIL_P(key_value_pair) && (RARRAY_LEN(key_value_pair) == 2)) {
+ rb_hash_aset(hash, RARRAY_AREF(key_value_pair, 0), RARRAY_AREF(key_value_pair, 1));
}
}
- else if (TYPE(inspect_tbl) != T_ARRAY) {
- rb_warn("invalid inspect_tbl value");
- if (create) goto tbl_init;
- rb_thread_local_aset(rb_thread_current(), inspect_key, Qnil);
- return Qnil;
- }
- return inspect_tbl;
+ return hash;
}
+/*
+ * call-seq:
+ * ary.to_ary -> ary
+ *
+ * Returns +self+.
+ */
+
static VALUE
-inspect_ensure(obj)
- VALUE obj;
+rb_ary_to_ary_m(VALUE ary)
{
- VALUE inspect_tbl;
-
- inspect_tbl = get_inspect_tbl(Qfalse);
- if (!NIL_P(inspect_tbl)) {
- rb_ary_pop(inspect_tbl);
- }
- return 0;
+ return ary;
}
-VALUE
-rb_protect_inspect(func, obj, arg)
- VALUE (*func)(ANYARGS);
- VALUE obj, arg;
+static void
+ary_reverse(VALUE *p1, VALUE *p2)
{
- struct inspect_arg iarg;
- VALUE inspect_tbl;
- VALUE id;
-
- inspect_tbl = get_inspect_tbl(Qtrue);
- id = rb_obj_id(obj);
- if (rb_ary_includes(inspect_tbl, id)) {
- return (*func)(obj, arg);
+ while (p1 < p2) {
+ VALUE tmp = *p1;
+ *p1++ = *p2;
+ *p2-- = tmp;
}
- rb_ary_push(inspect_tbl, id);
- iarg.func = func;
- iarg.arg1 = obj;
- iarg.arg2 = arg;
-
- return rb_ensure(inspect_call, (VALUE)&iarg, inspect_ensure, obj);
}
VALUE
-rb_inspecting_p(obj)
- VALUE obj;
+rb_ary_reverse(VALUE ary)
{
- VALUE inspect_tbl;
-
- inspect_tbl = get_inspect_tbl(Qfalse);
- if (NIL_P(inspect_tbl)) return Qfalse;
- return rb_ary_includes(inspect_tbl, rb_obj_id(obj));
-}
+ VALUE *p2;
+ long len = RARRAY_LEN(ary);
-static VALUE
-inspect_ary(ary)
- VALUE ary;
-{
- int tainted = OBJ_TAINTED(ary);
- long i;
- VALUE s, str;
-
- str = rb_str_buf_new2("[");
- for (i=0; i<RARRAY(ary)->len; i++) {
- s = rb_inspect(RARRAY(ary)->ptr[i]);
- if (OBJ_TAINTED(s)) tainted = Qtrue;
- if (i > 0) rb_str_buf_cat2(str, ", ");
- rb_str_buf_append(str, s);
+ rb_ary_modify(ary);
+ if (len > 1) {
+ RARRAY_PTR_USE(ary, p1, {
+ p2 = p1 + len - 1; /* points last item */
+ ary_reverse(p1, p2);
+ }); /* WB: no new reference */
}
- rb_str_buf_cat2(str, "]");
- if (tainted) OBJ_TAINT(str);
- return str;
+ return ary;
}
/*
* call-seq:
- * array.inspect -> string
+ * ary.reverse! -> ary
+ *
+ * Reverses +self+ in place.
*
- * Create a printable version of <i>array</i>.
+ * a = [ "a", "b", "c" ]
+ * a.reverse! #=> ["c", "b", "a"]
+ * a #=> ["c", "b", "a"]
*/
static VALUE
-rb_ary_inspect(ary)
- VALUE ary;
+rb_ary_reverse_bang(VALUE ary)
{
- if (RARRAY(ary)->len == 0) return rb_str_new2("[]");
- if (rb_inspecting_p(ary)) return rb_str_new2("[...]");
- return rb_protect_inspect(inspect_ary, ary, 0);
+ return rb_ary_reverse(ary);
}
/*
* call-seq:
- * array.to_a -> array
- *
- * Returns _self_. If called on a subclass of Array, converts
- * the receiver to an Array object.
+ * ary.reverse -> new_ary
+ *
+ * Returns a new array containing +self+'s elements in reverse order.
+ *
+ * [ "a", "b", "c" ].reverse #=> ["c", "b", "a"]
+ * [ 1 ].reverse #=> [1]
*/
static VALUE
-rb_ary_to_a(ary)
- VALUE ary;
+rb_ary_reverse_m(VALUE ary)
{
- if (rb_obj_class(ary) != rb_cArray) {
- VALUE dup = rb_ary_new2(RARRAY(ary)->len);
- rb_ary_replace(dup, ary);
- return dup;
+ long len = RARRAY_LEN(ary);
+ VALUE dup = rb_ary_new2(len);
+
+ if (len > 0) {
+ const VALUE *p1 = RARRAY_CONST_PTR(ary);
+ VALUE *p2 = (VALUE *)RARRAY_CONST_PTR(dup) + len - 1;
+ do *p2-- = *p1++; while (--len > 0);
}
- return ary;
+ ARY_SET_LEN(dup, RARRAY_LEN(ary));
+ return dup;
}
-/*
- * call-seq:
- * array.to_ary -> array
- *
- * Returns _self_.
- */
-
-static VALUE
-rb_ary_to_ary_m(ary)
- VALUE ary;
+static inline long
+rotate_count(long cnt, long len)
{
- return ary;
+ return (cnt < 0) ? (len - (~cnt % len) - 1) : (cnt % len);
}
VALUE
-rb_ary_reverse(ary)
- VALUE ary;
+rb_ary_rotate(VALUE ary, long cnt)
{
- VALUE *p1, *p2;
- VALUE tmp;
-
rb_ary_modify(ary);
- if (RARRAY(ary)->len > 1) {
- p1 = RARRAY(ary)->ptr;
- p2 = p1 + RARRAY(ary)->len - 1; /* points last item */
- while (p1 < p2) {
- tmp = *p1;
- *p1++ = *p2;
- *p2-- = tmp;
+ if (cnt != 0) {
+ VALUE *ptr = RARRAY_PTR(ary);
+ long len = RARRAY_LEN(ary);
+
+ if (len > 0 && (cnt = rotate_count(cnt, len)) > 0) {
+ --len;
+ if (cnt < len) ary_reverse(ptr + cnt, ptr + len);
+ if (--cnt > 0) ary_reverse(ptr, ptr + cnt);
+ if (len > 0) ary_reverse(ptr, ptr + len);
+ return ary;
}
}
- return ary;
+
+ return Qnil;
}
/*
* call-seq:
- * array.reverse! -> array
- *
- * Reverses _self_ in place.
- *
- * a = [ "a", "b", "c" ]
- * a.reverse! #=> ["c", "b", "a"]
- * a #=> ["c", "b", "a"]
+ * ary.rotate!(count=1) -> ary
+ *
+ * Rotates +self+ in place so that the element at +count+ comes first, and
+ * returns +self+.
+ *
+ * If +count+ is negative then it rotates in the opposite direction, starting
+ * from the end of the array where +-1+ is the last element.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.rotate! #=> ["b", "c", "d", "a"]
+ * a #=> ["b", "c", "d", "a"]
+ * a.rotate!(2) #=> ["d", "a", "b", "c"]
+ * a.rotate!(-3) #=> ["a", "b", "c", "d"]
*/
static VALUE
-rb_ary_reverse_bang(ary)
- VALUE ary;
+rb_ary_rotate_bang(int argc, VALUE *argv, VALUE ary)
{
- return rb_ary_reverse(ary);
+ long n = 1;
+
+ switch (argc) {
+ case 1: n = NUM2LONG(argv[0]);
+ case 0: break;
+ default: rb_scan_args(argc, argv, "01", NULL);
+ }
+ rb_ary_rotate(ary, n);
+ return ary;
}
/*
* call-seq:
- * array.reverse -> an_array
- *
- * Returns a new array containing <i>self</i>'s elements in reverse order.
- *
- * [ "a", "b", "c" ].reverse #=> ["c", "b", "a"]
- * [ 1 ].reverse #=> [1]
+ * ary.rotate(count=1) -> new_ary
+ *
+ * Returns a new array by rotating +self+ so that the element at +count+ is
+ * the first element of the new array.
+ *
+ * If +count+ is negative then it rotates in the opposite direction, starting
+ * from the end of +self+ where +-1+ is the last element.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.rotate #=> ["b", "c", "d", "a"]
+ * a #=> ["a", "b", "c", "d"]
+ * a.rotate(2) #=> ["c", "d", "a", "b"]
+ * a.rotate(-3) #=> ["b", "c", "d", "a"]
*/
static VALUE
-rb_ary_reverse_m(ary)
- VALUE ary;
+rb_ary_rotate_m(int argc, VALUE *argv, VALUE ary)
{
- return rb_ary_reverse(rb_ary_dup(ary));
+ VALUE rotated;
+ const VALUE *ptr;
+ long len, cnt = 1;
+
+ switch (argc) {
+ case 1: cnt = NUM2LONG(argv[0]);
+ case 0: break;
+ default: rb_scan_args(argc, argv, "01", NULL);
+ }
+
+ len = RARRAY_LEN(ary);
+ rotated = rb_ary_new2(len);
+ if (len > 0) {
+ cnt = rotate_count(cnt, len);
+ ptr = RARRAY_CONST_PTR(ary);
+ len -= cnt;
+ ary_memcpy(rotated, 0, len, ptr + cnt);
+ ary_memcpy(rotated, len, cnt, ptr);
+ }
+ ARY_SET_LEN(rotated, RARRAY_LEN(ary));
+ return rotated;
}
struct ary_sort_data {
VALUE ary;
- VALUE *ptr;
- long len;
+ int opt_methods;
+ int opt_inited;
};
-static void
-ary_sort_check(data)
- struct ary_sort_data *data;
+enum {
+ sort_opt_Fixnum,
+ sort_opt_String,
+ sort_optimizable_count
+};
+
+#define STRING_P(s) (RB_TYPE_P((s), T_STRING) && CLASS_OF(s) == rb_cString)
+
+#define SORT_OPTIMIZABLE_BIT(type) (1U << TOKEN_PASTE(sort_opt_,type))
+#define SORT_OPTIMIZABLE(data, type) \
+ (((data)->opt_inited & SORT_OPTIMIZABLE_BIT(type)) ? \
+ ((data)->opt_methods & SORT_OPTIMIZABLE_BIT(type)) : \
+ (((data)->opt_inited |= SORT_OPTIMIZABLE_BIT(type)), \
+ rb_method_basic_definition_p(TOKEN_PASTE(rb_c,type), id_cmp) && \
+ ((data)->opt_methods |= SORT_OPTIMIZABLE_BIT(type))))
+
+static VALUE
+sort_reentered(VALUE ary)
{
- if (RARRAY(data->ary)->ptr != data->ptr || RARRAY(data->ary)->len != data->len) {
- rb_raise(rb_eArgError, "array modified during sort");
+ if (RBASIC(ary)->klass) {
+ rb_raise(rb_eRuntimeError, "sort reentered");
}
+ return Qnil;
}
static int
-sort_1(a, b, data)
- VALUE *a, *b;
- struct ary_sort_data *data;
+sort_1(const void *ap, const void *bp, void *dummy)
{
- VALUE retval = rb_yield_values(2, *a, *b);
+ struct ary_sort_data *data = dummy;
+ VALUE retval = sort_reentered(data->ary);
+ VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;
int n;
- n = rb_cmpint(retval, *a, *b);
- ary_sort_check(data);
+ retval = rb_yield_values(2, a, b);
+ n = rb_cmpint(retval, a, b);
+ sort_reentered(data->ary);
return n;
}
static int
-sort_2(ap, bp, data)
- VALUE *ap, *bp;
- struct ary_sort_data *data;
+sort_2(const void *ap, const void *bp, void *dummy)
{
- VALUE retval;
- VALUE a = *ap, b = *bp;
+ struct ary_sort_data *data = dummy;
+ VALUE retval = sort_reentered(data->ary);
+ VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;
int n;
- if (FIXNUM_P(a) && FIXNUM_P(b)) {
+ if (FIXNUM_P(a) && FIXNUM_P(b) && SORT_OPTIMIZABLE(data, Fixnum)) {
if ((long)a > (long)b) return 1;
if ((long)a < (long)b) return -1;
return 0;
}
- if (TYPE(a) == T_STRING) {
- if (TYPE(b) == T_STRING) return rb_str_cmp(a, b);
+ if (STRING_P(a) && STRING_P(b) && SORT_OPTIMIZABLE(data, String)) {
+ return rb_str_cmp(a, b);
}
- retval = rb_funcall(a, id_cmp, 1, b);
+ retval = rb_funcallv(a, id_cmp, 1, &b);
n = rb_cmpint(retval, a, b);
- ary_sort_check(data);
+ sort_reentered(data->ary);
return n;
}
-static VALUE
-sort_internal(ary)
- VALUE ary;
-{
- struct ary_sort_data data;
-
- data.ary = ary;
- data.ptr = RARRAY(ary)->ptr; data.len = RARRAY(ary)->len;
- qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE),
- rb_block_given_p()?sort_1:sort_2, &data);
- return ary;
-}
-
-static VALUE
-sort_unlock(ary)
- VALUE ary;
-{
- FL_UNSET(ary, ARY_TMPLOCK);
- return ary;
-}
-
/*
* call-seq:
- * array.sort! -> array
- * array.sort! {| a,b | block } -> array
- *
- * Sorts _self_. Comparisons for
- * the sort will be done using the <code><=></code> operator or using
- * an optional code block. The block implements a comparison between
- * <i>a</i> and <i>b</i>, returning -1, 0, or +1. See also
- * <code>Enumerable#sort_by</code>.
- *
+ * ary.sort! -> ary
+ * ary.sort! { |a, b| block } -> ary
+ *
+ * Sorts +self+ in place.
+ *
+ * Comparisons for the sort will be done using the <code><=></code> operator
+ * or using an optional code block.
+ *
+ * The block must implement a comparison between +a+ and +b+, and return
+ * +-1+, when +a+ follows +b+, +0+ when +a+ and +b+ are equivalent, or ++1+
+ * if +b+ follows +a+.
+ *
+ * See also Enumerable#sort_by.
+ *
* a = [ "d", "a", "e", "c", "b" ]
- * a.sort #=> ["a", "b", "c", "d", "e"]
- * a.sort {|x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
+ * a.sort! #=> ["a", "b", "c", "d", "e"]
+ * a.sort! { |x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
*/
VALUE
-rb_ary_sort_bang(ary)
- VALUE ary;
+rb_ary_sort_bang(VALUE ary)
{
rb_ary_modify(ary);
- if (RARRAY(ary)->len > 1) {
- FL_SET(ary, ARY_TMPLOCK); /* prohibit modification during sort */
- rb_ensure(sort_internal, ary, sort_unlock, ary);
+ assert(!ARY_SHARED_P(ary));
+ if (RARRAY_LEN(ary) > 1) {
+ VALUE tmp = ary_make_substitution(ary); /* only ary refers tmp */
+ struct ary_sort_data data;
+ long len = RARRAY_LEN(ary);
+
+ RBASIC_CLEAR_CLASS(tmp);
+ data.ary = tmp;
+ data.opt_methods = 0;
+ data.opt_inited = 0;
+ RARRAY_PTR_USE(tmp, ptr, {
+ ruby_qsort(ptr, len, sizeof(VALUE),
+ rb_block_given_p()?sort_1:sort_2, &data);
+ }); /* WB: no new reference */
+ rb_ary_modify(ary);
+ if (ARY_EMBED_P(tmp)) {
+ if (ARY_SHARED_P(ary)) { /* ary might be destructively operated in the given block */
+ rb_ary_unshare(ary);
+ }
+ FL_SET_EMBED(ary);
+ ary_memcpy(ary, 0, ARY_EMBED_LEN(tmp), ARY_EMBED_PTR(tmp));
+ ARY_SET_LEN(ary, ARY_EMBED_LEN(tmp));
+ }
+ else {
+ if (!ARY_EMBED_P(ary) && ARY_HEAP_PTR(ary) == ARY_HEAP_PTR(tmp)) {
+ FL_UNSET_SHARED(ary);
+ ARY_SET_CAPA(ary, RARRAY_LEN(tmp));
+ }
+ else {
+ assert(!ARY_SHARED_P(tmp));
+ if (ARY_EMBED_P(ary)) {
+ FL_UNSET_EMBED(ary);
+ }
+ else if (ARY_SHARED_P(ary)) {
+ /* ary might be destructively operated in the given block */
+ rb_ary_unshare(ary);
+ }
+ else {
+ ruby_sized_xfree((void *)ARY_HEAP_PTR(ary), ARY_HEAP_SIZE(ary));
+ }
+ ARY_SET_PTR(ary, RARRAY_CONST_PTR(tmp));
+ ARY_SET_HEAP_LEN(ary, len);
+ ARY_SET_CAPA(ary, RARRAY_LEN(tmp));
+ }
+ /* tmp was lost ownership for the ptr */
+ FL_UNSET(tmp, FL_FREEZE);
+ FL_SET_EMBED(tmp);
+ ARY_SET_EMBED_LEN(tmp, 0);
+ FL_SET(tmp, FL_FREEZE);
+ }
+ /* tmp will be GC'ed. */
+ RBASIC_SET_CLASS_RAW(tmp, rb_cArray); /* rb_cArray must be marked */
}
return ary;
}
/*
* call-seq:
- * array.sort -> an_array
- * array.sort {| a,b | block } -> an_array
- *
- * Returns a new array created by sorting <i>self</i>. Comparisons for
- * the sort will be done using the <code><=></code> operator or using
- * an optional code block. The block implements a comparison between
- * <i>a</i> and <i>b</i>, returning -1, 0, or +1. See also
- * <code>Enumerable#sort_by</code>.
- *
+ * ary.sort -> new_ary
+ * ary.sort { |a, b| block } -> new_ary
+ *
+ * Returns a new array created by sorting +self+.
+ *
+ * Comparisons for the sort will be done using the <code><=></code> operator
+ * or using an optional code block.
+ *
+ * The block must implement a comparison between +a+ and +b+, and return
+ * +-1+, when +a+ follows +b+, +0+ when +a+ and +b+ are equivalent, or ++1+
+ * if +b+ follows +a+.
+ *
+ *
+ * See also Enumerable#sort_by.
+ *
* a = [ "d", "a", "e", "c", "b" ]
* a.sort #=> ["a", "b", "c", "d", "e"]
- * a.sort {|x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
+ * a.sort { |x,y| y <=> x } #=> ["e", "d", "c", "b", "a"]
*/
VALUE
-rb_ary_sort(ary)
- VALUE ary;
+rb_ary_sort(VALUE ary)
{
ary = rb_ary_dup(ary);
rb_ary_sort_bang(ary);
@@ -1691,70 +2516,206 @@ rb_ary_sort(ary)
/*
* call-seq:
- * array.collect {|item| block } -> an_array
- * array.map {|item| block } -> an_array
- *
- * Invokes <i>block</i> once for each element of <i>self</i>. Creates a
- * new array containing the values returned by the block.
- * See also <code>Enumerable#collect</code>.
- *
+ * ary.bsearch {|x| block } -> elem
+ *
+ * By using binary search, finds a value from this array which meets
+ * the given condition in O(log n) where n is the size of the array.
+ *
+ * You can use this method in two use cases: a find-minimum mode and
+ * a find-any mode. In either case, the elements of the array must be
+ * monotone (or sorted) with respect to the block.
+ *
+ * In find-minimum mode (this is a good choice for typical use case),
+ * the block must return true or false, and there must be an index i
+ * (0 <= i <= ary.size) so that:
+ *
+ * - the block returns false for any element whose index is less than
+ * i, and
+ * - the block returns true for any element whose index is greater
+ * than or equal to i.
+ *
+ * This method returns the i-th element. If i is equal to ary.size,
+ * it returns nil.
+ *
+ * ary = [0, 4, 7, 10, 12]
+ * ary.bsearch {|x| x >= 4 } #=> 4
+ * ary.bsearch {|x| x >= 6 } #=> 7
+ * ary.bsearch {|x| x >= -1 } #=> 0
+ * ary.bsearch {|x| x >= 100 } #=> nil
+ *
+ * In find-any mode (this behaves like libc's bsearch(3)), the block
+ * must return a number, and there must be two indices i and j
+ * (0 <= i <= j <= ary.size) so that:
+ *
+ * - the block returns a positive number for ary[k] if 0 <= k < i,
+ * - the block returns zero for ary[k] if i <= k < j, and
+ * - the block returns a negative number for ary[k] if
+ * j <= k < ary.size.
+ *
+ * Under this condition, this method returns any element whose index
+ * is within i...j. If i is equal to j (i.e., there is no element
+ * that satisfies the block), this method returns nil.
+ *
+ * ary = [0, 4, 7, 10, 12]
+ * # try to find v such that 4 <= v < 8
+ * ary.bsearch {|x| 1 - x / 4 } #=> 4 or 7
+ * # try to find v such that 8 <= v < 10
+ * ary.bsearch {|x| 4 - x / 2 } #=> nil
+ *
+ * You must not mix the two modes at a time; the block must always
+ * return either true/false, or always return a number. It is
+ * undefined which value is actually picked up at each iteration.
+ */
+
+static VALUE
+rb_ary_bsearch(VALUE ary)
+{
+ long low = 0, high = RARRAY_LEN(ary), mid;
+ int smaller = 0, satisfied = 0;
+ VALUE v, val;
+
+ RETURN_ENUMERATOR(ary, 0, 0);
+ while (low < high) {
+ mid = low + ((high - low) / 2);
+ val = rb_ary_entry(ary, mid);
+ v = rb_yield(val);
+ if (FIXNUM_P(v)) {
+ if (FIX2INT(v) == 0) return val;
+ smaller = FIX2INT(v) < 0;
+ }
+ else if (v == Qtrue) {
+ satisfied = 1;
+ smaller = 1;
+ }
+ else if (v == Qfalse || v == Qnil) {
+ smaller = 0;
+ }
+ else if (rb_obj_is_kind_of(v, rb_cNumeric)) {
+ const VALUE zero = INT2FIX(0);
+ switch (rb_cmpint(rb_funcallv(v, id_cmp, 1, &zero), v, INT2FIX(0))) {
+ case 0: return val;
+ case 1: smaller = 1; break;
+ case -1: smaller = 0;
+ }
+ }
+ else {
+ rb_raise(rb_eTypeError, "wrong argument type %s"
+ " (must be numeric, true, false or nil)",
+ rb_obj_classname(v));
+ }
+ if (smaller) {
+ high = mid;
+ }
+ else {
+ low = mid + 1;
+ }
+ }
+ if (low == RARRAY_LEN(ary)) return Qnil;
+ if (!satisfied) return Qnil;
+ return rb_ary_entry(ary, low);
+}
+
+
+static VALUE
+sort_by_i(VALUE i)
+{
+ return rb_yield(i);
+}
+
+/*
+ * call-seq:
+ * ary.sort_by! { |obj| block } -> ary
+ * ary.sort_by! -> Enumerator
+ *
+ * Sorts +self+ in place using a set of keys generated by mapping the
+ * values in +self+ through the given block.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ */
+
+static VALUE
+rb_ary_sort_by_bang(VALUE ary)
+{
+ VALUE sorted;
+
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ rb_ary_modify(ary);
+ sorted = rb_block_call(ary, rb_intern("sort_by"), 0, 0, sort_by_i, 0);
+ rb_ary_replace(ary, sorted);
+ return ary;
+}
+
+
+/*
+ * call-seq:
+ * ary.collect { |item| block } -> new_ary
+ * ary.map { |item| block } -> new_ary
+ * ary.collect -> Enumerator
+ * ary.map -> Enumerator
+ *
+ * Invokes the given block once for each element of +self+.
+ *
+ * Creates a new array containing the values returned by the block.
+ *
+ * See also Enumerable#collect.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
* a = [ "a", "b", "c", "d" ]
- * a.collect {|x| x + "!" } #=> ["a!", "b!", "c!", "d!"]
- * a #=> ["a", "b", "c", "d"]
+ * a.map { |x| x + "!" } #=> ["a!", "b!", "c!", "d!"]
+ * a #=> ["a", "b", "c", "d"]
*/
static VALUE
-rb_ary_collect(ary)
- VALUE ary;
+rb_ary_collect(VALUE ary)
{
long i;
VALUE collect;
- if (!rb_block_given_p()) {
- return rb_ary_new4(RARRAY(ary)->len, RARRAY(ary)->ptr);
- }
-
- collect = rb_ary_new2(RARRAY(ary)->len);
- for (i = 0; i < RARRAY(ary)->len; i++) {
- rb_ary_push(collect, rb_yield(RARRAY(ary)->ptr[i]));
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ collect = rb_ary_new2(RARRAY_LEN(ary));
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ rb_ary_push(collect, rb_yield(RARRAY_AREF(ary, i)));
}
return collect;
}
-/*
+
+/*
* call-seq:
- * array.collect! {|item| block } -> array
- * array.map! {|item| block } -> array
+ * ary.collect! {|item| block } -> ary
+ * ary.map! {|item| block } -> ary
+ * ary.collect! -> Enumerator
+ * ary.map! -> Enumerator
+ *
+ * Invokes the given block once for each element of +self+, replacing the
+ * element with the value returned by the block.
+ *
+ * See also Enumerable#collect.
+ *
+ * If no block is given, an Enumerator is returned instead.
*
- * Invokes the block once for each element of _self_, replacing the
- * element with the value returned by _block_.
- * See also <code>Enumerable#collect</code>.
- *
* a = [ "a", "b", "c", "d" ]
- * a.collect! {|x| x + "!" }
- * a #=> [ "a!", "b!", "c!", "d!" ]
+ * a.map! {|x| x + "!" }
+ * a #=> [ "a!", "b!", "c!", "d!" ]
*/
static VALUE
-rb_ary_collect_bang(ary)
- VALUE ary;
+rb_ary_collect_bang(VALUE ary)
{
long i;
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
rb_ary_modify(ary);
- for (i = 0; i < RARRAY(ary)->len; i++) {
- rb_ary_store(ary, i, rb_yield(RARRAY(ary)->ptr[i]));
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ rb_ary_store(ary, i, rb_yield(RARRAY_AREF(ary, i)));
}
return ary;
}
VALUE
-rb_values_at(obj, olen, argc, argv, func)
- VALUE obj;
- long olen;
- int argc;
- 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;
@@ -1765,15 +2726,13 @@ rb_values_at(obj, olen, argc, argv, func)
continue;
}
/* check if idx is Range */
- switch (rb_range_beg_len(argv[i], &beg, &len, olen, 0)) {
- case Qfalse:
- break;
- case Qnil:
- continue;
- default:
- for (j=0; j<len; j++) {
- rb_ary_push(result, (*func)(obj, j+beg));
+ if (rb_range_beg_len(argv[i], &beg, &len, olen, 1)) {
+ long end = olen < beg+len ? olen : beg+len;
+ for (j = beg; j < end; j++) {
+ rb_ary_push(result, (*func)(obj, j));
}
+ if (beg + len > j)
+ rb_ary_resize(result, RARRAY_LEN(result) + (beg + len) - j);
continue;
}
rb_ary_push(result, (*func)(obj, NUM2LONG(argv[i])));
@@ -1781,53 +2740,59 @@ rb_values_at(obj, olen, argc, argv, func)
return result;
}
-/*
+/*
* call-seq:
- * array.values_at(selector,... ) -> an_array
+ * ary.values_at(selector, ...) -> new_ary
+ *
+ * Returns an array containing the elements in +self+ corresponding to the
+ * given +selector+(s).
+ *
+ * The selectors may be either integer indices or ranges.
+ *
+ * See also Array#select.
*
- * Returns an array containing the elements in
- * _self_ corresponding to the given selector(s). The selectors
- * may be either integer indices or ranges.
- * See also <code>Array#select</code>.
- *
* a = %w{ a b c d e f }
- * a.values_at(1, 3, 5)
- * a.values_at(1, 3, 5, 7)
- * a.values_at(-1, -3, -5, -7)
- * a.values_at(1..3, 2...5)
+ * a.values_at(1, 3, 5) # => ["b", "d", "f"]
+ * a.values_at(1, 3, 5, 7) # => ["b", "d", "f", nil]
+ * a.values_at(-1, -2, -2, -7) # => ["f", "e", "e", nil]
+ * a.values_at(4..6, 3...6) # => ["e", "f", nil, "d", "e", "f"]
*/
static VALUE
-rb_ary_values_at(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_values_at(int argc, VALUE *argv, VALUE ary)
{
- return rb_values_at(ary, RARRAY(ary)->len, argc, argv, rb_ary_entry);
+ return rb_get_values_at(ary, RARRAY_LEN(ary), argc, argv, rb_ary_entry);
}
+
/*
* call-seq:
- * array.select {|item| block } -> an_array
- *
- * Invokes the block passing in successive elements from <i>array</i>,
- * returning an array containing those elements for which the block
- * returns a true value (equivalent to <code>Enumerable#select</code>).
- *
+ * ary.select { |item| block } -> new_ary
+ * ary.select -> Enumerator
+ *
+ * Returns a new array containing all elements of +ary+
+ * for which the given +block+ returns a true value.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * [1,2,3,4,5].select { |num| num.even? } #=> [2, 4]
+ *
* a = %w{ a b c d e f }
- * a.select {|v| v =~ /[aeiou]/} #=> ["a", "e"]
+ * a.select { |v| v =~ /[aeiou]/ } #=> ["a", "e"]
+ *
+ * See also Enumerable#select.
*/
static VALUE
-rb_ary_select(ary)
- VALUE ary;
+rb_ary_select(VALUE ary)
{
VALUE result;
long i;
- result = rb_ary_new2(RARRAY(ary)->len);
- for (i = 0; i < RARRAY(ary)->len; i++) {
- if (RTEST(rb_yield(RARRAY(ary)->ptr[i]))) {
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ result = rb_ary_new2(RARRAY_LEN(ary));
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {
rb_ary_push(result, rb_ary_elt(ary, i));
}
}
@@ -1836,14 +2801,92 @@ rb_ary_select(ary)
/*
* call-seq:
- * array.delete(obj) -> obj or nil
- * array.delete(obj) { block } -> obj or nil
- *
- * Deletes items from <i>self</i> that are equal to <i>obj</i>. If
- * the item is not found, returns <code>nil</code>. If the optional
- * code block is given, returns the result of <i>block</i> if the item
- * is not found.
- *
+ * ary.select! {|item| block } -> ary or nil
+ * ary.select! -> Enumerator
+ *
+ * Invokes the given block passing in successive elements from +self+,
+ * deleting elements for which the block returns a +false+ value.
+ *
+ * If changes were made, it will return +self+, otherwise it returns +nil+.
+ *
+ * See also Array#keep_if
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ */
+
+static VALUE
+rb_ary_select_bang(VALUE ary)
+{
+ long i1, i2;
+
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ rb_ary_modify(ary);
+ for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) {
+ VALUE v = RARRAY_AREF(ary, i1);
+ if (!RTEST(rb_yield(v))) continue;
+ if (i1 != i2) {
+ rb_ary_store(ary, i2, v);
+ }
+ i2++;
+ }
+
+ if (i1 == i2) return Qnil;
+ if (i2 < i1)
+ ARY_SET_LEN(ary, i2);
+ return ary;
+}
+
+/*
+ * call-seq:
+ * ary.keep_if { |item| block } -> ary
+ * ary.keep_if -> Enumerator
+ *
+ * Deletes every element of +self+ for which the given block evaluates to
+ * +false+.
+ *
+ * See also Array#select!
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * a = %w{ a b c d e f }
+ * a.keep_if { |v| v =~ /[aeiou]/ } #=> ["a", "e"]
+ */
+
+static VALUE
+rb_ary_keep_if(VALUE ary)
+{
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ rb_ary_select_bang(ary);
+ return ary;
+}
+
+static void
+ary_resize_smaller(VALUE ary, long len)
+{
+ rb_ary_modify(ary);
+ if (RARRAY_LEN(ary) > len) {
+ ARY_SET_LEN(ary, len);
+ if (len * 2 < ARY_CAPA(ary) &&
+ ARY_CAPA(ary) > ARY_DEFAULT_SIZE) {
+ ary_resize_capa(ary, len * 2);
+ }
+ }
+}
+
+/*
+ * call-seq:
+ * ary.delete(obj) -> item or nil
+ * ary.delete(obj) { block } -> item or result of block
+ *
+ * Deletes all items from +self+ that are equal to +obj+.
+ *
+ * Returns the last deleted item, or +nil+ if no matching item is found.
+ *
+ * If the optional code block is given, the result of the block is returned if
+ * the item is not found. (To remove +nil+ elements and get an informative
+ * return value, use Array#compact!)
+ *
* a = [ "a", "b", "b", "b", "c" ]
* a.delete("b") #=> "b"
* a #=> ["a", "c"]
@@ -1852,47 +2895,62 @@ rb_ary_select(ary)
*/
VALUE
-rb_ary_delete(ary, item)
- VALUE ary;
- VALUE item;
+rb_ary_delete(VALUE ary, VALUE item)
{
+ VALUE v = item;
long i1, i2;
- for (i1 = i2 = 0; i1 < RARRAY(ary)->len; i1++) {
- VALUE e = RARRAY(ary)->ptr[i1];
+ for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) {
+ VALUE e = RARRAY_AREF(ary, i1);
- if (rb_equal(e, item)) continue;
+ if (rb_equal(e, item)) {
+ v = e;
+ continue;
+ }
if (i1 != i2) {
rb_ary_store(ary, i2, e);
}
i2++;
}
- if (RARRAY(ary)->len == i2) {
+ if (RARRAY_LEN(ary) == i2) {
if (rb_block_given_p()) {
return rb_yield(item);
}
return Qnil;
}
- rb_ary_modify(ary);
- if (RARRAY(ary)->len > i2) {
- RARRAY(ary)->len = i2;
- if (i2 * 2 < RARRAY(ary)->aux.capa &&
- RARRAY(ary)->aux.capa > ARY_DEFAULT_SIZE) {
- REALLOC_N(RARRAY(ary)->ptr, VALUE, i2 * 2);
- RARRAY(ary)->aux.capa = i2 * 2;
+ ary_resize_smaller(ary, i2);
+
+ return v;
+}
+
+void
+rb_ary_delete_same(VALUE ary, VALUE item)
+{
+ long i1, i2;
+
+ for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) {
+ VALUE e = RARRAY_AREF(ary, i1);
+
+ if (e == item) {
+ continue;
}
+ if (i1 != i2) {
+ rb_ary_store(ary, i2, e);
+ }
+ i2++;
+ }
+ if (RARRAY_LEN(ary) == i2) {
+ return;
}
- return item;
+ ary_resize_smaller(ary, i2);
}
VALUE
-rb_ary_delete_at(ary, pos)
- VALUE ary;
- long pos;
+rb_ary_delete_at(VALUE ary, long pos)
{
- long i, len = RARRAY(ary)->len;
+ long len = RARRAY_LEN(ary);
VALUE del;
if (pos >= len) return Qnil;
@@ -1902,52 +2960,48 @@ rb_ary_delete_at(ary, pos)
}
rb_ary_modify(ary);
- del = RARRAY(ary)->ptr[pos];
- for (i = pos + 1; i < len; i++, pos++) {
- RARRAY(ary)->ptr[pos] = RARRAY(ary)->ptr[i];
- }
- RARRAY(ary)->len = pos;
+ del = RARRAY_AREF(ary, pos);
+ RARRAY_PTR_USE(ary, ptr, {
+ MEMMOVE(ptr+pos, ptr+pos+1, VALUE, len-pos-1);
+ });
+ ARY_INCREASE_LEN(ary, -1);
return del;
}
/*
* call-seq:
- * array.delete_at(index) -> obj or nil
- *
- * Deletes the element at the specified index, returning that element,
- * or <code>nil</code> if the index is out of range. See also
- * <code>Array#slice!</code>.
- *
- * a = %w( ant bat cat dog )
+ * ary.delete_at(index) -> obj or nil
+ *
+ * Deletes the element at the specified +index+, returning that element, or
+ * +nil+ if the +index+ is out of range.
+ *
+ * See also Array#slice!
+ *
+ * a = ["ant", "bat", "cat", "dog"]
* a.delete_at(2) #=> "cat"
* a #=> ["ant", "bat", "dog"]
* a.delete_at(99) #=> nil
*/
static VALUE
-rb_ary_delete_at_m(ary, pos)
- VALUE ary, pos;
+rb_ary_delete_at_m(VALUE ary, VALUE pos)
{
return rb_ary_delete_at(ary, NUM2LONG(pos));
}
/*
* call-seq:
- * array.slice!(index) -> obj or nil
- * array.slice!(start, length) -> sub_array or nil
- * array.slice!(range) -> sub_array or nil
- *
- * Deletes the element(s) given by an index (optionally with a length)
- * or by a range. Returns the deleted object, subarray, or
- * <code>nil</code> if the index is out of range. Equivalent to:
- *
- * def slice!(*args)
- * result = self[*args]
- * self[*args] = nil
- * result
- * end
- *
+ * ary.slice!(index) -> obj or nil
+ * ary.slice!(start, length) -> new_ary or nil
+ * ary.slice!(range) -> new_ary or nil
+ *
+ * Deletes the element(s) given by an +index+ (optionally up to +length+
+ * elements) or by a +range+.
+ *
+ * Returns the deleted object (or objects), or +nil+ if the +index+ is out of
+ * range.
+ *
* a = [ "a", "b", "c" ]
* a.slice!(1) #=> "b"
* a #=> ["a", "c"]
@@ -1958,194 +3012,299 @@ rb_ary_delete_at_m(ary, pos)
*/
static VALUE
-rb_ary_slice_bang(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_slice_bang(int argc, VALUE *argv, VALUE ary)
{
VALUE arg1, arg2;
- long pos, len;
+ long pos, len, orig_len;
- if (rb_scan_args(argc, argv, "11", &arg1, &arg2) == 2) {
- pos = NUM2LONG(arg1);
- len = NUM2LONG(arg2);
+ rb_ary_modify_check(ary);
+ if (argc == 2) {
+ pos = NUM2LONG(argv[0]);
+ len = NUM2LONG(argv[1]);
delete_pos_len:
+ if (len < 0) return Qnil;
+ orig_len = RARRAY_LEN(ary);
if (pos < 0) {
- pos = RARRAY(ary)->len + pos;
+ pos += orig_len;
+ if (pos < 0) return Qnil;
+ }
+ else if (orig_len < pos) return Qnil;
+ if (orig_len < pos + len) {
+ len = orig_len - pos;
}
- arg2 = rb_ary_subseq(ary, pos, len);
- rb_ary_splice(ary, pos, len, Qnil); /* Qnil/rb_ary_new2(0) */
+ if (len == 0) return rb_ary_new2(0);
+ arg2 = rb_ary_new4(len, RARRAY_CONST_PTR(ary)+pos);
+ RBASIC_SET_CLASS(arg2, rb_obj_class(ary));
+ rb_ary_splice(ary, pos, len, Qundef);
return arg2;
}
- if (!FIXNUM_P(arg1) && rb_range_beg_len(arg1, &pos, &len, RARRAY(ary)->len, 1)) {
- goto delete_pos_len;
+ if (argc != 1) {
+ /* error report */
+ rb_scan_args(argc, argv, "11", NULL, NULL);
+ }
+ arg1 = argv[0];
+
+ if (!FIXNUM_P(arg1)) {
+ switch (rb_range_beg_len(arg1, &pos, &len, RARRAY_LEN(ary), 0)) {
+ case Qtrue:
+ /* valid range */
+ goto delete_pos_len;
+ case Qnil:
+ /* invalid range */
+ return Qnil;
+ default:
+ /* not a range */
+ break;
+ }
}
return rb_ary_delete_at(ary, NUM2LONG(arg1));
}
-/*
- * call-seq:
- * array.reject! {|item| block } -> array or nil
- *
- * Equivalent to <code>Array#delete_if</code>, deleting elements from
- * _self_ for which the block evaluates to true, but returns
- * <code>nil</code> if no changes were made. Also see
- * <code>Enumerable#reject</code>.
- */
+static VALUE
+ary_reject(VALUE orig, VALUE result)
+{
+ long i;
+
+ for (i = 0; i < RARRAY_LEN(orig); i++) {
+ VALUE v = RARRAY_AREF(orig, i);
+ if (!RTEST(rb_yield(v))) {
+ rb_ary_push_1(result, v);
+ }
+ }
+ return result;
+}
static VALUE
-rb_ary_reject_bang(ary)
- VALUE ary;
+ary_reject_bang(VALUE ary)
{
- long i1, i2;
+ long i;
+ VALUE result = Qnil;
- rb_ary_modify(ary);
- for (i1 = i2 = 0; i1 < RARRAY(ary)->len; i1++) {
- VALUE v = RARRAY(ary)->ptr[i1];
- if (RTEST(rb_yield(v))) continue;
- if (i1 != i2) {
- rb_ary_store(ary, i2, v);
+ rb_ary_modify_check(ary);
+ for (i = 0; i < RARRAY_LEN(ary); ) {
+ VALUE v = RARRAY_AREF(ary, i);
+ if (RTEST(rb_yield(v))) {
+ rb_ary_delete_at(ary, i);
+ result = ary;
+ }
+ else {
+ i++;
}
- i2++;
}
- if (RARRAY(ary)->len == i2) return Qnil;
- if (i2 < RARRAY(ary)->len)
- RARRAY(ary)->len = i2;
+ return result;
+}
- return ary;
+/*
+ * call-seq:
+ * ary.reject! { |item| block } -> ary or nil
+ * ary.reject! -> Enumerator
+ *
+ * Equivalent to Array#delete_if, deleting elements from +self+ for which the
+ * block evaluates to +true+, but returns +nil+ if no changes were made.
+ *
+ * The array is changed instantly every time the block is called, not after
+ * the iteration is over.
+ *
+ * See also Enumerable#reject and Array#delete_if.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ */
+
+static VALUE
+rb_ary_reject_bang(VALUE ary)
+{
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ return ary_reject_bang(ary);
}
/*
* call-seq:
- * array.reject {|item| block } -> an_array
- *
- * Returns a new array containing the items in _self_
- * for which the block is not true.
+ * ary.reject {|item| block } -> new_ary
+ * ary.reject -> Enumerator
+ *
+ * Returns a new array containing the items in +self+ for which the given
+ * block is not +true+.
+ *
+ * See also Array#delete_if
+ *
+ * If no block is given, an Enumerator is returned instead.
*/
static VALUE
-rb_ary_reject(ary)
- VALUE ary;
+rb_ary_reject(VALUE ary)
{
- ary = rb_ary_dup(ary);
- rb_ary_reject_bang(ary);
- return ary;
+ VALUE rejected_ary;
+
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ rejected_ary = rb_ary_new();
+ ary_reject(ary, rejected_ary);
+ return rejected_ary;
}
/*
* call-seq:
- * array.delete_if {|item| block } -> array
- *
- * Deletes every element of <i>self</i> for which <i>block</i> evaluates
- * to <code>true</code>.
- *
- * a = [ "a", "b", "c" ]
- * a.delete_if {|x| x >= "b" } #=> ["a"]
+ * ary.delete_if { |item| block } -> ary
+ * ary.delete_if -> Enumerator
+ *
+ * Deletes every element of +self+ for which block evaluates to +true+.
+ *
+ * The array is changed instantly every time the block is called, not after
+ * the iteration is over.
+ *
+ * See also Array#reject!
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * scores = [ 97, 42, 75 ]
+ * scores.delete_if {|score| score < 80 } #=> [97]
*/
static VALUE
-rb_ary_delete_if(ary)
- VALUE ary;
+rb_ary_delete_if(VALUE ary)
{
- rb_ary_reject_bang(ary);
+ RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
+ ary_reject_bang(ary);
return ary;
}
+static VALUE
+take_i(VALUE val, VALUE *args, int argc, VALUE *argv)
+{
+ if (args[1]-- == 0) rb_iter_break();
+ if (argc > 1) val = rb_ary_new4(argc, argv);
+ rb_ary_push(args[0], val);
+ return Qnil;
+}
+
+static VALUE
+take_items(VALUE obj, long n)
+{
+ VALUE result = rb_check_array_type(obj);
+ VALUE args[2];
+
+ if (!NIL_P(result)) return rb_ary_subseq(result, 0, n);
+ result = rb_ary_new2(n);
+ args[0] = result; args[1] = (VALUE)n;
+ if (rb_check_block_call(obj, idEach, 0, 0, take_i, (VALUE)args) == Qundef)
+ rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",
+ rb_obj_class(obj));
+ return result;
+}
+
+
/*
* call-seq:
- * array.zip(arg, ...) -> an_array
- * array.zip(arg, ...) {| arr | block } -> nil
- *
- * Converts any arguments to arrays, then merges elements of
- * <i>self</i> with corresponding elements from each argument. This
- * generates a sequence of <code>self.size</code> <em>n</em>-element
- * arrays, where <em>n</em> is one more that the count of arguments. If
- * the size of any argument is less than <code>enumObj.size</code>,
- * <code>nil</code> values are supplied. If a block given, it is
- * invoked for each output array, otherwise an array of arrays is
- * returned.
- *
+ * ary.zip(arg, ...) -> new_ary
+ * ary.zip(arg, ...) { |arr| block } -> nil
+ *
+ * Converts any arguments to arrays, then merges elements of +self+ with
+ * corresponding elements from each argument.
+ *
+ * This generates a sequence of <code>ary.size</code> _n_-element arrays,
+ * where _n_ is one more than the count of arguments.
+ *
+ * If the size of any argument is less than the size of the initial array,
+ * +nil+ values are supplied.
+ *
+ * If a block is given, it is invoked for each output +array+, otherwise an
+ * array of arrays is returned.
+ *
* a = [ 4, 5, 6 ]
* b = [ 7, 8, 9 ]
- *
- * [1,2,3].zip(a, b) #=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
- * [1,2].zip(a,b) #=> [[1, 4, 7], [2, 5, 8]]
- * a.zip([1,2],[8]) #=> [[4,1,8], [5,2,nil], [6,nil,nil]]
+ * [1, 2, 3].zip(a, b) #=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
+ * [1, 2].zip(a, b) #=> [[1, 4, 7], [2, 5, 8]]
+ * a.zip([1, 2], [8]) #=> [[4, 1, 8], [5, 2, nil], [6, nil, nil]]
*/
static VALUE
-rb_ary_zip(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_zip(int argc, VALUE *argv, VALUE ary)
{
int i, j;
- long len;
- VALUE result;
+ long len = RARRAY_LEN(ary);
+ VALUE result = Qnil;
for (i=0; i<argc; i++) {
- argv[i] = to_ary(argv[i]);
+ argv[i] = take_items(argv[i], len);
}
+
if (rb_block_given_p()) {
- for (i=0; i<RARRAY(ary)->len; i++) {
- VALUE tmp = rb_ary_new2(argc+1);
+ int arity = rb_block_arity();
- rb_ary_push(tmp, rb_ary_elt(ary, i));
- for (j=0; j<argc; j++) {
- rb_ary_push(tmp, rb_ary_elt(argv[j], i));
+ 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);
+ for (j=0; j<argc; j++) {
+ tmp[j+1] = rb_ary_elt(argv[j], i);
+ }
+ rb_yield_values2(argc+1, tmp);
+ }
+ }
+ else {
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ VALUE tmp = rb_ary_new2(argc+1);
+
+ rb_ary_push(tmp, RARRAY_AREF(ary, i));
+ for (j=0; j<argc; j++) {
+ rb_ary_push(tmp, rb_ary_elt(argv[j], i));
+ }
+ rb_yield(tmp);
}
- rb_yield(tmp);
}
- return Qnil;
}
- len = RARRAY(ary)->len;
- result = rb_ary_new2(len);
- for (i=0; i<len; i++) {
- VALUE tmp = rb_ary_new2(argc+1);
+ else {
+ result = rb_ary_new_capa(len);
+
+ for (i=0; i<len; i++) {
+ VALUE tmp = rb_ary_new_capa(argc+1);
- rb_ary_push(tmp, rb_ary_elt(ary, i));
- for (j=0; j<argc; j++) {
- rb_ary_push(tmp, rb_ary_elt(argv[j], i));
+ rb_ary_push(tmp, RARRAY_AREF(ary, i));
+ for (j=0; j<argc; j++) {
+ rb_ary_push(tmp, rb_ary_elt(argv[j], i));
+ }
+ rb_ary_push(result, tmp);
}
- rb_ary_push(result, tmp);
}
+
return result;
}
/*
* call-seq:
- * array.transpose -> an_array
- *
- * Assumes that <i>self</i> is an array of arrays and transposes the
- * rows and columns.
- *
+ * ary.transpose -> new_ary
+ *
+ * Assumes that +self+ is an array of arrays and transposes the rows and
+ * columns.
+ *
* a = [[1,2], [3,4], [5,6]]
* a.transpose #=> [[1, 3, 5], [2, 4, 6]]
+ *
+ * If the length of the subarrays don't match, an IndexError is raised.
*/
static VALUE
-rb_ary_transpose(ary)
- VALUE ary;
+rb_ary_transpose(VALUE ary)
{
long elen = -1, alen, i, j;
VALUE tmp, result = 0;
- alen = RARRAY(ary)->len;
+ alen = RARRAY_LEN(ary);
if (alen == 0) return rb_ary_dup(ary);
for (i=0; i<alen; i++) {
tmp = to_ary(rb_ary_elt(ary, i));
if (elen < 0) { /* first element */
- elen = RARRAY(tmp)->len;
+ elen = RARRAY_LEN(tmp);
result = rb_ary_new2(elen);
for (j=0; j<elen; j++) {
rb_ary_store(result, j, rb_ary_new2(alen));
}
}
- else if (elen != RARRAY(tmp)->len) {
- rb_raise(rb_eIndexError, "element size differs (%d should be %d)",
- RARRAY(tmp)->len, elen);
+ else if (elen != RARRAY_LEN(tmp)) {
+ rb_raise(rb_eIndexError, "element size differs (%ld should be %ld)",
+ RARRAY_LEN(tmp), elen);
}
for (j=0; j<elen; j++) {
rb_ary_store(rb_ary_elt(result, j), i, rb_ary_elt(tmp, j));
@@ -2156,96 +3315,123 @@ rb_ary_transpose(ary)
/*
* call-seq:
- * array.replace(other_array) -> array
- *
- * Replaces the contents of <i>self</i> with the contents of
- * <i>other_array</i>, truncating or expanding if necessary.
- *
+ * ary.replace(other_ary) -> ary
+ * ary.initialize_copy(other_ary) -> ary
+ *
+ * Replaces the contents of +self+ with the contents of +other_ary+,
+ * truncating or expanding if necessary.
+ *
* a = [ "a", "b", "c", "d", "e" ]
* a.replace([ "x", "y", "z" ]) #=> ["x", "y", "z"]
* a #=> ["x", "y", "z"]
*/
-static VALUE
-rb_ary_replace(copy, orig)
- VALUE copy, orig;
+VALUE
+rb_ary_replace(VALUE copy, VALUE orig)
{
- VALUE shared;
-
- rb_ary_modify(copy);
+ rb_ary_modify_check(copy);
orig = to_ary(orig);
if (copy == orig) return copy;
- shared = ary_make_shared(orig);
- if (RARRAY(copy)->ptr && !FL_TEST(copy, ELTS_SHARED))
- free(RARRAY(copy)->ptr);
- RARRAY(copy)->ptr = RARRAY(orig)->ptr;
- RARRAY(copy)->len = RARRAY(orig)->len;
- RARRAY(copy)->aux.shared = shared;
- FL_SET(copy, ELTS_SHARED);
+ if (RARRAY_LEN(orig) <= RARRAY_EMBED_LEN_MAX) {
+ VALUE shared = 0;
+
+ if (ARY_OWNS_HEAP_P(copy)) {
+ RARRAY_PTR_USE(copy, ptr, ruby_sized_xfree(ptr, ARY_HEAP_SIZE(copy)));
+ }
+ else if (ARY_SHARED_P(copy)) {
+ shared = ARY_SHARED(copy);
+ FL_UNSET_SHARED(copy);
+ }
+ FL_SET_EMBED(copy);
+ ary_memcpy(copy, 0, RARRAY_LEN(orig), RARRAY_CONST_PTR(orig));
+ if (shared) {
+ rb_ary_decrement_share(shared);
+ }
+ ARY_SET_LEN(copy, RARRAY_LEN(orig));
+ }
+ else {
+ VALUE shared = ary_make_shared(orig);
+ if (ARY_OWNS_HEAP_P(copy)) {
+ RARRAY_PTR_USE(copy, ptr, ruby_sized_xfree(ptr, ARY_HEAP_SIZE(copy)));
+ }
+ else {
+ rb_ary_unshare_safe(copy);
+ }
+ FL_UNSET_EMBED(copy);
+ ARY_SET_PTR(copy, RARRAY_CONST_PTR(orig));
+ ARY_SET_LEN(copy, RARRAY_LEN(orig));
+ rb_ary_set_shared(copy, shared);
+ }
return copy;
}
-/*
+/*
* call-seq:
- * array.clear -> array
+ * ary.clear -> ary
*
- * Removes all elements from _self_.
+ * Removes all elements from +self+.
*
* a = [ "a", "b", "c", "d", "e" ]
* a.clear #=> [ ]
*/
VALUE
-rb_ary_clear(ary)
- VALUE ary;
+rb_ary_clear(VALUE ary)
{
- rb_ary_modify(ary);
- RARRAY(ary)->len = 0;
- if (ARY_DEFAULT_SIZE * 2 < RARRAY(ary)->aux.capa) {
- REALLOC_N(RARRAY(ary)->ptr, VALUE, ARY_DEFAULT_SIZE * 2);
- RARRAY(ary)->aux.capa = ARY_DEFAULT_SIZE * 2;
+ rb_ary_modify_check(ary);
+ ARY_SET_LEN(ary, 0);
+ if (ARY_SHARED_P(ary)) {
+ if (!ARY_EMBED_P(ary)) {
+ rb_ary_unshare(ary);
+ FL_SET_EMBED(ary);
+ }
+ }
+ else if (ARY_DEFAULT_SIZE * 2 < ARY_CAPA(ary)) {
+ ary_resize_capa(ary, ARY_DEFAULT_SIZE * 2);
}
return ary;
}
/*
* call-seq:
- * array.fill(obj) -> array
- * array.fill(obj, start [, length]) -> array
- * array.fill(obj, range ) -> array
- * array.fill {|index| block } -> array
- * array.fill(start [, length] ) {|index| block } -> array
- * array.fill(range) {|index| block } -> array
- *
- * The first three forms set the selected elements of <i>self</i> (which
- * may be the entire array) to <i>obj</i>. A <i>start</i> of
- * <code>nil</code> is equivalent to zero. A <i>length</i> of
- * <code>nil</code> is equivalent to <i>self.length</i>. The last three
- * forms fill the array with the value of the block. The block is
- * passed the absolute index of each element to be filled.
- *
+ * ary.fill(obj) -> ary
+ * ary.fill(obj, start [, length]) -> ary
+ * ary.fill(obj, range ) -> ary
+ * ary.fill { |index| block } -> ary
+ * ary.fill(start [, length] ) { |index| block } -> ary
+ * ary.fill(range) { |index| block } -> ary
+ *
+ * The first three forms set the selected elements of +self+ (which
+ * may be the entire array) to +obj+.
+ *
+ * A +start+ of +nil+ is equivalent to zero.
+ *
+ * A +length+ of +nil+ is equivalent to the length of the array.
+ *
+ * The last three forms fill the array with the value of the given block,
+ * which is passed the absolute index of each element to be filled.
+ *
+ * Negative values of +start+ count from the end of the array, where +-1+ is
+ * the last element.
+ *
* a = [ "a", "b", "c", "d" ]
* a.fill("x") #=> ["x", "x", "x", "x"]
* a.fill("z", 2, 2) #=> ["x", "x", "z", "z"]
* a.fill("y", 0..1) #=> ["y", "y", "z", "z"]
- * a.fill {|i| i*i} #=> [0, 1, 4, 9]
- * a.fill(-2) {|i| i*i*i} #=> [0, 1, 8, 27]
+ * a.fill { |i| i*i } #=> [0, 1, 4, 9]
+ * a.fill(-2) { |i| i*i*i } #=> [0, 1, 8, 27]
*/
static VALUE
-rb_ary_fill(argc, argv, ary)
- int argc;
- VALUE *argv;
- VALUE ary;
+rb_ary_fill(int argc, VALUE *argv, VALUE ary)
{
VALUE item, arg1, arg2;
long beg = 0, end = 0, len = 0;
- VALUE *p, *pend;
- int block_p = Qfalse;
+ int block_p = FALSE;
if (rb_block_given_p()) {
- block_p = Qtrue;
+ block_p = TRUE;
rb_scan_args(argc, argv, "02", &arg1, &arg2);
argc += 1; /* hackish */
}
@@ -2255,20 +3441,20 @@ rb_ary_fill(argc, argv, ary)
switch (argc) {
case 1:
beg = 0;
- len = RARRAY(ary)->len;
+ len = RARRAY_LEN(ary);
break;
case 2:
- if (rb_range_beg_len(arg1, &beg, &len, RARRAY(ary)->len, 1)) {
+ if (rb_range_beg_len(arg1, &beg, &len, RARRAY_LEN(ary), 1)) {
break;
}
/* fall through */
case 3:
beg = NIL_P(arg1) ? 0 : NUM2LONG(arg1);
if (beg < 0) {
- beg = RARRAY(ary)->len + beg;
+ beg = RARRAY_LEN(ary) + beg;
if (beg < 0) beg = 0;
}
- len = NIL_P(arg2) ? RARRAY(ary)->len - beg : NUM2LONG(arg2);
+ len = NIL_P(arg2) ? RARRAY_LEN(ary) - beg : NUM2LONG(arg2);
break;
}
rb_ary_modify(ary);
@@ -2279,13 +3465,12 @@ rb_ary_fill(argc, argv, ary)
rb_raise(rb_eArgError, "argument too big");
}
end = beg + len;
- if (end > RARRAY(ary)->len) {
- if (end >= RARRAY(ary)->aux.capa) {
- REALLOC_N(RARRAY(ary)->ptr, VALUE, end);
- RARRAY(ary)->aux.capa = end;
+ if (RARRAY_LEN(ary) < end) {
+ if (end >= ARY_CAPA(ary)) {
+ ary_resize_capa(ary, end);
}
- rb_mem_clear(RARRAY(ary)->ptr + RARRAY(ary)->len, end - RARRAY(ary)->len);
- RARRAY(ary)->len = end;
+ ary_mem_clear(ary, RARRAY_LEN(ary), end - RARRAY_LEN(ary));
+ ARY_SET_LEN(ary, end);
}
if (block_p) {
@@ -2294,76 +3479,86 @@ rb_ary_fill(argc, argv, ary)
for (i=beg; i<end; i++) {
v = rb_yield(LONG2NUM(i));
- if (i>=RARRAY(ary)->len) break;
- RARRAY(ary)->ptr[i] = v;
+ if (i>=RARRAY_LEN(ary)) break;
+ RARRAY_ASET(ary, i, v);
}
}
else {
- p = RARRAY(ary)->ptr + beg;
- pend = p + len;
- while (p < pend) {
- *p++ = item;
- }
+ ary_memfill(ary, beg, len, item);
}
return ary;
}
-/*
+/*
* call-seq:
- * array + other_array -> an_array
+ * ary + other_ary -> new_ary
*
- * Concatenation---Returns a new array built by concatenating the
+ * Concatenation --- Returns a new array built by concatenating the
* two arrays together to produce a third array.
- *
+ *
* [ 1, 2, 3 ] + [ 4, 5 ] #=> [ 1, 2, 3, 4, 5 ]
+ * a = [ "a", "b", "c" ]
+ * c = a + [ "d", "e", "f" ]
+ * c #=> [ "a", "b", "c", "d", "e", "f" ]
+ * a #=> [ "a", "b", "c" ]
+ *
+ * See also Array#concat.
*/
VALUE
-rb_ary_plus(x, y)
- VALUE x, y;
+rb_ary_plus(VALUE x, VALUE y)
{
VALUE z;
- long len;
+ long len, xlen, ylen;
y = to_ary(y);
- len = RARRAY(x)->len + RARRAY(y)->len;
+ xlen = RARRAY_LEN(x);
+ ylen = RARRAY_LEN(y);
+ len = xlen + ylen;
z = rb_ary_new2(len);
- MEMCPY(RARRAY(z)->ptr, RARRAY(x)->ptr, VALUE, RARRAY(x)->len);
- MEMCPY(RARRAY(z)->ptr + RARRAY(x)->len, RARRAY(y)->ptr, VALUE, RARRAY(y)->len);
- RARRAY(z)->len = len;
+
+ ary_memcpy(z, 0, xlen, RARRAY_CONST_PTR(x));
+ ary_memcpy(z, xlen, ylen, RARRAY_CONST_PTR(y));
+ ARY_SET_LEN(z, len);
return z;
}
-/*
+/*
* call-seq:
- * array.concat(other_array) -> array
+ * ary.concat(other_ary) -> ary
+ *
+ * Appends the elements of +other_ary+ to +self+.
*
- * Appends the elements in other_array to _self_.
- *
* [ "a", "b" ].concat( ["c", "d"] ) #=> [ "a", "b", "c", "d" ]
+ * a = [ 1, 2, 3 ]
+ * a.concat( [ 4, 5 ] )
+ * a #=> [ 1, 2, 3, 4, 5 ]
+ *
+ * See also Array#+.
*/
-
VALUE
-rb_ary_concat(x, y)
- VALUE x, y;
+rb_ary_concat(VALUE x, VALUE y)
{
+ rb_ary_modify_check(x);
y = to_ary(y);
- if (RARRAY(y)->len > 0) {
- rb_ary_splice(x, RARRAY(x)->len, 0, y);
+ if (RARRAY_LEN(y) > 0) {
+ rb_ary_splice(x, RARRAY_LEN(x), 0, y);
}
return x;
}
-/*
+/*
* call-seq:
- * array * int -> an_array
- * array * str -> a_string
+ * ary * int -> new_ary
+ * ary * str -> new_string
+ *
+ * Repetition --- With a String argument, equivalent to
+ * <code>ary.join(str)</code>.
*
- * Repetition---With a String argument, equivalent to
- * self.join(str). Otherwise, returns a new array
- * built by concatenating the _int_ copies of _self_.
+ * Otherwise, returns a new array built by concatenating the +int+ copies of
+ * +self+.
*
*
* [ 1, 2, 3 ] * 3 #=> [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]
@@ -2372,11 +3567,11 @@ rb_ary_concat(x, y)
*/
static VALUE
-rb_ary_times(ary, times)
- VALUE ary, times;
+rb_ary_times(VALUE ary, VALUE times)
{
VALUE ary2, tmp;
- long i, len;
+ const VALUE *ptr;
+ long t, len;
tmp = rb_check_string_type(times);
if (!NIL_P(tmp)) {
@@ -2384,37 +3579,50 @@ rb_ary_times(ary, times)
}
len = NUM2LONG(times);
- if (len == 0) return ary_new(rb_obj_class(ary), 0);
+ if (len == 0) {
+ ary2 = ary_new(rb_obj_class(ary), 0);
+ goto out;
+ }
if (len < 0) {
rb_raise(rb_eArgError, "negative argument");
}
- if (ARY_MAX_SIZE/len < RARRAY(ary)->len) {
+ if (ARY_MAX_SIZE/len < RARRAY_LEN(ary)) {
rb_raise(rb_eArgError, "argument too big");
}
- len *= RARRAY(ary)->len;
+ len *= RARRAY_LEN(ary);
ary2 = ary_new(rb_obj_class(ary), len);
- RARRAY(ary2)->len = len;
-
- for (i=0; i<len; i+=RARRAY(ary)->len) {
- MEMCPY(RARRAY(ary2)->ptr+i, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
- }
+ ARY_SET_LEN(ary2, len);
+
+ ptr = RARRAY_CONST_PTR(ary);
+ t = RARRAY_LEN(ary);
+ if (0 < t) {
+ ary_memcpy(ary2, 0, t, ptr);
+ while (t <= len/2) {
+ ary_memcpy(ary2, t, t, RARRAY_CONST_PTR(ary2));
+ t *= 2;
+ }
+ if (t < len) {
+ ary_memcpy(ary2, t, len-t, RARRAY_CONST_PTR(ary2));
+ }
+ }
+ out:
OBJ_INFECT(ary2, ary);
return ary2;
}
-/*
+/*
* call-seq:
- * array.assoc(obj) -> an_array or nil
+ * ary.assoc(obj) -> new_ary or nil
+ *
+ * Searches through an array whose elements are also arrays comparing +obj+
+ * with the first element of each contained array using <code>obj.==</code>.
+ *
+ * Returns the first contained array that matches (that is, the first
+ * associated array), or +nil+ if no match is found.
*
- * Searches through an array whose elements are also arrays
- * comparing _obj_ with the first element of each contained array
- * using obj.==.
- * Returns the first contained array that matches (that
- * is, the first associated array),
- * or +nil+ if no match is found.
- * See also <code>Array#rassoc</code>.
+ * See also Array#rassoc
*
* s1 = [ "colors", "red", "blue", "green" ]
* s2 = [ "letters", "a", "b", "c" ]
@@ -2425,17 +3633,15 @@ rb_ary_times(ary, times)
*/
VALUE
-rb_ary_assoc(ary, key)
- VALUE ary, key;
+rb_ary_assoc(VALUE ary, VALUE key)
{
long i;
VALUE v;
- for (i = 0; i < RARRAY(ary)->len; ++i) {
- v = RARRAY(ary)->ptr[i];
- if (TYPE(v) == T_ARRAY &&
- RARRAY(v)->len > 0 &&
- rb_equal(RARRAY(v)->ptr[0], key))
+ for (i = 0; i < RARRAY_LEN(ary); ++i) {
+ v = rb_check_array_type(RARRAY_AREF(ary, i));
+ if (!NIL_P(v) && RARRAY_LEN(v) > 0 &&
+ rb_equal(RARRAY_AREF(v, 0), key))
return v;
}
return Qnil;
@@ -2443,55 +3649,78 @@ rb_ary_assoc(ary, key)
/*
* call-seq:
- * array.rassoc(key) -> an_array or nil
- *
- * Searches through the array whose elements are also arrays. Compares
- * <em>key</em> with the second element of each contained array using
- * <code>==</code>. Returns the first contained array that matches. See
- * also <code>Array#assoc</code>.
- *
+ * ary.rassoc(obj) -> new_ary or nil
+ *
+ * Searches through the array whose elements are also arrays.
+ *
+ * Compares +obj+ with the second element of each contained array using
+ * <code>obj.==</code>.
+ *
+ * Returns the first contained array that matches +obj+.
+ *
+ * See also Array#assoc.
+ *
* a = [ [ 1, "one"], [2, "two"], [3, "three"], ["ii", "two"] ]
* a.rassoc("two") #=> [2, "two"]
* a.rassoc("four") #=> nil
*/
VALUE
-rb_ary_rassoc(ary, value)
- VALUE ary, value;
+rb_ary_rassoc(VALUE ary, VALUE value)
{
long i;
VALUE v;
- for (i = 0; i < RARRAY(ary)->len; ++i) {
- v = RARRAY(ary)->ptr[i];
- if (TYPE(v) == T_ARRAY &&
- RARRAY(v)->len > 1 &&
- rb_equal(RARRAY(v)->ptr[1], value))
+ for (i = 0; i < RARRAY_LEN(ary); ++i) {
+ v = RARRAY_AREF(ary, i);
+ if (RB_TYPE_P(v, T_ARRAY) &&
+ RARRAY_LEN(v) > 1 &&
+ rb_equal(RARRAY_AREF(v, 1), value))
return v;
}
return Qnil;
}
static VALUE
-recursive_equal(ary1, ary2)
- VALUE ary1, ary2;
+recursive_equal(VALUE ary1, VALUE ary2, int recur)
{
- long i;
-
- for (i=0; i<RARRAY(ary1)->len; i++) {
- if (!rb_equal(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))
- return Qfalse;
+ long i, len1;
+ const VALUE *p1, *p2;
+
+ if (recur) return Qtrue; /* Subtle! */
+
+ p1 = RARRAY_CONST_PTR(ary1);
+ p2 = RARRAY_CONST_PTR(ary2);
+ len1 = RARRAY_LEN(ary1);
+
+ for (i = 0; i < len1; i++) {
+ if (*p1 != *p2) {
+ if (rb_equal(*p1, *p2)) {
+ len1 = RARRAY_LEN(ary1);
+ if (len1 != RARRAY_LEN(ary2))
+ return Qfalse;
+ if (len1 < i)
+ return Qtrue;
+ p1 = RARRAY_CONST_PTR(ary1) + i;
+ p2 = RARRAY_CONST_PTR(ary2) + i;
+ }
+ else {
+ return Qfalse;
+ }
+ }
+ p1++;
+ p2++;
}
return Qtrue;
}
-/*
+/*
* call-seq:
- * array == other_array -> bool
+ * ary == other_ary -> bool
*
- * Equality---Two arrays are equal if they contain the same number
- * of elements and if each element is equal to (according to
- * Object.==) the corresponding element in the other array.
+ * Equality --- Two arrays are equal if they contain the same number of
+ * elements and if each element is equal to (according to Object#==) the
+ * corresponding element in +other_ary+.
*
* [ "a", "c" ] == [ "a", "c", 7 ] #=> false
* [ "a", "c", 7 ] == [ "a", "c", 7 ] #=> true
@@ -2500,28 +3729,27 @@ recursive_equal(ary1, ary2)
*/
static VALUE
-rb_ary_equal(ary1, ary2)
- VALUE ary1, ary2;
+rb_ary_equal(VALUE ary1, VALUE ary2)
{
if (ary1 == ary2) return Qtrue;
- if (TYPE(ary2) != T_ARRAY) {
+ if (!RB_TYPE_P(ary2, T_ARRAY)) {
if (!rb_respond_to(ary2, rb_intern("to_ary"))) {
return Qfalse;
}
return rb_equal(ary2, ary1);
}
- if (RARRAY(ary1)->len != RARRAY(ary2)->len) return Qfalse;
- if (rb_inspecting_p(ary1)) return Qfalse;
- return rb_protect_inspect(recursive_equal, ary1, ary2);
+ if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;
+ if (RARRAY_CONST_PTR(ary1) == RARRAY_CONST_PTR(ary2)) return Qtrue;
+ return rb_exec_recursive_paired(recursive_equal, ary1, ary2, ary2);
}
static VALUE
-recursive_eql(ary1, ary2)
- VALUE ary1, ary2;
+recursive_eql(VALUE ary1, VALUE ary2, int recur)
{
long i;
- for (i=0; i<RARRAY(ary1)->len; i++) {
+ if (recur) return Qtrue; /* Subtle! */
+ for (i=0; i<RARRAY_LEN(ary1); i++) {
if (!rb_eql(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))
return Qfalse;
}
@@ -2530,99 +3758,98 @@ recursive_eql(ary1, ary2)
/*
* call-seq:
- * array.eql?(other) -> true or false
+ * ary.eql?(other) -> true or false
*
- * Returns <code>true</code> if _array_ and _other_ are the same object,
- * or are both arrays with the same content.
+ * Returns +true+ if +self+ and +other+ are the same object,
+ * or are both arrays with the same content (according to Object#eql?).
*/
static VALUE
-rb_ary_eql(ary1, ary2)
- VALUE ary1, ary2;
+rb_ary_eql(VALUE ary1, VALUE ary2)
{
if (ary1 == ary2) return Qtrue;
- if (TYPE(ary2) != T_ARRAY) return Qfalse;
- if (RARRAY(ary1)->len != RARRAY(ary2)->len) return Qfalse;
- if (rb_inspecting_p(ary1)) return Qfalse;
- return rb_protect_inspect(recursive_eql, ary1, ary2);
+ if (!RB_TYPE_P(ary2, T_ARRAY)) return Qfalse;
+ if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;
+ if (RARRAY_CONST_PTR(ary1) == RARRAY_CONST_PTR(ary2)) return Qtrue;
+ return rb_exec_recursive_paired(recursive_eql, ary1, ary2, ary2);
}
-static VALUE recursive_hash _((VALUE ary));
-
static VALUE
-recursive_hash(ary)
- VALUE ary;
+recursive_hash(VALUE ary, VALUE dummy, int recur)
{
- long i, h;
+ long i;
+ st_index_t h;
VALUE n;
- h = RARRAY(ary)->len;
- for (i=0; i<RARRAY(ary)->len; i++) {
- h = (h << 1) | (h<0 ? 1 : 0);
- n = rb_hash(RARRAY(ary)->ptr[i]);
- h ^= NUM2LONG(n);
+ h = rb_hash_start(RARRAY_LEN(ary));
+ if (recur) {
+ h = rb_hash_uint(h, NUM2LONG(rb_hash(rb_cArray)));
+ }
+ else {
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ n = rb_hash(RARRAY_AREF(ary, i));
+ h = rb_hash_uint(h, NUM2LONG(n));
+ }
}
+ h = rb_hash_end(h);
return LONG2FIX(h);
}
/*
* call-seq:
- * array.hash -> fixnum
+ * ary.hash -> fixnum
*
- * Compute a hash-code for this array. Two arrays with the same content
- * will have the same hash code (and will compare using <code>eql?</code>).
+ * Compute a hash-code for this array.
+ *
+ * Two arrays with the same content will have the same hash code (and will
+ * compare using #eql?).
*/
static VALUE
-rb_ary_hash(ary)
- VALUE ary;
+rb_ary_hash(VALUE ary)
{
- if (rb_inspecting_p(ary)) {
- return LONG2FIX(0);
- }
- return rb_protect_inspect(recursive_hash, ary, 0);
+ return rb_exec_recursive_outer(recursive_hash, ary, 0);
}
/*
* call-seq:
- * array.include?(obj) -> true or false
- *
- * Returns <code>true</code> if the given object is present in
- * <i>self</i> (that is, if any object <code>==</code> <i>anObject</i>),
- * <code>false</code> otherwise.
- *
+ * ary.include?(object) -> true or false
+ *
+ * Returns +true+ if the given +object+ is present in +self+ (that is, if any
+ * element <code>==</code> +object+), otherwise returns +false+.
+ *
* a = [ "a", "b", "c" ]
* a.include?("b") #=> true
* a.include?("z") #=> false
*/
VALUE
-rb_ary_includes(ary, item)
- VALUE ary;
- VALUE item;
+rb_ary_includes(VALUE ary, VALUE item)
{
long i;
-
- for (i=0; i<RARRAY(ary)->len; i++) {
- if (rb_equal(RARRAY(ary)->ptr[i], item)) {
+
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ if (rb_equal(RARRAY_AREF(ary, i), item)) {
return Qtrue;
}
}
return Qfalse;
}
-VALUE
-recursive_cmp(ary1, ary2)
- VALUE ary1, ary2;
+
+static VALUE
+recursive_cmp(VALUE ary1, VALUE ary2, int recur)
{
long i, len;
- len = RARRAY(ary1)->len;
- if (len > RARRAY(ary2)->len) {
- len = RARRAY(ary2)->len;
+ if (recur) return Qundef; /* Subtle! */
+ len = RARRAY_LEN(ary1);
+ if (len > RARRAY_LEN(ary2)) {
+ len = RARRAY_LEN(ary2);
}
for (i=0; i<len; i++) {
- VALUE v = rb_funcall(rb_ary_elt(ary1, i), id_cmp, 1, rb_ary_elt(ary2, i));
+ VALUE e1 = rb_ary_elt(ary1, i), e2 = rb_ary_elt(ary2, i);
+ VALUE v = rb_funcallv(e1, id_cmp, 1, &e2);
if (v != INT2FIX(0)) {
return v;
}
@@ -2630,266 +3857,380 @@ recursive_cmp(ary1, ary2)
return Qundef;
}
-/*
+/*
* call-seq:
- * array <=> other_array -> -1, 0, +1
+ * ary <=> other_ary -> -1, 0, +1 or nil
+ *
+ * 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 two elements
+ * that are not equal will determine the return value for the whole
+ * comparison.
+ *
+ * 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.
*
- * Comparison---Returns an integer (-1, 0,
- * or +1) if this array is less than, equal to, or greater than
- * other_array. Each object in each array is compared
- * (using <=>). If any value isn't
- * equal, then that inequality is the return value. If all the
- * values found are equal, then the return is based on a
- * comparison of the array lengths. Thus, two arrays are
- * ``equal'' according to <code>Array#<=></code> 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.
- *
* [ "a", "a", "c" ] <=> [ "a", "b", "c" ] #=> -1
* [ 1, 2, 3, 4, 5, 6 ] <=> [ 1, 2 ] #=> +1
*
*/
VALUE
-rb_ary_cmp(ary1, ary2)
- VALUE ary1, ary2;
+rb_ary_cmp(VALUE ary1, VALUE ary2)
{
long len;
VALUE v;
- ary2 = to_ary(ary2);
+ ary2 = rb_check_array_type(ary2);
+ if (NIL_P(ary2)) return Qnil;
if (ary1 == ary2) return INT2FIX(0);
- if (rb_inspecting_p(ary1)) return INT2FIX(0);
- v = rb_protect_inspect(recursive_cmp, ary1, ary2);
+ v = rb_exec_recursive_paired(recursive_cmp, ary1, ary2, ary2);
if (v != Qundef) return v;
- len = RARRAY(ary1)->len - RARRAY(ary2)->len;
+ len = RARRAY_LEN(ary1) - RARRAY_LEN(ary2);
if (len == 0) return INT2FIX(0);
if (len > 0) return INT2FIX(1);
return INT2FIX(-1);
}
static VALUE
-ary_make_hash(ary1, ary2)
- VALUE ary1, ary2;
+ary_add_hash(VALUE hash, VALUE ary)
{
- VALUE hash = rb_hash_new();
long i;
- for (i=0; i<RARRAY(ary1)->len; i++) {
- rb_hash_aset(hash, RARRAY(ary1)->ptr[i], Qtrue);
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ rb_hash_aset(hash, RARRAY_AREF(ary, i), Qtrue);
}
- if (ary2) {
- for (i=0; i<RARRAY(ary2)->len; i++) {
- rb_hash_aset(hash, RARRAY(ary2)->ptr[i], Qtrue);
+ return hash;
+}
+
+static inline VALUE
+ary_tmp_hash_new(void)
+{
+ VALUE hash = rb_hash_new();
+
+ RBASIC_CLEAR_CLASS(hash);
+ return hash;
+}
+
+static VALUE
+ary_make_hash(VALUE ary)
+{
+ VALUE hash = ary_tmp_hash_new();
+ return ary_add_hash(hash, ary);
+}
+
+static VALUE
+ary_add_hash_by(VALUE hash, VALUE ary)
+{
+ long i;
+
+ for (i = 0; i < RARRAY_LEN(ary); ++i) {
+ VALUE v = rb_ary_elt(ary, i), k = rb_yield(v);
+ if (rb_hash_lookup2(hash, k, Qundef) == Qundef) {
+ rb_hash_aset(hash, k, v);
}
}
return hash;
}
-/*
+static VALUE
+ary_make_hash_by(VALUE ary)
+{
+ VALUE hash = ary_tmp_hash_new();
+ return ary_add_hash_by(hash, ary);
+}
+
+static inline void
+ary_recycle_hash(VALUE hash)
+{
+ if (RHASH(hash)->ntbl) {
+ st_table *tbl = RHASH(hash)->ntbl;
+ RHASH(hash)->ntbl = 0;
+ st_free_table(tbl);
+ }
+}
+
+/*
* call-seq:
- * array - other_array -> an_array
+ * ary - other_ary -> new_ary
+ *
+ * Array Difference
+ *
+ * Returns a new array that is a copy of the original array, removing any
+ * items that also appear in +other_ary+. The order is preserved from the
+ * original array.
*
- * Array Difference---Returns a new array that is a copy of
- * the original array, removing any items that also appear in
- * other_array. (If you need set-like behavior, see the
- * library class Set.)
+ * It compares elements using their #hash and #eql? methods for efficiency.
*
* [ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ] #=> [ 3, 3, 5 ]
+ *
+ * If you need set-like behavior, see the library class Set.
*/
static VALUE
-rb_ary_diff(ary1, ary2)
- VALUE ary1, ary2;
+rb_ary_diff(VALUE ary1, VALUE ary2)
{
VALUE ary3;
volatile VALUE hash;
long i;
- hash = ary_make_hash(to_ary(ary2), 0);
+ hash = ary_make_hash(to_ary(ary2));
ary3 = rb_ary_new();
- for (i=0; i<RARRAY(ary1)->len; i++) {
- if (st_lookup(RHASH(hash)->tbl, RARRAY(ary1)->ptr[i], 0)) continue;
+ for (i=0; i<RARRAY_LEN(ary1); i++) {
+ if (st_lookup(rb_hash_tbl_raw(hash), RARRAY_AREF(ary1, i), 0)) continue;
rb_ary_push(ary3, rb_ary_elt(ary1, i));
}
+ ary_recycle_hash(hash);
return ary3;
}
-/*
+/*
* call-seq:
- * array & other_array
+ * ary & other_ary -> new_ary
+ *
+ * Set Intersection --- Returns a new array containing elements common to the
+ * two arrays, excluding any duplicates. The order is preserved from the
+ * original array.
*
- * Set Intersection---Returns a new array
- * containing elements common to the two arrays, with no duplicates.
+ * It compares elements using their #hash and #eql? methods for efficiency.
*
- * [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] #=> [ 1, 3 ]
+ * [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] #=> [ 1, 3 ]
+ * [ 'a', 'b', 'b', 'z' ] & [ 'a', 'b', 'c' ] #=> [ 'a', 'b' ]
+ *
+ * See also Array#uniq.
*/
static VALUE
-rb_ary_and(ary1, ary2)
- VALUE ary1, ary2;
+rb_ary_and(VALUE ary1, VALUE ary2)
{
- VALUE hash, ary3, v, vv;
+ VALUE hash, ary3, v;
+ st_table *table;
+ st_data_t vv;
long i;
ary2 = to_ary(ary2);
- ary3 = rb_ary_new2(RARRAY(ary1)->len < RARRAY(ary2)->len ?
- RARRAY(ary1)->len : RARRAY(ary2)->len);
- hash = ary_make_hash(ary2, 0);
-
- for (i=0; i<RARRAY(ary1)->len; i++) {
- v = vv = rb_ary_elt(ary1, i);
- if (st_delete(RHASH(hash)->tbl, (st_data_t*)&vv, 0)) {
+ ary3 = rb_ary_new();
+ if (RARRAY_LEN(ary2) == 0) return ary3;
+ hash = ary_make_hash(ary2);
+ table = rb_hash_tbl_raw(hash);
+
+ for (i=0; i<RARRAY_LEN(ary1); i++) {
+ v = RARRAY_AREF(ary1, i);
+ vv = (st_data_t)v;
+ if (st_delete(table, &vv, 0)) {
rb_ary_push(ary3, v);
}
}
+ ary_recycle_hash(hash);
return ary3;
}
-/*
+/*
* call-seq:
- * array | other_array -> an_array
+ * ary | other_ary -> new_ary
*
- * Set Union---Returns a new array by joining this array with
- * other_array, removing duplicates.
+ * Set Union --- Returns a new array by joining +ary+ with +other_ary+,
+ * excluding any duplicates and preserving the order from the original array.
*
- * [ "a", "b", "c" ] | [ "c", "d", "a" ]
- * #=> [ "a", "b", "c", "d" ]
+ * It compares elements using their #hash and #eql? methods for efficiency.
+ *
+ * [ "a", "b", "c" ] | [ "c", "d", "a" ] #=> [ "a", "b", "c", "d" ]
+ *
+ * See also Array#uniq.
*/
static VALUE
-rb_ary_or(ary1, ary2)
- VALUE ary1, ary2;
+rb_ary_or(VALUE ary1, VALUE ary2)
{
VALUE hash, ary3;
- VALUE v, vv;
- long i;
ary2 = to_ary(ary2);
- ary3 = rb_ary_new2(RARRAY(ary1)->len+RARRAY(ary2)->len);
- hash = ary_make_hash(ary1, ary2);
-
- for (i=0; i<RARRAY(ary1)->len; i++) {
- v = vv = rb_ary_elt(ary1, i);
- if (st_delete(RHASH(hash)->tbl, (st_data_t*)&vv, 0)) {
- rb_ary_push(ary3, v);
- }
- }
- for (i=0; i<RARRAY(ary2)->len; i++) {
- v = vv = rb_ary_elt(ary2, i);
- if (st_delete(RHASH(hash)->tbl, (st_data_t*)&vv, 0)) {
- rb_ary_push(ary3, v);
- }
- }
+ hash = ary_add_hash(ary_make_hash(ary1), ary2);
+ ary3 = rb_hash_keys(hash);
+ ary_recycle_hash(hash);
return ary3;
}
+static int
+push_key(st_data_t key, st_data_t val, st_data_t ary)
+{
+ rb_ary_push((VALUE)ary, (VALUE)key);
+ return ST_CONTINUE;
+}
+
+static int
+push_value(st_data_t key, st_data_t val, st_data_t ary)
+{
+ rb_ary_push((VALUE)ary, (VALUE)val);
+ return ST_CONTINUE;
+}
+
/*
* call-seq:
- * array.uniq! -> array or nil
- *
- * Removes duplicate elements from _self_.
- * Returns <code>nil</code> if no changes are made (that is, no
- * duplicates are found).
- *
+ * ary.uniq! -> ary or nil
+ * ary.uniq! { |item| ... } -> ary or nil
+ *
+ * Removes duplicate elements from +self+.
+ *
+ * If a block is given, it will use the return value of the block for
+ * comparison.
+ *
+ * It compares values using their #hash and #eql? methods for efficiency.
+ *
+ * Returns +nil+ if no changes are made (that is, no duplicates are found).
+ *
* a = [ "a", "a", "b", "b", "c" ]
- * a.uniq! #=> ["a", "b", "c"]
+ * a.uniq! # => ["a", "b", "c"]
+ *
* b = [ "a", "b", "c" ]
- * b.uniq! #=> nil
+ * b.uniq! # => nil
+ *
+ * c = [["student","sam"], ["student","george"], ["teacher","matz"]]
+ * c.uniq! { |s| s.first } # => [["student", "sam"], ["teacher", "matz"]]
+ *
*/
static VALUE
-rb_ary_uniq_bang(ary)
- VALUE ary;
+rb_ary_uniq_bang(VALUE ary)
{
- VALUE hash, v, vv;
- long i, j;
+ VALUE hash;
+ long hash_size;
- hash = ary_make_hash(ary, 0);
-
- if (RARRAY(ary)->len == RHASH(hash)->tbl->num_entries) {
- return Qnil;
+ rb_ary_modify_check(ary);
+ if (RARRAY_LEN(ary) <= 1)
+ return Qnil;
+ if (rb_block_given_p()) {
+ hash = ary_make_hash_by(ary);
+ hash_size = RHASH_SIZE(hash);
+ if (RARRAY_LEN(ary) == hash_size) {
+ return Qnil;
+ }
+ rb_ary_modify_check(ary);
+ ARY_SET_LEN(ary, 0);
+ if (ARY_SHARED_P(ary) && !ARY_EMBED_P(ary)) {
+ rb_ary_unshare(ary);
+ FL_SET_EMBED(ary);
+ }
+ ary_resize_capa(ary, hash_size);
+ st_foreach(rb_hash_tbl_raw(hash), push_value, ary);
}
- for (i=j=0; i<RARRAY(ary)->len; i++) {
- v = vv = rb_ary_elt(ary, i);
- if (st_delete(RHASH(hash)->tbl, (st_data_t*)&vv, 0)) {
- rb_ary_store(ary, j++, v);
+ else {
+ hash = ary_make_hash(ary);
+ hash_size = RHASH_SIZE(hash);
+ if (RARRAY_LEN(ary) == hash_size) {
+ return Qnil;
+ }
+ rb_ary_modify_check(ary);
+ ARY_SET_LEN(ary, 0);
+ if (ARY_SHARED_P(ary) && !ARY_EMBED_P(ary)) {
+ rb_ary_unshare(ary);
+ FL_SET_EMBED(ary);
}
+ ary_resize_capa(ary, hash_size);
+ st_foreach(rb_hash_tbl_raw(hash), push_key, ary);
}
- RARRAY(ary)->len = j;
+ ary_recycle_hash(hash);
return ary;
}
/*
* call-seq:
- * array.uniq -> an_array
- *
- * Returns a new array by removing duplicate values in <i>self</i>.
- *
+ * ary.uniq -> new_ary
+ * ary.uniq { |item| ... } -> new_ary
+ *
+ * Returns a new array by removing duplicate values in +self+.
+ *
+ * If a block is given, it will use the return value of the block for comparison.
+ *
+ * It compares values using their #hash and #eql? methods for efficiency.
+ *
* a = [ "a", "a", "b", "b", "c" ]
- * a.uniq #=> ["a", "b", "c"]
+ * a.uniq # => ["a", "b", "c"]
+ *
+ * b = [["student","sam"], ["student","george"], ["teacher","matz"]]
+ * b.uniq { |s| s.first } # => [["student", "sam"], ["teacher", "matz"]]
+ *
*/
static VALUE
-rb_ary_uniq(ary)
- VALUE ary;
+rb_ary_uniq(VALUE ary)
{
- ary = rb_ary_dup(ary);
- rb_ary_uniq_bang(ary);
- return ary;
+ VALUE hash, uniq;
+
+ if (RARRAY_LEN(ary) <= 1)
+ return rb_ary_dup(ary);
+ if (rb_block_given_p()) {
+ hash = ary_make_hash_by(ary);
+ uniq = rb_hash_values(hash);
+ }
+ else {
+ hash = ary_make_hash(ary);
+ uniq = rb_hash_keys(hash);
+ }
+ RBASIC_SET_CLASS(uniq, rb_obj_class(ary));
+ ary_recycle_hash(hash);
+
+ return uniq;
}
-/*
+/*
* call-seq:
- * array.compact! -> array or nil
+ * ary.compact! -> ary or nil
+ *
+ * Removes +nil+ elements from the array.
*
- * Removes +nil+ elements from array.
- * Returns +nil+ if no changes were made.
+ * Returns +nil+ if no changes were made, otherwise returns the array.
*
* [ "a", nil, "b", nil, "c" ].compact! #=> [ "a", "b", "c" ]
* [ "a", "b", "c" ].compact! #=> nil
*/
static VALUE
-rb_ary_compact_bang(ary)
- VALUE ary;
+rb_ary_compact_bang(VALUE ary)
{
VALUE *p, *t, *end;
+ long n;
rb_ary_modify(ary);
- p = t = RARRAY(ary)->ptr;
- end = p + RARRAY(ary)->len;
-
+ p = t = (VALUE *)RARRAY_CONST_PTR(ary); /* WB: no new reference */
+ end = p + RARRAY_LEN(ary);
+
while (t < end) {
if (NIL_P(*t)) t++;
else *p++ = *t++;
}
- if (RARRAY(ary)->len == (p - RARRAY(ary)->ptr)) {
+ n = p - RARRAY_CONST_PTR(ary);
+ if (RARRAY_LEN(ary) == n) {
return Qnil;
}
- RARRAY(ary)->len = RARRAY(ary)->aux.capa = (p - RARRAY(ary)->ptr);
- REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
+ ary_resize_smaller(ary, n);
return ary;
}
/*
* call-seq:
- * array.compact -> an_array
+ * ary.compact -> new_ary
*
- * Returns a copy of _self_ with all +nil+ elements removed.
+ * Returns a copy of +self+ with all +nil+ elements removed.
*
* [ "a", nil, "b", nil, "c", nil ].compact
* #=> [ "a", "b", "c" ]
*/
static VALUE
-rb_ary_compact(ary)
- VALUE ary;
+rb_ary_compact(VALUE ary)
{
ary = rb_ary_dup(ary);
rb_ary_compact_bang(ary);
@@ -2898,147 +4239,1370 @@ rb_ary_compact(ary)
/*
* call-seq:
- * array.nitems -> int
- *
- * Returns the number of non-<code>nil</code> elements in _self_.
- * May be zero.
- *
- * [ 1, nil, 3, nil, 5 ].nitems #=> 3
+ * ary.count -> int
+ * ary.count(obj) -> int
+ * ary.count { |item| block } -> int
+ *
+ * Returns the number of elements.
+ *
+ * If an argument is given, counts the number of elements which equal +obj+
+ * using <code>==</code>.
+ *
+ * If a block is given, counts the number of elements for which the block
+ * returns a true value.
+ *
+ * ary = [1, 2, 4, 2]
+ * ary.count #=> 4
+ * ary.count(2) #=> 2
+ * ary.count { |x| x%2 == 0 } #=> 3
+ *
*/
static VALUE
-rb_ary_nitems(ary)
- VALUE ary;
+rb_ary_count(int argc, VALUE *argv, VALUE ary)
{
- long n = 0;
- VALUE *p, *pend;
+ long i, n = 0;
- p = RARRAY(ary)->ptr;
- pend = p + RARRAY(ary)->len;
+ if (argc == 0) {
+ VALUE v;
+
+ if (!rb_block_given_p())
+ return LONG2NUM(RARRAY_LEN(ary));
- while (p < pend) {
- if (!NIL_P(*p)) n++;
- p++;
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ v = RARRAY_AREF(ary, i);
+ if (RTEST(rb_yield(v))) n++;
+ }
+ }
+ else {
+ VALUE obj;
+
+ rb_scan_args(argc, argv, "1", &obj);
+ if (rb_block_given_p()) {
+ rb_warn("given block not used");
+ }
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ if (rb_equal(RARRAY_AREF(ary, i), obj)) n++;
+ }
}
+
return LONG2NUM(n);
}
-static long
-flatten(ary, idx, ary2, memo)
- VALUE ary;
- long idx;
- VALUE ary2, memo;
+static VALUE
+flatten(VALUE ary, int level, int *modified)
{
- VALUE id;
- long i = idx;
- long n, lim = idx + RARRAY(ary2)->len;
-
- id = rb_obj_id(ary2);
- if (rb_ary_includes(memo, id)) {
- rb_raise(rb_eArgError, "tried to flatten recursive array");
- }
- rb_ary_push(memo, id);
- rb_ary_splice(ary, idx, 1, ary2);
- while (i < lim) {
- VALUE tmp;
-
- tmp = rb_check_array_type(rb_ary_elt(ary, i));
- if (!NIL_P(tmp)) {
- n = flatten(ary, i, tmp, memo);
- i += n; lim += n;
+ long i = 0;
+ VALUE stack, result, tmp, elt;
+ st_table *memo;
+ st_data_t id;
+
+ stack = ary_new(0, ARY_DEFAULT_SIZE);
+ result = ary_new(0, RARRAY_LEN(ary));
+ memo = st_init_numtable();
+ st_insert(memo, (st_data_t)ary, (st_data_t)Qtrue);
+ *modified = 0;
+
+ while (1) {
+ while (i < RARRAY_LEN(ary)) {
+ elt = RARRAY_AREF(ary, i++);
+ tmp = rb_check_array_type(elt);
+ if (RBASIC(result)->klass) {
+ rb_raise(rb_eRuntimeError, "flatten reentered");
+ }
+ if (NIL_P(tmp) || (level >= 0 && RARRAY_LEN(stack) / 2 >= level)) {
+ rb_ary_push(result, elt);
+ }
+ else {
+ *modified = 1;
+ id = (st_data_t)tmp;
+ if (st_lookup(memo, id, 0)) {
+ st_free_table(memo);
+ rb_raise(rb_eArgError, "tried to flatten recursive array");
+ }
+ st_insert(memo, id, (st_data_t)Qtrue);
+ rb_ary_push(stack, ary);
+ rb_ary_push(stack, LONG2NUM(i));
+ ary = tmp;
+ i = 0;
+ }
}
- i++;
+ if (RARRAY_LEN(stack) == 0) {
+ break;
+ }
+ id = (st_data_t)ary;
+ st_delete(memo, &id, 0);
+ tmp = rb_ary_pop(stack);
+ i = NUM2LONG(tmp);
+ ary = rb_ary_pop(stack);
}
- rb_ary_pop(memo);
- return lim - idx - 1; /* returns number of increased items */
+ st_free_table(memo);
+
+ RBASIC_SET_CLASS(result, rb_class_of(ary));
+ return result;
}
/*
* call-seq:
- * array.flatten! -> array or nil
- *
- * Flattens _self_ in place.
- * Returns <code>nil</code> if no modifications were made (i.e.,
- * <i>array</i> contains no subarrays.)
- *
+ * ary.flatten! -> ary or nil
+ * ary.flatten!(level) -> ary or nil
+ *
+ * Flattens +self+ in place.
+ *
+ * Returns +nil+ if no modifications were made (i.e., the array contains no
+ * subarrays.)
+ *
+ * The optional +level+ argument determines the level of recursion to flatten.
+ *
* a = [ 1, 2, [3, [4, 5] ] ]
* a.flatten! #=> [1, 2, 3, 4, 5]
* a.flatten! #=> nil
* a #=> [1, 2, 3, 4, 5]
+ * a = [ 1, 2, [3, [4, 5] ] ]
+ * a.flatten!(1) #=> [1, 2, 3, [4, 5]]
*/
static VALUE
-rb_ary_flatten_bang(ary)
- VALUE ary;
+rb_ary_flatten_bang(int argc, VALUE *argv, VALUE ary)
{
- long i = 0;
- int mod = 0;
- VALUE memo = Qnil;
+ int mod = 0, level = -1;
+ VALUE result, lv;
- while (i<RARRAY(ary)->len) {
- VALUE ary2 = RARRAY(ary)->ptr[i];
- VALUE tmp;
+ rb_scan_args(argc, argv, "01", &lv);
+ rb_ary_modify_check(ary);
+ if (!NIL_P(lv)) level = NUM2INT(lv);
+ if (level == 0) return Qnil;
- tmp = rb_check_array_type(ary2);
- if (!NIL_P(tmp)) {
- if (NIL_P(memo)) {
- memo = rb_ary_new();
- }
- i += flatten(ary, i, tmp, memo);
- mod = 1;
- }
- i++;
+ result = flatten(ary, level, &mod);
+ if (mod == 0) {
+ ary_discard(result);
+ return Qnil;
}
- if (mod == 0) return Qnil;
+ if (!(mod = ARY_EMBED_P(result))) rb_obj_freeze(result);
+ rb_ary_replace(ary, result);
+ if (mod) ARY_SET_EMBED_LEN(result, 0);
+
return ary;
}
/*
* call-seq:
- * array.flatten -> an_array
- *
- * Returns a new array that is a one-dimensional flattening of this
- * array (recursively). That is, for every element that is an array,
- * extract its elements into the new array.
- *
+ * ary.flatten -> new_ary
+ * ary.flatten(level) -> new_ary
+ *
+ * Returns a new array that is a one-dimensional flattening of +self+
+ * (recursively).
+ *
+ * That is, for every element that is an array, extract its elements into
+ * the new array.
+ *
+ * The optional +level+ argument determines the level of recursion to
+ * flatten.
+ *
* s = [ 1, 2, 3 ] #=> [1, 2, 3]
* t = [ 4, 5, 6, [7, 8] ] #=> [4, 5, 6, [7, 8]]
* a = [ s, t, 9, 10 ] #=> [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]
- * a.flatten #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10
+ * a.flatten #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+ * a = [ 1, 2, [3, [4, 5] ] ]
+ * a.flatten(1) #=> [1, 2, 3, [4, 5]]
*/
static VALUE
-rb_ary_flatten(ary)
- VALUE ary;
+rb_ary_flatten(int argc, VALUE *argv, VALUE ary)
+{
+ int mod = 0, level = -1;
+ VALUE result, lv;
+
+ rb_scan_args(argc, argv, "01", &lv);
+ if (!NIL_P(lv)) level = NUM2INT(lv);
+ if (level == 0) return ary_make_shared_copy(ary);
+
+ result = flatten(ary, level, &mod);
+ OBJ_INFECT(result, ary);
+
+ return result;
+}
+
+#define OPTHASH_GIVEN_P(opts) \
+ (argc > 0 && !NIL_P((opts) = rb_check_hash_type(argv[argc-1])) && (--argc, 1))
+static VALUE sym_random;
+
+#define RAND_UPTO(max) (long)rb_random_ulong_limited((randgen), (max)-1)
+
+/*
+ * call-seq:
+ * ary.shuffle! -> ary
+ * ary.shuffle!(random: rng) -> ary
+ *
+ * Shuffles elements in +self+ in place.
+ *
+ * The optional +rng+ argument will be used as the random number generator.
+ */
+
+static VALUE
+rb_ary_shuffle_bang(int argc, VALUE *argv, VALUE ary)
+{
+ VALUE opts, randgen = rb_cRandom;
+ long i, len;
+
+ if (OPTHASH_GIVEN_P(opts)) {
+ randgen = rb_hash_lookup2(opts, sym_random, randgen);
+ }
+ rb_check_arity(argc, 0, 0);
+ rb_ary_modify(ary);
+ i = len = RARRAY_LEN(ary);
+ RARRAY_PTR_USE(ary, ptr, {
+ while (i) {
+ long j = RAND_UPTO(i);
+ VALUE tmp;
+ if (len != RARRAY_LEN(ary) || ptr != RARRAY_CONST_PTR(ary)) {
+ rb_raise(rb_eRuntimeError, "modified during shuffle");
+ }
+ tmp = ptr[--i];
+ ptr[i] = ptr[j];
+ ptr[j] = tmp;
+ }
+ }); /* WB: no new reference */
+ return ary;
+}
+
+
+/*
+ * call-seq:
+ * ary.shuffle -> new_ary
+ * ary.shuffle(random: rng) -> new_ary
+ *
+ * Returns a new array with elements of +self+ shuffled.
+ *
+ * a = [ 1, 2, 3 ] #=> [1, 2, 3]
+ * a.shuffle #=> [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
+rb_ary_shuffle(int argc, VALUE *argv, VALUE ary)
{
ary = rb_ary_dup(ary);
- rb_ary_flatten_bang(ary);
+ rb_ary_shuffle_bang(argc, argv, ary);
+ return ary;
+}
+
+
+/*
+ * call-seq:
+ * ary.sample -> obj
+ * ary.sample(random: rng) -> obj
+ * ary.sample(n) -> new_ary
+ * ary.sample(n, random: rng) -> new_ary
+ *
+ * Choose a random element or +n+ random elements from the array.
+ *
+ * The elements are chosen by using random and unique indices into the array
+ * in order to ensure that an element doesn't repeat itself unless the array
+ * already contained duplicate elements.
+ *
+ * If the array is empty the first form returns +nil+ and the second form
+ * returns an empty array.
+ *
+ * The optional +rng+ argument will be used as the random number generator.
+ *
+ * a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
+ * a.sample #=> 7
+ * a.sample(4) #=> [6, 4, 2, 5]
+ */
+
+
+static VALUE
+rb_ary_sample(int argc, VALUE *argv, VALUE ary)
+{
+ VALUE nv, result;
+ VALUE opts, randgen = rb_cRandom;
+ long n, len, i, j, k, idx[10];
+ long rnds[numberof(idx)];
+
+ if (OPTHASH_GIVEN_P(opts)) {
+ randgen = rb_hash_lookup2(opts, sym_random, randgen);
+ }
+ len = RARRAY_LEN(ary);
+ if (argc == 0) {
+ if (len < 2)
+ i = 0;
+ else
+ i = RAND_UPTO(len);
+
+ return rb_ary_elt(ary, i);
+ }
+ rb_scan_args(argc, argv, "1", &nv);
+ n = NUM2LONG(nv);
+ if (n < 0) rb_raise(rb_eArgError, "negative sample number");
+ if (n > len) n = len;
+ if (n <= numberof(idx)) {
+ for (i = 0; i < n; ++i) {
+ rnds[i] = RAND_UPTO(len - i);
+ }
+ }
+ k = len;
+ len = RARRAY_LEN(ary);
+ if (len < k && n <= numberof(idx)) {
+ for (i = 0; i < n; ++i) {
+ if (rnds[i] >= len) return rb_ary_new_capa(0);
+ }
+ }
+ if (n > len) n = len;
+ switch (n) {
+ case 0:
+ return rb_ary_new_capa(0);
+ case 1:
+ i = rnds[0];
+ return rb_ary_new_from_values(1, &RARRAY_AREF(ary, i));
+ case 2:
+ i = rnds[0];
+ j = rnds[1];
+ if (j >= i) j++;
+ return rb_ary_new_from_args(2, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j));
+ case 3:
+ i = rnds[0];
+ j = rnds[1];
+ k = rnds[2];
+ {
+ long l = j, g = i;
+ if (j >= i) l = i, g = ++j;
+ if (k >= l && (++k >= g)) ++k;
+ }
+ return rb_ary_new_from_args(3, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j), RARRAY_AREF(ary, k));
+ }
+ if (n <= numberof(idx)) {
+ long sorted[numberof(idx)];
+ sorted[0] = idx[0] = rnds[0];
+ for (i=1; i<n; i++) {
+ k = rnds[i];
+ for (j = 0; j < i; ++j) {
+ if (k < sorted[j]) break;
+ ++k;
+ }
+ memmove(&sorted[j+1], &sorted[j], sizeof(sorted[0])*(i-j));
+ sorted[j] = idx[i] = k;
+ }
+ result = rb_ary_new_capa(n);
+ RARRAY_PTR_USE(result, ptr_result, {
+ for (i=0; i<n; i++) {
+ ptr_result[i] = RARRAY_AREF(ary, idx[i]);
+ }
+ });
+ }
+ else {
+ result = rb_ary_dup(ary);
+ RBASIC_CLEAR_CLASS(result);
+ RB_GC_GUARD(ary);
+ RARRAY_PTR_USE(result, ptr_result, {
+ for (i=0; i<n; i++) {
+ j = RAND_UPTO(len-i) + i;
+ nv = ptr_result[j];
+ ptr_result[j] = ptr_result[i];
+ ptr_result[i] = nv;
+ }
+ });
+ RBASIC_SET_CLASS_RAW(result, rb_cArray);
+ }
+ ARY_SET_LEN(result, n);
+
+ return result;
+}
+
+static VALUE
+rb_ary_cycle_size(VALUE self, VALUE args, VALUE eobj)
+{
+ long mul;
+ VALUE n = Qnil;
+ if (args && (RARRAY_LEN(args) > 0)) {
+ n = RARRAY_AREF(args, 0);
+ }
+ if (RARRAY_LEN(self) == 0) return INT2FIX(0);
+ if (n == Qnil) return DBL2NUM(INFINITY);
+ mul = NUM2LONG(n);
+ if (mul <= 0) return INT2FIX(0);
+ n = LONG2FIX(mul);
+ return rb_funcallv(rb_ary_length(self), '*', 1, &n);
+}
+
+/*
+ * call-seq:
+ * ary.cycle(n=nil) { |obj| block } -> nil
+ * ary.cycle(n=nil) -> Enumerator
+ *
+ * Calls the given block for each element +n+ times or forever if +nil+ is
+ * given.
+ *
+ * Does nothing if a non-positive number is given or the array is empty.
+ *
+ * Returns +nil+ if the loop has finished without getting interrupted.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * a = ["a", "b", "c"]
+ * a.cycle { |x| puts x } # print, a, b, c, a, b, c,.. forever.
+ * a.cycle(2) { |x| puts x } # print, a, b, c, a, b, c.
+ *
+ */
+
+static VALUE
+rb_ary_cycle(int argc, VALUE *argv, VALUE ary)
+{
+ long n, i;
+ VALUE nv = Qnil;
+
+ rb_scan_args(argc, argv, "01", &nv);
+
+ RETURN_SIZED_ENUMERATOR(ary, argc, argv, rb_ary_cycle_size);
+ if (NIL_P(nv)) {
+ n = -1;
+ }
+ else {
+ n = NUM2LONG(nv);
+ if (n <= 0) return Qnil;
+ }
+
+ while (RARRAY_LEN(ary) > 0 && (n < 0 || 0 < n--)) {
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ rb_yield(RARRAY_AREF(ary, i));
+ }
+ }
+ return Qnil;
+}
+
+#define tmpbuf(n, size) rb_str_tmp_new((n)*(size))
+#define tmpbuf_discard(s) (rb_str_resize((s), 0L), RBASIC_SET_CLASS_RAW(s, rb_cString))
+#define tmpary(n) rb_ary_tmp_new(n)
+#define tmpary_discard(a) (ary_discard(a), RBASIC_SET_CLASS_RAW(a, rb_cArray))
+
+/*
+ * 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.
+ *
+ * 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(long n, long r, long *p, long index, char *used, VALUE values)
+{
+ long i,j;
+ for (i = 0; i < n; i++) {
+ if (used[i] == 0) {
+ p[index] = i;
+ if (index < r-1) { /* if not done yet */
+ used[i] = 1; /* mark index used */
+ permute0(n, r, p, index+1, /* recurse */
+ used, values);
+ used[i] = 0; /* index unused */
+ }
+ else {
+ /* We have a complete permutation of array indexes */
+ /* Build a ruby array of the corresponding values */
+ /* And yield it to the associated block */
+ VALUE result = rb_ary_new2(r);
+ VALUE *result_array = RARRAY_PTR(result);
+ const VALUE *values_array = RARRAY_PTR(values);
+
+ for (j = 0; j < r; j++) result_array[j] = values_array[p[j]];
+ ARY_SET_LEN(result, r);
+ rb_yield(result);
+ if (RBASIC(values)->klass) {
+ rb_raise(rb_eRuntimeError, "permute reentered");
+ }
+ }
+ }
+ }
+}
+
+/*
+ * Returns the product of from, from-1, ..., from - how_many + 1.
+ * http://en.wikipedia.org/wiki/Pochhammer_symbol
+ */
+static VALUE
+descending_factorial(long from, long how_many)
+{
+ VALUE cnt = LONG2FIX(how_many >= 0);
+ while (how_many-- > 0) {
+ VALUE v = LONG2FIX(from--);
+ cnt = rb_funcallv(cnt, '*', 1, &v);
+ }
+ return cnt;
+}
+
+static VALUE
+binomial_coefficient(long comb, long size)
+{
+ VALUE r, v;
+ if (comb > size-comb) {
+ comb = size-comb;
+ }
+ if (comb < 0) {
+ return LONG2FIX(0);
+ }
+ r = descending_factorial(size, comb);
+ v = descending_factorial(comb, comb);
+ return rb_funcallv(r, id_div, 1, &v);
+}
+
+static VALUE
+rb_ary_permutation_size(VALUE ary, VALUE args, VALUE eobj)
+{
+ long n = RARRAY_LEN(ary);
+ long k = (args && (RARRAY_LEN(args) > 0)) ? NUM2LONG(RARRAY_AREF(args, 0)) : n;
+
+ return descending_factorial(n, k);
+}
+
+/*
+ * call-seq:
+ * ary.permutation { |p| block } -> ary
+ * ary.permutation -> Enumerator
+ * ary.permutation(n) { |p| block } -> ary
+ * ary.permutation(n) -> Enumerator
+ *
+ * When invoked with a block, yield all permutations of length +n+ of the
+ * elements of the array, then return the array itself.
+ *
+ * If +n+ is not specified, yield all permutations of all elements.
+ *
+ * The implementation makes no guarantees about the order in which the
+ * permutations are yielded.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * Examples:
+ *
+ * a = [1, 2, 3]
+ * a.permutation.to_a #=> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
+ * a.permutation(1).to_a #=> [[1],[2],[3]]
+ * a.permutation(2).to_a #=> [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]
+ * a.permutation(3).to_a #=> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
+ * a.permutation(0).to_a #=> [[]] # one permutation of length 0
+ * a.permutation(4).to_a #=> [] # no permutations of length 4
+ */
+
+static VALUE
+rb_ary_permutation(int argc, VALUE *argv, VALUE ary)
+{
+ VALUE num;
+ long r, n, i;
+
+ n = RARRAY_LEN(ary); /* Array length */
+ RETURN_SIZED_ENUMERATOR(ary, argc, argv, rb_ary_permutation_size); /* Return enumerator if no block */
+ rb_scan_args(argc, argv, "01", &num);
+ r = NIL_P(num) ? n : NUM2LONG(num); /* Permutation size from argument */
+
+ if (r < 0 || n < r) {
+ /* no permutations: yield nothing */
+ }
+ else if (r == 0) { /* exactly one permutation: the zero-length array */
+ rb_yield(rb_ary_new2(0));
+ }
+ else if (r == 1) { /* this is a special, easy case */
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
+ }
+ }
+ else { /* this is the general case */
+ volatile VALUE t0 = tmpbuf(n,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, 0, used, ary0); /* compute and yield permutations */
+ tmpbuf_discard(t0);
+ tmpbuf_discard(t1);
+ RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
+ }
+ return ary;
+}
+
+static VALUE
+rb_ary_combination_size(VALUE ary, VALUE args, VALUE eobj)
+{
+ long n = RARRAY_LEN(ary);
+ long k = NUM2LONG(RARRAY_AREF(args, 0));
+
+ return binomial_coefficient(k, n);
+}
+
+/*
+ * call-seq:
+ * ary.combination(n) { |c| block } -> ary
+ * ary.combination(n) -> Enumerator
+ *
+ * When invoked with a block, yields all combinations of length +n+ of elements
+ * from the array and then returns the array itself.
+ *
+ * The implementation makes no guarantees about the order in which the
+ * combinations are yielded.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * Examples:
+ *
+ * a = [1, 2, 3, 4]
+ * a.combination(1).to_a #=> [[1],[2],[3],[4]]
+ * a.combination(2).to_a #=> [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
+ * a.combination(3).to_a #=> [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]
+ * a.combination(4).to_a #=> [[1,2,3,4]]
+ * a.combination(0).to_a #=> [[]] # one combination of length 0
+ * a.combination(5).to_a #=> [] # no combinations of length 5
+ *
+ */
+
+static VALUE
+rb_ary_combination(VALUE ary, VALUE num)
+{
+ long n, i, len;
+
+ n = NUM2LONG(num);
+ RETURN_SIZED_ENUMERATOR(ary, 1, &num, rb_ary_combination_size);
+ len = RARRAY_LEN(ary);
+ if (n < 0 || len < n) {
+ /* yield nothing */
+ }
+ else if (n == 0) {
+ rb_yield(rb_ary_new2(0));
+ }
+ else if (n == 1) {
+ for (i = 0; i < len; i++) {
+ rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
+ }
+ }
+ else {
+ volatile VALUE t0 = tmpbuf(n+1, sizeof(long));
+ long *stack = (long*)RSTRING_PTR(t0);
+ volatile VALUE cc = tmpary(n);
+ VALUE *chosen = RARRAY_PTR(cc);
+ long lev = 0;
+
+ MEMZERO(stack, long, n);
+ stack[0] = -1;
+ for (;;) {
+ chosen[lev] = RARRAY_AREF(ary, stack[lev+1]);
+ for (lev++; lev < n; lev++) {
+ chosen[lev] = RARRAY_AREF(ary, stack[lev+1] = stack[lev]+1);
+ }
+ rb_yield(rb_ary_new4(n, chosen));
+ if (RBASIC(t0)->klass) {
+ rb_raise(rb_eRuntimeError, "combination reentered");
+ }
+ do {
+ if (lev == 0) goto done;
+ stack[lev--]++;
+ } while (stack[lev+1]+n == len+lev+1);
+ }
+ done:
+ tmpbuf_discard(t0);
+ tmpary_discard(cc);
+ }
+ return ary;
+}
+
+/*
+ * 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
+ * values at those indexes into a new array and yield that array.
+ *
+ * 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(long n, long r, long *p, long index, VALUE values)
+{
+ long i, j;
+ 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 */
+ }
+ else {
+ /* We have a complete permutation of array indexes */
+ /* Build a ruby array of the corresponding values */
+ /* And yield it to the associated block */
+ VALUE result = rb_ary_new2(r);
+ VALUE *result_array = RARRAY_PTR(result);
+ const VALUE *values_array = RARRAY_PTR(values);
+
+ for (j = 0; j < r; j++) result_array[j] = values_array[p[j]];
+ ARY_SET_LEN(result, r);
+ rb_yield(result);
+ if (RBASIC(values)->klass) {
+ rb_raise(rb_eRuntimeError, "repeated permute reentered");
+ }
+ }
+ }
+}
+
+static VALUE
+rb_ary_repeated_permutation_size(VALUE ary, VALUE args, VALUE eobj)
+{
+ long n = RARRAY_LEN(ary);
+ long k = NUM2LONG(RARRAY_AREF(args, 0));
+ VALUE v;
+
+ if (k < 0) {
+ return LONG2FIX(0);
+ }
+
+ v = LONG2NUM(k);
+ return rb_funcallv(LONG2NUM(n), id_power, 1, &v);
+}
+
+/*
+ * call-seq:
+ * ary.repeated_permutation(n) { |p| block } -> ary
+ * ary.repeated_permutation(n) -> Enumerator
+ *
+ * When invoked with a block, yield all repeated permutations of length +n+ of
+ * the elements of the array, then return the array itself.
+ *
+ * The implementation makes no guarantees about the order in which the repeated
+ * permutations are yielded.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * Examples:
+ *
+ * a = [1, 2]
+ * a.repeated_permutation(1).to_a #=> [[1], [2]]
+ * a.repeated_permutation(2).to_a #=> [[1,1],[1,2],[2,1],[2,2]]
+ * a.repeated_permutation(3).to_a #=> [[1,1,1],[1,1,2],[1,2,1],[1,2,2],
+ * # [2,1,1],[2,1,2],[2,2,1],[2,2,2]]
+ * a.repeated_permutation(0).to_a #=> [[]] # one permutation of length 0
+ */
+
+static VALUE
+rb_ary_repeated_permutation(VALUE ary, VALUE num)
+{
+ long r, n, i;
+
+ n = RARRAY_LEN(ary); /* Array length */
+ RETURN_SIZED_ENUMERATOR(ary, 1, &num, rb_ary_repeated_permutation_size); /* Return Enumerator if no block */
+ r = NUM2LONG(num); /* Permutation size from argument */
+
+ if (r < 0) {
+ /* no permutations: yield nothing */
+ }
+ else if (r == 0) { /* exactly one permutation: the zero-length array */
+ rb_yield(rb_ary_new2(0));
+ }
+ else if (r == 1) { /* this is a special, easy case */
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
+ }
+ }
+ else { /* this is the general case */
+ 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, 0, ary0); /* compute and yield repeated permutations */
+ tmpbuf_discard(t0);
+ RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
+ }
+ return ary;
+}
+
+static void
+rcombinate0(long n, long r, long *p, long index, long rest, VALUE values)
+{
+ long j;
+ if (rest > 0) {
+ for (; index < n; ++index) {
+ p[r-rest] = index;
+ rcombinate0(n, r, p, index, rest-1, values);
+ }
+ }
+ else {
+ VALUE result = rb_ary_new2(r);
+ VALUE *result_array = RARRAY_PTR(result);
+ const VALUE *values_array = RARRAY_PTR(values);
+
+ for (j = 0; j < r; ++j) result_array[j] = values_array[p[j]];
+ ARY_SET_LEN(result, r);
+ rb_yield(result);
+ if (RBASIC(values)->klass) {
+ rb_raise(rb_eRuntimeError, "repeated combination reentered");
+ }
+ }
+}
+
+static VALUE
+rb_ary_repeated_combination_size(VALUE ary, VALUE args, VALUE eobj)
+{
+ long n = RARRAY_LEN(ary);
+ long k = NUM2LONG(RARRAY_AREF(args, 0));
+ if (k == 0) {
+ return LONG2FIX(1);
+ }
+ return binomial_coefficient(k, n + k - 1);
+}
+
+/*
+ * call-seq:
+ * ary.repeated_combination(n) { |c| block } -> ary
+ * ary.repeated_combination(n) -> Enumerator
+ *
+ * When invoked with a block, yields all repeated combinations of length +n+ of
+ * elements from the array and then returns the array itself.
+ *
+ * The implementation makes no guarantees about the order in which the repeated
+ * combinations are yielded.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * Examples:
+ *
+ * a = [1, 2, 3]
+ * a.repeated_combination(1).to_a #=> [[1], [2], [3]]
+ * a.repeated_combination(2).to_a #=> [[1,1],[1,2],[1,3],[2,2],[2,3],[3,3]]
+ * a.repeated_combination(3).to_a #=> [[1,1,1],[1,1,2],[1,1,3],[1,2,2],[1,2,3],
+ * # [1,3,3],[2,2,2],[2,2,3],[2,3,3],[3,3,3]]
+ * a.repeated_combination(4).to_a #=> [[1,1,1,1],[1,1,1,2],[1,1,1,3],[1,1,2,2],[1,1,2,3],
+ * # [1,1,3,3],[1,2,2,2],[1,2,2,3],[1,2,3,3],[1,3,3,3],
+ * # [2,2,2,2],[2,2,2,3],[2,2,3,3],[2,3,3,3],[3,3,3,3]]
+ * a.repeated_combination(0).to_a #=> [[]] # one combination of length 0
+ *
+ */
+
+static VALUE
+rb_ary_repeated_combination(VALUE ary, VALUE num)
+{
+ long n, i, len;
+
+ n = NUM2LONG(num); /* Combination size from argument */
+ RETURN_SIZED_ENUMERATOR(ary, 1, &num, rb_ary_repeated_combination_size); /* Return enumerator if no block */
+ len = RARRAY_LEN(ary);
+ if (n < 0) {
+ /* yield nothing */
+ }
+ else if (n == 0) {
+ rb_yield(rb_ary_new2(0));
+ }
+ else if (n == 1) {
+ for (i = 0; i < len; i++) {
+ rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
+ }
+ }
+ else if (len == 0) {
+ /* yield nothing */
+ }
+ else {
+ 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, 0, n, ary0); /* compute and yield repeated combinations */
+ tmpbuf_discard(t0);
+ RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
+ }
return ary;
}
+/*
+ * call-seq:
+ * ary.product(other_ary, ...) -> new_ary
+ * ary.product(other_ary, ...) { |p| block } -> ary
+ *
+ * Returns an array of all combinations of elements from all arrays.
+ *
+ * The length of the returned array is the product of the length of +self+ and
+ * the argument arrays.
+ *
+ * If given a block, #product will yield all combinations and return +self+
+ * instead.
+ *
+ * [1,2,3].product([4,5]) #=> [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]
+ * [1,2].product([1,2]) #=> [[1,1],[1,2],[2,1],[2,2]]
+ * [1,2].product([3,4],[5,6]) #=> [[1,3,5],[1,3,6],[1,4,5],[1,4,6],
+ * # [2,3,5],[2,3,6],[2,4,5],[2,4,6]]
+ * [1,2].product() #=> [[1],[2]]
+ * [1,2].product([]) #=> []
+ */
+
+static VALUE
+rb_ary_product(int argc, VALUE *argv, VALUE ary)
+{
+ int n = argc+1; /* How many arrays we're operating on */
+ volatile VALUE t0 = tmpary(n);
+ volatile VALUE t1 = tmpbuf(n, sizeof(int));
+ VALUE *arrays = RARRAY_PTR(t0); /* The arrays we're computing the product of */
+ int *counters = (int*)RSTRING_PTR(t1); /* The current position in each one */
+ VALUE result = Qnil; /* The array we'll be returning, when no block given */
+ long i,j;
+ long resultlen = 1;
+
+ RBASIC_CLEAR_CLASS(t0);
+ RBASIC_CLEAR_CLASS(t1);
+
+ /* initialize the arrays of arrays */
+ ARY_SET_LEN(t0, n);
+ arrays[0] = ary;
+ for (i = 1; i < n; i++) arrays[i] = Qnil;
+ for (i = 1; i < n; i++) arrays[i] = to_ary(argv[i-1]);
+
+ /* initialize the counters for the arrays */
+ for (i = 0; i < n; i++) counters[i] = 0;
+
+ /* Otherwise, allocate and fill in an array of results */
+ if (rb_block_given_p()) {
+ /* Make defensive copies of arrays; exit if any is empty */
+ for (i = 0; i < n; i++) {
+ if (RARRAY_LEN(arrays[i]) == 0) goto done;
+ arrays[i] = ary_make_shared_copy(arrays[i]);
+ }
+ }
+ else {
+ /* Compute the length of the result array; return [] if any is empty */
+ for (i = 0; i < n; i++) {
+ long k = RARRAY_LEN(arrays[i]);
+ if (k == 0) {
+ result = rb_ary_new2(0);
+ goto done;
+ }
+ if (MUL_OVERFLOW_LONG_P(resultlen, k))
+ rb_raise(rb_eRangeError, "too big to product");
+ resultlen *= k;
+ }
+ result = rb_ary_new2(resultlen);
+ }
+ for (;;) {
+ int m;
+ /* fill in one subarray */
+ VALUE subarray = rb_ary_new2(n);
+ for (j = 0; j < n; j++) {
+ rb_ary_push(subarray, rb_ary_entry(arrays[j], counters[j]));
+ }
-/* Arrays are ordered, integer-indexed collections of any object.
- * Array indexing starts at 0, as in C or Java. A negative index is
- * assumed to be relative to the end of the array---that is, an index of -1
- * indicates the last element of the array, -2 is the next to last
- * element in the array, and so on.
+ /* put it on the result array */
+ if (NIL_P(result)) {
+ FL_SET(t0, FL_USER5);
+ rb_yield(subarray);
+ if (! FL_TEST(t0, FL_USER5)) {
+ rb_raise(rb_eRuntimeError, "product reentered");
+ }
+ else {
+ FL_UNSET(t0, FL_USER5);
+ }
+ }
+ else {
+ rb_ary_push(result, subarray);
+ }
+
+ /*
+ * Increment the last counter. If it overflows, reset to 0
+ * and increment the one before it.
+ */
+ m = n-1;
+ counters[m]++;
+ while (counters[m] == RARRAY_LEN(arrays[m])) {
+ counters[m] = 0;
+ /* If the first counter overflows, we are done */
+ if (--m < 0) goto done;
+ counters[m]++;
+ }
+ }
+done:
+ tmpary_discard(t0);
+ tmpbuf_discard(t1);
+
+ return NIL_P(result) ? ary : result;
+}
+
+/*
+ * call-seq:
+ * ary.take(n) -> new_ary
+ *
+ * Returns first +n+ elements from the array.
+ *
+ * If a negative number is given, raises an ArgumentError.
+ *
+ * See also Array#drop
+ *
+ * a = [1, 2, 3, 4, 5, 0]
+ * a.take(3) #=> [1, 2, 3]
+ *
+ */
+
+static VALUE
+rb_ary_take(VALUE obj, VALUE n)
+{
+ long len = NUM2LONG(n);
+ if (len < 0) {
+ rb_raise(rb_eArgError, "attempt to take negative size");
+ }
+ return rb_ary_subseq(obj, 0, len);
+}
+
+/*
+ * call-seq:
+ * ary.take_while { |arr| block } -> new_ary
+ * ary.take_while -> Enumerator
+ *
+ * Passes elements to the block until the block returns +nil+ or +false+, then
+ * stops iterating and returns an array of all prior elements.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * See also Array#drop_while
+ *
+ * a = [1, 2, 3, 4, 5, 0]
+ * a.take_while { |i| i < 3 } #=> [1, 2]
+ *
+ */
+
+static VALUE
+rb_ary_take_while(VALUE ary)
+{
+ long i;
+
+ RETURN_ENUMERATOR(ary, 0, 0);
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;
+ }
+ return rb_ary_take(ary, LONG2FIX(i));
+}
+
+/*
+ * call-seq:
+ * ary.drop(n) -> new_ary
+ *
+ * Drops first +n+ elements from +ary+ and returns the rest of the elements in
+ * an array.
+ *
+ * If a negative number is given, raises an ArgumentError.
+ *
+ * See also Array#take
+ *
+ * a = [1, 2, 3, 4, 5, 0]
+ * a.drop(3) #=> [4, 5, 0]
+ *
+ */
+
+static VALUE
+rb_ary_drop(VALUE ary, VALUE n)
+{
+ VALUE result;
+ long pos = NUM2LONG(n);
+ if (pos < 0) {
+ rb_raise(rb_eArgError, "attempt to drop negative size");
+ }
+
+ result = rb_ary_subseq(ary, pos, RARRAY_LEN(ary));
+ if (result == Qnil) result = rb_ary_new();
+ return result;
+}
+
+/*
+ * call-seq:
+ * ary.drop_while { |arr| block } -> new_ary
+ * ary.drop_while -> Enumerator
+ *
+ * Drops elements up to, but not including, the first element for which the
+ * block returns +nil+ or +false+ and returns an array containing the
+ * remaining elements.
+ *
+ * If no block is given, an Enumerator is returned instead.
+ *
+ * See also Array#take_while
+ *
+ * a = [1, 2, 3, 4, 5, 0]
+ * a.drop_while {|i| i < 3 } #=> [3, 4, 5, 0]
+ *
+ */
+
+static VALUE
+rb_ary_drop_while(VALUE ary)
+{
+ long i;
+
+ RETURN_ENUMERATOR(ary, 0, 0);
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
+ if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;
+ }
+ return rb_ary_drop(ary, LONG2FIX(i));
+}
+
+/*
+ * Arrays are ordered, integer-indexed collections of any object.
+ *
+ * Array indexing starts at 0, as in C or Java. A negative index is assumed
+ * to be relative to the end of the array---that is, an index of -1 indicates
+ * the last element of the array, -2 is the next to last element in the
+ * array, and so on.
+ *
+ * == Creating Arrays
+ *
+ * A new array can be created by using the literal constructor
+ * <code>[]</code>. Arrays can contain different types of objects. For
+ * example, the array below contains an Integer, a String and a Float:
+ *
+ * ary = [1, "two", 3.0] #=> [1, "two", 3.0]
+ *
+ * An array can also be created by explicitly calling Array.new with zero, one
+ * (the initial size of the Array) or two arguments (the initial size and a
+ * default object).
+ *
+ * ary = Array.new #=> []
+ * Array.new(3) #=> [nil, nil, nil]
+ * Array.new(3, true) #=> [true, true, true]
+ *
+ * Note that the second argument populates the array with references to the
+ * same object. Therefore, it is only recommended in cases when you need to
+ * instantiate arrays with natively immutable objects such as Symbols,
+ * numbers, true or false.
+ *
+ * To create an array with separate objects a block can be passed instead.
+ * This method is safe to use with mutable objects such as hashes, strings or
+ * other arrays:
+ *
+ * Array.new(4) { Hash.new } #=> [{}, {}, {}, {}]
+ *
+ * This is also a quick way to build up multi-dimensional arrays:
+ *
+ * empty_table = Array.new(3) { Array.new(3) }
+ * #=> [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]
+ *
+ * An array can also be created by using the Array() method, provided by
+ * Kernel, which tries to call #to_ary, then #to_a on its argument.
+ *
+ * Array({:a => "a", :b => "b"}) #=> [[:a, "a"], [:b, "b"]]
+ *
+ * == Example Usage
+ *
+ * In addition to the methods it mixes in through the Enumerable module, the
+ * Array class has proprietary methods for accessing, searching and otherwise
+ * manipulating arrays.
+ *
+ * Some of the more common ones are illustrated below.
+ *
+ * == Accessing Elements
+ *
+ * Elements in an array can be retrieved using the Array#[] method. It can
+ * take a single integer argument (a numeric index), a pair of arguments
+ * (start and length) or a range. Negative indices start counting from the end,
+ * with -1 being the last element.
+ *
+ * arr = [1, 2, 3, 4, 5, 6]
+ * arr[2] #=> 3
+ * arr[100] #=> nil
+ * arr[-3] #=> 4
+ * arr[2, 3] #=> [3, 4, 5]
+ * arr[1..4] #=> [2, 3, 4, 5]
+ * arr[1..-3] #=> [2, 3, 4]
+ *
+ * Another way to access a particular array element is by using the #at method
+ *
+ * arr.at(0) #=> 1
+ *
+ * The #slice method works in an identical manner to Array#[].
+ *
+ * To raise an error for indices outside of the array bounds or else to
+ * provide a default value when that happens, you can use #fetch.
+ *
+ * arr = ['a', 'b', 'c', 'd', 'e', 'f']
+ * arr.fetch(100) #=> IndexError: index 100 outside of array bounds: -6...6
+ * arr.fetch(100, "oops") #=> "oops"
+ *
+ * The special methods #first and #last will return the first and last
+ * elements of an array, respectively.
+ *
+ * arr.first #=> 1
+ * arr.last #=> 6
+ *
+ * To return the first +n+ elements of an array, use #take
+ *
+ * arr.take(3) #=> [1, 2, 3]
+ *
+ * #drop does the opposite of #take, by returning the elements after +n+
+ * elements have been dropped:
+ *
+ * arr.drop(3) #=> [4, 5, 6]
+ *
+ * == Obtaining Information about an Array
+ *
+ * Arrays keep track of their own length at all times. To query an array
+ * about the number of elements it contains, use #length, #count or #size.
+ *
+ * browsers = ['Chrome', 'Firefox', 'Safari', 'Opera', 'IE']
+ * browsers.length #=> 5
+ * browsers.count #=> 5
+ *
+ * To check whether an array contains any elements at all
+ *
+ * browsers.empty? #=> false
+ *
+ * To check whether a particular item is included in the array
+ *
+ * browsers.include?('Konqueror') #=> false
+ *
+ * == Adding Items to Arrays
+ *
+ * Items can be added to the end of an array by using either #push or #<<
+ *
+ * arr = [1, 2, 3, 4]
+ * arr.push(5) #=> [1, 2, 3, 4, 5]
+ * arr << 6 #=> [1, 2, 3, 4, 5, 6]
+ *
+ * #unshift will add a new item to the beginning of an array.
+ *
+ * arr.unshift(0) #=> [0, 1, 2, 3, 4, 5, 6]
+ *
+ * With #insert you can add a new element to an array at any position.
+ *
+ * arr.insert(3, 'apple') #=> [0, 1, 2, 'apple', 3, 4, 5, 6]
+ *
+ * Using the #insert method, you can also insert multiple values at once:
+ *
+ * arr.insert(3, 'orange', 'pear', 'grapefruit')
+ * #=> [0, 1, 2, "orange", "pear", "grapefruit", "apple", 3, 4, 5, 6]
+ *
+ * == Removing Items from an Array
+ *
+ * The method #pop removes the last element in an array and returns it:
+ *
+ * arr = [1, 2, 3, 4, 5, 6]
+ * arr.pop #=> 6
+ * arr #=> [1, 2, 3, 4, 5]
+ *
+ * To retrieve and at the same time remove the first item, use #shift:
+ *
+ * arr.shift #=> 1
+ * arr #=> [2, 3, 4, 5]
+ *
+ * To delete an element at a particular index:
+ *
+ * arr.delete_at(2) #=> 4
+ * arr #=> [2, 3, 5]
+ *
+ * To delete a particular element anywhere in an array, use #delete:
+ *
+ * arr = [1, 2, 2, 3]
+ * arr.delete(2) #=> 2
+ * arr #=> [1,3]
+ *
+ * A useful method if you need to remove +nil+ values from an array is
+ * #compact:
+ *
+ * arr = ['foo', 0, nil, 'bar', 7, 'baz', nil]
+ * arr.compact #=> ['foo', 0, 'bar', 7, 'baz']
+ * arr #=> ['foo', 0, nil, 'bar', 7, 'baz', nil]
+ * arr.compact! #=> ['foo', 0, 'bar', 7, 'baz']
+ * arr #=> ['foo', 0, 'bar', 7, 'baz']
+ *
+ * Another common need is to remove duplicate elements from an array.
+ *
+ * It has the non-destructive #uniq, and destructive method #uniq!
+ *
+ * arr = [2, 5, 6, 556, 6, 6, 8, 9, 0, 123, 556]
+ * arr.uniq #=> [2, 5, 6, 556, 8, 9, 0, 123]
+ *
+ * == Iterating over Arrays
+ *
+ * Like all classes that include the Enumerable module, Array has an each
+ * method, which defines what elements should be iterated over and how. In
+ * case of Array's #each, all elements in the Array instance are yielded to
+ * the supplied block in sequence.
+ *
+ * Note that this operation leaves the array unchanged.
+ *
+ * arr = [1, 2, 3, 4, 5]
+ * arr.each { |a| print a -= 10, " " }
+ * # prints: -9 -8 -7 -6 -5
+ * #=> [1, 2, 3, 4, 5]
+ *
+ * Another sometimes useful iterator is #reverse_each which will iterate over
+ * the elements in the array in reverse order.
+ *
+ * words = %w[first second third fourth fifth sixth]
+ * str = ""
+ * words.reverse_each { |word| str += "#{word} " }
+ * p str #=> "sixth fifth fourth third second first "
+ *
+ * The #map method can be used to create a new array based on the original
+ * array, but with the values modified by the supplied block:
+ *
+ * arr.map { |a| 2*a } #=> [2, 4, 6, 8, 10]
+ * arr #=> [1, 2, 3, 4, 5]
+ * arr.map! { |a| a**2 } #=> [1, 4, 9, 16, 25]
+ * arr #=> [1, 4, 9, 16, 25]
+ *
+ * == Selecting Items from an Array
+ *
+ * Elements can be selected from an array according to criteria defined in a
+ * block. The selection can happen in a destructive or a non-destructive
+ * manner. While the destructive operations will modify the array they were
+ * called on, the non-destructive methods usually return a new array with the
+ * selected elements, but leave the original array unchanged.
+ *
+ * === Non-destructive Selection
+ *
+ * arr = [1, 2, 3, 4, 5, 6]
+ * arr.select { |a| a > 3 } #=> [4, 5, 6]
+ * arr.reject { |a| a < 3 } #=> [3, 4, 5, 6]
+ * arr.drop_while { |a| a < 4 } #=> [4, 5, 6]
+ * arr #=> [1, 2, 3, 4, 5, 6]
+ *
+ * === Destructive Selection
+ *
+ * #select! and #reject! are the corresponding destructive methods to #select
+ * and #reject
+ *
+ * Similar to #select vs. #reject, #delete_if and #keep_if have the exact
+ * opposite result when supplied with the same block:
+ *
+ * arr.delete_if { |a| a < 4 } #=> [4, 5, 6]
+ * arr #=> [4, 5, 6]
+ *
+ * arr = [1, 2, 3, 4, 5, 6]
+ * arr.keep_if { |a| a < 4 } #=> [1, 2, 3]
+ * arr #=> [1, 2, 3]
+ *
*/
void
-Init_Array()
+Init_Array(void)
{
+#undef rb_intern
+#define rb_intern(str) rb_intern_const(str)
+
rb_cArray = rb_define_class("Array", rb_cObject);
rb_include_module(rb_cArray, rb_mEnumerable);
- rb_define_alloc_func(rb_cArray, ary_alloc);
+ rb_define_alloc_func(rb_cArray, empty_ary_alloc);
rb_define_singleton_method(rb_cArray, "[]", rb_ary_s_create, -1);
+ rb_define_singleton_method(rb_cArray, "try_convert", rb_ary_s_try_convert, 1);
rb_define_method(rb_cArray, "initialize", rb_ary_initialize, -1);
rb_define_method(rb_cArray, "initialize_copy", rb_ary_replace, 1);
- rb_define_method(rb_cArray, "to_s", rb_ary_to_s, 0);
rb_define_method(rb_cArray, "inspect", rb_ary_inspect, 0);
+ rb_define_alias(rb_cArray, "to_s", "inspect");
rb_define_method(rb_cArray, "to_a", rb_ary_to_a, 0);
+ rb_define_method(rb_cArray, "to_h", rb_ary_to_h, 0);
rb_define_method(rb_cArray, "to_ary", rb_ary_to_ary_m, 0);
rb_define_method(rb_cArray, "frozen?", rb_ary_frozen_p, 0);
@@ -3055,8 +5619,8 @@ Init_Array()
rb_define_method(rb_cArray, "concat", rb_ary_concat, 1);
rb_define_method(rb_cArray, "<<", rb_ary_push, 1);
rb_define_method(rb_cArray, "push", rb_ary_push_m, -1);
- rb_define_method(rb_cArray, "pop", rb_ary_pop, 0);
- rb_define_method(rb_cArray, "shift", rb_ary_shift, 0);
+ rb_define_method(rb_cArray, "pop", rb_ary_pop_m, -1);
+ rb_define_method(rb_cArray, "shift", rb_ary_shift_m, -1);
rb_define_method(rb_cArray, "unshift", rb_ary_unshift_m, -1);
rb_define_method(rb_cArray, "insert", rb_ary_insert, -1);
rb_define_method(rb_cArray, "each", rb_ary_each, 0);
@@ -3065,20 +5629,24 @@ Init_Array()
rb_define_method(rb_cArray, "length", rb_ary_length, 0);
rb_define_alias(rb_cArray, "size", "length");
rb_define_method(rb_cArray, "empty?", rb_ary_empty_p, 0);
- rb_define_method(rb_cArray, "index", rb_ary_index, 1);
- rb_define_method(rb_cArray, "rindex", rb_ary_rindex, 1);
- rb_define_method(rb_cArray, "indexes", rb_ary_indexes, -1);
- rb_define_method(rb_cArray, "indices", rb_ary_indexes, -1);
+ rb_define_method(rb_cArray, "find_index", rb_ary_index, -1);
+ rb_define_method(rb_cArray, "index", rb_ary_index, -1);
+ rb_define_method(rb_cArray, "rindex", rb_ary_rindex, -1);
rb_define_method(rb_cArray, "join", rb_ary_join_m, -1);
rb_define_method(rb_cArray, "reverse", rb_ary_reverse_m, 0);
rb_define_method(rb_cArray, "reverse!", rb_ary_reverse_bang, 0);
+ rb_define_method(rb_cArray, "rotate", rb_ary_rotate_m, -1);
+ rb_define_method(rb_cArray, "rotate!", rb_ary_rotate_bang, -1);
rb_define_method(rb_cArray, "sort", rb_ary_sort, 0);
rb_define_method(rb_cArray, "sort!", rb_ary_sort_bang, 0);
+ rb_define_method(rb_cArray, "sort_by!", rb_ary_sort_by_bang, 0);
rb_define_method(rb_cArray, "collect", rb_ary_collect, 0);
rb_define_method(rb_cArray, "collect!", rb_ary_collect_bang, 0);
rb_define_method(rb_cArray, "map", rb_ary_collect, 0);
rb_define_method(rb_cArray, "map!", rb_ary_collect_bang, 0);
rb_define_method(rb_cArray, "select", rb_ary_select, 0);
+ rb_define_method(rb_cArray, "select!", rb_ary_select_bang, 0);
+ rb_define_method(rb_cArray, "keep_if", rb_ary_keep_if, 0);
rb_define_method(rb_cArray, "values_at", rb_ary_values_at, -1);
rb_define_method(rb_cArray, "delete", rb_ary_delete, 1);
rb_define_method(rb_cArray, "delete_at", rb_ary_delete_at_m, 1);
@@ -3110,10 +5678,27 @@ Init_Array()
rb_define_method(rb_cArray, "uniq!", rb_ary_uniq_bang, 0);
rb_define_method(rb_cArray, "compact", rb_ary_compact, 0);
rb_define_method(rb_cArray, "compact!", rb_ary_compact_bang, 0);
- rb_define_method(rb_cArray, "flatten", rb_ary_flatten, 0);
- rb_define_method(rb_cArray, "flatten!", rb_ary_flatten_bang, 0);
- rb_define_method(rb_cArray, "nitems", rb_ary_nitems, 0);
+ rb_define_method(rb_cArray, "flatten", rb_ary_flatten, -1);
+ rb_define_method(rb_cArray, "flatten!", rb_ary_flatten_bang, -1);
+ rb_define_method(rb_cArray, "count", rb_ary_count, -1);
+ rb_define_method(rb_cArray, "shuffle!", rb_ary_shuffle_bang, -1);
+ rb_define_method(rb_cArray, "shuffle", rb_ary_shuffle, -1);
+ rb_define_method(rb_cArray, "sample", rb_ary_sample, -1);
+ rb_define_method(rb_cArray, "cycle", rb_ary_cycle, -1);
+ rb_define_method(rb_cArray, "permutation", rb_ary_permutation, -1);
+ rb_define_method(rb_cArray, "combination", rb_ary_combination, 1);
+ rb_define_method(rb_cArray, "repeated_permutation", rb_ary_repeated_permutation, 1);
+ rb_define_method(rb_cArray, "repeated_combination", rb_ary_repeated_combination, 1);
+ rb_define_method(rb_cArray, "product", rb_ary_product, -1);
+
+ rb_define_method(rb_cArray, "take", rb_ary_take, 1);
+ rb_define_method(rb_cArray, "take_while", rb_ary_take_while, 0);
+ 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);
id_cmp = rb_intern("<=>");
- inspect_key = rb_intern("__inspect_key__");
+ sym_random = ID2SYM(rb_intern("random"));
+ id_div = rb_intern("div");
+ id_power = rb_intern("**");
}
diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub
deleted file mode 100644
index b5546104d0..0000000000
--- a/bcc32/Makefile.sub
+++ /dev/null
@@ -1,499 +0,0 @@
-# -*- makefile -*-
-
-SHELL = $(COMSPEC)
-MKFILES = Makefile
-
-#### Start of system configuration section. ####
-OS = bccwin32
-RT = $(OS)
-
-## variables may be overridden by $(compile_dir)/Makefile
-!ifndef srcdir
-srcdir = ..
-!endif
-!ifndef RUBY_INSTALL_NAME
-RUBY_INSTALL_NAME = ruby
-!endif
-!ifndef RUBYW_INSTALL_NAME
-RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)
-!elif "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"
-RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)
-!endif
-!if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"
-RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w
-!endif
-!ifndef RUBY_SO_NAME
-RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)
-!endif
-!ifndef icondirs
-!ifdef ICONDIRS
-icondirs=$(ICONDIRS)
-!endif
-!endif
-!ifdef icondirs
-icondirs=$(icondirs:\=/)
-iconinc=-I$(icondirs: = -I)
-!endif
-###############
-
-VPATH = $(srcdir):$(srcdir)/missing
-.SUFFIXES: .y
-
-!ifndef CC
-CC = bcc32
-!endif
-!ifndef CPP
-CPP = cpp32
-!endif
-!ifndef RC
-RC = brcc32
-!endif
-!ifndef YACC
-YACC = byacc
-!endif
-!ifndef AR
-AR = tlib
-!endif
-
-PURIFY =
-AUTOCONF = autoconf
-RM = $(srcdir:/=\)\win32\rm.bat
-
-!if !defined(PROCESSOR_ARCHITECTURE)
-PROCESSOR_ARCHITECTURE = x86
-!endif
-MACHINE = $(PROCESSOR_ARCHITECTURE)
-!if "$(PROCESSOR_ARCHITECTURE)" == "x86"
-!ifndef PROCESSOR_LEVEL
-PROCESSOR_LEVEL = 5
-!endif
-!if 6 < $(PROCESSOR_LEVEL)
-PROCESSOR_LEVEL = 6
-!endif
-PROCESSOR_FLAG = -$(PROCESSOR_LEVEL)
-CPU = i$(PROCESSOR_LEVEL)86
-ARCH = i386
-!else
-CPU = $(PROCESSOR_ARCHITECTURE)
-ARCH = $(PROCESSOR_ARCHITECTURE)
-!endif
-!ifndef DEBUGFLAGS
-DEBUGFLAGS =
-!endif
-!ifndef OPTFLAGS
-OPTFLAGS = -O
-!endif
-
-!ifndef prefix
-prefix = /usr
-!endif
-!ifndef exec_prefix
-exec_prefix = $(prefix)
-!endif
-!ifndef libdir
-libdir = $(exec_prefix)/lib
-!endif
-!if !defined(datadir)
-datadir = /share
-!endif
-!ifndef EXTOUT
-EXTOUT = .ext
-!endif
-!ifndef RIDATADIR
-RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system
-!endif
-!ifndef TESTUI
-TESTUI = console
-!endif
-!ifndef TESTS
-TESTS =
-!endif
-!ifndef RDOCTARGET
-RDOCTARGET = install-nodoc
-!endif
-
-OUTFLAG = -o
-!ifndef CFLAGS
-CFLAGS = -q -tWR -tWC $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi
-!endif
-!ifndef LDFLAGS
-LDFLAGS = -S:$(STACK)
-!endif
-!ifndef RFLAGS
-RFLAGS = $(iconinc)
-!endif
-!ifndef EXTLIBS
-EXTLIBS =
-!endif
-!ifndef MEMLIB
-MEMLIB =
-!endif
-LIBS = $(MEMLIB) cw32i.lib import32.lib ws2_32.lib $(EXTLIBS)
-MISSING = acosh.obj crypt.obj erf.obj win32.obj
-
-!ifndef STACK
-STACK = 0x2000000
-!endif
-
-XCFLAGS = -DRUBY_EXPORT -I. -I$(srcdir) -I$(srcdir)/missing
-
-ARFLAGS = /a
-LD = ilink32 -q -Gn
-LDSHARED = $(LD)
-XLDFLAGS = -Tpe c0x32.obj
-WLDFLAGS = -aa -Tpe c0w32.obj
-DLDFLAGS = -Tpd c0d32.obj
-LIBRUBY_LDSHARED = $(LDSHARED)
-LIBRUBY_DLDFLAGS = -Gi $(DLDFLAGS) $(EXTLDFLAGS)
-LDOBJECTS = $(MAINOBJ)
-
-SOLIBS =
-
-EXEEXT = .exe
-PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
-WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT)
-RUBYDEF = $(RUBY_SO_NAME).def
-MINIRUBY = .\miniruby$(EXEEXT) $(MINIRUBYOPT)
-RUNRUBY = .\ruby$(EXEEXT) "$(srcdir)/runruby.rb" --extout="$(EXTOUT)" --
-
-ORGLIBPATH = $(LIB)
-
-#### End of system configuration section. ####
-
-LIBRUBY_A = $(RUBY_SO_NAME)-static.lib
-LIBRUBY_SO = $(RUBY_SO_NAME).dll
-LIBRUBY = $(RUBY_SO_NAME).lib
-LIBRUBYARG = $(LIBRUBY)
-
-PREP = miniruby$(EXEEXT)
-
-OBJEXT = obj
-
-INSTALLED_LIST= .installed.list
-
-WINMAINOBJ = winmain.$(OBJEXT)
-MINIOBJS = dmydln.$(OBJEXT)
-
-.path.c = .;$(srcdir);$(srcdir)/win32;$(srcdir)/missing
-.path.h = .;$(srcdir);$(srcdir)/win32;$(srcdir)/missing
-.path.y = $(srcdir)
-.path. = $(srcdir)
-
-.c.obj:
- $(CC) $(CFLAGS) $(XCFLAGS) -I. $(CPPFLAGS) -c $(<:/=\)
-
-.rc.res:
- $(RC) $(RFLAGS) -I. -I$(<D). $(iconinc) -I$(srcdir)/win32 $(RFLAGS) -fo$@ $(<:/=\)
-
-.y.c:
- $(YACC) $(YFLAGS) $(<:\=/)
- sed -e "s!^ *extern char \*getenv();!/* & */!;s/^\(#.*\)y\.tab/\1parse/" y.tab.c > $(@F)
- @del y.tab.c
-
-all: $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk
-
-ruby: $(PROGRAM)
-rubyw: $(WPROGRAM)
-
-!include $(srcdir)/common.mk
-
-PHONY: Makefile
-
-CONFIG_H = ./.config.h.time
-
-config: config.status
-
-config.status: $(CONFIG_H)
-
-$(CONFIG_H): $(MKFILES) $(srcdir)/bcc32/Makefile.sub
- @$(srcdir:/=\)\win32\ifchange.bat config.h &&|
-\#define HAVE_SYS_TYPES_H 1
-\#define HAVE_SYS_STAT_H 1
-\#define HAVE_STDLIB_H 1
-\#define HAVE_STRING_H 1
-\#define HAVE_MEMORY_H 1
-\#define HAVE_OFF_T 1
-\#define SIZEOF_INT 4
-\#define SIZEOF_SHORT 2
-\#define SIZEOF_LONG 4
-\#define SIZEOF_LONG_LONG 0
-\#define SIZEOF___INT64 8
-\#define SIZEOF_OFF_T 4
-\#define SIZEOF_VOIDP 4
-\#define SIZEOF_FLOAT 4
-\#define SIZEOF_DOUBLE 8
-\#define SIZEOF_TIME_T 4
-\#define HAVE_PROTOTYPES 1
-\#define TOKEN_PASTE(x,y) x\#\#y
-\#define HAVE_STDARG_PROTOTYPES 1
-\#define NORETURN(x) x
-\#define RUBY_EXTERN extern __declspec(dllimport)
-\#define HAVE_DECL_SYS_NERR 1
-\#define HAVE_LIMITS_H 1
-\#define HAVE_FCNTL_H 1
-\#define HAVE_UTIME_H 1
-\#define HAVE_FLOAT_H 1
-\#define rb_uid_t uid_t
-\#define rb_gid_t gid_t
-\#define rb_pid_t int
-\#define HAVE_STRUCT_STAT_ST_RDEV 1
-\#define HAVE_ST_RDEV 1
-\#define GETGROUPS_T int
-\#define RETSIGTYPE void
-\#define HAVE_ALLOCA 1
-\#define HAVE_DUP2 1
-\#define HAVE_MEMMOVE 1
-\#define HAVE_MKDIR 1
-\#define HAVE_STRCASECMP 1
-\#define HAVE_STRNCASECMP 1
-\#define HAVE_STRERROR 1
-\#define HAVE_STRFTIME 1
-\#define HAVE_STRCHR 1
-\#define HAVE_STRSTR 1
-\#define HAVE_STRTOD 1
-\#define HAVE_STRTOL 1
-\#define HAVE_STRTOUL 1
-\#define HAVE_ISNAN 1
-\#define HAVE_FINITE 1
-\#define HAVE_HYPOT 1
-\#define HAVE_FMOD 1
-\#define HAVE_WAITPID 1
-\#define HAVE_FSYNC 1
-\#define HAVE_GETCWD 1
-\#define HAVE_CHSIZE 1
-\#define HAVE_TIMES 1
-\#define HAVE_FCNTL 1
-\#define HAVE_LINK 1
-\#define HAVE_TELLDIR 1
-\#define HAVE_SEEKDIR 1
-\#define HAVE_COSH 1
-\#define HAVE_SINH 1
-\#define HAVE_TANH 1
-\#define RSHIFT(x,y) ((x)>>(int)y)
-\#define FILE_COUNT level
-\#define FILE_READPTR curp
-\#define inline __inline
-\#define NEED_IO_SEEK_BETWEEN_RW 1
-\#define STACK_GROW_DIRECTION -1
-\#define DEFAULT_KCODE KCODE_NONE
-\#define DLEXT ".so"
-\#define RUBY_LIB "/lib/ruby/$(MAJOR).$(MINOR)"
-\#define RUBY_SITE_LIB "/lib/ruby/site_ruby"
-\#define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)"
-\#define RUBY_PLATFORM "$(ARCH)-$(OS)"
-\#define RUBY_ARCHLIB "/lib/ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"
-\#define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)"
-|
- @exit > $@
-
-config.status: $(MKFILES) $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk
- @echo Creating $@
- @type > $@ &&|
-# Generated automatically by Makefile.sub.
-s,@SHELL@,$$(COMSPEC),;t t
-s,@BUILD_FILE_SEPARATOR@,\,;t t
-s,@PATH_SEPARATOR@,;,;t t
-s,@CFLAGS@,$(CFLAGS),;t t
-s,@CPPFLAGS@,$(CPPFLAGS),;t t
-s,@CXXFLAGS@,$(CXXFLAGS),;t t
-s,@FFLAGS@,$(FFLAGS),;t t
-s,@LDFLAGS@,,;t t
-s,@LIBS@,$(LIBS),;t t
-s,@exec_prefix@,$${prefix},;t t
-s,@prefix@,,;t t
-s,@program_transform_name@,s,,,,;t t
-s,@bindir@,$${exec_prefix}/bin,;t t
-s,@sbindir@,$${exec_prefix}/sbin,;t t
-s,@libexecdir@,$${exec_prefix}/libexec,;t t
-s,@datadir@,$${prefix}/share,;t t
-s,@sysconfdir@,$${prefix}/etc,;t t
-s,@sharedstatedir@,/etc,;t t
-s,@localstatedir@,/var,;t t
-s,@libdir@,$${exec_prefix}/lib,;t t
-s,@includedir@,$${prefix}/include,;t t
-s,@oldincludedir@,/usr/include,;t t
-s,@infodir@,$${prefix}/info,;t t
-s,@mandir@,$${prefix}/man,;t t
-s,@build@,$(CPU)-pc-$(OS),;t t
-s,@build_alias@,$(CPU)-$(OS),;t t
-s,@build_cpu@,$(CPU),;t t
-s,@build_vendor@,pc,;t t
-s,@build_os@,$(OS),;t t
-s,@host@,$(CPU)-pc-$(OS),;t t
-s,@host_alias@,$(CPU)-$(OS),;t t
-s,@host_cpu@,$(CPU),;t t
-s,@host_vendor@,pc,;t t
-s,@host_os@,$(OS),;t t
-s,@target@,$(ARCH)-pc-$(OS),;t t
-s,@target_alias@,$(ARCH)-$(OS),;t t
-s,@target_cpu@,$(ARCH),;t t
-s,@target_vendor@,pc,;t t
-s,@target_os@,$(OS),;t t
-s,@CC@,$(CC),;t t
-s,@CPP@,cpp32,;t t
-s,@YACC@,$(YACC),;t t
-s,@RANLIB@,,;t t
-s,@AR@,$(AR),;t t
-s,@ARFLAGS@,$(ARFLAGS) ,;t t
-s,@LN_S@,$(LN_S),;t t
-s,@SET_MAKE@,$(SET_MAKE),;t t
-s,@CP@,copy > nul,;t t
-s,@LIBOBJS@, acosh.obj crypt.obj erf.obj win32.obj,;t t
-s,@ALLOCA@,$(ALLOCA),;t t
-s,@DEFAULT_KCODE@,$(DEFAULT_KCODE),;t t
-s,@EXEEXT@,.exe,;t t
-s,@OBJEXT@,obj,;t t
-s,@XCFLAGS@,$(XCFLAGS),;t t
-s,@XLDFLAGS@,$(XLDFLAGS),;t t
-s,@DLDFLAGS@,$(DLDFLAGS),;t t
-s,@ARCH_FLAG@,$(ARCH_FLAG),;t t
-s,@STATIC@,$(STATIC),;t t
-s,@CCDLFLAGS@,,;t t
-s,@LDSHARED@,$(LDSHARED),;t t
-s,@DLEXT@,so,;t t
-s,@LIBEXT@,lib,;t t
-s,@STRIP@,$(STRIP),;t t
-s,@EXTSTATIC@,$(EXTSTATIC),;t t
-s,@setup@,Setup,;t t
-s,@MINIRUBY@,$(MINIRUBY),;t t
-s,@PREP@,miniruby$(EXEEXT),;t t
-s,@RUNRUBY@,$(RUNRUBY),;t t
-s,@EXTOUT@,$(EXTOUT),;t t
-s,@ARCHFILE@,,;t t
-s,@RDOCTARGET@,,;t t
-s,@LIBRUBY_LDSHARED@,$$(LDSHARED),;t t
-s,@LIBRUBY_DLDFLAGS@,-Gi $$(DLDFLAGS),;t t
-s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t
-s,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t
-s,@RUBYW_INSTALL_NAME@,$(RUBYW_INSTALL_NAME),;t t
-s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t
-s,@LIBRUBY_A@,$$(RUBY_SO_NAME)-static.lib,;t t
-s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t
-s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t
-s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t
-s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t
-s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t
-s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t
-s,@SOLIBS@,$(SOLIBS),;t t
-s,@DLDLIBS@,$(DLDLIBS),;t t
-s,@ENABLE_SHARED@,yes,;t t
-s,@OUTFLAG@,$(OUTFLAG),;t t
-s,@CPPOUTFILE@,,;t t
-s,@LIBPATHFLAG@, -L"%s",;t t
-s,@RPATHFLAG@,,;t t
-s,@LIBARG@,%s.lib,;t t
-s,@LINK_SO@,$$(LDSHARED) $$(DLDFLAGS) $$(LIBPATH) $$(OBJS), $$(@:/=\), nul, $$(LIBS) $$(LOCAL_LIBS), $$(DEFFILE), $$(RESFILE),;t t
-s,@COMPILE_C@,$$(CC) $$(INCFLAGS) $$(CFLAGS) $$(CPPFLAGS) -c $$(<:/=\),;t t
-s,@COMPILE_CXX@,$$(CXX) $$(INCFLAGS) $$(CXXFLAGS) $$(CPPFLAGS) -P -c $$(<:/=\),;t t
-s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t
-s,@RULE_SUBST@,{.;$$(VPATH)}%s,;t t
-s,@COMMON_LIBS@,m advapi32 avicap32 avifil32 cap comctl32 comdlg32 dlcapi gdi32 glu32 imagehlp imm32 inetmib1 kernel32 loadperf lsapi32 lz32 mapi32 mgmtapi mpr msacm32 msvfw32 nddeapi netapi32 ole32 oleaut32 oledlg olepro32 opengl32 pdh pkpd32 rasapi32 rasdlg rassapi rpcrt4 setupapi shell32 shfolder snmpapi sporder tapi32 url user32 vdmdbg version win32spl winmm wintrust wsock32,;t t
-s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN WIN32,;t t
-s,@COMMON_HEADERS@,winsock2.h windows.h,;t t
-s,@TRY_LINK@,$$(CC) -oconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(LIBPATH) $$(LDFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS),;t t
-s,@EXPORT_PREFIX@,_,;t t
-s,@arch@,$(ARCH)-$(OS),;t t
-s,@sitearch@,$(ARCH)-$(OS),;t t
-s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t
-s,@configure_args@,--enable-shared $(configure_args),;t t
-s,@configure_input@,$$configure_input,;t t
-s,@srcdir@,$(srcdir),;t t
-s,@top_srcdir@,$(srcdir),;t t
-|
-
-miniruby$(EXEEXT):
- @echo $(LIBS)
- $(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(MINIOBJS),$@,nul,$(LIBRUBY_A) $(LIBS)
-
-$(PROGRAM): $(MAINOBJ) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res
- $(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBY_INSTALL_NAME).res
-
-$(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res
- $(LD) $(LDFLAGS) $(WLDFLAGS) $(MAINOBJ) $(WINMAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBYW_INSTALL_NAME).res
-
-$(LIBRUBY_A): $(OBJS) $(DMYEXT)
- @-if exist $@ del $@
- $(AR) $(ARFLAGS) "$@" $(OBJS) $(DMYEXT)
-
-# $(LIBRUBY): $(LIBRUBY_SO)
-# implib $@ $(LIBRUBY_SO)
-
-$(LIBRUBY_SO): $(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res
- @echo $(DLDOBJS)
- @$(PRE_LIBRUBY_UPDATE)
- $(LIBRUBY_LDSHARED) $(LIBRUBY_DLDFLAGS) $(DLDOBJS:/=\),$(LIBRUBY_SO),nul,$(LIBRUBY_A) $(LIBS),$(RUBYDEF),$(RUBY_SO_NAME).res
-
-$(LIBRUBY): $(LIBRUBY_SO)
-
-$(RUBYDEF): $(LIBRUBY_A) $(PREP)
- $(MINIRUBY) $(srcdir)/bcc32/mkexports.rb -output=$@ -base=$(RUBY_SO_NAME) $(LIBRUBY_A)
-
-$(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: rbconfig.rb
- @$(MINIRUBY) $(srcdir)/win32/resource.rb \
- -ruby_name=$(RUBY_INSTALL_NAME) \
- -rubyw_name=$(RUBYW_INSTALL_NAME) \
- -so_name=$(RUBY_SO_NAME) \
- . $(icondirs) $(srcdir)/win32
-
-post-install-bin::
- @$(NULLCMD)
-post-install-lib::
- @$(NULLCMD)
-post-install-ext-comm::
- @$(NULLCMD)
-post-install-ext-arch::
- @$(NULLCMD)
-post-install-man::
- @$(NULLCMD)
-post-install-doc::
- @$(NULLCMD)
-
-clean-local::
- @$(RM) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il? $(RUBY_SO_NAME).lib
- @$(RM) $(RUBY_INSTALL_NAME).res $(RUBYW_INSTALL_NAME).res $(RUBY_SO_NAME).res
-
-distclean-local::
- @$(RM) ext\config.cache $(RBCONFIG:/=\)
- @$(RM) *.map *.pdb *.ilk *.exp $(RUBYDEF)
- @$(RM) $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc
-
-ext/extinit.obj: ext/extinit.c $(SETUP)
- $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -o$@ -c ext/extinit.c
-
-main.$(OBJEXT): win32.h
-array.$(OBJEXT): win32.h
-bignum.$(OBJEXT): win32.h
-class.$(OBJEXT): win32.h
-compar.$(OBJEXT): win32.h
-dir.$(OBJEXT): dir.h win32.h
-dln.$(OBJEXT): win32.h
-enum.$(OBJEXT): win32.h
-error.$(OBJEXT): win32.h
-eval.$(OBJEXT): win32.h
-file.$(OBJEXT): win32.h
-gc.$(OBJEXT): win32.h
-hash.$(OBJEXT): win32.h
-inits.$(OBJEXT): win32.h
-io.$(OBJEXT): win32.h
-marshal.$(OBJEXT): win32.h
-math.$(OBJEXT): win32.h
-numeric.$(OBJEXT): win32.h
-object.$(OBJEXT): win32.h
-pack.$(OBJEXT): win32.h
-parse.$(OBJEXT): win32.h
-process.$(OBJEXT): win32.h
-prec.$(OBJEXT): win32.h
-random.$(OBJEXT): win32.h
-range.$(OBJEXT): win32.h
-re.$(OBJEXT): win32.h
-regex.$(OBJEXT): win32.h
-ruby.$(OBJEXT): win32.h
-signal.$(OBJEXT): win32.h
-sprintf.$(OBJEXT): win32.h
-st.$(OBJEXT): win32.h
-string.$(OBJEXT): win32.h
-struct.$(OBJEXT): win32.h
-time.$(OBJEXT): win32.h
-util.$(OBJEXT): win32.h
-variable.$(OBJEXT): win32.h
-version.$(OBJEXT): win32.h
diff --git a/bcc32/README.bcc32 b/bcc32/README.bcc32
deleted file mode 100644
index c27a1261f1..0000000000
--- a/bcc32/README.bcc32
+++ /dev/null
@@ -1,137 +0,0 @@
-=begin
-
-= How to build ruby using Borland C++
-
-== Requirement
-
-(1) Borland C++ 5.0 or later.
-
-(2) Please set environment variable (({PATH}))
- to run required commands properly from the command line.
-
- Note: building ruby requires following commands.
- * make
- * bcc32
- * tlib
- * ilink32
-
-(3) If you want to build from CVS source, following commands are required.
- * byacc ((<URL:http://gnuwin32.sourceforge.net/packages/byacc.htm>))
- * sed ((<URL:http://gnuwin32.sourceforge.net/packages/sed.htm>))
-
-(4) We strongly recommend to build ruby on C++Builder, to link following files.
- * usebormm.lib
- * memmgr.lib
-
- RTL's internal memory manager cannot handle large memory block properly,
- so we should use borlndmm.dll instead.
- 10000.times { "" << "." * 529671; GC.start } # crash
-
-== How to compile and install
-
-(1) Execute bcc32\configure.bat on your build directory.
- ex. c:\ruby-1.6.7>bcc32\configure.bat
-
-(2) Change ((|RUBY_INSTALL_NAME|)) and ((|RUBY_SO_NAME|)) in (({Makefile}))
- if you want to change the name of the executable files.
- And add ((|RUBYW_INSTALL_NAME|)) to change the name of the
- executable without console window if also you want.
-
-(3) Run `((%make%))'
-
-(4) Run `((%make test%))'
-
-(5) Run `((%make DESTDIR=<install_directory> install%))'
-
- This command will create following directories and install files onto them.
- * <install_directory>\bin
- * <install_directory>\lib
- * <install_directory>\lib\ruby
- * <install_directory>\lib\ruby\<MAJOR>.<MINOR>
- * <install_directory>\lib\ruby\<MAJOR>.<MINOR>\<PLATFORM>
- * <install_directory>\lib\ruby\site_ruby
- * <install_directory>\lib\ruby\site_ruby\<MAJOR>.<MINOR>
- * <install_directory>\lib\ruby\site_ruby\<MAJOR>.<MINOR>\<PLATFORM>
- * <install_directory>\man\man1
- If Ruby's version is `x.y.z', the ((|<MAJOR>|)) is `x' and the ((|<MINOR>|)) is `y'.
- The ((|<PLATFORM>|)) is usually `(({i586-bccwin32}))'.
-
-(6) Requires dynamic RTL (cc3250.dll on C++Builder5) and borlndmm.dll (If built with
- usebormm.lib) to use installed binary. These files are ordinary in bcc32's bin
- directory.
-
-== Icons
-
-Any icon files(*.ico) in the build directory, directories specified with
-((|icondirs|)) make variable and (({win32})) directory under the ruby
-source directory will be included in DLL or executable files, according
-to their base names.
- $(RUBY_INSTALL_NAME).ico or ruby.ico --> $(RUBY_INSTALL_NAME).exe
- $(RUBYW_INSTALL_NAME).ico or rubyw.ico --> $(RUBYW_INSTALL_NAME).exe
- the others --> $(RUBY_SO_NAME).dll
-
-Although no icons are distributed with the ruby source or in the official
-site, you can use anything you like. For example, followings are written
-in Japanese, but you can download at least.
-
-* ((<URL:http://member.nifty.ne.jp/ueivu/rubyico.html>)) or
- ((<zipped icons|URL:http://member.nifty.ne.jp/ueivu/Ruby_ico.zip>))
-* ((<URL:http://homepage1.nifty.com/a_nakata/ruby/>)) or
- ((<icon itself|URL:http://homepage1.nifty.com/a_nakata/ruby/RubyIcon.ico>))
-
-== Build examples
-
-* Build on the ruby source directory.
-
- ex.)
- ruby source directory: C:\ruby
- build directory: C:\ruby
- install directory: C:\usr\local
-
- C:
- cd \ruby
- bcc32\configure
- make
- make test
- make DESTDIR=/usr/local install
-
-* Build on the relative directory from the ruby source directory and CPU type
- i386.
-
- ex.)
- ruby source directory: C:\ruby
- build directory: C:\ruby\bccwin32
- install directory: C:\usr\local
- CPU i386
-
- C:
- cd \ruby
- mkdir bccwin32
- cd bccwin32
- ..\bcc32\configure target i386-bccwin32
- make
- make test
- make DESTDIR=/usr/local install
-
-* Build on the different drive.
-
- ex.)
- ruby source directory: C:\src\ruby
- build directory: D:\build\ruby
- install directory: C:\usr\local
-
- D:
- cd D:\build\ruby
- C:\src\ruby\bcc32\configure
- make
- make test
- make DESTDIR=C:/usr/local install
-
-== Bugs
-
-You can ((*NOT*)) use a path name contains any white space characters as
-the ruby source directory, this restriction comes from the behavior of
-(({!INCLUDE})) directives of (({MAKE})).
-((- you may call it a bug. -))
-
-=end
diff --git a/bcc32/configure.bat b/bcc32/configure.bat
deleted file mode 100755
index 143ad947f0..0000000000
--- a/bcc32/configure.bat
+++ /dev/null
@@ -1,92 +0,0 @@
-@echo off
-::: Don't set environment variable in batch file other than autoexec.bat
-::: to avoid "Out of environment space" problem on Windows 95/98.
-::: set TMPMAKE=~tmp~.mak
-
-echo> ~tmp~.mak ####
-echo>> ~tmp~.mak conf = %0
-echo>> ~tmp~.mak $(conf:\=/): nul
-echo>> ~tmp~.mak @del ~tmp~.mak
-echo>> ~tmp~.mak @-$(MAKE) -l$(MAKEFLAGS) -f $(@D)setup.mak \
-:loop
-if "%1" == "" goto :end
-if "%1" == "--prefix" goto :prefix
-if "%1" == "--srcdir" goto :srcdir
-if "%1" == "srcdir" goto :srcdir
-if "%1" == "--target" goto :target
-if "%1" == "target" goto :target
-if "%1" == "--with-static-linked-ext" goto :extstatic
-if "%1" == "--program-suffix" goto :suffix
-if "%1" == "--program-name" goto :progname
-if "%1" == "--enable-install-doc" goto :enable-rdoc
-if "%1" == "--disable-install-doc" goto :disable-rdoc
-if "%1" == "--extout" goto :extout
-if "%1" == "-h" goto :help
-if "%1" == "--help" goto :help
- echo>> ~tmp~.mak "%1" \
- shift
-goto :loop
-:srcdir
- echo>> ~tmp~.mak -D"srcdir=%2" \
- shift
- shift
-goto :loop
-:prefix
- echo>> ~tmp~.mak -D"prefix=%2" \
- shift
- shift
-goto :loop
-:suffix
- echo>> ~tmp~.mak -D"RUBY_SUFFIX=%2" \
- shift
- shift
-goto :loop
-:installname
- echo>> ~tmp~.mak -D"RUBY_INSTALL_NAME=%2" \
- shift
- shift
-goto :loop
-:soname
- echo>> ~tmp~.mak -D"RUBY_SO_NAME=%2" \
- shift
- shift
-goto :loop
-:target
- echo>> ~tmp~.mak "%2" \
- shift
- shift
-goto :loop
-:extstatic
- echo>> ~tmp~.mak -D"EXTSTATIC=static" \
- shift
-goto :loop
-:enable-rdoc
- echo>> ~tmp~.mak -D"RDOCTARGET=install-doc" \
- shift
-goto :loop
-:disable-rdoc
- echo>> ~tmp~.mak -D"RDOCTARGET=install-nodoc" \
- shift
-goto :loop
-:extout
- echo>> ~tmp~.mak -D"EXTOUT=%2" \
- shift
- shift
-goto :loop
-:help
- echo Configuration:
- echo --help display this help
- echo --srcdir=DIR find the sources in DIR [configure dir or `..']
- echo Installation directories:
- echo --prefix=PREFIX install files in PREFIX (ignored currently)
- echo System types:
- echo --target=TARGET configure for TARGET [i386-bccwin32]
- echo Optional Package:
- echo --with-static-linked-ext link external modules statically
- echo --enable-install-doc install rdoc indexes during install
- del ~tmp~.mak
-goto :exit
-:end
-echo>> ~tmp~.mak -Dbcc32dir="$(@D)"
-make -s -f ~tmp~.mak
-:exit
diff --git a/bcc32/mkexports.rb b/bcc32/mkexports.rb
deleted file mode 100755
index dc523e2541..0000000000
--- a/bcc32/mkexports.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-#!./miniruby -s
-
-$name = $library = $description = nil
-
-SYM = {}
-STDIN.reopen(open("nul"))
-ARGV.each do |obj|
- IO.foreach("|tdump -q -oiPUBDEF -oiPUBD32 #{obj.tr('/', '\\')}") do |l|
- next unless /(?:PUBDEF|PUBD32)/ =~ l
- SYM[$1] = true if /'(.*?)'/ =~ l
- end
-end
-
-exports = []
-if $name
- exports << "Name " + $name
-elsif $library
- exports << "Library " + $library
-end
-exports << "Description " + $description.dump if $description
-exports << "EXPORTS" << SYM.keys.sort
-
-if $output
- open($output, 'w') {|f| f.puts exports.join("\n")}
-else
- puts exports.join("\n")
-end
diff --git a/bcc32/setup.mak b/bcc32/setup.mak
deleted file mode 100644
index b7a2539d0a..0000000000
--- a/bcc32/setup.mak
+++ /dev/null
@@ -1,133 +0,0 @@
-# -*- makefile -*-
-
-!if "$(srcdir)" != ""
-bcc32dir = $(srcdir)/bcc32
-!elseif "$(bcc32dir)" == "bcc32/"
-srcdir = .
-!elseif "$(bcc32dir:/bcc32/=)/bcc32/" == "$(bcc32dir)"
-srcdir = $(bcc32dir:/bcc32/=)
-!else
-srcdir = $(bcc32dir)/..
-!endif
-!ifndef prefix
-prefix = /usr
-!endif
-OS = bccwin32
-RT = $(OS)
-BANG = !
-APPEND = echo>>$(MAKEFILE)
-!ifdef MAKEFILE
-MAKE = $(MAKE) -f $(MAKEFILE)
-!else
-MAKEFILE = Makefile
-!endif
-
-all: Makefile
-Makefile: -prologue- -generic- -epilogue-
-i386-$(OS): -prologue- -i386- -epilogue-
-i486-$(OS): -prologue- -i486- -epilogue-
-i586-$(OS): -prologue- -i586- -epilogue-
-i686-$(OS): -prologue- -i686- -epilogue-
-alpha-$(OS): -prologue- -alpha- -epilogue-
-
--prologue-: nul
- @echo Creating $(MAKEFILE)
- @type > $(MAKEFILE) &&|
-\#\#\# Makefile for ruby $(OS) \#\#\#
-$(BANG)ifndef srcdir
-srcdir = $(srcdir:\=/)
-$(BANG)endif
-$(BANG)ifndef prefix
-prefix = $(prefix:\=/)
-$(BANG)endif
-$(BANG)ifndef EXTSTATIC
-EXTSTATIC = $(EXTSTATIC)
-$(BANG)endif
-!if defined(RDOCTARGET)
-$(BANG)ifndef RDOCTARGET
-RDOCTARGET = $(RDOCTARGET)
-$(BANG)endif
-!endif
-!if defined(EXTOUT)
-$(BANG)ifndef EXTOUT
-EXTOUT = $(EXTOUT)
-$(BANG)endif
-!endif
-|
- @type > usebormm.bat &&|
-@echo off
-ilink32 -Gn -x usebormm.lib > nul
-if exist usebormm.tds echo MEMLIB = usebormm.lib
-|
- @usebormm.bat >> $(MAKEFILE)
- @del usebormm.*
-
- @cpp32 -I$(srcdir) -P- -o$(MAKEFILE) > nul &&|
-\#include "version.h"
-MAJOR = RUBY_VERSION_MAJOR
-MINOR = RUBY_VERSION_MINOR
-TEENY = RUBY_VERSION_TEENY
-|
- @type $(MAKEFILE).i >> $(MAKEFILE)
- @del $(MAKEFILE).i
-
--generic-: nul
-!if defined(PROCESSOR_ARCHITECTURE) || defined(PROCESSOR_LEVEL)
- @type >> $(MAKEFILE) &&|
-!if defined(PROCESSOR_ARCHITECTURE)
-$(BANG)ifndef PROCESSOR_ARCHITECTURE
-PROCESSOR_ARCHITECTURE = $(PROCESSOR_ARCHITECTURE)
-$(BANG)endif
-!endif
-!if defined(PROCESSOR_LEVEL)
-$(BANG)ifndef PROCESSOR_LEVEL
-PROCESSOR_LEVEL = $(PROCESSOR_LEVEL)
-$(BANG)endif
-!endif
-
-|
-!endif
-
--alpha-: nul
- @$(APPEND) !ifndef PROCESSOR_ARCHITECTURE
- @$(APPEND) PROCESSOR_ARCHITECTURE = alpha
- @$(APPEND) !endif
--ix86-: nul
- @$(APPEND) !ifndef PROCESSOR_ARCHITECTURE
- @$(APPEND) PROCESSOR_ARCHITECTURE = x86
- @$(APPEND) !endif
-
--i386-: -ix86-
- @$(APPEND) !ifndef PROCESSOR_LEVEL
- @$(APPEND) PROCESSOR_LEVEL = 3
- @$(APPEND) !endif
--i486-: -ix86-
- @$(APPEND) !ifndef PROCESSOR_LEVEL
- @$(APPEND) PROCESSOR_LEVEL = 4
- @$(APPEND) !endif
--i586-: -ix86-
- @$(APPEND) !ifndef PROCESSOR_LEVEL
- @$(APPEND) PROCESSOR_LEVEL = 5
- @$(APPEND) !endif
--i686-: -ix86-
- @$(APPEND) !ifndef PROCESSOR_LEVEL
- @$(APPEND) PROCESSOR_LEVEL = 6
- @$(APPEND) !endif
-
--epilogue-: nul
- @type >> $(MAKEFILE) &&|
-
-\# OS = $(OS)
-\# RT = $(RT)
-\# RUBY_INSTALL_NAME = ruby
-\# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR)
-\# CFLAGS = -q $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi
-\# CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)/missing -DLIBRUBY_SO=\"$$(LIBRUBY_SO)\"
-\# STACK = 0x2000000
-\# LDFLAGS = -S:$$(STACK)
-\# RFLAGS = $$(iconinc)
-\# EXTLIBS = cw32.lib import32.lib user32.lib kernel32.lib
-$(BANG)include $$(srcdir)/bcc32/Makefile.sub
-|
- @$(srcdir:/=\)\win32\rm.bat config.h config.status
- @echo type "`$(MAKE)'" to make ruby for $(OS).
diff --git a/benchmark/bm_app_answer.rb b/benchmark/bm_app_answer.rb
new file mode 100644
index 0000000000..3cd8a8fd37
--- /dev/null
+++ b/benchmark/bm_app_answer.rb
@@ -0,0 +1,15 @@
+def ack(m, n)
+ if m == 0 then
+ n + 1
+ elsif n == 0 then
+ ack(m - 1, 1)
+ else
+ ack(m - 1, ack(m, n - 1))
+ end
+end
+
+def the_answer_to_life_the_universe_and_everything
+ (ack(3,7).to_s.split(//).inject(0){|s,x| s+x.to_i}.to_s + "2" ).to_i
+end
+
+answer = the_answer_to_life_the_universe_and_everything
diff --git a/benchmark/bm_app_aobench.rb b/benchmark/bm_app_aobench.rb
new file mode 100644
index 0000000000..807349089f
--- /dev/null
+++ b/benchmark/bm_app_aobench.rb
@@ -0,0 +1,292 @@
+# AO rebder benchmark
+# Original program (C) Syoyo Fujita in Javascript (and other languages)
+# http://lucille.atso-net.jp/blog/?p=642
+# http://lucille.atso-net.jp/blog/?p=711
+# Ruby(yarv2llvm) version by Hideki Miura
+#
+
+IMAGE_WIDTH = 256
+IMAGE_HEIGHT = 256
+NSUBSAMPLES = 2
+NAO_SAMPLES = 8
+
+class Vec
+ def initialize(x, y, z)
+ @x = x
+ @y = y
+ @z = z
+ end
+
+ attr_accessor :x, :y, :z
+
+ def vadd(b)
+ Vec.new(@x + b.x, @y + b.y, @z + b.z)
+ end
+
+ def vsub(b)
+ Vec.new(@x - b.x, @y - b.y, @z - b.z)
+ end
+
+ def vcross(b)
+ Vec.new(@y * b.z - @z * b.y,
+ @z * b.x - @x * b.z,
+ @x * b.y - @y * b.x)
+ end
+
+ def vdot(b)
+ @x * b.x + @y * b.y + @z * b.z
+ end
+
+ def vlength
+ Math.sqrt(@x * @x + @y * @y + @z * @z)
+ end
+
+ def vnormalize
+ len = vlength
+ v = Vec.new(@x, @y, @z)
+ if len > 1.0e-17 then
+ v.x = v.x / len
+ v.y = v.y / len
+ v.z = v.z / len
+ end
+ v
+ end
+end
+
+
+class Sphere
+ def initialize(center, radius)
+ @center = center
+ @radius = radius
+ end
+
+ attr_reader :center, :radius
+
+ def intersect(ray, isect)
+ rs = ray.org.vsub(@center)
+ b = rs.vdot(ray.dir)
+ c = rs.vdot(rs) - (@radius * @radius)
+ d = b * b - c
+ if d > 0.0 then
+ t = - b - Math.sqrt(d)
+
+ if t > 0.0 and t < isect.t then
+ isect.t = t
+ isect.hit = true
+ isect.pl = Vec.new(ray.org.x + ray.dir.x * t,
+ ray.org.y + ray.dir.y * t,
+ ray.org.z + ray.dir.z * t)
+ n = isect.pl.vsub(@center)
+ isect.n = n.vnormalize
+ else
+ 0.0
+ end
+ end
+ nil
+ end
+end
+
+class Plane
+ def initialize(p, n)
+ @p = p
+ @n = n
+ end
+
+ def intersect(ray, isect)
+ d = -@p.vdot(@n)
+ v = ray.dir.vdot(@n)
+ v0 = v
+ if v < 0.0 then
+ v0 = -v
+ end
+ if v0 < 1.0e-17 then
+ return
+ end
+
+ t = -(ray.org.vdot(@n) + d) / v
+
+ if t > 0.0 and t < isect.t then
+ isect.hit = true
+ isect.t = t
+ isect.n = @n
+ isect.pl = Vec.new(ray.org.x + t * ray.dir.x,
+ ray.org.y + t * ray.dir.y,
+ ray.org.z + t * ray.dir.z)
+ end
+ nil
+ end
+end
+
+class Ray
+ def initialize(org, dir)
+ @org = org
+ @dir = dir
+ end
+
+ attr_accessor :org, :dir
+end
+
+class Isect
+ def initialize
+ @t = 10000000.0
+ @hit = false
+ @pl = Vec.new(0.0, 0.0, 0.0)
+ @n = Vec.new(0.0, 0.0, 0.0)
+ end
+
+ attr_accessor :t, :hit, :pl, :n
+end
+
+def clamp(f)
+ i = f * 255.5
+ if i > 255.0 then
+ i = 255.0
+ end
+ if i < 0.0 then
+ i = 0.0
+ end
+ i.to_i
+end
+
+def otherBasis(basis, n)
+ basis[2] = Vec.new(n.x, n.y, n.z)
+ basis[1] = Vec.new(0.0, 0.0, 0.0)
+
+ if n.x < 0.6 and n.x > -0.6 then
+ basis[1].x = 1.0
+ elsif n.y < 0.6 and n.y > -0.6 then
+ basis[1].y = 1.0
+ elsif n.z < 0.6 and n.z > -0.6 then
+ basis[1].z = 1.0
+ else
+ basis[1].x = 1.0
+ end
+
+ basis[0] = basis[1].vcross(basis[2])
+ basis[0] = basis[0].vnormalize
+
+ basis[1] = basis[2].vcross(basis[0])
+ basis[1] = basis[1].vnormalize
+end
+
+class Scene
+ def initialize
+ @spheres = Array.new
+ @spheres[0] = Sphere.new(Vec.new(-2.0, 0.0, -3.5), 0.5)
+ @spheres[1] = Sphere.new(Vec.new(-0.5, 0.0, -3.0), 0.5)
+ @spheres[2] = Sphere.new(Vec.new(1.0, 0.0, -2.2), 0.5)
+ @plane = Plane.new(Vec.new(0.0, -0.5, 0.0), Vec.new(0.0, 1.0, 0.0))
+ end
+
+ def ambient_occlusion(isect)
+ basis = Array.new
+ otherBasis(basis, isect.n)
+
+ ntheta = NAO_SAMPLES
+ nphi = NAO_SAMPLES
+ eps = 0.0001
+ occlusion = 0.0
+
+ p0 = Vec.new(isect.pl.x + eps * isect.n.x,
+ isect.pl.y + eps * isect.n.y,
+ isect.pl.z + eps * isect.n.z)
+ nphi.times do |j|
+ ntheta.times do |i|
+ r = rand
+ phi = 2.0 * 3.14159265 * rand
+ x = Math.cos(phi) * Math.sqrt(1.0 - r)
+ y = Math.sin(phi) * Math.sqrt(1.0 - r)
+ z = Math.sqrt(r)
+
+ rx = x * basis[0].x + y * basis[1].x + z * basis[2].x
+ ry = x * basis[0].y + y * basis[1].y + z * basis[2].y
+ rz = x * basis[0].z + y * basis[1].z + z * basis[2].z
+
+ raydir = Vec.new(rx, ry, rz)
+ ray = Ray.new(p0, raydir)
+
+ occisect = Isect.new
+ @spheres[0].intersect(ray, occisect)
+ @spheres[1].intersect(ray, occisect)
+ @spheres[2].intersect(ray, occisect)
+ @plane.intersect(ray, occisect)
+ if occisect.hit then
+ occlusion = occlusion + 1.0
+ else
+ 0.0
+ end
+ end
+ end
+
+ occlusion = (ntheta.to_f * nphi.to_f - occlusion) / (ntheta.to_f * nphi.to_f)
+
+ Vec.new(occlusion, occlusion, occlusion)
+ end
+
+ def render(w, h, nsubsamples)
+ cnt = 0
+ nsf = nsubsamples.to_f
+ h.times do |y|
+ w.times do |x|
+ rad = Vec.new(0.0, 0.0, 0.0)
+
+ # Subsmpling
+ nsubsamples.times do |v|
+ nsubsamples.times do |u|
+
+ cnt = cnt + 1
+ wf = w.to_f
+ hf = h.to_f
+ xf = x.to_f
+ yf = y.to_f
+ uf = u.to_f
+ vf = v.to_f
+
+ px = (xf + (uf / nsf) - (wf / 2.0)) / (wf / 2.0)
+ py = -(yf + (vf / nsf) - (hf / 2.0)) / (hf / 2.0)
+
+ eye = Vec.new(px, py, -1.0).vnormalize
+
+ ray = Ray.new(Vec.new(0.0, 0.0, 0.0), eye)
+
+ isect = Isect.new
+ @spheres[0].intersect(ray, isect)
+ @spheres[1].intersect(ray, isect)
+ @spheres[2].intersect(ray, isect)
+ @plane.intersect(ray, isect)
+ if isect.hit then
+ col = ambient_occlusion(isect)
+ rad.x = rad.x + col.x
+ rad.y = rad.y + col.y
+ rad.z = rad.z + col.z
+ end
+ end
+ end
+
+ r = rad.x / (nsf * nsf)
+ g = rad.y / (nsf * nsf)
+ b = rad.z / (nsf * nsf)
+ printf("%c", clamp(r))
+ printf("%c", clamp(g))
+ printf("%c", clamp(b))
+ end
+ nil
+ end
+
+ nil
+ end
+end
+
+alias printf_orig printf
+def printf *args
+end
+
+# File.open("ao.ppm", "w") do |fp|
+ printf("P6\n")
+ printf("%d %d\n", IMAGE_WIDTH, IMAGE_HEIGHT)
+ printf("255\n", IMAGE_WIDTH, IMAGE_HEIGHT)
+ Scene.new.render(IMAGE_WIDTH, IMAGE_HEIGHT, NSUBSAMPLES)
+# end
+
+undef printf
+alias printf printf_orig
diff --git a/benchmark/bm_app_erb.rb b/benchmark/bm_app_erb.rb
new file mode 100644
index 0000000000..77c66a7949
--- /dev/null
+++ b/benchmark/bm_app_erb.rb
@@ -0,0 +1,26 @@
+#
+# Create many HTML strings with ERB.
+#
+
+require 'erb'
+
+data = DATA.read
+max = 15_000
+title = "hello world!"
+content = "hello world!\n" * 10
+
+max.times{
+ ERB.new(data).result(binding)
+}
+
+__END__
+
+<html>
+ <head> <%= title %> </head>
+ <body>
+ <h1> <%= title %> </h1>
+ <p>
+ <%= content %>
+ </p>
+ </body>
+</html>
diff --git a/benchmark/bm_app_factorial.rb b/benchmark/bm_app_factorial.rb
new file mode 100644
index 0000000000..45f471dfdb
--- /dev/null
+++ b/benchmark/bm_app_factorial.rb
@@ -0,0 +1,11 @@
+def fact(n)
+ if(n > 1)
+ n * fact(n-1)
+ else
+ 1
+ end
+end
+
+100.times {
+ fact(5000)
+}
diff --git a/benchmark/bm_app_fib.rb b/benchmark/bm_app_fib.rb
new file mode 100644
index 0000000000..34a7b2e725
--- /dev/null
+++ b/benchmark/bm_app_fib.rb
@@ -0,0 +1,10 @@
+def fib n
+ if n < 3
+ 1
+ else
+ fib(n-1) + fib(n-2)
+ end
+end
+
+fib(34)
+
diff --git a/benchmark/bm_app_mandelbrot.rb b/benchmark/bm_app_mandelbrot.rb
new file mode 100644
index 0000000000..801b75e8e2
--- /dev/null
+++ b/benchmark/bm_app_mandelbrot.rb
@@ -0,0 +1,23 @@
+require 'complex'
+
+def mandelbrot? z
+ i = 0
+ while i<100
+ i += 1
+ z = z * z
+ return false if z.abs > 2
+ end
+ true
+end
+
+ary = []
+
+(0..1000).each{|dx|
+ (0..1000).each{|dy|
+ x = dx / 50.0
+ y = dy / 50.0
+ c = Complex(x, y)
+ ary << c if mandelbrot?(c)
+ }
+}
+
diff --git a/benchmark/bm_app_pentomino.rb b/benchmark/bm_app_pentomino.rb
new file mode 100644
index 0000000000..59c63f358e
--- /dev/null
+++ b/benchmark/bm_app_pentomino.rb
@@ -0,0 +1,259 @@
+#!/usr/local/bin/ruby
+# This program is contributed by Shin Nishiyama
+
+
+# modified by K.Sasada
+
+NP = 5
+ROW = 8 + NP
+COL = 8
+
+$p = []
+$b = []
+$no = 0
+
+def piece(n, a, nb)
+ nb.each{|x|
+ a[n] = x
+ if n == NP-1
+ $p << [a.sort]
+ else
+ nbc=nb.dup
+ [-ROW, -1, 1, ROW].each{|d|
+ if x+d > 0 and not a.include?(x+d) and not nbc.include?(x+d)
+ nbc << x+d
+ end
+ }
+ nbc.delete x
+ piece(n+1,a[0..n],nbc)
+ end
+ }
+end
+
+def kikaku(a)
+ a.collect {|x| x - a[0]}
+end
+def ud(a)
+ kikaku(a.collect {|x| ((x+NP)%ROW)-ROW*((x+NP)/ROW) }.sort)
+end
+def rl(a)
+ kikaku(a.collect {|x| ROW*((x+NP)/ROW)+ROW-((x+NP)%ROW)}.sort)
+end
+def xy(a)
+ kikaku(a.collect {|x| ROW*((x+NP)%ROW) + (x+NP)/ROW }.sort)
+end
+
+def mkpieces
+ piece(0,[],[0])
+ $p.each do |a|
+ a0 = a[0]
+ a[1] = ud(a0)
+ a[2] = rl(a0)
+ a[3] = ud(rl(a0))
+ a[4] = xy(a0)
+ a[5] = ud(xy(a0))
+ a[6] = rl(xy(a0))
+ a[7] = ud(rl(xy(a0)))
+ a.sort!
+ a.uniq!
+ end
+ $p.uniq!.sort! {|x,y| x[0] <=> y[0] }
+end
+
+def mkboard
+ (0...ROW*COL).each{|i|
+ if i % ROW >= ROW-NP
+ $b[i] = -2
+ else
+ $b[i] = -1
+ end
+ $b[3*ROW+3]=$b[3*ROW+4]=$b[4*ROW+3]=$b[4*ROW+4]=-2
+ }
+end
+
+def pboard
+ return # skip print
+ print "No. #$no\n"
+ (0...COL).each{|i|
+ print "|"
+ (0...ROW-NP).each{|j|
+ x = $b[i*ROW+j]
+ if x < 0
+ print "..|"
+ else
+ printf "%2d|",x+1
+ end
+ }
+ print "\n"
+ }
+ print "\n"
+end
+
+$pnum=[]
+def setpiece(a,pos)
+ if a.length == $p.length then
+ $no += 1
+ pboard
+ return
+ end
+ while $b[pos] != -1
+ pos += 1
+ end
+ ($pnum - a).each do |i|
+ $p[i].each do |x|
+ f = 0
+ x.each{|s|
+ if $b[pos+s] != -1
+ f=1
+ break
+ end
+ }
+ if f == 0 then
+ x.each{|s|
+ $b[pos+s] = i
+ }
+ a << i
+ setpiece(a.dup, pos)
+ a.pop
+ x.each{|s|
+ $b[pos+s] = -1
+ }
+ end
+ end
+ end
+end
+
+mkpieces
+mkboard
+$p[4] = [$p[4][0]]
+$pnum = (0...$p.length).to_a
+setpiece([],0)
+
+
+__END__
+
+# original
+
+NP = 5
+ROW = 8 + NP
+COL = 8
+
+$p = []
+$b = []
+$no = 0
+
+def piece(n,a,nb)
+ for x in nb
+ a[n] = x
+ if n == NP-1
+ $p << [a.sort]
+ else
+ nbc=nb.dup
+ for d in [-ROW, -1, 1, ROW]
+ if x+d > 0 and not a.include?(x+d) and not nbc.include?(x+d)
+ nbc << x+d
+ end
+ end
+ nbc.delete x
+ piece(n+1,a[0..n],nbc)
+ end
+ end
+end
+
+def kikaku(a)
+ a.collect {|x| x - a[0]}
+end
+def ud(a)
+ kikaku(a.collect {|x| ((x+NP)%ROW)-ROW*((x+NP)/ROW) }.sort)
+end
+def rl(a)
+ kikaku(a.collect {|x| ROW*((x+NP)/ROW)+ROW-((x+NP)%ROW)}.sort)
+end
+def xy(a)
+ kikaku(a.collect {|x| ROW*((x+NP)%ROW) + (x+NP)/ROW }.sort)
+end
+
+def mkpieces
+ piece(0,[],[0])
+ $p.each do |a|
+ a0 = a[0]
+ a[1] = ud(a0)
+ a[2] = rl(a0)
+ a[3] = ud(rl(a0))
+ a[4] = xy(a0)
+ a[5] = ud(xy(a0))
+ a[6] = rl(xy(a0))
+ a[7] = ud(rl(xy(a0)))
+ a.sort!
+ a.uniq!
+ end
+ $p.uniq!.sort! {|x,y| x[0] <=> y[0] }
+end
+
+def mkboard
+ for i in 0...ROW*COL
+ if i % ROW >= ROW-NP
+ $b[i] = -2
+ else
+ $b[i] = -1
+ end
+ $b[3*ROW+3]=$b[3*ROW+4]=$b[4*ROW+3]=$b[4*ROW+4]=-2
+ end
+end
+
+def pboard
+ print "No. #$no\n"
+ for i in 0...COL
+ print "|"
+ for j in 0...ROW-NP
+ x = $b[i*ROW+j]
+ if x < 0
+ print "..|"
+ else
+ printf "%2d|",x+1
+ end
+ end
+ print "\n"
+ end
+ print "\n"
+end
+
+$pnum=[]
+def setpiece(a,pos)
+ if a.length == $p.length then
+ $no += 1
+ pboard
+ return
+ end
+ while $b[pos] != -1
+ pos += 1
+ end
+ ($pnum - a).each do |i|
+ $p[i].each do |x|
+ f = 0
+ for s in x do
+ if $b[pos+s] != -1
+ f=1
+ break
+ end
+ end
+ if f == 0 then
+ for s in x do
+ $b[pos+s] = i
+ end
+ a << i
+ setpiece(a.dup, pos)
+ a.pop
+ for s in x do
+ $b[pos+s] = -1
+ end
+ end
+ end
+ end
+end
+
+mkpieces
+mkboard
+$p[4] = [$p[4][0]]
+$pnum = (0...$p.length).to_a
+setpiece([],0)
diff --git a/benchmark/bm_app_raise.rb b/benchmark/bm_app_raise.rb
new file mode 100644
index 0000000000..5db8f95d50
--- /dev/null
+++ b/benchmark/bm_app_raise.rb
@@ -0,0 +1,8 @@
+i = 0
+while i<300000
+ i += 1
+ begin
+ raise
+ rescue
+ end
+end
diff --git a/benchmark/bm_app_strconcat.rb b/benchmark/bm_app_strconcat.rb
new file mode 100644
index 0000000000..7eed7c1aed
--- /dev/null
+++ b/benchmark/bm_app_strconcat.rb
@@ -0,0 +1,5 @@
+i = 0
+while i<2_000_000
+ "#{1+1} #{1+1} #{1+1}"
+ i += 1
+end
diff --git a/benchmark/bm_app_tak.rb b/benchmark/bm_app_tak.rb
new file mode 100644
index 0000000000..efe5380f4e
--- /dev/null
+++ b/benchmark/bm_app_tak.rb
@@ -0,0 +1,13 @@
+
+def tak x, y, z
+ unless y < x
+ z
+ else
+ tak( tak(x-1, y, z),
+ tak(y-1, z, x),
+ tak(z-1, x, y))
+ end
+end
+
+tak(18, 9, 0)
+
diff --git a/benchmark/bm_app_tarai.rb b/benchmark/bm_app_tarai.rb
new file mode 100644
index 0000000000..4c146f5ccf
--- /dev/null
+++ b/benchmark/bm_app_tarai.rb
@@ -0,0 +1,10 @@
+def tarai( x, y, z )
+ if x <= y
+ then y
+ else tarai(tarai(x-1, y, z),
+ tarai(y-1, z, x),
+ tarai(z-1, x, y))
+ end
+end
+
+tarai(12, 6, 0)
diff --git a/benchmark/bm_app_uri.rb b/benchmark/bm_app_uri.rb
new file mode 100644
index 0000000000..586edfd5dc
--- /dev/null
+++ b/benchmark/bm_app_uri.rb
@@ -0,0 +1,8 @@
+require 'uri'
+
+100_000.times{
+ uri = URI.parse('http://www.ruby-lang.org')
+ uri.scheme
+ uri.host
+ uri.port
+}
diff --git a/benchmark/bm_hash_shift.rb b/benchmark/bm_hash_shift.rb
new file mode 100644
index 0000000000..a645671a5b
--- /dev/null
+++ b/benchmark/bm_hash_shift.rb
@@ -0,0 +1,10 @@
+h = {}
+
+10000.times do |i|
+ h[i] = nil
+end
+
+50000.times do
+ k, v = h.shift
+ h[k] = v
+end
diff --git a/benchmark/bm_io_file_create.rb b/benchmark/bm_io_file_create.rb
new file mode 100644
index 0000000000..2f205c1333
--- /dev/null
+++ b/benchmark/bm_io_file_create.rb
@@ -0,0 +1,13 @@
+#
+# Create files
+#
+
+max = 200_000
+file = './tmpfile_of_bm_io_file_create'
+
+max.times{
+ f = open(file, 'w')
+ f.close#(true)
+}
+File.unlink(file)
+
diff --git a/benchmark/bm_io_file_read.rb b/benchmark/bm_io_file_read.rb
new file mode 100644
index 0000000000..b9e796ed30
--- /dev/null
+++ b/benchmark/bm_io_file_read.rb
@@ -0,0 +1,15 @@
+#
+# Seek and Read file.
+#
+
+require 'tempfile'
+
+max = 200_000
+str = "Hello world! " * 1000
+f = Tempfile.new('yarv-benchmark')
+f.write str
+
+max.times{
+ f.seek 0
+ f.read
+}
diff --git a/benchmark/bm_io_file_write.rb b/benchmark/bm_io_file_write.rb
new file mode 100644
index 0000000000..aa1be0e5fe
--- /dev/null
+++ b/benchmark/bm_io_file_write.rb
@@ -0,0 +1,14 @@
+#
+# Seek and Write file.
+#
+
+require 'tempfile'
+
+max = 200_000
+str = "Hello world! " * 1000
+f = Tempfile.new('yarv-benchmark')
+
+max.times{
+ f.seek 0
+ f.write str
+}
diff --git a/benchmark/bm_io_select.rb b/benchmark/bm_io_select.rb
new file mode 100644
index 0000000000..19248daeb1
--- /dev/null
+++ b/benchmark/bm_io_select.rb
@@ -0,0 +1,9 @@
+# IO.select performance
+
+w = [ IO.pipe[1] ];
+
+nr = 1000000
+nr.times {
+ IO.select nil, w
+}
+
diff --git a/benchmark/bm_io_select2.rb b/benchmark/bm_io_select2.rb
new file mode 100644
index 0000000000..10e37d71b2
--- /dev/null
+++ b/benchmark/bm_io_select2.rb
@@ -0,0 +1,22 @@
+# IO.select performance. worst case of single fd.
+
+ios = []
+nr = 1000000
+if defined?(Process::RLIMIT_NOFILE)
+ max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]
+else
+ max = 64
+end
+puts "max fd: #{max} (results not apparent with <= 1024 max fd)"
+
+((max / 2) - 10).times do
+ ios.concat IO.pipe
+end
+
+last = [ ios[-1] ]
+puts "last IO: #{last[0].inspect}"
+
+nr.times do
+ IO.select nil, last
+end
+
diff --git a/benchmark/bm_io_select3.rb b/benchmark/bm_io_select3.rb
new file mode 100644
index 0000000000..7d0ba1f092
--- /dev/null
+++ b/benchmark/bm_io_select3.rb
@@ -0,0 +1,21 @@
+# IO.select performance. a lot of fd
+
+ios = []
+nr = 100
+if defined?(Process::RLIMIT_NOFILE)
+ max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]
+else
+ max = 64
+end
+puts "max fd: #{max} (results not apparent with <= 1024 max fd)"
+
+(max - 10).times do
+ r, w = IO.pipe
+ r.close
+ ios.push w
+end
+
+nr.times do
+ IO.select nil, ios
+end
+
diff --git a/benchmark/bm_loop_for.rb b/benchmark/bm_loop_for.rb
new file mode 100644