Version 0.15 ------------------------------------------------------------------------------- Jared Davis + Reworked Words file architecture to use hash map instead of binary search, which compresses the data file from 671kb to 385kb. This involved a fair bit of code reworking... - Eliminates FileArray class completely. - Fixed a tiny memory leak in WordsFile::~WordsFile. - Better exception safety in WordsFile constructor. - Better checking of words file to make sure it isn't corrupt. + Standardized copyright notices in headers. + Changed caiksaurus.c to be a .cpp file to fix some linking errors when using certain compilers. Version 0.14 ------------------------------------------------------------------------------- Jared Davis + Fix compiler errors on gcc-2.96 + Fix compiler errors on gcc-3.03 (namespace issues) + Add C Bindings Version 0.13 ------------------------------------------------------------------------------- Jared Davis Added missing exception specifications to WordStream.h. Moved strReplace code to WordsFile.cpp, fixed bug with similar() returning colons instead of spaces. Upgrade to automake 1.5, library can now intall stripped. Version 0.12 ------------------------------------------------------------------------------- Capitalization changed to Aiksaurus instead of AikSaurus. Jared Davis: Massive overhaul of datafiles, total rewrite of everything. This is a completely new thesaurus. Synonyms are now grouped into meanings classes. Reduced disk space to roughly 800k uncompressed. Expanded number of known words by about 40%. This is drastically better than before, but not compatible with previous versions. Modified Levon's automake stuff to work with the new library. Made CommandLineDemo an automatically-installing program named 'aiksaurus'. Added version and help information to this program. Version 0.11 ------------------------------------------------------------------------------- Jared Davis: Changed demo programs to operate out of AikSaurus default data directory so that they will be easy to move around your system. Version 0.10 ------------------------------------------------------------------------------- Jared Davis: Added count(), word() functions. Added overloaded next() function that doesn't return part-of-speech information. Version 0.09 ------------------------------------------------------------------------------- John Levon: Created an automake installer that is much nicer. This uses libtool to generate a shared library and then we just link against that. This is a massive improvement over the old makefile, and the first step towards platform independence. Fixed the StringLoopQueue.h file to correctly use namespace std:: which fixed compile errors on g++3. Version 0.08c ------------------------------------------------------------------------------- Jared Davis: Modified internal architecture not to rely on a fixed size buffer. It now dynamically allocates the string to return when you call next() or similar(). This should prevent any buffer overflow security issues and should make datafile generation a little less taxing. Version 0.08b ------------------------------------------------------------------------------- Jared Davis: Fixed a bug with the AikSaurusImpl class's find function... It was looking for the datafiles in the present working dir instead of using the data_dir like it's supposed to. Changed it to use the data_dir as a prefix. Version 0.08 ------------------------------------------------------------------------------- Jared Davis: Fixed the lame error handling in BZReader_Impl and put in much better error reporting. Generally cleaned up the class and added a debugging method. Cleared out headers that weren't needed but were being included anyway. Fixed segfaults on missing/damaged datafiles, and replaced with decent error reporting. Added 'similar words' functionality, to get known words that are alphabetically similar to the requested word. Useful for failed searches or even for successful ones. Version 0.07 ------------------------------------------------------------------------------- Jared Davis: Changed name to AikSaurus (used to be AbiSaurus) at request of SourceGear corporation. Version 0.06 ------------------------------------------------------------------------------- Jared Davis: Added "parts of speech" information to known words by running the thesaurus datafile against the Moby's parts of speech list from Project Guttenberg. Updated library to handle the additional information. Changed thesaurus to automatically perform searches in lower case, and converted all keys to lowercase. So, you won't get different results for "fool" over "Fool" anymore. Added pos support to command line demo interfaces. Now have two versions of the command line interface: one interactive, one non- interactive. (command line, single word at a time). Version 0.05 ------------------------------------------------------------------------------- Jared Davis: Rewrote thesaurus code and turned it into an actual library. The header file is very nice IMO, but the implementation's probably a little weak. That's ok, it's still early in the game, and it certainly seems to work well. Speed test gives on average .18 seconds per search + results display for text- based interface. Currently runs on Linux. My focus for next release will be ensuring portability between Windows and Linux, and improving the compilation/datafile generation process. Version 0.04 ------------------------------------------------------------------------------- Jared Davis: Investigated several compression techniques and even rolled my own, and was able to compress main thesaurus to about 5 megabytes, even with same architecture. Couldn't see any way under this. So, wrote a program to auto-delete all words in thesaurus not in /usr/share/dict/words on my mandrake 8 box. This yields a seemingly ok thesaurus with < 3 megs of datafiles. Will work to compress further. Same codebase as version 0.03. Planning to fork project here to have "big disk" and "small disk" versions for how much data you want. Version 0.03 ------------------------------------------------------------------------------- Jared Davis: Implemented massively better new architecture, wherein data is split into several files, which are stored bz2 compressed. Reduced disk space requirement to 8 megs. Load speed became imperceivable (massive improvement over 100+ second load times), and memory requirements reduced significantly. Search times a little bit slower, but still acceptable. Version 0.02 ------------------------------------------------------------------------------- Jared Davis: Slight improvements on implementation itself. Changed to sorted input into a std::vector. Reduced memory requirement to 30 megs. Load time and disk space unchanged. Version 0.01 ------------------------------------------------------------------------------- Jared Davis: Wrote very basic thesaurus program. Read in entire datafile into a std::map. Very bloated: 41 megs of memory allocated while running, took well over 100 seconds to load on a fast machine, 25 megs of datafile.