1Version 0.15 2------------------------------------------------------------------------------- 3 4 Jared Davis 5 6 + Reworked Words file architecture to use hash map instead of 7 binary search, which compresses the data file from 671kb to 8 385kb. This involved a fair bit of code reworking... 9 10 - Eliminates FileArray class completely. 11 12 - Fixed a tiny memory leak in WordsFile::~WordsFile. 13 14 - Better exception safety in WordsFile constructor. 15 16 - Better checking of words file to make sure it isn't corrupt. 17 18 + Standardized copyright notices in headers. 19 20 + Changed caiksaurus.c to be a .cpp file to fix some linking errors 21 when using certain compilers. 22 23 24Version 0.14 25------------------------------------------------------------------------------- 26 27 Jared Davis 28 29 + Fix compiler errors on gcc-2.96 30 + Fix compiler errors on gcc-3.03 (namespace issues) 31 + Add C Bindings 32 33 34Version 0.13 35------------------------------------------------------------------------------- 36 37 Jared Davis 38 39 Added missing exception specifications to WordStream.h. 40 41 Moved strReplace code to WordsFile.cpp, fixed bug with similar() 42 returning colons instead of spaces. 43 44 Upgrade to automake 1.5, library can now intall stripped. 45 46 47Version 0.12 48------------------------------------------------------------------------------- 49 Capitalization changed to Aiksaurus instead of AikSaurus. 50 51 Jared Davis: 52 53 Massive overhaul of datafiles, total rewrite of everything. 54 This is a completely new thesaurus. Synonyms are now grouped 55 into meanings classes. Reduced disk space to roughly 800k 56 uncompressed. Expanded number of known words by about 40%. 57 This is drastically better than before, but not compatible 58 with previous versions. 59 60 Modified Levon's automake stuff to work with the new library. 61 Made CommandLineDemo an automatically-installing program 62 named 'aiksaurus'. Added version and help information to this 63 program. 64 65 66Version 0.11 67------------------------------------------------------------------------------- 68 Jared Davis: 69 70 Changed demo programs to operate out of AikSaurus default data directory 71 so that they will be easy to move around your system. 72 73 74Version 0.10 75------------------------------------------------------------------------------- 76 Jared Davis: 77 78 Added count(), word() functions. 79 80 Added overloaded next() function that doesn't return part-of-speech 81 information. 82 83 84Version 0.09 85------------------------------------------------------------------------------- 86 John Levon: 87 88 Created an automake installer that is much nicer. This uses libtool 89 to generate a shared library and then we just link against that. 90 91 This is a massive improvement over the old makefile, and the first 92 step towards platform independence. 93 94 Fixed the StringLoopQueue.h file to correctly use namespace std:: 95 which fixed compile errors on g++3. 96 97 98Version 0.08c 99------------------------------------------------------------------------------- 100 Jared Davis: 101 102 Modified internal architecture not to rely on a fixed size buffer. 103 It now dynamically allocates the string to return when you call 104 next() or similar(). 105 106 This should prevent any buffer overflow security issues and should 107 make datafile generation a little less taxing. 108 109 110Version 0.08b 111------------------------------------------------------------------------------- 112 Jared Davis: 113 114 Fixed a bug with the AikSaurusImpl class's find function... 115 116 It was looking for the datafiles in the present working dir 117 instead of using the data_dir like it's supposed to. Changed 118 it to use the data_dir as a prefix. 119 120 121 122Version 0.08 123------------------------------------------------------------------------------- 124 Jared Davis: 125 126 Fixed the lame error handling in BZReader_Impl and put in much better 127 error reporting. Generally cleaned up the class and added a debugging 128 method. Cleared out headers that weren't needed but were being 129 included anyway. Fixed segfaults on missing/damaged datafiles, 130 and replaced with decent error reporting. 131 132 Added 'similar words' functionality, to get known words that are 133 alphabetically similar to the requested word. Useful for failed 134 searches or even for successful ones. 135 136 137Version 0.07 138------------------------------------------------------------------------------- 139 Jared Davis: 140 141 Changed name to AikSaurus (used to be AbiSaurus) at request of 142 SourceGear corporation. 143 144 145Version 0.06 146------------------------------------------------------------------------------- 147 Jared Davis: 148 149 Added "parts of speech" information to known words by running 150 the thesaurus datafile against the Moby's parts of speech list from 151 Project Guttenberg. Updated library to handle the additional 152 information. 153 154 Changed thesaurus to automatically perform searches in lower case, 155 and converted all keys to lowercase. So, you won't get different 156 results for "fool" over "Fool" anymore. 157 158 Added pos support to command line demo interfaces. Now have two 159 versions of the command line interface: one interactive, one non- 160 interactive. (command line, single word at a time). 161 162 163Version 0.05 164------------------------------------------------------------------------------- 165 Jared Davis: 166 Rewrote thesaurus code and turned it into an actual library. 167 The header file is very nice IMO, but the implementation's 168 probably a little weak. That's ok, it's still early in the 169 game, and it certainly seems to work well. Speed test gives 170 on average .18 seconds per search + results display for text- 171 based interface. Currently runs on Linux. My focus for next 172 release will be ensuring portability between Windows and Linux, 173 and improving the compilation/datafile generation process. 174 175 176Version 0.04 177------------------------------------------------------------------------------- 178 Jared Davis: 179 180 Investigated several compression techniques and even rolled 181 my own, and was able to compress main thesaurus to about 5 182 megabytes, even with same architecture. Couldn't see any 183 way under this. So, wrote a program to auto-delete all words 184 in thesaurus not in /usr/share/dict/words on my mandrake 8 box. 185 This yields a seemingly ok thesaurus with < 3 megs of datafiles. 186 Will work to compress further. Same codebase as version 0.03. 187 Planning to fork project here to have "big disk" and "small disk" 188 versions for how much data you want. 189 190 191Version 0.03 192------------------------------------------------------------------------------- 193 Jared Davis: 194 195 Implemented massively better new architecture, wherein 196 data is split into several files, which are stored bz2 197 compressed. Reduced disk space requirement to 8 megs. 198 Load speed became imperceivable (massive improvement 199 over 100+ second load times), and memory requirements 200 reduced significantly. Search times a little bit slower, 201 but still acceptable. 202 203 204Version 0.02 205------------------------------------------------------------------------------- 206 Jared Davis: 207 208 Slight improvements on implementation itself. 209 Changed to sorted input into a std::vector. 210 Reduced memory requirement to 30 megs. Load time and 211 disk space unchanged. 212 213 214Version 0.01 215------------------------------------------------------------------------------- 216 Jared Davis: 217 218 Wrote very basic thesaurus program. 219 Read in entire datafile into a std::map. 220 Very bloated: 41 megs of memory allocated while running, 221 took well over 100 seconds to load on a fast machine, 25 222 megs of datafile. 223