Subversion Repositories qbpwcf-lib(archive)

Rev

Rev 915 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 liveuser 1
# Changelog
2
 
3
## 1.1.1 (2020-01-01)
4
 
5
*   Fix: Fix reporting connection refused errors with `ExtUvLoop` on Linux and `StreamSelectLoop` on Windows.
6
    (#207 and #208 by @clue)
7
 
8
*   Fix: Fix unsupported EventConfig and `SEGFAULT` on shutdown with `ExtEventLoop` on Windows.
9
    (#205 by @clue)
10
 
11
*   Fix: Check PCNTL functions for signal support instead of PCNTL extension with `StreamSelectLoop`.
12
    (#195 by @clue)
13
 
14
*   Add `.gitattributes` to exclude dev files from exports.
15
    (#201 by @reedy)
16
 
17
*   Improve test suite to fix testing `ExtUvLoop` on Travis,
18
    fix Travis CI builds, do not install `libuv` on legacy PHP setups,
19
    fix failing test cases due to inaccurate timers,
20
    run tests on Windows via Travis CI and
21
    run tests on PHP 7.4 and simplify test matrix and test setup.
22
    (#197 by @WyriHaximus and #202, #203, #204 and #209 by @clue)
23
 
24
## 1.1.0 (2019-02-07)
25
 
26
*   New UV based event loop (ext-uv).
27
    (#112 by @WyriHaximus)
28
 
29
*   Use high resolution timer on PHP 7.3+. 
30
    (#182 by @clue)
31
 
32
*   Improve PCNTL signals by using async signal dispatching if available. 
33
    (#179 by @CharlotteDunois)
34
 
35
*   Improve test suite and test suite set up.
36
    (#174 by @WyriHaximus, #181 by @clue)
37
 
38
*   Fix PCNTL signals edge case. 
39
    (#183 by @clue)
40
 
41
## 1.0.0 (2018-07-11)
42
 
43
*   First stable LTS release, now following [SemVer](https://semver.org/).
44
    We'd like to emphasize that this component is production ready and battle-tested.
45
    We plan to support all long-term support (LTS) releases for at least 24 months,
46
    so you have a rock-solid foundation to build on top of.
47
 
48
>   Contains no other changes, so it's actually fully compatible with the v0.5.3 release.
49
 
50
## 0.5.3 (2018-07-09)
51
 
52
*   Improve performance by importing global functions.
53
    (#167 by @Ocramius)
54
 
55
*   Improve test suite by simplifying test bootstrap by using dev autoloader.
56
    (#169 by @lcobucci)
57
 
58
*   Minor internal changes to improved backward compatibility with PHP 5.3.
59
    (#166 by @Donatello-za)
60
 
61
## 0.5.2 (2018-04-24)
62
 
63
*   Feature: Improve memory consumption and runtime performance for `StreamSelectLoop` timers.
64
    (#164 by @clue)
65
 
66
*   Improve test suite by removing I/O dependency at `StreamSelectLoopTest` to fix Mac OS X tests.
67
    (#161 by @nawarian)
68
 
69
## 0.5.1 (2018-04-09)
70
 
71
*   Feature: New `ExtEvLoop` (PECL ext-ev)  (#148 by @kaduev13)
72
 
73
## 0.5.0 (2018-04-05)
74
 
75
A major feature release with a significant documentation overhaul and long overdue API cleanup!
76
 
77
This update involves a number of BC breaks due to dropped support for deprecated
78
functionality. We've tried hard to avoid BC breaks where possible and minimize
79
impact otherwise. We expect that most consumers of this package will actually
80
not be affected by any BC breaks, see below for more details.
81
 
82
We realize that the changes listed below may seem overwhelming, but we've tried
83
to be very clear about any possible BC breaks. Don't worry: In fact, all ReactPHP
84
components are already compatible and support both this new release as well as
85
providing backwards compatibility with the last release.
86
 
87
*   Feature / BC break: Add support for signal handling via new
88
    `LoopInterface::addSignal()` and `LoopInterface::removeSignal()` methods.
89
    (#104 by @WyriHaximus and #111 and #150 by @clue)
90
 
91
    ```php
92
    $loop->addSignal(SIGINT, function () {
93
        echo 'CTRL-C';
94
    });
95
    ```
96
 
97
*   Feature: Significant documentation updates for `LoopInterface` and `Factory`.
98
    (#100, #119, #126, #127, #159 and #160 by @clue, #113 by @WyriHaximus and #81 and #91 by @jsor)
99
 
100
*   Feature: Add examples to ease getting started
101
    (#99, #100 and #125 by @clue, #59 by @WyriHaximus and #143 by @jsor)
102
 
103
*   Feature: Documentation for advanced timer concepts, such as monotonic time source vs wall-clock time
104
    and high precision timers with millisecond accuracy or below.
105
    (#130 and #157 by @clue)
106
 
107
*   Feature: Documentation for advanced stream concepts, such as edge-triggered event listeners
108
    and stream buffers and allow throwing Exception if stream resource is not supported.
109
    (#129 and #158 by @clue)
110
 
111
*   Feature: Throw `BadMethodCallException` on manual loop creation when required extension isn't installed.
112
    (#153 by @WyriHaximus)
113
 
114
*   Feature / BC break: First class support for legacy PHP 5.3 through PHP 7.2 and HHVM
115
    and remove all `callable` type hints for consistency reasons.
116
    (#141 and #151 by @clue)
117
 
118
*   BC break: Documentation for timer API and clean up unneeded timer API.
119
    (#102 by @clue)
120
 
121
    Remove `TimerInterface::cancel()`, use `LoopInterface::cancelTimer()` instead:
122
 
123
    ```php
124
    // old (method invoked on timer instance)
125
    $timer->cancel();
126
 
127
    // already supported before: invoke method on loop instance
128
    $loop->cancelTimer($timer);
129
    ```
130
 
131
    Remove unneeded `TimerInterface::setData()` and `TimerInterface::getData()`,
132
    use closure binding to add arbitrary data to timer instead:
133
 
134
    ```php
135
    // old (limited setData() and getData() only allows single variable)
136
    $name = 'Tester';
137
    $timer = $loop->addTimer(1.0, function ($timer) {
138
        echo 'Hello ' . $timer->getData() . PHP_EOL;
139
    });
140
    $timer->setData($name);
141
 
142
    // already supported before: closure binding allows any number of variables
143
    $name = 'Tester';
144
    $loop->addTimer(1.0, function () use ($name) {
145
        echo 'Hello ' . $name . PHP_EOL;
146
    });
147
    ```
148
 
149
    Remove unneeded `TimerInterface::getLoop()`, use closure binding instead:
150
 
151
    ```php
152
    // old (getLoop() called on timer instance)
153
    $loop->addTimer(0.1, function ($timer) {
154
        $timer->getLoop()->stop();
155
    });
156
 
157
    // already supported before: use closure binding as usual
158
    $loop->addTimer(0.1, function () use ($loop) {
159
        $loop->stop();
160
    });
161
    ```
162
 
163
*   BC break: Remove unneeded `LoopInterface::isTimerActive()` and
164
    `TimerInterface::isActive()` to reduce API surface.
165
    (#133 by @clue)
166
 
167
    ```php
168
    // old (method on timer instance or on loop instance)
169
    $timer->isActive();
170
    $loop->isTimerActive($timer);
171
    ```
172
 
173
*   BC break: Move `TimerInterface` one level up to `React\EventLoop\TimerInterface`.
174
    (#138 by @WyriHaximus)
175
 
176
    ```php
177
    // old (notice obsolete "Timer" namespace)
178
    assert($timer instanceof React\EventLoop\Timer\TimerInterface);
179
 
180
    // new
181
    assert($timer instanceof React\EventLoop\TimerInterface);
182
    ```
183
 
184
*   BC break: Remove unneeded `LoopInterface::nextTick()` (and internal `NextTickQueue`),
185
    use `LoopInterface::futureTick()` instead.
186
    (#30 by @clue)
187
 
188
    ```php
189
    // old (removed)
190
    $loop->nextTick(function () {
191
        echo 'tick';
192
    });
193
 
194
    // already supported before
195
    $loop->futureTick(function () {
196
        echo 'tick';
197
    });
198
    ```
199
 
200
*   BC break: Remove unneeded `$loop` argument for `LoopInterface::futureTick()`
201
    (and fix internal cyclic dependency).
202
    (#103 by @clue)
203
 
204
    ```php
205
    // old ($loop gets passed by default)
206
    $loop->futureTick(function ($loop) {
207
        $loop->stop();
208
    });
209
 
210
    // already supported before: use closure binding as usual
211
    $loop->futureTick(function () use ($loop) {
212
        $loop->stop();
213
    });
214
    ```
215
 
216
*   BC break: Remove unneeded `LoopInterface::tick()`.
217
    (#72 by @jsor)
218
 
219
    ```php
220
    // old (removed)
221
    $loop->tick();
222
 
223
    // suggested work around for testing purposes only
224
    $loop->futureTick(function () use ($loop) {
225
        $loop->stop();
226
    });
227
    ```
228
 
229
*   BC break: Documentation for advanced stream API and clean up unneeded stream API.
230
    (#110 by @clue)
231
 
232
    Remove unneeded `$loop` argument for `LoopInterface::addReadStream()`
233
    and `LoopInterface::addWriteStream()`, use closure binding instead:
234
 
235
    ```php
236
    // old ($loop gets passed by default)
237
    $loop->addReadStream($stream, function ($stream, $loop) {
238
        $loop->removeReadStream($stream);
239
    });
240
 
241
    // already supported before: use closure binding as usual
242
    $loop->addReadStream($stream, function ($stream) use ($loop) {
243
        $loop->removeReadStream($stream);
244
    });
245
    ```
246
 
247
*   BC break: Remove unneeded `LoopInterface::removeStream()` method,
248
    use `LoopInterface::removeReadStream()` and `LoopInterface::removeWriteStream()` instead.
249
    (#118 by @clue)
250
 
251
    ```php
252
    // old
253
    $loop->removeStream($stream);
254
 
255
    // already supported before
256
    $loop->removeReadStream($stream);
257
    $loop->removeWriteStream($stream);
258
    ```
259
 
260
*   BC break: Rename `LibEventLoop` to `ExtLibeventLoop` and `LibEvLoop` to `ExtLibevLoop`
261
    for consistent naming for event loop implementations.
262
    (#128 by @clue)
263
 
264
*   BC break: Remove optional `EventBaseConfig` argument from `ExtEventLoop`
265
    and make its `FEATURE_FDS` enabled by default.
266
    (#156 by @WyriHaximus)
267
 
268
*   BC break: Mark all classes as final to discourage inheritance.
269
    (#131 by @clue)
270
 
271
*   Fix: Fix `ExtEventLoop` to keep track of stream resources (refcount)
272
    (#123 by @clue)
273
 
274
*   Fix: Ensure large timer interval does not overflow on 32bit systems
275
    (#132 by @clue)
276
 
277
*   Fix: Fix separately removing readable and writable side of stream when closing
278
    (#139 by @clue)
279
 
280
*   Fix: Properly clean up event watchers for `ext-event` and `ext-libev`
281
    (#149 by @clue)
282
 
283
*   Fix: Minor code cleanup and remove unneeded references
284
    (#145 by @seregazhuk)
285
 
286
*   Fix: Discourage outdated `ext-libevent` on PHP 7
287
    (#62 by @cboden)
288
 
289
*   Improve test suite by adding forward compatibility with PHPUnit 6 and PHPUnit 5,
290
    lock Travis distro so new defaults will not break the build,
291
    improve test suite to be less fragile and increase test timeouts,
292
    test against PHP 7.2 and reduce fwrite() call length to one chunk.
293
    (#106 and #144 by @clue, #120 and #124 by @carusogabriel, #147 by nawarian and #92 by @kelunik)
294
 
295
*   A number of changes were originally planned for this release but have been backported
296
    to the last `v0.4.3` already: #74, #76, #79, #81 (refs #65, #66, #67), #88 and #93
297
 
298
## 0.4.3 (2017-04-27)
299
 
300
* Bug fix: Bugfix in the usage sample code #57 (@dandelionred) 
301
* Improvement: Remove branch-alias definition #53 (@WyriHaximus)
302
* Improvement: StreamSelectLoop: Use fresh time so Timers added during stream events are accurate #51 (@andrewminerd)
303
* Improvement: Avoid deprecation warnings in test suite due to deprecation of getMock() in PHPUnit #68 (@martinschroeder)
304
* Improvement: Add PHPUnit 4.8 to require-dev #69 (@shaunbramley)
305
* Improvement: Increase test timeouts for HHVM and unify timeout handling #70 (@clue)
306
* Improvement: Travis improvements (backported from #74) #75 (@clue)
307
* Improvement: Test suite now uses socket pairs instead of memory streams #66 (@martinschroeder)
308
* Improvement: StreamSelectLoop: Test suite uses signal constant names in data provider #67 (@martinschroeder)
309
* Improvement: ExtEventLoop: No longer suppress all errors #65 (@mamciek)
310
* Improvement: Readme cleanup #89 (@jsor)
311
* Improvement: Restructure and improve README #90 (@jsor)
312
* Bug fix: StreamSelectLoop: Fix erroneous zero-time sleep (backport to 0.4) #94 (@jsor)
313
 
314
## 0.4.2 (2016-03-07)
315
 
316
* Bug fix: No longer error when signals sent to StreamSelectLoop
317
* Support HHVM and PHP7 (@ondrejmirtes, @cebe)
318
* Feature: Added support for EventConfig for ExtEventLoop (@steverhoades)
319
* Bug fix: Fixed an issue loading loop extension libs via autoloader (@czarpino)
320
 
321
## 0.4.1 (2014-04-13)
322
 
323
* Bug fix: null timeout in StreamSelectLoop causing 100% CPU usage (@clue)
324
* Bug fix: v0.3.4 changes merged for v0.4.1
325
 
326
## 0.4.0 (2014-02-02)
327
 
328
* Feature: Added `EventLoopInterface::nextTick()`, implemented in all event loops (@jmalloc)
329
* Feature: Added `EventLoopInterface::futureTick()`, implemented in all event loops (@jmalloc)
330
* Feature: Added `ExtEventLoop` implementation using pecl/event (@jmalloc)
331
* BC break: Bump minimum PHP version to PHP 5.4, remove 5.3 specific hacks
332
* BC break: New method: `EventLoopInterface::nextTick()`
333
* BC break: New method: `EventLoopInterface::futureTick()`
334
* Dependency: Autoloading and filesystem structure now PSR-4 instead of PSR-0
335
 
336
## 0.3.5 (2016-12-28)
337
 
338
This is a compatibility release that eases upgrading to the v0.4 release branch.
339
You should consider upgrading to the v0.4 release branch.
340
 
341
* Feature: Cap min timer interval at 1µs, thus improving compatibility with v0.4
342
  (#47 by @clue)
343
 
344
## 0.3.4 (2014-03-30)
345
 
346
* Bug fix: Changed StreamSelectLoop to use non-blocking behavior on tick() (@astephens25)
347
 
348
## 0.3.3 (2013-07-08)
349
 
350
* Bug fix: No error on removing non-existent streams (@clue)
351
* Bug fix: Do not silently remove feof listeners in `LibEvLoop`
352
 
353
## 0.3.0 (2013-04-14)
354
 
355
* BC break: New timers API (@nrk)
356
* BC break: Remove check on return value from stream callbacks (@nrk)
357
 
358
## 0.2.7 (2013-01-05)
359
 
360
* Bug fix: Fix libevent timers with PHP 5.3
361
* Bug fix: Fix libevent timer cancellation (@nrk)
362
 
363
## 0.2.6 (2012-12-26)
364
 
365
* Bug fix: Plug memory issue in libevent timers (@cameronjacobson)
366
* Bug fix: Correctly pause LibEvLoop on stop()
367
 
368
## 0.2.3 (2012-11-14)
369
 
370
* Feature: LibEvLoop, integration of `php-libev`
371
 
372
## 0.2.0 (2012-09-10)
373
 
374
* Version bump
375
 
376
## 0.1.1 (2012-07-12)
377
 
378
* Version bump
379
 
380
## 0.1.0 (2012-07-11)
381
 
382
* First tagged release