# SoftBank Robotics documentation What's new in NAOqi 2.8?

# Merge Request #5 - January

## Small Changes

- OS: define SIGKILL constant on windows
- Logs: add a CSV log handler
- Translator: add a context
- Object registration: new macros to advertise methods and overloads
- Path: add conversions from/to boost::filesystem and wstring
- qicli trace: add JSON output
- strand: property get/set from outside are now stranded
- signal: add asyncDisconnect (not meant to be widely used...)
- Session: add authentication API (still not enforced by default, more on this in a later merge)
- Actor: make it copyable (no operation)
- Object registration: when advertising free functions, a pointer to the object is given as first argument
- PeriodicTask: add qiClock API and deprecate old API
- Future: add then continuation which return a future
- Future: add unwrap to transform Future<Future<T>> into Future<T>
- Asynchronous calls: make it return cancellable futures (does not work for remote calls yet)
- Future: add aliases waitFor and waitUntil
- Object registration: rework template object registration (now works)
- Python: make async return a cancellable future (does not work for remote objects yet)

## Bind Session in the type-system

Session is now bound in the type system. This means that there is now almost no difference between the Session class in C++ and in Python. You can now call loadService from Python and pass Python Session objects to C++.

## qi::File

`qi::File` provides a way to open a file in read-only mode on the local file system and share the content of this file with potentially remote services. We provide algorithms to copy a remote file’s content to make a local copy of it, using the `qi::copyToLocal` or `qi::prepareCopyToLocal` functions.

Examples for each use case are provided in the documentation. A complete working example of a service and a service user application is also provided with `qi::File` sources and documentation.

## Bugfixes

- Session: fix deadlock in server when a connection is received
- RemoteObject: fix deadlock when disconnecting a signal multiple times in parallel
- Stats: fix crash in pushStats, stats and clearStats
- Session: fix connection to localhost to a server in a different writable path
- Session: fix crash when accessing a local service directory of a destroyed session
- Eventloop: fix error about promise being set multiple times
- fix compilation on Mac OS Yocemite
- Python: fix python dict to c++ struct conversion
- PeriodicTask: fix deadlock when using trigger()
- Session: don’t make waitForService hold a reference on Session preventing it from destruction
- Python: hide strand getter on objects (qi_strand won’t appear anymore)
- Python: fix deadlock on property destruction
- Python: fix deadlock on object destruction

Glossary Site map Index Support Contact Legal Notices