[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 8 commits: libraries: bump Cabal submodule to 3.16.1.0
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
cd23d0ec by Cheng Shao at 2026-02-04T00:14:56-05:00
libraries: bump Cabal submodule to 3.16.1.0
- - - - -
aba76a1b by Cheng Shao at 2026-02-04T00:14:56-05:00
libraries: bump deepseq submodule to 1.5.2.0
Also:
- Get rid of usage of deprecated `NFData` function instance in the
compiler
- `T21391` still relies on `NFData` function instance, add
`-Wno-deprecations` for the time being.
- - - - -
1dcdbfb1 by Cheng Shao at 2026-02-04T00:14:56-05:00
libraries: bump directory submodule to 1.3.10.1
- - - - -
7122a7cd by Cheng Shao at 2026-02-04T00:14:56-05:00
libraries: bump exceptions submodule to 0.10.12
- - - - -
b3dce1e9 by Cheng Shao at 2026-02-04T00:14:57-05:00
libraries: bump filepath submodule to 1.5.5.0
- - - - -
e09d65a1 by Cheng Shao at 2026-02-04T00:14:57-05:00
libraries: bump os-string submodule to 2.0.10
- - - - -
8c8f3858 by Andreas Klebinger at 2026-02-04T00:14:57-05:00
testsuite: Explicitly use utf-8 encoding in rts-includes linter.
Not doing so caused failures on windows, as python failed to pick a
reasonable encoding even with locale set.
Fixes #26850
- - - - -
46281762 by Zubin Duggal at 2026-02-04T00:14:58-05:00
Bump transformers submodule to 0.6.3.0
Fixes #26790
- - - - -
10 changed files:
- compiler/GHC/Unit/Module/ModIface.hs
- libraries/Cabal
- libraries/deepseq
- libraries/directory
- libraries/exceptions
- libraries/filepath
- libraries/os-string
- libraries/transformers
- testsuite/tests/linters/regex-linters/check-rts-includes.py
- testsuite/tests/simplCore/should_compile/T21391.hs
Changes:
=====================================
compiler/GHC/Unit/Module/ModIface.hs
=====================================
@@ -894,13 +894,7 @@ instance (NFData (IfaceAbiHashesExts phase), NFData (IfaceDeclExts phase)) => NF
`seq` rnf a14
instance NFData IfaceCache where
- rnf (IfaceCache a1 a2 a3 a4)
- = rnf a1
- `seq` rnf a2
- `seq` rnf a3
- `seq` rnf a4
-
-
+ rnf = rwhnf
forceModIface :: ModIface -> IO ()
forceModIface iface = () <$ (evaluate $ force iface)
=====================================
libraries/Cabal
=====================================
@@ -1 +1 @@
-Subproject commit d9b0904b49dc84e0bfc79062daf2bbdf9d22a422
+Subproject commit 8d1f5a33662be0db0654061fb53fb00e3f4417e0
=====================================
libraries/deepseq
=====================================
@@ -1 +1 @@
-Subproject commit ae2762ac241a61852c9ff4c287af234fb1ad931f
+Subproject commit 882f52f51854544a467babd8cb075e3271f5913e
=====================================
libraries/directory
=====================================
@@ -1 +1 @@
-Subproject commit 6442a3cf04f74d82cdf8c9213324313d52b23d28
+Subproject commit 8c712e834f277544fc03e96dfbbb769126dc0a7c
=====================================
libraries/exceptions
=====================================
@@ -1 +1 @@
-Subproject commit 81bfd6e0ca631f315658201ae02e30046678f056
+Subproject commit a3da039855479e3c8542e8b45986599d0414ff68
=====================================
libraries/filepath
=====================================
@@ -1 +1 @@
-Subproject commit cbcd0ccf92f47e6c10fb9cc513a7b26facfc19fe
+Subproject commit baac7d7e76449f76fc6785e77206edb5530b6bfb
=====================================
libraries/os-string
=====================================
@@ -1 +1 @@
-Subproject commit c08666bf7bf528e607fc1eacc20032ec59e69df3
+Subproject commit 71f66e1af2288867becaa567dfb10c1d791b0343
=====================================
libraries/transformers
=====================================
@@ -1 +1 @@
-Subproject commit cee47cca7705edafe0a5839439e679edbd61890a
+Subproject commit 0d615bc2457d5d2c695dcfdb902d88c1225beff3
=====================================
testsuite/tests/linters/regex-linters/check-rts-includes.py
=====================================
@@ -12,12 +12,16 @@ import re
INCLUDE_RE = re.compile('# *include ([<"][^">]+[>"])')
def get_includes(file: Path) -> List[Tuple[int, str]]:
- txt = file.read_text()
- return [ (line_no+1, m.group(1) )
- for (line_no, line) in enumerate(txt.split('\n'))
- for m in [INCLUDE_RE.match(line)]
- if m is not None
- if m.group(1) != "rts/PosixSource.h"]
+ try:
+ txt = file.read_text(encoding="utf-8")
+ return [ (line_no+1, m.group(1) )
+ for (line_no, line) in enumerate(txt.split('\n'))
+ for m in [INCLUDE_RE.match(line)]
+ if m is not None
+ if m.group(1) != "rts/PosixSource.h"]
+ except Exception as e:
+ e.add_note(f"While reading includes from {file}")
+ raise
def in_rts_dir(path: Path) -> bool:
return len(path.parts) > 0 and path.parts[0] == 'rts'
@@ -40,9 +44,14 @@ class RtsHIncludeOrderLinter(Linter):
'"ghcplatform.h"',
}
- includes = get_includes(path)
- headers = [x[1] for x in includes]
- lines = path.read_text().split('\n')
+ try:
+ includes = get_includes(path)
+ headers = [x[1] for x in includes]
+ lines = path.read_text(encoding="utf-8").split('\n')
+ # #26850
+ except Exception as e:
+ e.add_note(f"Error while decoding path {path}")
+ raise e
if '"PosixSource.h"' in headers:
for line_no, header in includes:
@@ -69,18 +78,22 @@ class PrivateIncludeLinter(Linter):
def lint(self, path: Path):
private = False
- lines = path.read_text().split('\n')
- for line_no, include in get_includes(path):
- if include == '"BeginPrivate.h"':
- private = True
- elif include == '"EndPrivate.h"':
- private = False
- elif private:
- self.add_warning(Warning(
- path=path,
- line_no=line_no,
- line_content=lines[line_no-1],
- message='System header %s found inside of
participants (1)
-
Marge Bot (@marge-bot)