Index: third_party/libevent/whatsnew-14.txt |
diff --git a/third_party/libevent/whatsnew-14.txt b/third_party/libevent/whatsnew-14.txt |
deleted file mode 100644 |
index 769dda7819494da09f947bee44c2655fa4e67499..0000000000000000000000000000000000000000 |
--- a/third_party/libevent/whatsnew-14.txt |
+++ /dev/null |
@@ -1,167 +0,0 @@ |
-What's New In Libevent 1.4: |
- |
-0. About this document |
- |
- This document describes the key differences between Libevent 1.3 and |
- Libevent 1.4, from a user's point of view. It was most recently |
- updated based on features from libevent 1.4.2-rc. |
- |
-1. Packaging Issues. |
- |
-1.1. The great library division. |
- |
- The libevent source now builds two libraries: libevent_core and |
- libevent_extra. The libevent_core library includes event loops, |
- timers, buffer code, and various small compatibility functions. The |
- libevent_extra library includes code for HTTP, DNS, RPC, and so on. |
- Thus, if you're writing software that only uses libevent's event |
- loop, you should link against only the libevent_core library, |
- whereas if you're writing software that uses libevent's protocol |
- support as well, you need to link libevent_extra as well. |
- |
- For backward compatibility, libevent also builds a library called |
- "libevent" that includes everything. |
- |
-1.2. The event-config.h header |
- |
- Libevent configure script now builds two headers from its configure |
- script: config.h (which it uses internally) and event-config.h |
- (which it installs as a header file). All of the macros in |
- event-config.h are modified so that they're safe to include in other |
- projects. This allows libevent's header files (like event.h and |
- evutil.h) information about platform configuration. |
- |
- What does this mean for you? As of 1.4.x, it should never be |
- necessary to include extra files or define extra types before you |
- include event.h (or any other libevent header); event.h can now look |
- at the information in event-config.h and figure out what it needs to |
- include. |
- |
-1.3. Documentation |
- |
- Libevent now includes better doxygen documentation. It's not |
- perfect or complete, though; if you find a mistake, please let us |
- know. |
- |
-1.4. Libtool usage |
- |
- We now use libtool's library versioning support correctly. If we |
- don't mess this up, it means that binaries linked against old |
- version of libevent should continue working when we make changes to |
- libevent that don't break backward compatibility. |
- |
-1.5. Portability |
- |
- Libevent now builds with MSVC again. We've only tested it with MSVC |
- 2005, and the project files might not be right. Please let us know |
- if you run into any issues. |
- |
- Libevent now builds on platforms where /bin/sh is not bash. |
- |
- Libevent's regression test no longer requires Python to be |
- installed. |
- |
-2. New and Improved APIs: |
- |
- (This list includes functions that are new, functions whose behavior |
- has changed, and functions that were included in previous releases |
- but which never actually worked before.) |
- |
-2.1. Utility functions are defined in evutil.h |
- |
- Libevent now exposes a small set of functions for cross-platform |
- network programming in evutil.h, on the theory that they've been |
- useful enough to us that other people may likely want to use them |
- too. These are mainly workarounds for Windows issues for now: they |
- include evutil_socketpair (to fake socketpair on platforms that |
- don't have it) and evutil_make_socket_nonblocking (to make a socket |
- nonblocking in a cross-platform way. See the header for more |
- information. |
- |
-2.2. In the libevent core. |
- |
- The event_base_free() function now works. Previously, it would |
- crash with an assertion failure if there were events pending on a |
- base. Now, it simply deletes all the pending events and frees the |
- base. Be careful -- this might leak fds and memory associated with |
- the old events. To avoid leaks, you should still remove all the |
- events and free their resources before you delete the base. |
- |
- Libevent should now work properly with fork(). Just call |
- event_reinit() on your event base after the fork call, and it should |
- work okay. Please let us know about any bugs you find. |
- |
- There's a new event_base_new() function that acts just like |
- event_init(), but does not replace the default base. If you are |
- using multiple event bases in your code, you should just use |
- event_base_new() instead of event_init(), to avoid accidental bugs. |
- |
- There's new event_loopbreak() function to make a current event loop |
- stop exiting and return. Unlike event_loopexit, it stops subsequent |
- pending events from getting executed. This behavior is useful for |
- scripting languages to implement exceptions from inside callbacks. |
- |
- There's a new event_base_get_method() function, for use in place of |
- event_get_method() in multi-base applications. |
- |
-2.3. New in HTTP. |
- |
- There's an evhttp_connection_set_local_address() function you can |
- use to set the local address of an HTTP connection. |
- |
- HTTP/1.1 chunking now correctly ends chunks with '\r\n'. |
- |
-2.4. New in DNS |
- |
- Instead of picking your method for generating DNS transaction IDs at |
- startup, you can use evdns_set_transaction_id() to provide a |
- transaction ID function at runtime. |
- |
- The "class" field in evdns_server_request is now renamed to |
- dns_question_class, so that it won't break compilation under C++. |
- This uses some preprocessor hacks so that C code using the old name |
- won't break. Eventually, the old name will be deprecated entirely; |
- please don't use it. |
- |
-2.5. New in RPC |
- |
- There are now hooks on RPC input and output; can be used to |
- implement RPC independent processing such as compression or |
- authentication. |
- |
- RPC tags can now be up to 32 bits. This is wire-compatible, but |
- changes some of the types in the APIs. Please let us know if this |
- is problematic for you. |
- |
-3. Big bugfixes |
- |
- We've done a lot, with help from users on different platforms, to |
- make the different backends behave more similarly with respect to |
- signals and timeouts. The kqueue and solaris backends were the big |
- offenders previously, but they should be better now. Windows should |
- be better too, though it's likely that problems remain there. |
- |
- The libevent headers (though not the source files!) should now build |
- cleanly on C++. |
- |
- (For more bugfixes, see the ChangeLog file. These are only the |
- biggies.) |
- |
-4. Big performance improvements |
- |
- Libevent now uses a min-heap rather than a red-black tree to track |
- timeouts. This means that finding the next timeout to fire is now |
- O(1) instead of (lg n). |
- |
- The win32 select-based backend now uses a red-black tree to map |
- SOCKET handles to event structures. This changes the performance |
- characteristics of the event loop on win32 from O(n^2) to O(n lg n). |
- Not perfect, but better. |
- |
-5. Removed code and features |
- |
- The rtsig backend is now removed. It hasn't even compiled for a |
- while, and nobody seemed to miss it very much. All the platforms |
- that have rtsig seem to have a better option instead these days. |
- Please let us know if rtsig was crucial for you. |
- |