↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1239.1 пользователей не могут ошибаться!
?6938
прекрасное6442
говно5903
говнорашка5512
хуита4705
anime3064
linux2649
music2632
bnw2595
рашка2565
log2352
ололо2149
pic1815
дунч1807
сталирасты1491
украина1439
быдло1436
bnw_ppl1409
дыбр1238
гімно1158

#UJSFN8 (0) / @komar / 460 дней назад
Лерой пидорнул 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 / 463 дня назад
Конец истории. Немного 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 / 636 дней назад
Блять, СДВГ было ни при чем. 10 секунд эта ебанина шерудит только в пустой директории. Если в текущую директорию подсунуть .opam-файл, то она будет выбирать версию окамла две минуты, утилизируя при этом 100% CPU.
#6261A2 (2) / @komar / 637 дней назад
Это просто ебаный фрактал из говна. Две команды: opam switch create . opam switch create . ocaml-system.4.11.1 Первая зависает. Вторая работает. При более тщательном анализе выяснилось, что первая команда не зависает, а просто 10 секунд утилизует 100% CPU, пытаясь из своих сотен версий окамла вычислить нужную. (да, десять секунд для меня «зависло»; СДВГ — не приговор)
#FZAA4Q (0) / @komar / 637 дней назад
И ЭТО ТОЛЬКО ПОЛБЕДЫ! Я рассказал вам только про то, как они сделали опции для ./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 / 638 дней назад
История про то, как академики изобрели 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 / 638 дней назад
Автор liquidsoap, сказочный ебанарий и очень хороший человек, хуйнул в свою поделку самописный парсер json’а просто потому что на хуй идите: https://github.com/savonet/liquidsoap/pull/2011
#YJICCS (0) / @komar / 639 дней назад
https://linoscope.github.io/writing-a-game-boy-emulator-in-ocaml/ да что вы вообще могли знать о литературном программировании
#MM3R7N (0) / @komar / 1000 дней назад
https://github.com/ocaml/ocaml/pull/10831 Не прошло и ста лет // не нужно
#5J8AII (0) / @komar / 1021 день назад
https://framagit.org/zoggy/ocaml-iri/-/blob/master/iri_lexer.ml#L142 Блядь, даже для обоссаного окамла есть библиоетка для парсинга ссылочек с юникодом, которая обрабатывает точки с запятыми нормально! Господи, блядь, за что?
#GM6SHD (0) / @komar / 1346 дней назад
Вспомнил я тут дела четырехлетней давности. Беру я, короче, 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 / 2012 дней назад
menhir няшка ``` $ rlwrap menhir --interpret --interpret-show-cst lib/sql_parser.mly Warning: 13 states have shift/reduce conflicts. Warning: 91 shift/reduce conflicts were arbitrarily resolved. Ready! SELECT TEXT LIKE TEXT OR TEXT LIKE TEXT ACCEPT [input: [statement: [select_stmt: [select_core: SELECT [option(select_type):] [separated_nonempty_list(COMMA,column1): [column1: [expr: [expr: [literal_value: TEXT]] [mnot(like): [like: LIKE]] [expr: [expr: [literal_value: TEXT]] [boolean_bin_op: OR] [expr: [expr: [literal_value: TEXT]] [mnot(like): [like: LIKE]] [expr: [literal_value: TEXT]] [option(escape):] ] ] [option(escape):] ] [maybe_as:] ] ] [option(from):] [option(where):] [loption(group):] [option(having):] ] [list(preceded(compound_op,select_core)):] [loption(order):] [option(limit_t):] [option(select_row_locking):] ] ] EOF ] ```
#AN1OQF (2) / @ygrek / 2033 дня назад
> 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 / 2346 дней назад
После нескольких месяцев унылых ковыряний до кое-кого дошло что `filter_map` просто "нинужен" в strymonas, т.к. `filter |> map` (самое лобовое решение) метакомпилируется просто всегда лучше. Т.е. как это часто бывает - вопрос изначально поставлен был неправильно и нужно было таки выйти из системы, чтобы увидеть очевидное решение к несуществующей проблеме. Небесполезный экспириенс, каждый раз..
#8PY9II (0) / @ygrek / 2478 дней назад
#UUUQ6Z (1) / @komar / 2561 день назад
>ICFP 2017 >A B-tree library for OCaml не могу понять как называется это чувство
#QC6BRP (0) / @anonymous / 2586 дней назад
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 / 2597 дней назад
сразу видно язык, разработанный академиками нихуя нет, зато atan и sinh в Pervasives какая же программа без арктангенса и гиперболического синуса, а
#OABZ65 (3) / @komar / 2652 дня назад
функциональном языке программирования OCaml. Не менее важно, что это язык с сильной типизацией и впечатляющей системой вывода типов (компилятор сам может вывести тип значения у выражения). Используя язык с сильной типизацией, ты никогда не сможешь просуммировать количество людей и количество токенов. Это легко может случиться в языке типа C++, хотя в этом нет никакого смысла. Его выразительный синтаксис и семантика (смысловые значения операторов) значительно упрощают важную задачу – кратко и правильно описать логику, которая стоит за блокчейн протоколами. К тому же Coq, один из самых продвинутых инструментов для формальной верификации программ, полностью
#ZAAY0M (3) / @anonymous / 2664 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

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