Leandro Lameiro wrote:
Hi Antonio.
My name is Leandro Lameiro and I've been a long time observer of PyPy. This weekend I tried to see where I could contribute to PyPy, so I decided to try and run some apps and see what is missing.
Hi Leandro. Thank you for your interest in PyPy; every contribution is welcome, either patches or bug report! I'm CCing pypy-dev, so that other developers can read it as well.
The first thing I tried to run was ez_setup.py ( http://peak.telecommunity.com/dist/ez_setup.py ), a simple script that downloads and installs setuptools. It is a really short script but it uses various modules such as md5, socket, urllib, os etc.
After translating PyPy (with allworkingmodules and socket switches) I found that ez_setup.py will raise and exception in PyPy but not in CPython (tried with 2.4 and 2.5).
Here is the traceback:
(virtualenv)lameiro@liria:~/projetos/ez_setup$ python ez_setup.py Downloading http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c8-py2.4.egg Traceback (most recent call last): File "?", line 34, in run_toplevel File "ez_setup.py", line 267, in <module> main(sys.argv[1:]) File "ez_setup.py", line 204, in main os.unlink(egg) File "ez_setup.py", line 198, in main egg = download_setuptools(version, delay=0) File "ez_setup.py", line 152, in download_setuptools if src: src.close() File "/home/lameiro/projetos/pypy-dist/lib-python/2.4.1/urllib.py", line 804, in close if self.fp: self.fp.close() File "/home/lameiro/projetos/pypy-dist/lib-python/modified-2.4.1/socket.py", line 242, in close s._drop() AttributeError: 'HTTPResponse' object has no attribute '_drop' (virtualenv)lameiro@liria:~/projetos/ez_setup$
After investigating a little, I found that you modified socket.py and introduced this _drop call and also defined it in socket._closedsocket class (an empty method), but that doesn't seem to be enough since other types are going there (in this case HTTPResponse, but maybe others too).
indeed, you are right; the relevant _drop method is defined in pypy-dist/pypy/module/_socket/interp_socket.py (it's called _drop_w), but I guess we should take care of cases like this in which the object doesn't provide a _drop method.
The revision in which this modification was introduced is https://codespeak.net/viewvc/pypy/dist/lib-python/modified-2.4.1/socket.py?r1=16842&r2=34429 https://codespeak.net/viewvc/pypy/dist/lib-python/modified-2.4.1/socket.py?r1=16842&r2=34429 , and I suppose it was you because the commiter login is "ac". :)
sorry, your guess is wrong :-). My login name is "antocuni", "ac" stands for Anders Chrigström. That's also why I don't know much about this and I'm CCing pypy-dev :-)
Anyway, thanks for the great work and I hope the next time I can contribute a patch instead of a bug report.
thank to you again for the help! Feel free to come to #pypy on freenode if you want to talk with us by IRC. ciao, Anto
participants (1)
-
Antonio Cuni