[Aug 5 2008]

 * MODIFIED: http_read_request/3 throws error on illegal request and http_wrapper/5
   maps these to internal server errors.
   
 * MODIFIED: http_open/3 now raises an error if the URL is not well-formed
   (used to fail silently).
   
[Jul 31 2008]

 * FIXED: handling setting http:chunked_transfer(never).  Yves Raimond.
[Jul 3 2008]

 * MODIFIED: Deleted the `after' option processing.  Modern code can start a
   thread to deal with formulating a reply and start procesing after the reply
   has been sent.
   
[Jul 2 2008]

 * ADDED: Support for HTTP 503 (service unavailable)
   
 * ADDED: Support for options chunked and spawn in http_handler/3.
   
[Jun 27 2008]

 * FIXED: Read JSON reply when using chunked encoding
   
 * FIXED: Post header when using data in CGI format (used by JSON posts)
   
[Jun 25 2008]

 * MODIFIED: http_get/3 using to(atom) or to(codes) perform UTF-8 decoding if
   the content type is declared as UTF-8.
   
[Jul 2 2008]

 * ADDED: Bug#365: timeout support for the HTTP client library.  Keri Harris.
[Jun 16 2008]

 * ENHANCED: Reduce HTTP header parsing time

 * ENHANCED: Reduce overhead of deleting dead HTTP sessions

[May 21 2008]

 * FIXED: atom_json_term(-,+,+): typo.  Torbjörn Lager

[Apr 28 2008]

 * ENHANCED: Perform a GC at the end of a communication with a client.  Note that
   at that moment we have little active memory (=cheap GC), while otherwise we may
   remain idle for a long time with large stacks.
[Apr 2 2008]

 * FIXED: Throw an exception in illegal input wo json_write/3.

[Apr 1 2008]

 * FIXED: Close the server socket in http_stop_server/2.  John Stewart.

[Mar 28 2008]

 * MODIFIED: html//1 interpretation of Module:Term.  Previously this acted as
   \(Module:Term), now it acts as Module:html(Term), interpreting an entire
   specification relative to a module.
   
[Mar 20 2008]

 * FIXED: Make HTTP status messages work when using the xhtml dialect

[Mar 10 2008]

 * FIXED: HTTP accept loop to deal properly with termination

[Mar 9 2008]

 * FIXED: Various issues around JSON booleans and null.   Michiel Hildebrand.

[Feb 26 2008]

 * FIXED: Avoid error on destroyed message queue in http_stop_server/3.
   Ferreira Maurizio.
[Feb 8 2008]

 * ADDED: Hook to expand HTML head material.

[Feb 7 2008]

 * ADDED: html_receive//2 to allow for post-processing of posted messages

 * MODIFIED: http_post//2 now executes embedded commands delayed.

[Feb 1 2008]

 * FIXED: html_write.pl: avoid multiple receivers for xmlns.

[Jan 23 2008]

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

 * DOC: Applied various patches.  Item#272, Ulrich Neumerkel.

[Dec 22 2007]

 * FIXED: Write JSON newlines always as \n.  Also write all control characters
   that have no defined escape (< ' ') as \uXXXX.  Michiel Hildebrand.
   
 * FIXED: json_read/2 for strings holding double-quotes.

[Dec 18 2007]

 * WORKAROUND: Emit no DOCTYPE header of the doctype is set to ''.  This avoids
   a bug in Microsoft IE AJAX processing.
   
[Dec 16 2007]

 * FIXED: recursive handling of lists in prolog_to_json/2.  Michiel Hildebrand

[Dec 15 2007]

 * FIXED: is_json_term/2 for pairs.  Michiel Hildebrand.

[Dec 13 2007]

 * ADDED: A predefined `head' receiver for http_post//2 and a predefined `xmlns'
   receiver used by xhtml_ns//2 to define XML namespaces in xhml mode.  Clarified
   documentation of the html_write library with examples on how to deal with HTML
   head material.
   
[Dec 11 2007]

 * DOC: various enhancement to the presentation of pldoc @keywords

[Dec 7 2007]

 * MODIFIED: renamed library(http/http_chunked) to library(http/http_stream).
   Added range-limited streams
   
[Dec 5 2007]

 * ADDED: library(http/http_json.pl), integrating JSON support into the
   HTTP libraries.
   
[Dec 4 2007]

 * ADDED: library(http/json), providing (still incomplete) JSON support

[Nov 16 2007]

 * ENHANCED: Bug#323: no longer force bgcolor=white in pagebody//1. Chris Sutton.

[Nov 9 2007]

 * ADDED: type between(Low, High) for numerical values

[Nov 6 2007]

 * ADDED: post/receive mechanism to modularize CSS and Javascript support in
   library(html_write).  Documented using PlDoc LaTeX backend
   
Oct 1, 2007

 * ADDED: http_stop_server/2 to stop a running HTTP server.

Sep 26, 2007

 * ADDED: http_set_authorization/2 in library(http/http_open) to provide
   authorization defauls.

 * ADDED: authorization(basic(User, Passowrd)) to the options of http_open/3.
   Now generates a permission error for common applicable 4xx errors.

Jun 21, 2007

 * Avoid leaking stream handle in http_get/3 on chunked encoding.

Jun 20, 2007

 * ENHANCED: Support chunked encoding in http_get/3 and http_post/4 on the
   new http_chunked library, reducing memory usage and overhead.

Jun 19, 2007

 * ADDED: Support chunked encoding through library(http/http_open) based on
   new http_chunked library.

Jun 16, 2007

 * ADDED: library(http/http_chunked).

Jun 7, 2007

 * ADDED: http_dispatch and http_authenticate libraries.

Jun 1, 2007

 * FIXED: Use new predicate_indicator frame attribute for safe error
   handling.

May 23, 2007

 * FIXED: Preserve extra request-headers over redirect.  Yves Raimond.

May 20, 2007

 * FIXED: redirection issues.  Yves Raimond.

Apr 12, 2007

  * ADDED: .svg to mimetypes

Apr 10, 2007

  * FIXED: Forcing UTF-8 character set.

Mar 22, 2007

  * FIXED: Bug#269: time-stamp was emitted in current locale.

Mar 19, 2007

  * ADDED: Include name of parameter in type-errors detected by
    http_parameters/2.

Mar 15, 2007

  * ADDED: Include peer in session management for better security.
  * ADDED: Broadcast session start/end to allow deletion of derived
    data.

Mar 11, 2007

  * FIXED: http_open/3: send Host: <host>:<port> if port is not 80.

Mar 9, 2007

  * ADDED: reply_html_page/2.  To be documented

  * ADDED: Pass protocol(http/https) into request.

Mar 7, 2007

  * FIXED: handle throw(http_reply(moved_temporary(URL))) properly.

Mar 6, 2007

  * ADDED: final_url option to http_open/3

Mar 5, 2007

  * MODIFIED: debug(header, ...) --> debug(http(header), ...)

  * ADDED: codes([Type], Codes) to http_post_data.

Feb 26, 2007

  * ADDED: Keep connections open on not_modified and replying files.

Feb 9, 2007

  * ADDED: Support for 302 (moved temporary) HTTP replies to the server.

Feb 8, 2007

  * ADDED: Map existence_error(http_location, URL) and 
    permission_error(http_location, access, URL) to appropriate HTTP
    headers.

Feb 2, 2007

  * ADDED: Report status of stopped worker.

Jan 24, 2007

  * ADDED: Support for 303 (see other) HTTP replies to the server.
    Yves Raimond.

Jan 18, 2007

  * ADDED: html_set_options/1 and html_current_option/1 to html_write.pl.
    Allows for changing the document type as well as writing XHTML output
    from the same DCG rules.

Jan 15, 2007

  * ADDED: Redirect support for 301 and 303.  Yves Raimond.

Dec 13, 2006

  * FIXED: avoid passing reply_header option to convert hooks (conflict
    with SGML plugin).

Dec 12, 2006

  * FIXED: Properly close sockets on errors in http_open/3.

Dec 8, 2006

  * ADDED: support for HEAD to http_open/3.

Oct 31, 2006

  * ENHANCED: Documentation

Oct 30, 2006

  * ADDED: Allow for A+B in attribute values.

Sep 18, 2006

  * FIXED: inetd_httpd: set stream encoding to octet to be able to handle
    binary data.  Nicos Angelopoulos.

Aug 21, 2006

  * FIXED: Quote & inside attribute values.

Aug 10, 2006

  * ENHANCED: Time printing in http_header.pl to use format_time/3.  Faster
    and proper implementation of daylight saving time.

Aug 8, 2006

  * FIXED: http_relative_path/2.

Aug 7, 2006

  * DEBUG: Do not generate debug info for library html_write.pl, as it makes
    code using the library very hard to debug.

Jun 30, 2006

  * FIXED: dangling choicepoint in http_open/3.

  * ADDED: zero_or_more as parameter option to http_parameters/[2,3]

Apr 11, 2006

  * ADDED: http_parameters library

  * FIXED: properly handle the server closing the connection if the connection
    is specified as Keep-alive in the client (http_get/3 and http_post/4).

Feb 24, 2006

  * Added http_error.pl to generate nice looking stack-traces.

Feb 23, 2006

  * Added http_session.pl and http:request_expansion/2 hook.

Feb 16, 2006

  * Added http_current_request/1 to get access to the currently executing
    request.

Feb 10, 2006

  * Make http_post deal with Unicode data.

Jan 20, 2006

  * Map Host:  <host>:<port> into host(Host), port(Port) when reading
    HTTP requests.

Jan 16, 2006

  * Fixed redirect handling if the option to(Stream) is given.  
    Jacco van Ossenbruggen.

Jan 11, 2006

  * Added: handling of 302 redirect messages in http_get/3.
  * Fix http_get/3 with sgml plugin and proxy option.  Usenet, `mans'.

Dec 10, 2005

  * Enhanced robustness of the server to malicious clients by using
    call_cleanup wrappers around the code doing the actual reply.  Old
    code lead to memory and file-descriptor leaking.

Dec 7, 2005

  * Added http_timestamp/2  to http_header.pl.  Also changed the time
    representation to be compatible to the current RFC1132 standard.

Nov 16, 2005

  * Avoid XPCE http servers to be garbage collected.

Oct 17, 2005

  * ADDED: Pass peer from threaded HTTP server to request.

  * ENHANCED: Use UTF-8 encoding for text by default.

Sep 28, 2005

  * FIXED: Regular expressions in xpce_httpd frontend.  Wouter Jansweijer.

Sep 23, 2005

  * ADDED: .class to mimetypes.pl.

Sep 7, 2005

  * FIXED: handle connection error in http_get/3 gracefully.

Sep 6, 2005

  * FIXED: handle error in tcp_accept/3 gracefully.

Sep 5, 2005

  * ADDED: method(head) --> "HEAD".  Matt Lilley.

Apr 26, 2005

  * ADDED: debug(sgml_plugin) and some missing use_module calls.  Simplifies
    debugging automatic conversion.

Mar 4, 2005

  * FIXED: Bug#24: open files binary.   Fabien Todescato.

Feb 11, 2005

  * FIXED: empy header field eats next line as value.  Chris Ritchey.

Jan 4, 2005

  * FIXED: Bug#2: Disconnect from POST replies.

Sep 23, 2004

  * FIXED: Ignore minor types when deciding which plugin to use for the
    SGML plugin.

Aug 30, 2004

  * FIXED: Bug#179: Avoid XPCE dependency on strip_module/3.  Sandro Hawke.

Aug 16, 2004

  * FIXED: Remove " from boundary=... HTTP-POST requests.  Appears necessary
    for posting to Tomcat servers.  Also added explicit MIME-Version: 1.0
    to the header.

Aug 12, 2004

  * ADDED: form_data(+List) alternative to http_post/4.

  * ADDED: option reply_header(-Header) to get the full replied header for
    GET and POST methods.  Also added decoding of the SetCookie field.

Aug 5, 2004

  * ADDED: request_header(Name=Value) to http_open/3

Aug 3, 2004

  * ADDED: keep_alive_timeout(Seconds) for multi-threaded server.

  * FIXED: remove choicepoints in http_open/3

Jul 31, 2004

  * ADDED: http_current_worker/2

Jul 30, 2004

  * ADDED: Allow explicit head and body in page//1 and page//2

Jul 21, 2004

  * FIXED: Bug#166: Allow alternative responses (Sandro Hawke).

  * FIXED: Bug#168: Close connection on timeout (Sandro Hawke).

  * FIXED: Bug#165: Added reuseaddr (Sandro Hawke).

Jul 18, 2004

  * ENHANCED: handle `normal' errors silent (David Reitter)

Jun 28, 2004
	
  * ENHANCED: print server errors and continue

  * ADDED: SSL interface to threaded HTTP server

Jun 21, 2004

  * FIXED: Handling continue header required for POST to MS IIS servers.
    Also more patches sending \r\n where required.  With patches from
    Mike Elston.

Jun 16, 2004

  * FIXED: make HTTP client library write header line terminate with
    \r\n.  Mike Elston.

Jun 15, 2004

  * FIXED: Undefined predicate strip_module/2 in thread_httpd.pl when
    there is no access to XPCE.  Dmitry.

  * ADDED: request_header(Name=Value) option to the option list of
    http_get/3 and http_post/4 for adding user request fields.

  * ADDED: Map body throw(status(not_modified)) onto a "304 Not Modified"
    page.  Mike Elston.

May 20, 2003

  * DOCS: Documented http_post_data/3

  * ADDED: form([Name=Value, ...]) input type to http_post_data/3

May 12, 2003

  * FIXED: problem in mime_pack/3 using Name=Value

Mar 4, 2003

  * ADDED: http_open/3: header(+Name, -Value) option.  Wouter
    Jansweijer.

Jan 23, 2003

  * ADDED: Provide User-Agent header for the client libraries

Jan 8, 2003
 
  * ADDED: Support for using proxy servers Option: proxy(Host, Port).

  * ADDED: Support for 302 (document moved) reply in http_open/3.

