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

Add MMaps to Coq Platform #307

Open
palmskog opened this issue Oct 23, 2022 · 6 comments
Open

Add MMaps to Coq Platform #307

palmskog opened this issue Oct 23, 2022 · 6 comments
Assignees
Milestone

Comments

@palmskog
Copy link
Collaborator

MMaps is a library that contains several implementations of finite maps over arbitrary ordered types using Coq functors. This is an updated version of Coq Stdlib's FMaps. It is meant to complement the MSet library in Stdlib. One noteworthy advantage over the legacy FMaps is that MMaps has a fast red-black tree based finite map.

MMaps is currently maintained in Coq-community by myself and @letouzey and just had its 1.0 release. I propose that MMaps is added to the Coq Platform, so as to let FMap users migrate to it.

@ybertot
Copy link
Contributor

ybertot commented Dec 14, 2023

Justification of usage here is associated to the efficiency gain when migrating. I would suggest that this should be better advertised on the MMaps main page.

Also, the MMaps main page contains a caveat about unstable interfaces that might deter potential users from migrating. Is this caveat pragmatically important?

@palmskog
Copy link
Collaborator Author

palmskog commented Dec 14, 2023

@ybertot there are in my view two main arguments for people to migrate from FMaps or use this package from scratch:

  • a modernized interface to maps aligned with MSets, that contains functionality not present in FSets, see here for an example
  • a wider selection of modules that implement the map interface, among which are red-black trees that are expected to perform well and not require (unbounded) integers at runtime

The caveat about interface stability is to my knowledge a remnant from when the library was under heavy development by Pierre. I would say the core interface is stable (and we can change the README to reflect this), but there could be additional utility results added over time, such as what Andrew did here.

@ybertot
Copy link
Contributor

ybertot commented Dec 14, 2023

I agree, I only suggest you should remove the remnant.

@palmskog
Copy link
Collaborator Author

OK, I will address this in the next few days.

@palmskog
Copy link
Collaborator Author

For the record, the README issue was addressed in coq-community/coq-mmaps#15

@ybertot ybertot added the approval: editorial board agreement tag given after discussion by the editorial board label Jan 3, 2024
@ybertot
Copy link
Contributor

ybertot commented Jan 3, 2024

The inclusion of this contribution has been approved by the editorial board.
The issue will not be closed until proper action has been taken.

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

No branches or pull requests

3 participants