BitTorrent клиенті Беріліс C тілінен C++ түріне ауысады

Transmission BitTorrent клиентінің негізі болып табылатын libtransmission кітапханасы C++ тіліне аударылды. Трансмиссия әлі де С тілінде жазылған пайдаланушы интерфейстерін (GTK интерфейсі, демон, CLI) іске асырумен байланыстырады, бірақ енді құрастыру үшін C++ компиляторы қажет. Бұрын тек Qt негізіндегі интерфейс C++ тілінде жазылған (macOS үшін клиент Objective-C-де, веб-интерфейс JavaScript-те, ал қалғанының бәрі C тілінде болатын).

Портингті жоба жетекшісі және Qt негізіндегі Transmission интерфейсінің авторы Чарльз Керр жүзеге асырды. Бүкіл жобаны C++ тіліне ауыстырудың негізгі себебі - стандартты C++ кітапханасында ұқсас мәселелерге арналған дайын шешімдер бар болса да, libtransmission-қа өзгертулер енгізу кезінде сіз үнемі дөңгелекті қайта ойлап табуыңыз керек деген сезім болып табылады (мысалы, бұл қажет болды. std: :partial_sort() және std::vector()) болған кезде tr_quickfindFirstK() және tr_ptrArray() өз функцияларыңызды жасау үшін, сонымен қатар C++ тілін анағұрлым жетілдірілген типті тексеру құралдарымен қамтамасыз ету.

Әзірлеушілер C++ тілінде барлық либертрансляцияны бірден қайта жазуды мақсат етпейтіні, бірақ C++ компиляторы арқылы жобаны компиляциялауға көшуден бастап, C++ тіліне көшуді біртіндеп жүзеге асыруға ниетті екені атап өтіледі. Ағымдағы пішінде C компиляторын енді құрастыру үшін пайдалану мүмкін емес, өйткені кодқа кейбір C++-арнайы құрылымдар, мысалы, «auto» кілт сөзі және «static_cast» операторы арқылы түр түрлендірулері қосылған. Үйлесімділік үшін ескі C функцияларына қолдау көрсету жоспарлануда, бірақ әзірлеушілер енді qsort() орнына std::sort() және tr_ptrArray орнына std::векторды қолдануға шақырылады. tr_strdup() орнына constexpr және tr_ptrArray орнына std::вектор.

Ақпарат көзі: opennet.ru

пікір қалдыру