-
Notifications
You must be signed in to change notification settings - Fork 12
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
Minimization of dependencies #56
Comments
Thank you for your interest! monae uses infotheo for probabilities and infotheo uses fields for error-correcting codes (in a limited way) iirc, Note also that monae's master now uses Hierarchy Builder and this triggers a new set of dependencies The main reason we didn't do any splitting so far is essentially lack of time and also because I didn't know the |
I am afraid that, after the merger of monae-hb branch, even the core part now suffers from a heavy dependency starting from Hierarchy Builder. |
You can also observe that the subdirectory |
Hi @affeldt-aist, thank you for the quick response!
I guess dependencies on
Thereby, I think the problem can be solved in two steps.
Do you think the problem with the code duplication should also be solved as a subtask of this issue? With respect to the solution of this issue, I would really be happy to help here. What can I start from? |
I did a tentative split as PR #57 . It turns out that some files that are not explicitly depending on probabilities still depend on infotheo for some utilities. |
I've removed some unused dependencies on infotheo in #59 As for the real dependencies that are still there, I've noticed the following:
|
Thank you for the careful review!
Let's do that (math-comp/analysis#405, math-comp/analysis#406).
We've been using Z instead of ssrint because it is a bit easier to use (in particular, more people are familiar with it),
Actually, we will soon merge an admit-free version (https://github.com/AyumuSaito/monae/tree/saito_quicksort). Maybe we should go with PRing bseq to mathcomp for this one. It is definitely useful in monae and should |
Therefore, I guess, the solution would be to put
Sounds good! |
In this case, the strategy would be to have a new subdirectory in infotheo for these two libraries
You may want to PR it because I will lack time in the next few days. :-( |
Okay to separate the package into two. But what would you name them? |
Keep infotheo for the main package and ssrstd for ssrZ+ssrR (because it provides ssr-like naming for standard library's datatypes)? |
ssrstd sounds too generic or strong, doesn't it? What about thinssr or thinssrstd? |
Another proposal from riot: ssrwrap-stdnum @garrigue |
fyi, those two have been merged |
Note that there is https://github.com/math-comp/mczify/blob/master/theories/ssrZ.v |
First of all, I would like to thank all the contributors to this library!
For our project, we've been searching for a Coq library of monad theory and among few alternatives we chose
monae
.Currently, we need just a basic stuff: basic hierarchy (functors, natural transformations, monads, nondet monads) and basic instances (list, state, etc). We've been really happy to find everything we need in
monae
.However, a big list of library dependencies was a bit disappointing.
For example, a dependency on
coq-infotheo
was surprising, as well as dependencies onmathcomp-fingroup
,mathcomp-solvable
, etc. From what I understood after a quick pass over the sources,coq-infotheo
is used mostly for the probability monad. Theboolp.v
library frommathcomp-analysis
is used heavily for "classical" reasoning. I haven't understood howmathcomp-fingroup
,mathcomp-field
, etc are used.Since the monad theory is a cornerstone of PL theory, it would be really nice to have a core library of monad theory with a minimalistic list of dependencies. If you'll be interested in achieving this goal I would be happy to help with this and prepare a PR.
I think there are two possible ways to achieve this:
(1) split the library into two: something like
monae-core
with a basic hierarchy of monads and common theory,and e.g.
monae-prob
with the probability monad(2) use opam's
depopts
feature and install various advanced features of the library (e.g. prob monad) only if the user already has all required packages installed.The text was updated successfully, but these errors were encountered: