1.4.6
   * fixed a bug in the ldif parser which prevented the last entry
     in an ldif file from being read.
   * added an unbind method to ldapcon, for explicit deallocation of
     sockets.
   * added a finalisation function to ldapcon which calls unbind.
     It IS safe to call unbind explicitly, the object will handle
     the case that it is unbound twice gracefully.
   * fixed a bug in delete service which could cause it not to delete
     all the attribute values that it should.
1.4.5
   * fixed a bug in transparent reconnections which would cause an
     infinite loop.
1.4.4
   * exposed an exception called "Cannot_sort_dependancies of string list" 
   which indicates that circular dependancies have been detected among
   the attributes of the list. The exception will be raised when calling
   the generate method of an ldapaccount
1.4.3
   * changed the way the delta between an object and a service is computed.
   Instead of always doing a case sensitive match of the attribute values
   we now look up the matching rule in the schema and try to apply something
   close. We currently understand objectIdentifierMatch, and 
   caseExactIA5Match. I will probably add more later.
1.4.2
   * adds modrdn support in ooldap, which was horribly omitted previously
   * fixed a bug in the service code with respect to single valued
     attributes, and static service attributes. Previously, an object
     which needed to have a static attribute to satisfy a service would
     always get it be adding a second value. This won't work for single
     value attributes for obvious reasons. The fix is to check if the
     attribute is single valued, and if it is, replace it, otherwise, add it.
1.4.1
   * fixes a bug in the schema parser. X-.* attributes were not previously
     supported. 1.4.1 adds support for them.
1.4.0
   * added two new classes to the Ooldap module.
     - scldapentry understands the directory schema, and makes use of it
       in various ways. It is a subclass of ldapentry
     - ldapaccount is built on top of scldapentry. It understands the schema,
       and how to generate certian attributes (based on functions you give it).
       It also has a the ability to group attributes together into things it calls
       services, which can be added and removed atomically.
1.3.2
   * fixed massive memory leaks in the search C glue code
1.3.1
   * fixed some serious bugs in the C glue code which could cause
     the garbage collector to go nuts.
   * performance improvements in the way entry objects are arranged
     this will improve performance for searching, local modifications
     and the ldif parser. I haven't done another test, but the ldif
     parser spitting out entries is most likely just as fast as the
     engine (~26s for a 50MB ldif file on a PPC7450 800Mhz).
1.3.0
   * Added an rfc2252 schema parser, and an interface to grab schema's
     from the server, see ooldap.mli, the method schema. See
     schemaparser.ml for the structure of the record returned.
   * performance enhancements to the ldif parser, ~3x improvement in
     parseing speed. Native code can parse a 50MB ldif file in ~38 seconds,
     bytecode takes about 1m45s for the same file. Obviously different files
     yeild different results. There is further room for improvement in the
     building of the entry objects. The engine alone in native code parses
     the 50MB file in ~26 seconds, so the rest is the overhead of building the
     entry objects. All tests were performed on an 800Mhz G4.
   * Fixed a bug with update_entry which caused changes to be applied in
     reverse order. This often breaks the symantics when replace is involved.
1.2.0
    * Added support for transparently reconnecting to servers which have dropped
      the connection. Often servers will have an idle time out for connections. This is
      avaliable in the object oriented api only. It should create the illusion that the
      connection was never dropped. It can also be usefull in the case where one server in
      a failover cluster goes down. As long as something is there to take its place, the
      user of the api will never know that a server went down. This feature is experimental,
      but should work :). This is great for interactive sessions.
    * Added a standards compliant ldif parser. You can send it a
      stream of ldif, and by calling a method, get back an ldapentry
      object. See ooldif.mli for details. The known bugs are, its a bit
      slow, and it won't do anything with base64 encoded values. If you wish
      to decode them, do it yourself for now. Things of note, the parser is "picky"
      in that it tries to follow the rfc to the letter, it will generally not accept
      malformed ldif. Some users may consider that annoying, but we actually used it
      to find several errors in our directory server :), so it has advantages too.
    * Changed make dep to preprecess using cpp instead of camlp4o, due to strange
      undocumented changes in 3.07. I really need to look into this and fix it.
    * Changed the get_value method of ldapentry to raise Not_found instead of return
      the empty list when it is queried for an attribute which doesn't exist. Please complain
      if this annoys you.

1.1.2
    * Added a patch from Sylvain Le Gall to ease packaging for debian.
    * Added another patch from Sylvain Le Gall which adds support for
      making documentation with ocamldoc.

1.1.1
    * fixed the makefile to properly honor CFLAGS. This makes
      it possible to build on systems where the ldap libraries
      are in a nonstandard place
    * added findlib support. make install now installs a package
      called "ocamldap".

1.1.0
    * Eric Stokes has taken over maintanence of the project
    * added a new object oriented interface modeled after 
      Net::LDAP in perl.
    * added an optional argument to init which allows
      selection of the protocal version. It defaults to 3.

1.0
    * added fixes from Eric Stokes:
    * added make dep to build dependencies
    * modified print_entry to print more ldif like output
     (it does not break up long lines correctly yet)

0.3.1
    * added fixes from Eric Stokes:
    * updated varcc with the latest version from labgtk
    * fixed ocamldap_tags.var to work with the new varcc
    * changed build scripts to allow compilation under 3.06
    * added ifdefs to remove kerberos support if not avaliable

0.3
    * added kerberos binding methods
    * added modrdn methods
    * most function arguments are lists now
    * fixed crash bug in search_s
    
0.2
    * add, modify, and delete are implemented
    * all ldap error codes are supported with the help of varcc
    * silly bugs fixed in bind and unbind

0.1 
    * first Release
    * only synchronous searches are supported
