From: Charles Thornton Date: 2008-01-20T14:01:16+09:00 Subject: [Fwd: IRHG - GC_MARK Question] This is a multi-part message in MIME format. --------------090002050103040002070900 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit --------------090002050103040002070900 Content-Type: message/rfc822; name="IRHG - GC_MARK Question" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="IRHG - GC_MARK Question" Message-ID: <4792D72C.7050007@hawthorne-press.com> Date: Sat, 19 Jan 2008 23:07:56 -0600 From: Charles Thornton User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.0.10) Gecko/20070226 CentOS/1.0.8-0.2.el4.centos SeaMonkey/1.0.8 MIME-Version: 1.0 To: ruby-core@ruby-lang.org Subject: IRHG - GC_MARK Question Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit OK I am documenting GC_MARK in GC.C gc_mark(ptr,lev) .... It seems that 'lev' is being used to limit the Depth of the trace? Correct? NOW: If 'lev' > GC_LEVEL_MAX, the obj pointer is pushed onto a secondary stack (mark_stack_overflow). If this happens I assume that at some point the ptr's are pulled off the mark_stack and mark tracing continue's at this point? Correct? If the 'mark_stack' get's to deep I assume that mark tracing stops here. ( It should not be a failure --- Just a "MORE" conservative pass? that is some objects won't be collected that COULD have been??). Now 'lev' == 0 && ruby_stack_check() seems to imply that the ruby stack can get to full?? Something about this does not seem right? Can someone explain any errors of mine. Thanks. Ruby Hackers Guide Translating Chuck T. --------------090002050103040002070900--