X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ucw%2Fdoc%2Frelnotes.txt;h=89d9c2c5bc4df8f7179fd7edd514b1ff77437198;hb=ae2b00416589dfe798fc40f0575f62a0c664798f;hp=11b1661744bec52c75cd4e89374a225cf60437ea;hpb=ba1c173f544383aa6553a75dee6e6858d8f243a4;p=libucw.git diff --git a/ucw/doc/relnotes.txt b/ucw/doc/relnotes.txt index 11b16617..89d9c2c5 100644 --- a/ucw/doc/relnotes.txt +++ b/ucw/doc/relnotes.txt @@ -1,10 +1,33 @@ Release notes ============= -4.1 (work in progress) ----------------------- +WIP +--- -* The mainloop module has been rewritten: +* The <> has been improved: +** Multiple instances of the configuration parser are supported. +** *Incompatible:* As there may be more instances, we can no longer use + global variables to control the configuration system. In particular, + `cf_need_journal` and `cf_pool` variables have been replaced by + functions <> and + <>. +** *Incompatible:* Loading of configuration files has been decoupled from + the getopt wrapper, so you might need to include `conf.h` for functions + which were previously declared in `getopt.h`. +** New functions have been added: + <>, + <>, and + <>. + +5.0 +--- + +* *Incompatible:* The `timestamp_t` type has been decoupled from wall clock time. + It now specifies the number of milliseconds from an unspecified origin, so that + it can for example refer to the system monotonic clock. The `ucw_time_t` type + has been removed. + +* The <> 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, @@ -12,10 +35,10 @@ Release notes ** The return value of <> handlers has been changed to <> and <>. However, the numerical values are equal, so old code should keep working. -** *Incompatible:* The global variables `main_now`, `main_now_seconds`, - and `main_idle_time` are no longer available. They have become fields - in the `main_context` structure, which can be accessed either directly - or via helper functions like <>. +** *Incompatible:* The main loop time (`main_now`) has been decoupled from wall clock time + and moved to a field in the `main_context` structure. It can be accessed either directly + or via <>. The `main_now_seconds` variable has + been removed, `main_idle_time` has become a structure field. ** *Incompatible:* The interface for asynchronous reading and writing (file_read() and friends) has been separated from the core of the main loop. Use <> and related functions instead. @@ -28,6 +51,10 @@ Release notes ** For any event type, it is possible to ask whether it is active (added to the mainloop) or not: <> and friends. ** A new mainloop front-end for asynchronous <> has been added. +* Added support for <>, 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. @@ -41,9 +68,37 @@ Release notes ** *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` +** `time.h` -- timestamps and interval timers, previously in `lib.h` + +* *Incompatible:* Several configuration options were renamed or removed: +** `CONFIG_FAKE_ELTPOOL` → `CONFIG_UCW_FAKE_ELTPOOL` +** `CONFIG_LARGE_FILES` → `CONFIG_UCW_LARGE_FILES` +** `CONFIG_OWN_GETOPT` → `CONFIG_UCW_OWN_GETOPT` +** `CONFIG_DIRECT_IO` → `CONFIG_UCW_DIRECT_IO` +** `DEFAULT_CONFIG` → `CONFIG_UCW_DEFAULT_CONFIG` +** `ENV_VAR_CONFIG` → `CONFIG_UCW_ENV_VAR_CONFIG` +** `CONFIG_LFS` was removed +** `CONFIG_URL_ESCAPE_COMPAT` was removed + * `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. + +* Implementation details of <> have changed. The new code checks + invariants more carefully, so it is possible that custom fastbuf back-ends which + are buggy now fail, although they previously seemed to work. 4.0 (2009-04-13)