1
0
mirror of https://github.com/danog/amp.git synced 2024-11-27 04:24:42 +01:00
amp/CHANGELOG.md
2014-08-01 15:37:02 -04:00

3.6 KiB

master

  • none

v0.10.0

  • Added functions.php API for reactor use in procedural and functional code.
  • ReactoryFactory::select() is now a static singleton method. Single-threaded code should never use multiple event loops. This change is made to ease Reactor procurement and minimize bugs from the existence of multiple Reactor instances in the same thread. It is NOT, however, an excuse to forego dependency injection. Do not abuse the global nature of the event loop. Lazy injection is fine, but laziness on your part as a programmer is not.

BC BREAKS:

  • The ReactorFactory::__invoke() magic method has been removed. Any code relying on it must migrate references to ReactoryFactory::select()

v0.9.0

  • Reactor instance now passed to optional $onStart callbacks when Reactor::run() is called.
  • Add new libuv reactor support (UvReactor) via the php-uv extension. The php-uv extension must be built against commit 75fd2ff591 or newer.
  • Add Reactor::watchStream() alternative for IO watching. The $flags bitmask paves the way for additional option specs in the libuv reactor without needlessly complicating the interface.
  • Internal watcher IDs now increment from zero instead of PHP_INT_MAX*-1

NO BC BREAKS

v0.8.1

  • Fix bug preventing NativeReactor from relinquishing control when no timers or stream watchers exist.
  • Fix broken Reactor::at millisecond resolution.

v0.8.0

  • Add new SignalReactor for capturing and reacting to POSIX signals
  • LibeventReactor now implements SignalReactor
  • Remove all concurrency primitives (moved to new After repo)

BC BREAKS:

  • Any existing code relying on the Future/Promise/etc concurrency primitives must now use the separate After repo as things files are no longer included with Alert.

v0.7.1

  • PromiseGroup now transparently succeeds instead of throwing on empty futures array
  • stream_select() errors suppressed in NativeReactor to silence errors on signal interrupts

v0.7.0

  • Future is now an interface
  • Add Unresolved as the default pending Future (Promise->getFuture())
  • Add immutable resolved Failure and Success futures

v0.6.0

  • Time intervals are now expected in milliseconds and not seconds.
  • Cleaned up unit tests

BC BREAKS:

  • Existing interval and delay times must be multiplied x 1000 to retain the same behavior.

v0.5.0

  • Pare down the Promise/Future APIs
  • Minor performance improvements

BC BREAKS:

  • Removed Future::isPending()
  • Removed Future::failed()
  • Removed Future::onSuccess()
  • Removed Future::onFailure()

v0.4.0

  • Altered watcher ID generation to avoid potential collisions
  • Added optional $onStart callback parameter to Reactor::run() implementations
  • Added Scala-like Future\Promise implementation
  • Remove Forkable things originally added in v0.2.0 (unnecessary)

BC BREAKS: none

v0.3.0

  • Timed event callbacks now passed the reactor instance at param 2 upon invocation
  • IO callbacks now passed the reactor instance at param 3 upon invocation
  • Minor bugfixes/improvements

BC BREAKS: none

v0.2.0

  • Added Alert\Forkable interface for safely forking event reactors without resource corruption
  • Alert\LibeventReactor now implements Alert\Forkable

BC BREAKS: none

v0.1.2

  • Addressed execution time drift in repeating native reactor alarms

v0.1.1

  • Addressed infinite recursion in repeating callbacks

v0.1.0

  • Initial tagged release