Michael Foord wrote: > On 06/05/2011 18:26, Mark Shannon wrote: >> Michael Foord wrote: >>> On 06/05/2011 17:51, Stefan Behnel wrote: >>>> Mark Shannon, 06.05.2011 18:33: >>>>> skip at pobox.com wrote: >>>>>> Antoine> Since we're sharing links, here's Matt Mackall's take: >>>>>> Antoine> >>>>>> http://www.selenic.com/pipermail/mercurial-devel/2011-May/031055.html >>>>>> >>>>>>> From that note: >>>>>> 1: You can't have meaningful destructors, because when destruction >>>>>> happens is undefined. And going-out-of-scope destructors are >>>>>> extremely >>>>>> useful. Python is already a rather broken in this regard, so feel >>>>>> free >>>>>> to ignore this point. >>>>>> >>>>>> Given the presence of cyclic data I don't see how reference >>>>>> counting or >>>>>> garbage collection win. Ignoring the fact that in a pure reference >>>>>> counted >>>>>> system you won't even consider cycles for reclmation, would both >>>>>> RC and GC >>>>>> have to punt because they can't tell which object's destructor to >>>>>> call >>>>>> first? >>>>> It doesn't matter which is called first. >>>> May I quote you on that one the next time my software crashes? >>>> >>> Arbitrarily breaking cycles *could* cause a problem if a destructor >>> attempts to access an already collected object. Not breaking cycles >>> *definitely* leaks memory and definitely doesn't call finalizers. >> You don't need to break the cycles to call the finalizers. Just call >> them, then collect the whole cycle (assuming it is still unreachable). >> >> The GC will *never* reclaim a reachable object. Objects awaiting >> finalization are reachable, by definition. >> > Well it was sloppily worded, so replace it with: > > if a finalizer attempts to access an already finalized object. A finalized object will still be a valid object. Python code cannot make an object unsafe. Obviously C code can make it unsafe, but that's true of C code anywhere. For example, a file object will close itself during finalization, but its still a valid object, just a closed file rather than an open one. > > Michael >>> Michael >>> >>>> It may not make a difference for the runtime, but the difference for >>>> user software may be "dead" or "alive". >>>> >>>> Stefan >>>> >>>> _______________________________________________ >>>> Python-Dev mailing list >>>> Python-Dev at python.org >>>> http://mail.python.org/mailman/listinfo/python-dev >>>> Unsubscribe: >>>> http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk >>> > >
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4