BitTorrent klients Pārraide pārslēdzas no C uz C++

Libtransmission bibliotēka, kas ir Transmission BitTorrent klienta pamatā, ir tulkota C++ valodā. Pārraide joprojām ir saistīta ar lietotāja interfeisu ieviešanu (GTK interfeiss, dēmons, CLI), kas rakstīts C valodā, bet montāžai tagad ir nepieciešams C++ kompilators. Iepriekš tikai uz Qt balstītais interfeiss tika rakstīts C++ valodā (macOS klients bija Objective-C, tīmekļa saskarne bija JavaScript valodā un viss pārējais bija C valodā).

Pārnešanu veica Čārlzs Kers, projekta vadītājs un uz Qt balstītas pārraides saskarnes autors. Galvenais iemesls visa projekta pārslēgšanai uz C++ ir sajūta, ka, veicot izmaiņas libtransmisijā, pastāvīgi ir jāizgudro ritenis no jauna, lai gan standarta C++ bibliotēkā līdzīgām problēmām ir gatavi risinājumi (piemēram, tas bija nepieciešams izveidot savas funkcijas tr_quickfindFirstK() un tr_ptrArray() std: :partial_sort() un std::vector() klātbūtnē, kā arī nodrošināt C++ ar modernākām tipa pārbaudes iespējām.

Tiek atzīmēts, ka izstrādātāji neizvirza sev mērķi nekavējoties pārrakstīt visu libtransmisiju C++ valodā, bet gan plāno īstenot pāreju uz C++ pakāpeniski, sākot ar pāreju uz projekta apkopošanu, izmantojot C++ kompilatoru. Pašreizējā formā C kompilatoru vairs nevar izmantot montāžai, jo kodam ir pievienotas dažas C++ specifiskas konstrukcijas, piemēram, atslēgvārds “auto” un tipa konvertēšana, izmantojot operatoru “static_cast”. Plānots, ka atbalsts vecākām C funkcijām saglabāsies saderības labad, taču izstrādātāji tagad tiek mudināti izmantot std::sort(), nevis qsort() un std::vector, nevis tr_ptrArray. constexpr, nevis tr_strdup() un std::vector, nevis tr_ptrArray.

Avots: opennet.ru

Pievieno komentāru