nobu
87d469b150
* eval.c, gc.c (_longjmp): never return. see [ruby-core:23241]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-01 04:12:40 +00:00
nobu
d09363d8c9
* eval.c (proc_invoke): shares dmethod scope local variables.
...
a patch from coderrr at [ruby-core:23050]
* gc.c (obj_free): do not free cloned scope local variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-22 03:20:14 +00:00
nobu
0d6f4f3668
* eval.c (ruby_cleanup): the order of local variables on stack is
...
undefined. should use outermost VALUE for ruby_init_stack.
* gc.c (rb_stack_growup_p): returns stack grows up.
* gc.c (Init_stack, ruby_init_stack): allows volatile pointer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-19 05:31:58 +00:00
nobu
3175b6e7bb
* gc.c (Init_stack): use ruby_init_stack. [ruby-dev:34350]
...
* intern.h (Init_stack): make to call ruby_init_stack.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-03 09:38:01 +00:00
knu
e8b0f17319
* array.c (ary_resize_capa): Remove an unused function.
...
* array.c, bignum.c, dir.c, enumerator.c, gc.c, io.c, numeric.c,
object.c, re.c, string.c, struct.c: Mixing two styles is not a
good thing. Stick with the K&R style in 1.8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-23 12:07:23 +00:00
nobu
6965e73d5f
* gc.c (run_final): frees zombies only. [ruby-dev:38171]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@22971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-15 03:50:25 +00:00
nobu
476eee9d1e
* gc.c (rb_gc_call_finalizer_at_exit): leave Thread objects
...
unfinalized. [ruby-dev:38168]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@22961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-14 19:19:22 +00:00
nobu
979da2675a
* gc.c (run_final): calls free function. [ruby-core:22578]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@22882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-11 03:12:11 +00:00
nobu
3ec5526268
* gc.c (define_final): cannot define finalizer for immediate
...
values. [ruby-core:21500]
* gc.c (define_final): freezes or hides internal values.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@21727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-22 03:18:16 +00:00
nobu
547f4725fa
* gc.c (rb_gc_call_finalizer_at_exit): deffers IO finalization.
...
[ruby-dev:36646]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@21726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-22 02:56:14 +00:00
nobu
707b0e65bd
* gc.c (gc_mark_children): ignores T_ZOMBIE.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@19701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-06 06:26:21 +00:00
nobu
3ae723875b
* gc.c: renamed T_DEFERRED to T_ZOMBIE.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@19695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-06 02:21:58 +00:00
nobu
abbe26c60f
* gc.c (rb_mark_set): new function to mark keys.
...
* marshal.c (struct dump_arg, struct load_arg): added wrappers to mark
data entries. backport from trunk r13527,r13528,r13961,r16533.
[ruby-dev:36082]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@19078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-03 07:53:19 +00:00
nobu
363cad3261
* gc.c (STACK_LEVEL_MAX, ruby_stack_length): returns size_t.
...
[ruby-core:18207]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-09 23:56:17 +00:00
nobu
2a876ff2c6
* gc.c (run_final): runs finalizers with the object terminated.
...
* gc.c (rb_gc_call_finalizer_at_exit): ObjectSpace::finalizers needs
to scan whole object space, although deprecated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-06 20:05:48 +00:00
nobu
3190304db7
* gc.c (chain_finalized_object): deletes finalizers to be invoked from
...
finalizer_table.
* gc.c (rb_gc_call_finalizer_at_exit): warns when could not invoke
finalizers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-06 12:25:47 +00:00
nobu
9d93480190
* gc.c (gc_sweep, obj_free, run_final): defer finalizers of IO and
...
Data. [ruby-dev:35578]
* gc.c (rb_gc_call_finalizer_at_exit): self-referencing finalizers
cannot be invoked. [ruby-dev:35681]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-06 11:52:11 +00:00
nobu
42ec1fa621
* eval.c (rb_thread_schedule): runs deferred finalizers.
...
* gc.c (gc_sweep): sets rb_thread_pending to run deferred finalizers.
* rubysig.h (CHECK_INTS): now checks rb_thread_pending even on
platforms where setitimer is not available. [ruby-core:18045]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-02 07:08:18 +00:00
akr
5daa2e16f0
* gc.c (Init_GC): fix syntax error.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-03 01:03:51 +00:00
nobu
86c58b7813
* error.c (rb_exc_new3): keeps the given string itself.
...
* eval.c (Init_Proc), gc.c (Init_GC): freeze messages of preallocated
special exceptions also.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-02 22:03:24 +00:00
nobu
a9d25a31ee
* eval.c (rb_longjmp): duplicate the thrown exception to set backtrace
...
if it was frozen. clear all raised flags.
* eval.c (stack_check): leave clearing flag to rb_longjmp.
* eval.c (rb_thread_set_raised, rb_thread_reset_raised): use generic
flags.
* eval.c (Init_Proc), gc.c (Init_GC): freeze preallocated special exceptions.
* gc.c (rb_memerror): use thread raised flag instead of static flag,
and raise nomem_error without backtrace if failed to make backtrace.
[ruby-dev:34724]
* gc.c (ruby_xmalloc): increase malloc_increase only if malloc
succeeds. failed malloc size can be huge. it may increase
malloc_limit too big which cause less GC and memory full.
(ruby_xrealloc): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-02 21:17:31 +00:00
suke
77ec4ead90
* gc.c: add rb_during_gc(). based on a patch from arton <artonx AT
...
yahoo.co.jp> at [ruby-dev:35313].
* intern.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-02 17:54:25 +00:00
nobu
2cec384adc
* gc.c (rb_memerror): exit with EXIT_FAILURE instead of magic number.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-13 05:24:40 +00:00
nobu
043222ba7c
* gc.c (CHECK_STACK): STACK_LENGTH should be less than
...
STACK_LEVEL_MAX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-13 05:19:14 +00:00
akr
2f5aa44b8e
* gc.c (os_obj_of): assure to not free the scanning heap.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-07 08:12:44 +00:00
nobu
722ad8f214
* eval.c (search_method, remove_method, error_print, rb_alias)
...
(rb_eval, rb_rescue2, search_required, Init_eval, rb_thread_create),
gc.c (rb_source_filename, Init_stack), io.c (rb_io_getline),
parse.y (rb_id2name, rb_parser_free): suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-21 14:29:55 +00:00
kazu
b54786ffbc
* signal.c, gc.c: New methods: GC.stress, GC.stress=;
...
backported from 1.9. a patch from Tadashi Saito
in [ruby-dev:34394] and bug#19000
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-15 07:54:11 +00:00
nobu
9cee075559
* rubyio.h (rb_io_t): renamed from OpenFile.
...
* ruby.h (struct RHash), file.c, gc.c, io.c, ext/dl/dl.c,
ext/io/wait/wait.c, ext/pty/pty.c, ext/readline/readline.c,
ext/socket/socket.c: ditto.
* win32/win32.h: removed workaround for OpenFile.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-15 03:35:55 +00:00
knu
125d830eb8
* array.c (rb_ary_collect_bang, rb_ary_select): Return an
...
enumerator if no block is given.
* dir.c (dir_each, dir_foreach): Return an enumerator if no block
is given.
* enum.c (enum_partition, enum_sort_by): Ditto.
* gc.c (os_each_obj): Ditto.
* hash.c (rb_hash_delete_if, rb_hash_reject_bang, rb_hash_select,
rb_hash_each_value, rb_hash_each_key, rb_hash_each_pair,
env_each_key, env_each_value, env_each, env_each_pair,
env_reject_bang, env_delete_if, env_select): Ditto.
* numeric.c (num_step, int_upto, int_downto, int_dotimes): Ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 08:57:23 +00:00
nobu
ba570c7378
* 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.c (ruby_setjmp, ruby_longjmp), gc.c (rb_setjmp),
node.h (rb_jmpbuf_t): use RUBY_SETJMP, RUBY_LONGJMP and
RUBY_JMP_BUF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-31 17:58:14 +00:00
nobu
f5c66ea482
* gc.c: removed trailing spaces.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-12 03:49:55 +00:00
akr
c90f8f0918
* gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed. [ruby-dev:33857]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-19 09:37:10 +00:00
shyouhei
e959c8cdc3
* gc.c (rb_newobj): prohibit call of rb_newobj() during gc.
...
Submitted by Sylvain Joyeux [ruby-core:12099].
* ext/dl/ptr.c: do not use LONG2NUM() inside dlptr_free().
Slightly modified fix bassed on a patch by Sylvain Joyeux
[ruby-core:12099] [ ruby-bugs-11859 ] [ ruby-bugs-11882 ]
[ ruby-patches-13151 ].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-11 07:52:13 +00:00
nobu
9041dfdefc
* eval.c, gc.c (setjmp): sigsetjmp is a macro on cygwin.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-21 03:50:14 +00:00
nobu
475449aa18
* 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/branches/ruby_1_8@15124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-19 02:21:55 +00:00
akr
1202462b6f
* gc.c (stack_end_address): use local variable address instead of
...
__builtin_frame_address(0) to avoid SEGV on SunOS 5.11 on x86 with
gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-17 04:47:24 +00:00
matz
02914c8a16
* gc.c (id2ref): valid id should not refer T_VALUE nor T_ICLASS.
...
[ruby-dev:31911]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-01 13:45:06 +00:00
nobu
7522f72276
* 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/branches/ruby_1_8@13497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-23 00:05:07 +00:00
knu
deeafa0e17
* env.h (SCOPE_CLONE): Introduce a new scope flag to prevent a
...
local_tbl region from getting freed many times; submitted by
Chikanaga Tomoyuki <chikanag AT nippon-control-system.co.jp> in
[ruby-dev:30460].
* eval.c (proc_invoke): Ditto.
* gc.c (obj_free): Ditto.
* parse.y (top_local_setup_gen): Ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-03 07:28:54 +00:00
usa
5fbfcbac15
* gc.c (ruby_init_stack): decrease "stack level too deep" in Windows.
...
merge from trunk.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-01 08:03:31 +00:00
matz
bb39b1ea1f
* eval.c (rb_eval): fix commit miss. [ruby-dev:29707]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-30 03:40:11 +00:00
matz
fc9099e7e3
* gc.c (gc_mark_children): NODE_POSTEXE holds Ruby VALUE.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-24 14:29:57 +00:00
akr
53cec657a1
* common.mk, configure.in, defines.h, eval.c, gc.c, main.c,
...
numeric.c, ruby.h, ia64.s: backport IA64 HP-UX support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-01 18:47:11 +00:00
matz
74483e11f5
* gc.c (gc_sweep): typo fixed.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-25 08:12:46 +00:00
matz
390aa97698
* dln.c, eval.c, gc.c, regex.c, ruby.h: shut up AIX alloca
...
warning. [ruby-dev:29191]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-07 03:43:42 +00:00
matz
ad723e6f24
* st.c (malloc): use xmalloc/xcalloc instead of plain
...
malloc/calloc, to detect memory allocation failure. see
<http://www.nongnu.org/failmalloc/ >.
* gc.c (rb_memerror): should not raise empty nomem_error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-14 17:12:47 +00:00
akr
fb5ff37bae
* gc.c (gc_sweep): expand heap earlier.
...
reported by MORITA Naoyuki. [ruby-dev:28960]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-10 10:26:45 +00:00
akr
00f6107621
* gc.c (id2ref): fix symbol test.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-04 06:28:51 +00:00
akr
6828bbeae0
* gc.c: align VALUE with sizeof(RVALUE) globally.
...
(is_pointer_to_heap): check alignment out of loop.
(id2ref): avoid collision between symbols and objects.
(rb_obj_id): ditto. moved from object.c.
[ruby-talk:178364] [ruby-core:7401]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-02 10:46:17 +00:00
ocean
2b3243d7fa
* gc.c: commited magic for reducing RVALUE size on windows. (24->20byte)
...
[ruby-core:7474]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-02 09:01:51 +00:00