(original) (raw)

Is it true that checking for refcount == 1 is enough? What if a user wrote:

args = (compute\_integer(), 5)
# give away args to someone
int.\_\_iadd\_\_(\*args)

here \`args\[0\]\` still has refcount=1 because only \`args\` owns this integer.

On Fri, Sep 1, 2017 at 4:19 PM, Jelle Zijlstra <jelle.zijlstra@gmail.com> wrote:


2017-09-01 13:05 GMT-07:00 Chris Barker <chris.barker@noaa.gov>:
On Thu, Aug 31, 2017 at 5:12 PM, Antoine Pitrou <solipsis@pitrou.net> wrote:
I'm skeptical there are some programs out there that are limited by the
speed of PyLong inplace additions.

indeed, but that could be said about any number of operations.

My question is -- how can the interpreter know if it can alter what is supposed to be an immutable in-place? If it's used only internally to a function, the it would be safe, but how to know that?
I believe Catalin's implementation checks if the object's refcount is 1\. If that is the case, it is safe to mutate it.

-CHB



--

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/jelle.zijlstra%40gmail.com



\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/joe%40quantopian.com