Skip to content

Commit

Permalink
Ready for 0.3.0 release. Resolves #98.
Browse files Browse the repository at this point in the history
* feature/ISSUE98-Prep0.3.0: (40 commits)
  Final mod.
  Updated TOC.
  Interim.
  Interim.
  Interim.
  Interim.
  Interim.
  Interim.
  More README.md work.
  More README.md prep.
  Interim.  README and NEWS updates.
  Interim/misc.  Added installed ripgrep to benchmark suite.
  Interim.
  Updates to make "make check" a little less verbose in the everything-passed case.
  Interim.  Building on Fedora 23/24/25/rawhide on x86-64.
  Log collection.
  Added PCRE info to summary.
  Removed some obsolete code.
  Added m4 macro "kpse-common.m4" from the TexLive project <http://tug.org/svn/texlive/trunk/Build/source/m4/kpse-common.m4?revision=37503&view=co> .  Allows us to make autoconf use the C/C++ compilers we find in its own checks e.g. AC_SEARCH_LIBS().
  Interim.
  ...
  • Loading branch information
gvansickle committed Oct 24, 2016
2 parents 6415bba + c0f3981 commit b3fd7a4
Show file tree
Hide file tree
Showing 23 changed files with 1,110 additions and 454 deletions.
23 changes: 16 additions & 7 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ libtool: $(LIBTOOL_DEPS)
bin_PROGRAMS=ucg
ucg_SOURCES=main.cpp build_info.h
nodist_ucg_SOURCES=build_info.cpp
CLEANFILES+=build_info.cpp
ucg_CPPFLAGS = -I $(top_srcdir)/src $(AM_CPPFLAGS)
ucg_CFLAGS = $(AM_CFLAGS)
ucg_CXXFLAGS = $(AM_CXXFLAGS)
CLEANFILES += build_info.cpp
ucg_CPPFLAGS = -I $(top_srcdir)/src $(AM_CPPFLAGS) $(PCRE_CPPFLAGS) $(PCRE2_CPPFLAGS)
ucg_CFLAGS = $(AM_CFLAGS) $(PCRE_CFLAGS) $(PCRE2_CFLAGS)
ucg_CXXFLAGS = $(AM_CXXFLAGS) $(PCRE_CFLAGS) $(PCRE2_CFLAGS)
ucg_LDFLAGS = $(AM_LDFLAGS)
ucg_LDADD = ./src/libsrc.la ./src/libext/libext.la ./src/future/libfuture.la
ucg_LDADD = ./src/libsrc.la ./src/libext/libext.la ./src/future/libfuture.la $(PCRE_LIBS) $(PCRE2_LIBS)

# Collect some make-time info.
FORCE:
Expand Down Expand Up @@ -84,6 +84,11 @@ verify-provenance:
exit 1; \
fi;

# Valgrind rules.
# @todo Note that this expands to GNU-make-only constructs, which fails on the BSDs.
#@VALGRIND_CHECK_RULES@
#VALGRIND_SUPPRESSIONS_FILES = ## No suppressions currently.
#EXTRA_DIST = ## No suppressions currently.

# Doxygen rules
@DX_RULES@
Expand All @@ -94,6 +99,10 @@ MOSTLYCLEANFILES+=$(DX_CLEANFILES)
## Distribution. ##
## ------------- ##

# .tarball-version should only ever exist in a distribution tarball.
# Hook the "make dist" target to generate a ".tarball-version" file in the root dir of the tarball.
# This .tarball-version file contains the repo version info corresponding to the repo from which the tarball was
# built. It should only ever exist in a distribution tarball (and the source tree extracted from that tarball).
# if it for some reason exists in the working directory of a repo, that's an error, and it will be caught above in the
# "verify-provenance" rule.
dist-hook:
echo -n "$$(cd $(top_srcdir) && git describe --long --dirty | tr -d '\r\n')-tarball" > "$(distdir)/.tarball-version"
$(ECHO_N) "$$(cd $(top_srcdir) && git describe --long --dirty --always | tr -d '\r\n')-tarball" > "$(distdir)/.tarball-version"
15 changes: 10 additions & 5 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
# NEWS file for the UniversalCodeGrep project.

## [UNRELEASED]
## [0.3.0] - 2016-10-23

Major feature/bugfix release of UniversalCodeGrep (ucg).

### New Features
- 20-30% faster than ucg 0.2.2 on most benchmarks.
- New file inclusion/exclusion options:
- `ack`-style `--ignore-file=FILTER:FILTERARGS`: Files matching FILTER:FILTERARGS (e.g. "ext:txt,cpp") will be ignored.
- `grep`-style `--include=GLOB`: Only files matching GLOB will be searched.
- `grep`-style `--exclude=GLOB`: Files matching GLOB will be ignored.
- `ag`-style `--ignore=GLOB`: Files matching GLOB will be ignored. Note that unlike `ag`'s option, this does not apply to directories).
- Files and directories specified on the command line (including hidden files) are now scanned regardless of ignore settings, and in the case of files, whether they are recognized as text files.
- `--TYPE`- and `--noTYPE`-style options now support unique-prefix matching. E.g., `--py`, `--pyth`, and `--python` all select the Python file type.
- OSX and PC-BSD now supported.
- `--TYPE`- and `--noTYPE`-style options now support unique-prefix matching. E.g., `--py`, `--pyth`, and `--python` all select the Python file type.
- New file type filter: `glob`. E.g. '--type-set=mk:glob:?akefile*'.
- OS X and some *BSDs now supported. Builds and runs on Xcode 6.1/OS X 10.9 through Xcode 8gm/OS X 10.11.
- Now compiles and links with either or both of libpcre and libpcre2, if available. Defaults to using libpcre2 for matching.
- Directory tree traversal now uses more than one thread (two by default). Can be overridden with new "--dirjobs" command-line parameter. Overall performance improvement on all platforms vs. 0.2.2 (e.g., ~25% on Fedora 23 with hot cache).
- New portable function multiversioning infrastructure. Currently used by the following features:
Expand All @@ -24,8 +28,8 @@
- Scanner threads now use a reusable buffer when reading in files, reducing memory allocations by ~10% (and ~40% fewer bytes allocated) compared to version 0.2.2.
- Refactored FileScanner to be a base class with derived classes handling the particulars of using libpcre or libpcre2 to do the scanning.
- Added a basic diagnostic/debug logging facility.
- ResizableArray now aligns allocations to 64-byte boundaries to match Core i7 cache line sizes in an effort to prevent false sharing.
- Performance/Benchmarking infrastructure and test expansion and improvements.
- ResizableArray now takes an alignment parameter. File buffer allocations are now done on max(ST_BLKSIZE,128k)-byte boundaries.
- Testing/Benchmarking infrastructure expansion and improvements.

### Fixed
- Cygwin now requires AC_USE_SYSTEM_EXTENSIONS for access to get_current_dir_name(). Resolves #76.
Expand All @@ -34,6 +38,7 @@
- Resolved segfaults on some systems due to dirname() modifying its parameter. Resolves #96.
- No longer treating PCRE2 reporting no JIT support as an error. Resolves #100.


## [0.2.2] - 2016-04-09

Minor feature/bugfix release of UniversalCodeGrep (ucg).
Expand Down
Loading

0 comments on commit b3fd7a4

Please sign in to comment.