ocaml/parsing
Gabriel Scherer 2b9f94b69b 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
2014-04-06 15:06:22 +00:00
..
.ignore uniform .ignore system 2011-07-20 15:37:36 +00:00
ast_helper.ml Get rid of some uses of implicit removal of optional arguments. 2014-03-26 18:00:16 +00:00
ast_helper.mli Add location to module and module type definitions. Improves #6311. 2014-01-30 12:18:34 +00:00
ast_mapper.ml More robust syntax (in case we add e.g. some 'open' statement before). 2014-03-26 17:58:22 +00:00
ast_mapper.mli Get rid of recursion closing functions, being more explicit on the recursion does not hurt. 2013-09-26 08:49:46 +00:00
asttypes.mli Revert addition of raw literals to the parsetree 2013-05-23 15:12:04 +00:00
lexer.mli Reports the beginning of the string literal in 'This comment contains an unterminated string literal' errors. 2013-11-29 11:35:50 +00:00
lexer.mll merge branch 4.01 from 4.01.0 (revision 14115) to branch closure (revision 14525) 2014-04-04 17:32:35 +00:00
location.ml Continue cleanup. driver/errors.ml is no longer needed. 2013-09-12 14:45:03 +00:00
location.mli PR#6270: remove need for -I directives to ocamldebug in common case 2014-04-06 15:06:22 +00:00
longident.ml remove all $Id keywords 2012-10-15 17:50:56 +00:00
longident.mli remove all $Id keywords 2012-10-15 17:50:56 +00:00
parse.ml Cleanup. 2013-09-10 12:21:45 +00:00
parse.mli Add entry points to parse expressions/types/patterns. 2013-03-29 09:45:45 +00:00
parser.mly Factor out the grammar productions for functor parameters 2014-03-21 13:27:07 +00:00
parsetree.mli Add location to module and module type definitions. Improves #6311. 2014-01-30 12:18:34 +00:00
pprintast.ml Pprintast: factorize handling of infix/prefix binders 2014-03-28 13:55:22 +00:00
pprintast.mli More explicit internal representation of attribute payload. Now also support patterns as payload [%id ? pat]. 2013-07-22 14:58:15 +00:00
printast.ml Merge module-alias branch (cf. PR#6063) 2014-01-10 07:53:33 +00:00
printast.mli More explicit internal representation of attribute payload. Now also support patterns as payload [%id ? pat]. 2013-07-22 14:58:15 +00:00
syntaxerr.ml Remove spurious character from error message. 2014-03-26 08:46:12 +00:00
syntaxerr.mli Switch Lexer.Error to the new system. 2013-09-12 11:59:45 +00:00