initial
default origin

* class.c (rb_class_boot): default origin to klass itself.
mark ancestors

* gc.c (gc_mark_children): chain superclass to mark ancestors if not
  prepended.
remove redundant check

* class.c (rb_prepend_module): remove redundant check.
default origin

* class.c (class_alloc): default origin to klass itself.
* test/ruby/test_backtrace.rb: decrease recursion depth
  to reduce consuming stack size.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: pass struct rb_execarg value instead of its options
  field for saving process attribute changing functions.
  (save_redirect_fd): take a struct rb_execarg argument.
  (run_exec_dup2): ditto.
  (run_exec_close): ditto.
  (run_exec_open): ditto.
  (run_exec_dup2_child): ditto.
  (run_exec_pgroup): ditto.
  (run_exec_rlimit): ditto.
  (save_env): ditto.
  (rb_execarg_run_options): follow the above functions change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c, vm_eval.c: set th->base_block properly.
  th->base_block is information for (a) parsing, (b) compiling
  and (c) setting up the frame to execute the program passed by
  `eval' method.  For example, (1) parser need to know up-level
  variables to detect it is variable or method without paren.
  Befor (a), (b) and (c), VM set th->base_block by passed bindng
  (or previous frame information).  After execute (a), (b) and (c),
  VM should clear th->base_block.  However, if (a), (b) or (c)
  raises an exception, then th->base_block is not cleared.
  Problem is that the uncleared value th->balo_block is used for
  irrelevant iseq compilation.  It causes SEGV or critical error.
  I tried to solve this problem: to clear them before exception,
  but finally I found out that it is difficult to do it (Ruby
  program can be run in many places).
  Because of this background, I set th->base_block before
  compiling iseq and restore it after compiling.
  Basically, th->base_block is dirty hack (similar to global
  variable) and this patch is also dirty.
* bootstraptest/test_eval.rb: add a test for above.
* internal.h: remove unused decl.
* iseq.c (rb_iseq_compile_with_option): add base_block parameter.
  set th->base_block before compation and restore it after
  compilation.
* ruby.c (require_libraries): pass 0 as base_block instead of
  setting th->base_block
* tool/compile_prelude.rb (prelude_eval): apply above changes.
* vm.c, vm_eval.c: ditto.
* vm_core.h: add comments.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* README.EXT, README.EXT.ja: use "sval" for the third argument
  name of Data_Wrap_Struct().
  Suggested by @satoh_fumiyasu. Thanks!!!


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* internal.h (rb_execarg): add pgroup_given and pgroup_pgid fields.

* process.c (EXEC_OPTION_PGROUP): removed.
  (rb_execarg_addopt): update the new fields, instead of options array.
  (run_exec_pgroup): take a struct rb_execarg argument.  refer the new
  fields.
  (rb_execarg_run_options): follow run_exec_pgroup change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: Add missing dependencies.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
lib/test/unit.rb: initialize ivar

* lib/test/unit.rb (Test::Unit::Runner#del_status_line): initialize
  @status_line_size if needed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
lib/test/unit.rb: show file count in parallel mode

* lib/test/unit.rb (Test::Unit::Runner#_run_parallel): show file count
  in parallel mode.  since worker processes run tests per files, the
  parent process cannot tell how many tests will be run in advance.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Merge branch 'trunk' of /Users/nobu/src/ruby/ruby into module-prepend