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