The new version v3.3.0 of the greplike code search tool ack has been released.

The error message ack displays when the regex passed is invalid has been improved. The message is more readable and includes a pointer to the offending part of the regex. For example:

$ ack 'status: (open|closed|in progress'
ack: Invalid regex 'status: (open|closed|in progress'
Regex: status: (open|closed|in progress
               ^---HERE Unmatched ( in regex

ack v3.3.0 also added new file and directory exclusions to speed up file selection.

  • Python’s *.pyc, *.pyd and *.pyo compiled files
  • Python’s __pycache__ and .pytest_cache directories
  • Linux *.so shared object files
  • Windows *.dll dynamic-link library files
  • gettext *.mo compiled translation files
  • macOS’s __MACOSX directories and .DS_Store files

For a complete list of changes, see the ack 3 changelog.