[Python-Dev] RE: automatic reclaiminig of limited resources (was Re: [Python-Dev]
Product iteration)
Moshe Zadka
Moshe Zadka <moshez@math.huji.ac.il>
Mon, 31 Jul 2000 07:57:41 +0300 (IDT)
On Sun, 30 Jul 2000, Tim Peters wrote:
> But I don't know why we're arguing about it. Nobody (AFAIK) has announced
> plans to take refcounting out of CPython, but that you can't *rely* on
> refcounting across Python implementations is ancient news (and a reality in
> practice since JPython).
Well, to bring this back to the original: I proposed a variant of lexical
scoping where an inner function has only a weak reference to its
surroundin environment, so that
def f(x):
def g():
return x
return g
f(1)()
Would fail with "UnboundOuterVariable", but the more commonly used
def f(x):
return map(lambda i,x=x: i*x, range(10))
Would turn into
def f(x):
return map(lambda i: i*x, range(10))
And work. Guido seemed to want to simulate classes by closures <wink>,
and I tried to convince him that
a) Python has a perfectly good class mechanism <3000 wink>
b) non-weak references would cause cycles, which would mean that the
currently working code:
def f(file):
file = open(file)
def g(x):
print x
g(file.read())
Would fail is called in a loop if GC is not called too often.
lexical-scoping-is-too-powerful-for-its-own-good-ly y'rs, Z.
--
Moshe Zadka <moshez@math.huji.ac.il>
There is no IGLU cabal.
http://advogato.org/person/moshez