anchor.diff:  format_error(AbsSource, Extra, {Mod, Desc}) ->
       ErrorDesc = Mod:format_error(Desc),
       ?FMT("~s: ~s~s~n", [AbsSource, Extra, ErrorDesc]).
  +
  +maybe_absname(Config, Filename) ->
  +    case rebar_utils:processing_base_dir(Config) of
  +        true ->
  +            Filename;
  +        false ->
  +            filename:absname(Filename)
  +    end.
  
positive.code:         skipped ->
              ?INFO("Skipped ~s\n", [Source]);
          Error ->
              maybe_report(Error),
              ?DEBUG("Compilation failed: ~p\n", [Error]),
              ?FAIL
      end,
      compile_each(Rest, Config, CompileFn).
  
  compile_queue([], []) ->
      ok;
  compile_queue(Pids, Targets) ->
      receive
          {next, Worker} ->
              case Targets of
                  [] ->
                      Worker ! empty,
                      compile_queue(Pids, Targets);
                  [Source | Rest] ->
                      Worker ! {compile, Source},
                      compile_queue(Pids, Rest)
              end;
  
          {fail, Error} ->
              maybe_report(Error),
              ?DEBUG("Worker compilation failed: ~p\n", [Error]),
              ?FAIL;
  
negative.code:         {compiled, Source, Warnings} ->
              report(Warnings),
              ?CONSOLE("Compiled ~s\n", [Source]),
              compile_queue(Config, Pids, Targets);
  
          {compiled, Source} ->
              ?CONSOLE("Compiled ~s\n", [Source]),
              compile_queue(Config, Pids, Targets);
  
          {skipped, Source} ->
              ?INFO("Skipped ~s\n", [Source]),
              compile_queue(Config, Pids, Targets);
  
          {'DOWN', Mref, _, Pid, normal} ->
              ?DEBUG("Worker exited cleanly\n", []),
              Pids2 = lists:delete({Pid, Mref}, Pids),
              compile_queue(Config, Pids2, Targets);
  
          {'DOWN', _Mref, _, _Pid, Info} ->
              ?DEBUG("Worker failed: ~p\n", [Info]),
  