05/09/99 : Added the -libraries option to AgentRestore.java

05/10/99 : Added the -exclude option to AgentRestore.java

05/12/99 : Added "socket" and "connect" stubs to iomgr.c.  Adding the connect
           stub breaks two things: (1) the calls to tcpip_blocking and
           tcpip_nonblocking in tcpip_connect, unix_connect, 
           tcpip_async_connect, unix_async_connect are now completely wrong
           since they put the socket back in blocking mode (whereas the JVM
           needs to keep all connections in nonblocking mode), and (2) 
           tcpip_async_connect and unix_async_connect are no longer 
           asynchronous since the "connect" stub is not asynchronous.  The
           only clean solution is to trap "ioctl" and "fcntl" calls in 
           iomgr.c so that the JVM can keep track of whether the higher
           level code thinks that the socket is blocking or nonblocking.
           Then "connect" can do the right thing.  However, we will try
           some other simpler fixes first.

05/13/99 : Fixed a nasty bug in the meeting code that led to dropped
           MEETING_REQUEST messages if two agents requested meetings from
           each other at exactly the same time

05/14/99 : Fixed a bug in the Agent Java fork code, which caused fork to fail 
           in any child agent (but work fine in a root agent)

05/17/99 : Fixed a nasty interaction between state capture and garbage
           collection in Agent Java.  Specifically, if the state image
           is big enough, the garbage collector might be called during state
           restoration, and then, as it turns out, the collector would
           happily garbage collect the objects that we were in the process
           of restoring (which, needless to say, is really really bad).

05/17/99 : Wrote the Random class

05/18/99 : Converted the String(byte ascii[], int hibyte), toLowerCase and
           indexOf methods in java.lang.String to native code 

05/19/99 : Merged tcpip_blocking and tcpip_nonblocking into a single function,
           tcpip_setBlockingMode, which (1) changes the mode of the TCP/IP
           socket only if necessary and (2) returns the old mode so that we
           can restore it easily later.

05/19/99 : Finished off hot interpreters

05/25/99 : Added the "socket" and "connect" stubs to the Solaris JDK

05/26/99 : Added a MutexLock implementation for the single-threaded environment

05/26/99 : Fixed a bug in newpack.c where we were assigning to the wrong
           element of the "union" structure

06/07/99 : Wrote the MD5 class in encryption/encMd5.{h,cc}

06/14/99 : Wrote the Cipher abstract base class in encryption/encCipher.{h,cc}

06/19/99 : Fixed a memory leak in the receive, receiveEvent and receiveMeeting
           stubs in Agent Java

06/21/99 : Fixed a bug where Agent::receive, etc., were remaining blocked even 
           after the background connection had been severed 
           (AgentIO::connectionAlarm was not waking up waiters when a 
           connection error occurred - it was only waking up waiters when
	   an item was successfully received)

06/22/99 : Made the server print out the reason why socketd or a handler
           failed (e.g., "handler was killed with SIGABRT signal")

06/23/99 : Fixed a state restoration bug (state restoration code could not
           handle floats or doubles whose current value was NaN)

06/24/99 : Fixed a bug in the send, sendEvent and requestMeeting Java stubs
           (the name of the target machine was not being passed to the
	   code that generates error messages)

07/13/99 : Made platform/sun-java-unix/platInterruptImp.cc correctly use
           intrRegister and intrUnregister (rather than the standard Unix
           interrupt functions)

07/14/99 : Added platform/sun-java-unix/platMemoryImp.cc, which re-defines
           operator new, delete, new[] and delete[] to ENSURE that we are
           correctly going through the Java VM routines when allocating and
           freeing memory

07/17/99 : Added more #defines in platform/common/platSystems.cc to handle
           distinct Unix errno's that are defined as the same integer (in this
           case, ENOTSUP and EOPNOTSUPP are the same integer in newer versions 
           of Linux)

07/19/99 : Made the Java VM write the thread dump (on fatal error) out to both 
           stderr and the file /tmp/java-vm-crash.txt 

7/22/99  : Wrote the CipherIdea class in encryption/encCipherIdea.{h,cc}

7/23/99  : Wrote the Compression class in encryption/encCompress.{h,cc}

7/27/99  : Made my native string functions detect OutOfMemory conditions
           and throw the OutOfMemoryError exception

08/08/99 : Added C/C++ memory accounting to Java (i.e., the Java replacements
           for malloc and free now keep track of the memory allocated on the
           C/C++ heap)

08/10/99 : Re-ordered the #include statements to handle new dependencies
           under Slackware 4.0

08/11/99 : Fixed a nasty bug in platform/unix/platExclusionImp.cc.  Our
           nested-lock counter was double-counting.

09/20/99 : Replaced incorrect use of FD_ZERO/FD_SET in 
           server-threaded/servProcess.cc with FDMASK_ZERO/FDMASK_SET

09/21/99 : Fixed a bug where the backgroundConnection function in the
           multi-threaded server was returning the wrong rc

09/21/99 : Made agentd switch to the desired user id immediately (otherwise
           one thread ends up owned by agenttcl, and the rest by root, which
	   is bad)

09/21/99 : Replaced "close" calls in genEncrypt.cc and genPGP.cc with calls
           to PipeUtility::closePipe and FileUtility::close

10/23/99 : Added newlines to the "global violation" output messages

10/23/99 : Removed an incorrect assertion in hotInterpreter.cc and
           fixed an incorrect error check in server-threaded/servProcess.cc

01/26/00 : Added a compilation flag USE_ASSEMBLY_LOCKS so that the 
           assembly-language "fast lock" is only used when we really want it
           to be used.  We were accidentally compiling it into the system
           all the time.

01/29/00 : Added missing constants MEET_FILE_READY and MEET_MESSAGE_READY
           to the SelectInfo.java file

02/11/00 : Rewrote the Java version of platSigioImp.cc and fixed a memory
           leak in the Java agent_select stub

02/24/00 : Added "accept" and "sysAccept" to the Linux version of iomgr.c --
           we must add these two functions to the other versions as well.

05/01/00 -
05/24/00 : Added "accept" and "sysAccept" to the Solaris version of 
           iomgr.c, and fixed several bugs in the pthreads-unix platform
           library and the multi-threaded server

07/01/00 -
12/31/00 : Fixed many more bugs in the multi-threaded server and some bugs in
           the sun-java-unix platform library and wrote the PublicKey classes
           for the encryption library

01/01/01 : Fixed a bug in subTimevals in platTimeval.cc

02/22/01 : Fixed a cast error in servConf.cc
