Version 0.9.0
[ocaml-ancient.git] / README.txt
index 42159e6..e2d9103 100644 (file)
@@ -1,6 +1,5 @@
 'Ancient' module for OCaml
 ----------------------------------------------------------------------
-$Id: README.txt,v 1.3 2006-10-13 12:28:20 rich Exp $
 
 What does this module do?
 ----------------------------------------------------------------------
@@ -67,6 +66,9 @@ uses the Ancient module:
 Example
 ----------------------------------------------------------------------
 
+XXX Note the example code is really stupid, and fails for large
+dictionaries.  See bug (10) below.
+
 Run:
 
   ulimit -s unlimited
@@ -188,6 +190,11 @@ which avoids loading unused fields at all.  In some circumstances we
 have shown that this could make a huge difference to performance, but
 we are not sure how to implement this cleanly in the current library.
 
+[Update: I have fixed issue 6 manually for my Weblogs example and
+confirmed that it does make a huge difference to performance, although
+at considerable extra code complexity.  Interested people can see the
+weblogs library, file import_weblogs_ancient.ml.in].
+
 (7) [Advanced topic] Certain techniques such as Address Space
 Randomisation (http://lwn.net/Articles/121845/) are probably not
 compatible with the Ancient module and shared files.  Because the
@@ -232,6 +239,13 @@ they are OK.
 
 The solution to this bug is non-trivial.
 
+(10) Example code is very stupid.  It fails with large dictionaries,
+eg. the one with nearly 500,000 words found in Fedora.
+
+(11) In function 'mark', the "// Ran out of memory.  Recover and throw
+an exception." codepath actually fails if you use it - segfaulting
+inside do_restore.
+
 Authors
 ----------------------------------------------------------------------