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