rdicosmo / parmap

Parmap is a minimalistic library allowing to exploit multicore architecture for OCaml programs with minimal modifications.
http://rdicosmo.github.io/parmap/
Other
94 stars 20 forks source link

Dune support #90

Closed olafhering closed 4 years ago

UnixJunkie commented 4 years ago

I think the clean way to move to dune is to rely on those two packages:

olafhering commented 4 years ago

setcore will receive the very same changes: every autoconf will be removed in the future.

olafhering commented 4 years ago

@rdicosmo any opinion on this set of changes?

rdicosmo commented 4 years ago

Thanks for taking the time to contribute, and sorry for the long silence, I'm in the middle of practically uninterrupted travel until mid-november. To help me assess the proposal, would you mind summing up the overall approach with its pros and cons? I promise I'll take the time to look into all this.

XVilka commented 4 years ago

Since @UnixJunkie deprecated setcore, should it be updated to use https://github.com/UnixJunkie/cpu ?

olafhering commented 4 years ago

I think you have to discuss this depreciation in a separae issue.

This one is for dune. And as I learned the *.opam file has to stay, to assist opam. So I will do one more refresh.

About the reasoning: oasis is not maintained anymore. dune is maintained. When there is an ocaml.exe there is also a dune.exe. In case pre-ocaml 4.02 has to be supported, the switch to dune can not be done.

UnixJunkie commented 4 years ago

@XVilka note that the setcore opam package was never used by a released version of parmap. I created the package to make the functionality available to other packages and to simplify parmap's code base. Recently, I renamed the setcore opam package to cpu, so that I can coinstall parmap with other packages that use the same module but under a different name (cpu now). Otherwise, the compiler was generating some errors and it was not possible to install parmap with the latest version of parany, for example.

Drup commented 4 years ago

Sometimes, trying too hard to be modular is counterproductive. Both the setcore and the bytearray modules were intended for internal use, and not to be split into small packages for public consumption. They are not polished and, in the case of bytearray, there are (several!) far more polished packages for this already existing.

@olafhering 's version is self-contained, only use dunes, get rids of autoconf, m4 and whatnot, is compatible from ocaml 4.02 to 4.09, and the code is clean. Let's merge it and stop worrying. :)

UnixJunkie commented 4 years ago

@olafhering you should contact @rdicosmo if you want to take over the maintenance of parmap

rdicosmo commented 4 years ago

Thanks @olafhering for the great cleanup/update, now merged into mainline.

olafhering commented 4 years ago

@olafhering you should contact @rdicosmo if you want to take over the maintenance of parmap

I think I touched just the buildsystem. I'm not in the position to maintain this pkg.