[#1491] bug — Mathieu Bouchard <matju@...>
6 messages
2003/09/01
[#1492] non-blocking mode behavior (Re: bug)
— nobu.nokada@...
2003/09/01
Hi,
[#1512] New tests — Dave Thomas <Dave@...>
I was looking through the new test/ruby/* stuff just now, and notices
6 messages
2003/09/05
[#1533] GC disable / enable question — Torsten Rueger <torsten.rueger@...>
Moi,
7 messages
2003/09/17
[#1534] Re: GC disable / enable question
— nobu.nokada@...
2003/09/17
Hi,
[#1541] How to debug ? — Torsten Rueger <torsten.rueger@...>
Moi,
6 messages
2003/09/19
[#1542] Re: How to debug ?
— ts <decoux@...>
2003/09/19
>>>>> "T" == Torsten Rueger <torsten.rueger@hiit.fi> writes:
[#1551] Hashes as keys — "Nathaniel Talbott" <nathaniel@...>
I was just playing around with Hash#hash and discovered that you can't use a
13 messages
2003/09/23
[#1552] Re: Hashes as keys
— Jim Freeze <jim@...>
2003/09/23
On Wednesday, 24 September 2003 at 6:21:33 +0900, Nathaniel Talbott wrote:
[#1556] ostruct.rb patch — "Nathaniel Talbott" <nathaniel@...>
I've been finding OpenStruct to be very useful lately, and then I discovered
9 messages
2003/09/24
[#1557] Re: ostruct.rb patch
— "NAKAMURA, Hiroshi" <nahi@...>
2003/09/24
Hi, Nathaniel,
Re: [BUG] Additional info regarding ruby-talk:66239
From:
ts <decoux@...>
Date:
2003-09-03 12:30:14 UTC
List:
ruby-core #1503
[[ followup in ruby-core ]]
Well, the old problem
>>>>> "t" == ts <decoux@moulon.inra.fr> writes:
t> Not really sure, but seems to be a bug in gcc : someone can test it with
t> another compiler ?
t> An example to see the problem (ruby-1.8.0, gcc 3.2 Redhat 8)
[...]
t> svg% cat b.rb
t> #!/usr/bin/ruby
t> thread_block= Proc.new do
t> 1.upto(20000) do
t> a = {1=>12}
t> end
t> Thread.new &thread_block
t> end
t> 1.upto(120) do |i|
t> Thread.new &thread_block
t> end
t> p "END"
t> Thread.stop
t> svg%
in eval.c (thread_mark) there is
frame = th->frame;
while (frame && frame != top_frame) {
frame = ADJ(frame);
rb_gc_mark_frame(frame);
if (frame->tmp) {
struct FRAME *tmp = frame->tmp;
while (tmp && tmp != top_frame) {
tmp = ADJ(tmp);
rb_gc_mark_frame(tmp);
tmp = tmp->prev;
}
}
frame = frame->prev;
}
If I've well understood ADJ(frame) is used to adjust the value of frame if
it's in the copied stack, no ?
Now rb_gc_mark_frame(frame) will mark frame->argv, but if frame->argv is
also in the copied stack, ruby must mark ADJ(frame->argv) rather than
frame->argv, no ?
Guy Decoux