Fix Windows binary-dist target

I'm not entirely sure what the intention of this code was, but it was
quite old, and the binary distribution for Windows seems to work OK
nonetheless.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Fix in-tree GMP build (#8497) on OS X Mavericks

Signed-off-by: Austin Seipp <austin@well-typed.com>
Use correct package id for `stg_INTLIKE_closure` import

I'm a bit surprised though this didn't cause linkage errors

(the incorrect import statement was introduced in 7bdcadda7e)

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Typo in comment
Turn -XTypeHoles into a (on by default) warning

After some discussion on ghc-devs@ and elsewhere, it seemed favorable to
make this change as type holes don't let any invalid programs though,
they merely change what the compiler reports in case of certain errors
(namely unbound occurrences, or _ appearing on a LHS.)

Now, the warning mechanism is controlled by -f[no-]warn-type-errors,
just like any other regular warning. Again, on by default.

The documentation and tests have been updated accordingly.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Update to `terminfo-0.4.0.0`/`haskeline-0.7.1.2`

These new versions get rid of AMP warnings

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
s/warn-type-holes/warn-typed-holes/g

Signed-off-by: Austin Seipp <austin@well-typed.com>
In rts/Printer.c, print exact UPDATE_FRAME type

When printing an update frame in printClosure(), it will not print
the unspecific UPDATE_FRAME, instead it prints BH_UPDATE_FRAME,
NORMAL_UPDATE_FRAME or MARKED_UPDATE_FRAME.

Signed-off-by: Austin Seipp <austin@well-typed.com>
PLT Redex definition of an STG-like language, as-per the fast curry paper.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Cache compiler info in DynFlags

Signed-off-by: Austin Seipp <austin@well-typed.com>
Don't pass -nodefaultlibs to Clang

This fixes a large majority of the testsuite failures on Mavericks with
Clang.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Fix ghciprog004 when built with Clang

Clang warns about implicit return values by default.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Update to `containers-0.5.4.0`

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
type-rep is only broken when debugging is on

in which case it is a wontfix (see #8569)
Disable -fregs-graph (#7679, #8657)
Documentation on the stack layout algorithm
bump bounds for T6048

Presumably broken by an earlier change, anyone know which one?
Typo in comment
Add a way to reserve temporary stack space in high-level Cmm

We occasionally need to reserve some temporary memory in a primop for
passing to a foreign function.  We've been using the stack for this,
but when we moved to high-level Cmm it became quite fragile because
primops are in high-level Cmm and the stack is supposed to be under
the control of the Cmm pipeline.

So this change puts things on a firmer footing by adding a new Cmm
construct 'reserve'.  e.g. in decodeFloat_Int#:

    reserve 2 = tmp {

      mp_tmp1  = tmp + WDS(1);
      mp_tmp_w = tmp;

      /* Perform the operation */
      ccall __decodeFloat_Int(mp_tmp1 "ptr", mp_tmp_w "ptr", arg);

      r1 = W_[mp_tmp1];
      r2 = W_[mp_tmp_w];
    }

reserve is described in CmmParse.y.

Unfortunately the argument to reserve must be a compile-time constant.
We might have to extend the parser to allow expressions with
arithmetic operators if this is too restrictive.

Note also that the return instruction for the procedure must be
outside the scope of the reserved stack area, so we have to extract
the values from the reserved area before we close the scope.  This
means some more local variables (r1, r2 in the example above).  The
generated code is more or less identical to what we had before though.
Allow the argument to 'reserve' to be a compile-time expression

By using the constant-folder to reduce it to an integer.