E&S CVS Commit: PEAK - Completed conversion to C of the base class descriptor methods for 'Once'

pje at eby-sarna.com pje at eby-sarna.com
Sat Nov 30 15:05:00 EST 2002


Module Name:	PEAK
Committed By:	pje
Date:		Sat Nov 30 20:04:51 UTC 2002

Modified Files:
	PEAK: setup.py
	PEAK/src/peak/binding: components.py once.py
Added Files:
	PEAK/src/peak/binding: _once.c _once.pyx getdict.c
Removed Files:
	PEAK/src/peak/binding: data_desc.c data_desc.pyx py_obj.h

Log Message:
Completed conversion to C of the base class descriptor methods for 'Once'
attributes.  Due to constraints in how Pyrex creates extension types, it
was not possible to continue support for the (deprecated anyway) 'OnceClass'
and 'AutoCreatable' metaclasses.  This is now cleaned up pretty decently
and runs the tests at least as fast as before I began the metadata
refactoring yesterday (~4.1 seconds on my Windows PC).

Note that if you want to build from Pyrex source or have Pyrex installed,
you *must* patch Pyrex.Compiler.TypeSlots so that these two lines:

descrgetfunc = Signature("TOO", "O")       # typedef ...
descrsetfunc = Signature("TOO", "O")       # typedef ...

Look like *this* instead:

descrgetfunc = Signature("Tpp", "O")       # typedef ...
descrsetfunc = Signature("TOp", "i")       # typedef ...

This is a work-around for improper generation of descriptor __get__/__set__
code by Pyrex.


To view diffs of this commit, you can use the following URL(s):
http://cvs.eby-sarna.com/PEAK/setup.py.diff?r1=1.41&r2=1.42
http://cvs.eby-sarna.com/PEAK/src/peak/binding/_once.c?rev=1.1&content-type=text/vnd.viewcvs-markup
http://cvs.eby-sarna.com/PEAK/src/peak/binding/_once.pyx?rev=1.1&content-type=text/vnd.viewcvs-markup
http://cvs.eby-sarna.com/PEAK/src/peak/binding/getdict.c?rev=1.1&content-type=text/vnd.viewcvs-markup
http://cvs.eby-sarna.com/PEAK/src/peak/binding/components.py.diff?r1=1.72&r2=1.73
http://cvs.eby-sarna.com/PEAK/src/peak/binding/once.py.diff?r1=1.30&r2=1.31

To generate a diff of this commit:
cvs rdiff -r1.41 -r1.42 PEAK/setup.py
cvs rdiff -r0 -r1.1 PEAK/src/peak/binding/_once.c \
    PEAK/src/peak/binding/_once.pyx PEAK/src/peak/binding/getdict.c
cvs rdiff -r1.72 -r1.73 PEAK/src/peak/binding/components.py
cvs rdiff -r1.1 -r0 PEAK/src/peak/binding/data_desc.c \
    PEAK/src/peak/binding/data_desc.pyx PEAK/src/peak/binding/py_obj.h
cvs rdiff -r1.30 -r1.31 PEAK/src/peak/binding/once.py

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




More information about the source-changes mailing list