couchdb-rebar.git
6 years agoDIRTY HACK to get 2.0 builds from release tarballs working. FIXME hack/2.0
Jan Lehnardt [Thu, 24 Dec 2015 13:06:34 +0000 (14:06 +0100)] 
DIRTY HACK to get 2.0 builds from release tarballs working. FIXME

7 years agobump to 2.6.0 import 2.6.0
Fred Hebert [Fri, 19 Jun 2015 16:14:28 +0000 (12:14 -0400)] 
bump to 2.6.0

7 years agoMerge pull request #513 from rebar/jem-pr-release-tool
Fred Hebert [Fri, 19 Jun 2015 16:05:55 +0000 (12:05 -0400)] 
Merge pull request #513 from rebar/jem-pr-release-tool

Add pr2relnotes tool to generate release notes

7 years agoAdd pr2relnotes tool to generate release notes
Jared Morrow [Fri, 19 Jun 2015 15:53:17 +0000 (09:53 -0600)] 
Add pr2relnotes tool to generate release notes

7 years agoMerge pull request #512 from tuncer/fix-rememo-handle_call
Fred Hebert [Fri, 19 Jun 2015 14:39:47 +0000 (10:39 -0400)] 
Merge pull request #512 from tuncer/fix-rememo-handle_call

rmemo: properly handle unsupported call

7 years agormemo: properly handle unsupported call
Tuncer Ayaz [Fri, 19 Jun 2015 14:38:36 +0000 (16:38 +0200)] 
rmemo: properly handle unsupported call

7 years agoMerge pull request #511 from tuncer/memo
Fred Hebert [Fri, 19 Jun 2015 14:30:28 +0000 (10:30 -0400)] 
Merge pull request #511 from tuncer/memo

Add and use memoization server

7 years agorebar_utils: rename internal function
Tuncer Ayaz [Fri, 12 Jun 2015 10:56:20 +0000 (12:56 +0200)] 
rebar_utils: rename internal function

7 years agormemo: document rebar-specific modifications
Tuncer Ayaz [Thu, 11 Jun 2015 20:05:33 +0000 (22:05 +0200)] 
rmemo: document rebar-specific modifications

7 years agormemo: support R13 for rebar only
Tuncer Ayaz [Thu, 11 Jun 2015 18:38:43 +0000 (20:38 +0200)] 
rmemo: support R13 for rebar only

ets read_concurrency has been available since R14, but rebar supports
R13B03 (and newer). As a workaround we check that erts/ebin/erts.app
exists as another pre-R14 characteristic to determine whether we can
assume read_concurrency is supported.

7 years agoStart using memoization server
Tuncer Ayaz [Thu, 11 Jun 2015 18:10:27 +0000 (20:10 +0200)] 
Start using memoization server

1. memoize otp release vsn string function call

2. memoize expensive filename:absname/1 call which happens
   to be called quite frequently

7 years agoAdd memoization server
Tuncer Ayaz [Thu, 11 Jun 2015 18:03:14 +0000 (20:03 +0200)] 
Add memoization server

Copy memo.erl from https://github.com/tuncer/memo and rename to
rmemo.erl for use in rebar. We rename it to avoid collisions.

7 years agoMerge pull request #510 from tuncer/fix-make-deps
Fred Hebert [Mon, 8 Jun 2015 14:27:47 +0000 (10:27 -0400)] 
Merge pull request #510 from tuncer/fix-make-deps

Fix 'make deps'

7 years agoFix 'make deps'
Tuncer Ayaz [Mon, 8 Jun 2015 14:22:00 +0000 (16:22 +0200)] 
Fix 'make deps'

We have to partially revert f3f8f29920ace62. The reason for not running
"make -C deps/retest" is to avoid a dependency on rebar in $PATH.

While at it, change one ./rebar to $(REBAR).

7 years agoMerge pull request #509 from tuncer/dep-open-crash
Fred Hebert [Mon, 8 Jun 2015 13:54:04 +0000 (09:54 -0400)] 
Merge pull request #509 from tuncer/dep-open-crash

erlc: do not crash if dep file cannot be found

7 years agoerlc: do not crash if dep file cannot be found
Tuncer Ayaz [Wed, 3 Jun 2015 19:42:11 +0000 (21:42 +0200)] 
erlc: do not crash if dep file cannot be found

7 years agoMerge pull request #508 from tuncer/missing-newline
Fred Hebert [Sun, 7 Jun 2015 19:19:37 +0000 (15:19 -0400)] 
Merge pull request #508 from tuncer/missing-newline

rebar_core: add missing newline in log msg

7 years agorebar_core: add missing newline in log msg
Tuncer Ayaz [Sun, 7 Jun 2015 18:48:22 +0000 (20:48 +0200)] 
rebar_core: add missing newline in log msg

7 years agoMerge pull request #504 from fishcakez/plt_name
Fred Hebert [Sun, 7 Jun 2015 15:10:26 +0000 (11:10 -0400)] 
Merge pull request #504 from fishcakez/plt_name

Drop `shared` PLTs support and change PLT name to <OTP-VSN>.plt

7 years ago Drop support for `shared` plt
James Fish [Thu, 4 Jun 2015 10:03:44 +0000 (11:03 +0100)] 
 Drop support for `shared` plt

7 years agoMerge pull request #505 from tuncer/pdict-comment
Fred Hebert [Wed, 3 Jun 2015 18:04:48 +0000 (14:04 -0400)] 
Merge pull request #505 from tuncer/pdict-comment

rebar_utils: explain pdict use

7 years agorebar_utils: explain pdict use
Tuncer Ayaz [Wed, 3 Jun 2015 17:58:32 +0000 (19:58 +0200)] 
rebar_utils: explain pdict use

7 years agoMerge pull request #502 from choptastic/fix_otp_version2
Fred Hebert [Tue, 2 Jun 2015 16:35:11 +0000 (12:35 -0400)] 
Merge pull request #502 from choptastic/fix_otp_version2

Don't crash if missing OTP_VERSION file (fix #350)

7 years agoDon't crash if missing OTP_VERSION file (fix #350)
Jesse Gumm [Tue, 2 Jun 2015 02:03:59 +0000 (21:03 -0500)] 
Don't crash if missing OTP_VERSION file (fix #350)

7 years agoMerge pull request #500 from tuncer/fix-makefile
Tristan Sloughter [Sat, 30 May 2015 20:30:02 +0000 (15:30 -0500)] 
Merge pull request #500 from tuncer/fix-makefile

Makefile: clean only .rebar/erlcinfo

7 years agoMakefile: clean only .rebar/erlcinfo
Tuncer Ayaz [Sat, 30 May 2015 20:23:04 +0000 (22:23 +0200)] 
Makefile: clean only .rebar/erlcinfo

Do not delete PLT file in .rebar/.

7 years agoMerge pull request #460 from tuncer/dialyzer
Fred Hebert [Fri, 29 May 2015 11:55:45 +0000 (07:55 -0400)] 
Merge pull request #460 from tuncer/dialyzer

Add Dialyzer plugin

7 years agoMerge pull request #499 from aronisstav/otp_version_fix
Fred Hebert [Fri, 29 May 2015 11:20:23 +0000 (07:20 -0400)] 
Merge pull request #499 from aronisstav/otp_version_fix

Try one more location for the OTP_VERSION file

7 years agoTry one more location for the OTP_VERSION file
Stavros Aronis [Fri, 29 May 2015 08:57:27 +0000 (10:57 +0200)] 
Try one more location for the OTP_VERSION file

If one is building Erlang from sources without making a proper release,
there may be an OTP_VERSION file in the root directory.

7 years agoMerge branch 'RubberCthulhu-ct-groups-and-cases'
Fred Hebert [Wed, 27 May 2015 12:27:15 +0000 (08:27 -0400)] 
Merge branch 'RubberCthulhu-ct-groups-and-cases'

7 years agoMerge branch 'ct-groups-and-cases' of https://github.com/RubberCthulhu/rebar into...
Fred Hebert [Wed, 27 May 2015 12:27:09 +0000 (08:27 -0400)] 
Merge branch 'ct-groups-and-cases' of https://github.com/RubberCthulhu/rebar into RubberCthulhu-ct-groups-and-cases

Conflicts:
THANKS

7 years agoAdd options 'groups' and 'cases' to 'ct' command
Danil Onishchenko [Sun, 5 Apr 2015 12:28:36 +0000 (19:28 +0700)] 
Add options 'groups' and 'cases' to 'ct' command

Add option 'groups' to 'rebar ct' command. So the command "rebar ct suites=Suite1 groups=Group1,Group2,...,GroupN" is equal to "ct_run -suite Suite1_SUITE -group Group1 Group2 ... GroupN". It allows to run specified test groups in specified test suite with Common Test tool. Besides it is absolutely necessary to specify groups for running test cases which are included in these groups, otherwise init_per_group/2 and end_per_group/1 callbacks are not called by ct_run.
Add option 'cases' to 'rebar ct' command. So the command "rebar ct suites=Suite1 cases=Case1,Case2,...,CaseN" is equal to "ct_run -suite Suite1_SUITE -case Case1 Case2 ... CaseN". It allows to run one or more test cases in specified test suite. Currently rebar has an option 'case' which allows to run only one test case. The option case is remained for backward compability. It's suggested to consider the option 'case' as deprecaed and recommended to use 'cases' instead.
Updated help messages according to new command line options.
Add warning message when used deprecated options 'case', 'group', 'suite' in command "rebar ct".

7 years agodialyzer: change plt_location to rebar3 default
Tuncer Ayaz [Fri, 22 May 2015 07:46:56 +0000 (09:46 +0200)] 
dialyzer: change plt_location to rebar3 default

To match rebar3, change plt_location's default to 'local'.

7 years agoCONTRIBUTING: update Dialyzer bits
Tuncer Ayaz [Tue, 12 May 2015 13:08:21 +0000 (15:08 +0200)] 
CONTRIBUTING: update Dialyzer bits

7 years agodialyzer: nest dialyzer options to match rebar3
Tuncer Ayaz [Fri, 15 May 2015 09:56:31 +0000 (11:56 +0200)] 
dialyzer: nest dialyzer options to match rebar3

{dialyzer,
 [
  %% Store PLT in ~/.rebar/plt (Default)
  {plt_location, shared},
  %% Store PLT locally inside the project in .rebar
  {plt_location, local},
  %% Store PLT in custom directory
  {plt_location, "custom_dir"},
  %% Extra apps to include in the PLT
  {plt_extra_apps, [app1, app2]},
  {warnings, [unmatched_returns, error_handling]}
 ]}.

7 years agoSuppress missing calls Dialyzer warnings
Tuncer Ayaz [Thu, 9 Apr 2015 22:41:23 +0000 (00:41 +0200)] 
Suppress missing calls Dialyzer warnings

7 years agodialyzer: consistent warning formatting
James Fish [Sun, 29 Mar 2015 17:49:09 +0000 (18:49 +0100)] 
dialyzer: consistent warning formatting

7 years agoAdd Dialyzer plugin
Tuncer Ayaz [Fri, 27 Feb 2015 22:17:24 +0000 (23:17 +0100)] 
Add Dialyzer plugin

Build project-specific PLT
$ rebar build-plt

Check the PLT for consistency and rebuild it if it is not up-to-date
$ rebar check-plt

Analyze the code for discrepancies
$ rebar dialyze

Delete project-specific PLT
$ rebar delete-plt

Valid rebar.config options:
  %% Store PLT in ~/.rebar/plt (Default)
  {dialyzer_plt_location,shared}
  %% Store PLT locally inside the project in .rebar
  {dialyzer_plt_location,local}
  %% Store PLT in custom directory
  {dialyzer_plt_location,"custom_path"}
  {dialyzer_plt_extra_apps,[app1,app2]}
  {dialyzer_warnings,[unmatched_returns,error_handling]}

7 years agoFix rebar.config.sample formatting
Tuncer Ayaz [Fri, 15 May 2015 09:56:00 +0000 (11:56 +0200)] 
Fix rebar.config.sample formatting

7 years agoMerge pull request #496 from derek121/contributing-dialyzer-2
Fred Hebert [Tue, 19 May 2015 12:52:53 +0000 (08:52 -0400)] 
Merge pull request #496 from derek121/contributing-dialyzer-2

Update PLT detail for make build_plt

7 years agoUpdate PLT detail for make build_plt
Derek Brown [Tue, 12 May 2015 16:00:27 +0000 (12:00 -0400)] 
Update PLT detail for make build_plt

The PLT that rebar will have dialyzer use is now created with make
build_plt - this commit explains that.

7 years agoMerge pull request #273 from cybergrind/appups_fix
Fred Hebert [Tue, 12 May 2015 14:00:59 +0000 (10:00 -0400)] 
Merge pull request #273 from cybergrind/appups_fix

Use target_dir as source of new version in generate-appups

7 years agoMerge pull request #494 from derek121/dialyzer-warnings-addition
Fred Hebert [Tue, 12 May 2015 12:36:33 +0000 (08:36 -0400)] 
Merge pull request #494 from derek121/dialyzer-warnings-addition

Update line number of allowed dialyzer error

7 years agoMerge pull request #336 from derek121/contributing-dialyzer
Fred Hebert [Tue, 12 May 2015 12:36:18 +0000 (08:36 -0400)] 
Merge pull request #336 from derek121/contributing-dialyzer

Add details on Dialyzer with "make check"

7 years agoUpdate line number of allowed dialyzer error
Derek Brown [Mon, 11 May 2015 21:38:34 +0000 (17:38 -0400)] 
Update line number of allowed dialyzer error

Running make check after make debug gives an error due to the
following:

make: [dialyzer_warnings] Error 2 (ignored)
--- dialyzer_reference  2015-05-11 17:21:38.000000000 -0400
+++ dialyzer_warnings   2015-05-11 17:31:42.000000000 -0400
@@ -3 +3 @@
-rebar_utils.erl:198: Call to missing or unexported function
escript:foldl/3
+rebar_utils.erl:222: Call to missing or unexported function
escript:foldl/3

Indeed that call to escript:foldl/3 changed from line 198 to 222 via
https://github.com/rebar/rebar/commit/a04530124ffa16c50205695d35f9274107e2fa42

This update makes the corresponding change to the line number in
dialyzer_reference.

This was noticed while working on
https://github.com/rebar/rebar/pull/336

7 years agoAdd details on Dialyzer with "make check"
Derek Brown [Thu, 7 Aug 2014 17:27:12 +0000 (13:27 -0400)] 
Add details on Dialyzer with "make check"

If Dialyzer hasn't been used on an account before, there won't be a PLT
file and "make check" will fail. Added info on that fact.

7 years agoMerge branch 'fholzhaut push origin masterser-dia_first_files'
Fred Hebert [Sat, 9 May 2015 18:03:42 +0000 (14:03 -0400)] 
Merge branch 'fholzhaut push origin masterser-dia_first_files'

7 years agoMerge branch 'dia_first_files' of https://github.com/fholzhauser/rebar into fholzhaus...
Fred Hebert [Sat, 9 May 2015 18:03:30 +0000 (14:03 -0400)] 
Merge branch 'dia_first_files' of https://github.com/fholzhauser/rebar into fholzhauser-dia_first_files

7 years agoMerge branch 'paulo-ferraz-oliveira-fix/xref_behavior'
Fred Hebert [Sat, 9 May 2015 18:01:36 +0000 (14:01 -0400)] 
Merge branch 'paulo-ferraz-oliveira-fix/xref_behavior'

7 years agoMerge branch 'fix/xref_behavior' of https://github.com/paulo-ferraz-oliveira/rebar...
Fred Hebert [Sat, 9 May 2015 18:01:30 +0000 (14:01 -0400)] 
Merge branch 'fix/xref_behavior' of https://github.com/paulo-ferraz-oliveira/rebar into paulo-ferraz-oliveira-fix/xref_behavior

7 years agoMerge branch 'lrascao-feature/add_gpb_proto_error_test_case'
Fred Hebert [Sat, 9 May 2015 13:09:49 +0000 (09:09 -0400)] 
Merge branch 'lrascao-feature/add_gpb_proto_error_test_case'

7 years agoComment typos
Fred Hebert [Sat, 9 May 2015 13:09:26 +0000 (09:09 -0400)] 
Comment typos

7 years agoMerge branch 'feature/add_gpb_proto_error_test_case' of https://github.com/lrascao...
Fred Hebert [Sat, 9 May 2015 13:07:43 +0000 (09:07 -0400)] 
Merge branch 'feature/add_gpb_proto_error_test_case' of https://github.com/lrascao/rebar into lrascao-feature/add_gpb_proto_error_test_case

7 years agoFix source file console output of failed build
Luis Rascao [Fri, 8 May 2015 22:56:16 +0000 (23:56 +0100)] 
Fix source file console output of failed build

On a failed build, print an absolute source filename,
if applicable

7 years agoAdd proto gpb error test case
Luis Rascao [Tue, 5 May 2015 21:59:17 +0000 (22:59 +0100)] 
Add proto gpb error test case

A specific bad.proto file will cause the mock gpb compiler
to fail thus improving rebar's coverage of error scenarios

7 years agoMerge pull request #485 from kejv/robust-expand_include_lib_path
Fred Hebert [Fri, 8 May 2015 13:00:17 +0000 (09:00 -0400)] 
Merge pull request #485 from kejv/robust-expand_include_lib_path

avoid pre-compile time errors in expand_include_lib_path

7 years agoavoid pre-compile time errors in expand_include_lib_path
David Kubecka [Sat, 25 Apr 2015 18:59:07 +0000 (20:59 +0200)] 
avoid pre-compile time errors in expand_include_lib_path

Previously when user specified broken include_lib, such as
-include_lib("my_app.hrl"), the code throwed too early
exception.  We fix this simply by avoiding any possible
internal errors, possibly letting even nonsensical paths pass.
These will be checked and filtered later in expand_file_names/2.

7 years agoMerge pull request #489 from lrascao/fix/crash_on_failed_lfe_build
Fred Hebert [Tue, 5 May 2015 12:00:39 +0000 (08:00 -0400)] 
Merge pull request #489 from lrascao/fix/crash_on_failed_lfe_build

Fix crash on failed build console output

7 years agoFix crash on failed build console output
Luis Rascao [Tue, 5 May 2015 09:58:39 +0000 (10:58 +0100)] 
Fix crash on failed build console output

7 years agoMerge pull request #487 from tuncer/whitespace-errors
Fred Hebert [Fri, 1 May 2015 20:21:09 +0000 (16:21 -0400)] 
Merge pull request #487 from tuncer/whitespace-errors

erlc: fix recently introduced whitespace errors

7 years agoerlc: fix recently introduced whitespace errors
Tuncer Ayaz [Fri, 1 May 2015 19:57:24 +0000 (21:57 +0200)] 
erlc: fix recently introduced whitespace errors

7 years agoMerge pull request #477 from kejv/support-parse-transforms
Fred Hebert [Fri, 1 May 2015 01:05:02 +0000 (21:05 -0400)] 
Merge pull request #477 from kejv/support-parse-transforms

Enable parse transformations in rebar config

7 years agoMerge pull request #484 from carlosedp/master
Fred Hebert [Thu, 23 Apr 2015 13:46:33 +0000 (09:46 -0400)] 
Merge pull request #484 from carlosedp/master

/me added to THANKS

7 years ago/me added to THANKS
CarlosEDP [Thu, 23 Apr 2015 13:38:23 +0000 (10:38 -0300)] 
/me added to THANKS

7 years agoMerge pull request #482 from carlosedp/master
Fred Hebert [Wed, 22 Apr 2015 14:21:08 +0000 (10:21 -0400)] 
Merge pull request #482 from carlosedp/master

Windows runner - CD to node root

7 years agoWindows runner - CD to node root
CarlosEDP [Wed, 22 Apr 2015 13:48:58 +0000 (10:48 -0300)] 
Windows runner - CD to node root

7 years agoFix parse_transform option in rebar.config
David Kubecka [Sun, 29 Mar 2015 10:55:38 +0000 (12:55 +0200)] 
Fix parse_transform option in rebar.config

Currently this option doesn't work very well because
given parse_transform is applied globally to all modules,
even to parse transform module itself which is not possible
because the module is not yet compiled.

So we just ensure that local parse transformations are not applied
to themselves and probably also to erl_first_files since they
are explicitly stated as to be compiled before anything else.

7 years agoFix commit typo
Fred Hebert [Thu, 16 Apr 2015 15:27:43 +0000 (11:27 -0400)] 
Fix commit typo

7 years agoMerge pull request #478 from tuncer/fish-warning-fix
Fred Hebert [Thu, 16 Apr 2015 15:12:28 +0000 (11:12 -0400)] 
Merge pull request #478 from tuncer/fish-warning-fix

bootstrap: better warning fix (Thanks James Fish)

7 years agobootstrap: better warning fix (Thanks James Fish)
Tuncer Ayaz [Thu, 16 Apr 2015 14:47:26 +0000 (16:47 +0200)] 
bootstrap: better warning fix (Thanks James Fish)

As a follow-up to bad3a795, implement a better fix for the pre-18.0
warning.

erlang:now/0 was deprecated in 18.0, and as the escript has to pass
erl_lint:module/1 (even without -mode(compile)), we would see a
deprecation warning for erlang:now/1.  One solution is to use
-compile({nowarn_deprecated_function, [{erlang, now, 0}]}), but that
would raise a warning in versions older than 18.0. Calling erlang:now/0
via apply/3 avoids that.

7 years agoMerge pull request #475 from tuncer/otp-18-time
Fred Hebert [Fri, 10 Apr 2015 14:14:34 +0000 (10:14 -0400)] 
Merge pull request #475 from tuncer/otp-18-time

Adapt to 18.x time api changes

7 years agoAdapt to 18.x time api changes
Tuncer Ayaz [Wed, 8 Apr 2015 21:08:18 +0000 (23:08 +0200)] 
Adapt to 18.x time api changes

7 years agoMerge pull request #467 from kejv/support-parse-transforms2
Fred Hebert [Tue, 7 Apr 2015 20:33:05 +0000 (16:33 -0400)] 
Merge pull request #467 from kejv/support-parse-transforms2

Refactor logic and optimizations in rebar_erlc_compiler:doterl_compile/4

7 years agoappend myself to THANKS
David Kubecka [Sun, 29 Mar 2015 21:17:22 +0000 (23:17 +0200)] 
append myself to THANKS

7 years agoRaise version of erlcinfo
David Kubecka [Sun, 29 Mar 2015 08:10:18 +0000 (10:10 +0200)] 
Raise version of erlcinfo

Its format was (repeatedly) changed in previous commits.

7 years agoFix error when processing non-existent include_lib file
David Kubecka [Sat, 4 Apr 2015 23:34:25 +0000 (01:34 +0200)] 
Fix error when processing non-existent include_lib file

Since process_attr/3 searches source code for attributes, it can
happen that it finds an attribute which is eventually not needed
by the compilation, e.g. hidden by ifdef macro - see enclosed test.
Such attribute can reference a file which is not in the path or
which even doesn't exist at all, and current code doesn't expect
such a situation.  We fix things by simply ignoring such files.

7 years agoRemove obsolete way of generating target ebin subdirectories
David Kubecka [Tue, 31 Mar 2015 21:36:30 +0000 (23:36 +0200)] 
Remove obsolete way of generating target ebin subdirectories

As per @tuncer: "That's most likely a vestige of package module support".

7 years agoStore also max modified times in erlcinfo
David Kubecka [Sat, 28 Mar 2015 22:37:37 +0000 (23:37 +0100)] 
Store also max modified times in erlcinfo

These times already contain max modified info of their
dependencies.  Therefore we no longer have to check in
internal_erl_compile whether the file really needs
recompiling, which simplifies the flow somewhat, because
the work with dependency graph is now localized to much
smaller space then before.

7 years agoUse toposort of erlcinfo to decide the order of compilation
David Kubecka [Mon, 23 Mar 2015 19:42:16 +0000 (20:42 +0100)] 
Use toposort of erlcinfo to decide the order of compilation

The precise algorithm is now following:
- Decide which files need to be compiled first (ErlFirstFiles).
- Split AllErlFiles which are not in ErlFirstFiles into two groups,
  one consisting of files some other file depends on (DepErls)
  and the rest (OtherErls).
- Final FirstErls are obtained as ErlFirstFiles (in original order)
  plus toposorted DepErls. OtherErls are left as is since they can
  be compiled in any (random) order.

Also create the erlcinfo graph as acyclic, since otherwise the
toposort could not work and we don't want to have cycles among
dependencies anyway.

7 years agoCompress erlcinfo file less agressively
David Kubecka [Mon, 23 Mar 2015 10:17:01 +0000 (11:17 +0100)] 
Compress erlcinfo file less agressively

Optimizing for best compression could be very slow for large
projects, so optimize rather for the speed.  erlcinfo file
isn't that huge anyway and moreover difference between levels
2 and 9 isn't that big in practice (although there's quite big
difference between level 2 and no compression at all).

7 years agoAdditional minor refactor in erlcinfo
David Kubecka [Mon, 23 Mar 2015 03:47:54 +0000 (04:47 +0100)] 
Additional minor refactor in erlcinfo

- use filelib:last_modified/1 instead of date/0 and time/0 combo
  in source file vertices
- simplify store_erlcinfo/2
- document init_erlcinfo/2

7 years agoDelete existing out-edges before adding new ones in modify_erlcinfo
David Kubecka [Wed, 25 Mar 2015 08:57:42 +0000 (09:57 +0100)] 
Delete existing out-edges before adding new ones in modify_erlcinfo

When the source file changes it could happen that some of its
dependecies get removed.  In that case we should remove these
former dependencies from the graph, so that they don't influence
recompilation of the source file anymore.

7 years agoAvoid extra list traversal when checking for modified source files
David Kubecka [Mon, 23 Mar 2015 03:40:52 +0000 (04:40 +0100)] 
Avoid extra list traversal when checking for modified source files

7 years agoAssemble Dirs passed to update_erlcinfo in one place
David Kubecka [Mon, 23 Mar 2015 03:10:11 +0000 (04:10 +0100)] 
Assemble Dirs passed to update_erlcinfo in one place

Current separation of part of the logic into include_path
obscures the purpose of Dirs (see expand_file_names).
Moreover for each particular Erl its source file was included
twice in Dirs, which is now corrected.

Also InclDirs (specified in erl_opts) as part of erlcinfo
since they can affect resulting graph, which needs to be
therefore regenerated when InclDirs change.  See added
test as an example.

7 years agoSanitize erlcinfo checking
David Kubecka [Mon, 23 Mar 2015 02:10:28 +0000 (03:10 +0100)] 
Sanitize erlcinfo checking

As erlcinfo is only an internal optimization mechanism, user
should be only minimally bothered by issues with it.  Especially
it shouldn't ever cause a fatal error and if it cannot be restored
properly, only a warning (not error) message should be emitted (if
any).  Also it probably doesn't make sense for this warning message
to be too detailed - just state that something went wrong and
silently delete the erlcinfo file.

7 years agoExtract common pattern from rebar_erlc_compiler:process_attr
David Kubecka [Sun, 22 Mar 2015 22:03:36 +0000 (23:03 +0100)] 
Extract common pattern from rebar_erlc_compiler:process_attr

7 years agoStop silently supressing errors from process_attr/2
David Kubecka [Sat, 28 Mar 2015 14:53:06 +0000 (15:53 +0100)] 
Stop silently supressing errors from process_attr/2

Otherwise the code cannot be safely refactored, since
potential new erros slip unnoticed.

7 years agoStop passing useless Config into erlcinfo_file
David Kubecka [Sun, 22 Mar 2015 19:30:41 +0000 (20:30 +0100)] 
Stop passing useless Config into erlcinfo_file

Also pas only InclDirs into init_erlcinfo as this is the only
thing from Config/ErlOpts needed there.

7 years agoBasic test for erlc (re)compiling and erlcinfo
David Kubecka [Sat, 28 Mar 2015 11:53:20 +0000 (12:53 +0100)] 
Basic test for erlc (re)compiling and erlcinfo

7 years agoRemove useless compile/3
David Kubecka [Mon, 23 Mar 2015 20:19:44 +0000 (21:19 +0100)] 
Remove useless compile/3

Its case statement is noop.

7 years agoAllow running specific retest suites
David Kubecka [Sat, 28 Mar 2015 11:51:52 +0000 (12:51 +0100)] 
Allow running specific retest suites

7 years agoMerge pull request #354 from vladdu/compiler_keep_going
Fred Hebert [Thu, 2 Apr 2015 22:32:33 +0000 (18:32 -0400)] 
Merge pull request #354 from vladdu/compiler_keep_going

compiler respects 'keep_going' flag

7 years agoadd tests for 'compiler keep_going'
Vlad Dumitrescu [Mon, 1 Dec 2014 11:02:06 +0000 (12:02 +0100)] 
add tests for 'compiler keep_going'

7 years agocompiler and xref respect 'keep_going' flag
Vlad Dumitrescu [Wed, 3 Dec 2014 17:18:47 +0000 (18:18 +0100)] 
compiler and xref respect 'keep_going' flag

7 years agoMerge pull request #471 from tuncer/formatting-fixes-2
Fred Hebert [Thu, 2 Apr 2015 14:27:11 +0000 (10:27 -0400)] 
Merge pull request #471 from tuncer/formatting-fixes-2

Fix whitespace errors

7 years agoFix whitespace errors
Tuncer Ayaz [Thu, 2 Apr 2015 14:21:20 +0000 (16:21 +0200)] 
Fix whitespace errors

7 years agoMerge pull request #470 from tuncer/formatting-fixes
Fred Hebert [Thu, 2 Apr 2015 14:14:44 +0000 (10:14 -0400)] 
Merge pull request #470 from tuncer/formatting-fixes

Fix whitespace errors

7 years agoFix whitespace errors
Tuncer Ayaz [Thu, 2 Apr 2015 14:10:31 +0000 (16:10 +0200)] 
Fix whitespace errors

7 years agoMerge pull request #456 from glyphrider/master
Fred Hebert [Thu, 2 Apr 2015 13:43:58 +0000 (09:43 -0400)] 
Merge pull request #456 from glyphrider/master

Generate json output from cover

7 years agoMerge pull request #469 from tuncer/fix-dialyzer-warnings
Fred Hebert [Tue, 31 Mar 2015 17:06:14 +0000 (13:06 -0400)] 
Merge pull request #469 from tuncer/fix-dialyzer-warnings

Fix dialyzer warnings