A transmissão do cliente BitTorrent muda de C para C++

A biblioteca libtransmission, que é a base do cliente Transmission BitTorrent, foi traduzida para C++. A transmissão ainda possui ligações com a implementação de interfaces de usuário (interface GTK, daemon, CLI), escritas na linguagem C, mas o assembly agora requer um compilador C++. Anteriormente, apenas a interface baseada em Qt era escrita em C++ (o cliente para macOS estava em Objective-C, a interface web estava em JavaScript e todo o resto estava em C).

A portabilidade foi realizada por Charles Kerr, líder do projeto e autor da interface Transmission baseada em Qt. A principal razão para mudar todo o projeto para C++ é a sensação de que ao fazer alterações na libtransmission você tem que reinventar a roda constantemente, mesmo que existam soluções prontas para problemas semelhantes na biblioteca C++ padrão (por exemplo, era necessário para criar suas próprias funções tr_quickfindFirstK() e tr_ptrArray() na presença de std: :partial_sort() e std::vector()), além de fornecer ao C++ recursos de verificação de tipo mais avançados.

Observa-se que os desenvolvedores não têm como objetivo reescrever imediatamente toda a libtransmission em C++, mas pretendem implementar a transição para C++ gradativamente, começando pela transição para a compilação do projeto utilizando o compilador C++. Em sua forma atual, o compilador C não pode mais ser usado para montagem, uma vez que algumas construções específicas do C++ foram adicionadas ao código, como a palavra-chave “auto” e conversões de tipo usando o operador “static_cast”. O suporte para funções C mais antigas está planejado para permanecer para fins de compatibilidade, mas os desenvolvedores agora são incentivados a usar std::sort() em vez de qsort() e std::vector em vez de tr_ptrArray. constexpr em vez de tr_strdup() e std::vector em vez de tr_ptrArray.

Fonte: opennet.ru

Adicionar um comentário