-*- Mode: Change-Log; Coding: utf-8 -*-

0.8.0: (Feb 4, 2019)

* New backend (experimental): IOlib. (Push :USOCKET-IOLIB to *FEATURES* to enable this feature)
* New feature: Optimized WAIT-FOR-INPUT for single-socket case (one-time consing)
* New feature: Exported host-to-hostname (#42)
* Bugfix: [SBCL] more robust/thread-safe WAIT-FOR-INPUT-INTERNAL

0.7.1: (Aug 31, 2018)

* New feature: GET-(RANDOM)-HOST-BY-NAME (now exported) prefer IPv4 on mixed IPv4/IPv6 (suggested by Mark H. David)
* New backend: Symbolics Open Genera (Lisp machine) (patch from @Symbolics, #33)
* Bugfix: [CLISP] fixed issues in server sockets and error handling. (patch from @vibs29, #28, #29)
* Bugfix: [SBCL, ECL] Fix wait-for-input on Windows SBCL and ECL. (patch from Stas Boukarev, #30)
* Bugfix: [LW] fixed non-existing system calls in LW 5.0 (comm::socket-set-tcp-nodelay)

0.7.0: (Oct 25, 2016)

* General: Separated USOCKET and USOCKET-SERVER systems (only the server part depends on Portable-threads)
* General: USOCKET now depends on SPLIT-SEQUENCE (the exactly same vendor code is removed from usocket code base)
* New feature: [LW] (SOCKET-OPTION :TCP-NODELAY) and its SETF version now works on LispWorks 4/5/6/7.
* New feature: [LW] SOCKET-CONNECT now supports setting "tcp_nodelay" in version 4.x and 5.0.
* Bugfix: [CCL] fixed issues in SOCKET-SHUTDOWN
* Bugfix: [CLISP] fixed issues in WAIT-FOR-INPUT (Thanks to a patch by @vibs29, #27)
* Bugfix: [LW] fixed loading in version <= 6.0 (actually 0.6.5 only fixed loading in LW 6.1)
* Bugfix: [ECL] all compilation warnings were checked and fixed.

0.6.5: (Oct 19, 2016)

* New feature: SOCKET-OPTION and (setf SOCKET-OPTION) for :SEND-TIMEOUT (thanks to John Pallister)
* Bugfix: Let (WAIT-FOR-INPUT NIL &TIMEOUT) return NIL with respect to TIMEOUT.
* Bugfix: [LW] fixed loading in LispWorks 5.x & 6.x.
* Bugfix: [LW] fixed SOCKET-SHUTDOWN in all versions.
* Bugfix: [ABCL] Fixed incorrect IPv6 addresses (#26), patch from Elias Mårtenson (lokedhs)

0.6.4: (Mar 17, 2016)

* New feature: [SBCL] IPv6 support (patch from Guillaume LE VAILLANT, #15)
* New feature: [API] SOCKET-SHUTDOWN added (patch from Thayne McCombs #9)
* New feature: [Corman] minimal initial support of this platform
* Bugfix: [SBCL/win32] wait-for-input nil-timeout bug (patch from Michal Herda, #13)
* Bugfix: [ECL] included unistd.h for gethostname() (patch from Daniel Kochmanski, #7)
* Bugfix: [LispWorks] SOCKET-RECEIVE now updates %READ-P (patch from Frank James)

0.6.3: (May 23, 2015)

* Bugfix: [CCL] Further fixed CCL-1.11 compatibility and a typo in SOCKET-CONNECT for CCL-1.10.
* Bugfix: [ECL] Fixed build in some versions.
* Bugfix: [LispWorks] SOCKET-SEND and SOCKET-RECEIVE now throw conditions if something goes wrong.

0.6.2: (Apr 20, 2015)

* Bugfix: [CCL] Fixed CCL-1.11 compatibility.
* Bugfix: [ECL] Fixed compatibility on recent versions.
* Bugfix: [LispWorks] Added support address-in-use-error condition on LW/Win32. (patch from Sergey Katrevich).

0.6.1: (Jun 21, 2013)

* New feature: [MOCL] Initial MOCL support (TCP only, no W-F-I, patch from github.com/Wukix/usocket).
* New feature: [MCL] Initial UDP support for Macintosh Common Lisp (MCL/RMCL).
* New feature: Added TCP-NO-DELAY (TCP_NODELAY) support in SOCKET-OPTION, for TCP client
* Bugfix: [CCL] Added (:external-format ccl:*default-external-format*) to SOCKET-CONNECT, to prevent it fallback to ISO-8859-1 on NIL. (Patch from Vsevolod Dyomkin)
* Bugfix: [CCL] Performance improved WAIT-FOR-INPUT and other fixes. (patch from Faré <fahree@gmail.com>)

0.6.0: (Dec 26, 2012)

* New feature: SOCKET-OPTION and (setf SOCKET-OPTION) for seting and geting various socket options.
* New feature: SOCKET-SEND now support an CCL-like OFFSET keyword for sending only parts of the whole buffer.
* New feature: [ECL] Added support for ECL DFFI mode on Windows. (no need for C compilers now)
* Bugfix: [ECL] ECL now list sb-bsd-sockets as a dependency but relies on REQUIRE. (patched by Juanjo)
* Bugfix: [ABCL] Make USOCKET compile warning-free on ABCL again: MAKE-IMMEDIATE-OBJECT was deprecated a while ago in favor of 2 predefined constants.
* Bugfix: [LispWorks] remove redundant call to hcl:flag-special-free-action. (reported by Kamil Shakirov)
* Bugfix: [CLISP] improved HANDLE-CONDITION for more CLISP environments.

0.5.5: (Feb 27, 2012)

* Enhancement: SOCKET-CONNECT argument :nodelay can now set to :if-supported (patch from Anton Vodonosov).
* Enhancement: [Server] adding *remote-host* *remote-port* to socket-server stream handler functions (suggested by Matthew Curry)
* Bugfix: [LispWorks] Fixed UDP support for LispWorks 6.1 (patch from Camille Troillard by Martin Simmons).
* Bugfix: [LispWorks] Stop using hcl:add-special-free-action for reclaiming unused UDP socket fds to improve multi-threading stablity (suggested by Camille Troillard).
* Bugfix: [LispWorks] Fixed SOCKET-CONNECT on Windows, now LOCAL-PORT never have *auto-port* (0) as default value.

0.5.4: (Oct 1, 2011)

* Bugfix: [ECL] Fixed for ECL's MAKE-BUILD by removing some unecessary code (reported by Juan Jose Garcia-Ripoll, the ECL maintainer)
* Bugfix: [ACL] Fixed for Allegro CL modern mode.
* Bugfix: [SBCL] SOCKET-CONNECT on TCP won't call bind() when keyword arguments LOCAL-HOST or LOCAL-PORT is not set. (reported by Robert Brown)

0.5.3: (Aug 13, 2011)

* Bugfix: [MCL] Fixed SOCKET-LISTEN on vector addresses like #(0 0 0 0)
* Bugfix: [MCL] Fixed WAIT-FOR-INPUT on passive sockets (stream-server-usocket)
* Bugfix: [LispWorks] Fixed using OPEN-UDP-SOCKET in delivered applications (thanks to Camille Troillard and Martin Simmons, this fix is from LispWorks-UDP project).
* Bugfix: [SBCL] Fixed for "SBCL data flush problem", reported by Robert Brown and confirmed by Nikodemus Siivola.

0.5.2: (May 11, 2011)

* General: [SBCL] SOCKET-CONNECT's TIMEOUT argument was limited on non-Windows platforms.
* Bugfix: [CLISP] WAIT-FOR-INPUT now functions right (with/without READY-ONLY), this made Hunchentoot working on CLISP. (Thanks to Anton Vodonosov <avodonosov@yandex.ru>)
* Bugfix: [ABCL] Fix SOCKET-ACCEPT to follow the documented API so that when called without an :ELEMENT-TYPE argument. (Thanks to Mark Evenson, the ABCL developer)
* Bugfix: [LispWorks] Fixed SOCKET-ACCEPT (Windows only) on WAIT-FOR-INPUTed sockets.
* Bugfix: [SBCL, ECL] Fixed wrongly STATE set/unset for WAIT-FOR-INPUT on Windows (report by Elliott Slaughter)
* Enhancement: Additional NAME keyword argument for SOCKET-SERVER for setting the server thread name.
* Enhancement: [ABCL] GET-ADDRESS now works with underlying IPv6 addresses.
* Enhancement: [CLISP] missing GET-LOCAL-* methods for STREAM-SERVER-USOCKET was now added.

0.5.1: (Apr 2, 2011)

* New feature: [CLISP] UDP (Datagram) support based on FFI (Win/Mac/Linux), no RAWSOCK needed.
* Enhancement: SOCKET-SERVER return a second value (socket) when calling in new-thread mode.
* Enhancement: [CLISP] Full support of DNS helper functions (GET-HOST-BY-NAME, ...) added.
* Enhancement: [CLISP] Better network error type detection based on OS error code.
* Enhancement: [LispWorks] Better network error type detection based on OS error code.
* Bugfix: Fixed wrong macro expansions of {IP|PORT}-{FROM|TO}-OCTET-BUFFER functions (since 0.4.0)
* Bugfix: SOCKET-CONNECT didn't set CONNECTED-P for datagram usockets on most backends.
* Bugfix: [SBCL] Fixes for "SBCL/Win32: finalizer problem, etc", by Anton Kovalenko <anton@sw4me.com>
* Bugfix: [SBCL] Fixed SOCKET-SERVER (UDP) on SBCL due to a issue in SOCKET-CONNECT when HOST is NIL.
* Bugfix: [SBCL] SOCKET-CONNECT's TIMEOUT argument now works as a "connection timeout".
* Bugfix: [CMUCL] Fixed SOCKET-SEND on unconnected usockets under Unicode version of CMUCL.
* Bugfix: [CLISP] Fixed and confirmed UDP (Datagram) support (RAWSOCK version).

0.5.0: (Mar 12, 2011)

* New supported platform: Macintosh Common Lisp (5.0 and up, plus RMCL)
* Support for UDP (datagram-usocket) was added (for all supported platform except MCL)
* Add WAIT-FOR-INPUT support for SBCL and ECL on win32.
* Simple TCP and UDP server API: SOCKET-SERVER
* Completely rewritten full-feature ABCL backends using latest Java interfaces
* Lots of bug fixed since 0.4.1

0.4.1: (Dec 27, 2008)

* fixes for ECL, LispWorks, SBCL, SCL

0.4.0: (Oct 28, 2008)

* select()-like api: make a single thread wait for multiple sockets.
* various socket options for socket-creation with SOCKET-CONNECT.

0.3.6: (Jun 21, 2008)

* Code fixups based on advice from the ECL and OpenMCL maintainers.
* New exported symbols: WITH-MAPPED-CONDITIONS, NS-CONDITION, NS-ERROR, NS-UNKNOWN-ERROR and NS-UNKNOWN-CONDITION.

0.3.4: (Jul 25, 2007)

* Fix clisp get-host-name, multiple ECL fixes.

0.3.3: (Jun 05, 2007)

* Fix where host resolution routine was unable to resolve would return NIL instead of erroring.

0.3.2: (Mar 04, 2007)

* Fixes for many backends related to closing sockets.
* LispWorks fix for broken server sockets.
* API guarantee adjustments in preparation of porting Drakma.

0.3.1: (Feb 28, 2007)

* fixed with-server-socket; prevent creation of invalid sockets; 2 more convenience macros.

0.3.0: (Jan 21, 2007)

* Server sockets

0.2.5: (Jan 19, 2007)

* Allegro compilation fix.

0.2.4: (Jan 17, 2007)

* Various fixes for CMUCL, OpenMCL, Allegro and LispWorks.

0.2.3: (Jan 04, 2007)

* Add :element-type support to support stacking flexi-streams on socket streams for portable :external-format support.

0.2.2: (Jan 03, 2007)

* Add ECL support and a small SBCL bugfix.

0.2.1: (Dec 21, 2006)

* Remove 'open-stream' interface which is supposed to be provided by the 'trivial-usocket' package.

0.2.0: (Dec 18, 2006)

* Add support for Scieneer Common Lisp, fix issue #6 and API preparation for server side sockets (not in this release)

0.1.0: (Feb 13, 2006)

* Initial release
