branching 4.02

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14852 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
merge github.com/ocaml/ocaml/pull/56.diff, from Anil, part 1: fix support for PowerPC/BSD backtraces

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14855 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
merge github.com/ocaml/ocaml/pull/56.diff, from Anil, part 2: configure fixes for BSD

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14856 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Better error message on magic mismatch in Ast_mapper (patch by Peter Zotov).

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14857 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Adding #ppx toplevel directive (patch by Peter Zotov, github #54).

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14858 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
apply patch for PR#6420: Bad error message for non-exhaustive matching on extensible types

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14860 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Fix PR#6419: Unexpected/incorrect "contains type variables that cannot be generalized

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14861 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
forgotten tests

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14862 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Ensure that delayed checks are run in the proper warning configuration (so that the warnerror attribute applies, in particular).

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14863 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Document bad interaction between ppwarning and warning/warnerror attributes.

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14864 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Use a nominal datatype for CamlinternalFormat.format6

This should make the type-checking of formats simpler and more robust:
instead of trying to find a pair as previously, we can now use the
path of the format6 type directly.

A nice side-effect of the change is that the internal definition of
formats (as a pair) is not printed in error messages anymore.
Because format6 is in fact defined in the CamlinternalFormatBasics
submodule of Pervasives, and has an alias at the toplevel of
Pervasives, error messages still expand the definition:

> Error: This expression has type
>          ('a, 'b, 'c, 'd, 'd, 'a) format6 =
>            ('a, 'b, 'c, 'd, 'd, 'a) CamlinternalFormatBasics.format6
>        but an expression was expected of type ...

Passing the option `-short-paths` does avoid this expansion and
returns exactly the same error message as 4.01:

> Error: This expression has type ('a, 'b, 'c, 'd, 'd, 'a) format6
>        but an expression was expected of type ...

(To get this error message without -short-paths, one would need to
define format6 directly in Pervasives; but this type is mutually
recursive with several GADT types that we don't want to add in the
Pervasives namespace unqualified. This is why I'll keep the alias
for now.)

Conflicts:
	typing/typecore.ml

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14866 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
replay trunk@14523: warn on non-principal format6 coercions

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14867 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
replay trunk@13911: better behavior of printf on nan/infinity floats

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14870 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Improve snapshot mechanism for warning configuration.

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14872 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fix PR#6415: format had forgotten about 'b' boxes

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14873 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
add missing spaces in ocamldoc man page

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14876 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Cherry-picking r14877 from trunk:

Liveness & Deadcode: fix i386-specific issue with move instructions accessing
  the x87 FP stack, which must not be eliminated.
CSEgen: harden against the same x87-specific issue + against reuse of
  values in fixed hardware registers that were destroyed by a prior
  operation.


git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14878 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ignore generated files

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14879 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
stdlib/buffer.mli: typo
stdlib/bytes.{ml,mli}: add a few functions
stdlib/string.{ml,mli}: move [blit] to module Bytes, deprecate [copy]


git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14880 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
add the name of the next version

git-svn-id: http://caml.inria.fr/svn/ocaml/version/4.02@14881 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02