Releases: leapmotion/autowiring
Release-0.5.2
This release is a bugfix and minor improvement release that addresses some issues with the implementation of signals and config in Autowiring 0.5.1. In particular:
- #467 improves the implementation of
AutoConfig
and the configuration registry. The configuration registry is now a property of the context, rather than being kept in parallel. - #476 deprecates the
Snoop
function name in favor of the clearer nameAddSnooper
- #477 adds an
operator-=
function to theAutoPacketFactory
so that filters can be removed from the factory similarly to how they are added - #475 improves the flexibility of signals in cases where self-modification is taking place
- #478 adds the ability to wait for events on the
DispatchQueue
itself, and #479, #480, #481, and #482 add a newBarrier
concept for the purpose of trackingDispatchQueue
rundown status - #491 fixes linker visibility issues mainly prevalent on Mac. Autowiring is an internal static library and should not export any symbols that may potentially be linked by other dylibs.
- #469 adds an altitude concept to Autofilters
Release-0.5.1
Mainly a bugfix release, but there are a few new features
- #460 made
ContextMap
an enumerable type--you can use it in range-based for loops now! - #462 fixes a defect with
CoreContext::SignalShutdown
incorrectly waiting on child contexts - #459 makes
JunctionBox
issues easier to diagnose - #463 and #464 fix a really bad bug that was causing autowired fields to be inconsistently identified
- #458 changes the internal mechanics of
AutoConfig
- #465 makes
AutowiringEnclosure
a bit more tolerant to slow-to-shutdown unit tests - #468 makes
ContextEnumerator::iterator
a fully compatibleForwardIterator
Release-0.5.0
New features available in this release, and some minor breaking changes. Particularly:
- #449 finally deprecates all support for libstdc++. Release 0.4.4 will be the last to support this hateful API
- #454 adds an interesting new concept to Autowiring--signals!
- #446 allows users to advertise interfaces as available in a context without requiring that
CoreContext
specifically be responsible for creation--say hello toCoreContext::Add
- #444 makes it an error to try to dereference an
Autowired
instance that has not yet been satisfied
Release-0.4.4
This is another general bugfix and remediation release.
- A somewhat breaking change is #409. If you have an
AutoFilter
that accepts anstd::shared_ptr
as an input argument, you might be invoked in cases where Autowiring determines that the specified type is unsatisfiable on the packet. Consequently, make sure to test shared pointer inputs for null as a matter of common practice. - #415 modifies the way the dispatch queue works. Now we will automatically promote events from the delayed queue to the deferred queue if we can find any that are good to go.
- #417, #430 fixes a breaking change on MSVC
- #418,
ContextCreator
is now deprecated! - #424, you can now get a list of runnables from the context
- #428 corrects some issues with thread rundown that resurfaced after modifications in December to the way that
CoreRunnable
works.
Release-0.4.3
Release-0.4.2
General bugfix release, just correcting a few issues that we saw come up in release v0.4.1
- #377, instructions for building Android 64 bit
- #378, #381, fix some Mac linker warnings that come up due to visibility differences
- #382,
CoreContext::Initiate
didn't correctly recurse into grandchild contexts under certain circumstances - #379, use
std::make_temporary_buffer
in a spot where appropriate - #388, #389, the
Object
type is now calledAutoObject
to avoid an obvious namespace collision - #387, adding support for a string type in
AutoNetServer
's RPC implementation - #393, make template errors a little easier to piece through
Release-0.4.1
This release has a heck of a lot of wonderful new features! Thanks in particular to @jo3w4rd for helping us get our act together on our public documentation, hopefully it's just the start of a policy of keeping up with our public-facing documentation more diligently.
Among the list of updates are:
CoreContext::Initiate
no longer recursively initializes parent contexts. Now, the child context is put in a "ready to run" state if it's initiated while the parent context is not yet running. Once the parent context moves to the running state, the child context moves to a running state, too.- Contexts that are in the "ready to run" state will not be cleaned up until their parent is initiated, terminated, or torn down, or the context itself is terminated.
AutoPacket
now supportsoperator+=
similar toAutoPacketFactory
- We now have a multi-decoration gather strategy! More than one
AutoFilter
supplying the same decoration is permitted in the same autofilter network, provided that there are no filters in that network which expect a single argument of that type. The syntax for a gathered decoration isT*[]
, and it describes a null-terminated list of decorations on a packet.
Release-0.4.0
This release has some pretty big changes.
The first is due to #298, which adds the ability to use Autowiring in a forward-only context. Specifically, it is now possible to construct Autowired<X>
where X is declared but not defined. It's also possible to now to autowire members while in teardown by specifying a lambda that takes a CoreContext as an argument, as so:
CoreContext::NotifyWhenAutowired([] (CoreContext* ctxt) { AutowiredFast<X> x(ctxt); });
Note that AutowiredFast
must be used in this case, because you won't have a shared pointer to the context during teardown.
The biggest breaking change, however, is due to #292, that AutoPacketFactory
will no longer issue packets which recursively descend into subcontexts. If this behavior is still desired, it will need to be explicitly emulated with a packet relay.
In order to prevent mismatches, #311 has been merged in order to ensure that requests for 0.3.x are not incorrectly satisfied by version 0.4.0.
Release-0.3.1
- Fixed a broken Android build
- Minor dead code cleanup
- It's now possible to Autowire objects from your destructor
- AutowiredFast can take a dumb pointer from a context
- CoreRunnable has been refactored to be easier to use, and its overrides can be called outside of a synchronized context
- Added an AutoPacketGraph diagnostic dump utility
Release-0.3.0
- Simplifications on the AutoPacketFactory
- Temporarily eliminated the notion of pipes and stiles
- Preparatory work to add an improved associated packet and fan concept
- Backwards compatibility improvements
- Added the ability to inject a context member whose AutoFilter arguments are not totally defined
- Support for the += overload on AutoPacket for AddRecipient
- Boost is now an embedded, namespaced part of Autowiring--no more AutoNet shared object!