diff --git a/.github/workflows/mhs-ci.yml b/.github/workflows/mhs-ci.yml new file mode 100644 index 00000000..559742d6 --- /dev/null +++ b/.github/workflows/mhs-ci.yml @@ -0,0 +1,63 @@ +name: mhs-ci + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build-mhs-prettyprinter: + runs-on: ubuntu-latest + steps: + + - name: checkout mhs repo + uses: actions/checkout@v4 + with: + repository: augustss/MicroHs + ref: v0.14.27.0 + path: mhs + - name: make and install mhs + run: | + cd mhs + make minstall + + # prettyprinter + - name: checkout prettyprinter repo + uses: actions/checkout@v4 + with: + path: prettyprinter + + - name: compile and install prettyprinter package + run: | + PATH="$HOME/.mcabal/bin:$PATH" + cd prettyprinter/prettyprinter + mcabal -r install + + - name: compile and install prettyprinter-ansi-terminal package + run: | + PATH="$HOME/.mcabal/bin:$PATH" + cd prettyprinter/prettyprinter-ansi-terminal + mcabal -r install + + - name: compile and install prettyprinter-compat-annotated-wl-pprint package + run: | + PATH="$HOME/.mcabal/bin:$PATH" + cd prettyprinter/prettyprinter-compat-annotated-wl-pprint + mcabal -r install + + - name: compile and install prettyprinter-compat-ansi-wl-pprint package + run: | + PATH="$HOME/.mcabal/bin:$PATH" + cd prettyprinter/prettyprinter-compat-ansi-wl-pprint + mcabal -r install + + - name: compile and install prettyprinter-compat-wl-pprint package + run: | + PATH="$HOME/.mcabal/bin:$PATH" + cd prettyprinter/prettyprinter-compat-wl-pprint + mcabal -r install + + - name: cleanup + run: | + rm -rf $HOME/.mcabal diff --git a/misc/version-compatibility-macros.h b/misc/version-compatibility-macros.h index f4d593d2..3cafb7c1 100644 --- a/misc/version-compatibility-macros.h +++ b/misc/version-compatibility-macros.h @@ -9,7 +9,7 @@ -- purpose much clearer than just demanding a specific version of a library. #define APPLICATIVE_MONAD MIN_VERSION_base(4,8,0) -#define FOLDABLE_TRAVERSABLE_IN_PRELUDE MIN_VERSION_base(4,8,0) +#define FOLDABLE_TRAVERSABLE_IN_PRELUDE (MIN_VERSION_base(4,8,0) && !defined(__MHS__)) #define FUNCTOR_IDENTITY_IN_BASE MIN_VERSION_base(4,8,0) #define MONOID_IN_PRELUDE MIN_VERSION_base(4,8,0) #define NATURAL_IN_BASE MIN_VERSION_base(4,8,0) diff --git a/prettyprinter-ansi-terminal/prettyprinter-ansi-terminal.cabal b/prettyprinter-ansi-terminal/prettyprinter-ansi-terminal.cabal index 6c941ffe..3f41a927 100644 --- a/prettyprinter-ansi-terminal/prettyprinter-ansi-terminal.cabal +++ b/prettyprinter-ansi-terminal/prettyprinter-ansi-terminal.cabal @@ -42,7 +42,7 @@ library if impl(ghc >= 8.0) ghc-options: -Wcompat - if !impl(ghc >= 8.0) + if !impl(ghc >= 8.0) && !impl(mhs) build-depends: semigroups >= 0.1 test-suite doctest diff --git a/prettyprinter-compat-ansi-wl-pprint/prettyprinter-compat-ansi-wl-pprint.cabal b/prettyprinter-compat-ansi-wl-pprint/prettyprinter-compat-ansi-wl-pprint.cabal index b0da692e..f03f197b 100644 --- a/prettyprinter-compat-ansi-wl-pprint/prettyprinter-compat-ansi-wl-pprint.cabal +++ b/prettyprinter-compat-ansi-wl-pprint/prettyprinter-compat-ansi-wl-pprint.cabal @@ -34,5 +34,5 @@ library , prettyprinter >= 1.7.0 , prettyprinter-ansi-terminal >= 1.1 - if !impl(ghc >= 8.0) + if !impl(ghc >= 8.0) && !impl(mhs) build-depends: semigroups >= 0.1 diff --git a/prettyprinter-compat-wl-pprint/prettyprinter-compat-wl-pprint.cabal b/prettyprinter-compat-wl-pprint/prettyprinter-compat-wl-pprint.cabal index faf1fad0..d84fe615 100644 --- a/prettyprinter-compat-wl-pprint/prettyprinter-compat-wl-pprint.cabal +++ b/prettyprinter-compat-wl-pprint/prettyprinter-compat-wl-pprint.cabal @@ -32,5 +32,5 @@ library , text >= 1.2 , prettyprinter >= 1.7.0 - if !impl(ghc >= 8.0) + if !impl(ghc >= 8.0) && !impl(mhs) build-depends: semigroups >= 0.1 diff --git a/prettyprinter/prettyprinter.cabal b/prettyprinter/prettyprinter.cabal index c5fd0f56..6c307310 100644 --- a/prettyprinter/prettyprinter.cabal +++ b/prettyprinter/prettyprinter.cabal @@ -80,17 +80,18 @@ library , Data.Text.Lazy , Data.Text.Lazy.Builder - if !impl(ghc >= 7.6) + if !impl(ghc >= 7.6) && !impl(mhs) build-depends: ghc-prim if impl(ghc >= 8.0) ghc-options: -Wcompat - if !impl(ghc >= 8.0) + if !impl(ghc >= 8.0) && !impl(mhs) build-depends: semigroups >= 0.17 build-depends: fail >= 4.9.0.0 && <4.10 - if !impl(ghc >= 7.10) + if !impl(ghc >= 7.10) && !impl(mhs) build-depends: void >=0.4 && <0.8 - + if impl(mhs) + cpp-options: -DFOLDABLE_TRAVERSABLE_IN_PRELUDE=0 Flag buildReadme diff --git a/prettyprinter/src/Prettyprinter/Internal.hs b/prettyprinter/src/Prettyprinter/Internal.hs index 27f02c8d..ef00c574 100755 --- a/prettyprinter/src/Prettyprinter/Internal.hs +++ b/prettyprinter/src/Prettyprinter/Internal.hs @@ -107,7 +107,7 @@ import Numeric.Natural #if !(FOLDABLE_TRAVERSABLE_IN_PRELUDE) import Data.Foldable (Foldable (..)) import Data.Traversable (Traversable (..)) -import Prelude hiding (foldr, foldr1) +import Prelude hiding (null, foldr, foldr1) #endif #if FUNCTOR_IDENTITY_IN_BASE