Merge Request #25 - 2017-04-27

Most changes for this version are results of our on-going effort to improve the stability of our concurrency and networking platform.

Improvements

libqi:

  • Tests improved: additions and fixes;
  • Documentation improved;
  • Compilation using VS2015 should work (if you have the appropriate toolchain);
  • Rewrote socket implementation;

qi-tools:

  • Improved error reporting for qilaunch;
  • Improved path usage in qilang;

Deprecated

libqi:

  • qi::PromiseNoop (#34827)

Fixes

libqi:

  • Fix most concurrency issues related from signals, object persistence (more to come);
  • Fix some concurrency issues related to gateway and messaging systems (more to come);
  • Fix message routing issue resulting in potential blocking remote calls (#35436);
  • Fix code compiling when registering several signals with the same name in an object interface;
  • Fix waitpid() not always returning the documented values;
  • Fix search paths of SDKLayout: search for path.conf instead of relying on bin folder (#33042, #32142);
  • Fix some memory leaks (#33341);
  • Fix Future::cancel() request not being received by services (#37774)
  • Fix a race on socket disconnection in TransportSocketCache
  • Fix a system blocking in pySession’s destructor (#38167)