Mae Transmission cleient BitTorrent yn symud o C i C++

Mae'r llyfrgell libtransmission, sy'n sail i'r cleient Transmission BitTorrent, wedi'i chyfieithu i C++. Mae gan y trosglwyddiad rwymiadau o hyd gyda gweithrediad rhyngwynebau defnyddiwr (rhyngwyneb GTK, daemon, CLI), wedi'i ysgrifennu yn yr iaith C, ond mae angen casglwr C ++ ar y cydosod bellach. Yn flaenorol, dim ond y rhyngwyneb Qt a ysgrifennwyd yn C ++ (roedd y cleient ar gyfer macOS yn Amcan-C, roedd y rhyngwyneb gwe yn JavaScript, ac roedd popeth arall yn C).

Cyflawnwyd y porthi gan Charles Kerr, arweinydd y prosiect ac awdur y rhyngwyneb Trawsyrru yn seiliedig ar Qt. Y prif reswm dros newid y prosiect cyfan i C++ yw'r teimlad bod yn rhaid i chi ailddyfeisio'r olwyn yn gyson wrth wneud newidiadau i drosglwyddo lib, er bod atebion parod ar gyfer problemau tebyg yn y llyfrgell C++ safonol (er enghraifft, roedd yn angenrheidiol i greu eich swyddogaethau eich hun tr_quickfindFirstK() a tr_ptrArray() ym mhresenoldeb std: :partial_sort() a std::vector()), yn ogystal â darparu cyfleusterau gwirio math mwy datblygedig i C++.

Nodir nad yw'r datblygwyr yn gosod y nod iddynt eu hunain o ailysgrifennu'r trosglwyddiad lib cyfan yn C ++ ar unwaith, ond maent yn bwriadu gweithredu'r trawsnewidiad i C ++ yn raddol, gan ddechrau gyda'r trawsnewidiad i lunio'r prosiect gan ddefnyddio'r casglwr C ++. Yn ei ffurf bresennol, ni ellir defnyddio'r casglwr C ar gyfer cydosod mwyach, gan fod rhai lluniadau C ++-benodol wedi'u hychwanegu at y cod, megis yr allweddair “auto” a thrawsnewidiadau math gan ddefnyddio'r gweithredwr “static_cast”. Bwriedir i gefnogaeth ar gyfer swyddogaethau C hŷn barhau i fod yn gydnaws, ond anogir datblygwyr nawr i ddefnyddio std:: sort() yn lle qsort() a std::vector yn lle tr_ptrArray. constexpr yn lle tr_strdup() a std::vector yn lle tr_ptrArray.

Ffynhonnell: opennet.ru

Ychwanegu sylw