Files
zeekay a61bcad919 fix(haskell): green build+test on GHC 9.6 + provision zap front-end in CI
Library + zapc-haskell already compiled; this finishes the test suite and CI:
- SchemaGeneration.hs: import Control.Monad (replicateM) — mtl 2.3 stopped
  re-exporting Control.Monad from Control.Monad.State.Strict.
- Module/Zap/Rpc.hs (expectException): GHC 9.6's stricter ambiguity check +
  waitPipeline's ReprFor a ~ 'Ptr pr rewrite broke the fundep-resolved Parse
  constraint. Pin the parsed type to  and annotate the bound result
  (forall + ScopedTypeVariables) so GHC discharges Parse a (Parsed a) directly.
- Regression.hs: regenerate the issue-#56 abort-message wire bytes — the rebrand
  find-replaced capnproto->zap INSIDE the binary literal, shortening the embedded
  text without updating the list-pointer length -> TraversalLimitError. Rebuilt
  via parsedToLBS of the expected Message.
- zap-tests.cabal: drop the phantom 'benchmark bench' stanza (bench/Main.hs was
  never in the repo) and the broken examples/ test source dirs.
- cabal.project: allow-newer lifetimes:transformers (stale upstream bound; GHC
  9.4+ ships transformers 0.6 and lifetimes compiles against it).
- ci.yml: build+install the zap schema front-end from cpp-core (the integration
  tests shell out to it), mirroring the Rust install-zap step.

Local: cabal build all + cabal test all => 165 examples, 0 failures (GHC 9.6.7).
2026-06-20 12:33:31 -07:00

124 lines
3.9 KiB
Plaintext

cabal-version: 2.2
name: zap-tests
version: 0.18.0.0
category: Data, Serialization, Network, Rpc
copyright: 2016-2023 haskell-zap contributors (see CONTRIBUTORS file).
author: Ian Denhardt
maintainer: [email protected]
license: MIT
license-file: LICENSE.md
homepage: https://github.com/zap-proto/haskell
bug-reports: https://github.com/zap-proto/haskell/issues
synopsis: Zap for Haskell
description:
A native Haskell implementation of the Zap cerialization format and
RPC protocol.
.
The library implements serialization and level 1 RPC.
.
The "Zap.Tutorial" module is the best place to start reading; the
reference documentation can seem bewildering without that context.
build-type: Simple
--------------------------------------------------------------------------------
source-repository head
type: git
branch: master
location: https://github.com/zap-proto/haskell.git
--------------------------------------------------------------------------------
common shared-opts
build-depends:
base >= 4.14 && < 5
, bytes >= 0.15.4 && <0.18
, bytestring >= 0.10 && <0.12
, containers >= 0.5.9 && <0.7
, data-default ^>= 0.7.1
, exceptions ^>= 0.10.0
, ghc-prim >= 0.6.1 && <0.11
, mtl >= 2.2.2 && <2.4
, primitive >= 0.6.3 && <0.9
, safe-exceptions ^>= 0.1.7
, text >= 1.2 && < 2.1
, transformers >= 0.5.2 && <0.7
, vector >= 0.12.0 && <0.14
, monad-stm ^>= 0.1
ghc-options:
-Wall
-- This warning is triggered by normal use of NamedFieldPuns, so it's a no-go
-- for us:
-Wno-name-shadowing
-- I(zenhack) find it rather odd that orphan instances are flagged when the
-- class and the type are in different modules but, the same *package*. We do
-- this in a number of places in the zap package, so we disable this
-- warning. It's not super easy to write a package-level orphan by accident,
-- so we're not losing much.
-Wno-orphans
default-language: Haskell2010
--------------------------------------------------------------------------------
test-suite tests
import: shared-opts
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs:
tests
gen/tests
ghc-options:
-threaded
other-modules:
-- Utilities
Util
, Instances
, SchemaGeneration
-- generated from tests/data/aircraft.zap
, Zap.Gen.Aircraft
, Zap.Gen.ById.X832bcc6686a26d56
-- generated from tests/data/generics.zap
, Zap.Gen.Generics
, Zap.Gen.ById.Xb6421fb8e478d144
-- Actual tests:
, Module.Zap.Gen.Zap.Schema
, Module.Zap.Gen.Zap.Schema.Pure
, Module.Zap.Rpc
, Module.Zap.Untyped
, Module.Zap.Untyped.Pure
, Module.Zap.Pointer
, Module.Zap.Bits
, Module.Zap.Basics
, Module.Zap.Canonicalize
, PointerOOB
, Regression
, WalkSchemaCodeGenRequest
, SchemaQuickCheck
, CalculatorExample
, Constants
, Rpc.Unwrap
build-depends:
zap
, zap-examples
, network
, network-simple
, stm
, async
, process
, process-extras
, QuickCheck
, quickcheck-io
, quickcheck-instances
, hspec
, directory
, resourcet
, heredoc
, deepseq
, pretty-show
, supervisors