Release notes
=============
-4.1 (work in progress)
+5.0 (work in progress)
----------------------
-* The mainloop module has been rewritten:
+* The <<mainloop:,mainloop>> module has been rewritten:
** Multiple instances of the main loop are supported (to be used in different
threads or locally within a library function).
** The new implementation is more efficient: it uses heaps for timers,
** For any event type, it is possible to ask whether it is active (added to the mainloop) or not: <<mainloop:fun_hook_is_active,`hook_is_active()`>> and friends.
** A new mainloop front-end for asynchronous <<mainloop:recordio,record-based I/O>> has been added.
+* Added support for <<trans:,resource pools and transactions>>, which is a general
+ mechanism for tracking resources and reporting errors. It is still considered
+ experimental, so the API can change in future releases.
+
* Added a growing array module `gary.h`, similar to `gbuf.h`, but with
a much more convenient interface.
** *Incompatible:* `ucwlib_context->thread_id` is no longer available directly,
please use ucwlib_thread_id() instead.
+* *Incompatible:* Several modules have been declared obsolete and removed:
+** `sighandler` -- generic signal handling (it still exists internally)
+** `qache` -- a mmap-based shared cache
+** `prefetch` -- an interface to memory prefetch instructions; superseded by GCC `__builtin_prefetch`
+** `randomkey` -- a generator of cryptographically strong pseudo-random tokens; will be replaced
+ by something more generic soon
+** `profile` -- a profiling hack
+
+* *Incompatible:* Several modules now have their own header files:
+** `process.h` -- all functions related to processes, previously declared in `lib.h`
+** `io.h` -- functions related to files from `lib.h` and `lfs.h`
+
* `UCW::Configure` supports running of test programs.
-* `UCW::CGI` support multiple argument tables and UTF-8 mode.
+* `UCW::CGI` support multiple argument tables and UTF-8 mode. Also, it uses the
+ proper HTTP status codes when reporting errors.
4.0 (2009-04-13)