[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 11 commits: Add more flags for dumping core passes (#23491)

Marge Bot (@marge-bot) gitlab at gitlab.haskell.org
Wed Jun 14 21:50:17 UTC 2023



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


Commits:
078250ef by Jacco Krijnen at 2023-06-14T17:17:53-04:00
Add more flags for dumping core passes (#23491)

- - - - -
1b7604af by Jacco Krijnen at 2023-06-14T17:17:53-04:00
Add tests for dumping flags (#23491)

- - - - -
42000000 by Sebastian Graf at 2023-06-14T17:18:29-04:00
Provide a demand signature for atomicModifyMutVar.# (#23047)

Fixes #23047

- - - - -
54c30252 by Ben Gamari at 2023-06-14T17:49:45-04:00
compiler: Cross-reference Note [StgToJS design]

In particular, the numeric representations are quite useful context in a
few places.

- - - - -
eeb7d503 by Andrei Borzenkov at 2023-06-14T17:49:45-04:00
Implement the -Wimplicit-rhs-quantification warning (#23510)

GHC Proposal #425 "Invisible binders in type declarations" forbids
implicit quantification of type variables that occur free on the
right-hand side of a type synonym but are not mentioned on the left-hand side.
The users are expected to rewrite this using invisible binders:

    type T1 :: forall a . Maybe a
    type T1    = 'Nothing :: Maybe a      -- old
    type T1 @a = 'Nothing :: Maybe a      -- new

Since the @k-binders are a new feature, we need to wait for three releases
before we require the use of the new syntax. In the meantime, we ought to
provide users with a new warning, -Wimplicit-rhs-quantification, that would
detect when such implicit quantification takes place, and include it in -Wcompat.

- - - - -
542fe8bc by Sven Tennie at 2023-06-14T17:49:46-04:00
Minor refactorings to mkSpillInstr and mkLoadInstr

Better error messages. And, use the existing `off` constant to reduce
duplication.

- - - - -
cd0c34a0 by doyougnu at 2023-06-14T17:50:04-04:00
JS: merge util modules

Merge Core and StgUtil modules for StgToJS pass.
Closes: #23473

- - - - -
5ebf253e by Vladislav Zavialov at 2023-06-14T17:50:04-04:00
Check visibility of nested foralls in can_eq_nc (#18863)

Prior to this change, `can_eq_nc` checked the visibility of the
outermost layer of foralls:

	forall a. forall b. forall c. phi1
	forall x. forall y. forall z. phi2
	        ^^
	     up to here

Then it delegated the rest of the work to `can_eq_nc_forall`, which
split off all foralls:

	forall a. forall b. forall c. phi1
	forall x. forall y. forall z. phi2
	                            ^^
	                         up to here

This meant that some visibility flags were completely ignored.
We fix this oversight by moving the check to `can_eq_nc_forall`.

- - - - -
dd174a15 by Luite Stegeman at 2023-06-14T17:50:09-04:00
JS: use regular mask for blocking IO

Blocking IO used uninterruptibleMask which should make any thread
blocked on IO unreachable by async exceptions (such as those from
timeout). This changes it to a regular mask.

It's important to note that the nodejs runtime does not actually
interrupt the blocking IO when the Haskell thread receives an
async exception, and that file positions may be updated and buffers
may be written after the Haskell thread has already resumed.

Any file descriptor affected by an async exception interruption
should therefore be used with caution.

- - - - -
de860f74 by Luite Stegeman at 2023-06-14T17:50:09-04:00
JS: nodejs: do not set 'readable' handler on stdin at startup

The Haskell runtime used to install a 'readable' handler on stdin
at startup in nodejs. This would cause the nodejs system to start
buffering the stream, causing data loss if the stdin file
descriptor is passed to another process.

This change delays installation of the 'readable' handler until
the first read of stdin by Haskell code.

- - - - -
d9dee102 by Luite Stegeman at 2023-06-14T17:50:09-04:00
JS: reserve one more virtual (negative) file descriptor

This is needed for upcoming support of the process package

- - - - -


30 changed files:

- compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/Driver/Config/Core/Lint.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/JS/Make.hs
- compiler/GHC/Rename/HsType.hs
- compiler/GHC/Rename/Module.hs
- compiler/GHC/StgToJS/Apply.hs
- compiler/GHC/StgToJS/Arg.hs
- compiler/GHC/StgToJS/Closure.hs
- compiler/GHC/StgToJS/CodeGen.hs
- − compiler/GHC/StgToJS/CoreUtils.hs
- compiler/GHC/StgToJS/DataCon.hs
- compiler/GHC/StgToJS/Expr.hs
- compiler/GHC/StgToJS/FFI.hs
- compiler/GHC/StgToJS/Ids.hs
- compiler/GHC/StgToJS/Prim.hs
- compiler/GHC/StgToJS/Sinker.hs
- − compiler/GHC/StgToJS/StgUtils.hs
- compiler/GHC/StgToJS/Utils.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/Solver/Equality.hs
- compiler/GHC/Types/Demand.hs
- compiler/GHC/Types/Error/Codes.hs
- compiler/GHC/Types/Hint.hs
- compiler/GHC/Types/Hint/Ppr.hs
- compiler/ghc.cabal.in
- docs/users_guide/debugging.rst


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/9a60412d29330abcfb9ef1ed2df59dca8eea6573...d9dee1024e02f11a54cd1f6b93d09c873e448c29

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/9a60412d29330abcfb9ef1ed2df59dca8eea6573...d9dee1024e02f11a54cd1f6b93d09c873e448c29
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/20230614/fca75449/attachment.html>


More information about the ghc-commits mailing list