[Git][ghc/ghc][wip/ghc-9.4.5-backports] 9 commits: base: Remove HAVE_* CPP guards
Zubin (@wz1000)
gitlab at gitlab.haskell.org
Wed Apr 12 07:02:23 UTC 2023
Zubin pushed to branch wip/ghc-9.4.5-backports at Glasgow Haskell Compiler / GHC
Commits:
a86389fa by Zubin Duggal at 2023-04-12T11:03:47+05:30
base: Remove HAVE_* CPP guards
- - - - -
19ed0ca7 by Tamar Christina at 2023-04-12T11:03:47+05:30
linker: Fix BFD import libraries
This commit fixes the BFD style import library support in the runtime
linker. This was accidentally broken during the refactoring to clang
and went unnoticed because clang itself is unable to generate the BFD
style import libraries.
With this change we can not link against both GCC or Clang produced
libraries again and intermix code produced by both compilers.
(cherry picked from commit 48e391952c17ff7eab10b0b1456e3f2a2af28a9b)
- - - - -
686c30f6 by Ben Gamari at 2023-04-12T11:03:48+05:30
Bump Windows toolchain
Updates to LLVM 14, hopefully fixing #21964.
- - - - -
c243cbdd by Zubin Duggal at 2023-04-12T11:03:48+05:30
lint-notes: accept output
- - - - -
013436a2 by Ben Gamari at 2023-04-12T11:03:48+05:30
hadrian: Extend xattr Darwin hack to cover /lib
As noted in #21506, it is now necessary to remove extended attributes
from `/lib` as well as `/bin` to avoid SIP issues on Darwin.
Fixes #21506.
(cherry picked from commit 78d04cfadfd728bb088b08b1e88905b43cc0360c)
- - - - -
79998418 by Zubin Duggal at 2023-04-12T11:03:48+05:30
Bump submodules: text, parsec, bytestring, containers
- - - - -
ce5b0a64 by Zubin Duggal at 2023-04-12T11:03:48+05:30
Bump base to 4.17.1.0 and add release notes
- - - - -
ae2aecca by Zubin Duggal at 2023-04-12T12:31:45+05:30
Prepare release 9.4.5
- - - - -
cc4e2482 by Zubin Duggal at 2023-04-12T12:31:45+05:30
Allow LLVM 14
- - - - -
23 changed files:
- .gitlab-ci.yml
- configure.ac
- docs/users_guide/release-notes.rst
- hadrian/bindist/Makefile
- libraries/base/System/Posix/Internals.hs
- libraries/base/base.cabal
- libraries/base/changelog.md
- libraries/bytestring
- libraries/containers
- libraries/parsec
- libraries/text
- mk/get-win32-tarballs.py
- rts/Linker.c
- rts/LinkerInternals.h
- rts/linker/PEi386.c
- testsuite/tests/ghci/linking/dyn/Makefile
- testsuite/tests/ghci/linking/dyn/all.T
- + testsuite/tests/ghci/linking/dyn/bin_impl_gcc/ASimpL.dll
- + testsuite/tests/ghci/linking/dyn/bin_impl_gcc/libASx.dll.a
- testsuite/tests/ghci/scripts/T9881.stdout
- testsuite/tests/ghci/scripts/ghci025.stdout
- testsuite/tests/linters/notes.stdout
- testsuite/tests/rts/all.T
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -6,7 +6,7 @@ variables:
# Sequential version number of all cached things.
# Bump to invalidate GitLab CI cache.
- CACHE_REV: 8
+ CACHE_REV: 10
# Disable shallow clones; they break our linting rules
GIT_DEPTH: 0
=====================================
configure.ac
=====================================
@@ -13,7 +13,7 @@ dnl
# see what flags are available. (Better yet, read the documentation!)
#
-AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.4.4], [glasgow-haskell-bugs at haskell.org], [ghc-AC_PACKAGE_VERSION])
+AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.4.5], [glasgow-haskell-bugs at haskell.org], [ghc-AC_PACKAGE_VERSION])
# Version on master must be X.Y (not X.Y.Z) for ProjectVersionMunged variable
# to be useful (cf #19058). However, the version must have three components
# (X.Y.Z) on stable branches (e.g. ghc-9.2) to ensure that pre-releases are
@@ -22,7 +22,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.4.4], [glasgow-has
AC_CONFIG_MACRO_DIRS([m4])
# Set this to YES for a released version, otherwise NO
-: ${RELEASE=NO}
+: ${RELEASE=YES}
# The primary version (e.g. 7.5, 7.4.1) is set in the AC_INIT line
# above. If this is not a released version, then we will append the
@@ -582,7 +582,7 @@ AC_SUBST(InstallNameToolCmd)
# versions of LLVM simultaneously, but that stopped working around
# 3.5/3.6 release of LLVM.
LlvmMinVersion=10 # inclusive
-LlvmMaxVersion=14 # not inclusive
+LlvmMaxVersion=15 # not inclusive
AC_SUBST([LlvmMinVersion])
AC_SUBST([LlvmMaxVersion])
sUPPORTED_LLVM_VERSION_MIN=$(echo \($LlvmMinVersion\) | sed 's/\./,/')
=====================================
docs/users_guide/release-notes.rst
=====================================
@@ -4,6 +4,7 @@ Release notes
.. toctree::
:maxdepth: 1
+ 9.4.5-notes
9.4.4-notes
9.4.3-notes
9.4.2-notes
=====================================
hadrian/bindist/Makefile
=====================================
@@ -147,7 +147,9 @@ install_bin_libdir:
fi; \
done
# Work around #17418 on Darwin
- if [ -e "${XATTR}" ]; then "${XATTR}" -c -r "$(DESTDIR)$(ActualBinsDir)"; fi
+ if [ -e "${XATTR}" ]; then \
+ "${XATTR}" -c -r "$(DESTDIR)$(ActualBinsDir)"; \
+ fi
install_bin_direct:
@echo "Copying binaries to $(DESTDIR)$(WrapperBinsDir)"
@@ -181,6 +183,10 @@ install_lib: lib/settings
for i in $(DOCS); do \
cp -R $$i "$(DESTDIR)$(docdir)/"; \
done
+ # Work around #17418 on Darwin
+ if [ -e "${XATTR}" ]; then \
+ "${XATTR}" -c -r "$(DESTDIR)$(ActualLibsDir)"; \
+ fi
install_docs:
@echo "Copying docs to $(DESTDIR)$(docdir)"
=====================================
libraries/base/System/Posix/Internals.hs
=====================================
@@ -36,7 +36,9 @@ import Foreign.C
-- import Data.Bits
import Data.Maybe
+#if !defined(HTYPE_TCFLAG_T)
import System.IO.Error
+#endif
import GHC.Base
import GHC.Num
@@ -457,13 +459,8 @@ foreign import capi unsafe "HsBase.h _lseeki64"
foreign import capi unsafe "HsBase.h _access"
c_access :: CString -> CInt -> IO CInt
-#if !defined(HAVE_CHMOD)
-c_chmod :: CString -> CMode -> IO CInt
-c_chmod _ _ = ioError (ioeSetLocation unsupportedOperation "_chmod")
-#else
foreign import ccall unsafe "HsBase.h _chmod"
c_chmod :: CString -> CMode -> IO CInt
-#endif
foreign import capi unsafe "HsBase.h _close"
c_close :: CInt -> IO CInt
@@ -471,19 +468,11 @@ foreign import capi unsafe "HsBase.h _close"
foreign import capi unsafe "HsBase.h _creat"
c_creat :: CString -> CMode -> IO CInt
-#if !defined(HAVE_DUP)
-c_dup :: CInt -> IO CInt
-c_dup _ = ioError (ioeSetLocation unsupportedOperation "_dup")
-
-c_dup2 :: CInt -> CInt -> IO CInt
-c_dup2 _ _ = ioError (ioeSetLocation unsupportedOperation "_dup2")
-#else
foreign import ccall unsafe "HsBase.h _dup"
c_dup :: CInt -> IO CInt
foreign import ccall unsafe "HsBase.h _dup2"
c_dup2 :: CInt -> CInt -> IO CInt
-#endif
foreign import capi unsafe "HsBase.h _isatty"
c_isatty :: CInt -> IO CInt
@@ -521,13 +510,8 @@ foreign import capi unsafe "HsBase.h write"
foreign import capi safe "HsBase.h write"
c_safe_write :: CInt -> Ptr Word8 -> CSize -> IO CSsize
-#if !defined(HAVE_PIPE)
-c_pipe :: Ptr CInt -> IO CInt
-c_pipe _ = ioError (ioeSetLocation unsupportedOperation "pipe")
-#else
foreign import ccall unsafe "HsBase.h pipe"
c_pipe :: Ptr CInt -> IO CInt
-#endif
foreign import capi unsafe "unistd.h lseek"
c_lseek :: CInt -> COff -> CInt -> IO COff
@@ -535,13 +519,8 @@ foreign import capi unsafe "unistd.h lseek"
foreign import ccall unsafe "HsBase.h access"
c_access :: CString -> CInt -> IO CInt
-#if !defined(HAVE_CHMOD)
-c_chmod :: CString -> CMode -> IO CInt
-c_chmod _ _ = ioError (ioeSetLocation unsupportedOperation "chmod")
-#else
foreign import ccall unsafe "HsBase.h chmod"
c_chmod :: CString -> CMode -> IO CInt
-#endif
foreign import ccall unsafe "HsBase.h close"
c_close :: CInt -> IO CInt
@@ -549,19 +528,11 @@ foreign import ccall unsafe "HsBase.h close"
foreign import ccall unsafe "HsBase.h creat"
c_creat :: CString -> CMode -> IO CInt
-#if !defined(HAVE_DUP)
-c_dup :: CInt -> IO CInt
-c_dup _ = ioError (ioeSetLocation unsupportedOperation "dup")
-
-c_dup2 :: CInt -> CInt -> IO CInt
-c_dup2 _ _ = ioError (ioeSetLocation unsupportedOperation "dup2")
-#else
foreign import ccall unsafe "HsBase.h dup"
c_dup :: CInt -> IO CInt
foreign import ccall unsafe "HsBase.h dup2"
c_dup2 :: CInt -> CInt -> IO CInt
-#endif
foreign import ccall unsafe "HsBase.h isatty"
c_isatty :: CInt -> IO CInt
@@ -572,14 +543,9 @@ foreign import ccall unsafe "HsBase.h unlink"
foreign import capi unsafe "HsBase.h utime"
c_utime :: CString -> Ptr CUtimbuf -> IO CInt
-#if !defined(HAVE_GETPID)
-c_getpid :: IO CPid
-c_getpid = pure 1
-#else
foreign import ccall unsafe "HsBase.h getpid"
c_getpid :: IO CPid
#endif
-#endif
foreign import ccall unsafe "HsBase.h __hscore_stat"
c_stat :: CFilePath -> Ptr CStat -> IO CInt
@@ -707,6 +673,7 @@ foreign import capi unsafe "stdio.h value SEEK_END" sEEK_END :: CInt
{-
Note [Windows types]
+~~~~~~~~~~~~~~~~~~~~
Windows' _read and _write have types that differ from POSIX. They take an
unsigned int for length and return a signed int where POSIX uses size_t and
=====================================
libraries/base/base.cabal
=====================================
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: base
-version: 4.17.0.0
+version: 4.17.1.0
-- NOTE: Don't forget to update ./changelog.md
license: BSD-3-Clause
=====================================
libraries/base/changelog.md
=====================================
@@ -1,5 +1,11 @@
# Changelog for [`base` package](http://hackage.haskell.org/package/base)
+## 4.17.1.0 *April 2023*
+
+ * Remove `mingwex` dependency on Windows (#22166).
+
+ * Fix inconsistency with decoding terminal input on Windows (#21488).
+
## 4.17.0.0 *August 2022*
* Add explicitly bidirectional `pattern TypeRep` to `Type.Reflection`.
=====================================
libraries/bytestring
=====================================
@@ -1 +1 @@
-Subproject commit 1543e054a314865d89a259065921d5acba03d966
+Subproject commit 9cab76dc861f651c3940e873ce921d9e09733cc8
=====================================
libraries/containers
=====================================
@@ -1 +1 @@
-Subproject commit 50175b72dc781f82a419bddafba1bdd758fbee4b
+Subproject commit 9f4a93604c66a5e605ce46fc30003b71802b3cfd
=====================================
libraries/parsec
=====================================
@@ -1 +1 @@
-Subproject commit a74c68e948c99621100447014f48ccac7ee0448e
+Subproject commit 1f542120d9adc5e22f8791a6d595210e93c6c389
=====================================
libraries/text
=====================================
@@ -1 +1 @@
-Subproject commit fdb06ff327519f3c0fc6cc9997b7cb7fe8ab8178
+Subproject commit e815d4d9bc362f4a3a36a850931fd3504eda967e
=====================================
mk/get-win32-tarballs.py
=====================================
@@ -8,7 +8,7 @@ import argparse
import sys
from sys import stderr
-TARBALL_VERSION = '0.7'
+TARBALL_VERSION = '0.8'
BASE_URL = "https://downloads.haskell.org/ghc/mingw/{}".format(TARBALL_VERSION)
DEST = Path('ghc-tarballs/mingw-w64')
ARCHS = ['x86_64', 'sources']
=====================================
rts/Linker.c
=====================================
@@ -135,8 +135,7 @@ extern void iconv();
This is to enable lazy loading of symbols. Eager loading is problematic
as it means that all symbols must be available, even those which we will
never use. This is especially painful on Windows, where the number of
- libraries required to link things like mingwex (TODO: We no longer depend
- on mingwex, so think of a different example here) grows to be quite high.
+ libraries required to link things like QT or WxWidgets grows to be quite high.
We proceed through these stages as follows,
@@ -194,8 +193,7 @@ extern void iconv();
1) Dependency chains, if A.o required a .o in libB but A.o isn't required to link
then we don't need to load libB. This means the dependency chain for libraries
- such as mingw32 and mingwex (TODO: We no longer depend on mingwex, so think of
- a different example here) can be broken down.
+ such as ucrt can be broken down.
2) The number of duplicate symbols, since now only symbols that are
true duplicates will display the error.
@@ -228,7 +226,7 @@ static void ghciRemoveSymbolTable(StrHashTable *table, const SymbolName* key,
static const char *
symbolTypeString (SymType type)
{
- switch (type) {
+ switch (type & ~SYM_TYPE_DUP_DISCARD) {
case SYM_TYPE_CODE: return "code";
case SYM_TYPE_DATA: return "data";
case SYM_TYPE_INDIRECT_DATA: return "indirect-data";
@@ -277,14 +275,18 @@ int ghciInsertSymbolTable(
insertStrHashTable(table, key, pinfo);
return 1;
}
- else if (pinfo->type != type)
+ else if (pinfo->type ^ type)
{
- debugBelch("Symbol type mismatch.\n");
- debugBelch("Symbol %s was defined by %" PATH_FMT " to be a %s symbol.\n",
- key, obj_name, symbolTypeString(type));
- debugBelch(" yet was defined by %" PATH_FMT " to be a %s symbol.\n",
- pinfo->owner ? pinfo->owner->fileName : WSTR("<builtin>"),
- symbolTypeString(pinfo->type));
+ /* We were asked to discard the symbol on duplicates, do so quietly. */
+ if (!(type & SYM_TYPE_DUP_DISCARD))
+ {
+ debugBelch("Symbol type mismatch.\n");
+ debugBelch("Symbol %s was defined by %" PATH_FMT " to be a %s symbol.\n",
+ key, obj_name, symbolTypeString(type));
+ debugBelch(" yet was defined by %" PATH_FMT " to be a %s symbol.\n",
+ pinfo->owner ? pinfo->owner->fileName : WSTR("<builtin>"),
+ symbolTypeString(pinfo->type));
+ }
return 1;
}
else if (pinfo->strength == STRENGTH_STRONG)
=====================================
rts/LinkerInternals.h
=====================================
@@ -52,11 +52,16 @@ typedef struct _Section Section;
*/
/* What kind of thing a symbol identifies. We need to know this to determine how
- * to process overflowing relocations. See Note [Processing overflowed relocations]. */
+ * to process overflowing relocations. See Note [Processing overflowed relocations].
+ * This is bitfield however only the option SYM_TYPE_DUP_DISCARD can be combined
+ * with the other values. */
typedef enum _SymType {
- SYM_TYPE_CODE, /* the symbol is a function and can be relocated via a jump island */
- SYM_TYPE_DATA, /* the symbol is data */
- SYM_TYPE_INDIRECT_DATA, /* see Note [_iob_func symbol] */
+ SYM_TYPE_CODE = 1 << 0, /* the symbol is a function and can be relocated via a jump island */
+ SYM_TYPE_DATA = 1 << 1, /* the symbol is data */
+ SYM_TYPE_INDIRECT_DATA = 1 << 2, /* see Note [_iob_func symbol] */
+ SYM_TYPE_DUP_DISCARD = 1 << 3, /* the symbol is a symbol in a BFD import library
+ however if a duplicate is found with a mismatching
+ SymType then discard this one. */
} SymType;
=====================================
rts/linker/PEi386.c
=====================================
@@ -261,6 +261,54 @@
.asciiz "libfoo_data"
+ Note [GHC Linking model and import libraries]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ The above describes how import libraries work for static linking.
+ Fundamentally this does not apply to dynamic linking as we do in GHC.
+ The issue is two-folds:
+
+ 1. In the linking model above it is expected that the .idata sections be
+ materialized into PLTs during linking. However in GHC we never create
+ PLTs, but have out own mechanism for this which is the jump island
+ machinery. This is required for efficiency. For one materializing the
+ .idata sections would result in wasting pages. We'd use one page for
+ every ~100 bytes. This is extremely wasteful and also fragments the
+ memory. Secondly the dynamic linker is lazy. We only perform the final
+ loading if the symbol is used, however with an import library we can
+ discard the actual OC immediately after reading it. This prevents us from
+ keeping ~1k in memory per symbol for no reason.
+
+ 2. GHC itself does not observe symbol visibility correctly during NGC. This
+ in itself isn't an academic exercise. The issue stems from GHC using one
+ mechanism for providing two incompatible linking modes:
+ a) The first mode is generating Haskell shared libraries which are
+ intended to be used by other Haskell code. This requires us to
+ export the info, data and closures. For this GHC just re-exports
+ all symbols. But it doesn't correcly mark data/code. Symbol
+ visibility is overwritten by telling the linker to export all
+ symbols.
+ b) The second code is producing code that's supposed to be call-able
+ through a C insterface. This in reality does not require the
+ export of closures and info tables. But also does not require the
+ inclusion of the RTS inside the DLL. Hover this is done today
+ because we don't properly have the RTS as a dynamic library.
+ i.e. GHC does not only export symbols denoted by foreign export.
+ Also GHC should depend on an RTS library, but at the moment it
+ cannot because of TNTC is incompatible with dynamic linking.
+
+ These two issues mean that for GHC we need to take a different approach
+ to handling import libraries. For normal C libraries we have proper
+ differentiation between CODE and DATA. For GHC produced import libraries
+ we do not. As such the SYM_TYPE_DUP_DISCARD tells the linker that if a
+ duplicate symbol is found, and we were going to discard it anyway, just do
+ so quitely. This works because the RTS symbols themselves are provided by
+ the currently loaded RTS as built-in symbols.
+
+ Secondly we cannot rely on a text symbol being available. As such we
+ should only depend on the symbols as defined in the .idata sections,
+ otherwise we would not be able to correctly link against GHC produced
+ import libraries.
+
Note [Memory allocation]
~~~~~~~~~~~~~~~~~~~~~~~~
The loading of an object begins in `preloadObjectFile`, which allocates a buffer,
@@ -1700,7 +1748,10 @@ ocGetNames_PEi386 ( ObjectCode* oc )
if ( secNumber != IMAGE_SYM_UNDEFINED
&& secNumber > 0
&& section
- && section->kind != SECTIONKIND_BFD_IMPORT_LIBRARY) {
+ /* Skip all BFD import sections. */
+ && section->kind != SECTIONKIND_IMPORT
+ && section->kind != SECTIONKIND_BFD_IMPORT_LIBRARY
+ && section->kind != SECTIONKIND_BFD_IMPORT_LIBRARY_HEAD) {
/* This symbol is global and defined, viz, exported */
/* for IMAGE_SYMCLASS_EXTERNAL
&& !IMAGE_SYM_UNDEFINED,
@@ -1733,12 +1784,49 @@ ocGetNames_PEi386 ( ObjectCode* oc )
IF_DEBUG(linker_verbose, debugBelch("bss symbol @ %p %u\n", addr, symValue));
}
else if (section && section->kind == SECTIONKIND_BFD_IMPORT_LIBRARY) {
- setImportSymbol(oc, sname);
+ /* Disassembly of section .idata$5:
+
+ 0000000000000000 <__imp_Insert>:
+ ...
+ 0: IMAGE_REL_AMD64_ADDR32NB .idata$6
+
+ The first two bytes contain the ordinal of the function
+ in the format of lowpart highpart. The two bytes combined
+ for the total range of 16 bits which is the function export limit
+ of DLLs. See note [GHC Linking model and import libraries]. */
+ sname = (SymbolName*)section->start+2;
+ COFF_symbol* sym = &oc->info->symbols[info->numberOfSymbols-1];
+ addr = get_sym_name( getSymShortName (info, sym), oc);
+
+ IF_DEBUG(linker,
+ debugBelch("addImportSymbol `%s' => `%s'\n",
+ sname, (char*)addr));
+ /* We're going to free the any data associated with the import
+ library without copying the sections. So we have to duplicate
+ the symbol name and values before the pointers become invalid. */
+ sname = strdup (sname);
+ addr = strdup (addr);
+ type = has_code_section ? SYM_TYPE_CODE : SYM_TYPE_DATA;
+ type |= SYM_TYPE_DUP_DISCARD;
+ if (!ghciInsertSymbolTable(oc->fileName, symhash, sname,
+ addr, false, type, oc)) {
+ releaseOcInfo (oc);
+ stgFree (oc->image);
+ oc->image = NULL;
+ return false;
+ }
+ setImportSymbol (oc, sname);
+
+ /* Don't process this oc any further. Just exit. */
+ oc->n_symbols = 0;
+ oc->symbols = NULL;
+ stgFree (oc->image);
+ oc->image = NULL;
+ releaseOcInfo (oc);
// There is nothing that we need to resolve in this object since we
// will never call the import stubs in its text section
oc->status = OBJECT_DONT_RESOLVE;
-
- IF_DEBUG(linker_verbose, debugBelch("import symbol %s\n", sname));
+ return true;
}
else if (secNumber > 0
&& section
=====================================
testsuite/tests/ghci/linking/dyn/Makefile
=====================================
@@ -88,10 +88,6 @@ compile_libAB_dyn:
.PHONY: compile_libAS_impl_gcc
compile_libAS_impl_gcc:
- rm -rf bin_impl_gcc
- mkdir bin_impl_gcc
- '$(TEST_HC)' $(MY_TEST_HC_OPTS) -odir "bin_impl_gcc" -shared A.c -o "bin_impl_gcc/$(call DLL,ASimpL)"
- mv bin_impl_gcc/libASimpL.dll.a bin_impl_gcc/libASx.dll.a
echo "main" | '$(TEST_HC)' $(TEST_HC_OPTS_INTERACTIVE) T11072.hs -lASx -L./bin_impl_gcc
.PHONY: compile_libAS_impl_msvc
=====================================
testsuite/tests/ghci/linking/dyn/all.T
=====================================
@@ -33,9 +33,9 @@ test('T10458',
extra_hc_opts('-L"$PWD/T10458dir" -lAS')],
ghci_script, ['T10458.script'])
-test('T11072gcc', [extra_files(['A.c', 'T11072.hs']),
- expect_broken(18718),
- unless(doing_ghci, skip), unless(opsys('mingw32'), skip)],
+test('T11072gcc', [extra_files(['A.c', 'T11072.hs', 'bin_impl_gcc/']),
+ unless(doing_ghci, skip), unless(opsys('mingw32'), skip),
+ unless(arch('x86_64'), skip)],
makefile_test, ['compile_libAS_impl_gcc'])
test('T11072msvc', [extra_files(['A.c', 'T11072.hs', 'libAS.def', 'i686/', 'x86_64/']),
=====================================
testsuite/tests/ghci/linking/dyn/bin_impl_gcc/ASimpL.dll
=====================================
Binary files /dev/null and b/testsuite/tests/ghci/linking/dyn/bin_impl_gcc/ASimpL.dll differ
=====================================
testsuite/tests/ghci/linking/dyn/bin_impl_gcc/libASx.dll.a
=====================================
Binary files /dev/null and b/testsuite/tests/ghci/linking/dyn/bin_impl_gcc/libASx.dll.a differ
=====================================
testsuite/tests/ghci/scripts/T9881.stdout
=====================================
@@ -19,19 +19,19 @@ instance Ord Data.ByteString.Lazy.ByteString
type Data.ByteString.ByteString :: *
data Data.ByteString.ByteString
- = Data.ByteString.Internal.BS {-# UNPACK #-}(GHC.ForeignPtr.ForeignPtr
- GHC.Word.Word8)
- {-# UNPACK #-}Int
- -- Defined in ‘Data.ByteString.Internal’
+ = bytestring-0.11.4.0:Data.ByteString.Internal.Type.BS {-# UNPACK #-}(GHC.ForeignPtr.ForeignPtr
+ GHC.Word.Word8)
+ {-# UNPACK #-}Int
+ -- Defined in ‘bytestring-0.11.4.0:Data.ByteString.Internal.Type’
instance Monoid Data.ByteString.ByteString
- -- Defined in ‘Data.ByteString.Internal’
+ -- Defined in ‘bytestring-0.11.4.0:Data.ByteString.Internal.Type’
instance Read Data.ByteString.ByteString
- -- Defined in ‘Data.ByteString.Internal’
+ -- Defined in ‘bytestring-0.11.4.0:Data.ByteString.Internal.Type’
instance Semigroup Data.ByteString.ByteString
- -- Defined in ‘Data.ByteString.Internal’
+ -- Defined in ‘bytestring-0.11.4.0:Data.ByteString.Internal.Type’
instance Show Data.ByteString.ByteString
- -- Defined in ‘Data.ByteString.Internal’
+ -- Defined in ‘bytestring-0.11.4.0:Data.ByteString.Internal.Type’
instance Eq Data.ByteString.ByteString
- -- Defined in ‘Data.ByteString.Internal’
+ -- Defined in ‘bytestring-0.11.4.0:Data.ByteString.Internal.Type’
instance Ord Data.ByteString.ByteString
- -- Defined in ‘Data.ByteString.Internal’
+ -- Defined in ‘bytestring-0.11.4.0:Data.ByteString.Internal.Type’
=====================================
testsuite/tests/ghci/scripts/ghci025.stdout
=====================================
@@ -53,7 +53,9 @@ Prelude.length :: Data.Foldable.Foldable t => t a -> GHC.Types.Int
-- imported via T
type T.Integer :: *
data T.Integer = ...
-T.length :: Data.ByteString.Internal.ByteString -> GHC.Types.Int
+T.length ::
+ bytestring-0.11.4.0:Data.ByteString.Internal.Type.ByteString
+ -> GHC.Types.Int
:browse! T
-- defined locally
T.length :: T.Integer
=====================================
testsuite/tests/linters/notes.stdout
=====================================
@@ -1,138 +1,153 @@
+ref compiler/GHC/Builtin/PrimOps.hs:329:7: Note [Core let/app invariant]
+ref compiler/GHC/Core.hs:178:10: Note [Core let/app invariant]
+ref compiler/GHC/Core.hs:189:10: Note [Core let/app invariant]
+ref compiler/GHC/Core.hs:520:3: Note [exprOkForSpeculation and type classes]
ref compiler/GHC/Core/Coercion/Axiom.hs:458:2: Note [RoughMap and rm_empty]
-ref compiler/GHC/Core/Opt/Arity.hs<line>:<no>: Note [Combining case branches]
-ref compiler/GHC/Core/Opt/Arity.hs<line>:<no>: Note [ArityType for let-bindings]
+ref compiler/GHC/Core/Lint.hs:635:15: Note [Core let/app invariant]
+ref compiler/GHC/Core/Make.hs:120:47: Note [Core let/app invariant]
+ref compiler/GHC/Core/Make.hs:146:9: Note [Core let/app invariant]
+ref compiler/GHC/Core/Make.hs:161:9: Note [Core let/app invariant]
+ref compiler/GHC/Core/Make.hs:175:9: Note [Core let/app invariant]
+ref compiler/GHC/Core/Make.hs:190:9: Note [Core let/app invariant]
+ref compiler/GHC/Core/Opt/Arity.hs:610:5: Note [Combining case branches]
+ref compiler/GHC/Core/Opt/Arity.hs:1298:0: Note [ArityType for let-bindings]
+ref compiler/GHC/Core/Opt/ConstantFold.hs:1413:15: Note [Core let/app invariant]
ref compiler/GHC/Core/Opt/OccurAnal.hs:851:15: Note [Loop breaking]
ref compiler/GHC/Core/Opt/SetLevels.hs:1598:30: Note [Top level scope]
-ref compiler/GHC/Core/Opt/Simplify.hs:2618:13: Note [Case binder next]
-ref compiler/GHC/Core/Opt/Simplify.hs:3239:0: Note [Suppressing binder-swaps on linear case]
-ref compiler/GHC/Core/Opt/Simplify.hs:3767:8: Note [Lambda-bound unfoldings]
-ref compiler/GHC/Core/Opt/Simplify.hs:4123:33: Note [Do not eta-expand trivial expressions]
-ref compiler/GHC/Core/Opt/Simplify/Utils.hs:1225:37: Note [Gentle mode]
-ref compiler/GHC/Core/Opt/Specialise.hs:1593:28: Note [Arity decrease]
+ref compiler/GHC/Core/Opt/Simplify.hs:1708:17: Note [Core let/app invariant]
+ref compiler/GHC/Core/Opt/Simplify.hs:2672:13: Note [Case binder next]
+ref compiler/GHC/Core/Opt/Simplify.hs:3294:0: Note [Suppressing binder-swaps on linear case]
+ref compiler/GHC/Core/Opt/Simplify.hs:3844:8: Note [Lambda-bound unfoldings]
+ref compiler/GHC/Core/Opt/Simplify.hs:4200:33: Note [Do not eta-expand trivial expressions]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:1240:37: Note [Gentle mode]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:1294:7: Note [Core let/app invariant]
+ref compiler/GHC/Core/Opt/Simplify/Utils.hs:1420:7: Note [Core let/app invariant]
+ref compiler/GHC/Core/Opt/Specialise.hs:1588:28: Note [Arity decrease]
ref compiler/GHC/Core/RoughMap.hs:183:35: Note [RoughMatch and beta reduction]
ref compiler/GHC/Core/Subst.hs:100:60: Note [Apply once]
ref compiler/GHC/Core/Subst.hs:111:16: Note [Extending the TCvSubst]
-ref compiler/GHC/Core/TyCo/FVs.hs:289:7: Note [Free variables of Coercions]
+ref compiler/GHC/Core/TyCo/FVs.hs:286:7: Note [Free variables of Coercions]
ref compiler/GHC/Core/TyCo/Ppr.hs:71:23: Note [IfaceType and pretty-printing]
-ref compiler/GHC/Core/TyCo/Rep.hs:1711:31: Note [What prevents a constraint from floating]
+ref compiler/GHC/Core/TyCo/Rep.hs:1748:31: Note [What prevents a constraint from floating]
ref compiler/GHC/Core/TyCo/Subst.hs:784:15: Note [Extending the TCvSubst]
ref compiler/GHC/Core/TyCo/Subst.hs:1001:15: Note [Extending the TCvSubst]
-ref compiler/GHC/Core/TyCon.hs:961:35: Note [Promoted GADT data construtors]
-ref compiler/GHC/Core/TyCon.hs:2442:62: Note [Sharing nullary TyCons]
-ref compiler/GHC/Core/Unfold.hs:1171:23: Note [INLINE for small functions (3)]
-ref compiler/GHC/Core/Unfold.hs:1242:50: Note [Unfold info lazy contexts]
+ref compiler/GHC/Core/TyCon.hs:966:35: Note [Promoted GADT data construtors]
+ref compiler/GHC/Core/TyCon.hs:2472:62: Note [Sharing nullary TyCons]
+ref compiler/GHC/Core/Unfold.hs:1174:23: Note [INLINE for small functions (3)]
+ref compiler/GHC/Core/Unfold.hs:1245:50: Note [Unfold info lazy contexts]
ref compiler/GHC/Core/Unfold/Make.hs:157:34: Note [DFunUnfoldings]
-ref compiler/GHC/Core/Unify.hs:1390:9: Note [INLINE pragmas and (>>)]
-ref compiler/GHC/Core/Utils.hs:947:40: Note [ _ -> [con1]
-ref compiler/GHC/CoreToStg.hs:462:15: Note [Nullary unboxed tuple]
-ref compiler/GHC/Driver/Main.hs:1566:34: Note [simpleTidyPgm - mkBootModDetailsTc]
-ref compiler/GHC/Driver/Session.hs:1947:36: Note [GHC.Driver.Main . Safe Haskell Inference]
-ref compiler/GHC/Driver/Session.hs:3916:49: Note [Eta-reduction in -O0]
+ref compiler/GHC/Core/Unify.hs:1492:9: Note [INLINE pragmas and (>>)]
+ref compiler/GHC/Core/Utils.hs:952:40: Note [ _ -> [con1]
+ref compiler/GHC/CoreToStg.hs:463:15: Note [Nullary unboxed tuple]
+ref compiler/GHC/Driver/Main.hs:1594:34: Note [simpleTidyPgm - mkBootModDetailsTc]
+ref compiler/GHC/Driver/Session.hs:1997:36: Note [GHC.Driver.Main . Safe Haskell Inference]
+ref compiler/GHC/Driver/Session.hs:3991:49: Note [Eta-reduction in -O0]
ref compiler/GHC/Hs/Extension.hs:140:5: Note [Strict argument type constraints]
ref compiler/GHC/HsToCore/Binds.hs:313:33: Note [AbsBinds wrappers]
-ref compiler/GHC/HsToCore/Binds.hs:849:46: Note [Free dictionaries]
-ref compiler/GHC/HsToCore/Binds.hs:883:36: Note [Free tyvars in rule LHS]
-ref compiler/GHC/HsToCore/Binds.hs:884:35: Note [Free dictionaries in rule LHS]
-ref compiler/GHC/HsToCore/Binds.hs:942:24: Note [Free dictionaries]
-ref compiler/GHC/HsToCore/Binds.hs:999:34: Note [Dead spec binders]
-ref compiler/GHC/HsToCore/Docs.hs:126:70: Note [1]
-ref compiler/GHC/HsToCore/Docs.hs:130:0: Note [1]
-ref compiler/GHC/HsToCore/Pmc/Solver.hs:853:20: Note [COMPLETE sets on data families]
+ref compiler/GHC/HsToCore/Binds.hs:850:46: Note [Free dictionaries]
+ref compiler/GHC/HsToCore/Binds.hs:884:36: Note [Free tyvars in rule LHS]
+ref compiler/GHC/HsToCore/Binds.hs:885:35: Note [Free dictionaries in rule LHS]
+ref compiler/GHC/HsToCore/Binds.hs:943:24: Note [Free dictionaries]
+ref compiler/GHC/HsToCore/Binds.hs:1000:34: Note [Dead spec binders]
+ref compiler/GHC/HsToCore/Docs.hs:272:70: Note [1]
+ref compiler/GHC/HsToCore/Docs.hs:276:0: Note [1]
+ref compiler/GHC/HsToCore/Pmc/Solver.hs:855:20: Note [COMPLETE sets on data families]
ref compiler/GHC/HsToCore/Types.hs:61:13: Note [Generating fresh names for FFI wrappers]
-ref compiler/GHC/HsToCore/Utils.hs:939:62: Note [Don't CPR join points]
+ref compiler/GHC/HsToCore/Utils.hs:942:62: Note [Don't CPR join points]
ref compiler/GHC/Iface/Syntax.hs:708:0: Note [Minimal complete definition]
ref compiler/GHC/Iface/Syntax.hs:768:44: Note [Minimal complete definition]
-ref compiler/GHC/Parser/Lexer.x:185:7: Note [Lexing NumericUnderscores extension]
-ref compiler/GHC/Parser/Lexer.x:502:3: Note [Lexing NumericUnderscores extension]
-ref compiler/GHC/Rename/Expr.hs:2013:9: Note [ApplicativeDo and strict patterns]
-ref compiler/GHC/Rename/Expr.hs:2046:12: Note [ApplicativeDo and refutable patterns]
-ref compiler/GHC/Rename/Expr.hs:2130:18: Note [ApplicativeDo and strict patterns]
-ref compiler/GHC/Rename/Expr.hs:2148:0: Note [ApplicativeDo and strict patterns]
-ref compiler/GHC/Rename/Expr.hs:2203:0: Note [ApplicativeDo and refutable patterns]
+ref compiler/GHC/Parser/Lexer.x:188:7: Note [Lexing NumericUnderscores extension]
+ref compiler/GHC/Parser/Lexer.x:505:3: Note [Lexing NumericUnderscores extension]
+ref compiler/GHC/Rename/Expr.hs:2043:9: Note [ApplicativeDo and strict patterns]
+ref compiler/GHC/Rename/Expr.hs:2082:12: Note [ApplicativeDo and refutable patterns]
+ref compiler/GHC/Rename/Expr.hs:2166:18: Note [ApplicativeDo and strict patterns]
+ref compiler/GHC/Rename/Expr.hs:2184:0: Note [ApplicativeDo and strict patterns]
+ref compiler/GHC/Rename/Expr.hs:2239:0: Note [ApplicativeDo and refutable patterns]
ref compiler/GHC/Rename/Pat.hs:888:29: Note [Disambiguating record fields]
-ref compiler/GHC/Rename/Splice.hs:450:27: Note [Splices]
-ref compiler/GHC/Runtime/Eval.hs:996:2: Note [Querying instances for a type]
+ref compiler/GHC/Rename/Splice.hs:478:27: Note [Splices]
+ref compiler/GHC/Runtime/Eval.hs:995:2: Note [Querying instances for a type]
ref compiler/GHC/Runtime/Interpreter.hs:198:30: Note [uninterruptibleMask_]
-ref compiler/GHC/StgToCmm.hs:108:18: Note [codegen-split-init]
-ref compiler/GHC/StgToCmm.hs:111:18: Note [pipeline-split-init]
-ref compiler/GHC/StgToCmm/Expr.hs:585:4: Note [case on bool]
-ref compiler/GHC/StgToCmm/Expr.hs:848:3: Note [alg-alt heap check]
-ref compiler/GHC/Tc/Errors.hs:180:13: Note [Fail fast on kind errors]
-ref compiler/GHC/Tc/Errors.hs:2016:0: Note [Highlighting ambiguous type variables]
-ref compiler/GHC/Tc/Errors/Ppr.hs:1760:11: Note [Highlighting ambiguous type variables]
-ref compiler/GHC/Tc/Gen/Arrow.hs:435:29: Note [RecStmt]
-ref compiler/GHC/Tc/Gen/Bind.hs:1397:19: Note [Existentials in pattern bindings]
-ref compiler/GHC/Tc/Gen/Export.hs:187:15: Note [Modules without a module header]
-ref compiler/GHC/Tc/Gen/Export.hs:418:0: Note [Modules without a module header]
-ref compiler/GHC/Tc/Gen/Export.hs:576:7: Note [Typing Pattern Synonym Exports]
-ref compiler/GHC/Tc/Gen/Export.hs:615:16: Note [Types of TyCon]
-ref compiler/GHC/Tc/Gen/Expr.hs:670:24: Note [Disambiguating record fields]
-ref compiler/GHC/Tc/Gen/Expr.hs:687:15: Note [Mixed Record Selectors]
+ref compiler/GHC/Stg/Lint.hs:9:56: Note [Core let/app invariant]
+ref compiler/GHC/StgToCmm.hs:106:18: Note [codegen-split-init]
+ref compiler/GHC/StgToCmm.hs:109:18: Note [pipeline-split-init]
+ref compiler/GHC/StgToCmm/Expr.hs:579:4: Note [case on bool]
+ref compiler/GHC/StgToCmm/Expr.hs:847:3: Note [alg-alt heap check]
+ref compiler/GHC/Tc/Errors.hs:178:13: Note [Fail fast on kind errors]
+ref compiler/GHC/Tc/Errors.hs:2239:0: Note [Highlighting ambiguous type variables]
+ref compiler/GHC/Tc/Errors/Ppr.hs:2074:11: Note [Highlighting ambiguous type variables]
+ref compiler/GHC/Tc/Gen/Arrow.hs:438:29: Note [RecStmt]
+ref compiler/GHC/Tc/Gen/Bind.hs:1368:19: Note [Existentials in pattern bindings]
+ref compiler/GHC/Tc/Gen/Export.hs:188:15: Note [Modules without a module header]
+ref compiler/GHC/Tc/Gen/Export.hs:423:0: Note [Modules without a module header]
+ref compiler/GHC/Tc/Gen/Export.hs:581:7: Note [Typing Pattern Synonym Exports]
+ref compiler/GHC/Tc/Gen/Export.hs:620:16: Note [Types of TyCon]
+ref compiler/GHC/Tc/Gen/Expr.hs:662:24: Note [Disambiguating record fields]
+ref compiler/GHC/Tc/Gen/Expr.hs:679:15: Note [Mixed Record Selectors]
ref compiler/GHC/Tc/Gen/Expr.hs:1195:7: Note [Disambiguating record fields]
ref compiler/GHC/Tc/Gen/Expr.hs:1298:11: Note [Deprecating ambiguous fields]
ref compiler/GHC/Tc/Gen/Foreign.hs:149:26: Note [Expanding newtypes]
-ref compiler/GHC/Tc/Gen/HsType.hs:552:56: Note [Skolem escape prevention]
-ref compiler/GHC/Tc/Gen/HsType.hs:2623:7: Note [Matching a kind sigature with a declaration]
-ref compiler/GHC/Tc/Gen/Match.hs:553:20: Note [GroupStmt binder map]
-ref compiler/GHC/Tc/Gen/Match.hs:746:20: Note [GroupStmt binder map]
-ref compiler/GHC/Tc/Gen/Match.hs:1011:0: Note [typechecking ApplicativeStmt]
-ref compiler/GHC/Tc/Gen/Pat.hs:169:20: Note [Typing patterns in pattern bindings]
-ref compiler/GHC/Tc/Gen/Pat.hs:476:7: Note [Pattern coercions]
-ref compiler/GHC/Tc/Gen/Pat.hs:1077:7: Note [Matching polytyped patterns]
-ref compiler/GHC/Tc/Gen/Pat.hs:1376:16: Note [Pattern coercions]
+ref compiler/GHC/Tc/Gen/HsType.hs:551:56: Note [Skolem escape prevention]
+ref compiler/GHC/Tc/Gen/HsType.hs:2632:7: Note [Matching a kind sigature with a declaration]
+ref compiler/GHC/Tc/Gen/Match.hs:541:20: Note [GroupStmt binder map]
+ref compiler/GHC/Tc/Gen/Match.hs:734:20: Note [GroupStmt binder map]
+ref compiler/GHC/Tc/Gen/Match.hs:999:0: Note [typechecking ApplicativeStmt]
+ref compiler/GHC/Tc/Gen/Pat.hs:171:20: Note [Typing patterns in pattern bindings]
+ref compiler/GHC/Tc/Gen/Pat.hs:480:7: Note [Pattern coercions]
+ref compiler/GHC/Tc/Gen/Pat.hs:1107:7: Note [Matching polytyped patterns]
+ref compiler/GHC/Tc/Gen/Pat.hs:1407:16: Note [Pattern coercions]
ref compiler/GHC/Tc/Gen/Sig.hs:78:10: Note [Overview of type signatures]
ref compiler/GHC/Tc/Instance/Family.hs:515:35: Note [Constrained family instances]
-ref compiler/GHC/Tc/Module.hs:698:15: Note [Extra dependencies from .hs-boot files]
-ref compiler/GHC/Tc/Module.hs:1904:19: Note [Root-main id]
-ref compiler/GHC/Tc/Module.hs:1974:6: Note [Root-main id]
-ref compiler/GHC/Tc/Solver/Canonical.hs:1229:33: Note [Canonical LHS]
-ref compiler/GHC/Tc/Solver/Interact.hs:1638:9: Note [No touchables as FunEq RHS]
-ref compiler/GHC/Tc/Solver/Interact.hs:2292:12: Note [The equality class story]
-ref compiler/GHC/Tc/Solver/Rewrite.hs:1032:7: Note [Stability of rewriting]
+ref compiler/GHC/Tc/Module.hs:705:15: Note [Extra dependencies from .hs-boot files]
+ref compiler/GHC/Tc/Module.hs:1916:19: Note [Root-main id]
+ref compiler/GHC/Tc/Module.hs:1986:6: Note [Root-main id]
+ref compiler/GHC/Tc/Solver/Canonical.hs:1087:33: Note [Canonical LHS]
+ref compiler/GHC/Tc/Solver/Interact.hs:1619:9: Note [No touchables as FunEq RHS]
+ref compiler/GHC/Tc/Solver/Interact.hs:2305:12: Note [The equality class story]
+ref compiler/GHC/Tc/Solver/Rewrite.hs:988:7: Note [Stability of rewriting]
ref compiler/GHC/Tc/TyCl.hs:627:3: Note [Single function non-recursive binding special-case]
ref compiler/GHC/Tc/TyCl.hs:1106:6: Note [Unification variables need fresh Names]
ref compiler/GHC/Tc/TyCl.hs:1895:13: Note [TyConBinders for the result kind signatures of a data type]
-ref compiler/GHC/Tc/TyCl.hs:4366:16: Note [rejigCon and c.f. Note [Check role annotations in a second pass]
+ref compiler/GHC/Tc/TyCl.hs:4362:16: Note [rejigCon and c.f. Note [Check role annotations in a second pass]
ref compiler/GHC/Tc/TyCl/Instance.hs:947:26: Note [Generalising in tcFamTyPatsGuts]
-ref compiler/GHC/Tc/Types.hs:647:17: Note [Generating fresh names for FFI wrappers]
-ref compiler/GHC/Tc/Types.hs:696:33: Note [Extra dependencies from .hs-boot files]
-ref compiler/GHC/Tc/Types.hs:1154:28: Note [Don't promote data constructors with non-equality contexts]
-ref compiler/GHC/Tc/Types.hs:1230:36: Note [Bindings with closed types]
-ref compiler/GHC/Tc/Types.hs:1466:47: Note [Care with plugin imports]
-ref compiler/GHC/Tc/Types/Constraint.hs:238:34: Note [NonCanonical Semantics]
+ref compiler/GHC/Tc/Types.hs:653:17: Note [Generating fresh names for FFI wrappers]
+ref compiler/GHC/Tc/Types.hs:702:33: Note [Extra dependencies from .hs-boot files]
+ref compiler/GHC/Tc/Types.hs:1160:28: Note [Don't promote data constructors with non-equality contexts]
+ref compiler/GHC/Tc/Types.hs:1236:36: Note [Bindings with closed types]
+ref compiler/GHC/Tc/Types.hs:1472:47: Note [Care with plugin imports]
+ref compiler/GHC/Tc/Types/Constraint.hs:254:34: Note [NonCanonical Semantics]
ref compiler/GHC/Tc/Utils/Env.hs:556:7: Note [Bindings with closed types]
ref compiler/GHC/Tc/Utils/Env.hs:1128:7: Note [Generating fresh names for ccall wrapper]
ref compiler/GHC/Tc/Utils/Env.hs:1141:0: Note [Generating fresh names for FFI wrappers]
ref compiler/GHC/Tc/Utils/Env.hs:1192:7: Note [Placeholder PatSyn kinds]
-ref compiler/GHC/Tc/Utils/TcMType.hs:793:7: Note [Kind checking for GADTs]
-ref compiler/GHC/Tc/Utils/TcType.hs:529:7: Note [TyVars and TcTyVars]
-ref compiler/GHC/ThToHs.hs:1738:11: Note [Adding parens for splices]
-ref compiler/GHC/ThToHs.hs:1749:3: Note [Adding parens for splices]
-ref compiler/GHC/Types/Basic.hs:619:17: Note [Safe Haskell isSafeOverlap]
-ref compiler/GHC/Types/Basic.hs:1359:7: Note [Activation competition]
-ref compiler/GHC/Types/Demand.hs:307:25: Note [Preserving Boxity of results is rarely a win]
-ref compiler/GHC/Types/Demand.hs:1100:4: Note [Use one-shot information]
+ref compiler/GHC/Tc/Utils/TcMType.hs:750:7: Note [Kind checking for GADTs]
+ref compiler/GHC/Tc/Utils/TcType.hs:591:7: Note [TyVars and TcTyVars]
+ref compiler/GHC/ThToHs.hs:1788:11: Note [Adding parens for splices]
+ref compiler/GHC/ThToHs.hs:1799:3: Note [Adding parens for splices]
+ref compiler/GHC/Types/Basic.hs:624:17: Note [Safe Haskell isSafeOverlap]
+ref compiler/GHC/Types/Basic.hs:1370:7: Note [Activation competition]
+ref compiler/GHC/Types/Demand.hs:310:25: Note [Preserving Boxity of results is rarely a win]
+ref compiler/GHC/Types/Demand.hs:1142:4: Note [Use one-shot information]
ref compiler/GHC/Types/Error.hs:358:3: Note [Suppressing Messages]
ref compiler/GHC/Types/Error.hs:393:28: Note [Suppressing Messages]
ref compiler/GHC/Types/Name/Occurrence.hs:301:4: Note [Unique OccNames from Template Haskell]
ref compiler/GHC/Types/Unique.hs:78:25: Note [Uniques-prelude - Uniques for wired-in Prelude things]
-ref compiler/GHC/Unit/Module/Deps.hs:79:13: Note [Structure of dep_boot_mods]
+ref compiler/GHC/Unit/Module/Deps.hs:82:13: Note [Structure of dep_boot_mods]
ref compiler/GHC/Utils/Monad.hs:391:34: Note [multiShotIO]
-ref compiler/Language/Haskell/Syntax/Binds.hs:226:31: Note [fun_id in Match]
-ref compiler/Language/Haskell/Syntax/Expr.hs:1561:32: Note [Quasi-quote overview]
+ref compiler/Language/Haskell/Syntax/Binds.hs:204:31: Note [fun_id in Match]
+ref compiler/Language/Haskell/Syntax/Expr.hs:1571:32: Note [Quasi-quote overview]
ref compiler/Language/Haskell/Syntax/Pat.hs:336:12: Note [Disambiguating record fields]
-ref configure.ac:212:10: Note [Linking ghc-bin against threaded stage0 RTS]
+ref configure.ac:213:10: Note [Linking ghc-bin against threaded stage0 RTS]
ref docs/core-spec/core-spec.mng:177:6: Note [TyBinders]
-ref ghc/GHCi/UI.hs:3646:25: Note [ModBreaks.decls]
-ref ghc/ghc.mk:62:6: Note [Linking ghc-bin against threaded stage0 RTS]
-ref hadrian/src/Expression.hs:130:30: Note [Linking ghc-bin against threaded stage0 RTS]
-ref libraries/base/GHC/ST.hs:139:7: Note [Definition of runRW#]
+ref ghc/GHCi/UI.hs:3648:25: Note [ModBreaks.decls]
+ref ghc/ghc.mk:57:6: Note [Linking ghc-bin against threaded stage0 RTS]
+ref hadrian/src/Expression.hs:134:30: Note [Linking ghc-bin against threaded stage0 RTS]
+ref libraries/base/GHC/ST.hs:134:7: Note [Definition of runRW#]
ref linters/lint-notes/Notes.hs:32:29: Note [" <> T.unpack x <> "]
ref linters/lint-notes/Notes.hs:69:22: Note [...]
-ref testsuite/config/ghc:212:10: Note [WayFlags]
+ref testsuite/config/ghc:243:10: Note [WayFlags]
ref testsuite/driver/testlib.py:152:10: Note [Why is there no stage1 setup function?]
ref testsuite/driver/testlib.py:156:2: Note [Why is there no stage1 setup function?]
-ref testsuite/mk/boilerplate.mk:263:2: Note [WayFlags]
+ref testsuite/mk/boilerplate.mk:267:2: Note [WayFlags]
ref testsuite/tests/indexed-types/should_fail/ExtraTcsUntch.hs:30:27: Note [Extra TcS Untouchables]
ref testsuite/tests/perf/join_points/join005.hs:19:63: Note [Don't CPR join points]
ref testsuite/tests/perf/should_run/all.T:3:6: Note [Solving from instances when interacting Dicts]
=====================================
testsuite/tests/rts/all.T
=====================================
@@ -368,7 +368,7 @@ test('T10296b', [only_ways(['threaded2'])], compile_and_run, [''])
test('numa001', [ extra_run_opts('8'), unless(unregisterised(), extra_ways(['debug_numa'])) ]
, compile_and_run, [''])
-test('T12497', [ unless(opsys('mingw32'), skip)
+test('T12497', [ unless(opsys('mingw32'), skip), expect_broken(22694)
],
makefile_test, ['T12497'])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/02e1f7a104f7aae90da19bcc3e74f15cdd582d86...cc4e2482ca3e32308cbe5beb43c898a5bbe5e540
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/02e1f7a104f7aae90da19bcc3e74f15cdd582d86...cc4e2482ca3e32308cbe5beb43c898a5bbe5e540
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/20230412/a8877514/attachment-0001.html>
More information about the ghc-commits
mailing list