ANNOUNCE: DJGPP port of GNU Gperf 3.0.1

ANNOUNCE: DJGPP port of GNU Gperf 3.0.1

Post by Juan Manuel Guerrer » Fri, 25 Jul 2003 06:56:20



  This is a port of GNU Gperf 3.0.1 to MSDOS/DJGPP.

  The binaries, docs and surces can be downloaded from delorie.com as:

    <ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gprf301b.zip>
    <ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gprf301d.zip>
    <ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gprf301s.zip>

  GNU gperf is a program that generates perfect hash functions for sets
  of key words.  A perfect hash function is:
    A hash function and a data structure that allows
    recognition of a key word in a set of words using
    exactly 1 probe into the data structure.

  The gperf.info and gperf.html files explain how the program works,
  the form of the input, what options are available, and hints on choosing
  the best options for particular key words set.
  See the file NEWS for a list of major changes in the current release.

  DJGPP specific changes.
  =======================

  There are no DJGPP specific changes to the sources at all.
  Only a couple of testsuit files need a minor changes to get the testsuit
  working under Win9X/MSDOS. The changes are performed by tscript.sed.
  I have only added the usual DJGPP subdirectory, that contains the batch
  file and sed scripts needed to configure, compile and test the package.

  Some remarks about building the binaries from sources.
  ======================================================

  Please not that source code is almost completely written in C++,
  so you will need to install the C++ compiler if you want to re-
  compile the sources.

  See the readme file in the DJGPP subdir for a complete list of the
  required packages.

  If you run the testsuit with the command 'make check' you will get
  output lines similar to this one:

./src/gperf -p -D -k1,'$' -s 2 -o ./adadefs.gperf > preinset.c
1 input keys have identical hash values, examine output carefully...

  This is neither a bug in the DJGPP port nor in the original gperf sources.
  The above warning is triggered by the '-D' option that allows to build
  non-perfect hash tables, i.e with collisions.

  There is a second issue that should be observed: If the testsuit breaks
  because the lu2out.exe program dies with a SISEGV, then you have used
  an unzip program that "silently" transforms UNIX-style EOL into
  MSDOS-style EOL (this is typical for WinZIP). This implies that the
  file lang-ucs2.in has been corrupted. This is a **binary** file that
  should not be modified. In this case unzip the sources again, this time
  using djtar.exe, in some temporary directory an replace the broken
  lang-ucs2.in with the new one and run the command 'make check' again.
  No test of the testsuit should fail.

  Please read the docs to become familiar with this binary.



  Send suggestions and bug reports concerning the DJGPP port to

Enjoy.