Message-Id: <200011132009.PAA15967@delorie.com> From: "Juan Manuel Guerrero" Organization: Darmstadt University of Technology To: djgpp-announce AT delorie DOT com Date: Mon, 13 Nov 2000 20:56:56 +0200 Content-type: text/plain; charset=US-ASCII Subject: ANNOUNCE: DJGPP port of GNU Gperf 2.7.2 Reply-To: djgpp AT delorie DOT com This is a port of GNU Gperf 2.7.2 to MSDOS/DJGPP. The binaries, docs and surces can be downloaded from SimTel.NET and mirrors as: 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 the C++ compiler, the C++ library and the C++ driver (gxx) included in the djdev203.zip package. This are: gcc2952b.zip, gpp2952b.zip, lgp2952b.zip and djdev203.zip. This packages can be found, together with all the other packages needed to build the binaries, in the v2gnu directory of any Simtel.NET mirror. 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. Thanks to Bruno Haible (author/maintainer of GNU Gperf 2.7.2) for clarifying this issue. 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. The only warnings that will be issued by the testsuit are the followings: ../src/gperf -p -D -k1,'$' -s 2 -o ./adadefs.gperf > preinset.c 1 input keys have identical hash values, examine output carefully... ../src/gperf -L C -F ', 0, 0, 0' -D -E -S1 -p -j1 -i 1 -g -o -t -k'*' < ./chill.gperf > chill.out 6 input keys have identical hash values, examine output carefully... ../src/gperf -D -p -t < ./c-parse.gperf > test-4.out 8 input keys have identical hash values, examine output carefully... This warnings, as explained above, can be ignored. Please read the docs to become familiar with this binary. Send gperf specific bug reports to and to . Send suggestions and bug reports concerning the DJGPP port to comp.os.msdos.djgpp or . Enjoy. Guerrero, Juan Manuel