ChangeLog ========= This file contains a listing of modifications to libast in CVS on a per-commit basis. Dates are included, as are the names and userid's of the people making the changes. Contributors: mej - Michael Jennings ("KainX") ---------------------------------------------------------------------- Thu Nov 9 19:09:48 PST 2000 Michael Jennings (mej) Added name- and version-setting functions since we can't just use PACKAGE and VERSION any more. ---------------------------------------------------------------------- Thu Nov 9 19:19:31 PST 2000 Michael Jennings (mej) It usually helps if you finish writing the code BEFORE you commit it. ---------------------------------------------------------------------- Thu Nov 16 16:38:55 PST 2000 Michael Jennings (mej) Insure++ found a small logic error here that could result in a tiny leak under certain circumstances. ---------------------------------------------------------------------- Tue Jan 2 18:22:25 PST 2001 Michael Jennings (mej) Added file.c for any file routines I write. The first one is a secure temp file generator. If portability issues arise from non-POSIX systems, they will be addressed here. ---------------------------------------------------------------------- Mon May 7 19:08:45 PDT 2001 Michael Jennings (mej) I have created a testbed for libast. You can now run "make test" to run a series of tests which will test some of the functionality of the library. I didn't finish all the tests I'll eventually have; I just wanted to get the stuff that's immediately important. I also added a new split() function, which functions somewhat like its Perl counterpart, although there are differences. This function will be used in the remaining Eterm work I must do before release. ---------------------------------------------------------------------- Mon May 7 22:16:11 PDT 2001 Michael Jennings (mej) Moved chomp() to libast. It's awfully handy. ---------------------------------------------------------------------- Tue May 8 19:51:51 PDT 2001 Michael Jennings (mej) Added two more convenience functions: join(), also borrowed from Perl, and free_array() for freeing lists. I also threw in a USE_VAR() macro for getting rid of bogus unused variable warnings. ---------------------------------------------------------------------- Wed May 9 17:20:46 PDT 2001 Michael Jennings (mej) Better handling of NULL values all around. ---------------------------------------------------------------------- Thu May 17 10:27:02 PDT 2001 Michael Jennings (mej) Fixed "make distcheck." ---------------------------------------------------------------------- Mon Jun 11 16:57:40 PDT 2001 Michael Jennings (mej) I moved the config file code from Eterm to libast. I also relocated some of the generic macros (MIN(), MAX(), BOUND(), etc.). Version up to 0.3 now. ---------------------------------------------------------------------- Fri Jun 15 16:50:54 PDT 2001 Michael Jennings (mej) Cleaned up spec file in preparation for release. ---------------------------------------------------------------------- Fri Jun 15 17:31:34 2001 Michael Jennings (mej) Converted the ChangeLog to Avalon's log format. Yay! :-) ---------------------------------------------------------------------- Fri Jun 15 23:40:45 2001 Michael Jennings (mej) Moved the parsing of each config file line into a separate function. You'll see why in a moment. ---------------------------------------------------------------------- Mon Jun 18 13:49:24 2001 Michael Jennings (mej) Oops. ChangeLog entries were ending up in the bit-bucket. Fixed and re-synced. :) ---------------------------------------------------------------------- Fri Jun 29 10:02:34 2001 Michael Jennings (mej) I think we can call this finished. ---------------------------------------------------------------------- Mon Jul 23 18:01:37 2001 Michael Jennings (mej) Well that was dumb. Comments are supposed to be *ignored*. :P ---------------------------------------------------------------------- Mon Jul 23 23:25:13 2001 Michael Jennings (mej) Damnit. It was screwing up on blank lines too. >:I ---------------------------------------------------------------------- Sat Sep 22 09:24:41 2001 Michael Jennings (mej) Fixed a compilation issue on some systems where libX11 would not be linked in with the test program. This is libast 0.4. ---------------------------------------------------------------------- Mon Jan 21 18:02:20 2002 Michael Jennings (mej) Don't try this at home. This package has been discombobulated by trained professionals. ---------------------------------------------------------------------- Tue Feb 12 00:03:12 2002 Michael Jennings (mej) Please ignore the warnings during compile. I didn't want to check this in just yet, but I kinda broke Eterm and committed it. :( ---------------------------------------------------------------------- Tue Feb 12 00:23:36 2002 Michael Jennings (mej) ...and then I came to my senses.... :-P ---------------------------------------------------------------------- Tue Feb 12 10:40:37 2002 Michael Jennings (mej) Still not fleshed out, but at least the warnings are gone. :-) ---------------------------------------------------------------------- Sun Feb 17 12:10:59 2002 Michael Jennings (mej) Hopefully now this will make more sense. The string class is now fleshed out...along with a complete set of unit tests. :) ---------------------------------------------------------------------- Mon Feb 18 21:54:25 2002 Michael Jennings (mej) Mmmmm...reusability. :-) ---------------------------------------------------------------------- Sun Mar 3 01:44:51 2002 Michael Jennings (mej) Added precision to the profiling stuff, and threw in the beginnings of support for interface classes. ---------------------------------------------------------------------- Thu Apr 4 20:45:30 2002 Michael Jennings (mej) Lots of updates. This should compile, but if it doesn't, don't blame me. (Well, blame me, just don't whine at me.) :-) Also a bit of a design doc here...hopefully it will clarify some things. ---------------------------------------------------------------------- Thu Apr 4 21:13:01 2002 Michael Jennings (mej) Re-indenting code. ---------------------------------------------------------------------- Thu Apr 4 22:24:36 2002 Michael Jennings (mej) Oops... ---------------------------------------------------------------------- Thu Apr 11 18:03:46 2002 Michael Jennings (mej) The list interface is complete (for now) as is its first implementation: the linked_list class. Unit tests are also in. ---------------------------------------------------------------------- Thu Apr 11 18:15:11 2002 Michael Jennings (mej) Fix "make distcheck" ---------------------------------------------------------------------- Thu Apr 11 23:47:26 2002 Michael Jennings (mej) Not needed... ---------------------------------------------------------------------- Mon Apr 15 23:50:40 2002 Michael Jennings (mej) A doubly-linked list implementation of the list interface. ---------------------------------------------------------------------- Tue Apr 16 16:23:42 2002 Michael Jennings (mej) Another obvious list implementation...an array. ---------------------------------------------------------------------- Fri Apr 19 18:35:21 2002 Michael Jennings (mej) Working tokenizer. The question is, how much do I need to add in the way of flexibility.... Shell-style parsing? Null-field support? *ponders* ---------------------------------------------------------------------- Fri Apr 26 15:13:27 2002 Michael Jennings (mej) Working on some new stuff here, and just wanted to get this stuff in in case my laptop croaks or something. The new code doesn't work, but at least it doesn't break the compile. :) ---------------------------------------------------------------------- Fri Apr 26 15:24:02 2002 Michael Jennings (mej) I spoke too soon.... ---------------------------------------------------------------------- Mon Apr 29 15:25:01 2002 Michael Jennings (mej) The options parser seems to be working now. It's fairly extensible and fixes a lot of the problems with the old one. It was rewritten more or less from scratch. ---------------------------------------------------------------------- Tue Apr 30 22:17:27 2002 Michael Jennings (mej) I really should be more careful when creating test cases. This should fix the parsing of boolean options with values. ---------------------------------------------------------------------- Wed May 1 23:21:23 2002 Michael Jennings (mej) Fleshed out the URL class. ---------------------------------------------------------------------- Tue May 7 16:37:40 2002 Michael Jennings (mej) A few small bugfixes and some touchups. Also work on the socket object. ---------------------------------------------------------------------- Tue May 21 00:15:37 2002 Michael Jennings (mej) Fixed a number of memory leaks in both the testing code and the object classes themselves. Also rearranged some header stuff and created a few new helper macros for object declarations. ---------------------------------------------------------------------- Wed May 22 00:16:31 2002 Michael Jennings (mej) Brought the performance tests up to date and cleaned up some memory leaks in them. ---------------------------------------------------------------------- Wed May 22 08:59:38 2002 Michael Jennings (mej) Stupid typo. Doing too much perl, I guess. cpp uses "#elif," not "#elsif." ---------------------------------------------------------------------- Sun May 26 22:37:43 2002 Michael Jennings (mej) Updated performance testing to be scaled. The default is a quicker performance test than before, but now we can also choose to run anywhere from scratching the surface to a very thorough pounding. ---------------------------------------------------------------------- Sun Jun 9 14:16:38 2002 Michael Jennings (mej) Return on failed assert. ---------------------------------------------------------------------- Sat Jul 13 23:26:12 2002 Michael Jennings (mej) New function, version_compare(), which accurately compares package version numbers. Take a look at the various test cases to see what kinds of comparisons it can accurately make, and if you see any that aren't there, let me know. ---------------------------------------------------------------------- Fri Jul 26 00:12:25 2002 Michael Jennings (mej) Mmmm, sockets that connect. :) ---------------------------------------------------------------------- Fri Jul 26 16:52:40 2002 Michael Jennings (mej) More socket work. Also, permit muting of error/warning messages by supplying a NULL value for the program name. ---------------------------------------------------------------------- Tue Jul 30 17:34:38 2002 Michael Jennings (mej) Send/receive on the socket works now. Also cleaned up the show method for strings to eliminate the 4K length limit. The current socket test will actually download the HTML for my home page. Uncomment the SPIF_SHOW() call in test_socket() to see it work. ---------------------------------------------------------------------- Wed Jul 31 17:49:17 2002 Michael Jennings (mej) Added the _reverse() and _to_array() routines to all 3 list classes (finally). Also added unit tests for those. The tests for the socket code no longer download my home page. Now, I create a listening socket and a sending socket for a TCP/IP and a UNIX socket. Then I send/receive data across the socket and compare what I received with what I sent. Self-contained is better. :-) ---------------------------------------------------------------------- Sun Aug 4 20:11:38 2002 Michael Jennings (mej) Did a complete overhaul of the configure.in script. Moved everything to macros in libast.m4, which is now installed by the package. That will facilitate easier development of libast-based programs. Also added the beginnings of a regexp class with support for PCRE, POSIX-, and BSD-style regular expressions. ---------------------------------------------------------------------- Sun Aug 4 22:38:47 2002 Michael Jennings (mej) Apparently shared library building breaks if AC_PROG_CC isn't directly in configure.in.... :( ---------------------------------------------------------------------- Sun Aug 4 22:47:33 2002 Michael Jennings (mej) Fix the cache variable name. ---------------------------------------------------------------------- Sat Aug 10 12:06:50 2002 Michael Jennings (mej) Undefined symbol fix. Got overzealous with my s///. ---------------------------------------------------------------------- Tue Aug 13 21:38:04 2002 Michael Jennings (mej) Working implementation of a regular expression object which supports (and abstracts) PCRE, POSIX, or BSD regular expression functionality. Also fixed some bugs with the list code and the cpp stuff. ---------------------------------------------------------------------- Tue Aug 13 22:47:45 2002 Michael Jennings (mej) Oops, disable those old functions for now. ---------------------------------------------------------------------- Mon Aug 19 21:02:56 2002 Michael Jennings (mej) Added a macro to permit client apps a simple way to detect libast. ---------------------------------------------------------------------- Wed Sep 25 00:01:29 2002 Michael Jennings (mej) Patch from Kirby Kuehl for compilation on FreeBSD. ---------------------------------------------------------------------- Mon Sep 30 11:53:59 2002 Michael Jennings (mej) Final commit for release of libast 0.5. ---------------------------------------------------------------------- Fri Oct 25 15:07:21 2002 Michael Jennings (mej) Patch from Darren Stuart Embry to fix building on Debian systems with ash installed. ---------------------------------------------------------------------- Tue Nov 5 14:57:46 2002 Michael Jennings (mej) Solaris fixes (I hope) thanks to Kevin Doherty . ---------------------------------------------------------------------- Mon Dec 30 17:49:43 2002 Michael Jennings (mej) I added a new interface, this one called a "vector." The difference between a vector and a list is that a vector, as the name implies, is guaranteed to be "pointing in one direction," i.e. ordered. This interface should be used in preference to the "list" interface for ordered lists, specifically where search speed is vastly more important than insertion/deletion speed. The array implementation is now doing double-duty, as it implements both the list and the vector interfaces. Most of an AVL tree implementation is included in this commit as well. Brian Schenkenfelder graciously offered me an AVL tree implementation that he'd written awhile back, which I modified to use the libast semantics. Unfortunately, he never implemented the removal code, so I'm hoping that some kind soul who has had a data structures class more recently than I have will jump in and finish it for me. (*hint hint*) :-) ---------------------------------------------------------------------- Mon Dec 30 18:10:42 2002 Michael Jennings (mej) Pass "make distcheck" please and thank you. :) ---------------------------------------------------------------------- Mon Dec 30 18:26:55 2002 Michael Jennings (mej) Update spec file. ---------------------------------------------------------------------- Thu Feb 20 00:44:26 2003 Michael Jennings (mej) The beginnings of doxygen documentation. ---------------------------------------------------------------------- Sun Feb 23 22:00:55 2003 Michael Jennings (mej) Still working on the documentation. If you run "doxygen" from the top-level directory, you can see what's there so far. At some point, I'll be needing a logo. So if you're artistically inclined, feel free to take a stab at one. :) ---------------------------------------------------------------------- Fri Mar 7 23:52:30 2003 Michael Jennings (mej) Definitely making progress on the documentation, but there's still a long way to go. ---------------------------------------------------------------------- Sat Mar 8 00:01:20 2003 Michael Jennings (mej) Let's try not to break stuff, shall we? ---------------------------------------------------------------------- Mon Mar 17 16:27:53 2003 Michael Jennings (mej) More work on docs. ---------------------------------------------------------------------- Tue Apr 1 23:07:15 2003 Michael Jennings (mej) More documentation work. libast.h is almost finished. ---------------------------------------------------------------------- Fri Apr 4 22:59:45 2003 Michael Jennings (mej) Finally finished documenting libast.h. ---------------------------------------------------------------------- Tue Apr 8 17:14:32 2003 Michael Jennings (mej) Finished documenting libast_internal.h. Also some 64-bit cleanliness fixes. ---------------------------------------------------------------------- Thu Apr 10 17:54:19 2003 Michael Jennings (mej) Docs for some of the .c files. ---------------------------------------------------------------------- Fri Apr 11 17:10:15 2003 Michael Jennings (mej) Completed documentation of the memory management system. ---------------------------------------------------------------------- Mon Jun 16 20:43:43 2003 Michael Jennings (mej) Additional documentation. Added support for versions containing "rc." ---------------------------------------------------------------------- Fri Jun 27 17:53:29 2003 Michael Jennings (mej) Starting in on the docs for the object system. Yum. ---------------------------------------------------------------------- Tue Jul 1 15:50:57 2003 Michael Jennings (mej) Finished the type docs. Still working on the object docs. ---------------------------------------------------------------------- Thu Jul 3 15:27:36 2003 Michael Jennings (mej) More object docs. ---------------------------------------------------------------------- Thu Jul 3 23:37:45 2003 Michael Jennings (mej) Forgot to fix these before committing. :( ---------------------------------------------------------------------- Wed Jul 9 19:49:39 2003 Michael Jennings (mej) Some minor rearranging. ---------------------------------------------------------------------- Thu Oct 30 16:03:29 2003 Michael Jennings (mej) Make SPIF_STR_STR() convenience macro *always* return a string, even if the str object is NULL. ---------------------------------------------------------------------- Thu Oct 30 18:12:35 2003 Michael Jennings (mej) Added support for object "properties." A property is a member variable with corresponding get/set methods. I'll probably flesh this out more as I use it more. ---------------------------------------------------------------------- Fri Oct 31 15:21:53 2003 Michael Jennings (mej) Fixes to string class find/splice routines. Added SPIF_DEFINE_PROPERTY_FUNC_NONOBJ() macro for defining get/set methods of a property which is not an object. It should be used in place of SPIF_DEFINE_PROPERTY_FUNC() for spif_*_t types that are not objects, such as spif_int32_t and spif_sockport_t. ---------------------------------------------------------------------- Sat Nov 1 13:56:22 2003 Michael Jennings (mej) Documentation updates for doxygen 1.3.x. ---------------------------------------------------------------------- Wed Nov 5 15:05:35 2003 Michael Jennings (mej) Oops. Forgot to fix a couple. ---------------------------------------------------------------------- Wed Nov 5 15:13:24 2003 Michael Jennings (mej) Let's try that again, shall we? ---------------------------------------------------------------------- Mon Nov 10 14:28:09 2003 Michael Jennings (mej) Added assertions/requirements for string member functions. Changed pointer printouts to %010p instead of %8p, since the latter didn't account for the possibility of a leading "0x". Fixed typos in hex_dump(). ---------------------------------------------------------------------- Tue Nov 18 23:15:59 2003 Michael Jennings (mej) Added D_*_IF macros for doing debugging conditionals more cleanly. Removed the bogus "next" member function from the array and vector interface classes. Fleshed out the iterator interface and implemented it for arrays. Fixed stupid mistake that made property functions overly type-strict. Cleaned up the "show" member functions. Added a routine for testing a regexp vs. a C string. Property-ized the URL class objects. ---------------------------------------------------------------------- Wed Nov 19 17:39:01 2003 Michael Jennings (mej) Added linked_list and dlinked_list implementations of the vector interface. Added iterator functionality for linked_list and dlinked_list. Added unit tests for the above. ---------------------------------------------------------------------- Fri Nov 21 16:39:23 2003 Michael Jennings (mej) Tasty new goodies thanks to Graphviz. ----------------------------------------------------------------------