* update files
* fix Dialyzer warning
* unconditionally enable info fil
* clean-up inconsistencies
* use term_to_binary compression
* use try...catch instead of case...catch...of
* do not write build info file if the graph is unmodified
* store info file as <base_dir>/.rebarinfo
* properly support list of compile directives
* fix regressions:
- Fix a bug in handling of files to compile first.
- If a file that is depended upon itself depends on other files, make sure
those are compiled first. While at it, rename variables for correctness.
Reported-by: David Robakowski
- Make sure that FirstFiles has no dupes and preserves the proper order.
- headers referenced via -include_lib() were not properly resolved to absolute
filenames
- .erl files found in sub dirs of src_dirs were not properly resolved to
absolute filenames
* Do not parse source files twice while checking for relationship.
* Keep files relationships in a graph.
* The option 'keep_build_info' is introduced. When set to 'true'
the graph will be kept in ebin/.rebar.build.info and will be
used by further compiler calls. The default is 'false'.
Option takes either 'true' or a numeric seed value. If true is passed, a
random seed is generated and used. The numeric seed value is for
repeatability.
The idea here is to root out test suites that are order dependant, or
that fail in the presence of certain orderings.
If the syntax error is in a .hrl file, then the reported error message
is not as useful because it's not clear which .erl file was being
compiled. We can fix that easily by first printing what source file was
being processed. We don't change the actual error message, so this will
still work with your editor of choice for jumping to the right line.
Before
------
Success:
Compiled src/foo.erl
Failure:
include/foo.hrl:10: syntax error [...]
After
-----
Success:
Compiled src/foo.erl
Failure:
Compiling src/foo.erl failed:
include/foo.hrl:10: syntax error [...]
To avoid treating plugins' info/2 functions as commands, we catch calls
to 'rebar info'. Previously (4b8c81fb) we simply printed the help
string, but it's much more informative to print the following:
Command 'info' not understood or not applicable
If you invoke 'make debug', then bootstrap executes rebar:main/1 with
the extra argument "debug" and rebar treats that as a command. There is
no such command.
Without this patch you will see the following on bootstrap:
Command 'debug' not understood or not applicable