Please explain the meaning of 'stealing' a ref
Christos TZOTZIOY Georgiou
tzot at sil-tec.gr
Thu Nov 6 11:28:28 EST 2003
My last post in this thread, since it --like Alex noticed too-- tends to
move into 'off-topic' territory.
On Thu, 06 Nov 2003 14:30:30 GMT, rumours say that Alex Martelli
<aleax at aleax.it> might have written:
[snip: Alex ponders on whether the thread remains on topic (it merely
does), then states that, as an author himself, has strong opinions on
style, nuances, fine point of connotation etc]
Point taken, and be sure that all my respect goes to acknowledged
authors like yourself; after all, we don't discuss one of your books or
your style here, but rather the python documentation and how it could be
improved for newcomers --not that *I* *know* how to improve it. I only
pointed parts that might be as unclear to others as to me.
[snip: I suggesting a defining "owning a reference", Alex
counter-proposing a variation to the current doc sentence about what a
function that owns a reference has to do, I accidentally ignoring the
counter proposal, summarising instead where in the docs the answers to
my questions can be collected from]
>So what about my proposed transliteration of "when X, Y" into "X
>means Y"? This is similar to (e.g.) changing "when somebody owns
>a property outright, they can sell it" to "owning a property
>outright means you can sell it" -- essentially equivalent in normal
>English usage, but perhaps more specific or clear to non-natives?
I really have no preference between the two. I believe they carry the
same amount of information. Sorry for not commenting upon your
proposal.
>>>> This text is obviously clear
[snip: I acknowledge a fault on my part in keeping in mind the
difference between owning an object and owning a reference, Alex
re-states the fact that the documentation is clearest on this, I mistake
at a point Alex's use of second person in his sentence as referring to
me, and Alex explains that he used 'you' as a generic person (my
comment: à la 'on' in French) instead of me specifically.]
Explanation and not justification: In English I have met more often the
idiom 'one can only hope' than 'you can only hope' when speaking in
general, so I perceived you meant me. After your clarification, I
understand it's a null issue.
[snip: discussion about the phrase 'Few functions steal references; the
two notable exceptions are...']
Sorry for snipping all of your reply, but this should be kept short. Do
you believe that the following:
'Few functions steal references; of these exceptions, the two notable
are...'
is more to the point of passing the message that the word 'exceptions'
after the semicolon means a subset of the exceptions referenced before
the semicolon?
If you really believe this is a moot point, please, let's drop the
subject without further discussion on this. I insist on my point for
clarity, but I am not an expert, cause I am a self-taught English
speaker (by listening to songs, watching cinema and TV, and practicing
whenever I could with native speakers (mostly British, apart from two
trips to the States)).
I say to drop the subject if you disagree because, pragmatically
speaking, your opinion counts more than mine, so let's keep our energies
for more grave matters.
[snip some more discussion about the 'exceptions' subject]
>> If the python documentation had a terminology dictionary, how would
>> 'stealing', 'borrowing' and 'owning' a reference be defined in a concise
>> and absolutely clear way? I seem to not be able to write these
>> definitions, although I would like to.
>
>The concept of "owning a reference" is the crucial one. "Stealing"
>is just one way to permanently transfer ownership, "borrowing" means
>no transfer of ownership takes place, and these meanings are so close
>to those in everyday language that the "terminology dictionary" would
>have few problems, I believe.
>
>So, focusing on ownership, and foregoing the concision that would
>probably be required in a dictionary, we might say:
>
>"""
>Ownership pertains to references, never to objects (objects are not
>owned: they are always shared). "Owning a reference" means being
>responsible for calling Py_DECREF on it when the reference is no
>longer needed. Ownership can also be transferred, meaning that the
>code that receives ownership of the reference then becomes
>responsible for eventually decref'ing it when it's no longer needed.
>"""
>
>plus, perhaps, pointers to the various appropriate sections in
>the "extending and embedding" tutorial and API reference that deal
>with this concept. Really, the true meaning of "reference
>ownership" is _operational_ -- the "responsibility of eventually
>decref'ing (unless the ownership is transferred)" _together_ with
>the rules for how and when ownership (i.e. responsibility to
>eventually decref) is transferred.
There you go, back to your excellent ability to reply to answers in a
way that seems definite. That's the Alex before the tiresome
python-syntax-in-lisp thread :)
The above text in triple-quotes, believe me, is what I sought since the
start. Our discussion really helped me answer my questions before I
read it clearly in your post; and I firmly believe that your
triple-quoted text should be added to the documentation.
I just submitted patch 837322 merging your words above into the
documentation text --please revise.
Thanks for your time.
--
TZOTZIOY, I speak England very best,
Ils sont fous ces Redmontains! --Harddix
More information about the Python-list
mailing list