===========================================================================
 This file describes changes in the IO package beginning from version 1.2:
===========================================================================


==========================
 Changes from 4.1 -> 4.2:
==========================

  - Fix behaviour of IO_select to try again if the system call was
    interrupted. This fixes an infinite loop bug in
    ParTakeFirstResultByFork.
  - Change "source" to "." in AC_FIND_GAP to provide support for BSD.
  - Add script "configure_like_gap"
  - Compile documentation against 4.5.4
  - Fix installations instructions, remove static linking from README.


==========================
 Changes from 4.0 -> 4.1:
==========================

  - Make it compile on Windows.


==========================
 Changes from 3.3 -> 4.0:
==========================

  - Use new build setup using automake/autoconf/libtool
  - Move repository to git@git.gap-system.org/io
  - Updated the documentation of IO_select
  

==========================
 Changes from 3.2 -> 3.3:
==========================

  - Fixed a bug to compile on latest cygwin without warning.
  - Added IOHub functionality and documented it.
  - Hashserver example.
  - Cleanup autoconf configuration.


==========================
 Changes from 3.1 -> 3.2:
==========================

  - Remove the global function f which was accidentally put in there
    in 3.1.
  - Update cnf files for clang and to compile on GAP 4.4 and 4.5
  - Update cnf files to autoconf 2.65
  - Add functions gethostname and getsockname.
  - Change license to GPL 3


==========================
 Changes from 3.0 -> 3.1:
==========================

  - Fix documentation of /dev/random and /dev/urandom
  - Background jobs
  - Parallel patterns: ParMapReduce, ParTakeFirstResult, ParDo


==========================
 Changes from 2.3 -> 3.0:
==========================

  - Added ignoring of SIGPIPE for architectures where standard
    behaviour is to terminate the process.
  - Completely new configure process with our own autoconf scripts
  - IO_gettimeofday new
  - IO_gmtime and IO_localtime new
  - Check for IO_getpid and IO_getppid and IO_kill
  - Load dynamic module earlier (in init.g at the beginning)
  - Release revision 342 as 3.0: 8.4.2009


==========================
 Changes from 2.2 -> 2.3:
==========================

  - Require GAP >= 4.4.9 in PackageInfo.g
  - Change addresses to St Andrews.
  - Add understanding of chunked transfer encoding.
  - Make IO compile on FreeBSD.
  - Added IO_getpid, IO_getppid, IO_kill.
  - Change license to GPL V2 or later.
  - Released revision 328 as 2.3: 3.10.2007


==========================
 Changes from 2.1 -> 2.2:
==========================

  - Fixed a serious bug with the generic object pickler.
  - Released version 296 as 2.2: 2.4.2007


==========================
 Changes from 2.0 -> 2.1:
==========================

  - Fixed bug with IO_stat, that time stamps are usually >= 2^28.
  - Add framework for other packages to install picklers and unpicklers
    even if they are loaded before the IO package.
  - Pickling/Unpickling of functions and operations (methods still a problem)
  - Leave out last argument of IO_GenericObjectUnpickler because it
    was never needed, return either IO_Error or unpickled object. This
    changes the semantics!
  - Pickling/Unpickling of WeakPointerObjects
  - Pickling/Unpickling of permutation groups (including Size and base of 
    StabChain)
  - Pickling/Unpickling of matrix groups (only generators and Size)
  - Pickling/Unpickling of finite fields
  - Set Host component of HTTP request header by default of the name
    of the server argument in SingleHTTPRequest.
  - Alexander Konovalov's CheckForUpdates function.
  - Released revision 289 as 2.1: 26.2.2007


==========================
 Changes from 1.6 -> 2.0:
==========================

  - See to SIGCHLD signal handler in Popen, Popen2, and Popen3
  - WaitPid in PipeThrough*
  - Loop around IO_select calls to ignore EINTR error
  - Sort out __stack_chk_fail_local gcc 4.1 problem
  - case insensitivity in header field names in HTTP protocol
  - fix bug that crashed GAP when starting another process or terminating
    GAP after calling Popen*
  - Added http protocol test.
  - Add tst/platform.g to have a check of "standard things"
  - include more headers with #include
  - take care of PIPE_BUF variable (might not exist on platform!)
  - Improved installation instructions in the manual and the README file.
  - Add proper preface to the manual
  - Fix documentation of Popen*
  - Clean up code for Popen, create IO_ForkExecWithFDs
  - IO_StartPipeline
  - IO_StringFilterFile, IO_FileFilterString
  - paths to executables do PATH lookups using IO_FindExecutable
  - IO_FilteredFile to create a File object which filteres through a pipeline.
  - Let IO_Close automatically call IO_WaitPid under certain circumstances.
  - Released revision 238 as 2.0: 12.12.2006


==========================
 Changes from 1.5 -> 1.6:
==========================

  - New binding IO_fcntl with corresponding constants in IO
    (this is necessary for switching a file descriptor to O_NONBLOCK)
  - In IO_WriteNonBlocking only try to send PIPE_BUF bytes instead
    of full buffer to avoid blocking (is this the solution?)
  - Functionality to pipe a string through an external command
    using I/O multiplexing
  - New client side HTTP protocol implementation
  - Use chapters in documentation
  - New functions IO_PipeThrough and IO_PipeThroughWithError to pipe
    a string through a process.
  - Released version 1.6: 16.11.2006


==========================
 Changes from 1.4 -> 1.5:
==========================

  - Big changes in the buffered I/O functionality to allow for non-blocking
    I/O with buffers. Documented all. This changed the interface to buffered
    I/O considerable!
  - Test code for buffered I/O.
  - Test code for pickling/unpickling.
  - Some small bug fixes of bugs found during development of test code.


==========================
 Changes from 1.3 -> 1.4:
==========================

  - moved real random sources from the orb package here
    adjust them to new library code
  - implement picklers/unpicklers for random sources


==========================
 Changes from 1.2 -> 1.3:
==========================

  - hint to load a package if there is no handler for magic during unpickling
  - follow Frank's suggestion to allow more than one package with a
    C-part to be linked to a statically compiled GAP, document this
  - release subversion revision 155 as Version 1.3


