Skip to content

Releases: leapmotion/autowiring

Release-0.5.2

20 May 10:55
Compare
Choose a tag to compare

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 name AddSnooper
  • #477 adds an operator-= function to the AutoPacketFactory 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 new Barrier concept for the purpose of tracking DispatchQueue 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

27 Mar 00:24
Compare
Choose a tag to compare

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 compatible ForwardIterator

Release-0.5.0

14 Mar 01:10
Compare
Choose a tag to compare

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 to CoreContext::Add
  • #444 makes it an error to try to dereference an Autowired instance that has not yet been satisfied

Release-0.4.4

16 Apr 20:40
Compare
Choose a tag to compare

This is another general bugfix and remediation release.

  • A somewhat breaking change is #409. If you have an AutoFilter that accepts an std::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

11 Feb 21:32
Compare
Choose a tag to compare

General bugfix release

  • #397 #398 Separate transport layer from AutoNet
  • #404 Fix CoreContext::Initiate behavior
  • #405 Fix chrono shim on Windows

Release-0.4.2

04 Feb 02:56
Compare
Choose a tag to compare

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 called AutoObject 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

27 Jan 02:25
Compare
Choose a tag to compare

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 supports operator+= similar to AutoPacketFactory
  • 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 is T*[], and it describes a null-terminated list of decorations on a packet.

Release-0.4.0

07 Jan 00:37
Compare
Choose a tag to compare

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

24 Dec 03:16
Compare
Choose a tag to compare
  • 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

17 Dec 02:15
Compare
Choose a tag to compare
  • 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!