It-Trażmissjoni tal-klijent BitTorrent taqleb minn C għal C++

Il-librerija libtransmission, li hija l-bażi tal-klijent Transmission BitTorrent, ġiet tradotta f'C++. It-trażmissjoni għad għandha rbit bl-implimentazzjoni ta 'interfaces tal-utent (interface GTK, daemon, CLI), miktuba fil-lingwa C, iżda l-assemblaġġ issa jeħtieġ kompilatur C++. Preċedentement, l-interface bbażata fuq Qt biss kienet miktuba f'C++ (il-klijent għal macOS kien f'Objettiv-C, l-interface tal-web kienet f'JavaScript, u ​​kull ħaġa oħra kienet f'C).

Il-porting sar minn Charles Kerr, il-mexxej tal-proġett u awtur tal-interface tat-Trażmissjoni bbażata fuq Qt. Ir-raġuni ewlenija biex taqleb il-proġett kollu għal C++ hija s-sentiment li meta tagħmel bidliet fil-libtransmission għandek kontinwament tivvinta mill-ġdid ir-rota, anke jekk hemm soluzzjonijiet lesti għal problemi simili fil-librerija standard C++ (per eżempju, kien meħtieġ biex toħloq il-funzjonijiet tiegħek stess tr_quickfindFirstK() u tr_ptrArray() fil-preżenza ta 'std::partial_sort() u std::vector()), kif ukoll tipprovdi C++ b'faċilitajiet ta' verifika tat-tip aktar avvanzati.

Huwa nnutat li l-iżviluppaturi ma jistabbilixxux lilhom infushom l-għan li jikteb mill-ġdid immedjatament il-libtransmission kollu f'C++, iżda għandhom l-intenzjoni li jimplimentaw it-tranżizzjoni għal C++ gradwalment, u jibdew bit-tranżizzjoni għall-kumpilazzjoni tal-proġett bl-użu tal-kompilatur C++. Fil-forma attwali tiegħu, il-kompilatur C ma jistax jintuża aktar għall-assemblaġġ, peress li xi kostruzzjonijiet speċifiċi għal C++ ġew miżjuda mal-kodiċi, bħall-kelma prinċipali "auto" u l-konverżjonijiet tat-tip bl-użu tal-operatur "static_cast". L-appoġġ għal funzjonijiet C eqdem huwa ppjanat li jibqa' għall-kompatibilità, iżda l-iżviluppaturi issa huma mħeġġa jużaw std::sort() minflok qsort() u std::vector minflok tr_ptrArray. constexpr minflok tr_strdup() u std::vector minflok tr_ptrArray.

Sors: opennet.ru

Żid kumment