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

Finley McIlwaine (@FinleyMcIlwaine) gitlab at gitlab.haskell.org
Thu May 25 20:42:41 UTC 2023



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


Commits:
1f5383a3 by Finley McIlwaine at 2023-05-25T14:40:54-06:00
Update user's guide and release notes, small fixes

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
- compiler/GHC/StgToCmm/InfoTableProv.hs
- docs/users_guide/9.8.1-notes.rst
- docs/users_guide/debug-info.rst


Changes:

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


=====================================
.gitlab/jobs.yaml
=====================================
@@ -1091,7 +1091,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",
@@ -1101,7 +1101,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": {
@@ -1143,11 +1143,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"
     }
   },
@@ -4072,7 +4072,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",
@@ -4082,7 +4082,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": {
@@ -4124,11 +4124,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": {


=====================================
compiler/GHC/StgToCmm/InfoTableProv.hs
=====================================
@@ -10,13 +10,11 @@ import qualified Data.ByteString.Internal as BSI
 import GHC.IO (unsafePerformIO)
 #endif
 
-import GHC.Data.FastString (fastStringToShortText)
 import GHC.Prelude
 import GHC.Platform
 import GHC.Types.SrcLoc (pprUserRealSpan, srcSpanFile)
 import GHC.Unit.Module
 import GHC.Utils.Outputable
-import GHC.Types.SrcLoc (pprUserRealSpan, srcSpanFile)
 import GHC.Data.FastString (fastStringToShortText, unpackFS, LexicalFastString(..))
 
 import GHC.Cmm


=====================================
docs/users_guide/9.8.1-notes.rst
=====================================
@@ -119,6 +119,17 @@ Compiler
 
   GHC used to accept the contradictory ``Int~Bool`` in the type signature, but reject the ``Int~Bool`` constraint that arises from typechecking the definition itself.  Now it accepts both.  More details in `GHC ticket #23413 <https://gitlab.haskell.org/ghc/ghc/-/issues/23413>`_, which gives examples of the previous inconsistency.  GHC now implements the "PermissivePlan" described in that ticket.
 
+- 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



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/1f5383a3b417c6657cbf7170fc052cdc249c3134

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/1f5383a3b417c6657cbf7170fc052cdc249c3134
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/20230525/49e161b4/attachment-0001.html>


More information about the ghc-commits mailing list