[self-interest] Re: Scientific experiment

Douglas Atique datique at alcatel.com.br
Wed Jun 23 12:03:14 UTC 1999


Ain't this a bit strange? I mean, if I (a Self programmer) remove all references to
an object (and I guess for us Self programmers the lobby is THE root) by removing
it from the lobby, shouldn't the VM garbage collect the object? I am concerned with
whether this can cause memory to fill up unnecessarily while the programmer thinks
(s)he did remove the object from memory. On the other hand, I know that many
objects not referenced by the lobby (thus anonymous) are usable from the graphical
environment, even though not very easily in the text prompt. This makes me think of
another issue. When Self programmers had only the text prompt, did it make sense to
have anonymous objects? What is the connection among all this stuff? I hope to be
clear in my meaning.
Thanks for the code-scavenging* help, Mario.
Regards,
Douglas
_________
* pun not intended

mario at Eng.Sun.COM wrote:

> The lobby is not the only root for GC.  This is the full list (from
> memory/universe.h in the VM sources).  These are all the objects that
> are required for correct VM operation and therefore cannot be
> reclaimed.  You probably had some stuff lying around reference from
> one or more of these (the object ID array is a likely culprit -- see
> the code in the environment for a full GC for how to clear it).
>
> -Mario
>
> # define APPLY_TO_VM_OOPS(template)                                           \
>     template(&Memory->lobbyObj)                                               \
>     template(&Memory->nilObj)                                                 \
>     template(&Memory->trueObj)                                                \
>     template(&Memory->falseObj)                                               \
>     template(&Memory->stringObj)                                              \
>     template(&Memory->assignmentObj)                                          \
>     template(&Memory->objVectorObj)                                           \
>     template(&Memory->byteVectorObj)                                          \
>     template(&Memory->blockTraitsObj)                                         \
>     template(&Memory->deadBlockObj)                                           \
>     template(&Memory->processObj)                                             \
>     template(&Memory->profilerObj)                                            \
>     template(&Memory->outerActivationObj)                                     \
>     template(&Memory->blockActivationObj)                                     \
>     template(&Memory->proxyObj)                                               \
>     template(&Memory->fctProxyObj)                                            \
>     template(&Memory->literalsObj)                                            \
>     template(&Memory->slotAnnotationObj)                                      \
>     template(&Memory->objectAnnotationObj)                                    \
>     template(&Memory->errorObj)                                               \
>                                                                               \
>     template(&Memory->assignmentMirrorObj)                                    \
>     template(&Memory->blockMirrorObj)                                         \
>     template(&Memory->byteVectorMirrorObj)                                    \
>     template(&Memory->outerMethodMirrorObj)                                   \
>     template(&Memory->blockMethodMirrorObj)                                   \
>     template(&Memory->floatMirrorObj)                                         \
>     template(&Memory->objVectorMirrorObj)                                     \
>     template(&Memory->slotsMirrorObj)                                         \
>     template(&Memory->smiMirrorObj)                                           \
>     template(&Memory->stringMirrorObj)                                        \
>     template(&Memory->processMirrorObj)                                       \
>     template(&Memory->outerActivationMirrorObj)                               \
>     template(&Memory->blockActivationMirrorObj)                               \
>     template(&Memory->proxyMirrorObj)                                         \
>     template(&Memory->fctProxyMirrorObj)                                      \
>     template(&Memory->profilerMirrorObj)                                      \
>     template(&Memory->mirrorMirrorObj)                                        \
>                                                                               \
>     template(&Memory->objectIDArray)                                          \
>     template(&BugHuntNames)                                                   \
>
> ------------------------------------------------------------------------
> Make the News Come to you! FREE email newsletters sent directly to
> your in-box USAToday, Forbes, Wired, and more. Sign-up NOW!
> http://clickhere.egroups.com/click/316
>
> eGroups.com home: http://www.egroups.com/group/self-interest
> http://www.egroups.com - Simplifying group communications


------------------------------------------------------------------------

eGroups.com home: http://www.egroups.com/group/self-interest
http://www.egroups.com - Simplifying group communications






More information about the Self-interest mailing list