BitTorrent client TRANSMISSION moves with si on C ++

Libtransmission library underlying the BitTorrent client transmission , translated to use the C ++ language. In Transmission there are still strapping with the implementation of user interfaces (GTK interface, Daemon, CLI) written in the SI language, but for the assembly, the C ++ compiler is now required. Earlier, only the QT database interface was written on C ++ (the client for MacOS was on Objective-C, a Web interface on JavaScript, and everything else on C).

Porting executed Charles Kerr (Charles Kerr), the project leader and the author of the TRANSMISION interface version based on Qt. The main reason for the transition of the entire project on C ++ is the feeling that when making changes to libtransmission, it constantly has to be inventing the wheel, if you have ready-made solutions of such tasks in the standard C ++ library (for example, it was necessary to create your own TR_QUickFindFirstK () and TR_PTRARRARRAY () : partial_sort () and std :: vector ()), as well as provision in C ++ more advanced tools for checking types.

It is noted that the developers do not set a goal to immediately rewrite the entire libtransmission on C ++, and intend to implement the transition to C ++ gradually, starting with the transition to a compilation of the project using the C ++ compiler. In the current form, the SI compiler can now be used to build, since some specific C ++ designs are added to the code, such as the “auto” keyword and type conversion using the “Static_cast” operator. Support for old SI functions is planned to be saved to ensure compatibility, but developers are now recommended to use CONSTEXPR instead of TR_STRDUP () and STD :: Vector instead of TR_PTRARRAY.

/Media reports.