weimingtom / tinypy

Automatically exported from code.google.com/p/tinypy
Other
1 stars 0 forks source link

Is __del__ supported? Is garbage collection working? #57

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
tinypy is amazing.  Very nice to see such a concise implementation
of python!

What steps will reproduce the problem?

1. try to run this code:

ndel = 0

class rect:
    def __init__(self, orgx, orgy, sizex, sizey):
        self.orgx = orgx
        self.orgy = orgy
        self.sizex = sizex
        self.sizey = sizey
        self.list = [];
        for i in range(10):
            self.list.append(i)

    def __del__(self):
        print("del")
        ndel = ndel + 1

for i in range(1000):
    a = rect(0,0,100,100)
    b = rect(0,0,100,100)
    b = a

print("__del__ called " + str(ndel) + " times")
print("bye")

What is the expected output? What do you see instead?

I was expecting __del__ to be called like in cpython.  Is garbage collection
working?  I added printf to gc.c and it shows these functions being called,
but the __del__ function is not being called.

running tp_follow
running tp_follow
running tp_follow
running tp_full
running tp_follow
running tp_collect
running tp_follow
running tp_follow

What version of the product are you using? On what operating system?

tinypy 1.1 OSX 10.7.5

Please provide any additional information below.

See the attached file del.py

Original issue reported on code.google.com by paulhaeb...@gmail.com on 18 Feb 2013 at 7:22

Attachments:

GoogleCodeExporter commented 9 years ago
After adding some printfs it looks like garbabge collection is happening fine, 
the problem is that __del__ is not being called.  Maybe if I study the source I 
can make it work...  

Original comment by paulhaeb...@gmail.com on 18 Feb 2013 at 7:18