| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Else build fails with:
In file included from ExecutablePath.hsc:42:
/usr/include/sys/sysctl.h:1062:25: error: unknown type name 'u_int'; did you mean 'int'?
int sysctl(const int *, u_int, void *, size_t *, const void *, size_t);
^~~~~
int
compiling libraries/base/dist-install/build/System/Environment/ExecutablePath_hsc_make.c failed (exit code 1)
Perhaps also also other FreeBSD releases, but additional include
will no harm even if not needed.
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Adds a few files generated by GHC's configure script to .gitignore
|
| |
| |
| |
| |
| | |
This brings `Natural` on par with `Integer` and fixes #17499.
Also does some manual CSE for 0 and 1 literals.
|
| |
| |
| |
| |
| | |
Throw a slightly more informative error on failure. Motivated by the
errors seen in !2160.
|
| |
| |
| |
| |
| | |
Previously we had two distinct implementations: one with spinlock
profiling and another without. This seems like needless duplication.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts a part of commit
7bc5d6c6578ab9d60a83b81c7cc14819afef32ba that causes all arguments
to `-optc` (and `-optcxx`) to be passed twice to the C/C++ compiler,
once in reverse order and then again in the correct order. While
passing duplicate arguments is usually harmless it can cause breakage
in this pattern, which is employed by Hackage libraries in the wild:
```
ghc Foo.hs foo.c -optc-D -optcFOO
```
As `FOO -D -D FOO` will cause compilers to error.
Fixes #17471.
|
| |
| |
| |
| |
| |
| |
| | |
Simon PJ says he prefers this fix to #17429 over banning eta-reduction
for jumps entirely. Sure enough, this also works.
Test case: simplCore/should_compile/T17429.hs
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
CorePrep already had a check to prevent it from eta-reducing Ids that
respond true to hasNoBinding (foreign calls, constructors for unboxed
sums and products, and Ids with compulsory unfoldings). It did not,
however, consider join points as ids that 'must be saturated'.
Checking whether the Id responds True to 'isJoinId' should prevent
CorePrep from turning saturated jumps like the following (from #17429)
into undersaturated ones:
(\ eta_XP ->
join { mapped_s1vo _ = lvl_s1vs } in jump mapped_s1vo eta_XP)
|
| |
| |
| |
| |
| |
| | |
This exposes a set of interfaces from the GHC API for configuring
EventLogWriters. These can be used by consumers like
[ghc-eventlog-socket](https://github.com/bgamari/ghc-eventlog-socket).
|
| |
| |
| |
| |
| |
| |
| |
| | |
This moves the changelog entry about the instance from
`base-4.15.0.0` to `base-4.14.0.0`. This accomplishes part (1)
from #17489.
[ci skip]
|
| | |
|
| |
| |
| |
| | |
This fixes the Darwin build.
|
| |
| |
| |
| | |
Including Phyx's backport of the process changes fixing #17480.
|
| | |
|
|\ \
| |/
|/| |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
encode/decode interface
|
| |
| |
| |
| | |
This makes error messages a tad less noisy.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Make sure files are being read/written in UTF-8. Set encoding while writing
HTML output. Also set encoding while writing and reading .tix files although
we don't yet have a ticket complaining that this poses problems.
* Set encoding in html header to utf8
* Upgrade to new version of 'hpc' library and reuse `readFileUtf8`
and `writeFileUtf8` functions
* Update git submodule for `hpc`
* Bump up `hpc` executable version
Co-authored-by: Ben Gamari <ben@smart-cactus.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Changes (==) to use only pointer equality. This is safe because two
threads are the same iff they have the same id.
Changes `compare` to check pointer equality first and fall back on ids
only in case of inequality.
See discussion in #16761.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we would push stack-carried return values to the new stack on
a stack overflow. While the precise reasoning for this barrier is
unfortunately lost to history, in hindsight I suspect it was prompted by
a missing barrier elsewhere (that has been since fixed).
Moreover, there the redundant barrier is actively harmful: the stack may
contain non-pointer values; blindly pushing these to the mark queue will
result in a crash. This is precisely what happened in the `stack003`
test. However, because of a (now fixed) deficiency in the test this
crash did not trigger on amd64.
|
| |
| |
| |
| |
| |
| | |
Previously the returned tuple seemed to fit in registers on amd64. This
meant that non-moving collector bug would cause the test to fail on i386
yet not amd64.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we would reset the pointer pointing to the object to be
marked to the beginning of the block when marking a large object. This
did no harm on 64-bit but on 32-bit it broke, e.g. `arr020`, since we
align pinned ByteArray allocations such that the payload is 8
byte-aligned. This means that the object might not begin at the
beginning of the block.,
|
| |
| |
| |
| |
| | |
The previous representation needlessly limited the array length to
16-bits on 32-bit platforms.
|
| |
| |
| |
| |
| |
| | |
We were using TAG_BITS instead of TAG_MASK. This happened to work on
64-bit platforms where TAG_BITS==3 since we only use tag values 0 and
3. However, this broken on 32-bit platforms where TAG_BITS==2.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we used INFO_PTR_TO_STRUCT instead of
THUNK_INFO_PTR_TO_STRUCT when looking at a thunk. These two happen to be
equivalent on 64-bit architectures due to alignment considerations
however they are different on 32-bit platforms. This lead to #17487.
To fix this we also employ a small optimization: there is only one thunk
of type WHITEHOLE (namely stg_WHITEHOLE_info). Consequently, we can just
use a plain pointer comparison instead of testing against info->type.
|
| |
| |
| |
| | |
This broke the Windows build.
|
| |
| |
| |
| | |
Should finally fix #17255.
|
| |
| |
| |
| |
| | |
As reported in #8173 in some environments package lists can get quite
long, so we use more efficient ordNub instead of nub on package lists.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If using a pthread instead of a timer signal is more reliable, and
has no known drawbacks, then FreeBSD is also capable of supporting
this mode of operation (tested on FreeBSD 12 with GHC 8.8.1, but
no reason why it would not also work on FreeBSD 11 or GHC 8.6).
Proposed by Kevin Zhang in:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241849
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`GHC.Prim.seq` previously had the rather plain type:
seq :: forall a b. a -> b -> b
However, it also had a special typing rule to applications
where `b` is not of kind `Type`.
Issue #17440 noted that levity polymorphism allows us to rather give
it the more precise type:
seq :: forall (r :: RuntimeRep) a (b :: TYPE r). a -> b -> b
This allows us to remove the special typing rule that we previously
required to allow applications on unlifted arguments. T9404 contains a
non-Type application of `seq` which should verify that this works as
expected.
Closes #17440.
|
| |
| |
| |
| |
| | |
The need for this note vanished in
eae703aa60f41fd232be5478e196b661839ec3de.
|
| |
| |
| |
| |
| | |
Metric Decrease:
T14683
|
| |
| |
| |
| |
| |
| | |
It is typical for $TMP to be a small tmpfson Linux. This test will fail
in such cases since we must create a file larger than the filesystem.
See #17459.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
The previous commit hasn't made it to master yet.
|
| |
| |
| |
| | |
Adopts the language suggested by @JakobBruenker.
|
| | |
|
| |
| |
| |
| |
| |
| | |
I previously increased the size of the acceptance window from 2% to 5%
but this still isn't enough. Regardless, measuring bytes allocated
should be sufficient to catch any regressions.
|