I have just go through code and spot some places which I think can be simplified and improved little bit.
Please review and pull.
With best regards
Transform lists:reverse(X) ++ Y to lists:reverse(X, Y)
It's 10-50% faster (typically 25-40%) and halves memory GC pressure.
It has small effect to overall performance (26.9s vs 28.7s in proper_tests)
but low hanging fruit and just bothers me.
Simplify zip/2 function.
Tail call recursion + lists:reverse/1 is no longer fastest on all
Process parallel job results in same order.
First spawned processes should be scheduled in same order and also they
results or fails will be in same order in message queue. This code is
simpler and makes more efficient processing of results or killing in error
Simplify add_exports/1 transformation.
Thanks for your pull requet. All parts of it with the exception of the zip/2 change are clear improvements.
We could discuss/argue about the zip/2 change, but I have better things to do...
I will merge it as is. Thanks again!