LINUX.ORG.RU

DNF будет переписан на языке C

 


0

4

DNF — пакетный менеджер, используемый в дистрибутиве Fedora. Его предшественник Yum был полностью написан на Python, в DNF же на данный момент низкоуровневый функционал вынесен в отдельные C-библиотеки (hawkey, librepo, libsolv и libcomps).

Начиная с этого момента, код DNF будет постепенно переписываться на C в рамках отдельного проекта libhif; функционал hawkey уже влит в libhif.
Пока в libhif реализовано скачивание метаданных, разрешение зависимостей и исполнение RPM-транзакций; в будущем планируется доработка libhif для поддержки других базовых функций пакетного менеджера.

Внедрение libhif со встроенным hawkey ожидается к релизу Fedora 25.

>>> Подробности

Команда приняла верное решение, что выбрала чистый C, а не цепепе с пайфонами :-) Намекает о многом, когда на дворе 2016 и вот-вот выйдет современный C++17 :-)

anonymous ()
Ответ на: комментарий от anonymous

Команда приняла верное решение, что выбрала чистый C, а не цепепе с пайфонами :-) Намекает о многом

Намекает, что в RedHat сидят заскорузлые деды, которые до сих пор изображают Си++ вручную.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Намекает, что в RedHat сидят заскорузлые деды,

Хм :-) Может быть и так, не знаю, но сомневаюсь :-) Но думаю, что никто из них не хочет заработать преждевременный нервный тик :-)

которые до сих пор изображают Си++ вручную.

Хех :-) Сам то понял, что сказал? :-) Зачем изображать его вручную, когда можно просто взять готовый? :-) Ведь при всём желании, оставаясь в рамках C, не получится «изобразить» пространства имён, шаблоны, исключения, ссылки и всё, что с ними связано, включая правила выведения типов, поиска имён, тонкостей универсальных ссылок и, о, кошмар, метарограммирования в стиле цепепе :-) Там, очевидно, хотят решать практическую задачу, а не бороться со всем вышеперечисленным, лишь только потому, что не хочется писать free*(), а полагаться на деструкторы :-) Лол :-)

anonymous ()
Ответ на: комментарий от anonymous

Зачем изображать его вручную, когда можно просто взять готовый? :-)

Я этого тоже не понимаю, но факт налицо - они изображают.

Ведь при всём желании, оставаясь в рамках C, не получится «изобразить» пространства имён, шаблоны, исключения, ссылки и всё, что с ними связано, включая правила выведения типов, поиска имён, тонкостей универсальных ссылок и, о, кошмар, метарограммирования в стиле цепепе :-)

Туземцы в Полинезии изображали самолеты из бамбука, а эти изобразят метапрограммирование на Си. Всё получится.

tailgunner ★★★★★ ()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Я этого тоже не понимаю, но факт налицо - они изображают.

Пруф :-)

Туземцы в Полинезии изображали самолеты из бамбука, а эти изобразят метапрограммирование на Си. Всё получится.

А зачем изображать метапрограммирование на Си, когда надо писать пакетный менеджер, а не ещё один Boost :-) Лол :-)

anonymous ()
Ответ на: комментарий от anonymous

Я этого тоже не понимаю, но факт налицо - они изображают.

Пруф :-)

По ссылке.

А зачем изображать метапрограммирование на Си

По ссылке есть контакты - спроси.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

По ссылке.

По ссылке код на Python :-) Если ты имеешь в виду libsolv, то, во-первых, его вообще писали в Novel, а не в RedHat. Во-вторых, если ты намекаешь, что вот этот код:

/*
 * Copyright (c) 2007, Novell Inc.
 *
 * This program is licensed under the BSD license, read LICENSE.BSD
 * for further information
 */

void
map_grow(Map *m, int n)
{
  n = (n + 7) >> 3;
  if (m->size < n)
    {
      m->map = solv_realloc(m->map, n);
      memset(m->map + m->size, 0, n - m->size);
      m->size = n;
    }
}

это типа эмуляция ООП в C++, поэтому пора бы уже писать на C++, ибо там есть оператор «точечка» для вызова функции-члена, то спешу тебе сообщить, что, во-первых, лучше иметь 1 структуру и 100 функций для работы с ней, чем 10 структур (аля классов) и 10 функций для работы с ними :-) Во-вторых, это C++ генерирует такой вот код на C, так что это C++ подражает C, а не наоборот :-) И вообще, C++ без C == ++ :-)

anonymous ()
Ответ на: комментарий от anonymous

а ++ - это синтаксическая ошибка, т.е., недоразумение :-) Лол :-)

anonymous ()
Ответ на: комментарий от anonymous

По ссылке код на Python :-)

По ссылке обычная GLib-муть.

если ты намекаешь, что вот этот код

Видишь в хедпосте libhif? Вот туда и смотри.

tailgunner ★★★★★ ()

Они не могли dnf сразу на C написать?

log4tmp ★★★ ()
Ответ на: комментарий от tailgunner

Видишь в хедпосте libhif? Вот туда и смотри.

А, ну ок :-) Во-первых, молодые разработчики на дедов не похожи - https://github.com/cgwalters, https://github.com/hughsie, https://github.com/mluscon :-) Во-вторых, понятно, что ты, увидев всякие g_autoptr, GET_PRIVATE напомнило тебе C++ :-) Но до C++14/17 там ну ооочень далеко :-) В-третьих, даже такой стиль многим лучше, чем классический цепепешный :-) При хороших знаниях C продуктивность выше, чем при средненьких знаниях C++ :-) А хорошие знания C++ можно приобрести только спустя долгие-долгие годы, в отличии от C :-)

anonymous ()
Ответ на: комментарий от anonymous

А хорошие знания C++ можно приобрести только спустя долгие-долгие годы, в отличии от C :-)

Это если хватит терпения постоянно ковыряться в нём лет, эдак, 5, не отвлекаясь :-)

anonymous ()
Ответ на: комментарий от anonymous

молодые разработчики на дедов не похожи

«Заскорузлый дед» не имеет отношения к возрасту. Впрочем, пусть будут «заскорузлые юноши».

tailgunner ★★★★★ ()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

«Заскорузлый дед» не имеет отношения к возрасту.

Во-первых, в оригинале от тебя звучало без кавычек:

Намекает, что в RedHat сидят заскорузлые деды, которые до сих пор изображают Си++ вручную.

Во-вторых, что же ты тогда имеешь под, теперь уже взятом в кавычки, выражением «заскорузлый дед», глядя на молодых разработчиков Red Hat и не только? :-)

anonymous ()
Ответ на: комментарий от anonymous

в оригинале от тебя звучало без кавычек:

Цитата выделяется кавычками.

Во-вторых, что же ты тогда имеешь под, теперь уже взятом в кавычки, выражением «заскорузлый дед»

Предубежденных людей, которые принимают решения, основанные на устаревших стереотипах.

tailgunner ★★★★★ ()

Новость ещё не подтвердили, а срач anonymous VS tailgunner уже в самом разгаре (.

sudopacman ★★★ ()
Ответ на: комментарий от tailgunner

Цитата выделяется кавычками.

Кавычками выделяется не только цитата, но и текст в переносном смысле :-) А «Заскорузлый дед» без кавычек и воспринимается буквально :-) Иначе можно легко лавировать, так, как это сейчас делаешь ты - сказал одно, потом начал юлить, что, дескать, имел в виду другое :-) Удобно ведь :-)

Предубежденных людей, которые принимают решения, основанные на устаревших стереотипах.

А ты думаешь, что выбирать для проекта язык C++, на котором за несколько десятков лет написаны тонны легаси - это не устаревшие стереотипы, а откровение и новинка? :-) Лол :-)

anonymous ()
Ответ на: комментарий от anonymous

Кавычками выделяется не только цитата, но и текст в переносном смысле :-)

Это была цитата.

Иначе можно легко лавировать, так, как это сейчас делаешь ты - сказал одно, потом начал юлить, что, дескать, имел в виду другое :-)

Ну да, ты будешь рассказывать мне, что я имел в виду.

А ты думаешь, что выбирать для проекта язык C++, на котором за несколько десятков лет написаны тонны легаси - это не устаревшие стереотипы, а откровение и новинка?

На Си написано гораздо больше легаси, и? А насчет того, следует ли использовать C++11 - спроси, например, Avi Kivity.

tailgunner ★★★★★ ()
Ответ на: комментарий от log4tmp

Ну DNF изначально является ответвлением от YUM, т.ч., очевидно, не могли.

carasin ★★★★★ ()
Ответ на: комментарий от tailgunner

На Си написано гораздо больше легаси, и?

Я понимаю, если бы ты сказал, что вот, деды, надо писать на Go, а они всё с цепепе да с це носятся :-) Но цепепе ничем не новее Си :-) Как это любят у вас говорить «от слова совсем» :-)

А насчет того, следует ли использовать C++11 - спроси, например, Avi Kivity.

Чего мне спрашивать? :-) Когда реально надо будет, я и так C++14 возьму, без всяких там мнений экспертов :-) Только мне не надо будет, скорее всего :-) Если только заплатят хорошо, а так... :-)

anonymous ()
Ответ на: комментарий от tailgunner

Мде. Ну окей.

Ну, как бы да :-) Не, ну правда :-) Вот Rust - новее, да :-) А цепепе - тот же Си, который, без Си, как уже говорилось, просто ++ :-) И он нужен ровно до тех пор, пока существует Си :-)

anonymous ()

Свои строки уже изобрели? А то как так то, проект на сях и без своих строк.

Mystra_x64 ★★★★★ ()

Что только не придумают, чтобы не делать статически линкованные программы, как во свех нормальных осях, win, mac, android

Но будут пилить очередной глюкавый велосипед.

anonymous ()

Если бы ред хат писал проекты на Vala, была бы и ему поддержка и программы на современном языке, вместо этого мамонта. Но нет, не хочу, хочу на си.

Weres ★★ ()
Ответ на: комментарий от tailgunner

Не иначе как Поттеринг дотянулся...

anonymous ()
Ответ на: комментарий от anonymous

Сжечь бы тебя за твои дебильные смайлики...

anonymous ()

на языке C

Молодцы. Чисто. Расово.

Gonzo ★★★ ()

А почему не на rust? это же стильно, модно, молодежно

pftBest ()

Ну так всё верно, сначала написали прототип на питоне, обкатали в продакшоне, посмотрели что как, а теперь выкидывают и переписывают на си.
Всё верно делают, короче.

b0c0813f ()
Ответ на: комментарий от tailgunner

А кто тебе сказал, что они вообще что-то изображают, а не пишут на Си?

nexfwall ★★★★ ()
Ответ на: комментарий от anonymous

Что только не придумают, чтобы не делать статически линкованные программы, как во свех нормальных осях, win, mac, android

win

У тебя mfc42.dll отклеился.

A1 ()
Ответ на: комментарий от anonymous

Святая толстота...

P.S. Да и то, тупой. Ведь статически линкованные программы распространены только в винде. В android их нет, это уж точно.

nexfwall ★★★★ ()
Последнее исправление: nexfwall (всего исправлений: 1)
Ответ на: комментарий от Mystra_x64

Ты так говоришь, будто в плюсовых проектах мало велосипедов. Тех же реализаций строк я видел не меньше десятка, да и сам тоже велосипедил, чего греха таить.

Gvidon ★★★ ()
Ответ на: комментарий от Mystra_x64

Пример универсальных строк в студию.

anonymous ()
Ответ на: комментарий от anonymous

Зачем писать смайлики - если ты и так посмешище?

Уверенность, что С++ отличается от С только наличием классов - уже говорит все о навыках автора.

anonymous ()

Как многолетний пользователь федоры, скажу так: возмите уже apt-get, ёклмн.

PS подписан на fedora-devel, иногда проглядываю темы про dnf, чтобы волосы на голове пошевелить.

legolegs ★★★★ ()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от anonymous

O_о Так там еще и больше одного проекта???

Ну что тут сказажешь... Embrace, extend and extinguish...

shkolnick-kun ()
Ответ на: комментарий от legolegs

Как многолетний пользователь федоры, скажу так: возмите уже apt-get, ёклмн.

Довольно странно слышать такое от пользователя Fedora.

region51 ★★ ()
Ответ на: комментарий от anonymous

Команда приняла верное решение, что выбрала чистый C

Чем бы дитя не тешилось, лишь бы не руками.

Намекает о многом

Вкупе с картбланшем для автора пшшшаудио, действительно получается картина маслом.

Manhunt ★★★★★ ()

Что только люди не придумают, лишь бы не ставить pacman.

Sociopsih ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.