[Sep 9 2009]

 * ADDED: uri_file_name/2

 * ADDED: library(uri), providing a much faster and modern API to handling
   URIs and IRIs.

[Aug 18 2009]

 * CLEANUP: Bug#413: Complete 'make distclean'.  Feliks Kluzniak
[Aug 7 2009]

 * MODIFIED: WinSock interface now signals WSAECONNABORTED as EOF when reading. This is somewhat debatable, but compatible with the Unix version of the socket interface.  Matt Lilley.

[Aug 3 2009]

 * PORT: Avoid name-clash on SOCK_* constants.
[Jul 27 2009]

 * FIXED: Another timer issue that could crash the alarm-scheduler.

 * FIXED: The library(time) now uses SIGUSR2 rather then SIGALRM if available to avoid interference from libreadline's signal handling of SIGALRM.

 * FIXED: Crash in alarm-timers (Multi-threaded unix version)

[Jul 21 2009]

 * MODIFIED: Make initialization/1 ISO compliant
   This patch is a modest cleanup to the implementation of '$load_file'/3
   from init.pl and provides an ISO compatible implementation of
   initialization/1. This executes the argument goal *after* loading the
   file rather than when encountering the directive. Often this makes no
   difference, but notably load_foreign_library/1 is an exception.
   Therefore we added use_foreign_library/1,2 that act as a directive and
   provides proper integration with saved-states automatically.  Loading
   code using initialization(load_foreign_library(...)) will load the
   library immediately and issue a warning.

   See initialization/1,2 for details and further hints for dealing with
   possible compatibility problems.

[Jul 8 2009]

 * ADDED: alarm_at/4.  Addition provided by Samar Abdallah.

[Jul 6 2009]

 * FIXED: library(time) (Unix version): properly handle multiple alarms at the same time.  Reported by Samer Abdallah.
[Jun 15 2009]

 * BUILD: Skip RFC2202 tests if Prolog is not compiled with unbounded arithmetic. Keri Harris.

[Jun 2 2009]

 * ADDED: uninstall_alarm/1

[Mar 30 2009]

 * FIXED: alarm handling on Win64 (Kerri Haris)

[Mar 19 2009]

 * CLEANUP: Removed all trailing whitespace from all source-files.  This avoids many GIT (merge) warnings.
[Mar 12 2009]

 * MODIFIED: Renamed concat_atom/2,3 into atomic_list_concat/2,3 for compatibility.  Moved the old predicates into library(backcomp).  It is adviced to update your code, but 99% of the code will remain working because the old definitions are autoloaded.

[Feb 4 2009]

 * FIXED: Uninitialised variable in environment parsing of process.c.  Keri Harris.

[Jan 29 2009]

 * CLEANUP: generalisations in the socket library design to allow TIPC to
   reuse parts of it.  Contributed by Jeff Rosenwald.

 * PORT: Port new environment initialisation of process_create/3 to Windows.
   The new environment processing code is free of limits (of course, except
   limits of the operating system).

[Jan 28 2009]

 * ADDED: env option to process_create/3 to specify the environment for
   the child process.

[Jan 26 2009]

 * FIXED: make install_alarm/1 produce an error when installing twice.

 * MODIFIED: Renamed setup_and_call_cleanup/3,4 to setup_call_cleanup/3 and setup_call_catcher_cleanup/4; added to library(backcomp).

 * ADDED: library(streaminfo) for debugging (network) stream issues
[Jan 23 2009]

 * CHECK: Fixed makefile for modified test entry-point

[Jan 22 2009]

 * ADDED: free_on_close option to open_memory_file/4

 * CLEANUP: library(time) to use meta_predicate declaration and make debugging a
   bit simpler.
[Oct 9 2008]

 * ADDED: library(unix): support symbolic signal names.

 * FIXED: Many errors in exceptions raised after failing system calls
   by the libraries from the clib package.

[Oct 2 2008]

 * ENHANCED: Cache value of gethostname/1.
[Sep 11 2008]

 * PORT: Add AC_PREREQ to configure.h for systems that auto-select autoconf
   versions.  After tip by Ulrich Neumerkel.

[Sep 9 2008]

 * ADDED: TCP sockets: support TCP_NODELAY using tcp_setopt(Socket, nodelay(true)).
   After patch submitted by Matt Lilley.

[Aug 14 2008]

 * FIXED: Possible crash if closing a socket in Windows fails.  Matt Lilley.

[Aug 13 2008]

 * FIXED: Windows: closing the read-handle of a socket reported an error.  Matt Lilley.

[Aug 11 2008]

 * INSTALL: Remove all configure files from the git repository
[Jul 4 2008]

 * FIXED: library(process) stream administration (could lead to errors in close)

[Jul 3 2008]

 * FIXED: Avoid possible deadlock in PL_cleanup_fork(). Michiel William Kauw-A-Tjoe

[Jun 25 2008]

 * ADDED: memory_file_to_atom/3 and memory_file_to_codes/3 to convert encodings.

[Jun 27 2008]

 * FIXED: read_line_to_codes/3: foreign implementation did not unlock stream.
[Jun 13 2008]

 * FIXED: Include initialization to load process.so.  Matt Lilley.

[May 21 2008]

 * FIXED: Error message when using a service name in tcp_bind/connect.
   Jean-Marc Vanel.

[May 20 2008]

 * PORT: Port UDP socket support to Windows

 * MODIFIED: Streams in socket.pl and ssl.pl appeared unbuffered.  They
   are now fully buffered.

[May 19 2008]

 * ADDED: support for 'as(Type) option to udp_receive/4

[May 16 2008]

 * FIXED: Process streams are by default in text-mode using full buffering.

[May 12 2008]

 * PORT: Ported library(process) to Windows

[May 11 2008]

 * ADDED: library(process), providing SICStus 4 compatible process interaction
   to the clib packages.  Currently runs on Unix systems only (tested Linux and
   MacOS X 10.4).

   This patch also extends the foreign interface with the PL_get_signum_ex()
   and PL_cleanup_fork().

[Mar 10 2008]

 * FIXED: Pass error while waiting for accept() in Windows

[Feb 26 2008]

 * PORT: Fix compilation of SHA1 routines for SUN/SPARC.  Robert Andersson.

[Feb 15 2008]

 * FIXED: cgi_get_form/1 now assumes input data is in UTF-8.

[Jan 23 2008]

 * PORT: Bug#346: Allow overriding COFLAGS and CWFLAGS in package
   configuration.   Keri Harris.
[Jan 15 2008]

 * PORT: Fix cpp handling in clib package configure.  This is assumed to
   fix the Darwinports on MacOS Leopard.  Nico, Ryoko et Anna.
Oct 6, 2007

  * FIXED: call_with_time_limit non-determinism.  Norbert Fuchs.

Sep 25, 2007

  * Make SHA routines compile on Solaris

Sep 3, 2007

  * Possible not working timer alarm.  Ulrich Neumerkel.

Jul 30, 2007

  * FIXED: Bug#302: memory leak in atom_to_memory_file/2 with filled
    output argument.  Keri Harris.

Jul 12, 2007

  * FIXED: call_with_time_limit/2 if the alarm fires before call_cleanup
    is entered, a theoretical problem using short timeouts on a loaded
    machine.

  * ADDED: install_alarm/1.

  * FIXED: Avoid exit of Prolog on uncaught exception from
    call_with_time_limit/2.  Ulrich Neumerkel.

May 3, 2007

  * ADDED: open_memory_file/4, providing encoding facilities.  Matt Lilley.

Apr 23, 2007

  * FIXED: tcp_accept to deal with stream handles (broken in nbio redesign).

Mar 7, 2007

  * FIXED: Put debug message "shutdown(6=-1, SD_RECEIVE) failed" under
    tcp_debug/1.  Mike Elston

Mar 6, 2007

  * FIXED: Waiting for a socket with XPCE enabled.
  * ADDED: SHA-1 and SHA-2 support in new library(sha).

Feb 28, 2007

  * Re-renerated HTML docs (outdated)

Feb 26, 2007

  * FIXED: complete redesign of nonblock.c socket layer to deal with
    validness of socket handles.

Feb 9, 2007

  * ADDED: MD5 hashes to crypt.  Added library(crypt) to Windows version
    (only supporting MD5).

Feb 2, 2007

  * Fixed alloca issues in socket.c.  Richard O'Keefe.

Jan 31, 2007

  * Documentation update to document issues in the Windows timer
    implementation.

Jan 23, 2007

  * size_t cleanup.

Dec 12, 2006

  * FIXED: Error handling in read_line_to_codes/[2,3] and
    read_stream_to_codes/[2,3].

Nov 8, 2006

  * CLEANUP: GCC warnings

Oct 27, 2006

  * FIXED: random/3 never to generate upper bound.   Nicos.

Oct 16, 2006

  * ADDED: YAP/SICStus compatible library(random).

Sep 7, 2006

  * FIXED: Bug#205 make --> $(MAKE).  Marc Espie

Feb 1, 2006

  * FIXED: Remove DOS ^M from files in maildrop package.  Richard O'Keefe.

Jan 19, 2006

  * Fixed: Bug#137: make time.c compile for single-threaded operation
    Keri Harris.

Jan 12, 2006

  * Fixed: rewrote most of time.c, providing alarm/4 using portable
    pthread code.

Jan 10, 2006

  * UDP ssize_t portability issues

Dec 23, 2005

  * Start work on UDP support in socket.pl.

Oct 14, 2005

  * Fixed signedness error in library memfile, returning incorrect values
    for size_memory_file/2

Oct 11, 2005

  * PORT: Use plld to compile maildrop as position independent code

May 22, 2005

  * PORT: Added maildrop RFC libraries to distribution

Apr 23, 2005

  * FIXED: mime_parse/3: read stream with Sgetcode rather than Sgetc to
    deal with encoding issues.

Feb 17, 2005

  * ADDED: Provide wide-character support for library(memfile).

Dec 16, 2004

  * FIXED: Socket and ssl interaction problems (Windows).  Matt Lilley.

October 04, 2004

  * FIXED: library(socket) and library(ssl): potential crash and starvation
    issue.  Appears to happen only on Windows NT, but the problem can -at
    least in theory- also appear in other Windows versions.  With thanks
    to Mike Elston for providing the test program.

Sep 21, 2004

  * FIXED: cgi_get_form/1 for www-form-encoded strings with lowercase
    %xx.  John Paolillo.

Jul 18, 2004

  * CLEANUP: ensure mimimal library dependency.  After discussion on
    mailinglist.

Jul 5, 2004

  * CLEANUP: split socket library in two to be able to reuse the
    non-blocking socket stuff in the SSL library.

May 5, 2004

  * FIXED: memory leak in open_memory_file/3.  Fabien Todescato.

Oct 2, 2003

  * PORT: Configure socket library for IRIX 6.5 (Rob Myers).

Aug 28, 2003

  * FIXED: Complete rewrite of library(socket) for MS-Windows.

Jun 2, 2003

  * FIXED: time:remove_alarm/1 for MS-WIndows.  Mike Elston.

Mar 14, 2003

  * ADDED: Code to make sockets cooperate with signals, so
    call_with_time_limit/2 works on blocking socket operations.

  * FIXED: Error handling on sockets (Windows)

  * FIXED: call_with_time_limit/2 module problem

Feb 2, 2003

  * FIXED: call_with_time_limit/2 if the argument goal fails.  Wouter
    Jansweijer.

Dec 18, 2002

  * FIXED: make all socket calls resume on EINTR (Unix systems).

Dec 7, 2002

  * FIXED: hand open sockets to other threads (blocking problems in Windows).

Dec 6, 2002

  * FIXED: blocking write in sockets and make tcp_close_socket close the
    associated streams (if any).

Dec 4, 2002

  * FIXED: tcp_close_socket/1 to work on the listened socket. Peter Marks.

Dec 2, 2002

 * ADDED: tcp_bind(+Socket, -Port) to bind with an arbitrary free port.

Nov 29, 2002

 * FIXED: MS-Windows tcp_read() not to wait for messages after we have
   seen FD_CLOSE. Holger Kanwischer.

 * ADDED: Make library(socket) suitable for multi-threaded operation in
   MS-Windows. Mike Elston.

Nov 26, 2002

 * ADDED: Make library(time) suitable for multi-threaded operation.

 * ADDED: library(rlimit) for accessing POSIX process limits

Jul 24, 2002

 * ADDED: tcp_setopt(Socket, dispatch(false))

Jun 20, 2002

 * FIXED: Handle WSAEWOULDBLOCK in tcp_acept() to get a blocking accept
   call.

Jun 11, 2002

 * ADDED: library(files), providing uncommon access to file objects.

29/04/2002

 * Add initialization to load_foreign_library for calls lacking this.
   Holger Kanwischer.

28/03/2002

 * Record position on socket-streams (SIO_RECORDPOS).

 * Many changes to library(socket): fixes for the Windows implementation,
   dispatch events during tcp_read() while waiting for input.

01/02/2002

 * Modified copyright for compatibility with the now LGPL SWI-Prolog system

07/12/2001

 * FIXED: memory_file_to_atom/2 and friends to return size 0, empty atom
   when the file contains no data.

10/06/2001

 * ADDED: library(mime) for MIME message parsing.

07/10/2000

 * ADDED: Allow for descriptor to arguments of dup/2.

30/06/1999

 * ADDED: cgi.pl, cgi.c and form.[ch] providing cgi_get_form/1 to get the
   Form-data if SWI-Prolog is installed as a CGI script.

06/04/1999

 * Renamed the predicates from the socket package to tcp_<their-old-name>.
   These predicates are meant as low-level primitives and their normal name
   is too general.