1
0
mirror of https://github.com/danog/amp.git synced 2024-11-30 04:29:08 +01:00
amp/CHANGELOG.md

116 lines
4.2 KiB
Markdown
Raw Normal View History

2017-11-07 10:04:49 +01:00
### 2.0.3
- `Loop::set()` replaces the current driver with a dummy driver for the time of `gc_collect_cycles()` now. This allows cyclic references to be cleaned up properly before the new driver is set. Without such a fix, cyclic references might have been cleaned up later, e.g. cancelling their watcher IDs on the new loop, thereby cancelling the wrong watchers.
- Promise combinator functions (`all(), `any()`, `first()`, `some()`) now preserve order of the given `$promises` array argument.
2017-09-19 21:08:25 +02:00
### 2.0.2
- Fixed warnings and timers in `EventDriver`.
- Does no longer hide warnings from `stream_select`.
### 2.0.1
- Fixed an issue where the loop blocks even though all watchers are unreferenced.
2017-05-03 16:29:19 +02:00
2.0.0
-----
* `Amp\reactor()` has been replaced with `Amp\Loop::set()` and `Amp\Loop::get()`.
* `Amp\driver()` has been replaced with `Amp\Loop\Factory::create()`.
* `Amp\tick()` no longer exists and doesn't have a replacement. Ticks are an internal detail.
* Functions for creating and managing watchers are now static methods of `Amp\Loop` instead of functions in the `Amp` namespace.
* `once()` is now `delay()` and `immediately()` is `defer()`.
* Parameter order for `delay()` and `repeat()` has been changed.
* `reference()` and `unreference()` have been added.
* `Amp\Pause` has been renamed to `Amp\Delayed` and accepts an optional resolution value now. Additionally `reference()` and `unreference()` methods have been added.
* Promise accepting functions have been moved to the `Amp\Promise` namespace.
* `Amp\Promise\some()` accepts an additional `$required` parameter.
* `Amp\call()`, `Amp\asyncCall()`, `Amp\coroutine()` and `Amp\asyncCoroutine()` have been added.
* `Amp\resolve()` has been removed, use `Amp\call()` instead.
* `Promise::when()` has been renamed to `Promise::onResolve()`
* `Promise::watch()` has been removed, use `Amp\Iterator`, [`amphp/byte-stream`](https://github.com/amphp/byte-stream) or a custom implementation that implements `Amp\Promise` instead and provides dedicated APIs to access the previously data shared via the `watch()` mechanism.
* `Amp\Iterator`, `Amp\Emitter` and `Amp\Producer` have been added with several functions in the `Amp\Iterator` namespace.
* Various other changes.
### 1.2.2
2016-05-12 16:49:46 +02:00
- Fix notice in `NativeReactor` when removing a handle while
an event is waiting for it. (Regression fix from 1.1.1)
### 1.2.1
2016-05-12 16:49:46 +02:00
- Fix `uv_run()` potentially exiting earlier than intended,
leading to an infinite loop in `UvReactor::run()`.
1.2.0
-----
2016-05-12 16:49:46 +02:00
- `resolve()` now also accepts callables returning generators.
### 1.1.1
2016-05-12 16:49:46 +02:00
- Fix memory leak in `NativeReactor`, retaining an empty array
for each stream.
2016-05-12 16:49:46 +02:00
- Remove circular references in `UvReactor` to avoid garbage
collector calls.
2016-03-09 12:48:11 +01:00
1.1.0
-----
2016-05-12 16:49:46 +02:00
- Add `getExceptions()` method to `CombinatorException` to get an
array of all the exceptions (affecting `some()` and `first()`).
- Fix `NativeReactor` not ending up in stopped state if primary
callback didn't install any events.
### 1.0.8
2016-05-12 16:49:46 +02:00
- Fix `NativeReactor` running a busy loop if no timers are active.
Properly block now in NativeReactor inside `stream_select()`.
### 1.0.7
2016-05-12 16:49:46 +02:00
- Several combinator functions could result in a promise already
resolved exception in case some values of the array weren't
2016-05-12 16:49:46 +02:00
promises.
### 1.0.6
2016-05-12 16:49:46 +02:00
- Fix issue in `NativeReactor` causing `stop()` to be delayed by
one second.
### 1.0.5
- Convert general `RuntimeException` to more specific
`Amp\CombinatorException`.
2015-09-10 23:19:43 +02:00
### 1.0.4
2016-05-12 16:49:46 +02:00
- Repeat watchers in `LibeventReactor` internally were handled in
microsecond intervals instead of milliseconds.
2015-08-20 02:47:04 +02:00
### 1.0.3
2016-05-12 16:49:46 +02:00
- Fix issue in `NativeReactor` capable of causing keep alive
2015-08-20 02:47:04 +02:00
counter corruption when a watcher was cancelled inside its
own callback.
2016-05-12 16:49:46 +02:00
- Fix issue in `UvReactor` with `libuv` >= 1.1.0 causing busy loop
with immediates present, but no watchers being triggered.
2015-08-20 02:47:04 +02:00
2015-08-18 15:35:05 +02:00
### 1.0.2
2016-05-12 16:49:46 +02:00
- Fix PHP 7 issue in which top-level `Throwable`s weren't caught
2015-08-18 15:35:05 +02:00
in certain coroutine contexts.
2016-05-12 16:49:46 +02:00
- Remove error suppression operator on optionally `null` option
assignment to avoid spurious `E_NOTICE` output when custom
2015-08-18 15:35:05 +02:00
error handlers are used.
### 1.0.1
2016-05-12 16:49:46 +02:00
- Fix bug preventing `UvReactor::tick()` from returning when no
events are ready for a single active IO watcher.
1.0.0
-----
- Initial stable API release