2009-01-31  cheusov  <vle@gmx.net>

  * NEWS: minor fix

  * NEWS: release notes

  * Makefile.in: clean-ups

  * configure.in: clean-ups, TEENY -> 1

2008-12-29  cheusov  <vle@gmx.net>

  * sltest.c: fixed: gcc warning

  * sltest.c: fix for sf.net bug #2473314 (bigendian/PPC)

2008-12-24  cheusov  <vle@gmx.net>

  * Makefile.in: fix building test tools ($LIBS)

  * Makefile.in:
  LDFLAGS/LIBS passed to configure script is used to build library
     and test utilities

2008-12-07  cheusov  <vle@gmx.net>

  * maa.h, maaP.h: no $Id$ - I dislike it

  * configure.in, maaP.h:
  'Revised ...' removed
  copyleft added

  * Makefile.in: autoheader+autoconf -> cvsdist target

  * Makefile.in: minor fix in cvsdist target

  * Makefile.in: correct mail addresses in ChangeLog

  * Makefile.in: no Makefile.conf in libmaa

  * configure.in:
  fix in checking for presense of system-wide (libc) 'facilitynames' array

  * configure.in, getopt.c, getopt.h, getopt1.c:
  I don't know any platform that has no getopt(3).
      Maintaining platforms existed in 70th is not my goal.
      If this change breaks something you really need, let me know.

  * arg.c, argtest.c, base26.c, base64.c, basetest.c, bit.c, bittest.c, debug.c, debugtest.c, error.c, flags.c, hash.c, hashtest.c, list.c, listtest.c, log.c, maa.c, memory.c, memtest.c, mkrnd.c, parse-concrete.c, pr.c, prime.c, primetest.c, prtest.c, rnd.c, set.c, settest.c, sl.c, sltest.c, source.c, stack.c, string.c, stringtest.c, text.c, timer.c, xmalloc.c:
  I removed '$Id...$ from source code because I hate it.

  * arg.c, argtest.c, base26.c, base64.c, basetest.c, bit.c, bittest.c, debug.c, debugtest.c, error.c, flags.c, hash.c, hashtest.c, list.c, listtest.c, log.c, maa.c, memory.c, memtest.c, mkrnd.c, parse-concrete.c, pr.c, prime.c, primetest.c, prtest.c, rnd.c, set.c, settest.c, sl.c, sltest.c, source.c, stack.c, string.c, stringtest.c, text.c, timer.c, xmalloc.c:
  'Revised ... by...' comment lines removed, CVS knows better
  what was revised and when

  My copyleft added

  * NEWS, configure.in:
  version -> 1.1.0
  release notes added

  * configure.in: clean-ups

  * Makefile.in, configure.in:
  xmalloc is an essensial part of libmaa

  * Makefile.in, configure.in:
  libtool -version-info 1:0
  other clean-ups

  * configure.in: no $Id$

  * configure.in:
  no '-g' hardcode for !gcc compilers
  no '-g -O' for gcc
  clean-ups in comments

  * Makefile.in, maa.c, version.c:
  removed: version.c
  'dist' target -> 'cvsdist'
  cvsdist clean-ups

2008-11-28  cheusov  <vle@gmx.net>

  * hashtest.c, hashtest.out:
  Statistic about hash table is not output from hashtest.c regression test.
  This is because it fails under 64-bit platforms.

  * settest.c, settest.out:
  Hash table statistics is removed from settest.c regression test.
  This is because it fails under 64-platforms.

2008-11-23  cheusov  <vle@gmx.net>

  * Makefile.in: -I${srcdir} added

2008-11-15  cheusov  <vle@gmx.net>

  * Makefile.in: yet another fix in target "distclean"

2008-11-10  cheusov  <vle@gmx.net>

  * sltest.c: fixed: compilation bug in Linux/x86-64

2008-10-25  cheusov  <vle@gmx.net>

  * log.c:
  compilation on ALTlinux fixed: write(2) is marked as WUR, i.e.
      returned value MUST be checked

2008-10-18  cheusov  <vle@gmx.net>

  * Makefile.in, configure.in:
  added: cvsclean target
  minor fixes

  * Makefile.in, configure.in, maa.c:
  MAA_TEENY added. Now libmaa-1.0.3
  maa_version_teeny function returning MAA_TEENY
  REMOVED: XTRAHEADERS, TARGETLIBS, RPATHFLAGS configure variables.
     Also removed are  --with-purify, --with-insure, --with-efence,
     --with-checker, --with-local-dmalloc, --with-dmalloc, --with-gprof,
     --with-prof, --with-cflags and --with-cc options.

     Only standard CC, CPPFLAGS, CFLAGS, LDFLAGS and LIBS variables
     should be used for configuring

2008-10-17  cheusov  <vle@gmx.net>

  * configure.in: AC_PROG_LIBTOOL added

2008-10-10  cheusov  <vle@gmx.net>

  * Makefile.in:
  'make test' now works correctly if it is run from external obj/ directory

2008-10-05  cheusov  <vle@gmx.net>

  * maaP.h: yet another hack for Interix without -D_ALL_SOURCE

2008-10-04  cheusov  <vle@gmx.net>

  * maaP.h: _unconditional_ declarations of optind and optarg

  * prtest.c: fixed: prtest regression test failured under Interix

  * xmalloc.c: no need for strdup(3)

  * Makefile.in:
  If at least one selftest fails, an exit status of 'make test' is 1
  additions to '*clean' targets

  * obstack.h: fix for previous bcopy->memcpy bad change

  * xmalloc.c: return value is checked before it is used as pointer

2008-10-03  cheusov  <vle@gmx.net>

  * configure.in: no AC_C_CONST

  * configure.in, maaP.h, strdup.c: strdup is not used anymore

2008-10-02  cheusov  <vle@gmx.net>

  * configure.in: -Werror is used instead of -pedantic (for gcc only)

  * maaP.h: hardcodes #if defined(__INTERIX) && !defined(_ALL_SOURCE)

2008-10-01  cheusov  <vle@gmx.net>

  * maaP.h: The following functions
     long random (void);
     int isascii (int c);
     int gethostname(char *, size_t);
     void vsyslog (int priority, const char *message, va_list args);
  are declared explicitly on Interix

  * obstack.h: avoid using bcopy(3), use standard memcpy(3) instead

  * xmalloc.c:
  avoid using strdup(3), it is not portable (fails under Interix without -D_ALL_SOURCE)

2008-08-30  cheusov  <vle@gmx.net>

  * maa.h: there is no limit to keep "Revised:..." up-to-date

2008-07-15  cheusov  <vle@gmx.net>

  * configure.in: date ---> touch

2008-05-29  cheusov  <vle@gmx.net>

  * Makefile.in:
  target 'tests-update' renamed to 'test-update'
  target 'tests'        renamed to 'test'

  * Makefile.in: fixes for DESTDIR

2008-04-06  cheusov  <vle@gmx.net>

  * Makefile.in: fixed: DESTDIR support

2008-01-22  cheusov  <vle@gmx.net>

  * Makefile.in:
  arggram2c shoul be removed in target "distclean", not in "clean"

  * obstack.c: fixed: gcc compilation warning (missed #include for abort(3))

2008-01-19  cheusov  <vle@gmx.net>

  * Makefile.in, configure.in:
  removed: AC_PROG_RANLIB. It is not used directly
  libtool is run with --tag=CC when C code is compiled
      (Now dict is compiled with c89 under NetBSD)

  * maaP.h:
  removed: declaration of fileno and srandom
      They are not used
  removed: declaration of bcopy

2008-01-11  cheusov  <vle@gmx.net>

  * Makefile.in:
  fixed: "install" target fails when configure and make are run from outside
     source directory

2007-12-29  cheusov  <vle@gmx.net>

  * arg.c, base26.c, base64.c, bit.c, debug.c, flags.c, hash.c, list.c, log.c, memory.c, pr.c, rnd.c, set.c, sl.c, source.c, string.c, timer.c, xmalloc.c:
  Not standard __FUNCTION__ macros is changed to __func__
      All these changed sources can now be compiled with PCC (under NetBSD)
      PCC - Portable C Compiler

2007-11-10  cheusov  <vle@gmx.net>

  * acconfig.h: what is this for?

2007-09-29  cheusov  <vle@gmx.net>

  * Makefile.in: minor fix in distclean target

2007-08-04  cheusov  <vle@gmx.net>

  * configure.in: fix for autoheader

2006-12-13  cheusov  <vle@gmx.net>

  * configure.in: 0.990 -> 1.0

2006-12-11  cheusov  <vle@gmx.net>

  * Makefile.in: cp/install -> $(INSTALL)/$(INSTALL_DATA)

2006-12-10  cheusov  <vle@gmx.net>

  * configure.in:
  removed: XTRALDFLAGS XTRACFLAGS WLDFLAGS WCFLAGS LDSHARED.
     Only CPPFLAGS, CFLAGS and LDFLAGS are used.
  removed: knowledge about how shared libraries are created on different
     platforms

2006-12-09  cheusov  <vle@gmx.net>

  * Makefile.in: removed: ALLFLAGS, CFLAGS and LDFLAGS should be separate

  * Makefile.in: fixed: making prtest and memtest execs

  * Makefile.in:
  removed: @
        @
  libtool is used for creating shared library instead of dirty hacks

2006-07-03  cheusov  <vle@gmx.net>

  * configure.in: 0.99 ---> 1.990

2006-05-27  cheusov  <vle@gmx.net>

  * base64.c, maa.h:
  added: b64_decode_buf function to libmaa library
  index.c:dict_word_create: minor speed-ups, avoided use of malloc()
  dictfmt --index-keep-orig create (if necessary) fourth column
      in .index file that keeps original headword which is returned
      by MATCH command. See dictfmt.1 for details.
  dictd: If opening a pid file of log file failed, error messages are printed
      to stderr.

2006-05-26  cheusov  <vle@gmx.net>

  * hash.c:
  FIXED: sf.net bug #1463396

2006-04-09  cheusov  <vle@gmx.net>

  * maaP.h: removed obsolete code

2006-04-08  cheusov  <vle@gmx.net>

  * Makefile.in, decl.h, maaP.h, memtest.c:
  decl.h files seem obsolete to me. They cause problrems, do not help.

2005-12-08  cheusov  <vle@gmx.net>

  * config.guess, config.sub: updated

2005-12-05  cheusov  <vle@gmx.net>

  * maaP.h:
  fixed: compilation bugs because of alloca

2005-11-21  cheusov  <vle@gmx.net>

  * log.c:
  FIXED: buffer overflow (segfault) in log_{error,info} functions.
      This may happen when dictd is run with -L option
      and it definitely crashes on condition that:
      - -dinit option is enabled;
      - Japanese of Chinese dictionary created by dictfmt-1.9.14 (or later)
        is in dictd.conf
      - -L
      This is due to too long 00-database-alphabet "definition"

2005-11-20  cheusov  <vle@gmx.net>

  * log.c:
  fixed: strange segfault in log_info function under Interix 3.5
    (4096-byte array on stack + va_XXX calls)

2005-09-22  cheusov  <vle@gmx.net>

  * Makefile.in: -fPIC is always enabled for libmaa

2005-09-21  cheusov  <vle@gmx.net>

  * maaP.h: fixed: compilation bug (alloca)

2005-09-05  cheusov  <vle@gmx.net>

  * maaP.h:
  fixed: compiler warnings on FreeBSD5

2005-06-08  cheusov  <vle@gmx.net>

  * decl.h:
  fixed: compilation bug on smarc64/xxxBSD.
      Thanks to micha137 for bu report and patch.

2004-12-23  cheusov  <vle@gmx.net>

  * Makefile.in, arggram2c, arggram2c.in, configure.in:
  changes necessary for Solaris which loves old awk
  1.9.14 --> 1.9.15

2004-11-17  cheusov  <vle@gmx.net>

  * arg.c:
  removed: C++ style comments

  * hash.c, sl.c, string.c, arg.c:
  fixed: a few warning messages produced by gcc

2004-11-07  cheusov  <vle@gmx.net>

  * log.c:
  code clean-ups

2004-10-12  cheusov  <vle@gmx.net>

  * log.c:
  `log_syslog (NULL)' closes syslog
  `log_file (NULL, NULL)' closes file for logging
  `log_stream (NULL, NULL)' closes FILE* stream for logging

  * maa.h:
  debugging information switched on using -d option of dictd
      is logged to syslog/file/FILE_stream, but printf'ed to stdout.

2004-10-08  cheusov  <vle@gmx.net>

  * Makefile.in:
  ./ --> awk -f

2004-10-05  cheusov  <vle@gmx.net>

  * xmalloc.c:
  compiler warning message fixed

2004-06-06  cheusov  <vle@gmx.net>

  * configure.in: *** empty log message ***

  * configure.in:
  libmaa version ==> 0.99

2004-05-30  cheusov  <vle@gmx.net>

  * timer.c:
  a few checks for NULL

  * arggram2c: comments changed

2004-05-16  cheusov  <vle@gmx.net>

  * configure.in, log.c:
  Where vsyslog function is determined by autoconf
      but the platform-dependant #defines

  * log.c:
  code clean-ups: duplicated code is separated into a function

2004-05-14  cheusov  <vle@gmx.net>

  * Makefile.in, arg.c, arggram.txt, arggram2c, argtest.c, argtest.in, argtest.out:
  fixed: arg_argify parses string incorrectly, for example,
      for the input 1''2''3''4 it produces single token 1'''.
      As a result 'dictd' may parse TCP commands incorrectly.

      arg_argify is fully reimplemented and now uses Mealy machine
      similar to that used by lex and flex.

  argtest.c is reimplemented
  more tests for arg_argify function have been added

2004-03-18  cheusov  <vle@gmx.net>

  * maa.c:
  maa_shutdown function is not called automatically
      when application terminates. Run it explicitly.

2004-03-10  cheusov  <vle@gmx.net>

  * configure.in:
  dictd / libmaa version has been changed to 1.9.12 / 0.97

2004-01-08  cheusov  <vle@gmx.net>

  * doc/Makefile.in:
  Documentation is not extracted from parse.c because
    it is no longer available.

2004-01-07  cheusov  <vle@gmx.net>

  * flags.c:
  fixed: the following program should not end with exit code 0

    #include "maa.h"

    int main (int argc, char **argv)
    {
       flg_register(1, "flag1" );

       flg_set ("none");

       flg_set ("flag1");
       printf ("flag=%d\n", flg_test (1));

       flg_set ("*flag1");
       printf ("flag=%d\n", flg_test (1));

       return 0;
    }

2003-12-30  cheusov  <vle@gmx.net>

  * maa.h, string.c:
  added: new functions and defines
      'str_pool_init_position', 'str_pool_next_position',
      'str_pool_get_position', 'str_pool_readonly', 'str_pool_iterate',
      'str_pool_iterate_arg', 'STR_ITERATE' and 'STR_ITERATE_END'
      to iterate over strings in the string pool.

2003-12-08  cheusov  <vle@gmx.net>

  * configure.in:
  version        ==> 1.9.11
  libmaa version ==> 0.97
  NEWS update

2003-10-26  cheusov  <vle@gmx.net>

  * Makefile.in, configure.in, maaP.h:
  checking for presence of getopt(3) and SIZEOF_VOID_P define

  * text.c:
  fixed: warning messages produced by latest gcc

  * list.c:
  fixed : a warning message produced on 64-bit archs

2003-10-08  cheusov  <vle@gmx.net>

  * configure.in, maaP.h:
  better checking for getopt(3)

2003-10-02  cheusov  <vle@gmx.net>

  * config.h.in:
  removed: libmaa/config.h.in

2003-10-01  cheusov  <vle@gmx.net>

  * string.c:
  fix

  * config.guess, config.sub:
  updated config.{sub,guess} files

2003-09-19  cheusov  <vle@gmx.net>

  * source.c, string.c:
  a few strlcpy have been replaced with strncpy and memcpy

2003-08-08  cheusov  <vle@gmx.net>

  * maa.h, text.c:
  txt_soundex2 - reenterable version of txt_soundex

2003-08-07  cheusov  <vle@gmx.net>

  * maaP.h, strlcpy.c:
  added: initial version of Judy-based plugin

2003-08-06  cheusov  <vle@gmx.net>

  * config.h.in, configure.in, maaP.h, source.c, string.c, strlcpy.c:
  'strncpy' function is replaced with 'strlcpy' in both dict* and libmaa

2003-07-22  cheusov  <vle@gmx.net>

  * configure.in:
  Local libmaa is always used. This will be removed later.
  DICTD version --> 1.9.10
  LIBMAA version --> 0.96

2003-07-07  cheusov  <vle@gmx.net>

  * Makefile.in, maa.h, parse.c:
  parse.c has been removed from libmaa library. This is because it declares
      'extern' symbols not defined in the library.
  added: 'make uninstall'

  * config.h.in:
  upgrade to autoconf 2.53

  * configure.in:
  fixed: libmaa/configure --enable-shared
  upgrade to autoconf 2.53

2003-04-14  cheusov  <vle@gmx.net>

  * config.h.in: *** empty log message ***

2003-03-19  cheusov  <vle@gmx.net>

  * maaP.h:
  Functions related to plugin have moved to plugin.c.
  Several declarations have been moved to defs.h, index.h, data.h, plugin.h
      It makes sources easier to understand (at least for me)
  UTF-8 support is optional. It is disabled on platforms which don't
      support 'iswalnum', 'iswspace' and 'towlower' functions.
      As a result 'dictd' can be compiled on CYGWIN.
  fixed: 'dictdb_free' function is not called

2002-12-17  cheusov  <vle@gmx.net>

  * config.sub, configure.in:
  code cleanups
  libmaa version set to 0.95
  dictd version set 1.9.1

2002-11-19  cheusov  <vle@gmx.net>

  * text.c:
  fixed: possible crash in libmaa/text.c:txt_soundex
         My previous commit did not fix it

2002-11-18  cheusov  <vle@gmx.net>

  * text.c:
  fixed: problems with 'toupper/tolower/isXXXX (-1)
  fixed: possible crash in libmaa/text.c:txt_soundex

2002-09-27  cheusov  <vle@gmx.net>

  * config.h.in, configure.in, error.c:
  added: possibility to disable plugin support
         by running ./configure --disable-plugin
  fixed: problems with make -j. patch by
         Andrzej Dopierala <undefine@>
  fixed: problems with make ChangeLog
  added: possibility to build 'dictd' on platforms not supporting mmap()
  added: a lot of 'const' modifyers
  removed: 'goto' statement ;) from daemon.c
  added: --test-file argument to 'dictd'
         '--ftime' and '--test-file' are synonyms
  'dictd --test-file' and 'dictd --test' now search in ALL databases
         but the first one only.
  added: --test-db to 'dictd'
         It sets the database name for --test and --test-file.
  plugin function dictdb_open can return version == 1.
         In this case before each 'dictdb_search' call, 'dictdb_set'
         should be called. Not fully implemented.
  added:  DICT_PLUGIN_INITDATA_DBNAME data id for initialising plugin
         the databases names are passed to the plugins
         by the call of 'dictdb_open'
         This can be used to implement "virtual" databases such as
         "English monolingual" containing Webster, FOLDOC, WordNet etc...
  added: new plugin exit status DICT_PLUGIN_RESULT_EXIT
         which allows to stop searching.
         This is an easiest way to exclude some databases from '*' list.
         Example:
           1) Webster
           2) Wordnet
           3) ----- dictdplugin_exit.so plugin -----
           4) man pages
           5) RFC documents
           6) HOWTOs
           7) C++ functions
           8) Perl functions
         Using such database list, you will search
         only Webster and Wordnet databases
         by running 'dict apple'.
         If you want to get RFC document e.g., specify database name explicitly.
         Of course, plugin may exit with such exit status
         not only unconditionally
  added: dictdplugin_exit.so plugin
         Stops searching unconditionally.
  added: new plugin exit status DICT_PLUGIN_RESULT_PREPROCESSED
         which allows to implement a preprocessor of the requested word.
         Simple examples:
           - Converting German umlauts to UE, OE etc.
           - Converting Cyrillic YO character to YE
         After plugin converts the requested word, all following databases
         will be searched for converted one.
         In order this to work, it is necessary to create .index files
         without umlauts and Cyrillic YO characters.
         Database list example:
           1) ---- plugin converting German umlauts ------
           2) ---- plugin converting Cyrillic YO to YE ---
           3) German-English dictionary
           4) Russian-English dictionary
  fixed: bug in 'dict_search_plugin' function

2002-09-16  cheusov  <vle@gmx.net>

  * Makefile.in, config.h.in, configure.in:
  fixed: bug in configure.in
         ./configure --sysconfdir was completely ignored
  changed: The default "prefix" directory from /usr to /usr/local
         just like most other packages do.
  removed: --with-etcdir argument of configure script.
         Use --sysconfdir instead.
         Run "./configure --prefix /usr --sysconfdir /etc" to
             get "configure" script behaviour
         similar to older dictd "configure".
  plugin improvements/changes:
    - plugin.h renamed to dictdplugin.h
    - In order to avoid confusing
      several #defines have been renamed.
      Now all #defines have DICT_ prefix.
    - "all" Makefile target builds library libdictdplugin.a.
      Link plugins with it.
    - dictdplugin-config configuration tool. It is like gtk-config.
  Error message is returned by dictd if the request is
     not a valid UTF-8 string and remaining databases will not be checked.
  fixed: warning messages produced by autoreconf

2002-08-05  cheusov  <vle@gmx.net>

  * list.c:
  added: possibility to search using all characters
    but the alphanumeric and space only.
    00-database-allchars special entry in the index file is used.

  * Makefile.in, log.c, maa.h:
  added: utf-8 functions in utf8_ucs4.c
  changed: 'distclean' target of Makefile.in
  added: argument '--test-strategy'
    it can be used for debugging.
  fixed: crash at fclose(NULL)
  fixed: crash of dictd with --ftest
  fixed: "8bit" bug in compare:index.c
  changed: comparions count in the debugging mode is calculated
    without optStart array initialization
  fixed: "8bit" bug in suffix/substring searching strategy
  changed: PRINTF and FPRINTF macroses.
    old variants cause problems with the nested if/else
  added: UTF-8 support

2002-08-02  faith  <faith@dict.org>

  * Makefile.in, arg.c, argtest.c, base26.c, base64.c, basetest.c, bit.c, bittest.c, configure.in, debug.c, debugtest.c, decl.h, error.c, flags.c, hash.c, hashtest.c, list.c, listtest.c, log.c, maa.c, maa.h, maaP.h, memory.c, memtest.c, mkrnd.c, parse-concrete.c, parse.c, pr.c, prime.c, primetest.c, prtest.c, rnd.c, set.c, settest.c, sl.c, sltest.c, source.c, stack.c, strdup.c, string.c, stringtest.c, text.c, timer.c, xmalloc.c:
  Update with 1.7.1 release

2002-05-03  faith  <faith@dict.org>

  * debugtest.c, decl.h, error.c, flags.c, hash.c, hashtest.c, list.c, listtest.c, log.c, maa.c, maa.h, maaP.h, memory.c, memtest.c, mkrnd.c, parse-concrete.c, parse.c, pr.c, prime.c, primetest.c, prtest.c, rnd.c, set.c, settest.c, sl.c, sltest.c, source.c, stack.c, strdup.c, string.c, stringtest.c, text.c, timer.c, version.c, xmalloc.c, Makefile.in, acconfig.h, arg.c, argtest.c, base26.c, base64.c, basetest.c, bit.c, bittest.c, config.h.in, configure.in, debug.c:
  Sync sourceforge.net repository with dictd-1.7.0 release

2000-12-31  faith  <faith@dict.org>

  * decl.h, text.c: Made minor changes for Solaris 5.7 compilation

1999-12-23  Julian Squires  <tek@wiw.org>

  * maaP.h: Added OpenBSD to list of BSDs to allow smooth compilation.

1999-12-23  faith  <faith@dict.org>

  * bit.c, hash.c, hashtest.c, listtest.c, settest.c:
  Update for 64-bit machines

1999-12-22  faith  <faith@dict.org>

  * decl.h: Update for Linux/Sparc

  * log.c: Changes for OSF (DEC Unix) for Alpha

  * log.c:
  Changes from Stephen L Moshier to support Cygnus B20 under Windows 98

  * hash.c: Patches from Bob and Kirk Hilliard:
  Fix error in code that causes logging to fail
  Fix stdout initialization in dict
  Fix defs for linux on sparc
  Fix hash type (for alpha?)
  Fix parse error message misalignment
  Fix some annoying compilation warnings
  Fix syntax in dictd configuration file
  Add include keyword to dictd configuration file syntax
  Add switch to specify pager (or lack thereof)
  Add documentation for pager option
  Drop root as soon as daemon starts

  Also, fix --prefix on configuration

1998-07-05  faith  <faith@dict.org>

  * configure.in:
  Fixed Makefile.in and configure.in syntax per email from Ian T Zimmerman

  * timer.c, configure.in, Makefile.in:
  Fixed timer wrap-around between 49 and 50 days
  Fixed Makefile.in and configure.in syntax per email from Ian T Zimmerman

1998-02-22  faith  <faith@dict.org>

  * log.c, maa.h: Minimize warnings with Linux glibc

  * source.c: Fixed NULL pointer dereference in err_ routines

  * maaP.h: Port to BSDI

1998-01-16  faith  <faith@dict.org>

  * log.c, maaP.h, decl.h: Changes for HPUX

1998-01-05  faith  <faith@dict.org>

  * maaP.h, log.c: Port to DG/UX

  * maaP.h: Port to FreeBSD

1997-11-30  faith  <faith@dict.org>

  * sl.c: Update for dissertation benchmarks

1997-11-08  faith  <faith@dict.org>

  * list.c, maa.h: This version is buggy, do not check out

1997-09-25  faith  <faith@dict.org>

  * version.c, log.c, decl.h: Updates for DSL Example under Solaris

1997-09-19  faith  <faith@dict.org>

  * maaP.h: Fix Solaris predefined macros

1997-09-14  faith  <faith@dict.org>

  * set.c, maa.h: Reimplemented algorithm based on write-up in
  dissertation.  Now using the same algorithm in both places.

1997-09-12  faith  <faith@dict.org>

  * decl.h, configure.in: Preparing DSL example snapshot

1997-08-21  faith  <faith@dict.org>

  * maa.h: Got breakpoint tracking and navigation working

1997-08-15  faith  <faith@dict.org>

  * arg.c: More work on tracking

1997-07-11  faith  <faith@dict.org>

  * error.c: Allow routine name to be NULL

1997-07-07  faith  <faith@dict.org>

  * timer.c: Use millisecond resolution for timer, instead of microseconds

1997-06-23  faith  <faith@dict.org>

  * timer.c: Made timers return parent and children times

1997-06-21  faith  <faith@dict.org>

  * maa.h, log.c, flags.c, debug.c: Made timestamps on logs optional
  Fixed typos

1997-06-02  faith  <faith@dict.org>

  * version.c, parse.c, configure.in:
  Only make weak symbols when compiling a shared library.
  Otherwise, everything fails when the library is not shared.
  Bumped version number

1997-05-21  faith  <faith@dict.org>

  * Makefile.in: Fixed ChangeLog target

  * doc/libmaa.tex, doc/libmaa.600dpi.ps, doc/Makefile.in, configure.in, source.c, config.h.in, Makefile.in:
  Fixed a few problems with the docs -- others remain

  * parse.c, configure.in, Makefile.in: Add support for shared libs under Linux
  Add installation target in Makefile

  * version.c: Bump version

1997-05-20  faith  <faith@dict.org>

  * string.c, maa.h, hash.c: Added hash function caching
  Added str_copy* support for strings which are known to be unque
  (e.g., source lines).
  Both of these changes should speed up scanning and parsing.

1997-05-10  faith  <faith@dict.org>

  * source.c: Fixed core dump when sourceType is not available

1997-05-01  faith  <faith@dict.org>

  * argtest.out, argtest.c, arg.c: Fix arg_argify, again

1997-04-21  faith  <faith@dict.org>

  * version.c, set.c, maa.h, list.c, Makefile.in:
  Keep version numbers from automatically bouncing.
  Make remaining iterators return non-zero if the iteration ended early.

1997-03-19  faith  <faith@dict.org>

  * version.c, source.c, argtest.out, maa.h, pr.c, arg.c, argtest.c:
  Allow arg_argify to quote in different ways.

1997-03-18  faith  <faith@dict.org>

  * version.c, source.c: Increased buffer size for error reporting

  * version.c, parse.c, maa.h: Added new parser entry point

1997-03-15  faith  <faith@dict.org>

  * version.c, sl.c: Finished implementing Algorithms 1-6
  Wrote up algorithm descriptions
  Benchmarked algorithms with qsort:
  % Algorithm 0:
  %     0 nodes have been labelled (   0 relabelled,    0 needs comp.)
  %     18.500u 0.200s 22.217 84%
  %
  % Algorithm 1:
  %     5425575 nodes have been labelled (   0 relabelled,    0 needs comp.)
  %     1:55.31u 0.210s 1:58.44 97%
  %
  % Algorithm 2:
  %     22067 nodes have been labelled (5403508 relabelled,    0 needs comp.)
  %     17.640u 0.250s 20.219 88%
  %
  % Algorithm 3:
  %     5425575 nodes have been labelled (   0 relabelled, 5425575 needs comp.)
  %     2:06.19u 0.210s 2:08.83 98%
  %
  % Algorithm 4:
  %     22067 nodes have been labelled (5403508 relabelled, 5425575 needs comp.)
  %     25.470u 0.320s 28.606 90%
  %
  % Algorithm 5:
  %     22067 nodes have been labelled (5403508 relabelled, 662227 needs comp.)
  %     21.250u 0.270s 23.765 90%
  %
  % Algorithm 6:
  %     22067 nodes have been labelled (349455 relabelled, 662227 needs comp.)
  %     11.910u 0.180s 14.250 84%

1997-03-13  faith  <faith@dict.org>

  * version.c: Added -a option to select fast labeling algorithms
  Implemented Algorithm 0, 1, 2, noting speed improvement
  I plan to break Algorithm 3 into 3 and 4 (and 5?), since it is a big
  step up from Algorithm 2, and may not be any faster...

1997-03-12  faith  <faith@dict.org>

  * version.c, timer.c, maa.h, log.c, decl.h: Fixed bug in timers
  Improved logging
  Added more C prototypes for SunOS

1997-03-11  faith  <faith@dict.org>

  * version.c, log.c: Fixed log_stream bug

1997-03-10  faith  <faith@dict.org>

  * version.c, maa.h, text.c, log.c, error.c, argtest.c, argtest.out, arg.c, Makefile.in:
  Fixed bug in arg parsing
  Added generalized logging capabilities

1997-03-08  faith  <faith@dict.org>

  * version.c, decl.h: Compile without warnings under SunOS

  * argtest.c, argtest.out, version.c, arg.c:
  Updated arg functions to skip over whitespace in a reasonable way.\
  Updated argtest to test these updates.

1997-03-01  faith  <faith@dict.org>

  * version.c: Example ocnfig file

  * version.c, timer.c, source.c, parse.c, maa.h:
  Fixed bugs in timer and error routines

1997-02-28  faith  <faith@dict.org>

  * doc/Makefile.in, version.c:
  Removed parse and source support from Khepera library

  * doc/Makefile.in, version.c, source.c, parse-concrete.c, parse.c, maa.h, maa.c, Makefile.in:
  Moved source and parser support to libmaa

1997-02-21  faith  <faith@dict.org>

  * README: Updated credits information and version

1997-02-08  faith  <faith@dict.org>

  * version.c: Fix typos

1996-12-26  faith  <faith@dict.org>

  * version.c: 1) Make top-level "tests" target to run all regression tests.
  2) Do not free nseqs after the "return" statement.
  3) Add .dq debugging flag to debug the pending delete queue.
  4) Fix typo that prevented -pg from working (this was most important).

1996-12-25  faith  <faith@dict.org>

  * version.c: 1) Re-did all the Range stuff again.  Here is how it works:
     At parse time, but never again:
      (N_SeqRange (N_Range1 .))      1 .. last (doesn't exist at parse time)
      (N_SeqRange (N_Range2 . .))    first .. last
      (N_SeqRange (N_Range3 . . .))  first, second .. last
     After post-parse processing, and thereafter:
      (N_SeqRange1 .)      1 .. last
      (N_SeqRange2 . .)    first .. last
      (N_SeqRange3 . . .)  first .. last .. step
  2) Added the new dpl_st_range_step_i call, which takes (first, last, step).
  3) Use dpl_copy whenever an nseq is assigned to another nseq (these
     assignments should be (automatically) removed when value tracking and
     CSE are addes).
  4) Moved dom-removal from pl.k to simple.k.  This is more appropriate.

  * version.c:
  Major milestone: qsort runs to completion after a little tweaking.
  Here's what needs fixing:
      nseq assignment needs to use dpl_copy
      dpl_st_range uses the old style ranges, not the ones used by N_Range

  Other stuff in this checking:
  1) Exapanded ex4.pro so debug indexing
  2) Finished implementation of flat indexing (vs. SelectSeq)
  3) Added new functions: leseq, combine, flatten, concat
  4) Convert dom into range1
  5) Output DPL for index, concatreduce, combine
  6) Added ad hoc on-the-fly type generation for indexing (similar to that
     for insert/extract)
  7) Fix insert/extract on-the-fly type generation
  8) Print out types of all assignments -- this helps with debugging
  9) Fix type printing as called by tre_print.  Now type variables in a
     tre_print will be correctly identified as 'a, 'b, etc.  Before they
     might all be called 'a even when they were different.  (This was an
     error of printing -- the types were correctly stored as differentiated
     variables.)

1996-12-23  faith  <faith@dict.org>

  * version.c:
  1) Get insert/extract working.  For type checking, there is now a callback
     that will be called whenever a type definition cannot be found in the
     usual ways (this is a ``last resort'' callback).  The extract/insert
     type creation callback examines the current tree and creates an
     inference rule for it, making an entry in the symbol table so that this
     won't have to be regenerated again (although this may not currently be
     in the proper scope).  Next, I'll use this same callback to generate
     inference rules for indexing instances.
  2) Re-did all the range stuff.  Now N_Range1, N_Range2, and N_Range3 are
     carried through the transformations end-to-end.  This allows early
     detection of range1, and prevents a lot of dists of 1's.  It also means
     that we can avoid dpl_st_range_p at the Proteus-source level, since this
     function is not working in DPL.
  3) Added transforms to DPL calls for #, +/, ++, and a few others (?).
  4) Fixed some places where _tre_DeleteQueueProhibited was not being
     properly restored.  This led to a situation where the delete queue was
     never emptied, which led to infinite attempts to delete the deleted
     node.

  Next, figure out how to type check indexing.  Was the type system designed
  to handle this?

1996-12-22  faith  <faith@dict.org>

  * version.c:
  1) Removed some calls to fixup_scopes() since these should no longer be
     necessary (because of the hook which calls fixup_scopes() automatically
     at tree-insertion time).
  2) Added extensive debugging printouts to flatten.k and simple.k
  3) Added checks to make sure flattening and simplification actually worked.
  4) Fixed some dpl types in header.pro that were overly restrictive.
  5) Delayed removal of primed operators until type checking is no longer
     done.
  6) Totally re-wrote let simplification to deal correctly with changing
     scopes.  This was needed to get qsort.pro to transform.

  qsort.pro transforms now, but the output won't compile.  I need to get type
  checking working for Insert/Extract before I can look for other bugs in the
  transformations.  Although the type inference engine should be able to deal
  with these functions (it was designed to do so), it has never been hooked
  up to the high-level (e.g., Proteus language) code and tested.  Instead of
  using these type inference features to typecheck these functions, I'm going
  to try to use the backdoor I installed for the typechecking of the
  higher-order primed functions.  This should be easier to get working, and
  still makes use of the type inference engine, it just bypasses the
  arithmetic type clauses.

1996-12-14  faith  <faith@dict.org>

  * version.c: 1) Changed spacing of ChangeLog
  2) Re-wrote let flattening (Palmer96 Rule1).  But still need to fixup
     scope.
  3) Re-wrote zip flattening (Palmer96 Rule5).  Would like to simplify this
     by adding a Khepera "optional" match.
  4) Added much more readable output for -V tracing (-dverbose).
  5) Added sscope fixups to be automatically applied at each insertion.
  6) Added printing support for unique node values (-d.unique).
  7) Experimented with removing symbols from the symbol table.  This is
     probably a very bad idea, but I'll leave the code there for now.  (The
     functions aren't used.)
  8) Made removal of pending nodes and queuing of pending nodes a critical
     section.
  9) Made fast post-order walks actually work.  (The logic had been inverted,
     so they were incorrectly used on small trees, but not on the main tree.)

  Still working on let scoping debugging.

1996-12-09  faith  <faith@dict.org>

  * Makefile.in: Fix ChangeLog creation

  * doc/extract.pl, version.c, Makefile.in: Added dist target to makefile
  Fixed perl script to work under Perl 5

1996-12-07  faith  <faith@dict.org>

  * version.c:
  1) Temporarily removed FORTRAN transformations from build.  They need to be
     updated in the face of other global changes, but they probably need to
     be completely re-written.
  2) Added support for a dpl subdirectory.
  3) Made other changes to get tiny test program to compile with C+DPL.  Now
     I'm working on qsort and am running into scope problems -- the
     transformations don't automaticallly preserve scope, so scopes must be
     propagated by hand.  Hence, forgetting when the scopes need updating is
     easy to do.  The quick fix is probably to re-run the scope updates from
     the ASTRoot frequently.
  4) Make main() function that includes call to dpl_setmem.  Need to add a
     return 0.
  5) Add last-use detection for variables, and insert calls to dpl_fre_nseq.

  This all means that this simple example now compiles with C+DPL:
      #include "header.pro"
      function foo(i:int, j:int):int { return i*j; }
      print [i in [1..30]: foo(i,i)];

  Tomorrow: get qsort to compile as well.

1996-12-01  faith  <faith@dict.org>

  * version.c: Added query and if-then-else simplification.

  * version.c:
  When looking for cpp, first try to use the one that comes with gcc.  Then
  look on the system for one.  We should probably incorporate the GNU cpp and
  hack it so that it won't print warnings for Proteus code.  For now, just
  redirect errors to /dev/null.

1996-11-26  faith  <faith@dict.org>

  * version.c, error.c:
  1) Added simplify.k and moved all the simplifications there.
  2) Re-wrote the simplifications based on knowledge contained in the
     post-mortem analysis of trans.  Specifically, internested let and
     if-then-else expressions must be handled correctly.  I did the let part
     and will do the if-then-else part next.
  3) Make the uncall functions put identifiers in the top-level scope and
     mark them as DECLARED.  This prevents a N_Var declaration being made for
     them later.  If will also permit us to write type signatures for all of
     these functions, and treat them as builtins.  I think this will
     eliminate the need for moving back-and-forth between infix notation and
     functional notation, since it looks like that only thing that currently
     needs infix notation is the type checker.
  4) Added is_literal call to identifier Proteus literals.
  5) Ripped out the N_Build stuff and added more general call/uncall support
     for nodes which take an N_ExpressionList as an argument (currently,
     N_Sequence and N_Print).
  6) Make things which are already declared as declared, and insert N_Var
     declarations for everything else.
  7) Add C pretty-printing for types in N_Var, N_Param, and N_Function.
  8) Removed number from tree printouts unless -d.enum is used.  These
     numbers were for debugging, but are not useful since we use the N_ names
     for node everywhere.  The other names should probably be deprecated (but
     are still used for default pretty-printing).
  9) In the Khepera language compiler, don't declare any variables introduced
     in a rebuild statement.  Previously, only the root of the rebuild wasn't
     decalred.  This should all be done with typechecking, and will be in the
     next re-write of the Khepera language compiler :)

1996-11-23  faith  <faith@dict.org>

  * version.c:
  1) Make add_primed_func_defns propagate the return type as well as the
     argument types.
  2) Added functions to push [a in a_p, b in b_p, ... : ... ] through the
     expression as index operations (alternatively, this could be implemented
     with the now-non-existent zip primitive).
  3) Added functions to handle simple dom() simplification.  More complex
     functions will be easy to add as needed.
  4) Convert (N_Sequence (N_ExpressionList ...)) into (N_Build ...) so that
     these node can be interconverted with N_Call nodes, allowing iterators
     to be pushed through them.
  5) Added support for the "walk" keyword in the Khepera language.  This
     allows a pre-order walk to be performed of an arbitrary node, much like
     the "children" keyword allows the children to be iterated over.
  6) Fixed bug where deleting nodes which were queued for deletion caused a
     non-reentrant function to be called twice.  (Made tre_delete_queued
     reentrant.)
  7) Added font-lock mode definition as a comment in khepera-mode.el.

  This all means that Dan's Rule 0 through Rule 5 are fully impemented.  I'm
  going to work on function call parameter lifting next, and then on last-use
  detection so that DPL memory management can be added....

1996-11-19  faith  <faith@dict.org>

  * version.c:
  1) Finally got Palmer96 rules 1-5 implemented.  There are a few problems:
      a) Primed function duplication doesn't work unless the type of the
         function is either specified or can be derived.  It can't be derived
         if the prime function isn't used.  The right way to do this is to
         delete primed functions (or not generated them) unless they are
         used.  However, due to POLYMORPHISM, this isn't possible without
         cooperation from the type system.  Adding this cooperation will take
         time.  Hence, I'm punting on this until we deal with polymorphism in
         general.
      b) I used the "James" method of generating primed functions, and I
         haven't written the part that pushed the zip'd components through to
         indexing.  I'll do that next.
  2) Removed Lar's optimiztion.k for the time being.  It doesn't help us to
     actually generate code and only confuses things.  I'll put it back after
     we can generate C+DPL.
  3) Redid all the call/uncall stuff using a header file.  Now, one line has
     to be added and the call/uncall functions will get created _and_ mapped
     into the xfm Rule body.  See functions.h for the list.
  4) Deactivated a bunch of transformations that do not get us any closer to
     executable code.
  5) Commented some of the rules.
  6) Fixed a few aesthetic bugs in error printing.
  7) Saved Lar's transform.c as transform.lars.c.
  8) Tried to fix the enclosed version of cpp to implement the ANSI #
     stringification directive.  Gave up.  Patched the parser routines to
     find the native cpp instead.  Will delete the local cpp next time -- its
     just too old to be useful, and ptrans requires an ANSI C compiler
     anyway.
  9) tre_fast_postorder_allowed lets you know if a tre_fast_postorder walk is
     possible.  It isn't right now if you aren't walking from the root of the
     labeled tree.

1996-11-15  faith  <faith@dict.org>

  * version.c: New example

1996-11-11  faith  <faith@dict.org>

  * version.c, maa.c:
  Broke out type dumping routines (for debugging with readable types).
  Make top-level dist target.
  Added top-level version.c and version/copyright printing stuff.  To bump
      the version, make version.stamp and check in the new version.c.
  Tried to free memory that the type inference system creates.  I got some of
      this, but not all of it.  Specifically, I can't figure out how to
      safely free type expressions (Expr in khepera/lib/typ.c).  These
      maintain their own reference counts, but only for internal references,
      not for references from the AST or from the symbol table.  Sometimes
      types get destroyed on-the-fly, so a simple list of all allocated type
      expressions is not sufficient.  It would be nice to get this done
      sometime, since then we could look for real memory leaks and make
      better use of the debugging malloc technology we have available.
  Fixed all obvious memory leaks in the khepera language translator program
      (which doesn't use the type system, and only had some leaks related to
      the symbol-table).

  * version.c:
  1) Added code to take advantage of 1 and 2 parameter versions of dpl_range*
  2) Added transformations for dpl_dist*, dpl_restrict*
  3) Print warning when an AST node does not have an entry in header.pro
     (a type isn't needed, just an entry -- at least this way we know about
     it; and, because of the powerful type inference engine, everything
     doesn't have to be explicitly typed -- the engine will figure out what
     the type has to be most (all?) of the time).
  todo) work on -fflatten and -fsimple, especially for if statements

1996-11-10  faith  <faith@dict.org>

  * version.c, memory.c, maa.h, basetest.c, basetest.out, base64.c, base26.c, Makefile.in:
  1) Fixed up name mangling for multi-arity types.
  2) Hooked up Libmaa memory objects to the type inference.  This gives maybe
     a 10% improvement on short examples.  Oh well.
  3) Made type printing more pretty by using letters instead of %p (this
     is what the base 26 stuff is for in Libmaa).
  4) Looked really hard at how to get polymorphic (and primed functions) to
     print out in executable code.  The problem here is that the type system
     figures out monomorphic types for each instance of a function use.
     E.g., at the N_Call node, monomorphic types have to exist for type
     checking to complete.  However, after figuring out all this information,
     the type system just THROWS IT AWAY!  This is a fine thing to do for a
     type system, since it can just re-figure it out again later.  But it
     isn't very helpful if you want to generate executable monomorphic
     instances for the functions.  I looked in the type engine at the
     function where the monomorphic-instance information exists
     (inf_infer_definition), but there isn't enough information at that point
     to let the high-level code know that a new monomorphic instance needs to
     be generated.  Fixing this is going to require kludging the type system
     so that it has enough information to notify the high-level code via a
     callback.  Then the high-level code has to deal with renaming the
     monomorphic instance and generating the necessary monomorphic executable
     code.  Getting all of these details right was one of the biggest
     problems that I had with the type inference engine in trans.  Based on
     previous experience with trans, I think this problem will take several
     weeks to fix in ptrans.  Hence, I'm going to ignore polymorphic
     functions for now.  Code will only be generated for typed functions and
     for functions that analyze to a single monomorphic instance (and, maybe
     not even the later, since there still isn't enough information at the
     top level to generate a typed C or Fortran function -- that information
     is also lost even though the function is just untyped and isn't actually
     polymorphic).  Primed functions can be handled with Lar's kludge:
     generate (typed) primed versions of all user-defined functions early,
     and generate code for them regardless of the need for such code.
  5) The next big hurdles are to get DPL memory management working, and to
     get all the appropriate DPL functions generated.  The I can start
     checking the flattening transformations.  I need to get all of this done
     by the middle or end of the week so that I can start on the debugging
     support.  In fact, even without memory management, I can start working
     on debugging support, so that's probably what I should do as soon as
     compilable DPL can be generated...

  * version.c: Recursive typechecking works.  Joy.

1996-11-08  faith  <faith@dict.org>

  * version.c: Recursive functions do _not_ typecheck.  Fuck.
  Made automatic function name mangling work for variable-argument functions.
  Fixed types.k (these rules are far too application order-dependent).
  Make ground matching work (e.g., (N_Node 0) matches N_Node without
  any children) in Khephera language.

1996-11-04  faith  <faith@dict.org>

  * version.c: Fixed pp_* so that default printing styles works.
  Added a bunch of dpl_* primitives.
  Fixed local cpp copy so that ## token concatenation has no warning.
  Added a queue of nodes that have a delete pending.  This allows the
     node that is currently being walked in the tree to be deleted.  This
     had been an impossible operation previously.
  Tightened up error checking in tree walkers.
  Made 'else' actually work in Khepera if clauses.  Previously the else
     clause was executed along with the then clause.

1996-11-02  faith  <faith@dict.org>

  * version.c: Starting to add primitive dpl_mul-like operations.

1996-10-31  faith  <faith@dict.org>

  * version.c: Added dpl_build_*
  Added ability to use .. (sametypes) wildcard in var declaration
    (this is essential to be able to type dpl_build_*)

1996-10-30  faith  <faith@dict.org>

  * version.c, config.sub:
  Added topl.c and pl.k for transformations to a generic parallel library
  Transform various ranges into dpl_st_range_*
  Remove conf.cache when building configure files
  Make config.sub recognize i686
  Removed verbose tree printing so that new tree printing can be more
     selective (e.g., for debugging)
  Fixed bug where a poiner from alloca was used as a symbol name

1996-10-07  faith  <faith@dict.org>

  * maaP.h, version.c: Changes for Solaris cc compiler

1996-10-03  faith  <faith@dict.org>

  * prtest.out, version.c, Makefile.in:
  Added -with-nox option to inhibit building X applications
  Added prtest to libmaa suite

  * version.c, prtest.c, pr.c, maa.h, error.c: Made error messages more uniform
  Made process support use file descriptors instead of stream I/O.  You
  should still be able to fdopen on a fd returned from a function, if you
  do all of the I/O yourself.  However, a filter function was added, so
  playing with I/O probably isn't needed.  Coprocesses, or a coprocess chain,
  should be fairly easy to set up now, in a generalized fashion.  Signals
  still aren't handled in a POSIX way, and deaths of children aren't caught
  asynchronously, so support can still be made better.

1996-10-02  faith  <faith@dict.org>

  * pr.c: Before ripping out stream I/O

1996-09-30  faith  <faith@dict.org>

  * version.c, error.c: Make error messages prettier

1996-09-26  faith  <faith@dict.org>

  * version.c, maa.h, pr.c, base64.c: Work on base64 and process management

1996-09-25  faith  <faith@dict.org>

  * version.c, hash.c, maaP.h, decl.h: Finish Solaris port

  * maa.h, version.c, arg.c: Make ptrans compile and use internal cpp

  * version.c, hash.c, configure.in, config.h.in, Makefile.in:
  Hash bigendian and little endian integers the same way
  This allows us to have test programs that produce the same results on
  different architectures.

  * settest.out, settest.c: Print out random stuff

  * version.c, settest.out, settest.c, rnd.c, hashtest.c, hashtest.out, Makefile.in:
  Hardcoded random numbers for test functions

  * version.c, settest.c, maaP.h, mkrnd.c, decl.h, hashtest.c, configure.in, Makefile.in:
  Stuff for Solaris port

  * config.guess: Make sure all library functions are under LGPL
  Update configure support from autoconf-2.10

1996-09-24  faith  <faith@dict.org>

  * sltest.c, version.c, maaP.h, maa.h, Makefile.in, base64.c:
  Added base64 routines
  Fixed warnings generated under Linux

1996-09-23  faith  <faith@dict.org>

  * xmalloc.c, stringtest.c, timer.c, string.c, sl.c, strdup.c, settest.c, set.c, prime.c, primetest.c, listtest.c, list.c, error.c, debugtest.c, decl.h, debug.c, bit.c, Makefile.in, COPYING.LIB, COPYING:
  Make sure all library routines are under GNU LGPL.
  Make sure all test programs are under GNU GPL.
  Include copies of GPL and LGPL for stand-alone libmaa.

1996-09-02  faith  <faith@dict.org>

  * version.c: Random fixes

1996-08-26  faith  <faith@dict.org>

  * version.c: Work on Fortran -- checkin to take home

1996-08-21  faith  <faith@dict.org>

  * version.c: Fortran types

1996-08-17  faith  <faith@dict.org>

  * version.c: Added Fortran declarations, but still\
  need to remove debugging statements.  Also need to think about unique\
  labeling routine in terms of efficiency.

1996-07-17  faith  <faith@dict.org>

  * debug.c: Catch possible error

1996-06-24  faith  <faith@dict.org>

  * version.c, string.c, maa.h, debug.c: Moving toward FORTRAN output.
  I need to fix the FORTRAN declarations and get the appropriate
  wrapper around the code.  Some sets of transformations were
  disabled for debugging, and I still need to turn those back on.

1996-06-17  faith  <faith@dict.org>

  * version.c, maa.h, flags.c: Added FORTRAN pretty-printing

1996-05-27  faith  <faith@dict.org>

  * prtest.c, version.c, pr.c, maa.h: Merged rik-3 to main branch

1996-05-24  nyland  <nyland@>

  * version.c:
  Added rule to uncomplicate assignment expressions.  FOund problems
  with tracking and partialmatch.

1996-05-14  faith  <faith@dict.org>

  * version.c: Checkpoint.  Working on viewer...

1996-05-10  faith  <faith@dict.org>

  * version.c, prtest.c, pr.c, maa.h:
  Checkpoint.  Preliminary two-window version of ra is working.

1996-04-24  faith  <faith@dict.org>

  * version.c, maa.h, text.c: Added soundex routine

  * install-sh, config.guess: Updated from GNU autoconf-2.9

1996-04-15  faith  <faith@dict.org>

  * version.c: Log inf_infer for replay;
  Add .replay debugging option to print out addresses of nodes when logging;
  Change tabs to spaces in source code manager;
  Add tracking support for partial replay;
  Break up logging into three files;
  Add partial replay support to ptrans (-i option);
  Make sure optimize.k routines are initialized properly;

1996-04-03  faith  <faith@dict.org>

  * version.c: Merged rik-2 with main trunk; Fixed tracking bug.

1996-04-03  nyland  <nyland@>

  * version.c: Continued work on xform rules.
  Fixed a parser bug.

1996-03-29  yakowenk  <yakowenk@>

  * version.c, list.c: Made a minor adjustment to output format of lst_dump

1996-03-27  faith  <faith@dict.org>

  * xmalloc.c, sl.c, version.c, maaP.h: Merged rik-1 onto Main Branch

1996-03-26  nyland  <nyland@>

  * version.c: Working on transformations/optimizations.
  Added Tag support.

1996-03-26  yakowenk  <yakowenk@>

  * version.c: increment version number

1996-03-24  faith  <faith@dict.org>

  * version.c:
  Added summary information for creation, destruction, and replacement
  tracking.

  * version.c, sl.c: Added recursive-clean target to top-level Makefile.
  Added unique identifiers to tree nodes (different from node labels).
  Added functions to track debugging information.
  Changed log (-l command line option) to log tracking information.
  Documented xfm.c functions.
  Changed khepera to support new logging mechanism (more precise).
  Unset skip list pedantic debugging flag (20% speed improvement).

  * version.c: Fixed up makefile in doc directory.
  Made most lines < 80 characters long in header.pro.
  Fixed mangling so that var 'foo' is found (as well as var foo).  This will
  not be available on the main branch until the next major merge.  Hence,
  main branch users may want to edit header.pro to remove the var 'foo'
  syntax for builtin functions.
  Added magic matching to new functions in typ.c.
  Avoided core dump in source.c when no source info is available.

  * version.c: Minor fixes.  This is mostly a test of branches.

1996-03-23  faith  <faith@dict.org>

  * doc/Makefile.in: Added flag.c

  * version.c, maa.h, maa.c, debug.c, flags.c, Makefile.in:
  Added flg_* functions.  These work just like dbg_*, except they use a
  different set of bits, and they don't reserve the last 30 bits for internal
  use.  So there are about 120 flags available with flg_.  Both flg_* and
  dbg_* now allow -flag ro remove a flag and +flag to add a flag.  So, for
  example, flg_set( "all" ) can be called and then flg_set( "-new-code" ),
  and all the flags will be set except the one associated with FLG_NEW_CODE
  (assuming ptrans naming conventions).  Or you can say flg_set( "none" ) and
  then add a single flag with flg_set( "+new-code" ) or flg_set( "new-code" ).

1996-03-19  faith  <faith@dict.org>

  * version.c: Now only one % is required in .k files, not two.
  The khepera language supports if-then-else instead of just if-then.

1996-03-11  yakowenk  <yakowenk@>

  * version.c, maa.h:
  Added support to the type inference engine for tuples, primed-functions,
    and inferred function types.
  Access by field name is allowed only on tuples declared with those names.
  Strings can be used in type expressions to allow field names to be part
    of the tuple type.
  Symbol-table-pointers can be used in type expressions to allow limited
    type-checking of prime functions whose nesting depth won't be known until
    run time.
  The function-name-mangler adds inference rules for newly-created functions
    to the symbol table when it is called to generate their names.

  * list.c:
  Added support to the type inference engine for tuples, primed-functions,
    and inferred function types.
  Access by field name is allowed only on tuples declared with those names.
  Strings can be used in type expressions to allow field names to be part
    of the tuple type.
  Symbol-table-pointers can be used in type expressions to allow limited
    type-checking of prime functions whose nesting depth won't be known until
    run time.
  The function-name-mangler adds inference rules for newly-created functions
    to the symbol table when it is called to generate their names.


1996-03-05  nyland  <nyland@>

  * version.c:
  Added more transformations.  Turned off Fortran printing (unless you type
  -dfortran).  Split flatten.k into two files (new = optimize.k).

1996-03-03  faith  <faith@dict.org>

  * version.c:
  Added rebuild, if, break, return to Khepera language.  I need to think
  about a way to detect and/or mark builds that result in memory leaks...

1996-02-27  faith  <faith@dict.org>

  * version.c, sl.c: Make a local copy of skiplist data prior to the iteration,
  and then walk over the copy.  This appears to generate results identical to
  those produced by the -d.slow walk in all cases.  Thanks to Jan Prins for
  suggeting this solution to the walking problem.

  * version.c, decl.h:
  Added spaces to default S-expression fallback in the pretty
  printer.
  Added support for precedence which can be used to insert parens where needed.
  This is fairly primitive right now, but the key function is needs_paren in
  support.c -- enhance it at will.

1996-02-26  faith  <faith@dict.org>

  * strdup.c: For MIPSEL/DECstation port

  * version.c, stringtest.c, stack.c, maaP.h: Moving toward 64-bit support...

  * version.c, timer.c, sl.c, set.c, maaP.h, maa.h, list.c, hash.c, debug.c, configure.in:
  Made libmaa compile with -ansi -pendantic.
  Removed all nested functions from libmaa, since they are not in the current
  ANSI C standard.  I hope they will be in C 9X :).
  Also, added HSH_ITERATE macro and support, and *_iterate_arg functions to
  allow an arbitrary argument to be passed to the iterator.  This eliminates
  the need for nested functions, but can make the code uglier.

  * config.sub, config.guess: Update to files from autoconf-2.7

1996-02-25  faith  <faith@dict.org>

  * doc/refalpha.bst, doc/libmaa.tex, doc/libmaa.bib, doc/Makefile.in, version.c, sltest.out, sltest.c, sl.c:
  Added user-specific callbacks for tre_match.  You register
  these with tre_register_compare, and then if you pass a flag to tre_match,
  it will use them.

  I also got the documentation to print, but it is not pretty yet. It still might be helpful.

  * version.c, sl.c: Robustify skip list walks.  sl_iterate should now be
  stable in the face of arbitrary insertions and deletions that occur during
  the walk.

  * version.c, sl.c, maa.h, maa.c:
  Fixed skip list iterator to work with deletions.
  p1.pro finally does _exactly_ the same thing with and without -d.slow, where
  _exactly_ means that the log and node labels are identical.  I have one
  additional test case I want to work up to make sure that this is finally
  finished -- it must be a rule that replaces a child with a node type of
  the same kind as both the matched node and this child (I doubt this happens
  often).

  For now, treat -d.slow as the gold-standard, but try not using it.

1996-02-24  faith  <faith@dict.org>

  * version.c: Bump version.

1996-02-23  faith  <faith@dict.org>

  * version.c, sltest.c, sl.c, set.c, maa.h, maa.c, hash.c, Makefile.in:
  Replaced red-black trees with skiplists.
  Before I merged in the stuff Lars just added, this appeared to work...

1996-02-18  faith  <faith@dict.org>

  * version.c: Red-black trees finally work.
  I gave up on not using sentinels, and just implemented the algorithms in
  Cormen, et al., directly.  There is still a discrepancy between the
  log with and without -d.binary, so if anything looks odd, jump back to
  -d.binary (or even -d.slow) just to make sure.

1996-02-16  faith  <faith@dict.org>

  * version.c: More RB tree work.  Do not use this version.

1996-02-12  faith  <faith@dict.org>

  * version.c:
  Toward red-black tree.  I am going to add parent node and use the algorithms from Cormen, et al. Until then, use the -d.binary switch for unbalanced trees.

1996-02-11  faith  <faith@dict.org>

  * version.c, decl.h: Fixed unbalanced binary trees and related bugs

1996-02-09  faith  <faith@dict.org>

  * doc/libmaa.tex, doc/extract.pl, doc/lgrindefs, doc/Makefile.in, version.c, maa.c, list.c:
  Fixed up documentation

1996-02-06  faith  <faith@dict.org>

  * version.c, Makefile.in: Minor typographical changes.

1996-02-04  faith  <faith@dict.org>

  * version.c: Added stubs so that work on flattening transforms can progress.
  Made all *.k files compile directly to a *.o file, instead of being
  included in some other file.  This is much better.

1996-02-02  faith  <faith@dict.org>

  * set.c, version.c, pr.c, memory.c, maa.h, list.c, maa.c, hash.c, error.c, arg.c, Makefile.in:
  Replaced Khepera-specific things with Libmaa-specific things.

1996-01-31  faith  <faith@dict.org>

  * version.c, maa.h, hash.c:
  Changed hsh_iterate to return non-zero if it was terminated early.  All iterators should be updated to do this.

1996-01-30  faith  <faith@dict.org>

  * version.c, configure.in, Makefile.in:
  Adjust configuration to support --with-prof and --with-gprof;
  Make version.c updates more compatible with cvs.

1996-01-29  nyland  <nyland@>

  * version.c: Added some type inference rules.

1996-01-29  faith  <faith@dict.org>

  * version.c: Made most nodes constant arity --
  the type-declaration nodes can probably be of variable arity without
  problems.

1996-01-28  faith  <faith@dict.org>

  * version.c, maa.c: Tag subtrees rooted at N_TreeVar;
  Add the ability to suppress printing in tree.c and pp.c;
  Suppress the printing of N_TreeVar subtrees unless -dheader is given;
  Make -dtypes dump types in a somewhat readable format (use typ_print())

  * version.c: Fixed forest support
  Iterator expansion rules that we added Friday now work.

  * version.c: Added forest support to Khepera language

  * version.c: Fixed latest parsing problem
  Added support for pre-processor line number directives
  Trying to get interesting symbols printed better -- need to tag all of the
  treevar variables as special, so they will not be printed every time.\ Need to add support for forest replacements to Khepera language.

1996-01-27  faith  <faith@dict.org>

  * version.c: unhose version.c

1996-01-26  nyland  <nyland@>

  * version.c: Added some rules, and added some example proteus programs.

1996-01-23  faith  <faith@dict.org>

  * version.c: Make top-level make friendlier

  * version.c, Makefile.in: Fix distclean rule

  * configure.in, version.c, Makefile.in:
  Make new tree hierarchy configure and compile

1996-01-20  faith  <faith@dict.org>

  * doc/Makefile.in: *** empty log message ***

  * doc/Makefile.in, version.c, install-sh, pr.c, configure.in, config.guess, config.sub, Makefile.in:
  Making libmaa a standalone library

1996-01-15  faith  <faith@dict.org>

  * timer.c, string.c, pr.c, prtest.c, maaP.h, maa.h, maa.c, error.c, configure.in, config.h.in, arg.c, argtest.c, Makefile.in:
  Started to add process management routines; fixed bugs in argument processing; fixed other bugs

1996-01-08  faith  <faith@dict.org>

  * doc/Makefile.in: Added doc to libmaa

  * settest.out, version.c, memory.c, pr.c, maa.h, maa.c, hashtest.out, configure.in, config.h.in, argtest.out, argtest.c, arg.c, Makefile.in:
  Adding arg and pr to libmaa
  Making libmaa more independent for eventual isolation
  Improvided viewer

1996-01-02  faith  <faith@dict.org>

  * decl.h: Minor fixes for Sparc

  * stringtest.c, primetest.c, maa.h, maa.c, listtest.c, error.c, debugtest.c, Makefile.in:
  Viewer demo works (under Linux)

1996-01-01  faith  <faith@dict.org>

  * Makefile.in, stringtest.out, primetest.out, settest.out, listtest.out, debugtest.out, hashtest.out, bittest.out:
  Added simple test suite

  * list.c: More work on viewer.

1995-12-31  faith  <faith@dict.org>

  * timer.c, string.c, bit.c, prime.c: Updated documentation

1995-12-11  faith  <faith@dict.org>

  * xmalloc.c, set.c, error.c, hash.c: Fixed recursive labeling;
  Made sets use {};
  Better magic/structure checks in tree.c;
  Added .. and 0 to Khepera Language;
  Added rules to unnnest iterators;
  Misc. bug fixes in libmaa.

1995-12-04  faith  <faith@dict.org>

  * set.c, hash.c: Farey Fractions replaced with Integer Labels

1995-12-03  faith  <faith@dict.org>

  * maa.h, maa.c:
  Start of Farey Fraction to Integer Labels -- unfinished -- do not check out

1995-12-01  faith  <faith@dict.org>

  * maa.h: Fixed __attribute__((unused)) bug

1995-11-20  faith  <faith@dict.org>

  * hash.c: Finally fixed whitespace bug in Proteus parser; other bugs fixes

1995-11-19  faith  <faith@dict.org>

  * decl.h: Filter input files through cpp

  * timer.c, xmalloc.c, stringtest.c, strdup.c, string.c, settest.c, stack.c, set.c, prime.c, primetest.c, maaP.h, memory.c, maa.h, listtest.c, maa.c, list.c, khepera.h, kh.c, kh.h, hashtest.c, hash.c, error.c, debugtest.c, decl.h, debug.c, bit.c, bittest.c, Makefile.in:
  Moved low-level data-structure stuff from libkhepera to libmaa

  * khepera.h: Added syntax directed xfm; made logging sane

1995-11-18  faith  <faith@dict.org>

  * kh.c, khepera.h: More transformation engine work

1995-11-18  yakowenk  <yakowenk@>

  * khepera.h: Handle monomorphism in scopes
  Initialize sym->typeExpr when creating a sym_Entry
  Node-name mangler always calls str_find()
  Also print lower-level scopes when printing a symbol table
  Allow type definitions on final sequences of children nodes using '..'

1995-11-15  faith  <faith@dict.org>

  * timer.c, khepera.h, hash.c, kh.c, Makefile.in:
  Added scopes for Khepera and Proteus; merged CVS changes; fixed bugs

1995-11-13  yakowenk  <yakowenk@>

  * khepera.h, kh.c: Added a debugging switch to get detailed type info
  Dropped some unused variables

1995-11-12  faith  <faith@dict.org>

  * khepera.h: *** empty log message ***

1995-11-10  faith  <faith@dict.org>

  * timer.c: Prevent overflow

1995-11-08  yakowenk  <yakowenk@>

  * khepera.h, kh.c: getting ready to really handle polymorphism
  making set-constraints work
  improved output for type clashes

1995-11-07  faith  <faith@dict.org>

  * string.c, khepera.h: Added more scope support

1995-11-01  yakowenk  <yakowenk@>

  * khepera.h, hash.c:
  corrected various bugs and hacked initialization of polymorphics
    to allow type inference on our example

1995-10-31  faith  <faith@dict.org>

  * khepera.h: *** empty log message ***

1995-10-27  faith  <faith@dict.org>

  * timer.c, khepera.h, kh.c, hash.c: Build inference rules on tree

1995-10-24  faith  <faith@dict.org>

  * khepera.h:
  Fixed most of last nights problems, but it still does not link, probably because the functions names are not right or do not exist.

  * kh.c, khepera.h: Working on inference rule trees

1995-10-23  yakowenk  <yakowenk@>

  * khepera.h: check node id's during AST unification, allow wildcards
  remove sample function-name-mangler from symbol.c

  * set.c:
  bug fix: deleting the first item in a bucket dropped the whole bucket

1995-10-23  faith  <faith@dict.org>

  * timer.c, khepera.h, kh.c: More memory leaks; started on xfm routines

1995-10-22  faith  <faith@dict.org>

  * timer.c, kh.c: Fixed memory leaks in timer.c and debug.c

  * timer.c, khepera.h, kh.c:
  Got scopes working on Proteus AST; fixed bugs; added comments

  * khepera.h: Fun with CVS...

1995-10-22  yakowenk  <yakowenk@>

  * khepera.h: ref count bug fix
  inf initialization hacks

1995-10-11  faith  <faith@dict.org>

  * khepera.h, kh.c: Added example directory; tre_replace

1995-10-08  faith  <faith@dict.org>

  * timer.c, khepera.h, string.c, kh.h, kh.c, debug.c, bittest.c, bit.c, Makefile.in:
  Expanded Khepera langauge; added timers

1995-10-02  faith  <faith@dict.org>

  * khepera.h, error.c, Makefile.in: Work on typechecking merge

1995-09-29  yakowenk  <yakowenk@>

  * khepera.h, error.c, Makefile.in: added type inference programs

1995-09-29  faith  <faith@dict.org>

  * khepera.h, debug.c, bit.c: Add bits; fix bugs

  * xmalloc.c: Fix inline

  * getopt.c: Fix compiler warnings

1995-09-11  faith  <faith@dict.org>

  * khepera.h, kh.c, Makefile.in: Getting ptrans parser in shape.
  Misc. changes elsehere.

1995-09-04  faith  <faith@dict.org>

  * khepera.h, error.c: Misc changes.  Added proteus subdir.

1995-08-29  faith  <faith@dict.org>

  * set.c, khepera.h:
  Changed selfOrganize to readonly and enforced readonly conventions.

  * settest.c, khepera.h: Fixed typo in SET_ITERATE macro

  * list.c: Fixed typo (test of remote cvs)

  * khepera.h: Fixed typo

1995-08-28  faith  <faith@dict.org>

  * set.c, memory.c, list.c, khepera.h, hash.c:
  Added SET_ITERATE macro for Bill.
  Added self organization flag to sets, per Bill's suggestion.  This is
  actually necessary for set iteration and should be used as a flag which
  means that the set is not to be modified.  I'll add this next.
  Added MAGIC to hash tables, sets, and lists.

1995-08-25  faith  <faith@dict.org>

  * kh.h, memtest.c: Fixed more __sparc__ problems.

  * strtol.c: Fixed declarations and include files

  * strtoul.c, settest.c, strtol.c, set.c, primetest.c, list.c, khepera.h, kh.h:
  Added more lst_ and set_ functions and a new LST_ iterator.
  Added strtoul.c for non-Linux systems.

1995-08-24  faith  <faith@dict.org>

  * primetest.c: Fix for Suns;clean up config

  * string.c, stringtest.c, stack.c, set.c, primetest.c, prime.c, memtest.c, memory.c, listtest.c, list.c, khepera.h, kh.h, hashtest.c, kh.c, hash.c, getopt.h, getopt1.c, getopt.c, debugtest.c, debug.c, Makefile.in:
  Updating CVS tree with latest work.

1995-04-21  faith  <faith@dict.org>

  * Makefile.in, alloca.c, debug.c, debugtest.c, error.c, hash.c, hashtest.c, kh.c, kh.h, khepera.h, memory.c, obstack.c, obstack.h, set.c, settest.c, stack.c, strdup.c, string.c, stringtest.c, xmalloc.c:
  New file.

