Raymond Hettinger <raymond.hettin...@gmail.com> added the comment:

Matt, I'm attaching a pure python version to serve as a better map for how to 
implement this in C.

* it incorporate the recent lru_cache algorithmic updates (moving the root 
around the circular queue to re-use old links).

* it shows which parts should be implemented in C using a regular type and 
shows how to call it from pure python.

* it gives hints on use of #defines and PyDict_GetItem

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

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

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

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

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

* let me know if there are any questions.

----------
Added file: http://bugs.python.org/file25084/lru_cache_class.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue14373>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to