Skip to content

[RFC]: Python Binding Roadmap #214

Description

@1a1a11a

Python Binding Roadmap

Current Status

We've made good progress on the Python bindings, supporting basic structures and eviction policy creation:

  1. Core Simulation Structs: We now support Python bindings for essential simulation structures:

    • cache_t
    • reader_t
    • request_t
  2. Eviction Policy Integration: You can create caches with specific eviction algorithms using two methods:

    • Python Classes (Limited but with Parameter Hints): Dedicated Python classes are available for the following algorithms, offering clear parameter hints:
      • ARC
      • FIFO
      • LRB
      • LRU
      • S3FIFO
      • Clock
      • Sieve
      • ThreeLCache
      • TinyLFU
      • TwoQ
    • Generic Python Method: The create_cache method uses cache_init from cache_sim and accepts the algorithm name as a string to invoke it.

Next Steps (Prioritized)

Here's what's next on our Python binding roadmap:

  • Implement Basic Analysis Capabilities: Enable core analysis functionalities directly within the Python bindings.
  • Full Feature Support for Basic Structs: Expand the bindings to include all features and functionalities of the cache_t, reader_t, and request_t structs.
  • Add More Eviction Algorithm Classes: Introduce additional Python classes for other eviction algorithms, providing the same clear parameter hints as existing ones.
  • Create a PyPI package for our python binding -> need to decide the name

Originally posted by @haochengxia in #123

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions