[Git][ghc/ghc][wip/marge_bot_batch_merge_job] 14 commits: base: export System.Mem.performBlockingMajorGC

Marge Bot (@marge-bot) gitlab at gitlab.haskell.org
Fri Feb 16 19:10:03 UTC 2024



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


Commits:
08031ada by Teo Camarasu at 2024-02-16T13:37:00-05:00
base: export System.Mem.performBlockingMajorGC

The corresponding C function was introduced in
ba73a807edbb444c49e0cf21ab2ce89226a77f2e. As part of #22264.

Resolves #24228

The CLC proposal was disccused at: https://github.com/haskell/core-libraries-committee/issues/230

Co-authored-by: Ben Gamari <bgamari.foss at gmail.com>

- - - - -
1f534c2e by Florian Weimer at 2024-02-16T13:37:42-05:00
Fix C output for modern C initiative

GCC 14 on aarch64 rejects the C code written by GHC with this kind of
error:

   error: assignment to ‘ffi_arg’ {aka ‘long unsigned int’} from ‘HsPtr’ {aka ‘void *’} makes integer from pointer without a cast [-Wint-conversion]
         68 | *(ffi_arg*)resp = cret;
            |                 ^

Add the correct cast.

For more information on this see:
https://fedoraproject.org/wiki/Changes/PortingToModernC

Tested-by: Richard W.M. Jones <rjones at redhat.com>

- - - - -
5d3f7862 by Matthew Craven at 2024-02-16T13:38:18-05:00
Bump bytestring submodule to 0.12.1.0

- - - - -
d9b28b19 by Ian-Woo Kim at 2024-02-16T14:09:36-05:00
Add missing BCO handling in scavenge_one.

- - - - -
adc643e8 by Sylvain Henry at 2024-02-16T14:09:51-05:00
Make cast between words and floats real primops (#24331)

First step towards fixing #24331. Replace foreign prim imports with real
primops.

- - - - -
89a96e28 by Sylvain Henry at 2024-02-16T14:09:51-05:00
Perf: add constant folding for bitcast between float and word (#24331)

- - - - -
2c1fcbaa by Sylvain Henry at 2024-02-16T14:09:51-05:00
Perf: replace stack checks with assertions in casting primops

There are RESERVED_STACK_WORDS free words (currently 21) on the stack,
so omit the checks.

Suggested by Cheng Shao.

- - - - -
f3d4cf20 by Sylvain Henry at 2024-02-16T14:09:51-05:00
Reexport primops from GHC.Float + add deprecation

- - - - -
96b79053 by Ben Gamari at 2024-02-16T14:09:51-05:00
base: Use strerror_r instead of strerror

As noted by #24344, `strerror` is not necessarily thread-safe.
Thankfully, POSIX.1-2001 has long offered `strerror_r`, which is
safe to use.

Fixes #24344.

CLC discussion: https://github.com/haskell/core-libraries-committee/issues/249

- - - - -
266ed782 by Ben Gamari at 2024-02-16T14:09:53-05:00
rts/Hash: Don't iterate over chunks if we don't need to free data

When freeing a `HashTable` there is no reason to walk over the hash list
before freeing it if the user has not given us a `dataFreeFun`.

Noticed while looking at #24410.

- - - - -
4bc9894c by Cheng Shao at 2024-02-16T14:09:55-05:00
compiler: add SEQ_CST fence support

In addition to existing Acquire/Release fences, this commit adds
SEQ_CST fence support to GHC, allowing Cmm code to explicitly emit a
fence that enforces total memory ordering. The following logic is
added:

- The MO_SeqCstFence callish MachOp
- The %prim fence_seq_cst() Cmm syntax and the SEQ_CST_FENCE macro in Cmm.h
- MO_SeqCstFence lowering logic in every single GHC codegen backend

- - - - -
c7befa0a by Cheng Shao at 2024-02-16T14:09:56-05:00
testsuite: fix hs_try_putmvar002 for targets without pthread.h

hs_try_putmvar002 includes pthread.h and doesn't work on targets
without this header (e.g. wasm32). It doesn't need to include this
header at all. This was previously unnoticed by wasm CI, though recent
toolchain upgrade brought in upstream changes that completely removes
pthread.h in the single-threaded wasm32-wasi sysroot, therefore we
need to handle that change.

- - - - -
5dfec100 by Cheng Shao at 2024-02-16T14:09:56-05:00
ci: bump ci-images to use updated wasm image

This commit bumps our ci-images revision to use updated wasm image.

- - - - -
9d356a01 by Cheng Shao at 2024-02-16T14:09:58-05:00
rts: remove redundant rCCCS initialization

This commit removes the redundant logic of initializing each
Capability's rCCCS to CCS_SYSTEM in initProfiling(). Before
initProfiling() is called during RTS startup, each Capability's rCCCS
has already been assigned CCS_SYSTEM when they're first initialized.

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/Cmm/MachOp.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/PPC/CodeGen.hs
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Core.hs
- compiler/GHC/Core/Opt/ConstantFold.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/StgToCmm/Prim.hs
- compiler/GHC/StgToJS/Prim.hs
- libraries/base/changelog.md
- libraries/bytestring
- − libraries/ghc-internal/cbits/CastFloatWord.cmm
- + libraries/ghc-internal/cbits/strerror.c
- libraries/ghc-internal/configure.ac
- libraries/ghc-internal/ghc-internal.cabal
- libraries/ghc-internal/src/Foreign/C/Error.hs
- libraries/ghc-internal/src/GHC/Float.hs
- libraries/ghc-internal/src/System/Mem.hs
- rts/Hash.c
- rts/PrimOps.cmm
- rts/Profiling.c
- rts/RtsSymbols.c


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/23a578ebe950ca819ed1d93af749d66d1e3d6c6e...9d356a014432b2c5a95cf44aed097416d789d0c0

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/23a578ebe950ca819ed1d93af749d66d1e3d6c6e...9d356a014432b2c5a95cf44aed097416d789d0c0
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/20240216/24822cc7/attachment.html>


More information about the ghc-commits mailing list