BitTorento-kliento Transdono ŝanĝas de C al C++

La libtransmission-biblioteko, kiu estas la bazo de la Transmission BitTorrent-kliento, estis tradukita en C++. Transdono ankoraŭ havas ligojn kun la efektivigo de uzantinterfacoj (GTK-interfaco, demono, CLI), skribitaj en la C-lingvo, sed kunigo nun postulas C++-kompililon. Antaŭe, nur la Qt-bazita interfaco estis skribita en C++ (la kliento por macOS estis en Objective-C, la retinterfaco estis en JavaScript, kaj ĉio alia estis en C).

La portado estis aranĝita fare de Charles Kerr, la projektestro kaj verkinto de la Transmission-interfaco bazita sur Qt. La ĉefa kialo por ŝanĝi la tutan projekton al C++ estas la sento, ke kiam oni faras ŝanĝojn al libtransmission oni konstante devas reinventi la radon, kvankam ekzistas pretaj solvoj por similaj problemoj en la norma C++-biblioteko (ekzemple, estis necese). krei viajn proprajn funkciojn tr_quickfindFirstK() kaj tr_ptrArray() en la ĉeesto de std::partial_sort() kaj std::vector()), kaj ankaŭ provizi C++ per pli altnivelaj tipkontrolaj instalaĵoj.

Oni rimarkas, ke la programistoj ne metas al si mem la celon tuj reverki la tutan libtransmision en C++, sed intencas efektivigi la transiron al C++ iom post iom, komencante per la transiro al kompilo de la projekto uzante la C++-kompililon. En ĝia nuna formo, la C-kompililo ne plu povas esti uzita por kunigo, ĉar kelkaj C++-specifaj konstrukcioj estis aldonitaj al la kodo, kiel ekzemple la "aŭto" ŝlosilvorto kaj tipkonvertoj uzante la "static_cast" funkciigiston. Subteno por pli malnovaj C-funkcioj estas planita resti por kongruo, sed programistoj nun estas instigitaj uzi std::sort() anstataŭ qsort() kaj std::vector anstataŭ tr_ptrArray. constexpr anstataŭ tr_strdup() kaj std::vector anstataŭ tr_ptrArray.

fonto: opennet.ru

Aldoni komenton