BitTorrent klijent Prenos se prebacuje sa C na C++

Biblioteka libtransmission, koja je osnova Transmission BitTorrent klijenta, prevedena je u C++. Prijenos i dalje ima veze sa implementacijom korisničkih interfejsa (GTK interfejs, demon, CLI), napisan u C jeziku, ali za sklapanje sada je potreban C++ kompajler. Ranije je samo interfejs zasnovan na Qt-u bio napisan na C++ (klijent za macOS je bio u Objective-C, veb interfejs je bio u JavaScript-u, a sve ostalo je bilo u C).

Prenos je izvršio Charles Kerr, vođa projekta i autor Transmission interfejsa zasnovanog na Qt. Glavni razlog za prebacivanje cijelog projekta na C++ je osjećaj da prilikom izmjena libtransmissiona morate stalno iznova izmišljati kotač, iako postoje gotova rješenja za slične probleme u standardnoj C++ biblioteci (npr. bilo je potrebno da kreirate sopstvene funkcije tr_quickfindFirstK() i tr_ptrArray() u prisustvu std: :partial_sort() i std::vector()), kao i da obezbedite C++ naprednije mogućnosti za proveru tipova.

Napominje se da programeri ne postavljaju sebi cilj da odmah prepišu cjelokupnu libtransmisije u C++, već namjeravaju postepeno implementirati tranziciju na C++, počevši od prelaska na kompajliranje projekta pomoću C++ kompajlera. U svom sadašnjem obliku, C kompajler se više ne može koristiti za asembler, pošto su neke konstrukcije specifične za C++ dodane u kod, kao što su „auto” ključna reč i konverzije tipa koristeći „static_cast” operator. Planirano je da podrška za starije C funkcije ostane radi kompatibilnosti, ali se programeri sada ohrabruju da koriste std::sort() umjesto qsort() i std::vector umjesto tr_ptrArray. constexpr umjesto tr_strdup() i std::vector umjesto tr_ptrArray.

izvor: opennet.ru

Dodajte komentar