summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* rts: Make markLiveObject thread-safewip/T19417-ghc-8.10Ben Gamari2021-02-232-3/+9
| | | | | | markLiveObject is called by GC worker threads and therefore must be thread-safe. This was a rather egregious oversight which the testsuite missed.
* [ci/build] Copy config.sub aroundwip/angerman/fix-windowsMoritz Angermann2021-02-191-0/+3
|
* [mach-o] make prototypes match functionswip/angerman/unbreak-aarch64-darwinMoritz Angermann2021-02-181-2/+2
|
* [ci] Default value for MAKE_ARGSwip/angerman/ci-make-args-defaultMoritz Angermann2021-02-181-2/+2
| | | | | We don't pass MAKE_ARGS for windows builds, so this should unbreak them.
* Bump containers submodule to 0.6.4.1wip/angerman/8.10.5-rollup-3Ben Gamari2021-02-182-1/+1
|
* gitlab-ci: Drop Darwin cleanup jobBen Gamari2021-02-181-41/+0
| | | | We now have a proper periodic clean-up script installed on the runners.
* [testsuite] mark ghci056 as fragileMoritz Angermann2021-02-181-1/+2
| | | | See https://gitlab.haskell.org/ghc/ghc/-/issues/17018
* [ci] default value for CONFIGURE_ARGSMoritz Angermann2021-02-181-1/+1
|
* Allocate Adjustors and mark them readable in two stepsMoritz Angermann2021-02-1819-24/+83
| | | | | | | | | This drops allocateExec for darwin, and replaces it with a alloc, write, mark executable strategy instead. This prevents us from trying to allocate an executable range and then write to it, which X^W will prohibit on darwin. This will *only* work if we can use mmap.
* [configure] Fix _AC_PROG_CC_99Moritz Angermann2021-02-181-1/+1
| | | | | _AC_PROG_CC_99 isn't available anymore in recent autoconf versions. This broke on aarch64-darwin.
* [llvm] Prevent GHC from breaking the test-suitewip/angerman/8.10.5-rollup-2Moritz Angermann2021-02-171-1/+8
| | | | | | This breaks lots of tests unnecessarily. The LLVM IR has been pretty stable since ~7. This stops GHC from emitting the warnings during the testsuite run.
* [make] Allow to set the curses library for stage0Moritz Angermann2021-02-177-5/+36
| | | | | This may be necessary when building stage2 cross compiled compilers.
* configure: Fix parsing of ARM triplesBen Gamari2021-02-171-8/+10
| | | | | | | | | | To support proper parsing of arm64 targets, we needed to adjust the GHC_LLVM_TARGET function to allow parsing arm64-apple-darwin into aarch64. This however discared the proper os detection. To rectify this, we'll pull the os detection into separate block. Fixes #19173.
* [macho] improved linker with proper plt supportMoritz Angermann2021-02-178-97/+311
| | | | This is a pre-requisite for making aarch64-darwin work.
* [CCall] carry signature from desugar to codegenMoritz Angermann2021-02-1726-115/+496
| | | | | | | | This is needed so that the codegen can produce C ABI calls that require knowledge about the actual size of arguments. Specifically aarch64-darwin will require arguments (in exess of available registers) to be passed *packed* on the stack.
* [testlib/driver] denoisewip/angerman/denoise-testlib-driverMoritz Angermann2021-02-152-6/+11
| | | | | | | | this prevents the testlib/driver to be overly noisy, and will also kill some noise produiced by the aarch64-darwin cc (for now). Fixing sysctl, will allow us to run the test's properly in a nix-shell on aarch64-darwin
* [llvm-targets] add {arm64,aarch64}-apple-darwinwip/angerman/8.10.5-rollup-1Moritz Angermann2021-02-152-22/+31
|
* [aarch64] always PICMoritz Angermann2021-02-156-14/+31
| | | | this is effectively now required.
* [arm] Rename arm64 to aarch64Moritz Angermann2021-02-1517-80/+90
| | | | | | | arm64 is really only a name apple uses, and we should refrain from using it across multiple architectures. Let's call aarch64-darwin, arm64 if needed, but otherwise stick to aarch64.
* [faststring] fix memcmp and strlen signaturesMoritz Angermann2021-02-151-5/+5
| | | | | | | | int memcmp(const void *s1, const void *s2, size_t n); size_t strlen(const char *s);
* [integer-gmp] bump to recent version for aarch64-darwin supportwip/angerman/bump-integer-gmpMoritz Angermann2021-02-143-32/+32
| | | | | This is required for aarch64-darwin. Bump the integer-gmp submodule as well.
* [ci] Add support for building on aarch64-darwinwip/angerman/aarch64-darwin-ciMoritz Angermann2021-02-133-12/+126
| | | | | This will fail for now. But allows us to add aarch64-darwin machines to CI.
* Release 8.10.4ghc-8.10.4-releaseBen Gamari2021-02-041-1/+1
|
* gitlab-ci: Build Darwin docs with hyperlinked sourcesBen Gamari2021-02-041-6/+5
| | | | Previously we only built Linux bindists with hyperlinked sources.
* Add 8.10.4 release notesBen Gamari2021-02-032-0/+86
|
* gitlab-ci: CI wibblesBen Gamari2021-02-011-0/+3
| | | | | | Ensure that deb10-dwarf artifacts are preserved. (cherry picked from commit a4f50cd8ea462bc740a605c7eba46fec63446c8f)
* Zonk the returned kind in tcFamTyPatsSimon Peyton Jones2021-02-013-0/+43
| | | | | | | | The motivation is given in Note [tcFamTyPats: zonking the result kind]. Fixes #19250 -- the fix is easy. (cherry picked from commit 69cab37ae89db16cfd0b734d7fc657e56402a255)
* document how build system find toolchains on WindowsTamar Christina2021-01-258-12/+83
| | | | (cherry picked from commit 4517a38215eb72a4824c72d97377b9325059bf55)
* Fix use distro toolchianTamar Christina2021-01-258-4/+19
| | | | (cherry picked from commit f065b6b012fb8f73689bc5c2a4904d5e6e377af8)
* Document that ccall convention doesn't support varargsBen Gamari2021-01-255-3/+47
| | | | | | | | | | | | | We do not support foreign "C" imports of varargs functions. While this works on amd64, in general the platform's calling convention may need more type information that our Cmm representation can currently provide. For instance, this is the case with Darwin's AArch64 calling convention. Document this fact in the users guide and fix T5423 which makes use of a disallowed foreign import. Closes #18854. (cherry picked from commit 0b7722219ffdb109c3a8b034a8e112d18e6e4336)
* rts/Messages: Relax locked-closure assertionBen Gamari2021-01-251-2/+3
| | | | | | | | | In general we are less careful about locking closures when running with only a single capability. Fixes #19075. (cherry picked from commit 87bc458de497cdc407c5c32572103a452ee36e4d)
* base: Fix changelogBen Gamari2021-01-061-2/+2
|
* testsuite: Add test for #19149Ben Gamari2021-01-064-0/+51
| | | | (cherry picked from commit 61ce4261bb4c21ca5c41fcfc2107a81726cf22c1)
* compiler: Initialize ForeignExportsList.n_entriesBen Gamari2021-01-061-1/+4
| | | | | | | | | | | | The refactoring in ed57c3a9eb9286faa222f98e484a9ef3432b2025 failed to initialize this field, resulting in no exports being registered. A very silly bug and yet somehow none of our tests caught it. See #18548. Fixes #19149. (cherry picked from commit 4cd2674fbf1adb1e1d951dcb65e78eda03732484)
* rts/PEi386: Fix reentrant lock usageBen Gamari2021-01-061-1/+1
| | | | | | | | | | | | | | Previously lookupSymbol_PEi386 would call lookupSymbol while holding linker_mutex. Fix this by rather calling `lookupDependentSymbol`. This is safe because lookupSymbol_PEi386 unconditionally holds linker_mutex. Happily, this un-breaks `T12771`, `T13082_good`, and `T14611`, which were previously marked as broken due to #18718. Closes #19155. (cherry picked from commit a7105e53921e715d4d70c7c45ddc79bdc6eebffc)
* Maintain invariant: MVars on mut_list are dirtyViktor Dukhovni2021-01-022-0/+3
| | | | | | | | | | | | The fix for 18919 was somewhat incomplete: while the MVars were correctly added to the mut_list via dirty_MVAR(), their info table remained "clean". While this is mostly harmless in non-debug builds, but trips an assertion in the debug build, and may result in the MVar being needlessly being added to the mut_list multiple times. Resolves: #19145
* configure: Release 8.10.3ghc-8.10.3-releaseBen Gamari2020-12-161-2/+2
|
* Update autoconf scriptsBen Gamari2020-12-166-1215/+1491
| | | | Scripts taken from autoconf 90b8cb42ba3b244250a6986b8b78c80f30ed197a
* users guide: Add release notes for 8.10.3Ben Gamari2020-12-162-0/+142
|
* hadrian: Pass -Werror before other argumentsBen Gamari2020-12-161-2/+7
| | | | | Previously we would append -Werror to the argument list. However, this ended up overriding the -Wno-error=... flags in Settings.Warnings.
* hadrian: Reindent Settings.WarningsBen Gamari2020-12-161-32/+33
| | | | The previous state was quite illegible.
* Disable deprecation warnings in Cabal buildBen Gamari2020-12-162-1/+6
|
* gitlab-ci: Rename RELEASE variable to RELEASE_JOBBen Gamari2020-12-151-1/+1
| | | | | | | | This interfered with the autoconf variable of the same name, breaking pre-release builds. (cherry picked from commit 15dca84793d5ec4ff922726477923e40caa075eb) (cherry picked from commit 3e55edd97c8eba271f5cb64b9362796791e0e887)
* Fix bad span calculations of post qualified importsShayne Fletcher2020-12-154-8/+82
| | | | (cherry picked from commit 57f3fdb1fbeb82b5b19bc5e2970d8857c2514fcc)
* Bump bytestring submodule to 0.10.12.0Ben Gamari2020-12-131-0/+0
| | | | Fixes #18233.
* Limit upper version of Happy for ghc-9.0 and earlier (#18620)Takenobu Tani2020-12-132-1/+3
| | | | | | | | | | | This patch adds the upper bound of a happy version for ghc-9.0 and earlier. Currently, we can't use happy-1.20.0 for ghc-9.0. See #18620. (cherry picked from commit 74a7fbff5a8f244cd44345bf987e26413bb1989e)
* nonmoving: Add comments to nonmovingResurrectThreadsGHC GitLab CI2020-12-101-0/+5
|
* nonmoving: Don't push objects during deadlock detect GCBen Gamari2020-12-101-2/+6
| | | | | | Previously we would push large objects and compact regions to the mark queue during the deadlock detect GC, resulting in failure to detect deadlocks.
* nonmoving: Refactor alloc_for_copyGHC GitLab CI2020-12-101-48/+79
| | | | Pull the cold non-moving allocation path out of alloc_for_copy.
* nonmoving: Ensure deadlock detection promotion worksGHC GitLab CI2020-12-101-18/+22
| | | | | | Previously the deadlock-detection promotion logic in alloc_for_copy was just plain wrong: it failed to fire when gct->evac_gen_no != oldest_gen->gen_no. The fix is simple: move the