summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFinley McIlwaine <finleymcilwaine@gmail.com>2023-02-07 18:45:45 -0700
committerFinley McIlwaine <finleymcilwaine@gmail.com>2023-04-19 07:59:46 -0600
commitab0fe323b235236798e6c2fd37b5ab409e0029ff (patch)
tree96f7ea41b304c3d3995be3e3ea16dd84586a319a
parent9a483ba774c9883c756649428d541de929f1425e (diff)
downloadhaskell-wip/t21766.tar.gz
Update user's guide and release noteswip/t21766
Add mention of IPE data compression to user's guide and the release notes for 9.8.1. Also note the impact compression has on binary size in both places. See ticket #21766
-rwxr-xr-x.gitlab/gen_ci.hs4
-rw-r--r--.gitlab/jobs.yaml20
-rw-r--r--docs/users_guide/9.8.1-notes.rst11
-rw-r--r--docs/users_guide/debug-info.rst20
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