This reduces the execution time of gperf on large inputs by ca. 30%.
* autogen.sh (GNULIB_MODULES): Add map-c++, hash-map.
* src/keyword.h: Include <stddef.h>.
(struct KeywordExt): Add fields _undetermined_chars,
_undetermined_chars_length, _undetermined_chars_hashcode.
* src/search.cc: Include gl_map.hh, gl_hash_map.h.
(Search::prepare_asso_values): Initialize the _undetermined_chars field.
(struct EquivalenceClass): Remove the fields _undetermined_chars,
_undetermined_chars_length.
(undetermined_equals, undetermined_hashcode): New functions.
(Search::compute_partition): Initialize the _undetermined_chars* fields
of all keywords. Use a hash map instead of a loop over the equivalence
classes.
(Search::find_good_asso_values): Deallocate the _undetermined_chars field.
* .gitmodules: New file.
* gitsub.sh: New file, from gnulib/top/gitsub.sh.
* autopull.sh: Use gitsub.sh to check out gnulib.
* autogen.sh: Accept --skip-gnulib option. Invoke gnulib-tool, assuming
a gnulib checkout is already present.
* Makefile.devel (lib/aclocal.m4): Update reference to macros directory.
* lib/configure.ac: Likewise. Invoke gl_EARLY, gl_INIT.
* lib/Makefile.am (EXTRA_DIST, MOSTLYCLEANFILES): New variables.
Include Makefile.gnulib.