aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * vm_core.h (RUBY_VM_SET_TIMER_INTERRUPT, RUBY_VM_SET_INTERRUPT)kosaki2012-11-264-11/+27
| | | | | | | | | (RUBY_VM_SET_FINALIZER_INTERRUPT, RUBY_VM_SET_TRAP_INTERRUPT) (RUBY_VM_INTERRUPTED): use enum symbol instead of immediate value. * thread.c (thread_join_m, rb_threadptr_execute_interrupts): ditto. * signal.c (signal_exec): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (thread_join_m): use th->interrupt_mask instead ofkosaki2012-11-264-9/+11
| | | | | | | | | | | th->in_trap. * vm_core.h (struct rb_thread_struct): remove in_trap member. * signal.c (signal_exec): ditto. * thread.c (thread_create_core): ditto. * thread.c (Init_Thread): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_argf.rb (TestArgf#test_chars): since marshal data isusa2012-11-262-2/+7
| | | | | | | binary, shouldn't pass via text mode. use base64 encoded data. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby_atomic.h (ATOMIC_CAS): new macro for compare-and-exchange.kosaki2012-11-265-14/+60
| | | | | | | | | | | | | | | | | | | | | | | * vm_core.h (struct rb_thread_struct): add interrupt_mask member. * thread.c (thread_create_core, Init_Thread): initialize th->thread_mask. * vm_core.h (RUBY_VM_INTERRUPTED_ANY): new macro for avoiding bare th->interrupt_flag. * vm_core.h (RUBY_VM_INTERRUPTED, RUBY_VM_INTERRUPTED): check th->interrupt_mask. * thread.c (set_unblock_function, rb_thread_schedule): replace th->interrupt_flag with RUBY_VM_INTERRUPTED_ANY() * signal.c (signal_exec): set up thread->interrupt_mask for preventing recursive trap handler. * vm_core.h (RUBY_VM_CHECK_INTS, RUBY_VM_CHECK_INTS_BLOCKING): ditto. * thread.c (rb_threadptr_execute_interrupts): don't process interrupt if it is masked. [Bug #6009] [ruby-core:42524] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * iseq.c (make_compile_option_value): add trace_instruction option.ko12012-11-262-0/+7
| | | | | | | | | a patch by davidbalbert (David Albert). [Bug #6786] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bootstraptest/test_thread.rb: try to `join' each 100ko12012-11-262-1/+10
| | | | | | | | | | threads. This benchmark seems consuming long time on travis-ci several times (and make `failure'). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * common.mk: specify label `built-ruby'.ko12012-11-263-4/+10
| | | | | | | | * benchmark/driver.rb: quote path. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * signal.c (signal_exec): add volatile to make sure setjmp safe.kosaki2012-11-262-1/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * signal.c (signal_exec): suppress "warning: variable 'signum'kosaki2012-11-262-1/+6
| | | | | | might be clobbered by 'longjmp' or 'vfork'" warning. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* split trap interrupt and async interruptkosaki2012-11-262-7/+24
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/driver.rb: accept multiple `-e'.ko12012-11-262-10/+19
| | | | | | | | | You don't need to use `;' separation character. [ruby-core:50139] [ruby-trunk - Bug #7380] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_enumerate_chars, rb_str_enumerate_codepoints)kosaki2012-11-262-3/+9
| | | | | | | (rb_str_enumerate_lines): suppress "may be used uninitialized in this function" warning. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h (rb_thread_struct): added 'in_trap' member for markingkosaki2012-11-265-1/+56
| | | | | | | | | | | | | running trap handler. * signal.c (signal_exec): turn on in_trap when running trap. * thread.c (Init_Thread, thread_create_core): initialize in_trap when creating new threads. * thread.c (thread_join_m): raise ThreadError when running trap handler.Bug [#6416][ruby-core:44956] * test/ruby/test_thread.rb (test_thread_join_in_trap): new test for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (argf_each_codepoint): add missing ARGF#codepoints [Bug #7438]naruse2012-11-263-0/+60
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37851 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (bigdivrem): restart calculation when bigdivrem1 waskosaki2012-11-262-2/+19
| | | | | | | interrupted by signal. Otherwise, ruby script may see a garbage value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (big_div_struct): added volatile to 'stop' member.kosaki2012-11-262-4/+11
| | | | | | | | Otherwise, "if (bds->stop)" check in bigdivrem1 don't read memory and ignore interrupt. * bignum.c (bigdivrem, rb_big_stop): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: suppress warningsnobu2012-11-261-0/+3
| | | | | | | | * string.c (rb_str_enumerate_{lines,chars,codepoints}): suppress uninitialized variable warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.sub: fix r37821nobu2012-11-262-0/+5
| | | | | | | * win32/Makefile.sub (DLNOBJ): missing in r37821. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_setsid): added a few wait forkosaki2012-11-262-8/+9
| | | | | | | preventing that Process.getsid(io.pid) makes Errno::ESRCH. (refix r37844) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2012-11-26svn2012-11-251-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_setsid): call Process.getsid fornagachika2012-11-252-2/+10
| | | | | | | child process in child process. because parent process call Process.getsid with io.pid, Errno::ESRCH could be raised. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c: refactoring of rb_ary_delete_same()shirosaki2012-11-254-25/+34
| | | | | | | | | | | | | | | | * array.c (ary_resize_smaller): new function to resize array. * array.c (rb_ary_delete): refactoring to extract a function. * array.c (rb_ary_delete_same): refactoring. It renames function, reduces duplicated code and removes unused code. * gc.c (wmap_final_func): follow the above change. * internal.h (rb_ary_delete_same): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c: fixes for the updated documentation in r35858:eregon2012-11-252-14/+20
| | | | | | Typos and #take/#drop accept to take/drop 0 elements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * NEWS: add a news about iconv.ktsj2012-11-252-0/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix test to follow r37838naruse2012-11-251-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Move tests embedded in lib/set.rb to test/test_set.rb.knu2012-11-243-647/+644
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* String#{lines,chars,codepoints,bytes} now return an array.knu2012-11-244-105/+446
| | | | | | | | | | | | | | | | | | | | * string.c (rb_str_each_line, rb_str_lines): String#lines now returns an array instead of an enumerator. Passing a block is deprecated but still supported for backwards compatibility. Based on the patch by yhara. [Feature #6670] * string.c (rb_str_each_char, rb_str_chars): Ditto for String#chars. * string.c (rb_str_each_codepoint, rb_str_codepoints): Ditto for String#codepoints. * string.c (rb_str_each_byte, rb_str_bytes): Ditto for String#bytes. * NEWS: Add notes for the above changes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2012-11-25svn2012-11-241-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix tests of rb_warning().knu2012-11-246-27/+35
| | | | | | | | | | * test/ruby/envutil.rb (Test::Unit::Assertions#assert_warning) (Test::Unit::Assertions#assert_warn), test/ruby/envutil.rb, test/ruby/test_enumerator.rb, test/ruby/test_io_m17n.rb, test/ruby/test_regexp.rb, test/ruby/test_syntax.rb: assert_warn() and assert_warning() are reversed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: refactoring to rename variablesshirosaki2012-11-242-14/+25
| | | | | | | | | | | | * gc.c (wmap_final_func): rename variables to clarify the meaning. In wmap2obj the key is WeakRef and the value is referenced object. In obj2wmap the key is referenced object and the value is an array of WeakRef. * gc.c (wmap_finalize): ditto. [ruby-core:49044] [Bug #7304] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix WeakRef finalizeshirosaki2012-11-245-10/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | * array.c (rb_ary_delete_same_obj): new function for WeakRef. This deletes same objects as item argument in the array. * internal.h (rb_ary_delete_same_obj): add a declaration. * gc.c (wmap_final_func): remove WeakRef object reference from the array. rb_ary_delete() is not usable because it uses rb_equal() to compare object references. * gc.c (wmap_finalize): remove recycled object references from weak map hash properly. How to get object reference from object id was wrong. st_delete() doesn't work properly if key and value arguments are same. The key of obj2wmap is referenced object and the value of obj2wmap is WeakRef array. * gc.c (wmap_aset): obj2wmap should contain WeakRef array in the definition. * test/test_weakref.rb (TestWeakRef#test_not_reference_different_object, TestWeakRef#test_weakref_finalize): add tests for above. [ruby-core:49044] [Bug #7304] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/nkf/nkf-utf8/nkf.c (unicode_iconv_combine): returning flags arenaruse2012-11-242-2/+7
| | | | | | nkf_char. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_rubyoptions.rb (test_usage, test_usage_long):tadf2012-11-242-6/+8
| | | | | | | reduced, renamed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Rvert r37827 and r37828naruse2012-11-243-66/+15
| | | | | | | | | | | Revert "Fix finalize of WeakRef" This causes segv on rubyspec. http://u64.rubyci.org/~chkbuild/ruby-trunk/log/20121124T050101Z.log.html.gz you can reproduce by make test-rubyspec MSPECOPT='-V library/weakref' git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_trace.c (rb_tracepoint_attr_raised_exception): should not checkko12012-11-243-6/+59
| | | | | | | | | | | value before event checking. * vm_trace.c (rb_tracepoint_attr_return_value): ditto. * test/ruby/test_settracefunc.rb: add tests for TracePoint#return_value and TracePoint#raised_exception. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix TestProcess#test_setsidshirosaki2012-11-242-1/+6
| | | | | | | * test/ruby/test_process.rb (TestProcess#test_setsid): "./ruby-trunk" doesn't work on all environments. EnvUtil.rubybin would be suitable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix Segmentation fault at TestArray#test_arefshirosaki2012-11-242-1/+8
| | | | | | | | | * array.c (rb_ary_aref): fix Segmentation fault at TestArray#test_aref on x64 mingw. Variable argument of rb_scan_args() should be a pointer (VALUE *), but 0 of variable argument seems not equal to null pointer on x64 mingw. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* wmap_finalize: refactoring to rename variablesshirosaki2012-11-242-14/+25
| | | | | | | | | | | | * gc.c (wmap_final_func): rename variables to clarify the meaning. In wmap2obj the key is WeakRef and the value is referenced object. In obj2wmap the key is referenced object and the value is an array of WeakRef. * gc.c (wmap_finalize): ditto. [ruby-core:49044] [Bug #7304] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix finalize of WeakRefshirosaki2012-11-243-9/+49
| | | | | | | | | | | | | | | | | | | | | * gc.c (wmap_final_func): remove WeakRef object reference from the array. * gc.c (wmap_finalize): remove recycled object references from weak map hash properly. How to get object reference from object id was wrong. st_delete() doesn't work properly if key and value arguments are same. The key of obj2wmap is referenced object and the value of obj2wmap is WeakRef array. * gc.c (wmap_aset): obj2wmap should contain WeakRef array in the definition. * test/test_weakref.rb (TestWeakRef#test_not_reference_different_object): add a test for above. [ruby-core:49044] [Bug #7304] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (proc_getsid): adds new method for getting session id.kosaki2012-11-245-1/+65
| | | | | | | | | | | Contributed from fumiyas (Fumiyasu SATOH). Thank you! [Feature #6757] [ruby-dev:45977] * configure.in: adds getsid check. * test/ruby/test_process.rb (TestProcess#test_setsid): new test for the above. * NEWS: news for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (thread_create_core): don't use th->thread_id beforekosaki2012-11-242-2/+6
| | | | | | initialized. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c: argv checknobu2012-11-232-3/+10
| | | | | | | | | * ruby.c (proc_options, process_options, ruby_process_options): take care of the case argc is 0, and check if argv has NULL. [ruby-core:49889] [Bug #7423] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2012-11-24svn2012-11-231-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: --disable-dlnnobu2012-11-234-1/+12
| | | | | | | | * configure.in (--disable-dln): option to disable dynamic linking feature. [ruby-core:37676] [Feature #4946] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mkmf.rb: mingw64+MSYS pkg-config fixnobu2012-11-232-3/+10
| | | | | | | | | * lib/mkmf.rb (MakeMakefile#pkg_config): strip all white spaces for mingw64+MSYS pkg-config which errouneously emits extra newlines. [ruby-core:47998] [Bug #7163] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mkrunnable.rb: static-linked-extnobu2012-11-231-3/+5
| | | | | | * tool/mkrunnable.rb: make archdir for static-linked-ext. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c: wrap descriptionsnobu2012-11-233-8/+22
| | | | | | | * ruby.c (usage): wrap description lines if options are too long. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c, test/ruby/test_rubyoptions.rb: revert r37815:r37816.nobu2012-11-233-46/+76
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c: revert r37298.tadf2012-11-232-73/+36
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_usage2):tadf2012-11-232-3/+10
| | | | | | | revert the previous. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e