input-output-hk / io-sim

Haskell's IO simulator which closely follows core packages (base, async, stm).
https://hackage.haskell.org/package/io-sim
Apache License 2.0
37 stars 15 forks source link

Refactored package structure: use sublibraries #115

Closed coot closed 1 month ago

coot commented 1 year ago

Put si-timers, strict-stm and strict-mvar as public libraries of io-classes.

strict-mvar:test is left in test-strict-mvar as it introduces a cycle between io-sim and io-classes which cabal cannot resolve.

coot commented 12 months ago

It would be nice to get cabal changes to the haddock-project command before we merge it. I looked into and it seems doable, although requires a bit of thinking to get all the parts right. Once new version of cabal is published we can use it to publish haddocks on Github Pages, until Hackage also supports public sub-libraries (which if I am lucky :wink: I will also fix in the same set of changes).

jorisdral commented 8 months ago

strict-mvar:test is left in test-strict-mvar as it introduces a cycle between io-sim and io-classes which cabal cannot resolve.

One alternative would be to split the tests, moving the ones for IO to io-classes, and the ones for IOSim to io-sim. The properties could be put in a separate sublib in io-classes so io-sim can reuse them

coot commented 3 months ago

@jorisdral done;

cabal PR haskell/cabal#9821 was merged, so with next cabal release we can merge it.