[Git][ghc/ghc][ghc-9.6] 22 commits: ci: Change owner of files in source-tarball job

Matthew Pickering (@mpickering) gitlab at gitlab.haskell.org
Fri Jan 27 08:18:26 UTC 2023



Matthew Pickering pushed to branch ghc-9.6 at Glasgow Haskell Compiler / GHC


Commits:
78aef3d9 by Matthew Pickering at 2023-01-26T15:40:13-05:00
ci: Change owner of files in source-tarball job

This fixes errors of the form:

```
fatal: detected dubious ownership in repository at '/builds/ghc/ghc'
To add an exception for this directory, call:
	git config --global --add safe.directory /builds/ghc/ghc
inferred 9.7.20230113
checking for GHC Git commit id... fatal: detected dubious ownership in repository at '/builds/ghc/ghc'
To add an exception for this directory, call:
	git config --global --add safe.directory /builds/ghc/ghc
```

(cherry picked from commit 4285ce8a8eaafcef6283719d3bdfb7045382e679)

- - - - -
51343814 by Matthew Pickering at 2023-01-27T08:15:12+00:00
ci: Change owner of files in test-bootstrap job

(cherry picked from commit 00981dc9d5f81f355c3a6276a75c93b87a0a1e6a)

- - - - -
9a91e662 by Matthew Pickering at 2023-01-27T08:15:12+00:00
rel_eng: Add release engineering scripts into ghc tree

It is better to keep these scripts in the tree as they depend on the CI
configuration and so on. By keeping them in tree we can keep them
up-to-date as the CI config changes and also makes it easier to backport
changes to the release script between release branches in future.

The final motivation is that it makes generating GHCUp metadata
possible.

(cherry picked from commit c41aeb303b4e0edbe6acc6476a518958f2656b74)

- - - - -
b8392e1f by Matthew Pickering at 2023-01-27T08:15:12+00:00
ci: Don't use complicated image or clone in not-interruptible job

This job exists only for the meta-reason of not allowing nightly
pipelines to be cancelled. It was taking two minutes to run as in order
to run "true" we would also clone the whole GHC repo.

(cherry picked from commit e9cfc723f3225c56a0acd5eb4288be321fd58070)

- - - - -
78a84385 by Matthew Pickering at 2023-01-27T08:16:54+00:00
Add scripts to generate ghcup metadata on nightly and release pipelines

1. A python script in .gitlab/rel_eng/mk-ghcup-metadata which generates
   suitable metadata for consumption by GHCUp for the relevant
   pipelines.

  - The script generates the metadata just as the ghcup maintainers
    want, without taking into account platform/library combinations. It
    is updated manually when the mapping changes.

  - The script downloads the bindists which ghcup wants to distribute,
    calculates the hash and generates the yaml in the correct structure.

  - The script is documented in the .gitlab/rel_eng/mk-ghcup-metadata/README.mk file

1a. The script requires us to understand the mapping from platform ->
    job. To choose the preferred bindist for each platform the
    .gitlab/gen_ci.hs script is modified to allow outputting a metadata
    file which answers the question about which job produces the
    bindist which we want to distribute to users for a specific
    platform.

2. Pipelines to run on nightly and release jobs to generate metadata

  - ghcup-metadata-nightly: Generates metadata which points directly to
    artifacts in the nightly job.

  - ghcup-metadata-release: Generates metadata suitable for inclusion
    directly in ghcup by pointing to the downloads folder where the
    bindist will be uploaded to.

2a. Trigger jobs which test the generated metadata in the downstream
    `ghccup-ci` repo. See that repo for documentation about what is
    tested and how but essentially we test in a variety of clean images
    that ghcup can download and install the bindists we say exist in our
    metadata.

(cherry picked from commit ef4ffd9d696ff239c16894d4a958e052da7b009e)

- - - - -
f8828f2c by Matthew Pickering at 2023-01-27T08:16:55+00:00
ci: Add ubuntu18_04 nightly and release jobs

This adds release jobs for ubuntu18_04 which uses glibc 2.27 which is
older than the 2.28 which is used by Rocky8 bindists.

Ticket #22268

(cherry picked from commit 0a022207a3204c8952a2564ed88c83f748e8cac1)

- - - - -
d6cdf22c by Matthew Pickering at 2023-01-27T08:16:55+00:00
rel-eng: Add missing rocky8 bindist

We intend to release rocky8 bindist so the fetching script needs to know
about them.

(cherry picked from commit 2e3dbafa57013b250c92b031ce50962d4f5e13a3)

- - - - -
b19c8231 by Matthew Pickering at 2023-01-27T08:16:55+00:00
Store dehydrated data structures in CgModBreaks

This fixes a tricky leak in GHCi where we were retaining old copies of
HscEnvs when reloading. If not all modules were recompiled then these
hydrated fields in break points would retain a reference to the old
HscEnv which could double memory usage.

Fixes #22530

(cherry picked from commit 1262d3f8c03799a04d3c5fcf33d4d4db715ca9a1)

- - - - -
e69e7e00 by Matthew Pickering at 2023-01-27T08:16:55+00:00
Force more in NFData Name instance

Doesn't force the lazy `OccName` field (#19619) which is already known
as a really bad source of leaks.

When we slam the hammer storing Names on disk (in interface files or the
like), all this should be forced as otherwise a `Name` can easily retain
an `Id` and hence the entire world.

Fixes #22833

(cherry picked from commit e27eb80cc7e0c82e07fbd8d9ae8112d9070c4355)

- - - - -
c38610e4 by Matthew Pickering at 2023-01-27T08:16:55+00:00
Force OccName in tidyTopName

This occname has just been derived from an `Id`, so need to force it
promptly so we can release the Id back to the world.

Another symptom of the bug caused by #19619

(cherry picked from commit 3d004d5a961fbbbe11da1050b725468a970bee4b)

- - - - -
2817ae28 by Matthew Pickering at 2023-01-27T08:16:55+00:00
Strict fields in ModNodeKey (otherwise retains HomeModInfo)

Towards #22530

(cherry picked from commit f2a0fea09a88693d876fb891ea7c8c97373c4aa6)

- - - - -
d8d1d1c7 by Alexis King at 2023-01-27T08:16:55+00:00
Handle top-level Addr# literals in the bytecode compiler

Fixes #22376.

(cherry picked from commit 476d98d4fcccb54a37ec2d9c0fed79696237c166)

- - - - -
f1211618 by Simon Peyton Jones at 2023-01-27T08:16:55+00:00
Fix in-scope set in specImports

Nothing deep here; I had failed to bring some
floated dictionary binders into scope.

Exposed by -fspecialise-aggressively

Fixes #22715.

(cherry picked from commit 13a0566b58ecc295883b11f20045b4214d8acd72)

- - - - -
e2342747 by Ben Gamari at 2023-01-27T08:16:55+00:00
base: Make changelog proposal references more consistent

Addresses #22773.

(cherry picked from commit f410d70a5543240015d7404ff529bdcaaec8d675)

- - - - -
ef21780f by Sylvain Henry at 2023-01-27T08:16:55+00:00
Hadrian: correctly detect AR at-file support

Stage0's ar may not support at-files. Take it into account.

Found while cross-compiling from Darwin to Windows.

(cherry picked from commit e987e345c807035e4637ca3eae227ae501e16c42)

- - - - -
7d86db2b by Sylvain Henry at 2023-01-27T08:16:55+00:00
Hadrian: fix Windows cross-compilation

Decision to build either unix or Win32 package must be stage specific
for cross-compilation to be supported.

(cherry picked from commit 48131ee2d8ba7074a4c2763a32c12df105305a75)

- - - - -
e0d9ef66 by Sylvain Henry at 2023-01-27T08:16:55+00:00
Fix RTS build on Windows

This change fixes a cross-compilation issue from ArchLinux to Windows
because these symbols weren't found.

(cherry picked from commit 288fa0179a2f54e4594afe184eac71cc85c46643)

- - - - -
826a3112 by Sylvain Henry at 2023-01-27T08:16:55+00:00
configure: support "windows" as an OS

(cherry picked from commit 2fdf22aebda2307d86872c792633d1856d666c9b)

- - - - -
b6ffad2a by Matthew Pickering at 2023-01-27T08:16:55+00:00
ghcup metadata: Fix subdir for windows bindist

(cherry picked from commit 159426acb90f7db394ec40dfe22d4999a9190e6e)

- - - - -
bee2a616 by Matthew Pickering at 2023-01-27T08:16:55+00:00
ghcup metadata: Remove viPostRemove field from generated metadata

This has been removed from the downstream metadata.

(cherry picked from commit 7915f039a37f6496ec572f33ddb204a5709f7020)

- - - - -
601938b5 by Andrei Borzenkov at 2023-01-27T08:16:55+00:00
Fix printing of promoted MkSolo datacon (#22785)

Problem: In 2463df2f, the Solo data constructor was renamed to MkSolo,
and Solo was turned into a pattern synonym for backwards compatibility.
Since pattern synonyms can not be promoted, the old code that pretty-printed
promoted single-element tuples started producing ill-typed code:
   t :: Proxy ('Solo Int)
This fails with "Pattern synonym ‘Solo’ used as a type"

The solution is to track the distinction between type constructors and data
constructors more carefully when printing single-element tuples.

(cherry picked from commit 14b5982a3aea351e4b01c5804ebd4d4629ba6bab)

- - - - -
3e6ca4d1 by Vladislav Zavialov at 2023-01-27T08:16:55+00:00
Enable -Wstar-is-type by default (#22759)

Following the plan in GHC Proposal #143 "Remove the * kind syntax",
which states:

	In the next release (or 3 years in), enable -fwarn-star-is-type by default.

The "next release" happens to be 9.6.1

I also moved the T21583 test case from should_fail to should_compile,
because the only reason it was failing was -Werror=compat in our test
suite configuration.

(cherry picked from commit e9c0537cfbf7b47c64f592f529e402358b66ca7f)

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/gen_ci.hs
- + .gitlab/generate_job_metadata
- .gitlab/generate_jobs
- .gitlab/jobs.yaml
- + .gitlab/rel_eng/default.nix
- + .gitlab/rel_eng/fetch-gitlab-artifacts/.gitignore
- + .gitlab/rel_eng/fetch-gitlab-artifacts/README.mkd
- + .gitlab/rel_eng/fetch-gitlab-artifacts/default.nix
- + .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
- + .gitlab/rel_eng/fetch-gitlab-artifacts/setup.py
- + .gitlab/rel_eng/mk-ghcup-metadata/.gitignore
- + .gitlab/rel_eng/mk-ghcup-metadata/README.mkd
- + .gitlab/rel_eng/mk-ghcup-metadata/default.nix
- + .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
- + .gitlab/rel_eng/mk-ghcup-metadata/setup.py
- + .gitlab/rel_eng/nix/sources.json
- + .gitlab/rel_eng/nix/sources.nix
- + .gitlab/rel_eng/upload.sh
- .gitlab/upload_ghc_libs.py → .gitlab/rel_eng/upload_ghc_libs.py
- compiler/GHC/Builtin/Types.hs-boot
- compiler/GHC/ByteCode/Asm.hs
- compiler/GHC/ByteCode/Instr.hs
- compiler/GHC/ByteCode/Linker.hs
- compiler/GHC/ByteCode/Types.hs
- compiler/GHC/Core/Opt/Specialise.hs
- compiler/GHC/CoreToIface.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Pat.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/977cfacf670cb7fa7b1eceef0099616269ea75c5...3e6ca4d13037821052d2a33e3ac07f15898d63c8

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/977cfacf670cb7fa7b1eceef0099616269ea75c5...3e6ca4d13037821052d2a33e3ac07f15898d63c8
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/20230127/94020fd5/attachment-0001.html>


More information about the ghc-commits mailing list