[Git][ghc/ghc][wip/jade/ast] 30 commits: SpecConstr: Introduce a separate argument limit for forced specs.

Hassan Al-Awwadi (@hassan.awwadi) gitlab at gitlab.haskell.org
Thu Oct 3 10:35:19 UTC 2024



Hassan Al-Awwadi pushed to branch wip/jade/ast at Glasgow Haskell Compiler / GHC


Commits:
da20cac1 by Andreas Klebinger at 2024-10-02T22:18:48-04:00
SpecConstr: Introduce a separate argument limit for forced specs.

We used to put no limit at all on specializations forced via the SPEC
argument. This isn't always reasonable so we introduce a very high limit
that applies to forced specializations, a flag to control it, and we now
emit a warning if we fail a specialization because we exceed the
warning.

Fixes #25197

- - - - -
39497eed by Andreas Klebinger at 2024-10-02T22:19:24-04:00
ghc-experimental: Expose primops and ghc extensions via GHC.PrimOps

This will be the new place for functions that would have gone into
GHC.Exts in the past but are not stable enough to do so now.

Addresses #25242

- - - - -
e9dc2690 by Sylvain Henry at 2024-10-02T22:20:06-04:00
RTS: cleanup timerfd file descriptors after a fork (#25280)

When we init a timerfd-based ticker, we should be careful to cleanup the
old file descriptors (e.g. after a fork).

- - - - -
64e876bc by Rodrigo Mesquita at 2024-10-02T22:20:43-04:00
determinism: Deterministic MonadGetUnique LlvmM

Update LlvmM to thread a unique deterministic supply (using UniqDSMT),
and use it in the MonadGetUnique instance.

This makes uniques sampled from LlvmM deterministic, which guarantees
object determinism with -fllvm.

Fixes #25274

- - - - -
36bbb167 by Matthew Pickering at 2024-10-02T22:21:18-04:00
Bump LLVM upper bound to allow LLVM 19

Also bumps the ci-images commit so that the deb12 images uses LLVM 19
for testing.

-------------------------
Metric Decrease:
    size_hello_artifact_gzip
    size_hello_unicode_gzip
-------------------------

Fixes #25295

- - - - -
0029ca91 by Matthew Pickering at 2024-10-02T22:21:54-04:00
configure: Allow happy-2.0.2

happy-2.0.2 can be used to compile GHC.

happy-2.0 and 2.0.1 have bugs which make it unsuitable to use.

The version bound is now == 1.20.* || >= 2.0.2 && < 2.1

Fixes #25276

- - - - -
92976985 by ARATA Mizuki at 2024-10-02T22:22:35-04:00
Use bundled llc/opt on Windows (#22438)

- - - - -
af59749a by Matthew Pickering at 2024-10-02T22:23:11-04:00
Fix registerArch for riscv64

The register allocator doesn't support vector registers on riscv64,
therefore advertise as NoVectors.

Fixes #25314

- - - - -
a49e66fc by Matthew Pickering at 2024-10-02T22:23:11-04:00
riscv: Avoid using csrr instruction to test for vector registers

The csrr instruction isn't allowed in qemu user-mode, and raises an
illegal instruction error when it is encountered.

Therefore for now, we just hard-code that there is no support for vector
registers since the rest of the compiler doesn't support vector
registers for riscv.

Fixes #25312

- - - - -
115a30e9 by Andreas Klebinger at 2024-10-02T22:23:11-04:00
Add support for fp min/max to riscv

Fixes #25313

- - - - -
f28b5992 by Ben Gamari at 2024-10-02T22:23:47-04:00
testsuite/perf: Report better error message on malformed note

Previously a malformed perf note resulted in very poor errors.
Here we slight improve this situation.

- - - - -
51377508 by Ben Gamari at 2024-10-02T22:23:47-04:00
testsuite: Handle division-by-zero more gracefully

Previously we would fail with an ZeroDivisionError.

Fixes #25321

- - - - -
50490075 by Matthew Pickering at 2024-10-03T05:55:13-04:00
ci: Add nightly & release ubuntu-22.04 jobs

This adds build of bindists on ubuntu-22.04 on nightly and release
pipelines.

We also update ghcup-metadata to provide ubuntu-22.04 bindists on
ubuntu-22.04.

Fixes #25317

- - - - -
9cf1cef5 by Zubin Duggal at 2024-10-03T05:55:49-04:00
haddock: Bump binary interface version to 46.

This allows haddock to give good error messages when being used on mismatched interface files.

We bump to 46 since GHC 9.12 uses version 45: https://gitlab.haskell.org/ghc/ghc/-/commit/362afd632032ee8f174690c3ffe0015076b83ce6

This should have been done in e4ac1b0d281b85a0144d1ef6f84a1df00e236052 but was overlooked.

- - - - -
2293c0b7 by Andreas Klebinger at 2024-10-03T05:56:25-04:00
Change versionig of ghc-experimental to follow ghc versions.

Just like ghc-internal it will now use the @ProjectVersionForLib@ macro for versioning.
This means for ghc=9.10.1, ghc-experimental's version will be 9.1001.0 and so on.

This fixes #25289

- - - - -
ea2e0ae4 by Jade at 2024-10-03T12:34:55+02:00
Refactor FieldOcc vs AmbiguousFieldOcc with TTG

Improves the design of FieldOcc vs AmbiguousFieldOcc, and removes a
dependency on `RdrName` from the Language.Haskell.* namespace (#21592).

The design:

* The FieldOcc constructor of FieldOcc always refers to an unambiguous
  field occurrence.
* During renaming, a FieldOcc may be ambiguous and only be resolvable
  during Typechecking
* Therefore, we extend (with TTG) `FieldOcc GhcRn` with a constructor
  `AmbiguousFieldOcc` that constructs a definitely ambiguous `FieldOcc`.
* During typechecking, all ambiguous field occurrences must be resolved,
  so the `AmbiguousFieldOcc` constructor no longer exists

See Note [Lifecycle of a FieldOcc]

Co-authored-by: Rodrigo Mesquita <rodrigo.m.mesquita at gmail.com>

- - - - -
a8e9116b by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
Wrangled until everything compiled.

There are two issues:
- FieldOcc used to only have one constructor and always be unambigious, this is no longer the case. Calls to foLabel are thus partial now. Don't know how much we care about this, since the partial calls are mostly inside functions that used to operate on the operate on the unambigious FieldOcc
- Lots of functions that take in a FieldOcc, or a HsExpr (with the HsRecSel constructor) now have a new case. It was not always clear to me what the correct implementation was for these. I have filled them in as far as I could and left one undefined...

- - - - -
d041e170 by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
fixed ambiguity regression

- - - - -
b64d807a by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
Apply 2 suggestion(s) to 2 file(s)

Co-authored-by: Rodrigo Mesquita <rodrigo.m.mesquita at gmail.com>
- - - - -
e231f43b by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
eleminated outdated comments and use dataConCantHappen

- - - - -
0b6984ec by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
Moved HsRecSel to the XConstructors.

FieldOcc types kept in Language.Haskell though because they are also used by  HsRecUpdField in L.H.S.Pat.hs

- - - - -
07df8f81 by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
hopefully fixes the assert error* and clears up some whitespace

*in GHC.Rename.HsType. I'm not certain but I also don't know what else it could be...

- - - - -
0d63c50f by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
attempt 2 at fixing the asssert error

if I could manage to get the full build working on my machine I'd test it locally but alas, I wil have to make the gitlab runners do the work...

- - - - -
6625da61 by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
rename stuff

- - - - -
4450f854 by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
cleaned remnant AmbiguousFieldOcc -> UpdFieldOcc

- - - - -
e2af9434 by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
More renaming.

- - - - -
d6dffb4c by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
notes updated

- - - - -
f48f60f2 by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
fixed note pointer, unneeded imports, and unmatched datacon.

the datacon is actually impossible but whatever. GHC wants what it wants.

- - - - -
ca800046 by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
removed unused binding.

Its errors like these that really make me wish I could build ghc completely because an half hour long pipeline to find an error like thsi is highly annoying (and a waste of the runner)

- - - - -
7c04d0b7 by Hassan Al-Awwadi at 2024-10-03T12:34:55+02:00
test update

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
- .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
- compiler/GHC/CmmToAsm/RV64/CodeGen.hs
- compiler/GHC/CmmToAsm/RV64/Instr.hs
- compiler/GHC/CmmToAsm/RV64/Ppr.hs
- compiler/GHC/CmmToLlvm.hs
- compiler/GHC/CmmToLlvm/Base.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Driver/DynFlags.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Binds.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Extension.hs
- compiler/GHC/Hs/Instances.hs
- compiler/GHC/Hs/Pat.hs
- compiler/GHC/Hs/Syn/Type.hs
- compiler/GHC/Hs/Type.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore/Docs.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/HsToCore/Ticks.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Platform/Reg/Class.hs
- compiler/GHC/Rename/Bind.hs
- compiler/GHC/Rename/Env.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/60268659980e83ff7bb7a2b6393c54ac80c8ddfe...7c04d0b73cfc27f0096dcbc69ea4cee811cbc155

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/60268659980e83ff7bb7a2b6393c54ac80c8ddfe...7c04d0b73cfc27f0096dcbc69ea4cee811cbc155
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/20241003/88c0d6cf/attachment-0001.html>


More information about the ghc-commits mailing list