1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301
|
1.7.1
-----
* Set fallback local loopback address by default for Windows environment
1.7.0
-----
* Fix extension build failure for ruby3
1.6.1
-----
* Fix warning for recent compilers
1.6.0
-----
* Add ruby 2.6/2.7 to windows gem
* Drop ruby 2.1/2.2/2.3 from windows gem
1.5.4
-----
* Add ruby 2.5 to windows gem
1.5.3
-----
* Fix invalid IOWatcher's rb_funcall that causes ArgumentError with ruby 2.5 and clang
1.5.2
-----
* Fix invalid TimerWatcher's rb_funcall that causes ArgumentError with ruby 2.5 and clang
1.5.1
-----
* Don't raise an exception when peername failed
1.5.0
-----
* Update libev to 4.24
1.4.6
-----
* Add ruby 2.4.0 to windows binary gem
1.4.5
-----
* Increase FD_SETSIZE to 1024 on Windows
1.4.4
-----
* Suppress lots of warnings
1.4.3
-----
* Use accept instead of accept_nonblock on Windows to avoid thundering held problem
* Fix compilation error on Solaris and Ruby 2.3.0
1.4.2
-----
* Add unexpected object info to attach exception message
1.4.1
-----
* Use SleepEx instead of Sleep for better fix of process hung problem on windows environment
* Use rake-compiler-dock for cross compilation
1.4.0
-----
* Update libev to 4.20
* Sleep in timeout instead of select on Windows
1.3.1
-----
* Fix several bugs for JRuby support enhancement
* Fix deadlock bug on Windows environment
* Use RSpec3
1.3.0
-----
* Block evaluation doesn't change self for keeping consistency with Ruby block
* Remove EventMachine emulation module
* Remove HttpClient
* DSL syntax is no longer available by default. Need to require 'cool.io/dsl' in user code
* Update libev to 4.19
1.2.4
-----
* Fix a bug that #close for unconnected Socket doesn't detach all watchers (#33)
* Remove 1.8 support code
* Use standard library instead of own hosts list (#34)
1.2.3
-----
* Fix CPU consuming issue on Windows.
1.2.2
-----
* Add timeout option to Loop#run and Loop#run_once. Default by nil
* Support Ruby 2.2.0
1.2.1
-----
* Release the GIL when libev polls (#24)
* Add Listener#listen method to change backlog size
1.2.0
-----
* Support Windows environment via cross compilation
* Include iobuffer library
* Update to libev 4.15
* Remove Ruby 1.8 support
1.1.0
-----
* Switch from Jeweler to Bundler for the gem boilerplate
* Fix firing of Coolio::HttpClient#on_request_complete (#15)
* Fix failure to resolve Init_cool symbol on win32 mingw (#14)
* Fix closing /etc/hosts in the DNS resolver (#12)
* Refactor StatWatcher to pass pervious and current path state ala Node.js
* spec:valgrind Rake task to run specs under valgrind
* Use rake-compiler to build cool.io
* Upgrade to libev 4.04
1.0.0
-----
* Fancy new DSL
0.9.0
-----
* Rename the project to cool.io
* Bump the version all the way to 0.9! Hell yeah! 1.0 soon!
* Rename the main module from Rev to Coolio, with deprecation warnings for Rev
* Use Jeweler to manage the gem
* Update to RSpec 2.0
* Update to libev 4.01
* Initial Rubinius support
0.3.2
-----
* Perform a blocking system call if we're the only thread running (1.8 only)
* Run in non-blocking mode if we're the only thread in the process (1.8 only)
* Make Rev::Loop#run_nonblock signal-safe
* Fix spurious firing of Rev::AsyncWatchers
0.3.1
-----
* Configurable intervals for Rev::StatWatcher
* Fix broken version number :(
* Removed warning about spuriously readable sockets from Rev::Listener
* Rev::Listener ignores ECONNABORTED from accept_nonblock
* Document rationale for EAGAIN/ECONNABORTED handling in Rev::Listener
0.3.0
-----
* Add Rev::StatWatcher to monitor filesystem changes
* Add Rev::Listener#fileno for accessing the underlying file descriptor
* Support for creating Rev::Listeners from existing TCPServers/UNIXServers
* Upgrade to libev 3.8
* Simplified code loading
* Pull in iobuffer gem and change outstanding uses of Rev::Buffer to IO::Buffer
* Fix memory leaks resulting from strange semantics of Ruby's xrealloc
* Rev::UNIXServer: use path instead of the first argument
* Rev::Server-based classes can build off ::*Server objects
0.2.4
-----
* Ugh, botched my first release from the git repo. Oh well. Try, try again.
0.2.3
-----
* Initial Windows support
* Initial Ruby 1.8.7 and 1.9.1 support
* Upgrade to libev 3.52
* Add checks for sys/resource.h and don't allow getting/setting maxfds if it
isn't present
0.2.2
-----
* Correct a pointer arithmetic error in the buffering code that could result
in data corruption.
* Upgrade to libev 3.41
* Relax HTTP/1.1 reponse parser to allow the "reason" portion of the response
header to be omitted
0.2.1
-----
* Upgrade to libev 3.31
* Rev::Loop#run_once and Rev::Loop#run_nonblock now return the number of events
received when they were running
* Remove inheritence relationship between Rev::IO and Rev::IOWatcher
* Loosen HTTP/1.1 response parser to accept a common malformation in HTTP/1.1
chunk headers
* Add underscore prefix to instance variables to avoid conflicts in subclasses
* Remove Rev::SSLServer until it can be made more useful
0.2.0
-----
* Initial Ruby 1.8.6 support
* Omit Rev::LIBEV_VERSION constant
* Catch Errno::ECONNRESET when writing to sockets
* SSL support via Rev::SSL, with a small C extension subclassing Ruby's
OpenSSL::SSL::SSLSocket allowing for non-blocking SSL handshakes
* Initial Rev::Utils implementation with #ncpus and methods to query and
change the maximum number of file descriptors for the current process.
* Initial Rev::AsyncWatcher implementation for cross-thread signaling
* Handle unspecified Content-Length when encoding is identity in HttpClient
* Fix bug in HttpClient processing zero Content-Length
* Get rid of method_missing stuff in Rev::HttpClient
* Have Rev::HttpClient close the connection on error
* Allow Rev::TCPSocket#on_connect to be private when accepting connections
from a Rev::TCPServer
0.1.4
-----
* Calibrate Rev::TimerWatchers against ev_time() and ev_now() when the watcher
is attached to the loop to ensure that the timeout interval is correct.
* Add check to ensure that a Rev::Loop cannot be run from within a callback
* Store Rev::Loop.default in a Thread-specific instance variable
* Upgrade libev to 0.3.0
* Rename BufferedIO to IO
* Fixed bug in BufferedIO#write_output_buffer causing it to spin endlessly on
an empty buffer.
* Added has_active_watchers? to Rev::Loop to check for active watchers
0.1.3
-----
* Fixed bug in Rev::Buffer read_from and write_to: now rb_sys_fail on failed
reads/writes.
* Change Rev::Buffer memory pools to purge on a periodic interval, rather than
whenever the GC marks the object.
* Fix bug in tracking the active watcher count. Factor shared watcher behavior
from rev_watcher.h to rev_watcher.c.
0.1.2
-----
* Commit initial specs
* Improve RDoc for the library
* Eliminate "zero copy" writes as they bypass the event loop
* Added Rev::Buffer C extension to provide high speed buffered writes
* Implement Rev::TCPSocket#peeraddr to improve compatibility with Ruby sockets
* Added Rev::Listener.close for clean shutdown of a listener
* Rev::Loop.default used to call ev_loop_default() (in C). However, this
registers signal handlers which conflict with Ruby's own. Now the behavior
has been changed to return a thread-local singleton of Rev::Loop.
* Creating a new Rev::TCPListener will disable reverse lookups in BasicSocket
* Made backlog for Rev::TCPListener user-definable
* Rev::TCPSocket now implements an on_resolve_failed callback for failed DNS
resolution. By default it's aliased to on_connect_failed.
* Changed event_callbacks to use instance_exec rather than passing the
watcher object as an argument. Documented use of defining an event
callback as a block
* Subsecond precision for Rev::TimerWatchers
0.1.1
-----
* Added Rev::HttpClient, an asynchronous HTTP/1.1 client written on top of
the Rev::TCPSocket class
* Imported HTTP response parser from the RFuzz project
* Added exception handling for Errno::ECONNRESET and Errno::EAGAIN
* Fixed bugs in buffered writer which resulted in exceptions if all data
couldn't be written with a nonblocking write.
0.1.0
-----
* Initial public release
|