[Git][ghc/ghc][wip/gc/aligned-block-allocation] 102 commits: base: Mark CPUTime001 as fragile

Ben Gamari gitlab at gitlab.haskell.org
Wed Jun 19 00:31:08 UTC 2019



Ben Gamari pushed to branch wip/gc/aligned-block-allocation at Glasgow Haskell Compiler / GHC


Commits:
1a3420ca by Ben Gamari at 2019-06-10T11:59:41Z
base: Mark CPUTime001 as fragile

As noted in #16224, CPUTime001 has been quite problematic, reporting
non-monotonic timestamps in CI. Unfortunately I've been unable to
reproduce this locally.

- - - - -
9bc10993 by Vladislav Zavialov at 2019-06-10T12:00:16Z
Print role annotations in TemplateHaskell brackets (#16718)

- - - - -
0345b1b0 by Richard Eisenberg at 2019-06-11T03:52:10Z
Comments only: document newtypes' DataConWrapId

- - - - -
58a5d728 by David Eichmann at 2019-06-11T03:52:50Z
Refactor the rules for .hi and .o into a single rule using `&%>` #16764

Currently the rule for .hi files just triggers (via need) the rule
for the .o file, and .o rule generates both the .o and .hi file.
Likewise for .o-boot and .hi-boot files. This is a bit of an abuse
of Shake, and in fact shake supports rules with multiple output
with the &%> function. This exact use case appears in Neil
Mitchell's paper *Shake Before Building* section 6.3.

- - - - -
2f945086 by Ben Gamari at 2019-06-11T03:53:25Z
testsuite: Fix and extend closure_size test

This was previously broken in several ways. This is fixed and it also
now tests arrays. Unfortunately I was unable to find a way to continue
testing PAP and FUN sizes; these simply depend too much upon the
behavior of the simplifier.

I also tried to extend this to test non-empty arrays as well but
unfortunately this was non-trivial as the array card size constant isn't
readily available from haskell.

Fixes #16531.

- - - - -
e5d275f4 by Ben Gamari at 2019-06-11T03:53:25Z
ghc-heap: Add closure_size_noopt test

This adds a new test, only run in the `normal` way, to verify the size
of FUNs and PAPs.

- - - - -
fe7e7e4a by Yuras Shumovich at 2019-06-11T22:39:58Z
Warn about unused packages

Reviewers: bgamari, simonpj

Reviewed By: simonpj

Subscribers: hvr, simonpj, mpickering, rwbarton, carter

GHC Trac Issues: #15838

Differential Revision: https://phabricator.haskell.org/D5285

- - - - -
39f50bff by Alp Mestanogullari at 2019-06-11T22:40:37Z
Refine the GHCI macro into HAVE[_{INTERNAL, EXTERNAL}]_INTERPRETER

As discussed in #16331, the GHCI macro, defined through 'ghci' flags
in ghc.cabal.in, ghc-bin.cabal.in and ghci.cabal.in, is supposed to indicate
whether GHC is built with support for an internal interpreter, that runs in
the same process. It is however overloaded in a few places to mean
"there is an interpreter available", regardless of whether it's an internal
or external interpreter.

For the sake of clarity and with the hope of more easily being able to
build stage 1 GHCs with external interpreter support, this patch splits
the previous GHCI macro into 3 different ones:

- HAVE_INTERNAL_INTERPRETER: GHC is built with an internal interpreter
- HAVE_EXTERNAL_INTERPRETER: GHC is built with support for external interpreters
- HAVE_INTERPRETER: HAVE_INTERNAL_INTERPRETER || HAVE_EXTERNAL_INTERPRETER

- - - - -
45616133 by Alec Theriault at 2019-06-11T22:41:14Z
Make `haddock_testsuite` respect `--test-accept`

Suppose you've made changes that affect the output of `haddockHtmlTest`
so that the following is failing:

    ./hadrian/build.sh -c --only=haddockHtmlTest test

Then, the following will accept new output for Haddock's test cases.

    ./hadrian/build.sh -c --only=haddockHtmlTest test --test-accept

You still do need to make sure those new changes (which show up in
Haddock's tree) get committed though.

Fixes #16694

- - - - -
762098bf by Alp Mestanogullari at 2019-06-11T22:41:52Z
rts/RtsFlags.c: mention that -prof too enables support for +RTS -l

- - - - -
457fe789 by Alp Mestanogullari at 2019-06-11T22:42:30Z
Hadrian: teach the RTS that PROFILING implies TRACING

As discussed in #16744, both the Make and Hadrian build systems
have special code to always pass -eventlog whenever -prof or -debug
are passed. However, there is some similar logic in the RTS itself only
for defining TRACING when the DEBUG macro is defined, but no such logic
is implemented to define TRACING when the PROFILING macro is defined.
This patch adds such a logic and therefore fixes #16744.

- - - - -
cf7f36ae by Ben Gamari at 2019-06-11T22:43:05Z
rts/linker: Mmap into low memory on AArch64

This extends mmapForLinker to use the same low-memory mapping
strategy used on x86_64 on AArch64. See #16784.

- - - - -
0b7f81f5 by Ben Gamari at 2019-06-11T22:43:05Z
rts/linker: Use mmapForLinker to map PLT

The PLT needs to be located within a close distance of
the code calling it under the small memory model.

Fixes #16784.

- - - - -
1389b2cc by Ömer Sinan Ağacan at 2019-06-11T22:43:43Z
Fix an error message in CheckUnload.c:searchHeapBlocks

- - - - -
aad6115a by Alp Mestanogullari at 2019-06-11T22:44:20Z
testsuite/mk/boilerplate.mk: rename 'ghc-config-mk' to 'ghc_config_mk'

Make/shell variable names which contain dashes can cause problems under
some conditions. The 'ghc-config-mk' variable from testsuite/mk/boilerplate.mk
that I made overridable (by Hadrian) in ba0aed2e was working as expected when
our Hadrian/Linux job was based off the deb8 Docker image, but broke when
I switched the job to use our deb9-based image, in 3d97bad6. The exact
circumstances/tool versions that trigger this problem are unknown, but
changing the variable's name to 'ghc_config_mk' lets us work around the issue.

This fixes the annth_compunits and annth_make test failures that showed up
when we switched the Hadrian/Linux job to use the deb9 environment.

- - - - -
9b4ff57d by Ben Gamari at 2019-06-12T11:35:25Z
llvm-targets: Add armv7l-unknown-linux-gnueabi

Fixes #15208.

[skip ci]

- - - - -
c05ca251 by Ben Gamari at 2019-06-12T11:36:01Z
testsuite: Add haddock perf test output to gitignore

[skip ci]

- - - - -
bbc752c5 by Ben Gamari at 2019-06-12T11:36:36Z
rts/linker: Make elf_got.c a bit more legible

- - - - -
217e6db4 by Ben Gamari at 2019-06-12T11:36:36Z
rts/linker: Only mprotect GOT after it is filled

This fixes a regression, introduced by 67c422ca, where we mprotect'd the
global offset table (GOT) region to PROT_READ before we had finished
filling it, resulting in a linker crash.

Fixes #16779.

- - - - -
1219f8e8 by Krzysztof Gogolewski at 2019-06-12T11:37:12Z
Use DeriveFunctor throughout the codebase (#15654)

- - - - -
bd2d13ff by Ben Gamari at 2019-06-12T12:19:59Z
Bump binary to 0.8.7.0

(cherry picked from commit 983ada70a013c7642a751f6e41587ff95b57d0f8)

- - - - -
381c3ae3 by Ben Gamari at 2019-06-12T12:19:59Z
Bump Cabal submodule

(cherry picked from commit ff438786613f07df9b2d43eaeac49b13815d849d)

Metric Increase:
    haddock.Cabal

- - - - -
0354c7de by Ben Gamari at 2019-06-12T12:19:59Z
Bump time submodule to 1.9.3

(cherry picked from commit fdb07571036b1498800589d45b61781e6acdd368)

- - - - -
e0b16eaa by Ben Gamari at 2019-06-12T12:19:59Z
Bump terminfo to 0.4.1.4

(cherry picked from commit 1134488b4c9cef904ea82f22f1978646eea612df)

- - - - -
2ce320b0 by Ben Gamari at 2019-06-12T12:19:59Z
gitlab-ci: Test using slowtest in deb9-debug job

- - - - -
90e7c450 by Ben Gamari at 2019-06-12T12:19:59Z
testsuite: Mark hWaitForInput-accurate-stdin as broken in threaded ways

As noted in #16535.

- - - - -
488187f8 by Ben Gamari at 2019-06-12T12:19:59Z
testsuite: Mark T13167 as fragile in threaded2

As noted in #16536.

- - - - -
9b583320 by Ben Gamari at 2019-06-12T12:19:59Z
testsuite: Mark T13910 as broken in optasm

Due to #16537.

- - - - -
eb644865 by Ben Gamari at 2019-06-12T12:19:59Z
testsuite: Mark T14761c as broken in hpc, profasm, and optasm ways

As noted in #16540.

- - - - -
1a204e07 by Ben Gamari at 2019-06-12T12:19:59Z
testsuite: Mark T16180 as broken in ghci and ext-interp ways

As noted in #16541.

- - - - -
8d482e45 by Ben Gamari at 2019-06-12T12:19:59Z
testsuite: Omit tcrun022 in hpc way

As noted in #16542, the expected rule doesn't fire. However, this
doesn't seem terribly surpring given the circumstances.

- - - - -
68cfdfdb by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Mark Overflow as broken in hpc way

As noted in #16543.

- - - - -
a3929a4f by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Mark T2783 as fragile in threaded1

It was previously marked as broken but it passes non-deterministically.
See #2783.

- - - - -
bb7ed32f by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Skip T7919 in ghci way

It times out pretty reliably. It's not clear that much is gained by
running this test in the ghci way anyways.

- - - - -
329dcd7a by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Fix fragile_for test modifier

- - - - -
55b5bb14 by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Fix omit_ways usage

omit_ways expects a list but this was broken in several cases.

- - - - -
264ad286 by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Mark threadstatus-T9333 as fragile in ghci way

As noted in #16555.

- - - - -
587bef66 by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Omit profasm way for cc017

cc017 requires TH but we can't load dynamic profiled objects.

- - - - -
dc5a37fd by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Skip T493 in ghci way.

T493 tests #493, which is an FFI test. FFI tests should be skipped
in ghci way.

- - - - -
e3f71d0e by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Mark T16449_2 as broken due to #16742

- - - - -
b5a13a1e by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Mark T16737 as broken in ghci way due to #16541

- - - - -
b09374a4 by Ben Gamari at 2019-06-12T12:20:25Z
testsuite: Note intentional typo in T7130

I earlier accidentally corrected it breaking the test.

- - - - -
a798c130 by Ben Gamari at 2019-06-12T12:20:25Z
linters/check-makefiles: Limit lint to Makefiles

Previously we would apply this rule, which is only intended for
testsuite Makefiles, to all files. This lead to a number of
false-positives in all.T files.

- - - - -
0782141e by Ben Gamari at 2019-06-12T12:20:25Z
gitlab-ci: Fetch submodules before running submodule linter

- - - - -
898f7e92 by Ben Gamari at 2019-06-12T12:20:25Z
Fix uses of #ifdef/#ifndef

The linter now enforces our preference for `#if defined()` and
`#if !defined()`.

- - - - -
0a13a04c by Ben Gamari at 2019-06-12T12:20:25Z
Bump unix submodule

Marks posix002 as fragile in threaded2 way due to #16550.

- - - - -
a8579e5b by Ben Gamari at 2019-06-12T12:27:25Z
process: Bump submodule

 * Skip process005 in ghci way
 * Mark process002 as fragile in threaded2

- - - - -
3f1022c5 by Ben Gamari at 2019-06-12T12:27:25Z
testsuite: Skip cgrun078 in ghci way

This test requires FFI usage.

- - - - -
1cbfef47 by Ben Gamari at 2019-06-12T12:27:25Z
testsuite: Unbreak galois_raytrace on i386

galois_raytrace was previously broken on i386 due to use of x87
arithmethic on that platform. However,
42504f4a575395a35eec5c3fd7c9ef6e2b54e68e removes x87 support; this
resulted in an unexpected pass. Unmark this test as broken.

- - - - -
20160f1a by Ben Gamari at 2019-06-12T12:27:25Z
testsuite: Don't run tests requiring TH in profasm way when GhcDynamic

Since we can't load profiled objects when GhcDynamic==YES. Affects:

* T16737
* T16384
* T16718
* T16619
* T16190

- - - - -
7b751ed8 by Ben Gamari at 2019-06-12T21:52:35Z
gitlab-ci: Bump Docker image

Fixes linters.

- - - - -
5ffc266e by Ben Gamari at 2019-06-13T06:48:13Z
Add a few missing llvm-targets

This should finally fix #14261.

[skip ci]

- - - - -
fc6b23be by Phuong Trinh at 2019-06-13T06:48:50Z
Fix #16525: ObjectCode freed wrongly because of lack of info header check

`checkUnload` currently doesn't check the info header of static objects.
Thus, it may free an `ObjectCode` struct wrongly even if there's still a
live static object whose info header lies in a mapped section of that
`ObjectCode`. This fixes the issue by adding an appropriate check.

- - - - -
a657543c by Ben Gamari at 2019-06-13T06:49:25Z
PrelRules: Ensure that string unpack/append rule fires with source notes

Previously the presence of source notes could hide nested applications
of `unpackFoldrCString#` from our constant folding logic. For instance,
consider the expression:

```haskell
unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)
```

Specifically, ticks appearing in two places can defeat the rule:

  a. Surrounding the inner application of `unpackFoldrCString#`
  b. Surrounding the fold function, `c`

The latter caused the `str_rules` testcase to fail when `base` was built
with `-g3`.

Fixes #16740.

- - - - -
e98d32a6 by David Eichmann at 2019-06-13T06:50:00Z
Hadrian: Track RTS library symlink targets

This requires creating RTS library symlinks when registering, outside
of the rule for the registered library file.

- - - - -
35113117 by Alp Mestanogullari at 2019-06-13T06:50:37Z
Hadrian: Do not allow the Linux jobs to fail anymore

MR !1151 makes the Hadrian/Linux job pass by fixing the last two test failures,
so we can now be stricter and not allow those jobs to fail anymore, easily
letting us see when patches introduce test failures.

- - - - -
70b5eefe by Ben Gamari at 2019-06-13T06:51:13Z
users-guide: Fix a few markup issues

Strangely these were only causing the build to fail in the aarch64-linux
job, despite Sphinx throwing errors in all jobs I checked.

Also changes some `#ifdef`s to `#if defined` to satisfy the linter.

- - - - -
9721b40d by Ben Gamari at 2019-06-13T06:51:13Z
gitlab-ci: Don't build PDF user's guide on AArch64

For reasons I don't understand sphinx seems to fail to produce a .idx
file for makeindex.

- - - - -
d550b771 by Ben Gamari at 2019-06-13T06:51:50Z
Clean up .circleci

Move prepare-system.sh to .gitlab and remove everything else.

- - - - -
c53dfb3b by Ben Gamari at 2019-06-13T15:52:47Z
testsuite: A more portable solution to #9399

Previously we used an awful hybrid batch script/Bourne shell script to
allow this test to run both on Windows and Linux (fixing #9399).
However, this breaks on some libc implementations (e.g. musl). Fix this.

Fixes #16798.

- - - - -
74b5d049 by Ben Gamari at 2019-06-13T15:53:22Z
gitlab-ci: Disable deb9-llvm job, introduce nightly LLVM job

This should help alleviate queue times as the LLVM job is one of the
longest that we have.

- - - - -
5ce63d52 by Ben Gamari at 2019-06-13T15:53:22Z
gitlab-ci: Disable validate-x86_64-linux-deb9 job to reduce load

Enable artifacts on to ensure we have bindist coverage.

- - - - -
7bc5d6c6 by Ben Gamari at 2019-06-14T03:34:41Z
Maintain separate flags for C++ compiler invocations

Previously we would pass flags intended for the C compiler to the C++
compiler (see #16738). This would cause, for instance, `-std=gnu99` to
be passed to the C++ compiler, causing spurious test failures. Fix this
by maintaining a separate set of flags for C++ compilation invocations.

- - - - -
71e75ba6 by Ömer Sinan Ağacan at 2019-06-14T03:35:19Z
Remove unused Unique field from StgFCallOp

Fixes #16696

- - - - -
ec25fe59 by Alp Mestanogullari at 2019-06-14T03:35:56Z
Hadrian: remove superfluous dependencies in Rules.Compile

Each package's object files were 'need'ing the library files of all transitive
dependencies of the current package, whichi is pointless since the said
libraries are not needed until we link those object files together.

This fixes #16759.

- - - - -
3bc6df32 by Andreas Klebinger at 2019-06-14T03:36:34Z
Add Outputable instances for Float, Double.

- - - - -
effdd948 by Andrew Martin at 2019-06-14T14:48:13Z
Implement the -XUnliftedNewtypes extension.

GHC Proposal: 0013-unlifted-newtypes.rst
Discussion: https://github.com/ghc-proposals/ghc-proposals/pull/98
Issues: #15219, #1311, #13595, #15883
Implementation Details:
  Note [Implementation of UnliftedNewtypes]
  Note [Unifying data family kinds]
  Note [Compulsory newtype unfolding]

This patch introduces the -XUnliftedNewtypes extension. When this
extension is enabled, GHC drops the restriction that the field in
a newtype must be of kind (TYPE 'LiftedRep). This allows types
like Int# and ByteArray# to be used in a newtype. Additionally,
coerce is made levity-polymorphic so that it can be used with
newtypes over unlifted types.

The bulk of the changes are in TcTyClsDecls.hs. With -XUnliftedNewtypes,
getInitialKind is more liberal, introducing a unification variable to
return the kind (TYPE r0) rather than just returning (TYPE 'LiftedRep).
When kind-checking a data constructor with kcConDecl, we attempt to
unify the kind of a newtype with the kind of its field's type. When
typechecking a data declaration with tcTyClDecl, we again perform a
unification. See the implementation note for more on this.

Co-authored-by: Richard Eisenberg <rae at richarde.dev>

- - - - -
5279dda8 by Ben Gamari at 2019-06-14T14:48:51Z
PrelRules: Don't break let/app invariant in shiftRule

Previously shiftRule would rewrite as invalid shift like
```
let x = I# (uncheckedIShiftL# n 80)
in ...
```
to
```
let x = I# (error "invalid shift")
in ...
```
However, this breaks the let/app invariant as `error` is not
okay-for-speculation. There isn't an easy way to avoid this so let's not
try. Instead we just take advantage of the undefined nature of invalid
shifts and return zero.

Fixes #16742.

- - - - -
503e830c by Ben Gamari at 2019-06-15T03:10:08Z
gitlab-ci: Lint testsuite for framework failures

This introduces a new lint job checking for framework failures and
listing broken tests.

- - - - -
b5ea9323 by Ben Gamari at 2019-06-15T03:10:08Z
lint: Only apply --interactive lint to testsuite .T files

- - - - -
5c97211c by Ben Gamari at 2019-06-15T03:10:08Z
gitlab-ci: Lint the linters

- - - - -
257165b4 by Alp Mestanogullari at 2019-06-15T03:10:46Z
Remove duplicates from 'ghc --info' output

- - - - -
5da6c86f by Ben Gamari at 2019-06-15T19:14:01Z
Bump unix submodule

Skips `executeFile001` test in `threaded2` way. Fixes #16814.

- - - - -
20b4d5ec by Ben Gamari at 2019-06-16T03:32:38Z
Disable optimisation when building Cabal lib for stage0

This disables optimisation when building Cabal for Hadrian and
stage0 `ghc-cabal`. Cabal is performance critical in neither case nor
will any performance difference here be visible to the end-user.

See #16817.

- - - - -
76b7f619 by Ben Gamari at 2019-06-16T03:32:38Z
Disable optimisation when building Cabal in development flavours

This updates the make and Hadrian build flavours targetting developers
to disable optimisation when building the Cabal library. Cabal tends to
tickle some very bad compiler performance cases (e.g. #16577) so
disabling optimisation here makes a sizeable impact on overall build
time.

See #16817.

- - - - -
0d2a4258 by Ben Gamari at 2019-06-16T03:33:13Z
testsuite: Introduce concurrent_ways set

Previously we just tested for the threaded2 when determining whether to
skip tests which are fragile under concurrent execution. However, this
isn't the only way which is concurrent.

- - - - -
beacb6fd by Ben Gamari at 2019-06-16T03:33:13Z
testsuite: Skip hDuplicateTo001 in concurrent ways

As noted in #16819, this operation is racy under concurrent execution.

- - - - -
ca721193 by Aiken Cairncross at 2019-06-16T03:33:50Z
Fix typo in error message

- - - - -
57b71848 by Ben Gamari at 2019-06-16T03:34:25Z
testsuite: Add assertions that way lists are in fact lists

Previously there were a few cases where operations like `omit_ways`
were incorrectly passed a single way (e.g. `omit_ways('threaded2')`).
This won't work as the author expected.

- - - - -
25ee60cd by Ryan Scott at 2019-06-16T03:35:03Z
Synchronize ClsInst.doTyConApp with TcTypeable validity checks (#15862)

Issue #15862 demonstrated examples of type constructors on which
`TcTypeable.tyConIsTypeable` would return `False`, but the `Typeable`
constraint solver in `ClsInst` (in particular, `doTyConApp`) would
try to generate `Typeable` evidence for anyway, resulting in
disaster. This incongruity was caused by the fact that `doTyConApp`
was using a weaker validity check than `tyConIsTypeable` to determine
if a type constructor warrants `Typeable` evidence or not. The
solution, perhaps unsurprisingly, is to use `tyConIsTypeable` in
`doTyConApp` instead.

To avoid import cycles between `ClsInst` and `TcTypeable`, I factored
out `tyConIsTypeable` into its own module, `TcTypeableValidity`.

Fixes #15862.

- - - - -
4138bf86 by Krzysztof Gogolewski at 2019-06-16T03:35:38Z
Remove dead code

- - - - -
db313f98 by Ben Gamari at 2019-06-16T10:26:38Z
base/Event/Poll: Drop POLLRDHUP enum item

Previously the Event enumeration produced by hsc2hs would sometimes
include a currently-unused POLLRDHUP item. This unused binding would
result in a build failure. Drop it.

- - - - -
81608e82 by Ben Gamari at 2019-06-16T10:26:38Z
testsuite: Fix T8602 on musl

Musl wants hash-bangs on all executables.

- - - - -
a0f68379 by Ben Gamari at 2019-06-16T10:26:38Z
testsuite: Ensure T5423 flushes C output buffer

Previously T5423 would fail to flush the printf output buffer.
Consequently it was platform-dependent whether the C or Haskell print
output would be emitted first.

- - - - -
543dfaab by Ben Gamari at 2019-06-16T10:26:38Z
testsuite: Flush conc059's printf buffer

Otherwise it the order out the Haskell and C output will be
system-dependent.

- - - - -
e647752e by Ben Gamari at 2019-06-16T10:26:38Z
testsuite: Ensure that ffi005 output order is predictable

The libc output buffer wasn't being flushed, making the order
system-depedent.

- - - - -
338336d3 by Ben Gamari at 2019-06-16T10:26:38Z
gitlab-ci: Build alpine release bindists

- - - - -
75c6ccf7 by Alp Mestanogullari at 2019-06-16T10:27:17Z
fix runghc's GHC detection logic to cover the "in-tree Hadrian build" scenario

Before this patch, runghc would only run the GHC detection logic on Windows and
assume that it was invoked through a wrapper script on all other platforms.
This patch lifts this limitation and makes that logic work for the scenario
where someone is calling the runghc executable directly, without passing an
explicit path to GHC.

- - - - -
3c35e140 by Ben Gamari at 2019-06-16T23:38:51Z
testsuite: Really fix #16741

The previous fix, !1095, didn't work as `--show-iface` ignores
`-dsuppress-ticks`. Rework the test instead.

- - - - -
b3bb1b06 by Ben Gamari at 2019-06-16T23:38:51Z
gitlab-ci: Don't allow failure of deb9-dwarf job

This #16741 out of the way this should now pass.

- - - - -
b965de1e by Ömer Sinan Ağacan at 2019-06-16T23:39:29Z
Use TupleSections in CmmParse.y, simplify a few exprs

- - - - -
63965ae3 by Ben Gamari at 2019-06-17T05:20:21Z
make: Clean includes/settings file

Now since this is generated by the build system we should ensure that it
is properly cleaned.

[skip ci]

- - - - -
bb141114 by Siddharth Bhat at 2019-06-17T05:20:57Z
Add link to mfix.github.io/ghc in HACKING.md

- - - - -
80a5d3e1 by Ömer Sinan Ağacan at 2019-06-19T00:30:19Z
rts/BlockAlloc: Allow aligned allocation requests

This implements support for block group allocations which are aligned to
an integral number of blocks.

This will be used by the nonmoving garbage collector, which uses the
block allocator to allocate the segments which back its heap. These
segments are a fixed number of blocks in size, with each segment being
aligned to the segment size boundary. This allows us to easily find the
segment metadata stored at the beginning of the segment.

- - - - -
530e6824 by Ben Gamari at 2019-06-19T00:30:19Z
testsuite/testblockalloc: A bit of refactoring

- - - - -
7c0652b3 by Ben Gamari at 2019-06-19T00:30:19Z
testsuite/testblockalloc: Test aligned block group allocation

- - - - -
ac705426 by Ben Gamari at 2019-06-19T00:30:20Z
rts/BlockAlloc: Wibbles

- - - - -
8788c063 by Ben Gamari at 2019-06-19T00:30:20Z
rts/BlockAlloc: Use allocLargeChunk in aligned block allocation

- - - - -
715cafc9 by Ömer Sinan Ağacan at 2019-06-19T00:30:42Z
Disallow allocating megablocks, update tests

- - - - -
53a82f07 by Ömer Sinan Ağacan at 2019-06-19T00:30:43Z
Fix lint errors

- - - - -
d3aa3046 by Ömer Sinan Ağacan at 2019-06-19T00:30:43Z
Use allocLargeChunkOnNode to reduce splitting

- - - - -
d2577711 by Ömer Sinan Ağacan at 2019-06-19T00:30:43Z
Allow allocating megablocks in allocAlignedGroupOnNode

This is currently broken because freeGroup assumes integral number of
megablocks when freeing megablocks but we try to split the megablocks
returned by allocLargeChunkOnNode to smaller groups and free the rest.

- - - - -


30 changed files:

- − .circleci/config.yml
- − .circleci/fetch-submodules.sh
- − .circleci/push-test-metrics.sh
- .gitlab-ci.yml
- .gitlab/linters/check-makefiles.py
- .gitlab/linters/linter.py
- .circleci/prepare-system.sh → .gitlab/prepare-system.sh
- HACKING.md
- aclocal.m4
- compiler/basicTypes/Id.hs
- compiler/basicTypes/MkId.hs
- compiler/basicTypes/UniqSupply.hs
- compiler/cmm/CmmLint.hs
- compiler/cmm/CmmParse.y
- compiler/cmm/Hoopl/Block.hs
- compiler/cmm/PprC.hs
- compiler/codeGen/StgCmmExpr.hs
- compiler/codeGen/StgCmmExtCode.hs
- compiler/codeGen/StgCmmForeign.hs
- compiler/codeGen/StgCmmMonad.hs
- compiler/codeGen/StgCmmPrim.hs
- compiler/coreSyn/CoreLint.hs
- compiler/coreSyn/CoreSyn.hs
- compiler/deSugar/Check.hs
- compiler/deSugar/Coverage.hs
- compiler/deSugar/DsExpr.hs
- compiler/ghc.cabal.in
- compiler/ghci/ByteCodeAsm.hs
- compiler/ghci/ByteCodeGen.hs
- compiler/ghci/GHCi.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/a08293aa84ffe6e989a2b4797fd96822dcbbcd25...d2577711ce077d6887f0b7046e863148da270643

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/compare/a08293aa84ffe6e989a2b4797fd96822dcbbcd25...d2577711ce077d6887f0b7046e863148da270643
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/20190618/210b2ee7/attachment-0001.html>


More information about the ghc-commits mailing list