Мохнатые уроды и моральные пёзды. Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1235.1 пользователей не могут ошибаться!
?6911
прекрасное6424
говно5887
говнорашка5512
хуита4695
anime3056
linux2645
music2623
bnw2588
рашка2560
log2337
ололо2114
pic1814
дунч1734
сталирасты1488
украина1437
быдло1434
bnw_ppl1371
дыбр1237
гімно1158

Вас наверняка уже заебало мое истеричное нытье по поводу самого уебищного пакетного менеджера на планете, но. Посмотрите на то, как выглядит типичный коммит в opam: https://github.com/ocaml/opam-repository/commit/f0404e9e511f12001d30716544c9f13397f3ceb1
#6YNJST (2) / @komar / 475 дней назад
Конец истории. Немного perf’а — и я выяснил, что две минуты ебет CPU некое dose3. > Resolving package installations in the presence of dependencies and conflicts is known to be an NP-complete problem. Thankfully, a big effort has already been put into solving it efficiently. > A fundamental distinguishing feature of the opam package manager is the fact that it is designed to reuse state-of-the-art dependency solving technology that gives the users the possibility to express their preferences regarding the operations to be performed during an installation, instead of being bound to an hard-coded strategy. Десятки велосипедных пакетных менеджеров, как велосипедных, так и системных, резолвят зависимости на гораздо более крупном множестве пакетов? Но ведь это полная хуета! Это НЕНАУЧНО. Это NP-полная проблема! И только мы ее эффективно решаем! Две минуты! Всего за две минуты мы вычситываем, какую версию окамла поставить! Бесползено жаловаться в issues на гитхабе. Это NOTABUG. Научно доказано, что это NP-полная проблема.
#HP3UOS (0) / @komar / 478 дней назад
Блять, СДВГ было ни при чем. 10 секунд эта ебанина шерудит только в пустой директории. Если в текущую директорию подсунуть .opam-файл, то она будет выбирать версию окамла две минуты, утилизируя при этом 100% CPU.
#6261A2 (2) / @komar / 479 дней назад
Это просто ебаный фрактал из говна. Две команды: opam switch create . opam switch create . ocaml-system.4.11.1 Первая зависает. Вторая работает. При более тщательном анализе выяснилось, что первая команда не зависает, а просто 10 секунд утилизует 100% CPU, пытаясь из своих сотен версий окамла вычислить нужную. (да, десять секунд для меня «зависло»; СДВГ — не приговор)
#FZAA4Q (0) / @komar / 479 дней назад
И ЭТО ТОЛЬКО ПОЛБЕДЫ! Я рассказал вам только про то, как они сделали опции для ./configure компилятора. А еще для компилятора бывают ПАТЧИ. Знаете, как их сделали? Отдельным пакетом для каждого набора патча! ocaml-variants.4.11.1+fp ocaml-variants.4.11.1+fp+flambda ocaml-variants.4.11.1+musl+flambda ocaml-variants.4.11.1+musl+static+flambda То есть они пытаются сделать ДЕКАРТОВО ПРОИЗВЕДЕНИЕ всех возможных патчей! И каждый результат — в виде директории и файлика! И все — в одном git-репозитарии!
#VTWU24 (2+1) / @komar / 480 дней назад
История про то, как академики изобрели USE-флаги. Я только что увидел самое больное дерьмо, что когда-либо выдавали кудахтерные инженеры. Есть пакетный менеджер opam для языка программирования OCaml. Входит во множество так называемых «велосипедных пакетных менеджеров». Кроме установки пакетов-библиотек он занимается еще и установкой самого компилятора нужной версии. Вообще в этом главная проблема opam — у его создателей очень хуево с реляционным мышлением, и они очень плохо понимают, что именно они делают. У них просто есть какие-то проблемы, и они хуярят в свою поделку что-то, чтобы они решились. Вот и все проектирование. Ближе к делу. Если набрать opam switch list, то тебе выдадут все доступные версии комплятора OCaml. Но каждой версии будет две: одна подписана как ocaml-base-compiler, другая как ocaml-variants. В чем разница — понять очень сложно, так как гуглить по запросам "ocaml variants" и "ocaml options" одно удовольствие (выдаст все что угодно, кроме нужного). Покопавшись в исходниках, начинаешь понимать, что вскрывать эту тему не стоило. Итак, у компилятора OCaml есть свой ./configure, где можно включить всякие опции. Есть разработчик opam’а. Он хочет, чтобы по команде opam switch create можно было устанавливать компилятор с нужным набором опций. Как он это делает? Он засовывает в репозитарий пакетов (библиотек) пакет ocaml-variants. Туда он срет СОТНИ (на текущий момент 566) версий объявления пакетов. Вот вам для примера: https://github.com/ocaml/opam-repository/blob/master/packages/ocaml-variants/ocaml-variants.4.14.1%2Boptions/opam Обратите внимание на секцию build. Теперь, чтобы пользователь мог поставить OCaml, допустим, с опциями bytecode-only и musl, он дожен сделать opam switch create 4.14.1 --packages ocaml-option-bytecode-only,ocaml-option-musl Вообще-то опция --packages нужна была для того, чтобы сразу ставить нужные пользователю пакеты. Но тут при помощи какой-то ебаной магии эти пакеты — которые тоже реально существуют, посмотрите в репе! — считаются установленными, на них триггерятся флаги в opam-файле, и делается нужное ./configure Занавес, блять. Справедливости ради хочу отметить, что эта поебень делалась не совсем академиками. Кроме академиков, есть еще и полтора бизнеса, которые пользуются окамлом. Так вот, они выдают код в три раза хуже, чем у академиков. Вот это вот мастерили люди из бизнеса. Пожалейте меня, пожалуйста. Я серьезно. Я в шоке, у меня руки трясутся, у меня потеряна вера в человечество и я хочу мой 2022 год назад.
#O9U2XN (35+1) / @komar / 480 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.