StaticTuple... naming, maintenance, ...

John Arbash Meinel john at
Wed Oct 7 03:29:47 BST 2009

Hash: SHA1


>> 3) C/Cython/Pyrex

>>    In the end, I wrote "StaticTuple" in C, and "StaticTupleInterner" in
>>    Cython, and the latter took a day, and the former took a week. It is
>>    a "sunk cost", but ongoing maintenance is not.
>>    The main issue here is that Pyrex will not generate objects without
>>    the HAVE_GC flag set. Cython >= 0.11 can (as long as you don't have
>>    'object' attributes, which is true here, because I have to use
>>    PyObject** because neither Pyrex nor Cython support C arrays of
>>    objects)

> I guess we could start checking in and shipping the C files, though
> people have identified that this would cause some considerable churn,
> and perhaps there were other problems.
> I'd be reluctant to add such a high dependency, but if you really want
> it I don't think we should block it.  The dirstate code shows me we
> should bias the dependencies/speed/clarity tripod more towards speed
> and clarity.

So in the end it turns out not to matter. You can't do __new__ tricks
with Pyrex or Cython. So I can't make "StaticTuple()" a singleton or
allocate variable width structs to have inline storage.

It took me a while to sort things out to understand this, but hopefully
tomorrow I'll clean up my implementation and have something for submission.


Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla -


More information about the bazaar mailing list