Comparison primops return Int# (Fixes #6135)

This patch modifies all comparison primops for Char#, Int#, Word#, Double#,
Float# and Addr# to return Int# instead of Bool. A value of 1# represents True
and 0# represents False. For a more detailed description of motivation for this
change, discussion of implementation details and benchmarking results please
visit the wiki page: http://hackage.haskell.org/trac/ghc/wiki/PrimBool

There's also some cleanup: whitespace fixes in files that were extensively edited
in this patch and constant folding rules for Integer div and mod operators (which
for some reason have been left out up till now).
Don't delete HsTimeConfig.h.in during distclean.

sdist preps the tree via distclean before anything else, which caused
HsTimeConfig.h.in under 'time' to be deleted - even though it should be
included in the resulting tarball for ./configure.

The correct target is 'maintainer-clean'.

I'm guessing the nightlies didn't complain because they run ./boot,
forcing regeneration. NixOS's Hydra does not, though.

Thanks to Peter Simons and Andres Löh for pointing this out.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
Comments only
Comments only

I restored part of documentation that describes what is a let-no-escape
and which was deleted 10 months ago together with the old codegen. Then
I removed lots of Literate Haskell clutter (like empty \begin{code} -
\end{code} blocks) and finally decided to remove all the Literate Haskell
markup because there wasn't much of it left, but it made comments so
difficult to read.
Fix Trac #8138.

The code in CoreLint did not take into account the possibility of
~R# arguments to functions. These can arise in argToPat in SpecConstr.
Now, CoreLint does not fail when it sees a ~R# parameter.

This commit also updates the core-spec document accordingly.
Add support for external repositories to sync-all

Signed-off-by: Austin Seipp <aseipp@pobox.com>
Eliminate trailing whitespace from Lexer.x

Signed-off-by: Austin Seipp <aseipp@pobox.com>
Eliminate trailing whitespace from Parser.y.pp

Signed-off-by: Austin Seipp <aseipp@pobox.com>
Remove dead code, fix a typo.

Authored-by: Anders Papitto <anderspapitto@gmail.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Dead code elimination.

Authored-by: Paul Cavallaro <ptc@fb.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Improve error when using forall with UnicodeSyntax

Fixes Trac #7901.

'∀' is neither upper nor lowercase, unlike the 'f' in 'forall', so when
explicit forall is not enabled, it creates a parse error before reaching
the '.', which is where we give a nice message for ascii 'forall'.
Therefore, we make '∀' into a token as long as UnicodeSyntax is enabled,
which is safe because its caselessness means it can never be mistaken
for a symbol, and check extensions in the parser when the 'forall' rule
is used.

Authored-by: Paul Cavallaro <ptc@fb.com>
Authored-by: Anders Papitto <anderspapitto@gmail.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Comments only
Add a better implementation of dropTail, and use it
Improve eta-reduction some more, when the function includes casts
Fix Haddock formatting
Comments only
Add a new language pragma PatternSynonyms
Add new token for 'pattern', when PatternSynonyms is turned on
Add PatSynD to HsDecl
Parser: add pattern_synonym_decl