merge branch 4.01 from 4.01.0 (revision 14115) to branch closure (revision 14525)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14532 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
PR#6270: remove need for -I directives to ocamldebug in common case

(patch by Josh Watzman)

Add absolute directory names to bytecode format for ocamldebug to use

The need for a long list of -I directives makes interactively using
ocamldebug a pain in the butt. Many folks have solved this with various
`find` invocations or even Python wrappers, but those lead to other
problems when it might include files you weren't expecting (or miss
things you were). But all of this is really annoying since the tooling
should be able to figure out itself, even heuristically, where your
source files are -- gdb gets this right, why can't we?

This patch implements one of the more important heuristics from gdb: you
typically debug on the same machine you built on, so looking for the
source files and built artifacts in the absolute paths where they were
during compilation is a good first try. We write out absolute paths into
a new structure at the beginning of the debug section and then
automatically append those directories into the load path.

This means mean that if you happen to be debugging on a machine
where the original source and build artifacts are *not* available in
their original absolute locations, things will work as before, using the
standard load path mechanism. You can also explicitly use -I to prepend
directories to the load path and override the defaults located by this
new mechanism.

I personally find this makes using ocamldebug much more pleasant :)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14533 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
harmonize Makefile.nt wrt. Makefile to simplify future line-by-line comparison

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14535 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
PR#6358: obey DESTDIR in install targets

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14536 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
[minor] partial revert of trunk@14535 to make Windows CI happy

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14539 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
CI golf: try a better fix for tools install in Makefile.nt

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14541 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
minor Makefile.nt fix

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14542 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
make clean: remove *.cmt and *.cmti files

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14543 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
[minor] Makefile.nt typo

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14545 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
[minor] make tools/Makefile.shared msvc-friendly

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14547 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
testsuite for primitive bound checking

(Patch by Pierre Chambart)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14555 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Fix caml_string_{get,set}{16,32,64} bound checking in cmmgen

(Patch by Pierre Chambart)

Followup for trunk@14267:
  bound checking bug with caml_string_{get,set}{16,32,64}: fix the runtime C code

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14556 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Folllowup to PR#6359, great cleanup of switch actions sharing.




git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14558 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Suppressed some useless argument of switcher calls
(lifted as a functor argument)



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14559 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Fix ocamlbuild installation directory

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14564 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Fix PR#6365

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14565 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Add %loc_* primitives and corresponding values in Pervasives

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14571 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
parser.mly: minor mistake in position of a symbol

(Patch by Frédéric Bour)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14572 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
refine ocamlbuild/.depend for `make -jN` to work again

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14576 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Added comments to parsetree.mli

(Patch by Yotam Barnoy)

Specifically, I documented some more obscure features that weren't
obvious from reading the existing comments.

Discussion of these comments can be found on the mailing list at
  https://sympa.inria.fr/sympa/arc/caml-list/2014-04/msg00022.html

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