Commit graph

1633 commits

Author SHA1 Message Date
nobu
09007ccbaa * vm_core.h (rb_vm_t), gc.c (rb_objspace, rb_newobj), vm.c
(Init_BareVM): per-VM object space support, which is disabled now.

* gc.c (rb_objspace_alloc), vm.c (Init_BareVM): should not use ruby
  malloc here.

* gc.c (garbage_collect, etc): performance improvement by passing the
  reference instead of refering the global variable in each functions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-27 03:20:35 +00:00
nobu
c7451eb725 * error.c (builtin_types), gc.c (count_objects): added Complex and
Rational.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-26 08:42:34 +00:00
ko1
9d0a5d8e96 * include/ruby/ruby.h, gc.c: remove T_BLOCK.
* include/ruby/ruby.h: re-number T_xxx.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-26 08:32:23 +00:00
matz
4d93af26df * gc.c (free_unused_heaps): preserve last used heap segment to
reduce malloc() call.

* gc.c (HEAP_SIZE): use smaller heap segment (2K) for more chance
  to be freed.  based on patch from authorNari <authornari at gmail.com>.

* gc.c (rb_newobj_from_heap): eventually allocate heap segments.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-25 09:03:32 +00:00
usa
fd8734a64d * gc.c (ruby_xmalloc): use size_t for malloc argument instead of long.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20 23:55:09 +00:00
nobu
6b5e24a61a * gc.c (rb_gc_mark_locations): get rid of underflow.
* gc.c (mark_current_machine_context): check if the main thread stack
  position may shink under the intialized position.  [ruby-core:16436]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-18 08:37:50 +00:00
nobu
b2dde8243b * gc.c (Init_stack): use ruby_init_stack. [ruby-dev:34350]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 03:52:27 +00:00
nobu
01f468d138 * gc.c (rb_objspace_t): packed globals. [ruby-dev:34348]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 03:47:04 +00:00
nobu
a39883b74a * gc.c (finalizers): removed. [ruby-dev:34349]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 03:44:15 +00:00
nobu
7b4a171158 * eval.c (ruby_exec_node, ruby_run_node), ruby.c (process_options):
use iseq instead of NODE.

* gc.c (source_filenames): removed.

* include/ruby/intern.h, parse.y (yycompile, parser_mark, parser_free,
  ripper_initialize): rb_source_filename() is no longer used.

* compile.c, compile.h (ERROR_ARGS), parse.y (node_newnode, fixpos,
  parser_warn, e_option_supplied, warn_unless_e_option, range_op,
  cond0): nd_file is no longer used.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-12 03:41:51 +00:00
nobu
b39676f6a9 * configure.in (RUBY_SETJMP, RUBY_LONGJMP, RUBY_JMP_BUF): prefers
__builtin_setjmp, _setjmp over setjmp and sigsetjmp.
  [ruby-core:16023], [ruby-core:16086]

* configure.in (--with-setjmp-type): new option to override the
  default rule in the above.

* eval_intern.h (ruby_setjmp, ruby_longjmp), gc.c (rb_setjmp),
  vm_core.h (rb_jmpbuf_t): use RUBY_SETJMP, RUBY_LONGJMP and
  RUBY_JMP_BUF.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-31 17:58:41 +00:00
tadf
6125552c27 both complex and rational are now builtin classes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-16 00:23:43 +00:00
nobu
96240c6d2d * eval_intern.h (rb_thread_raised_set): use generic flags.
* eval.c (rb_longjmp): clear all raised flags.

* eval.c (stack_check): leave clearing flag to rb_longjmp.

* gc.c (rb_memerror): use thread raised flag instead of static flag.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-12 05:47:10 +00:00
nobu
8c36abe23a * gc.c: fixed indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-12 03:52:52 +00:00
nobu
434b820f51 * gc.c: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-12 03:49:55 +00:00
matz
39787ea14d * numeric.c (fix_to_s): avoid rb_scan_args() when no argument
given. 
* bignum.c (rb_big_to_s): ditto.
* enum.c (enum_first): ditto.
* eval_jump.c (rb_f_catch): ditto.
* io.c (rb_obj_display): ditto.
* class.c (rb_obj_singleton_methods): ditto.
* object.c (rb_class_initialize): ditto.
* random.c (rb_f_srand): ditto.
* range.c (range_step): ditto.
* re.c (rb_reg_s_last_match): ditto.
* string.c (rb_str_to_i): ditto.
* string.c (rb_str_each_line): ditto.
* string.c (rb_str_chomp_bang): ditto.
* string.c (rb_str_sum): ditto.

* string.c (str_modifiable): declare inline.
* string.c (str_independent): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-05 05:22:17 +00:00
akr
8e1d6b214a * gc.c (add_heap): fix previous change. [ruby-dev:33988]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-04 04:42:31 +00:00
nobu
fd847f79a0 * gc.c (add_heap): use binary search to find the place to insert the
new heap slot.  [ruby-dev:33983]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-04 01:21:06 +00:00
matz
384e8e6680 * gc.c (add_heap): sort heaps array in ascending order to use
binary search.

* gc.c (is_pointer_to_heap): use binary search to identify object
  in heaps.  works better when number of heap segments grow big.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-03 08:27:43 +00:00
akr
b58e36da4a * include/ruby/ruby.h (ROBJECT_NUMIV): renamed from ROBJECT_LEN.
(ROBJECT_IVPTR): renamed from ROBJECT_PTR.

* variable.c: follow the above renaming.

* object.c: ditto.

* gc.c: ditto.

* marshal.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-25 16:18:18 +00:00
akr
fec2c12c29 * gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed. [ruby-dev:33857]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-19 09:37:10 +00:00
akr
71c5e48598 * include/ruby/re.h (struct rmatch_offset): new struct for character
offsets.
  (struct rmatch): new struct.
  (struct RMatch): reference struct rmatch.
  (RMATCH_REGS): new macro.

* re.c (match_alloc): initialize struct rmatch.
  (pair_byte_cmp): new function.
  (update_char_offset): update character offsets.
  (match_init_copy): copy regexp and character offsets.
  (match_sublen): removed.
  (match_offset): use update_char_offset.
  (match_begin): ditto.
  (match_end): ditto.
  (rb_reg_search): make character offset updated flag false.
  (match_size): use RMATCH_REGS.
  (match_backref_number): ditto.
  (rb_reg_nth_defined): ditto.
  (rb_reg_nth_match): ditto.
  (rb_reg_match_pre): ditto.
  (rb_reg_match_post): ditto.
  (rb_reg_match_last): ditto.
  (match_array): ditto.
  (match_aref): ditto.
  (match_values_at): ditto.
  (match_inspect): ditto.

* string.c (rb_str_subpat_set): use RMATCH_REGS.
  (rb_str_sub_bang): ditto.
  (str_gsub): ditto.
  (rb_str_split_m): ditto.
  (scan_once): ditto.

* gc.c (obj_free): free character offsets.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-16 20:08:35 +00:00
nobu
91625011c2 * eval.c, gc.c (setjmp): sigsetjmp is a macro on cygwin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-21 03:50:14 +00:00
nobu
df28713ee3 * configure.in (sigsetjmp): check if available.
* eval.c, gc.c (setjmp): do not use _setjmp if sigsetjmp is available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-19 02:21:55 +00:00
akr
6cdef2dc7e * $Date$ keyword removed to avoid inclusion of locale dependent
string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
nobu
0d7405b69f * gc.c (os_obj_of): returns an enumerator if no block given. based on
a patch from Yugui <yugui AT yugui.sakura.ne.jp>.  [ruby-dev:32828]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-28 04:07:33 +00:00
akr
0972cbc284 * gc.c (rb_garbage_collect): new function for debugging.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-21 06:16:56 +00:00
akr
4f13113945 * vm_core.h (rb_thread_t): new member machine_stack_maxsize and
machine_register_stack_maxsize.

* gc.c (rb_gc_stack_maxsize): new global variable for the thread size
  of the main thread.
  (STACK_LEVEL_MAX): use machine_stack_maxsize of current thread.
  (ruby_stack_check): check IA64 register stack.
  (ruby_set_stack_size): set rb_gc_stack_maxsize.
  (Init_stack): set rb_gc_stack_maxsize.

* thread_pthread.ci (native_thread_create): initialize
  th->machine_stack_maxsize and th->machine_register_stack_maxsize.

* vm.c (Init_BareVM): initialize th->machine_stack_maxsize and
  th->machine_register_stack_maxsize.

* thread_win32.ci (native_thread_create): initialize
  th->machine_stack_maxsize.  not tested.  just a guess at all.

[ruby-dev:32604]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-15 04:09:24 +00:00
matz
9d8075b99c * parse.y (expr): redefinable not (!) operator.
* parse.y (arg): ditto.

* object.c (rb_obj_not): new method "!".

* object.c (rb_obj_not_equal): new method "!=".

* object.c (rb_obj_not_match): new method "!~".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-09 16:39:49 +00:00
akr
60d0ddc942 * gc.c (gc_mark_children): obj->as.file.fptr may be 0 for T_FILE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 07:25:07 +00:00
akr
0d8ac93f58 * include/ruby/io.h (rb_io_t): add tied_io_for_writing member.
* io.c: use tied_io_for_writing for duplex popen.

* gc.c: mark tied_io_for_writing.

* common.mk: gc.o depends io.h.

  [ruby-dev:32205]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 03:16:53 +00:00
akr
4cdcfbe2ba * gc.c (count_objects): count TOTAL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-03 23:13:57 +00:00
akr
16c8ac3921 * gc.c (count_objects): ObjectSpace.count_objects implemented.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-03 15:09:10 +00:00
nobu
9c24fed339 * encoding.c (rb_cEncoding): new Encoding class.
* encoding.c (rb_to_encoding, rb_to_encoding_index): helper functions.

* encoding.c (rb_obj_encoding): return Encoding object now.

* gc.c (garbage_collect): mark Encoding objects.

* string.c (rb_str_force_encoding): accept Encoding object as well as
  encoding name.

* include/ruby/encoding.h (rb_to_encoding_index, rb_to_encoding):
  prototypes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-13 16:32:40 +00:00
nobu
36585f17fb * gc.c (id2ref): skip ICLASS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-01 06:57:56 +00:00
nobu
7d0787116d * gc.c (id2ref): T_VALUES is less than T_BLOCK. [ruby-dev:31911]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-01 06:17:50 +00:00
akr
5c0e68c39c * include/ruby/intern.h: export rb_ivar_foreach.
* include/ruby/ruby.h: modify struct RObject and RClass for optimizing
  T_OBJECT space.  [ruby-dev:31853]
  (ROBJECT_LEN, ROBJECT_PTR)
  (RCLASS_IV_TBL, RCLASS_M_TBL, RCLASS_SUPER, RCLASS_IV_INDEX_TBL)
  (RMODULE_IV_TBL, RMODULE_M_TBL, RMODULE_SUPER): abstract accessor
  defined.

* variable.c: support the modified RObject and RClass.

* object.c: ditto.

* class.c: ditto.

* gc.c: ditto.

* marshal.c: ditto.

* eval_method.ci: use the abstract accessor.

* insns.def: ditto.

* proc.c: ditto.

* struct.c: ditto.

* eval.c: ditto.

* error.c: ditto.

* vm.c: ditto.

* insnhelper.ci: ditto.

* ext/digest/digest.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-28 06:21:46 +00:00
nobu
b416cc6f3f * gc.c (rb_mark_set): new function to mark keys.
* marshal.c (struct dump_arg, struct load_arg): added wrappers to mark
  data and compat_tbl entries.  [ruby-dev:31870]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-26 19:40:49 +00:00
nobu
c9faac88af * gc.c (os_obj_of, os_each_obj): hide objects to be finalized.
[ruby-dev:31810]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-23 00:05:07 +00:00
nobu
80eba73d6a * gc.c (gc_mark_rest): copy just used part.
* gc.c (gc_mark_children): mark u1 and u2 of NODE_ARGSCAT.

* gc.c (os_obj_of): hide T_VALUES too.  [ruby-dev:31804]

* gc.c (run_final): freeze temporary argument array.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-21 05:51:43 +00:00
akr
2c8e7a50c1 * include/ruby/ruby.h (struct RBignum): embed digits in RBignum for
small bignums.

* bignum.c: RBignum embeded digits implemented.

* include/ruby/intern.h: declare rb_big_resize.

* gc.c: don't free embedded digits.

* numeric.c: replace direct bignum field accessor by abstract field
  accessor such as RBIGNUM(val)->sign to RBIGNUM_SIGN(val).

* sprintf.c: ditto.

* compar.c: ditto.

* marshal.c: ditto.

* random.c: ditto.

* .gdbinit: support embedded small bignums.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-01 12:02:36 +00:00
akr
2a4c4f7b0c * include/ruby/intern.h: declare rb_hash_tbl.
* include/ruby/ruby.h (RHash): delay st_table allocation.
  rename tbl field to ntbl to detect direct reference to the st_table
  as a compile error.
  (RHASH_TBL): abstract accessor defined.
  (RHASH_ITER_LEV): ditto.
  (RHASH_IFNONE): ditto.
  (RHASH_SIZE): ditto.
  (RHASH_EMPTY_P): ditto.

* hash.c: delay st_table allocation.

* gc.c: replace tbl by ntbl.

* array.c: replace direct field accessor by abstract field accessor
  such as RHASH(hash)->tbl to RHASH_TBL(hash).

* marshal.c: ditto.

* insns.def: ditto.

* ext/iconv/iconv.c: ditto.

* ext/json/ext/generator/generator.c: ditto.

* ext/json/ext/parser/parser.c: ditto.

* ext/syck/rubyext.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-29 23:12:21 +00:00
matz
a25fbe3b3e * encoding.c: provide basic features for M17N.
* parse.y: encoding aware parsing.

* parse.y (pragma_encoding): encoding specification pragma.

* parse.y (rb_intern3): encoding specified symbols.

* string.c (rb_str_length): length based on characters.  
  for older behavior, bytesize method added.

* string.c (rb_str_index_m): index based on characters.  rindex as
  well.

* string.c (succ_char): encoding aware succeeding string.

* string.c (rb_str_reverse): reverse based on characters.

* string.c (rb_str_inspect): encoding aware string description.

* string.c (rb_str_upcase_bang): encoding aware case conversion.
  downcase, capitalize, swapcase as well.

* string.c (rb_str_tr_bang): tr based on characters.  delete,
  squeeze, tr_s, count as well.

* string.c (rb_str_split_m): split based on characters.

* string.c (rb_str_each_line): encoding aware each_line.

* string.c (rb_str_each_char): added.  iteration based on
  characters.

* string.c (rb_str_strip_bang): encoding aware whitespace
  stripping.  lstrip, rstrip as well.

* string.c (rb_str_justify): encoding aware justifying (ljust,
  rjust, center).

* string.c (str_encoding): get encoding attribute from a string. 

* re.c (rb_reg_initialize): encoding aware regular expression

* sprintf.c (rb_str_format): formatting (i.e. length count) based
  on characters.

* io.c (rb_io_getc): getc to return one-character string.
  for older behavior, getbyte method added.

* ext/stringio/stringio.c (strio_getc): ditto.

* io.c (rb_io_ungetc): allow pushing arbitrary string at the
  current reading point.

* ext/stringio/stringio.c (strio_ungetc): ditto.

* ext/strscan/strscan.c: encoding support.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 03:29:39 +00:00
akr
1d23c250f0 * gc.c: use VALGRIND_MAKE_MEM_UNDEFINED to detect use of collected
objects if valgrind is available.  It cannot detect first 2 words 
  because they are used as the free list.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-19 04:34:44 +00:00
ko1
f13e9b734c * gc.c (os_live_obj): fix to skip T_VALUES.
* sample/test.rb: add an ObjectSpace test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-15 09:58:59 +00:00
nobu
39c56c3349 * compile.c, compile.h (DECL_ANCHOR, INIT_ANCHOR): split not to
initialize aggregations with dynamic values.  [ruby-talk:259306]

* eval.c (rb_protect): not to initialize aggregations with dynamic
  values.  [ruby-talk:259306]

* gc.c (mark_current_machine_context): ditto.

* thread.c (thgroup_list, call_trace_func): ditto.

* vm.c (vm_init_redefined_flag): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-20 07:11:35 +00:00
akr
bb44ba9b72 rename mark_current_thread to mark_current_machine_context.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-14 09:47:05 +00:00
akr
4608b08d1f make mark_current_thread static.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-14 07:48:54 +00:00
akr
0886a4d8a0 * configure.in: add --enable-valgrind.
* gc.h (SET_MACHINE_STACK_END): new macro to replace
  rb_gc_set_stack_end.  it find out accurate stack boundary by
  asm using gcc on x86.

* thread.c (rb_gc_set_stack_end): don't define if asm-version
  SET_MACHINE_STACK_END is available.

* gc.c (mark_current_thread): extracted from garbage_collect.
  it use SET_MACHINE_STACK_END to not scan out of stack area.
  it notify conservative GC information to valgrind if
  --enable-valgrind.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-14 07:19:59 +00:00
ko1
6b6bf4dd48 * blockinlining.c: remove "yarv" prefix.
* array.c, numeric.c: ditto.
* insnhelper.ci, insns.def, vm_evalbody.ci: ditto.
* yarvcore.c: removed.
* yarvcore.h: renamed to core.h.
* cont.c, debug.c, error.c, process.c, signal.c : ditto.
* ext/probeprofiler/probeprofiler.c: ditto.
* id.c, id.h: added.
* inits.c: ditto.
* compile.c: rename internal functions.
* compile.h: fix debug flag.
* eval.c, object.c, vm.c: remove ruby_top_self.
  use rb_vm_top_self() instead.
* eval_intern.h, eval_load: ditto.
* gc.c: rename yarv_machine_stack_mark() to
  rb_gc_mark_machine_stack().
* insnhelper.h: remove unused macros.
* iseq.c: add iseq_compile() to create iseq object
  from source string.
* proc.c: rename a internal function.
* template/insns.inc.tmpl: remove YARV prefix.
* thread.c:
* vm.c (rb_iseq_eval): added.
* vm.c: move some functions from yarvcore.c.
* vm_dump.c: fix to remove compiler warning.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-12 04:25:46 +00:00