[#66079] gc_sweep(): unknown data type 48 — Mauricio Fern疣dez <batsman.geo@...>

15 messages 2003/03/01
[#66082] Re: [BUG] gc_sweep(): unknown data type 48 — nobu.nokada@... 2003/03/01

Hi,

[#66085] Re: [BUG] gc_sweep(): unknown data type 48 — Mauricio Fern疣dez <batsman.geo@...> 2003/03/01

On Sat, Mar 01, 2003 at 07:26:58PM +0900, nobu.nokada@softhome.net wrote:

[#66088] Anything like Class::DBI from Perl — pw-googlegroups@... (Peter Wilkinson)

We've been doing some work using Class::DBI in Perl which makes access

17 messages 2003/03/01

[#66217] Prolly a simple question — <ghost-no-spam@...>

Sorry if these questions have come up before, but google searching hasn't

20 messages 2003/03/03

[#66245] TCPSocket delay problem — Seth Kurtzberg <seth@...>

Matz,

23 messages 2003/03/04

[#66269] OSCON — ptkwt@...1.aracnet.com (Phil Tomson)

For those coming to OSCON this year...

18 messages 2003/03/04

[#66315] system command expansion after PTY.spawn — Christian von Mueffling <cvm@...>

Hi!

13 messages 2003/03/05

[#66330] cookies in eruby mod_ruby — Daniel Bretoi <lists@...>

Can someone explain how to set/delete cookies using mod_ruby (eruby)?

13 messages 2003/03/06

[#66332] Russian Ruby resource and Ruby Course — leikind@... (Yuri Leikind)

Hi all,

19 messages 2003/03/06

[#66392] DRB and threads — Brian Candler <B.Candler@...>

I wonder if anyone can give me some hints on the interactions between dRuby

22 messages 2003/03/06
[#66417] Re: DRB and threads — "Robert Klemme" <bob.news@...> 2003/03/07

[#66421] Re: DRB and threads — Brian Candler <B.Candler@...> 2003/03/07

On Fri, Mar 07, 2003 at 07:15:29PM +0900, Robert Klemme wrote:

[#66449] Re: DRB and threads — ahoward <ahoward@...> 2003/03/08

On Fri, 7 Mar 2003, Brian Candler wrote:

[#66454] Re: DRB and threads — Brian Candler <B.Candler@...> 2003/03/08

On Sat, Mar 08, 2003 at 11:38:31AM +0900, ahoward wrote:

[#66440] Solving the 'strange language' documentation problem — "Josef 'Jupp' Schugt" <jupp@...>

Dear Rubyists,

18 messages 2003/03/07

[#66466] I'm to give short talk on ruby at work, anybody have material/outlines they can donate/ — Sam Roberts <sroberts@...>

10 messages 2003/03/08

[#66469] What character sets are available in Ruby ? — peterjohannsen@... (pj)

There is a Ruby FAQ which I read that said that Ruby only supports

17 messages 2003/03/08

[#66522] Thinking of learning Ruby — "anonimous" <n.thomp@...>

I have abour 3 or 4 years experience with Linux, and about 2 years

45 messages 2003/03/10

[#66530] Protocols — "Ray Capozzi" <Ray_Capozzi@...>

Is there a preferred set of ruby libraries for client/server solutions? As

26 messages 2003/03/10
[#66533] Re: Protocols — "MikkelFJ" <mikkelfj-anti-spam@...> 2003/03/10

[#66548] Re: Protocols — <jbritt@...> 2003/03/10

> "Ray Capozzi" <Ray_Capozzi@hotmail.com> wrote in message

[#66633] Threads and DRb — "Hal E. Fulton" <hal9000@...>

I changed the title here because this is not

16 messages 2003/03/10

[#66805] Ruby newbie uninstall question? — "Colin Coates" <colin@...>

Hello Everyone,

12 messages 2003/03/12

[#66850] Ruby / Eiffel ? — <cailloux@...>

Hello evry body

23 messages 2003/03/13

[#66906] Syck 0.08 -- Next-generation of YAML.rb — why the lucky stiff <yaml-core@...>

citizens,

21 messages 2003/03/14
[#66931] Re: [ANN] Syck 0.08 -- Next-generation of YAML.rb — Richard Kilmer <rich@...> 2003/03/14

Works great under OS X and Ruby 1.8!

[#66927] dynamically create a method — Rudolf Polzer <abuse@...>

Is there a possiblilty to dynamically create a method, like this?

14 messages 2003/03/14

[#66974] The onion truck strikes again ... Announcing rake — Jim Weirich <jweirich@...>

Ok, let me state from the beginning that I never intended to write this

25 messages 2003/03/15

[#67013] ANN: vcard 0.1 - a vCard decoding library — Sam Roberts <sroberts@...>

http://raa.ruby-lang.org/list.rhtml?name=vcard

10 messages 2003/03/15

[#67071] How do I get irb to use readline, (with OS X)? — Sam Roberts <sroberts@...>

I'm sure I saw something about this somewhere, but I've been searching,

12 messages 2003/03/16

[#67074] ANN: Madeleine 0.1 — Anders Bengtsson <ndrsbngtssn@...>

28 messages 2003/03/16
[#67109] Re: ANN: Madeleine 0.1 — Brian Candler <B.Candler@...> 2003/03/17

On Mon, Mar 17, 2003 at 07:00:35AM +0900, Anders Bengtsson wrote:

[#67115] Re: ANN: Madeleine 0.1 — Anders Bengtsson <ndrsbngtssn@...> 2003/03/17

--- Brian Candler <B.Candler@pobox.com> skrev:

[#67124] Re: ANN: Madeleine 0.1 — Brian Candler <B.Candler@...> 2003/03/17

On Mon, Mar 17, 2003 at 11:37:56PM +0900, Anders Bengtsson wrote:

[#67128] Re: ANN: Madeleine 0.1 — Anders Bengtsson <ndrsbngtssn@...> 2003/03/17

--- Brian Candler <B.Candler@pobox.com> wrote:

[#67222] OT: XML too hard (YAML opportunity?) — ptkwt@...1.aracnet.com (Phil Tomson)

On /. today there is a discussion about a weblog entry by an XML

27 messages 2003/03/18
[#67239] Re: XML too hard (YAML opportunity?) — <jbritt@...> 2003/03/19

> On /. today there is a discussion about a weblog entry by an XML

[#67302] Frequency of announcements — "Josef 'Jupp' Schugt" <jupp@...>

Hi!

14 messages 2003/03/19

[#67304] Strong advantages over Python — Greg McIntyre <greg@...>

Hi lovely Ruby people,

111 messages 2003/03/20
[#67408] Re: Strong advantages over Python — Greg McIntyre <greg@...> 2003/03/21

Good list. Amalgamated with http://www.ruby-lang.org/en/whats.html, it

[#67416] Re: Strong advantages over Python — Paul Prescod <paul@...> 2003/03/21

Greg McIntyre wrote:

[#67663] Ruby lecture slides (was Strong advantages over Python) — Greg McIntyre <greg@...> 2003/03/23

Thanks to all of you who answered and cleared up some of my perceptions

[#67675] Re: Ruby lecture slides (was Strong advantages over Python) — Paul Prescod <paul@...> 2003/03/23

Greg McIntyre wrote:

[#67685] Re: Ruby lecture slides (was Strong advantages over Python) — Mark Wilson <mwilson13@...> 2003/03/24

[#67697] Re: Ruby lecture slides (was Strong advantages over Python) — Greg McIntyre <greg@...> 2003/03/24

Mark Wilson <mwilson13@cox.net> wrote:

[#67346] class level Exception handling — Xiangrong Fang <xrfang@...>

Hi

12 messages 2003/03/20

[#67366] Newbie question: 9/5=1 ? — Thomas Jollans <nospam@...>

while learning ruby i wanted to program a simple fahrenheit to celsius

16 messages 2003/03/20

[#67387] Ruby tutorial download — Daniel Carrera <dcarrera@...>

Someone asked that I make the ruby tutorial available for download,

13 messages 2003/03/20

[#67415] Proposal: new operator: '<-' (for assignments) — ptkwt@...1.aracnet.com (Phil Tomson)

15 messages 2003/03/21

[#67446] Ruby & LaTeX — Walter Cazzola <cazzola@...>

Dear Ruby Experts,

19 messages 2003/03/21

[#67514] Rake problem? — manfred.lotz@... (Manfred)

Hi,

15 messages 2003/03/21

[#67546] Expression results — debitsch@... (Rasmus)

Hello,

22 messages 2003/03/21
[#67549] Re: Expression results — "Hal E. Fulton" <hal9000@...> 2003/03/21

----- Original Message -----

[#67634] exiting a loop — Daniel Carrera <dcarrera@...>

Hello,

31 messages 2003/03/23

[#67711] Iterate over two lists in parallel — Gavin Sinclair <gsinclair@...>

On Monday, March 24, 2003, 1:54:53 PM, Julian wrote:

33 messages 2003/03/24

[#67915] Conditionally make a method private? — Jeremy <thinker5555@...>

Hello again!

13 messages 2003/03/26

[#67961] What are the differences between Ruby's blocks and Python's lambdas? — sdieselil@... (sdieselil)

See subject.

22 messages 2003/03/26
[#67966] Re: What are the differences between Ruby's blocks and Python's lambdas? — "Chris Pine" <nemo@...> 2003/03/26

As was mentioned, Ruby has lambdas, but they are commonly called "procs".

[#67967] Re: What are the differences between Ruby's blocks and Python's lambdas? — Mauricio Fern疣dez <batsman.geo@...> 2003/03/26

On Thu, Mar 27, 2003 at 12:50:04AM +0900, Chris Pine wrote:

[#67975] Re: What are the differences between Ruby's blocks and Python's lambdas? — Paul Brannan <pbrannan@...> 2003/03/26

On Thu, Mar 27, 2003 at 01:01:25AM +0900, Mauricio Fern疣dez wrote:

[#67983] Re: What are the differences between Ruby's blocks and Python's lambdas? — Mauricio Fern疣dez <batsman.geo@...> 2003/03/26

On Thu, Mar 27, 2003 at 02:20:48AM +0900, Paul Brannan wrote:

[#67986] Re: What are the differences between Ruby's blocks and Python's lambdas? — Paul Brannan <pbrannan@...> 2003/03/26

On Thu, Mar 27, 2003 at 04:40:40AM +0900, Mauricio Fern疣dez wrote:

[#68082] Array question — walter@...

Any one know why Array.join can't take a code block and join that

28 messages 2003/03/27

[#68198] Announce: RHDL-0.4.2 (Ruby HDL) an agile HDL — ptkwt@...1.aracnet.com (Phil Tomson)

RHDL 0.4.2 is now available at:

12 messages 2003/03/29

[#68199] Ruby 1.6.8 vs Ruby 1.8.0 preview 2 - benchmarks — djberg96@... (Daniel Berger)

Hi all,

11 messages 2003/03/29

[#68201] Weighted random selection -- how would you do this? — "Hal E. Fulton" <hal9000@...>

Here's a little question for you.

24 messages 2003/03/29

[#68254] Saving code written during an irb session — Bil Kleb <W.L.Kleb@...>

OK, so I admit: I'm stupid. How do I save the code I've generated

19 messages 2003/03/30

[#68271] Hard coded newline characters — David King Landrith <dave@...>

There are a surprising number of ruby source files that have newline

24 messages 2003/03/30
[#68286] Re: Hard coded newline characters — nobu.nokada@... 2003/03/31

Hi,

[#68328] Re: Hard coded newline characters — David King Landrith <dave@...> 2003/03/31

On Sunday, March 30, 2003, at 08:06 PM, nobu.nokada@softhome.net wrote:

[#68318] syntax highlighting problem in vim — "Josef 'Jupp' Schugt" <jupp@...>

Hi!

16 messages 2003/03/31
[#68325] Re: syntax highlighting problem in vim — KONTRA Gergely <kgergely@...> 2003/03/31

Negative. It is correct for me. How is it displayed at you?

Garbage collector problems

From: "Jaen Saul" <jaen@...>
Date: 2003-03-25 18:14:06 UTC
List: ruby-talk #67877
Note: I assume you know basic facts about the C stack, I'm using the x86
stack (continuous, grows downwards) as a reference

The Ruby GC scans the C stack for heap pointers to find live references
to
Ruby objects in C code.
The problem is that the area of the C stack doesn't get detected
correctly.
Usually it makes no difference - all the references stay inside that
area
anyway.
But when embedding Ruby, things get a little bit different.

The stack base gets set when you first call ruby_init() (calling
Init_stack
somewhere) or when the current stack pointer is higher than the current
stack
base.
This almost always suffices, because ruby_init() gets called at the top
level of your program, usually main(), so the stack base gets set high
enough
to find any references that are held in procedures called by main().

But let's look at another (imaginary) case - a Ruby extension for
PostgreSQL
that embeds Ruby.

Lets say that ruby_init() gets called by PostgreSQL while initializing
it's
extensions. The extension finding procedure is very complex, so it has
accumulated a lot of stack.

Stack diagram ahead (stack grows leftwards)

ruby_init() --- some_proc() --- some_proc() --- load_ext() --- main()

^^^ Now, the stack base gets set here.

After a while, it falls back to main()-level select(), a request arrives
and
immediately Ruby has to execute code, this time with low stack overhead.

............................... ruby_stuff() --- request() --- main()

^^^ Stack base is still here

ruby_stuff() holds a lot of references to Ruby objects and allocates
more
memory, so after a while the garbage collector gets called. The stack
base
gets fixed up according to the rule above.

................... ruby_gc --- ruby_stuff() --- request() --- main()

                        ^^^ Stack base moved here

What is wrong with this situation? Well, the stack base gets moved
BEFORE
ruby_stuff(), and stack references held by ruby_stuff() don't get
scanned!
So when the garbage collector gets called, it sweeps objects that are
still
held by ruby_stuff()!

I tested this using http://slowbyte.colony.ee/ruby/boom.c and it seems
that
I'm right, at least it segfaults when I do the steps I described above.
I
also extended the GC a bit and it shows that it really doesn't scan the
ruby_stuff() area :) (Yes, boom.c is a hack, but this could happen in
real
life :)

So what's my point? How to fix this? I don't know :) I'm just trying to
warn
all the people that embed Ruby. Please call ruby_init() in main() so the
GC
can find your objects :)

-Jaen Saul aka SlowByte
http://slowbyte.colony.ee/
http://jaen.saul.ee/


In This Thread

Prev Next