Author anacrolix
Recipients anacrolix, giampaolo.rodola, meador.inge, nedbat, rhettinger
Date 2012-04-02.07:20:13
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1333351216.11.0.988829384465.issue14373@psf.upfronthosting.co.za>
In-reply-to
Content
> * it incorporate the recent lru_cache algorithmic updates (moving the root around the circular queue to re-use old links).

The existing C patch already does this.

> * it shows which parts should be implemented in C using a regular type and shows how to call it from pure python.
 
The existing patch already did this.

> * it gives hints on use of #defines and PyDict_GetItem

I'm familiar with C. I've retained PyDict_GetItemWithError so as not to suppress typing errors from keys constructed from bad arguments from the user.

> * the critical sections are marked so you can use the GIL rather than using locks.

The existing patch is already using the GIL, it didn't have any locks.

> * there are hints for what datatypes to use (only the hits and misses need the ability to grow beyond sys.maxsize).

The existing patch already had this.

> * it shows how to access the named tuple from within the C code (using a straight PyObject_Call).

I incorporated this.

> * this code passes the test suite and should be directly translatable (and very fast).

So did the old code.

> * please follow the model and use PyList objects instead of C structure for links

I've left this as is, the linked list in C is idiomatic, avoids a lot of branching and reference counting and is also more readable than the equivalent C/Python.
History
Date User Action Args
2012-04-02 07:20:16anacrolixsetrecipients: + anacrolix, rhettinger, giampaolo.rodola, nedbat, meador.inge
2012-04-02 07:20:16anacrolixsetmessageid: <1333351216.11.0.988829384465.issue14373@psf.upfronthosting.co.za>
2012-04-02 07:20:15anacrolixlinkissue14373 messages
2012-04-02 07:20:14anacrolixcreate