Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider migrate the cache system to hls-graph #4240

Open
soulomoon opened this issue May 17, 2024 · 0 comments
Open

Consider migrate the cache system to hls-graph #4240

soulomoon opened this issue May 17, 2024 · 0 comments
Labels
status: in discussion Not actionable, because discussion is still ongoing or there's no decision yet type: enhancement New feature or request

Comments

@soulomoon
Copy link
Collaborator

soulomoon commented May 17, 2024

Instead of scattering the cache system between hls-graph and ghcide. There might be a better idea, we can migrate the cache system to hls-graph. Since the scattering leads to some hard debugging bugs like #4185 #4093, although they've been solved.

But it is hard, It would require us to make a very good abstract of the current handling logic. And reimplement the following in hls-graph:

  • garbage collector is in ghcide. There are special treatment for special keys.
  • We have two fields in shakeExtra that's in the cache system. dirtykeys and state. And monitering is happening in ghcide.
  • data Value v that wrap FileVersion and PositionDelta.
  • specially treatment of special keys in estimateFileVersionUnsafely
  • lastValueIO and it is entangling with PositionMapping

But we can take steps to do it too.

@soulomoon soulomoon added type: enhancement New feature or request status: needs triage status: in discussion Not actionable, because discussion is still ongoing or there's no decision yet and removed status: needs triage labels May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: in discussion Not actionable, because discussion is still ongoing or there's no decision yet type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant