graphql-engine/cabal/ci.project.local
kodiakhq[bot] 26ce8ff768 server: -O1 + -funfolding-use-threshold=640, for memory residency
...and keep binary size down using `--gc-sections` (supported by all major linkers). Stripped size after this PR is `85.3 Mb` down from `121 Mb` on `main`.

This compliments Auke's recent work (though there is some overlap). See: https://github.com/hasura/graphql-engine-mono/pull/7033#issuecomment-1326673632

Old experiments, for reference:
https://github.com/hasura/graphql-engine-mono/pull/6605
https://github.com/hasura/graphql-engine-mono/pull/6606
https://github.com/hasura/graphql-engine-mono/pull/6589

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7079
GitOrigin-RevId: 0b0d86730fb959d6249bd17a87e39af12ef71261
2022-11-30 17:05:15 +00:00

46 lines
1.5 KiB
Plaintext

-- The project configuration used when building in CI.
reject-unconstrained-dependencies: all
package *
ghc-options:
-- We compile with package-level parallelism, so just use a small amount
-- of module-level parallelism for dependencies:
-- TODO: tune me
-j2
-- For performance, with `-j`:
+RTS -A64m -n2m -RTS
-- -----------------------------------------------------------
-- Allow for dead-code elimination at link-time, to reduce binary size
-- TODO WHEN WE NEXT UPGRADE GHC: move this into cabal.project
ghc-options: -split-sections
ld-options: -Wl,--gc-sections
-- -----------------------------------------------------------
-- Enable optimizations in all local (hasura) packages:
flags: +optimize-hasura
package graphql-engine
ghc-options:
-- At this point though we definitely want full module-level parallelism:
-j
-Werror
tests: true
benchmarks: true
-- %%%-BEGIN-PRO-ONLY-CONTENT-%%%
-- NOTE:
-- The label directly above this note marks the beginning of the pro-only
-- section of this file that should be removed by `Copybara` when migrating
-- this file to the public `graphql-engine` repository. We use a simple
-- regular expression to identify these segments (see the "transformations" in
-- `copy.bara.sky`), so please take care when manipulating this label!
package graphql-engine-pro
ghc-options:
-- At this point though we definitely want full module-level parallelism:
-j
-Werror
tests: true