[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 5 commits: tests: Widen acceptance window for dir and so size tests

Marge Bot (@marge-bot) gitlab at gitlab.haskell.org
Sat May 4 20:39:02 UTC 2024



Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC


Commits:
c49493f2 by Matthew Pickering at 2024-05-04T06:02:57-04:00
tests: Widen acceptance window for dir and so size tests

These are testing things which are sometimes out the control of a GHC
developer. Therefore we shouldn't fail CI if something about these
dependencies change because we can't do anything about it.

It is still useful to have these statistics for visualisation in grafana
though.

Ticket #24759

- - - - -
9562808d by Matthew Pickering at 2024-05-04T06:02:57-04:00
Disable rts_so test

It has already manifested large fluctuations and destabilising CI

Fixes #24762

- - - - -
fc24c5cf by Ryan Scott at 2024-05-04T06:03:33-04:00
unboxedSum{Type,Data}Name: Use GHC.Types as the module

Unboxed sum constructors are now defined in the `GHC.Types` module, so if you
manually quote an unboxed sum (e.g., `''Sum2#`), you will get a `Name` like:

```hs
GHC.Types.Sum2#
```

The `unboxedSumTypeName` function in `template-haskell`, however, mistakenly
believes that unboxed sum constructors are defined in `GHC.Prim`, so
`unboxedSumTypeName 2` would return an entirely different `Name`:

```hs
GHC.Prim.(#|#)
```

This is a problem for Template Haskell users, as it means that they can't be
sure which `Name` is the correct one. (Similarly for `unboxedSumDataName`.)

This patch fixes the implementations of `unboxedSum{Type,Data}Name` to use
`GHC.Types` as the module. For consistency with `unboxedTupleTypeName`, the
`unboxedSumTypeName` function now uses the non-punned syntax for unboxed sums
(`Sum<N>#`) as the `OccName`.

Fixes #24750.

- - - - -
7eab4e01 by Alan Zimmerman at 2024-05-04T16:14:55+01:00
EPA: Widen stmtslist to include last semicolon

Closes #24754

- - - - -
46b618dd by Teo Camarasu at 2024-05-04T16:38:51-04:00
doc: Fix type error in hs_try_putmvar example
- - - - -


10 changed files:

- compiler/GHC/Parser.y
- docs/users_guide/exts/ffi.rst
- libraries/template-haskell/Language/Haskell/TH/Lib/Syntax.hs
- testsuite/tests/parser/should_compile/DumpSemis.stderr
- testsuite/tests/perf/size/all.T
- testsuite/tests/printer/Makefile
- + testsuite/tests/printer/Test24754.hs
- testsuite/tests/printer/all.T
- + testsuite/tests/quotes/T24750.hs
- testsuite/tests/quotes/all.T


Changes:

=====================================
compiler/GHC/Parser.y
=====================================
@@ -3444,7 +3444,7 @@ stmts :: { forall b. DisambECP b => PV (Located (OrdList AddEpAnn,[LStmt GhcPs (
                              [] -> return (sLZ $1 $> ((fst $ unLoc $1) `snocOL` (mj AnnSemi $2),snd $ unLoc $1))
                              (h:t) -> do
                                { h' <- addTrailingSemiA h (gl $2)
-                               ; return $ sL1 $1 (fst $ unLoc $1,h':t) }}
+                               ; return $ sLZ $1 $> (fst $ unLoc $1,h':t) }}
         | stmt                   { $1 >>= \ $1 ->
                                    return $ sL1 $1 (nilOL,[$1]) }
         | {- empty -}            { return $ noLoc (nilOL,[]) }


=====================================
docs/users_guide/exts/ffi.rst
=====================================
@@ -998,7 +998,7 @@ the data.  We can do it like this:
        sp <- newStablePtrPrimMVar mvar
        fp <- mallocForeignPtr
        withForeignPtr fp $ \presult -> do
-         cap <- threadCapability =<< myThreadId
+         (cap, _) <- threadCapability =<< myThreadId
          scheduleCallback sp cap presult
          takeMVar mvar `onException`
            forkIO (do takeMVar mvar; touchForeignPtr fp)


=====================================
libraries/template-haskell/Language/Haskell/TH/Lib/Syntax.hs
=====================================
@@ -1955,7 +1955,7 @@ unboxedSumDataName alt arity
 
   | otherwise
   = Name (mkOccName sum_occ)
-         (NameG DataName (mkPkgName "ghc-prim") (mkModName "GHC.Prim"))
+         (NameG DataName (mkPkgName "ghc-prim") (mkModName "GHC.Types"))
 
   where
     prefix     = "unboxedSumDataName: "
@@ -1974,11 +1974,11 @@ unboxedSumTypeName arity
 
   | otherwise
   = Name (mkOccName sum_occ)
-         (NameG TcClsName (mkPkgName "ghc-prim") (mkModName "GHC.Prim"))
+         (NameG TcClsName (mkPkgName "ghc-prim") (mkModName "GHC.Types"))
 
   where
     -- Synced with the definition of mkSumTyConOcc in GHC.Builtin.Types
-    sum_occ = '(' : '#' : replicate (arity - 1) '|' ++ "#)"
+    sum_occ = "Sum" ++ show arity ++ "#"
 
 -----------------------------------------------------
 --              Locations


=====================================
testsuite/tests/parser/should_compile/DumpSemis.stderr
=====================================
@@ -856,7 +856,7 @@
                    (EpaSpan { DumpSemis.hs:22:10-30 })
                    (AnnList
                     (Just
-                     (EpaSpan { DumpSemis.hs:22:12-25 }))
+                     (EpaSpan { DumpSemis.hs:22:12-28 }))
                     (Just
                      (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:22:10 })))
                     (Just


=====================================
testsuite/tests/perf/size/all.T
=====================================
@@ -3,77 +3,80 @@ test('size_hello_obj', [collect_size(5, 'size_hello_obj.o')], compile, [''])
 test('size_hello_artifact', [collect_size(5, 'size_hello_artifact' + exe_extension())],
                              compile_artifact, [''])
 
-test('array_dir'           ,[collect_size_ghc_pkg(5 , 'array')]           , static_stats , [] )
-test('base_dir'            ,[collect_size_ghc_pkg(5 , 'base')]            , static_stats , [] )
-test('binary_dir'          ,[collect_size_ghc_pkg(5 , 'binary')]          , static_stats , [] )
-test('bytestring_dir'      ,[collect_size_ghc_pkg(5 , 'bytestring')]      , static_stats , [] )
-test('cabal_dir'           ,[collect_size_ghc_pkg(5 , 'Cabal')]           , static_stats , [] )
-test('cabal_syntax_dir'    ,[collect_size_ghc_pkg(5 , 'Cabal-syntax')]    , static_stats , [] )
-test('containers_dir'      ,[collect_size_ghc_pkg(5 , 'containers')]      , static_stats , [] )
-test('deepseq_dir'         ,[collect_size_ghc_pkg(5 , 'deepseq')]         , static_stats , [] )
-test('directory_dir'       ,[collect_size_ghc_pkg(5 , 'directory')]       , static_stats , [] )
-test('exceptions_dir'      ,[collect_size_ghc_pkg(5 , 'exceptions')]      , static_stats , [] )
-test('ghc_bignum_dir'      ,[collect_size_ghc_pkg(5 , 'ghc-bignum')]      , static_stats , [] )
-test('ghc_boot_dir'        ,[collect_size_ghc_pkg(5 , 'ghc-boot')]        , static_stats , [] )
-test('ghc_boot_th_dir'     ,[collect_size_ghc_pkg(5 , 'ghc-boot-th')]     , static_stats , [] )
-test('ghc_compact_dir'     ,[collect_size_ghc_pkg(5 , 'ghc-compact')]     , static_stats , [] )
-test('ghc_dir'             ,[collect_size_ghc_pkg(5 , 'ghc')]             , static_stats , [] )
-test('ghc_experimental_dir',[collect_size_ghc_pkg(5 , 'ghc-experimental')], static_stats , [] )
-test('ghc_heap_dir'        ,[collect_size_ghc_pkg(5 , 'ghc-heap')]        , static_stats , [] )
-test('ghc_internal_dir'    ,[collect_size_ghc_pkg(5 , 'ghc-internal')]    , static_stats , [] )
-test('ghc_platform_dir'    ,[collect_size_ghc_pkg(5 , 'ghc-platform')]    , static_stats , [] )
-test('ghc_prim_dir'        ,[collect_size_ghc_pkg(5 , 'ghc-prim')]        , static_stats , [] )
-test('ghc_toolchain_dir'   ,[collect_size_ghc_pkg(5 , 'ghc-toolchain')]   , static_stats , [] )
-test('haskeline_dir'       ,[collect_size_ghc_pkg(5 , 'haskeline')]       , static_stats , [] )
-test('hpc_dir'             ,[collect_size_ghc_pkg(5 , 'hpc')]             , static_stats , [] )
-test('integer_gmp_dir'     ,[collect_size_ghc_pkg(5 , 'integer-gmp')]     , static_stats , [] )
-test('mtl_dir'             ,[collect_size_ghc_pkg(5 , 'mtl')]             , static_stats , [] )
-test('os_string_dir'       ,[collect_size_ghc_pkg(5 , 'os-string')]       , static_stats , [] )
-test('parsec_dir'          ,[collect_size_ghc_pkg(5 , 'parsec')]          , static_stats , [] )
-test('pretty_dir'          ,[collect_size_ghc_pkg(5 , 'pretty')]          , static_stats , [] )
-test('process_dir'         ,[collect_size_ghc_pkg(5 , 'process')]         , static_stats , [] )
-test('time_dir'            ,[collect_size_ghc_pkg(5 , 'time')]            , static_stats , [] )
-test('xhtml_dir'           ,[collect_size_ghc_pkg(5 , 'xhtml')]           , static_stats , [] )
+size_acceptance_threshold = 100
+
+test('array_dir'           ,[collect_size_ghc_pkg(size_acceptance_threshold , 'array')]           , static_stats , [] )
+test('base_dir'            ,[collect_size_ghc_pkg(size_acceptance_threshold , 'base')]            , static_stats , [] )
+test('binary_dir'          ,[collect_size_ghc_pkg(size_acceptance_threshold , 'binary')]          , static_stats , [] )
+test('bytestring_dir'      ,[collect_size_ghc_pkg(size_acceptance_threshold , 'bytestring')]      , static_stats , [] )
+test('cabal_dir'           ,[collect_size_ghc_pkg(size_acceptance_threshold , 'Cabal')]           , static_stats , [] )
+test('cabal_syntax_dir'    ,[collect_size_ghc_pkg(size_acceptance_threshold , 'Cabal-syntax')]    , static_stats , [] )
+test('containers_dir'      ,[collect_size_ghc_pkg(size_acceptance_threshold , 'containers')]      , static_stats , [] )
+test('deepseq_dir'         ,[collect_size_ghc_pkg(size_acceptance_threshold , 'deepseq')]         , static_stats , [] )
+test('directory_dir'       ,[collect_size_ghc_pkg(size_acceptance_threshold , 'directory')]       , static_stats , [] )
+test('exceptions_dir'      ,[collect_size_ghc_pkg(size_acceptance_threshold , 'exceptions')]      , static_stats , [] )
+test('ghc_bignum_dir'      ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-bignum')]      , static_stats , [] )
+test('ghc_boot_dir'        ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-boot')]        , static_stats , [] )
+test('ghc_boot_th_dir'     ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-boot-th')]     , static_stats , [] )
+test('ghc_compact_dir'     ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-compact')]     , static_stats , [] )
+test('ghc_dir'             ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc')]             , static_stats , [] )
+test('ghc_experimental_dir',[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-experimental')], static_stats , [] )
+test('ghc_heap_dir'        ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-heap')]        , static_stats , [] )
+test('ghc_internal_dir'    ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-internal')]    , static_stats , [] )
+test('ghc_platform_dir'    ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-platform')]    , static_stats , [] )
+test('ghc_prim_dir'        ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-prim')]        , static_stats , [] )
+test('ghc_toolchain_dir'   ,[collect_size_ghc_pkg(size_acceptance_threshold , 'ghc-toolchain')]   , static_stats , [] )
+test('haskeline_dir'       ,[collect_size_ghc_pkg(size_acceptance_threshold , 'haskeline')]       , static_stats , [] )
+test('hpc_dir'             ,[collect_size_ghc_pkg(size_acceptance_threshold , 'hpc')]             , static_stats , [] )
+test('integer_gmp_dir'     ,[collect_size_ghc_pkg(size_acceptance_threshold , 'integer-gmp')]     , static_stats , [] )
+test('mtl_dir'             ,[collect_size_ghc_pkg(size_acceptance_threshold , 'mtl')]             , static_stats , [] )
+test('os_string_dir'       ,[collect_size_ghc_pkg(size_acceptance_threshold , 'os-string')]       , static_stats , [] )
+test('parsec_dir'          ,[collect_size_ghc_pkg(size_acceptance_threshold , 'parsec')]          , static_stats , [] )
+test('pretty_dir'          ,[collect_size_ghc_pkg(size_acceptance_threshold , 'pretty')]          , static_stats , [] )
+test('process_dir'         ,[collect_size_ghc_pkg(size_acceptance_threshold , 'process')]         , static_stats , [] )
+test('time_dir'            ,[collect_size_ghc_pkg(size_acceptance_threshold , 'time')]            , static_stats , [] )
+test('xhtml_dir'           ,[collect_size_ghc_pkg(size_acceptance_threshold , 'xhtml')]           , static_stats , [] )
 
 # size of the entire libdir
 test('libdir'              ,[collect_size_dir(10, config.libdir)]                       , static_stats , [] )
 
 # skip these on windows
-test('unix_dir'     ,[windows_skip, collect_size_ghc_pkg(5, 'unix')]    , static_stats, [] )
-test('terminfo_dir' ,[windows_skip, js_skip, collect_size_ghc_pkg(5, 'terminfo')], static_stats, [] )
+test('unix_dir'     ,[windows_skip, collect_size_ghc_pkg(size_acceptance_threshold, 'unix')]    , static_stats, [] )
+test('terminfo_dir' ,[windows_skip, js_skip, collect_size_ghc_pkg(size_acceptance_threshold, 'terminfo')], static_stats, [] )
 
 # skip the shared object file tests on windows
-test('array_so'           ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "array")]            , static_stats, [] )
-test('base_so'            ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "base")]             , static_stats, [] )
-test('binary_so'          ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "binary")]           , static_stats, [] )
-test('bytestring_so'      ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "bytestring")]       , static_stats, [] )
-test('cabal_so'           ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "Cabal")]            , static_stats, [] )
-test('cabal_syntax_so'    ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "Cabal-syntax")]     , static_stats, [] )
-test('containers_so'      ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "containers")]       , static_stats, [] )
-test('deepseq_so'         ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "deepseq")]          , static_stats, [] )
-test('directory_so'       ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "directory")]        , static_stats, [] )
-test('exceptions_so'      ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "exceptions")]       , static_stats, [] )
-test('filepath_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "filepath")]         , static_stats, [] )
-test('ghc_bignum_so'      ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc-bignum")]       , static_stats, [] )
-test('ghc_boot_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc-boot")]         , static_stats, [] )
-test('ghc_boot_th_so'     ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc-boot-th")]      , static_stats, [] )
-test('ghc_experimental_so',[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc-experimental")] , static_stats, [] )
-test('ghc_heap_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc-heap")]         , static_stats, [] )
-test('ghc_platform_so'    ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc-platform")]     , static_stats, [] )
-test('ghc_prim_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc-prim")]         , static_stats, [] )
-test('ghc_so'             ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc")]              , static_stats, [] )
-test('ghc_toolchain_so'   ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghc-toolchain")]    , static_stats, [] )
-test('ghci_so'            ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "ghci")]             , static_stats, [] )
-test('haskeline_so'       ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "haskeline")]        , static_stats, [] )
-test('hpc_so'             ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "hpc")]              , static_stats, [] )
-test('mtl_so'             ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "mtl")]              , static_stats, [] )
-test('os_string_so'       ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "os-string")]        , static_stats, [] )
-test('parsec_so'          ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "parsec")]           , static_stats, [] )
-test('process_so'         ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "process")]          , static_stats, [] )
-test('rts_so'             ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "rts", True)]              , static_stats, [] )
-test('template_haskell_so',[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "template-haskell")] , static_stats, [] )
-test('terminfo_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "terminfo")]         , static_stats, [] )
-test('text_so'            ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "text")]             , static_stats, [] )
-test('time_so'            ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "time")]             , static_stats, [] )
-test('transformers_so'    ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "transformers")]     , static_stats, [] )
-test('xhtml_so'           ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(5, "xhtml")]            , static_stats, [] )
+test('array_so'           ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "array")]            , static_stats, [] )
+test('base_so'            ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "base")]             , static_stats, [] )
+test('binary_so'          ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "binary")]           , static_stats, [] )
+test('bytestring_so'      ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "bytestring")]       , static_stats, [] )
+test('cabal_so'           ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "Cabal")]            , static_stats, [] )
+test('cabal_syntax_so'    ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "Cabal-syntax")]     , static_stats, [] )
+test('containers_so'      ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "containers")]       , static_stats, [] )
+test('deepseq_so'         ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "deepseq")]          , static_stats, [] )
+test('directory_so'       ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "directory")]        , static_stats, [] )
+test('exceptions_so'      ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "exceptions")]       , static_stats, [] )
+test('filepath_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "filepath")]         , static_stats, [] )
+test('ghc_bignum_so'      ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc-bignum")]       , static_stats, [] )
+test('ghc_boot_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc-boot")]         , static_stats, [] )
+test('ghc_boot_th_so'     ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc-boot-th")]      , static_stats, [] )
+test('ghc_experimental_so',[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc-experimental")] , static_stats, [] )
+test('ghc_heap_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc-heap")]         , static_stats, [] )
+test('ghc_platform_so'    ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc-platform")]     , static_stats, [] )
+test('ghc_prim_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc-prim")]         , static_stats, [] )
+test('ghc_so'             ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc")]              , static_stats, [] )
+test('ghc_toolchain_so'   ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghc-toolchain")]    , static_stats, [] )
+test('ghci_so'            ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "ghci")]             , static_stats, [] )
+test('haskeline_so'       ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "haskeline")]        , static_stats, [] )
+test('hpc_so'             ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "hpc")]              , static_stats, [] )
+test('mtl_so'             ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "mtl")]              , static_stats, [] )
+test('os_string_so'       ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "os-string")]        , static_stats, [] )
+test('parsec_so'          ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "parsec")]           , static_stats, [] )
+test('process_so'         ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "process")]          , static_stats, [] )
+# Disabled as extremely unstable
+#test('rts_so'             ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "rts", True)]              , static_stats, [] )
+test('template_haskell_so',[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "template-haskell")] , static_stats, [] )
+test('terminfo_so'        ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "terminfo")]         , static_stats, [] )
+test('text_so'            ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "text")]             , static_stats, [] )
+test('time_so'            ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "time")]             , static_stats, [] )
+test('transformers_so'    ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "transformers")]     , static_stats, [] )
+test('xhtml_so'           ,[req_dynamic_ghc, js_skip, windows_skip, collect_object_size(size_acceptance_threshold, "xhtml")]            , static_stats, [] )


=====================================
testsuite/tests/printer/Makefile
=====================================
@@ -851,3 +851,8 @@ DataDeclShort:
 Test24749:
 	$(CHECK_PPR)   $(LIBDIR) Test24749.hs
 	$(CHECK_EXACT) $(LIBDIR) Test24749.hs
+
+.PHONY: Test24754
+Test24754:
+	$(CHECK_PPR)   $(LIBDIR) Test24754.hs
+	$(CHECK_EXACT) $(LIBDIR) Test24754.hs


=====================================
testsuite/tests/printer/Test24754.hs
=====================================
@@ -0,0 +1,4 @@
+module Test24754 where
+
+eh1  =  try (do return r;) <|> (do
+                return r)


=====================================
testsuite/tests/printer/all.T
=====================================
@@ -203,3 +203,4 @@ test('MatchPatComments', [ignore_stderr, req_ppr_deps], makefile_test, ['MatchPa
 test('Test24748', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24748'])
 test('DataDeclShort', [ignore_stderr, req_ppr_deps], makefile_test, ['DataDeclShort'])
 test('Test24749', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24749'])
+test('Test24754', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24754'])


=====================================
testsuite/tests/quotes/T24750.hs
=====================================
@@ -0,0 +1,35 @@
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE TemplateHaskellQuotes #-}
+{-# LANGUAGE UnboxedTuples #-}
+-- A regression test for #24750. This test ensures that a family of functions
+-- from the `template-haskell` library (tupeTypeName, tupleDataName, etc.)
+-- returns the same Names as when you manually quote the names using
+-- TemplateHaskellQuotes.
+module Main (main) where
+
+import Control.Monad (unless)
+import GHC.Tuple (Tuple2)
+import GHC.Types (Sum2#, Tuple2#)
+import Language.Haskell.TH
+
+test :: Name -> Name -> IO ()
+test n1 n2 =
+  unless (n1 == n2) $
+    fail $ unlines
+      [ "Names are not equal"
+      , "LHS name: " ++ show n1
+      , "RHS name: " ++ show n2
+      ]
+
+main :: IO ()
+main = do
+  test (tupleTypeName 2) ''(,)
+  test (tupleTypeName 2) ''Tuple2
+  test (tupleDataName 2) '(,)
+  test (unboxedTupleTypeName 2) ''(#,#)
+  test (unboxedTupleTypeName 2) ''Tuple2#
+  test (unboxedTupleDataName 2) '(#,#)
+  test (unboxedSumTypeName 2) ''Sum2#
+  -- There is currently no way to manually quote an unboxed sum data constructor
+  -- Name, as you cannot write unboxed sum data constructors in prefix form. As
+  -- such, a test case for `unboxedSumDataName` is omitted.


=====================================
testsuite/tests/quotes/all.T
=====================================
@@ -42,3 +42,4 @@ test('T20688', normal, compile, ['-Wimplicit-lift -Werror'])
 test('T20893', normal, compile_and_run, [''])
 test('T21619', normal, compile, [''])
 test('T20472_quotes', normal, compile, [''])
+test('T24750', normal, compile_and_run, [''])



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/7c3dd23ae4a80dea03d7985fbcf3d9e3b8aa9656...46b618dd0cd7d894ce5da3319ed0da5963d87a9e

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/7c3dd23ae4a80dea03d7985fbcf3d9e3b8aa9656...46b618dd0cd7d894ce5da3319ed0da5963d87a9e
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/20240504/c631cd13/attachment-0001.html>


More information about the ghc-commits mailing list