[Git][ghc/ghc][wip/t21766] Update user's guide and release notes

Finley McIlwaine (@FinleyMcIlwaine) gitlab at gitlab.haskell.org
Mon Feb 13 20:36:26 UTC 2023



Finley McIlwaine pushed to branch wip/t21766 at Glasgow Haskell Compiler / GHC


Commits:
0c1685ab by Finley McIlwaine at 2023-02-13T13:35:57-07:00
Update user's guide and release notes

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

- - - - -


5 changed files:

- .gitlab/gen_ci.hs
- .gitlab/jobs.yaml
- docs/users_guide/9.8.1-notes.rst
- docs/users_guide/debug-info.rst
- testsuite/tests/rts/ipe/ipeMap.c


Changes:

=====================================
.gitlab/gen_ci.hs
=====================================
@@ -228,10 +228,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
@@ -878,7 +874,6 @@ job_groups =
      , validateBuilds Amd64 (Linux Debian10) nativeInt
      , fastCI (validateBuilds Amd64 (Linux Debian10) unreg)
      , fastCI (validateBuilds Amd64 (Linux Debian10) debug)
-     , disableValidate (validateBuilds Amd64 (Linux Debian10) ipe)
      , modifyValidateJobs manual tsan_jobs
      , modifyValidateJobs manual (validateBuilds Amd64 (Linux Debian10) noTntc)
      , addValidateRule LLVMBackend (validateBuilds Amd64 (Linux Debian10) llvm)


=====================================
.gitlab/jobs.yaml
=====================================
@@ -1031,7 +1031,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",
@@ -1041,7 +1041,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": {
@@ -1083,11 +1083,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"
     }
   },
@@ -3698,7 +3698,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",
@@ -3708,7 +3708,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": {
@@ -3750,11 +3750,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": {


=====================================
docs/users_guide/9.8.1-notes.rst
=====================================
@@ -21,6 +21,17 @@ Compiler
 
       foo (\x -> x*2 + x)
 
+- 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
 ~~~~
 


=====================================
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


=====================================
testsuite/tests/rts/ipe/ipeMap.c
=====================================
@@ -161,6 +161,7 @@ void shouldFindTwoFromTheSameList(Capability *cap) {
 void shouldDealWithAnEmptyList(Capability *cap, HaskellObj fortyTwo) {
     IpeBufferListNode *node = malloc(sizeof(IpeBufferListNode));
     node->count = 0;
+    node->compressed = 0;
     node->next = NULL;
     node->string_table = "";
 



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/0c1685abc9ad345ff22b3ad4434847f43d382732

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/0c1685abc9ad345ff22b3ad4434847f43d382732
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20230213/3d70ab4a/attachment-0001.html>


More information about the ghc-commits mailing list