[Git][ghc/ghc][wip/sand-witch/check- at -binders] 11 commits: JS: implement openat(AT_FDCWD...) (#23697)
Andrei Borzenkov (@sand-witch)
gitlab at gitlab.haskell.org
Sat Aug 19 19:28:30 UTC 2023
Andrei Borzenkov pushed to branch wip/sand-witch/check- at -binders at Glasgow Haskell Compiler / GHC
Commits:
e2b38115 by Sylvain Henry at 2023-08-17T07:54:06-04:00
JS: implement openat(AT_FDCWD...) (#23697)
Use `openSync` to implement `openat(AT_FDCWD...)`.
- - - - -
a975c663 by sheaf at 2023-08-17T07:54:47-04:00
Use unsatisfiable for missing methods w/ defaults
When a class instance has an Unsatisfiable constraint in its context
and the user has not explicitly provided an implementation of a method,
we now always provide a RHS of the form `unsatisfiable @msg`, even
if the method has a default definition available. This ensures that,
when deferring type errors, users get the appropriate error message
instead of a possible runtime loop, if class default methods were
defined recursively.
Fixes #23816
- - - - -
45ca51e5 by Ben Gamari at 2023-08-17T15:16:41-04:00
ghc-internal: Initial commit of the skeleton
- - - - -
88bbf8c5 by Ben Gamari at 2023-08-17T15:16:41-04:00
ghc-experimental: Initial commit
- - - - -
664468c0 by Ben Gamari at 2023-08-17T15:17:17-04:00
testsuite/cloneStackLib: Fix incorrect format specifiers
- - - - -
eaa835bb by Ben Gamari at 2023-08-17T15:17:17-04:00
rts/ipe: Fix const-correctness of IpeBufferListNode
Both info tables and the string table should be `const`
- - - - -
78f6f6fd by Ben Gamari at 2023-08-17T15:17:17-04:00
nonmoving: Drop dead debugging utilities
These are largely superceded by support in the ghc-utils GDB extension.
- - - - -
3f6e8f42 by Ben Gamari at 2023-08-17T15:17:17-04:00
nonmoving: Refactor management of mark thread
Here we refactor that treatment of the worker thread used by the
nonmoving GC for concurrent marking, avoiding creating a new thread with
every major GC cycle. As well, the new scheme is considerably easier to
reason about, consolidating all state in one place, accessed via a small
set of accessors with clear semantics.
- - - - -
88c32b7d by Ben Gamari at 2023-08-17T15:17:17-04:00
testsuite: Skip T23221 in nonmoving GC ways
This test is very dependent upon GC behavior.
- - - - -
381cfaed by Ben Gamari at 2023-08-17T15:17:17-04:00
ghc-heap: Don't expose stack dirty and marking fields
These are GC metadata and are not relevant to the end-user. Moreover,
they are unstable which makes ghc-heap harder to test than necessary.
- - - - -
c350016f by Andrei Borzenkov at 2023-08-19T19:28:27+00:00
Parser, renamer, type checker for @a-binders (17594)
As a part of GHC Proposal 448 were introduced invisible
type patterns (@a-patterns) in functions and lambdas:
id1 :: a -> a
id1 @t x = x :: t
id2 :: a -> a
id2 = \ @t x -> x :: t
Was introduced new data type ArgPat and now Match stores it
instead of Pat. ArgPat has two constructors: VisPat for
common patterns and InvisPat for @-patterns.
Parsing is implemented in production argpat. Was introduced
ArgPatBuilder to help post process new patterns.
Renaming of ArgPat is implemented in rnArgPats function.
Type checking is a bit tricky due to eager scolemisation.
It's implemented in new functions tcTopSkolemiseExpPatTys,
tcSkolemiseScopedExpPatTys, and tcArgPats. For more information
about hack with collecting `ExpPatType`s see Note
[Type-checking invisible type patterns: check mode]
Type-checking is currently limited by check mode and -XNoDeepSubsumption.
Examples of new code:
id1 :: forall a. a -> a
id1 @t x = x :: t
id2 :: a -> a
id2 @t x = x :: t
id3 :: a -> a
id3 = \ @t x -> x
id_RankN :: (forall a. a -> a) -> a -> a
id_RankN @t f = f @t
id4 = id_RankN \ @t x -> x :: t
id_list :: [forall a. a -> a]
id_list = [\ @t x -> x]
- - - - -
30 changed files:
- .gitlab-ci.yml
- compiler/GHC/Builtin/Names/TH.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Instances.hs
- compiler/GHC/Hs/Pat.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore/Arrows.hs
- compiler/GHC/HsToCore/Match.hs
- compiler/GHC/HsToCore/Pmc/Desugar.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/HsToCore/Ticks.hs
- compiler/GHC/HsToCore/Utils.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Parser.y
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Parser/Types.hs
- compiler/GHC/Rename/Bind.hs
- compiler/GHC/Rename/HsType.hs
- compiler/GHC/Rename/Pat.hs
- compiler/GHC/Rename/Utils.hs
- compiler/GHC/Tc/Deriv/Functor.hs
- compiler/GHC/Tc/Deriv/Generate.hs
- compiler/GHC/Tc/Errors.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/Gen/App.hs
- compiler/GHC/Tc/Gen/Arrow.hs
- compiler/GHC/Tc/Gen/Bind.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Match.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/816561b451dee83619f7f6546b20dc4049f26201...c350016f42514fe9df8930d98427af06cc48ceae
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/816561b451dee83619f7f6546b20dc4049f26201...c350016f42514fe9df8930d98427af06cc48ceae
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/20230819/7dd4d111/attachment.html>
More information about the ghc-commits
mailing list