Skip to content

doc: update the quickstart guide and make it easier to follow#303

Merged
1a1a11a merged 7 commits into1a1a11a:developfrom
Charlie-XIAO:cs2640-setup
Mar 4, 2026
Merged

doc: update the quickstart guide and make it easier to follow#303
1a1a11a merged 7 commits into1a1a11a:developfrom
Charlie-XIAO:cs2640-setup

Conversation

@Charlie-XIAO
Copy link
Contributor

@Charlie-XIAO Charlie-XIAO commented Feb 27, 2026

This PR is in preparation for the cache competition of Harvard CS2640 (Spring 2026)

cyaoxiao added 2 commits February 26, 2026 22:57
Signed-off-by: cyaoxiao <cyaoxiao@node0.cyaoxiao-292586.cs2640-pg0.utah.cloudlab.us>
quickstart guide

Signed-off-by: cyaoxiao <cyaoxiao@node0.cyaoxiao-292586.cs2640-pg0.utah.cloudlab.us>
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on enhancing the user experience for plugin development by updating and clarifying the quickstart documentation. The changes aim to provide a more guided and robust process for building and integrating custom cache plugins, making it simpler for new users to get started and for existing users to understand the underlying mechanisms. The updates include a practical C++ FIFO example, improved build configurations, and streamlined installation instructions.

Highlights

  • Documentation Clarity: The quickstart guide for plugin development has been significantly updated to be clearer and easier to follow, including corrected heading formats and important prerequisite notes.
  • C++ Plugin Example Update: The generic C++ plugin skeleton has been replaced with a concrete FIFO cache implementation, providing a more practical starting point for developers.
  • Build Process Refinements: CMake build instructions for plugins have been improved, including a more robust CMakeLists.txt example that supports multiple plugins and clearer command-line steps.
  • Installation Script Improvement: The one-line installation command in the main README has been updated to use source (.) and direct execution (./) for scripts, ensuring proper environment inheritance.
  • Example Project Updates: The example/plugin_v2 project's CMakeLists.txt and README.md were adjusted to better locate libCacheSim dependencies and simplify build/test commands.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • README.md
    • Updated the one-line install command to use source (.) and direct execution (./) for scripts, improving execution context.
  • doc/quickstart_plugin.md
    • Corrected heading formatting from '1 .' to '1.' for consistency.
    • Added important notes ([!IMPORTANT]) regarding libCacheSim installation prerequisites for C/C++ and Python plugin development sections.
    • Replaced the generic C++ MyPolicy plugin skeleton with a complete FifoCache implementation.
    • Updated the sample CMakeLists.txt for C++ plugins to support multiple plugins and include PkgConfig for glib-2.0.
    • Refined build commands for C++ plugins to use mkdir -p build && cd build/ and cmake -G Ninja .. && ninja.
    • Adjusted cachesim execution command for C++ plugins to reflect relative paths from the build directory and clarified plugin_path usage.
  • example/plugin_v2/CMakeLists.txt
    • Adjusted find_library and find_path calls to include ../../_build and ../../libCacheSim/include respectively, for better libCacheSim discovery.
    • Corrected the formatting of compiler flags (-Wall -Wextra) by removing an extra space.
  • example/plugin_v2/README.md
    • Removed redundant dependency section, directing users to the root README for setup.
    • Simplified build commands to mkdir -p build && cd build/ and cmake -G Ninja .. && ninja.
    • Updated the cachesim execution command to use relative paths appropriate for the example's build structure.
    • Removed the cd build step from the plugin testing instructions.
    • Clarified the note about using absolute paths for plugin_path if relative paths fail.
Activity
  • The pull request is currently marked as 'Work In Progress' and not yet ready for merge, as indicated by the author.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request significantly improves the quickstart guide for plugins by providing a complete, step-by-step example. The changes make the documentation much easier to follow for new users. I've found a critical issue with the updated one-line install command that could cause a user's shell to exit unexpectedly. I've also noted a minor issue in the new C++ plugin example where the on_remove hook is not correctly implemented, which could be confusing. My detailed feedback is in the comments.

cyaoxiao and others added 4 commits February 26, 2026 23:22
Signed-off-by: cyaoxiao <cyaoxiao@node0.cyaoxiao-292586.cs2640-pg0.utah.cloudlab.us>
Signed-off-by: cyaoxiao <cyaoxiao@node0.cyaoxiao-292586.cs2640-pg0.utah.cloudlab.us>
Signed-off-by: Yao Xiao <yx2436@nyu.edu>
Signed-off-by: Yao Xiao <yx2436@nyu.edu>
@Charlie-XIAO Charlie-XIAO marked this pull request as ready for review March 4, 2026 10:40
Copy link
Owner

@1a1a11a 1a1a11a left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@1a1a11a 1a1a11a merged commit b155f6c into 1a1a11a:develop Mar 4, 2026
4 checks passed
@Charlie-XIAO Charlie-XIAO deleted the cs2640-setup branch March 4, 2026 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants