ack 2.999_01 has been released to beta. It is feature complete, but we still will be working on speed improvements. Compare ack's features to other grep-like programs in our handy feature comparison chart.
The beta is currently available via the Perl CPAN, or you can download a single Perl program.
A new option --proximate=N groups together lines of output that are within N lines of each other in the file. This is useful when looking for matches that are related to each other.
For example, these results:
15: First match 18: Second match 19: Third match 37: Fourth match
would look like this with --proximate=1.
15: First match 18: Second match 19: Third match 37: Fourth match
The -w option, which tells ack to only find whole-word matches, did not always work if your pattern began or ended with puncutation. ack would make guesses as to what your intent was, but it was not well-defined. Now, ack disallows regexes that begin or end with non-word characters.
This means that if you use ack -w foo:, the new ack will not allow it, whereas ack 2.x would.
For those without --smart-case always on, the -S will be easier for when you do want to use it.
Smart-case matching makes ack do a case-insensitive search unless the pattern being matched has a capital letter in it.
If you use --smart-case in your .ackrc, you can use -I to force case-sensitivity instead of having to use --no-smart-case (which still works).
ack had infrastructure for allowing plugins, but that infrastructure was never used, and has now been removed. This has minor speedups now, and will allow greater speedups in the future.