gc.c: preserve encoding

* gc.c (should_be_callable): preserve encoding of class name in
  error messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
test_date.rb: nonsense assertion

* test/date/test_date.rb (TestDate#test__const): remove nonsense
  assertion.  nil.frozen? is not date's concern.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c (rb_vm_addr2insn): rename to rb_vm_insn_addr2insn
  to clear what address.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
variable.c (rb_ivar_set): remove unnecessary check

r47512 contains the proper fix

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(21b241a)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2014-09-11

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/ruby.h: freeze nil/true/false.
* gc.c (should_be_finalizable): check frozen after checkin FL_ABLE.
* object.c (rb_obj_taint): check
  OBJ_TAINTABLE(obj).
* object.c (rb_obj_freeze): remove immediate_frozen_tbl
   because all of immediate values are frozen. YAY!
* object.c (rb_obj_frozen_p): ditto.
* test/ruby/test_eval.rb: skip instance_variable_set for
  frozen objects.
* test/ruby/test_weakmap.rb: check ArgumentError instead of
  RuntimeError.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
add reference to the ticket.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
test_object.rb: add assertions

* test/ruby/test_object.rb (test_freeze_immediate): assertions for
  [Feature #8923].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
lib/benchmark.rb: remove CLOCK_MONOTONIC_RAW support

In addition to being unaffected by _offset_ correction,
CLOCK_MONOTONIC_RAW is also unaffected by _frequency_ correction,
making it unsuitable for measuring real time on systems where the
clock is always running too fast or slow.

CLOCK_MONOTONIC (without _RAW) is the correct clock, as it is unaffected
by _offset_ correction (due to human error or battery replacement), but
still takes _frequency_ correction into account for clocks which
consistently run too fast or slow.

Thanks to Vít Ondruch for reporting the issue on ARM [Bug #10202]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ChangeLog: use ascii character

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/ruby.h, gc.c: add new internal events
  RUBY_INTERNAL_EVENT_GC_ENTER and
  RUBY_INTERNAL_EVENT_GC_EXIT.
  When invoking GC process, GC_ENTER event is called.
  When exiting from GC process, GC_EXIT event is called.
  Incremental GC (incremental marking and lazy sweep) can call
  these events many times.
  For example (minor marking):
  (1) GC_ENTER
  - (2) GC_START (minor GC)
    (minor marking)
  - (3) GC_END_MARK
    (start lazy sweep)
  (4) GC_EXIT
    (ruby process)
  (5) GC_ENTER
    (lazy sweep)
  (6) GC_EXIT
    (ruby process)
    (... repeat (5), (6))
  (7) GC_ENTER
      (finish lazy sweep)
    - (8) GC_END_SWEEP
  (9) GC_EXIT
  2nd example (incremental major marking):
  (1) GC_ENTER
  - (2) GC_START (minor GC)
    (start incremental marking)
  (3) GC_EXIT
    (ruby process)
  (4) GC_ENTER
    (incremental marking)
  (5) GC_EXIT
     (ruby process)
     (... repeat (4), (5))
  (6) GC_ENTER
    (finish incremental marking)
  - (7) GC_END_MARK
    (start lazy sweep)
  (8) GC_EXIT
    (ruby process)
  (9) GC_ENTER
    (lazy sweep)
  (10) GC_EXIT
    (ruby process)
    (... repeat (9), (10))
  (11) GC_ENTER
    (finish lazy marking)
  - (12) GC_STOP_SWEEP
  (13) GC_EXIT
  Thease internal events enable to measure GC pause time completely.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* .gitignore: ignored only simplecov.
* coverage/README: Added coverage docs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* properties.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* .gitignore: ignored temporary files and coverage results.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (gc_mark_ptr): rename to gc_mark_set.
* gc.c (gc_mark): add gc_mark_ptr() to skip is_markable_object()
  check. gc_mark_maybe() can use gc_mark_ptr() directly because
  passed pointer is checked by is_pointer_to_heap().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (rb_gc_mark_values): added.
  This function is similar to rb_gc_mark_locations(), but not
  conservertive.
* internal.h: ditto.
* vm.c (env_mark): use rb_gc_mark_values() because env values should
  be Ruby VALUEs.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm.c (rb_vm_register_special_exception): make new function to
  make and register special exceptions.
* vm.c (rb_vm_mark): do not need to mark special exceptions
  because they are registerd by rb_gc_register_mark_object().
* eval.c (Init_eval): use rb_vm_register_special_exception().
* gc.c (Init_GC): ditto.
* proc.c (Init_Proc): ditto.
* thread.c (Init_Thread): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
update NEWS for new GC related features.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e