sync-all: cleanup

+ Remove dead code from the DarcsAges
+ Tweak `git config` flags
    * remove --local, it is not a valid flag
    * --get was used in some places, not in others
+ Simplify reading current branch
+ Delete duplicated code in help
sync-all: delete dead code calling gitInitSubmodules

When running './sync-all get', 'git submodule init' has to be (and is
always) executed, since .gitmodules might contain new submodules (see
commit c3db2b). As a result, after cloning the ghc repo and running the
initial './sync-all get', .git/config will always contain some submodule
sections. Therefore it is not needed to check for this on every
subsequent get or pull, and this code can be deleted.
sync-all: die for real when required repo is missing

Since commit 0e17d4, the default "tag" is "-", not "". It is never
undefined.
sync-all: make --no-dph work for all subcommands
sync-all: set and check variable $repo_is_submodule

Not only does this make the code easier to read, it also fixes a bug.

Starting with commits 691c8a and ccce9f, certain subcommands should
behave differently for submodules. This was done by checking, for each
such subcommand:

    $remotepath eq "-"

This commit corrects that to the check:

    $$line{"remotepath"} eq "-".

Because when we have a clone of a local mirror (checked_out_tree=1),
remotepath actually gets set to $$line{"localpath"}.
sync-all: infer remotepath from .gitmodules file

After this commit, running `sync-all remote set-url` works properly for the
haddock package:

    command: ./sync-all -r git://git.haskell.org remote set-url origin
    before: git://git.haskell.org/packages/haddock.git
    after: git://git.haskell.org/haddock.git

By doing the `remotepath` lookup before the `$is_github_repo` check,
running `sync-all remote set-url` now also works properly for submodule
repos on github:

    command: ./sync-all -r git://github.com/ghc remote set-url origin
    before: git://github.com/ghc/packages/binary
    after: git://github.com/ghc/packages-binary

* Relevant prior commits:
4f4357 "Make `sync-all remote set-url` use normalized `/packages/` urls"
34b072 "Convert haddock into a proper submodule (re #8545)"
974a97 "sync-all: Apply submodule url rewriting also to stuff in util/"
sync-all: Allow - in submodule URLs
Merge Thomas Miedema’s syn-all improvments

as submitted on #9212.
Fix sync-all get from a local working copy
Fix “Checking for old .. repo” messages
Work around lack of __sync_fetch_and_nand in clang

clang chose to not implement this function. See
http://llvm.org/bugs/show_bug.cgi?id=8842
Lots of rewrites to further move toward new world order

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Revert "Add more primops for atomic ops on byte arrays"

This commit caused the register allocator to fail on i386.

This reverts commit d8abf85f8ca176854e9d5d0b12371c4bc402aac3 and
04dd7cb3423f1940242fdfe2ea2e3b8abd68a177 (the second being a fix to
the first).
Update parallel and stm submodules to have .gitignore

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
arclint: update rules for xml files

As pointed out by Edward, it's probably unreasonable to have the xml
docs adhere to 80 columns, so we'll separate out the linters for now.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Add new flag -fwrite-interface for -fno-code.

Summary:
Normally, -fno-code does not generate interface files.
However, if you want to use it to type check over multiple
runs of GHC, you will need the interface files to check
source files further down the dependency chain; -fwrite-interface
does this for you.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>

Test Plan: clean validate, and a new test-case

Reviewers: simonpj

Subscribers: simonmar, relrod, carter

Differential Revision: https://phabricator.haskell.org/D27
Add testsuite-related .gitignore files

Also set `submodule.<name>.ignore=none` explicitly for the recently
converted submodules, as those are not supposed to have untracked/unignored
files lying around.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
s/KnownLit/KnownSymbol/g and a typo fix
Merge latest changes from upstream