* include/ruby/ruby.h (OBJ_WRITE): cast to (VALUE *) for second
  parameter `slot'. You don't need to write a cast (VALUE *) any more.
* 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().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (rgengc_rememberset_mark): call gc_mark_children() for
  remembered objects directly instead of pushing on the mark stack.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (rb_gc_giveup_promoted_writebarrier): remove `rest_sweep()'
  because all of remembered objects are called for gc_mark_children().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 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.
* gc.c: use above fields.



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

* 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))
* gc.c (gc_marks): record `oldgen_object_count' into current profile`
  record directly.
* gc.c (rgengc_rememberset_mark): same for remembered_normal_objects
  and remembered_shady_objects.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Imported minitest 4.7.5 (r8724)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 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.



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

* load.c (rb_load_internal): suppress clobbered-by-longjmp warning by
  gcc 4.4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* pack.c (num2i32): Removed.
  (pack_pack): Don't use num2i32.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* bignum.c (CLEAR_LOWBITS): Rewritten without RSHIFTX.
  (RSHIFTX): Removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/etc/etc.c (etc_getpwnam): use PRIsVALUE in format string instead
  of %s and RSTRING_PTR

* ext/etc/etc.c (etc_getgrnam): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* bignum.c (bary_pack): MEMZERO can be used even if nails is not zero.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/dl/cfunc.c (rb_dlcfunc_call): Use rb_big_pack instead of
  rb_big2ulong_pack and rb_big2ull.

* include/ruby/intern.h (rb_big2ulong_pack): Deprecated.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/etc/etc.c (setup_passwd): revert r41560, unnecessary

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (rgengc_check_shady): add new WB miss checking
  on RGENGC_CHECK_MODE >= 2.

    (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 rememberd
      then, it should be WB miss.

  This idea of this checker is by Masaya Tarui <tarui@ruby-lang.org>.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 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.

* internal.h (INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION): Defined.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 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.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* pack.c (pack_unpack): Remove specialized unpackers for integers.



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