summaryrefslogtreecommitdiff
path: root/ChangeLog
AgeCommit message (Collapse)Author
2013-05-26* include/ruby/debug.h, vm_trace.c: add rb_postponed_job API.ko1
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. 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). This change is mostly written by Aman Gupta (tmm1). https://bugs.ruby-lang.org/issues/8107#note-15 [Feature #8107] * gc.c: use postponed job API for finalizer. * common.mk: add dependency from vm_trace.c to debug.h. * ext/-test-/postponed_job/extconf.rb, postponed_job.c, test/-ext-/postponed_job/test_postponed_job.rb: add a test. * thread.c: implement postponed API. * vm_core.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-26* gc.c (gc_stat): collect promote_operation_count andko1
types (RGENGC_PROFILE >= 2). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-26* gc.c (gc_stat): collect shade_operation_count,ko1
remembered_sunny_object_count and remembered_shady_object_count for each types when RGENGC_PROFILE >= 2. They are informative for optimization. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-26* hash.c (rb_hash_tbl_raw), internal.h: added.ko1
Returns st_table without shading hash. * array.c: use rb_hash_tbl_raw() for read-only purpose. * compile.c (iseq_compile_each): ditto. * gc.c (count_objects): ditto. * insns.def: ditto. * process.c: ditto. * thread.c (clear_coverage): ditto. * vm_insnhelper.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-26* tool/make-snapshot: use ENV["AUTOCONF"] instead of directly usingnaruse
literal "autoconf". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-26* hash.c, include/ruby/ruby.h: support WB protected hash.ko1
* constify RHash::ifnone and make new macro RHASH_SET_IFNONE(). * insert write barrier for st_update(). * include/ruby/intern.h: declare rb_hash_set_ifnone(hash, ifnone). * marshal.c (r_object0): use RHASH_SET_IFNONE(). * ext/openssl/ossl_x509name.c (Init_ossl_x509name): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25* test/fiddle/test_c_struct_entry.rb,ktsj
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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25* remove trailing spaces.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25* ext/pty/pty.c (get_device_once): FreeBSD 10-current and 9-stablenaruse
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 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25* proc.c (rb_method_entry_min_max_arity): fix missing break in switch.mame
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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25* dir.c (bracket): fix copy-paste error. When the first and lastmame
characters of fnmatch range have different length, fnmatch may have wrongly matched a path that does not really match. Coverity Scan found this bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25* gc.c (after_gc_sweep): reduce full GC timing.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25no clearing method cachenobu
* variable.c (set_const_visibility): return without clearing method cache if no arguments. * vm_method.c (set_method_visibility): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25vm_method.c: quote method namenobu
* vm_method.c (set_method_visibility): quote unprintable method name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25eval.c: rb_frame_callee returns current namenobu
* eval.c (rb_frame_callee): returns the called name of the current frame, not the previous frame. * 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. * variable.c (set_const_visibility): use the called name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24string.c: check argument typenobu
* string.c (rb_str_quote_unprintable): check if argument is a string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24fix a typokazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24* variable.c (set_const_visibility): use rb_frame_this_func() insteadcharliesome
of rb_frame_callee() for getting the name of the called method * test/ruby/test_module.rb: add test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24* gc.c: do major/full GC when:ko1
* number of oldgen object is biggger 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!) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24* intern.h: remove dangling rb_class_init_copy declarationcharliesome
[ruby-core:55120] [Bug #8434] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24* ext/strscan/strscan.c (strscan_aref): raise error if givennaruse
name reference is not found. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24* gc.c (after_gc_sweep, garbage_collect_body): do major GC (full GC)ko1
before extending heaps. TODO: do major GC when there are many old (promoted) objects. * gc.c (after_gc_sweep): remove TODO comments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24configure.in: no runtime path to -Lnobu
* 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] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-23* object.c (rb_obj_clone): should not propagate OLDGEN status.ko1
This propagation had caused WB miss for class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-23fix a typokazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-23load.c: fix invalid readnobu
* load.c (loaded_feature_path): fix invalid read by index underflow. the beginning of name is also a boundary as well as just after '/'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-23gc.c: revert r40898nobu
* gc.c (gc_profile_dump_on): revert r40898. ok to show the record accumulating while lazy_sweep(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-23 * gc.c: do not dump the last recordnobu
* gc.c (gc_profile_dump_on): do not dump the last record, for some reason. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-22gc.c: use size_t and no header if next_index == 0nobu
* 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-22win32.c: check error of SetFilePointernobu
* 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] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-22win32.c: extract setup_overlapped and finish_overlappednobu
* win32/win32.c (setup_overlapped, finish_overlapped): extract from rb_w32_read() and rb_w32_write(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-22* gc.c (gc_prepare_free_objects, rest_sweep, lazy_sweep): fix positionko1
of `during_gc' setting. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* gc.c (garbage_collect): all GC is start from garbage_collect()ko1
(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. * gc.c (gc_prepare_free_objects): use `garbage_collect_body()'. * gc.c (slot_sweep, before_gc_sweep, after_gc_sweep): add logging code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* ext/strscan/strscan.c (strscan_aref): support named captures.naruse
patched by Konstantin Haase [ruby-core:54664] [Feature #8343] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* test/ruby/test_dir_m17n.rb (TestDir_M17N#test_entries_compose):kou
Use #each instead of #map just for iteration. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* ext/digest/lib/digest.rb (Digest::Class.file): Take optionalknu
arguments that are passed to the constructor of the digest class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* gc.c: remove gc_profile_record::is_marked. always true.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* gc.c: fix to collect additional information for GC::Profiler.ko1
* major/minor GC * trigger reason of GC * gc.c (gc_profile_dump_on): change reporting format with added information. * gc.c (gc_profile_record_get): return added information by :GC_FLAGS => array. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* gc.c: GC::Profiler's sweeping time is accumulated all slotko1
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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40876 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* remove trailing spaces.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* common.mk (rdoc-bench): add a benchmark ruleko1
using RDoc. Generate all rdoc related files (same as `make rdoc') in temporary directory and remove them. Excecution time, GC::Profiler and results of GC.stat are printed. * tool/rdocbench.rb: added for `rdoc-bench'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* remove trailing spaces.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21* gc.c (gc_profile_dump_on): `count' should be (int) because itko1
can be negative number. And use pointer for `record' (don't copy). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20dir.c: compose HFS file namesnobu
* dir.c (dir_each): compose HFS file names from UTF8-MAC. [ruby-core:48745] [Bug #7267] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20envutil.rb: envutil in childnobu
* test/ruby/envutil.rb (assert_separately): require envutil in the child process too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20string.c: infectnobu
* string.c (rb_str_conv_enc_opts): should infect. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20* lib/set.rb (Set#delete_if, Set#keep_if): Avoid blockless call ofknu
proc, which is not portable to JRuby. Replace &method() with faster and simpler literal blocks while at it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20* lib/e2mmap.rb: Format of E2MM documentationzzak
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20* ext/extmk.rb: nodoc this filezzak
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20* lib/cmath.rb: Remove duplicate RDoc heading from overviewzzak
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e