ack 2.16 is released

Skip to first unread message

Andy Lester

Mar 10, 2017, 3:07:44 PM3/10/17
to, ack development,
Please enjoy this release of ack. It's been a long time coming, and I apologize for that. ack is getting a resurgence of my time and there are some good new changes coming down the road.

Thanks for your use of ack. If you use something besides ack, that's great, too. There have been an explosion of other greplike tools that have come out recently. Visit the list at to see what else is out there. Use whatever best suits your needs.

2.16 Fri Mar 10 13:32:39 CST 2017
The -w has a confusing behavior that it's had since back to ack 1.x
that will be changing in the future. It's not changing in this
version, but this is a heads-up that it's coming.

ack -w is "match a whole word", and ack does this by putting turning
your PATTERN into \bPATTERN\b. So "ack -w foo" effectively becomes
"ack \bfoo\b". Handy.

The problem is that ack doesn't put a \b before PATTERN if it begins
with a non-word character, and won't put a \b after PATTERN if it
ends with a non-word character.

The problem is that if you're searching for "fool" or "foot", but
only as a word, and you do "ack -w foo[lt]" or "ack -w (fool|foot)",
you'll get matches for "football and foolish" which certainly should
not match if you're using -w.

Include .cljs, .cljc and .edn files with the --clojure filetype. Thanks,
Austin Chamberlin.

Added .xsd to the --xml filetype. Thanks, Nick Morrott.

Added support for Swift language. Thanks, Nikolaj Schumacher. (GH #512)

The MSYS2 project is now seen as Windows. Thanks, Ray Donnelly. (GH #450)

Expand the definition of OCaml files. Thanks, Marek Kubica. (GH #511)

Add support for Groovy Server Pages. Thanks, Ethan Mallove. (GH #469)

The JSP filetype (--jsp) now recognizes .jspf files. Thanks, Sebastien
Feugere. (GH #586)

Added --hpp option for C++ header files. Thankis, Steffen Jaeckel.

ack now supports --ignore-dir=match:.... Thanks, Ailin Nemui! (GitHub ticket #42)

ack also supports --ignore-dir=ext:..., and --noignore-dir supports match/ext as well

Reverted an optimization to make \s work properly again. (GH #572,
GH #571, GH #562, GH #491, GH #498)

The -l and -c flags would sometimes return inaccurate results due to
a bug introduced in 2.14. Thanks to Elliot Shank for the report! (GH #491)

Behavior when using newlines in a search was inconsistent. Thanks to Yves Chevallier
for the report! (GH #522)

Don't ignore directories that are specified as command line targets (GH #524)

Fix a bug where a regular expression that matches the empty string could cause ack
to go into an infinite loop (GH #542)

Add minimal requirement of Getopt::Long 2.38, not 2.35, for GetOptionsFromString.

Added test to test --output. Thanks, Varadinsky! (GH #587, GH #590)

Added test to make sure subdirs of target subdirs are ignored if
--ignore-dir applies to them. Thanks, Pete Houston. (GH #570)

Many optimizations and code cleanups. Thanks, Stephan Hohe.

Fixed an out-of-date FAQ entry. Thanks, Jakub Wilk. (GH #580)

Expanded the explanation of how the -w flag works. Thanks, Ed Avis.
(GH #585)

Andy Lester =>

Reply all
Reply to author
0 new messages