Два года в /fg/. Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

#UJSFN8 (0) / @komar / 296 дней назад
Лерой пидорнул 32-битные архитектуры ибо хз новый компьютер купи))))) https://github.com/ocaml/ocaml/pull/11904 https://discuss.ocaml.org/t/jane-street-packages-dropping-support-for-32-bit/8621/21 > Second: don’t be cheap. Choose hardware that matches the software you want to run, not the other way around. Hardware adapts faster than software to your needs.
#XRUBIS (3) / @komar / 298 дней назад
Конец истории. Немного 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 / 471 день назад
Блять, СДВГ было ни при чем. 10 секунд эта ебанина шерудит только в пустой директории. Если в текущую директорию подсунуть .opam-файл, то она будет выбирать версию окамла две минуты, утилизируя при этом 100% CPU.
#6261A2 (2) / @komar / 472 дня назад
Это просто ебаный фрактал из говна. Две команды: opam switch create . opam switch create . ocaml-system.4.11.1 Первая зависает. Вторая работает. При более тщательном анализе выяснилось, что первая команда не зависает, а просто 10 секунд утилизует 100% CPU, пытаясь из своих сотен версий окамла вычислить нужную. (да, десять секунд для меня «зависло»; СДВГ — не приговор)
#FZAA4Q (0) / @komar / 472 дня назад
И ЭТО ТОЛЬКО ПОЛБЕДЫ! Я рассказал вам только про то, как они сделали опции для ./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 / 473 дня назад
История про то, как академики изобрели 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 / 473 дня назад
Автор liquidsoap, сказочный ебанарий и очень хороший человек, хуйнул в свою поделку самописный парсер json’а просто потому что на хуй идите: https://github.com/savonet/liquidsoap/pull/2011
#YJICCS (0) / @komar / 474 дня назад
https://linoscope.github.io/writing-a-game-boy-emulator-in-ocaml/ да что вы вообще могли знать о литературном программировании
#MM3R7N (0) / @komar / 835 дней назад
https://github.com/ocaml/ocaml/pull/10831 Не прошло и ста лет // не нужно
#5J8AII (0) / @komar / 856 дней назад
https://framagit.org/zoggy/ocaml-iri/-/blob/master/iri_lexer.ml#L142 Блядь, даже для обоссаного окамла есть библиоетка для парсинга ссылочек с юникодом, которая обрабатывает точки с запятыми нормально! Господи, блядь, за что?
#GM6SHD (0) / @komar / 1182 дня назад
Вспомнил я тут дела четырехлетней давности. Беру я, короче, geojson и OCaml. Уже смешно, да? Для тех, кто совсем не понимает, объясняю: — geojson — странный, уникальный формат, необходимость парсить который возникает только у меня; — OCaml — самый лучший язык программирования с самыми лучшими библиотеками. Беру я самый лучший парсер json’а atdgen. Можно декларативно схемы json’а задавать, и он сам их в окамловые типы переводит! Охуеть! Быстро выясняется, что geojson-— плохой формат, и atdgen на такие дурацкие форматы не расчитан. Ну не может такой умный парсер понять, как это так — объект coordinates бывает то двумя циферками — для точек, то списком по две циферки — для линий, то списком списков по две циферки — для полигонов. У нас в окамле все научно и такую хуйню вытворять нельзя. Ну да хуй с ним. Есть способ все парсить atdgen’ом, а координаты парсить во внутренние типы нижележащего парсера json’а, который называется yojson. Да вот беда — этот парсер тоже писали программисты на самом лучшем языке, а в самом лучшем языке нет никакого numeric, как в json’е, а есть или int, или float. И этот парсер выдает float, если видит широту 66.0, и int — если 66. Без точки. Поэтому корректная обработка координат выглядит так: match coordinate with | `List [`Floatlit lon; `Floatlit lat] | `List [`Intlit lon; `Floatlit lat] | `List [`Floatlit lon; `Intlit lat] | `List [`Intlit lon; `Intlit lat] -> float_of_string lat, float_of_string lon Про весь этот фрактал пиздеца я уже давно забыл, как про страшный сон. Но недавний холивар заставил вспомнить снова. Если вам, не дай Бог, придется работать с такими сложными форматами, как json или xml — Бога ради, не берите хороший, научный язык. Берите хуевый. Там все будет работать.
#6KTI7L (20) / @komar / 1847 дней назад
> A problem was identified in February with the camlp5 7.03 package when > installed via opam. Under certain circumstances, it is possible for the > package removal instructions to execute `rm -rf /` with potentially > devastating consequences for your files if your rm command is non-GNU (and so > doesn’t support the --preserve-root default option) which includes macOS and > other BSDs. опам самый лучший пакетный менеджер руками только дураки ставят
#IKB5V6 (4) / @komar / 2181 день назад
#UUUQ6Z (1) / @komar / 2397 дней назад
Indeed ocsigen.org is down, due to a network outage at Inria (probably hardware problem). The Inria network engineers team is working on this, but they couldn't tell us when this will be solved (hopefully today). We're very sorry for the inconvenience.
#LCI07H (4) / @komar / 2432 дня назад
сразу видно язык, разработанный академиками нихуя нет, зато atan и sinh в Pervasives какая же программа без арктангенса и гиперболического синуса, а
#OABZ65 (3) / @komar / 2488 дней назад
а чтобы cohttp была с поддежркой libev... ГОСПОДИ ЗА ЧТО
#2BSVT9 (0) / @komar / 2571 день назад
а чтобы получить cohttp с поддержкой ssl, надо снести нахуй cohttp, снести нахуй conduit, а потом поставить ssl, поставить conduit и поставить cohttp не, ну все правильно, вдруг мне cohttp без ssl понадобится, в самом деле на хуй мне этот опам, если я все равно ебусь голыми руками? автоматизация уровня ебнутого индуса, блядь
#KVPB3I (2) / @komar / 2571 день назад
opam install cohttp собирает cohttp без lwt чтобы получить cohttp с lwt, нужно сначала поставить lwt, а потом набрать opam install cohttp блядь, это уже какой-то фрактал отсоса, пожалейте меня, пожалуйста, я только с рубей слез
#82YYBZ (0) / @komar / 2571 день назад
Опам писали просто сказочные ебанаты. % opam install opam-doc [ERROR] opam-doc is not available because your system doesn't comply with preinstalled & ocaml-version = "4.01.0". % ocaml -version The OCaml toplevel, version 4.04.0 Это сообщение об ошибке на самом деле означает, что opam-doc не работает с 4.02: https://github.com/ocamllabs/opam-doc/issues/108 А вы что подумали?
#5X87BZ (2) / @komar / 2571 день назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

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