topazproject / topaz

A high performance ruby, written in RPython
topazruby.com
BSD 3-Clause "New" or "Revised" License
1k stars 84 forks source link

ObjectSpace#each_object is unsound #843

Closed chrisseaton closed 4 years ago

chrisseaton commented 9 years ago

It produces the set of objects that are being managed by the GC, not the set of live objects, which includes those that have been optimised away. Maybe deoptimise globally before looking for objects?

alex commented 9 years ago

This seems like it's probably true, do you have a test case to reliably demonstrate it?

chrisseaton commented 9 years ago

No I don't. I found it through writing about Truffle's each_object and how it uses deoptimisation and suddenly I thought it may not work in Topaz using just the GC.

But I don't think the problem is entirely theoretical. When we think about allocation removal we often think of small temporary trivial objects nobody would be interested in finding using each_object, but it's also entirely possible that major long-lived application objects never escape.

alex commented 9 years ago

Sure. All that should really be required for this to work is to force all the virtualizables, so it's straightforward.

On Sat, Jun 27, 2015 at 11:41 AM, Chris Seaton notifications@github.com wrote:

No I don't. I found it through writing about Truffle's each_object and how it uses deoptimisation and suddenly I thought it may not work in Topaz using just the GC.

But I don't think the problem is entirely theoretical. When we think about allocation removal we often think of small temporary trivial objects nobody would be interested in finding using each_object, but it's also entirely possible that major long-lived application objects never escape.

— Reply to this email directly or view it on GitHub https://github.com/topazproject/topaz/issues/843#issuecomment-116089812.

"I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire) "The people's good is the highest law." -- Cicero GPG Key fingerprint: 125F 5C67 DFE9 4084

chrisseaton commented 4 years ago

Closing due to inactivity.