diff options
-rwxr-xr-x | .gitlab/gen_ci.hs | 4 | ||||
-rw-r--r-- | .gitlab/jobs.yaml | 20 | ||||
-rw-r--r-- | docs/users_guide/9.8.1-notes.rst | 11 | ||||
-rw-r--r-- | docs/users_guide/debug-info.rst | 20 |
4 files changed, 38 insertions, 17 deletions
diff --git a/.gitlab/gen_ci.hs b/.gitlab/gen_ci.hs index fb306a3adf..3b1280189c 100755 --- a/.gitlab/gen_ci.hs +++ b/.gitlab/gen_ci.hs @@ -233,10 +233,6 @@ debug = vanilla { buildFlavour = SlowValidate , withAssertions = True -- WithNuma so at least one job tests Numa , withNuma = True - - -- Build with IPE in debug so at least one job tests - -- uncompressed IPE data - , withIpe = True } ipe :: BuildConfig diff --git a/.gitlab/jobs.yaml b/.gitlab/jobs.yaml index a51cd695a4..791f9e5001 100644 --- a/.gitlab/jobs.yaml +++ b/.gitlab/jobs.yaml @@ -1029,7 +1029,7 @@ "XZ_OPT": "-9" } }, - "nightly-x86_64-linux-deb10-numa-slow-validate+ipe": { + "nightly-x86_64-linux-deb10-numa-slow-validate": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -1039,7 +1039,7 @@ "artifacts": { "expire_in": "8 weeks", "paths": [ - "ghc-x86_64-linux-deb10-numa-slow-validate+ipe.tar.xz", + "ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz", "junit.xml" ], "reports": { @@ -1081,11 +1081,11 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-numa-slow-validate+ipe", - "BUILD_FLAVOUR": "slow-validate+ipe", + "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-numa-slow-validate", + "BUILD_FLAVOUR": "slow-validate", "CONFIGURE_ARGS": "", "ENABLE_NUMA": "1", - "TEST_ENV": "x86_64-linux-deb10-numa-slow-validate+ipe", + "TEST_ENV": "x86_64-linux-deb10-numa-slow-validate", "XZ_OPT": "-9" } }, @@ -3814,7 +3814,7 @@ "TEST_ENV": "x86_64-linux-deb10-no_tntc-validate" } }, - "x86_64-linux-deb10-numa-slow-validate+ipe": { + "x86_64-linux-deb10-numa-slow-validate": { "after_script": [ ".gitlab/ci.sh save_cache", ".gitlab/ci.sh clean", @@ -3824,7 +3824,7 @@ "artifacts": { "expire_in": "2 weeks", "paths": [ - "ghc-x86_64-linux-deb10-numa-slow-validate+ipe.tar.xz", + "ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz", "junit.xml" ], "reports": { @@ -3866,11 +3866,11 @@ ], "variables": { "BIGNUM_BACKEND": "gmp", - "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-numa-slow-validate+ipe", - "BUILD_FLAVOUR": "slow-validate+ipe", + "BIN_DIST_NAME": "ghc-x86_64-linux-deb10-numa-slow-validate", + "BUILD_FLAVOUR": "slow-validate", "CONFIGURE_ARGS": "", "ENABLE_NUMA": "1", - "TEST_ENV": "x86_64-linux-deb10-numa-slow-validate+ipe" + "TEST_ENV": "x86_64-linux-deb10-numa-slow-validate" } }, "x86_64-linux-deb10-unreg-validate": { diff --git a/docs/users_guide/9.8.1-notes.rst b/docs/users_guide/9.8.1-notes.rst index a624eb2705..8619447cdf 100644 --- a/docs/users_guide/9.8.1-notes.rst +++ b/docs/users_guide/9.8.1-notes.rst @@ -87,6 +87,17 @@ Compiler deriving instance TypeError (Text "Boo") => Bar Baz +- The compiler may now be configured to compress the debugging information + included in :ghc-flag:`-finfo-table-map` enabled binaries. To do so, one must + build GHC from source (see + `here<https://gitlab.haskell.org/ghc/ghc/-/wikis/building>` for directions) + and supply the ``--enable-ipe-data-compression`` flag to the ``configure`` + script. **Note**: This feature requires that the machine building GHC has + `libzstd <https://github.com/facebook/zstd/>`_ installed. + + In a test compiling GHC itself, the size of the :ghc-flag:`-finfo-table-map` + enabled build results was reduced by over 20% when compression was enabled. + GHCi ~~~~ diff --git a/docs/users_guide/debug-info.rst b/docs/users_guide/debug-info.rst index 8679bd84e3..c820257988 100644 --- a/docs/users_guide/debug-info.rst +++ b/docs/users_guide/debug-info.rst @@ -370,9 +370,23 @@ to a source location. This lookup table is generated by using the ``-finfo-table also want more precise information about constructor info tables then you should also use :ghc-flag:`-fdistinct-constructor-tables`. - This flag will increase the binary size by quite a lot, depending on how - big your project is. For compiling a project the size of GHC the overhead was - about 200 megabytes. + The :ghc-flag:`-finfo-table-map` flag will increase the binary size by quite + a lot, depending on how big your project is. For compiling a project the + size of GHC the overhead was about 200 megabytes. + + :since: 9.8 + + If you wish to reduce the size of :ghc-flag:`-finfo-table-map` enabled + binaries, consider building GHC from source and supplying the + ``--enable-ipe-data-compression`` flag to the ``configure`` script. This + will cause GHC to compress the :ghc-flag:`-finfo-table-map` related + debugging information included in binaries using the `libzstd + <https://github.com/facebook/zstd/>`_ compression library. **Note**: This + feature requires that the machine building GHC has + `libzstd <https://github.com/facebook/zstd/>`_ installed. + + In a test compiling GHC itself, the size of the :ghc-flag:`-finfo-table-map` + enabled build results was reduced by over 20% when compression was enabled. .. ghc-flag:: -fdistinct-constructor-tables :shortdesc: Generate a fresh info table for each usage |