Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 14 сентября 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ
Конфигурация комнаты
Участники комнаты

GMT+4
[00:02:19] <gds> кстати, про "$" -- они в camlp4 точно нормально работают?
[00:10:05] <Kakadu> я затрудняюсь сказать вообще что такое $
[00:10:32] <Kakadu> как в х-е что-ли?
[00:16:10] Kakadu вышел(а) из комнаты
[00:41:54] shaggie вышел(а) из комнаты
[01:21:11] <Typhon> bobry, http://paste.in.ua/3039/ -- а что дальше?
[01:22:05] <Typhon> gds, c  ">>" "<<" -- известные проблемы, а вот с "$" не помню, но может быть с ассоциативностью что-то не то
[01:23:43] <Typhon> gds, гист надо было самому, наверное, создать, со всем этим текстом, а потом комменты, а то мне даже неловко, что у моего такого гиста "тестового" такие комментарии важные :[
[01:30:34] <gds> Typhon: ну не помню про "$".  Почему "$" не равен "let ($) f x = f x" -- это я вспомнил и уже даже начал формулировать, но вовремя спохватился.
про гист -- вроде пофиг, там же тупо обсуждение.  да вообще, погляжу день-два, скопипащу завтра в чятик что можно, поэкспериментирую, да пропишу в камлунити/вики и себе новые операторы.
[01:57:14] ftrvxmtrx вошёл(а) в комнату
[01:58:49] ftrvxmtrx вышел(а) из комнаты
[02:22:17] gds вышел(а) из комнаты
[02:28:35] ftrvxmtrx вошёл(а) в комнату
[03:30:49] ftrvxmtrx вышел(а) из комнаты
[03:37:39] letrec вошёл(а) в комнату
[03:37:45] letrec вышел(а) из комнаты
[03:38:03] letrec вошёл(а) в комнату
[03:55:47] Typhon вышел(а) из комнаты
[04:15:40] letrec вышел(а) из комнаты
[07:04:56] komar вышел(а) из комнаты: Replaced by new connection
[07:04:56] komar вошёл(а) в комнату
[08:37:15] sceptik вошёл(а) в комнату
[08:37:18] sceptik вышел(а) из комнаты
[08:50:18] Typhon вошёл(а) в комнату
[09:35:59] bobry- вошёл(а) в комнату
[09:36:12] <bobry-> Typhon: а дальше ошибка -- мол нету модуля Kaputt
[09:36:55] <Typhon> сейчас до работы доеду попробую поставить, а то домашняя новая система неоверблюженная ещё
[09:37:07] <bobry-> у тебя убунта то дома?
[09:37:17] <bobry-> там 3.12 только oneiric -- нестабильном тобишь
[09:37:49] bobry- тут посещает курс по алгоритмам и там грозятся добавить камл в систему проверки задачек, вуху! :)
[09:42:22] <Typhon> убунту, нарвал, онерик поставил -- чота тупил, беты бажные всё-таки какие-то. ничего, можно компельнуть или ппа какие-нибудь добавить %)
[09:45:26] <bobry-> ппа с камло увы нету
[09:54:29] gds вошёл(а) в комнату
[09:55:46] Typhon вышел(а) из комнаты
[10:02:02] gds вышел(а) из комнаты
[10:02:23] gds вошёл(а) в комнату
[10:25:21] <bobry-> товарищи, хто darcs умеет? не могу нагуглить как патч выдернуть в .patch
[10:44:25] <komar> Чо?
[10:44:41] <komar> darcs help send?
[10:47:01] <bobry-> darcs diff -u -n<N>
[10:55:15] <bobry-> komar: ты вчера с core то разобрался?
[10:55:23] <bobry-> а черт, перепутал -- сори
[10:55:29] <bobry-> это Kakadu с ним мучался
[10:55:43] komar вышел(а) из комнаты
[10:55:56] Typhon вошёл(а) в комнату
[11:11:46] <Typhon> bobry: а чо если дебку с 3.12 взять, что оно для себя хочет системного?
[11:12:50] <bobry-> Typhon: так добавь в sources.list oneiric и сделай пин для natty
[11:13:03] <bobry-> или APT::Default-Release "natty" -- вроде так православней
[11:17:37] <Typhon> ладно, надо будет попробовать :-)
[11:17:42] Typhon не пинил никогда ещё
[11:18:22] <bobry-> на всякий случай http://www.argon.org/~roderick/apt-pinning.html и https://help.ubuntu.com/community/PinningHowto
[11:18:48] <Typhon> кстати, остерегайтесь — дефолтный маркдаун отличается от гитхабовского местами! (я не только про фичи). то, что выглядит нормально для стандартного, на гитхабе в сраку превращается (см. последние n коммитов в kamlo_wiki)
[11:19:40] <bobry-> ты про таблицы?
[11:20:28] <Typhon> ага, в основном про них
[11:23:07] <Typhon> https://github.com/defunkt/markdown-mode/blob/master/markdown-mode.el
mirrored from git://jblevins.org/git/markdown-mode.git — а как такое делается в гитхабе? типа, указать, что зеркало?
[11:23:21] <bobry-> кстати мне тоже интересно
[11:23:26] <bobry-> я не нашел где явно указать можно
[11:24:29] <Typhon> хотя это репка defunkt'а, а он гитхаб-рабочий, емнип, может у него эти, ПРИВЕЛЕГИИ!
[11:25:16] <bobry-> Typhon: git push --mirror origin master
[11:25:23] <bobry-> видимо
[11:25:28] <bobry-> * это просто гитовский флаг
[11:34:07] ermine вошёл(а) в комнату
[11:45:13] <bobry-> все кто не пользуются oasis должны гореть в аду, этот капутт вообще какую то странную магию делает при сборке
[12:14:56] <bobry-> Typhon: вощем в #ocaml рассказали как чинить kaputt, думаю что в деб пакете эта проблема уже решена :) ура-ура
[12:15:52] <Typhon> ага, я вижу там, опять самосборкой ребята занимаются
[12:16:00] <Typhon> хорошо хоть не на руби скрипт, как в ocaml-redis
[12:16:02] <bobry-> по рукам бить
[12:16:08] <bobry-> Rakefile же
[12:16:49] <bobry-> чтобы зарепортить баг надо регаться в мантисе, что за кустарность йома
[12:18:17] <bobry-> может в camlunity зеркалировать проекты с добавленым _oasis?
[12:19:24] <f[x]> естетственно
[12:19:43] <f[x]> это первоочередная задача камлунизма - тотальная оазификация всей страны
[12:20:21] <Typhon> 1) делаешь оазификацию 2) предупреждаешь авторов / шлёшь патч 3) по обстоятельствам
[12:20:28] <Typhon> а ещё захватить телефон и телеграф
[12:21:03] <f[x]> бесплатная патчицина и форкование
[12:27:48] <bobry-> f[x]: это стоит добавить в faq :)
[12:28:27] <bobry-> kaputt вот умеет ставиться без findlib'a -- когда такое вообще может быть полезно?
[12:28:58] <Typhon> когда у тебя нет финдлиба!
[12:29:00] <Typhon> ^_^
[12:29:10] <bobry-> так не бывает :)
[12:31:01] <f[x]> говорят так было, в старые тёмные времена, когда земля была объята мраком и самописные билд-скрипты правили миром
[12:31:50] <bobry-> по рукам за такое, однозначно
[12:32:47] <gds> f[x]: говорят, кто-то падвендой батниками собирает!  и я даже видел, кто.
[12:33:03] <bobry-> ужаскакой
[12:33:36] <f[x]> gds: в зазеркалье видел?
[12:34:47] <f[x]> не, ну винда это дикая страна, куда не дошёл ещё свет цивилизации, так что им можно собирать код языческими обрядами и впадать в грех
[12:35:08] <bobry-> там же powershell есть ...
[12:42:22] <bobry-> Typhon: а чего ты полиморфные варианты не заюзал в conbson'e?
[12:42:51] <Typhon> я дурак
[12:42:53] <Typhon> а для чего? %)
[12:42:54] <Typhon> :-)
[12:44:36] <bobry-> так для конструкторов, чтобы не надо было open Bson делать
[12:44:51] <bobry-> `ObjectID s вместо Bson.ObjectID s
[12:44:59] <bobry-> эстетичней вроде :)
[12:45:34] <Typhon> да хз, только ради этого смысла особого нет, расширять тоже не придётся, набор конструкторов фиксированный
[12:45:35] <bobry-> плюс можно же тип открытым сделать да?
[12:45:45] <bobry-> а
[12:45:51] bobry- не читал спеку bson'a
[12:47:38] <Typhon> ну вот там все типы уже и описаны, что у меня
[12:48:58] <gds> так-с, про инфиксное давайте додумаем до конца.  https://gist.github.com/1214232#comments -- нужны комментарии.
[12:50:46] <Typhon> ну вот я щитаю, что эти https://gist.github.com/1214232#gistcomment-50490 варианты клёвые, и для базы — очень ок (кроме &). разное кол-во аргументов я не особо часто пользую, вроде б
[12:51:02] klapaucius вошёл(а) в комнату
[12:52:27] <bobry-> Typhon: let from_objectid x = x -- а почему не let from_objectid (ObjectId x) = x?
[12:53:20] <Typhon> -Wall не даст, емнип
[12:53:35] <bobry-> fragile?
[12:53:49] <Typhon> ага
[12:53:53] <bobry-> просто не очень понятно тогда зачем эта функция
[12:54:07] <Typhon> а там конструктор не приватный ли?
[12:54:22] <Typhon> то есть тип objectid
[12:54:33] <bobry-> nope
[12:54:34] <bobry-> type objectid = string
[12:55:07] <Typhon> gds: ну то есть я вот прямо за издание директивы про инфиксные операторы для одноаргументных функций :-) остальные надо пробовать/проверять с кампл4
[12:56:11] <Typhon> bobry: type objectid = private string
[12:56:16] <Typhon> :P в интерфейсе
[12:56:48] <Typhon> и соот-но to_objectid проверяет длину, а from_objectid для того, чтобы обратно в строку
[12:57:13] <bobry-> ну ну
[13:02:37] <gds> оппа, с "<|" прокол вышел: http://paste.in.ua/3043/
[13:04:54] <bobry-> kaputt все таки очень приятный и хорошо документированный :)
[13:16:52] shaggie вошёл(а) в комнату
[13:19:15] komar вошёл(а) в комнату
[13:47:44] Kakadu вошёл(а) в комнату
[13:48:21] <bobry-> Typhon: шота я смотрю в спеку и не могу воткнуть что там за cstring у Document?
[13:48:47] <bobry-> key, value ах
[13:49:22] iNode вошёл(а) в комнату
[13:49:57] <Typhon> cstring кончается на \0
[13:50:12] <bobry-> в общем decode не прав
[13:50:16] <Typhon> а обычная строка длину имеет впереди
[13:51:15] <bobry-> ругается гад на невалидный BSON
[13:51:21] <bobry-> хотя BSON генерится "encode"
[13:52:08] <bobry-> и это я только `Double d` пока тестирую
[13:54:28] <Typhon> квикчек недостаточно квикчекест у меня, значит, инвалидных бсонов не выпадало :-(
[13:57:23] bobry- вошёл(а) в комнату
[13:57:25] bobry- вышел(а) из комнаты
[13:57:28] <Typhon> хм
[13:57:36] <Typhon> а байнари у тебя ocaml-binary ?
[13:57:45] <bobry-> Typhon: не-не, это я капут уже трогаю
[13:57:47] <Typhon> если дабл — то скорее всего там фигня
[13:57:51] <bobry-> ага, он самый
[13:57:52] <Typhon> проверь endianness
[13:57:57] <Typhon> какой в байнари
[13:58:01] <Typhon> и какой в БСОН
[13:58:14] <bobry-> LE везде, если верить комменту который был в твоем binary.ml
[13:58:16] <Typhon> вот, кажется, binary.ml этим и отличался от janestreet'овского
[13:58:49] <bobry-> Each type must be serialized in little-endian format.
[13:59:42] <bobry-> к тому же это синтетический тест же, parse_float / unparse_float оба из binary
[14:01:35] <Typhon> ага, ок, но там вроде бы в бсоне падать негде — там тупо метка и длина, хм, я думаю какие-то различия в binary могли повлиять
[14:02:01] <bobry-> у меня тесты падали и до перехода на бинари
[14:02:14] <bobry-> но на всякий случай щас откачусь
[14:03:44] <bobry-> откатился -- аналогичная ситуация, ошибки здесь http://paste.in.ua/3044/
[14:13:55] <bobry-> нормальные такие флоаты капутт генерит:
Double 21534616459997222821775866504778039662898905713901165865177139099400816207970378778198961791295998262880834650737919397042593139813148385991797209886713549088676878955008621003764975290759874337843380560166855712041290341784201773432875776632345594286352682348965525211561346452061787162922634666741898149888.000000
[14:14:42] <f[x]> особенно дробная часть умиляет :)
[14:14:57] <f[x]> а, туплю
[14:16:35] <bobry-> такое разве уберется в 64 бита?
[14:18:08] <f[x]> флоат же
[14:18:22] <Typhon> во флоут +infinity должно влезать
[14:18:32] <bobry-> а черт, да -- там больше
[14:18:36] <Typhon> а тут всего ничего, гораздо больше!
[14:18:39] <Typhon> *меньше
[14:18:41] <Typhon> >_<
[14:19:10] <f[x]> столько значащих цифр не влезет, а так ок
[14:19:23] <bobry-> че же бсону то не нравится блин http://paste.in.ua/3046/
[14:19:53] <bobry-> жаль все parse_* функции в замыкании, не потрогать даже :)
[14:19:58] <bobry-> можно их правда оттуда вытащить
[14:31:00] <gds> с одной стороны, хочется написать bson на итератах.  с другой же стороны, не хочется наламывать боброго.
[14:31:11] <gds> наламывать кайф, имею ввиду.
[14:41:40] <gds> писал изначально в чятик, но много вышло и сохранить захотел: http://gdsfh.dreamwidth.org/12003.html
[14:43:16] ftrvxmtrx вошёл(а) в комнату
[14:43:56] <gds> стоп, unread this, я про генерацию допишу туда же, дам ссылоту скоро.
[14:45:17] <bobry-> gds: я сам бы с радостью с итератами поковырялся
[14:45:50] <gds> bobry-: ну так начинай ковыряться.  За базовую манатку бери Identity, так как ввод-вывод пока не нужен, и вперде.
[14:47:34] <bobry-> я пока олеговские писания читаю, но чую что тут надо сразу в код нырять
[14:56:18] <Typhon> gds: а может ты чего напишешь (или уже писал? ) касательно итерати в окамле? на пальцах, для пацанов, "как про ковариантность" !
[14:57:35] <bobry-> да-да, присоединяюсь
[14:58:01] <АК> +1
[14:58:14] <gds> http://gdsfh.dreamwidth.org/12003.html
[14:58:21] <gds> -- обновил-дописал, но фигню.
[14:58:40] <bobry-> gds опять впереди планеты всей :) даешь итераты для народа
[14:58:57] <gds> о, а может всё написание bson-парсера превратим в "туториал по итератам"?
[14:59:05] <bobry-> кстати хорошая идея
[14:59:12] <bobry-> можно туда и camlp4 приплести кстати
[14:59:17] <bobry-> и type-conv
[14:59:20] <bobry-> {...} with bson
[15:00:33] <Typhon> можно сперва просто парсир
[15:00:35] <gds> ой, camlp4 я не умею.  Если представляете, что такое json-wheel -- то вот на такое меня хватит.  Остальное слишком гламурно, и мне было мало нужно.  С другой стороны, это шанс для кого-нибудь из вас изучить и рассказать остальным что-то, тоже в  форме туториала.
[15:00:37] <Typhon> очень крутая идея!
[15:00:52] zert вошёл(а) в комнату
[15:01:19] bobry- давно почитывает json-wheel и ко
[15:04:50] <Kakadu> давайте вспомним про мою проблему с core_extended? http://paste.in.ua/3045/
[15:05:07] <Kakadu> что-то моя свежая голова не помогает ничерта
[15:05:17] <bobry-> тут надо спеца по camlp4 ...
[15:07:23] <bobry-> gds: что то я заворот про функторы не осили, можешь пояснить?
[15:07:27] <gds> ну что ж, уболтали, чертяки языкастые.  Однако я не знаю, как это лучше публиковать.  В literate-стиле, как олег, я не осилю -- там будет много модулей, файлов, а не просто proof of concept.  Кроме того, будут, очевидно, лирические отступления.  А про dreamwidth -- слышал, там гемор с комментированием для не имеющих аккаунта.
Может рядом с kamlo_wiki?  Т.е. на гитхабе, в около-камлунистических местах?  Чем хорошо -- что есть и веб-редактор, и файлы.  Чем плохо -- борюсь с Марком Дауном, борьба не впирает.  И на работе выработали формат обсуждений документации/проектов, я вам покажу, он клёвый.
[15:07:28] <Kakadu> никто не знает, чатлоги ирки есть?
[15:08:21] <gds> Kakadu: про твою проблему -- обратись к авторам, это их работа.
[15:08:24] <bobry-> gds: ну гитхаб то само собой, но хотелось бы сопустствующие посты тоже где то иметь
[15:08:31] <bobry-> можно кстати через gh-pages сделать
[15:08:49] <gds> ну в гитхабе -- part1.md, part2.md.
[15:08:56] <bobry-> с каким нить генератором статики вполне даже ок
[15:09:00] <bobry-> можно даже в том же репозитории
[15:09:07] <gds> кстати, почему это "гитхаб само собой"?  куча вариантов была.
[15:09:13] <bobry-> http://pages.github.com/ если кто не в курсе
[15:09:21] <bobry-> ну код в смысле на gh выкладывать
[15:10:53] <bobry-> кстати можно было бы сamlunity.github.com так сделать
[15:12:05] <Typhon> домен первого уровня круче!
[15:12:08] <Typhon> Kakadu: логи ирки есть
[15:12:12] <bobry-> там можно custom domains
[15:13:55] <Typhon> Kakadu: http://zheng.li/archive.html#buzzlogs
[15:14:58] <Typhon> gds: про формат обсуджения — давай, очень интересная тема! (кстати, https://trello.com/ — если не видели, рилейтед кое-как)
[15:15:46] <Kakadu> Typhon: сайт той китаянки, что в Галлиуме работает?
[15:16:18] <Typhon> gds: предлагаю создать проект в camlunity и там с обильными комментами? или это как раз литерейт стиль получается?
[15:16:25] <Typhon> Kakadu: хз кто это, там есть логи
[15:16:39] <gds> trello мой браузер не принимает.
[15:17:41] <Typhon> gds: тогда, получается, либо страницы в kamlo_wiki, либо страницы в camlunity.ru (придётся html! и комментить нельзя), либо отдельный проект iteratee_tutorial с page1.md (можно комменты к коммитам писать).
[15:18:25] <bobry-> Typhon: как это нельзя? а как же дискус?
[15:18:33] <bobry-> я предлагаю github + pages + дискус
[15:22:21] <gds> а почему никто не предлагает видеоуроки?
[15:24:08] komar покосился на gds
[15:24:33] <Kakadu> я эрланг вспомнил
[15:25:55] <bobry-> тык ета, давайте согласимся уже на чем нибудь :)
[15:26:58] <gds> что, никто не хочет 10 минут смотреть, как я набиваю на клавиатуре исходники с голосовым сопровождением типа "тааак... <прошло 30 секунд, 20 ударов по backspace>...  неее, чото у нас хня получается... <10 секунд напряжённого сопения>...  вот я пишу объявление модуля: эм, оу, ди, ю, эль, и -- тааак, хорошо... <сопение>  вот какие мы молодцы, теперь давайте придумаем имя модулю..."
[15:27:55] <Typhon> скринкасты!!1!1!1 1
[15:28:00] <Kakadu> gds: я вроде печатный текст лучше воспринимаю
[15:28:21] <Typhon> только для скринкастов нужен человек с унылым голосом обязательно!
[15:28:31] <gds> ну так скринкасты, конечно же.
[15:29:05] <gds> лучше с гнусавым.  у меня как раз сезонная аллергия (только уже заканчивается).
[15:29:47] <gds> может ради такого дела попросить володарского почитать нам?
[15:31:01] <gds> в общем, подумал про формат.  Не нравится разбивать на отдельную дискуссию (она и в исходниках будет в тему -- увидите), и вижу мало смысла в pages.  Таки лучше репку, literate-стиль, и специальные обозначения в исходниках для обсуждений.  Обозначения опишу там же.  Только вот интересно, в гите есть удобные именованные ветки, как в меркуриале?  А то кое-что хотел ими решить.
[15:39:19] <Typhon> ну вот по идее гитовые обычные ветки похожи на
[15:41:44] <gds> понял.  Однако у меня тут в соседнем обсуждении всплыло "hg vs git", и я сегодня изучу конвертер между этими видами репок.
[15:43:59] <bobry-> hggit?
[15:44:44] <gds> да что-то такое было, не помню названий, нагуглю легко.
[15:48:05] <Typhon> есть пуре-питон имплементация гита, на основе которой построен hg-git, с его помощью можно в гизаб совать средствами меркуриала %)
[15:51:18] bobry- аккумулирует у себя камлопакеты в AUR, сегодня отработал еще парочку :)
[15:51:31] <gds> да я проще сделаю -- создам репку на гитхабе, склонирую локально, создам меркуриаловскую репку на основе гитовской, и всё.  по идее, покатит.  это проще, чем изучать питон.
[15:52:02] <bobry-> gds: тык можешь просто через hg-git работать с гит репкой из меркуриала?
[15:52:15] <gds> а посмотрим, не изучал.  изучу.
[15:54:03] <bobry-> а ocamldoc не умеет маны генерить?
[15:54:15] <bobry-> а тобыло бы круто -- man List например
[15:54:36] <bobry-> умеет, ну ничего же себе
[15:54:45] <Typhon> gds: да, питон не придётся, hg-git уже есть
[15:54:47] <bobry-> надо будет попробовать
[15:58:35] <f[x]> только лучше man 3o list
[15:58:50] <bobry-> да
[15:59:09] <bobry-> у кого нить дебиан есть? они там маны генерят для камло?
[16:00:23] <gds> в убунте генерят.
[16:00:37] <bobry-> для библиотек?
[16:01:00] <gds> для stdlib
[16:03:19] <gds> туплю.  _oasis:
Executable main
  Path:       .
  BuildTools: ocamlbuild
  MainIs:     main.ml
  
по make all собирается только main.byte.  где включить, чтобы собирался main.native?
[16:06:39] <bobry-> gds:   CompiledObject:  best
[16:11:29] <gds> понял.  но мне бы в идеале оба бинарника, а там только один из вариантов: byte, native, best.  варианта типа "byte, native" не умеет.
[16:12:00] <bobry-> не умеет вроде ага
[16:12:33] <gds> если бы было что-то важное -- отписал бы легаллу.  а так -- тупо native мне хватит.
[16:23:09] <f[x]> gds: http://forge.ocamlcore.org/tracker/index.php?func=detail&aid=860&group_id=54&atid=294 :)
[16:57:14] letrec вошёл(а) в комнату
[17:00:28] ftrvxmtrx вышел(а) из комнаты
[17:05:55] ftrvxmtrx вошёл(а) в комнату
[17:45:58] letrec вышел(а) из комнаты
[17:48:36] letrec вошёл(а) в комнату
[17:52:07] <gds> посмотрел ocamlweb (literate programming).  Так это же унылое говно!
[17:52:36] <Typhon> emacs + блок текста + comment-region
[17:53:16] <bobry-> иде смотреть?
[17:53:24] <bobry-> на literate ocaml в смысле
[17:55:34] <gds> http://www.lri.fr/~filliatr/ocamlweb/
[17:59:31] <bobry-> что то я не врубаюсь в чем тут "literate"
[18:00:07] <Kakadu> bobry: в том что комменты приветствуются
[18:01:02] <bobry-> ну в literate haskell например надо
[18:01:13] <bobry-> *эскейпить код, все остальное считается за коммент
[18:01:18] <bobry-> а тут как то странно
[18:02:39] <Typhon> http://en.wikipedia.org/wiki/Literate_programming#Misconceptions
[18:03:30] <Typhon> кстати, думается мне, что препроцессор для literate ocaml в том виде, как в он в х-ле , написать не очень то сложно
[18:03:42] <bobry-> ouch
[18:04:30] <gds> я на кое-что поинтереснее замахнусь, видимо.  и для работы полезно, и для той задачки с summary.
[18:04:46] <gds> только надо манулов почитать.  как всегда.
[18:08:32] <Typhon> gds наконец то напишет тулзу, которая сама будет документацию к коду писать!
[18:08:56] <gds> ааа1111
[18:09:36] Typhon вышел(а) из комнаты
[18:12:32] ftrvxmtrx вошёл(а) в комнату
[18:12:33] ftrvxmtrx вышел(а) из комнаты
[18:17:20] <gds> а вообще, удобны ли двумерные синтаксисы?  например, отличать код от документации по наличию пробелов (перед кодом)?
[18:17:49] <zert> лучше такого не делать
[18:18:01] <zert> код должен быть отдельно от документации, так он лучше воспринимается
[18:18:20] <zert> когда документацию пишут в коде, получается так, что на экране умещается мало кода
[18:18:29] <zert> неновесть, содом, ад, израиль, гоморра
[18:18:45] <gds> но тогда легче следить за тем, что документация соответствует коду.
[18:20:01] <zert> нифига
[18:20:10] <zert> вот это пиздёшь чистой воды
[18:20:26] <zert> получается и в коде говно, и в документации
[18:20:39] <bobry-> zert: почему?
[18:20:48] bobry- любит размашистые комменты в коде
[18:20:52] <zert> такова природа человека
[18:20:54] <gds> может это у меня такая "личная особенность", но мне нравится ocamldoc, например.
[18:20:54] <Kakadu> > когда документацию пишут в коде, получается так, что на экране умещается мало кода
А если писать перед каждым значением, торчащим в mliшку?
[18:21:01] <zert> размашистые комментарии мешают восприятию кода
[18:21:30] <zert> Kakadu: вот в интерфейсах ещё можно
[18:21:32] <zert> но не в коде
[18:21:42] <bobry-> zert: orly? скажи это людям которые пишут ядро линукса
[18:21:59] <Kakadu> zert: я говорю, что тогда дока не занимает места на экране
[18:22:04] <zert> bobry-: и что там? я под линупц одно время драйвера писал, нормально там всё
[18:22:15] gds afk, в том числе на подумать
[18:22:30] <bobry-> zert: там много больших и очень больших комментариев -- но часто даже они не помогают
[18:22:44] <bobry-> zert: к тому же все нормальные редакторы умеют фолдинг
[18:22:48] <zert> bobry-: если комментарии большие, то они тем более не помогут
[18:22:57] <bobry-> почему?
[18:23:02] <zert> большие комментарии мешают читать код
[18:23:12] <zert> и они комментарии
[18:23:24] <zert> человек должен код писать так, чтобы не требовались комментарии
[18:23:45] Typhon вошёл(а) в комнату
[18:24:11] <zert> а то пишут херню, потом такие же дислексические комментарии рядом, и хер проссышь, что получается
[18:25:17] <zert> комментарии приемлимы только в описании API, интерфейсов модулей, и то только в виде "эта функция принимает такие-то аргументы, делает то-то"
[18:25:54] <bobry-> «zert: человек должен код писать так, чтобы не требовались комментарии» утопия же
[18:26:32] <Typhon> // default timeout to connet
NNNV_DEFAULT_CONNTECT_TIMEOUT
[18:26:34] <Typhon> ^_^
[18:28:16] <Typhon> можно писать код, так чтобы почти не требовались комментарии
[18:28:20] <zert> bobry-: не утопия. почти любой ерланговский проект берёшь — там так и написано. ежаберд вот только исключение, там можно ослепнуть
[18:28:50] <Typhon> а вообще, в интефрейсе минимум комментов, про то, нафига такие типы и аргументы, например
[18:29:19] <zert> ну если типы явно прописаны, то в комментарии не надо
[18:29:29] <zert> а если динамичеки, как в ерлангие, то не помешают
[18:29:29] <bobry-> zert: окей, ключевое слово эрланг, все понятно
[18:29:33] <Typhon> а про реализацию, либо кусками, где есть нетривиальные вещи, либо папиру / статью в вике, если там вся реализация нетривиальная
[18:29:41] <zert> да
[18:29:48] komar вышел(а) из комнаты
[18:29:59] komar вошёл(а) в комнату
[18:31:16] <zert> меня вот literate haskell бесит капец
[18:31:30] <zert> выбор академических академиков
[18:46:52] bobry- вышел(а) из комнаты
[19:02:41] <letrec> как написать patterm matching expression, которое будет матчить 'a ref? т.е. алиас для !
[19:03:17] <gds> # value f { contents = c } = c;
value f : ref 'a -> 'a = <fun>
[19:05:07] <letrec> т.е. ref ниразу не абстрактный получается
[19:05:20] <gds> обычная запись с мутабельным полем.
[19:05:54] <letrec> это ясно, интересно почему реализация не спрятана
[19:05:58] <f[x]> toplevel в помощь :
# let x = ref 2;;
val x : int ref = {contents = 2}
[19:06:00] <gds> хотя нет, необычная.
[19:06:32] <gds> вот чем:
# value f { val = c } = c;
value f : ref 'a -> 'a = <fun>
[19:07:53] <Kakadu> да вроде обычная
[19:07:57] <Kakadu> # type 'a myref = {mutable con:'a};;
type 'a myref = { mutable con : 'a; }
# let f { con } = con;;
val f : 'a myref -> 'a = <fun>
[19:08:06] <Kakadu> я тоже так умею
[19:08:58] <gds> http://paste.in.ua/3052
[19:09:21] <gds> синтаксическая поддержка детектед.
[19:11:19] <Kakadu> а почему третий стэйтмент компилится?
[19:12:43] <letrec> разве это не алиас для {Pervasives.contents : 'a} получается?
[19:13:00] <letrec> я про type t 'a = { contents : 'a };
[19:13:04] <Kakadu> letrec: gds утверждает что нет
[19:13:35] <letrec> gds: обоснуй
[19:14:42] <Kakadu> letrec: по-видимому revised ещё определяет ref 'a = { mutable val : 'a }
[19:14:59] <letrec> в пределах одного модуля у разных рекордов могут быть поля с одинаковыми именами?
[19:15:10] <gds> могут.
[19:15:18] <f[x]> хм, а в original?
[19:16:02] <f[x]> а, там val всё равно занят
[19:16:13] <f[x]> кстати, откуда ты про это узнал - что ещё val есть?
[19:16:19] <gds> в общем, судя по http://paste.in.ua/3052 , я догадываюсь, что в camlp4r при работе с записями "val" заменяется на "contents", это всё объясняет.
[19:16:46] <gds> откуда -- э.  А как я рефы в revised использую?  x.val и только так.
[19:16:53] gds снова afk -- rl..
[19:18:29] <f[x]> ясно
[19:26:58] ftrvxmtrx вошёл(а) в комнату
[19:27:49] ftrvxmtrx вышел(а) из комнаты
[20:29:40] klapaucius вышел(а) из комнаты
[21:02:26] letrec вышел(а) из комнаты
[21:06:10] ftrvxmtrx вышел(а) из комнаты
[21:11:56] <gds> так таки що, никто не опроверг мою гипотенузу про val->contents?
[21:31:59] <komar> zert: а тут гажимеры есть?
[21:32:14] <zert>
[21:32:18] <zert> хз
[21:35:49] ftrvxmtrx вошёл(а) в комнату
[21:37:23] shaggie вышел(а) из комнаты
[22:17:37] <gds> про обсуждение -- https://github.com/camlunity/kamlo_wiki/blob/master/InfixOperators.md -- вот как-то так, как в начале статьи, вполне прилично обсуждать штуки -- квотинг "чем к низу, тем больше >".  ну и так, чтобы каждый дифф выражал решение, типа "на эту ветку отвечено, её удаляем".
[22:24:00] <gds> точнее, файлик постоянно будет тут -- https://github.com/camlunity/kamlo_wiki/blob/dc788469608fa79280f759ce884f876006889c1f/InfixOperators.md (см. фиксированную ревизию), а тот, что в tip, я буду еть.
[22:36:26] ftrvxmtrx вышел(а) из комнаты
[22:36:59] shaggie вошёл(а) в комнату
[22:58:14] iNode вышел(а) из комнаты
[23:01:54] <gds> как, вы думаете, должен себя вести код
let print_int_sum = ( + ) %%> string_of_int %> print_string
?  А вот и криво.  А вот определения
let print_int_sum = ( + ) @@> string_of_int @> print_string
и
let print_int_sum = ( + ) ^^> string_of_int ^> print_string
ведут себя нормально.  Ассоциативность операторов.  Мне проще было потестить.
Что оставить для "композиции слева-направо"?  Склоняюсь к "@" -- на вид такой же тяжеловесный символ, как и "%".  Кроме того, хочется таки указать направление композиции: "%<", "%%<", "%%%<" и "@>", "@@>", "@@@>", чтобы и видно было направление, и с пользовательскими "%" и "@@" не перекрывалось.
[23:39:31] ftrvxmtrx вошёл(а) в комнату
[23:40:28] <bobry> ftrvxmtrx: починишь kaputt в AUR'e?
[23:41:20] <ftrvxmtrx> bobry: да, конечно
[23:41:35] <ftrvxmtrx> bobry: почему-то md5 на makefile.patch отличается
[23:41:53] <bobry> может trailing newline?
[23:41:58] <bobry> мне емакс его как то сам посчитал
[23:42:02] <bobry> и makepkg не возразил
[23:42:40] <bobry> если ты смогешь это sedом написать, то так даже лучше буит
[23:42:45] <bobry> я просто магией не владею
[23:44:42] ermine вышел(а) из комнаты
[23:49:43] <ftrvxmtrx> гыгы
[23:50:02] <ftrvxmtrx> bobry: пропал newline и стало \r\n вместо \n
[23:50:08] <ftrvxmtrx> поэтому не совпадает
[23:50:18] <bobry> лол :)
[23:50:37] <ftrvxmtrx> это может pastebin такое делает?
[23:50:46] <bobry> вполне может кстати
[23:50:57] <bobry> откуда еще \r взяться в линуксах
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!