[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