Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 29 июля 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Светлое будущее -- http://camlunity.ru/ | Нефильтрованное настоящее -- https://github.com/camlunity/kamlo_wiki | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | **ocaml мёртв, move on**
Конфигурация комнаты
Участники комнаты

GMT+4
[00:05:00] <gds> bobry: не, это из-за того, что можно таки генерить в tex.  Плюс к тому, это общепризнанная нотация для мотиматеки.  Хоть и убогая, чего уж тут.
[00:05:27] <gds> как именно генерить -- не спрашивайте.  Я на этом собак не ел.
[00:07:15] <bobry> убого это все в коде смотрится
[00:20:41] bobry вышел(а) из комнаты
[00:59:28] ermine вышел(а) из комнаты
[01:14:27] bobry вошёл(а) в комнату
[01:22:51] <bobry> ну разумеется у Num нету t
[01:22:55] <bobry> зато есть Num.num
[01:23:02] <bobry> о великий камл
[01:32:06] bobry вышел(а) из комнаты
[01:55:00] Typhon вышел(а) из комнаты
[01:56:07] xroft вошёл(а) в комнату
[02:00:56] ygrek вышел(а) из комнаты
[02:19:52] shaggie вышел(а) из комнаты
[02:22:46] zert вышел(а) из комнаты
[03:57:05] zinid вошёл(а) в комнату
[06:04:07] delete_ вошёл(а) в комнату
[06:30:31] delete_ вышел(а) из комнаты
[09:00:54] ermine вошёл(а) в комнату
[09:13:56] xroft вышел(а) из комнаты
[10:00:55] <ermine> gds: я не могу пересобрать итераты:
gmake: `clean' is up to date.
[10:01:06] <ermine> хнык
[10:10:41] bobry вошёл(а) в комнату
[10:32:55] <ermine> шота ocaml-data-note 0.0.6 не собирается
[10:35:51] <ermine> какой-то Gen.idp хочет
[10:36:26] bobry вышел(а) из комнаты
[10:43:56] <ermine> removed from type-conv
[10:49:25] <ermine> в общем не поняла откуда оно
[10:54:02] <ermine> нашла
[10:54:11] <ermine> действительно удалили из свежего type-conv
[10:56:49] <ermine> галл - тормас
[11:07:00] <komar> Лерой ворвался в тред и пообещал все починить.
[11:07:03] <komar> Шо-то сдохло.
[11:15:31] ftrvxmtrx вошёл(а) в комнату
[11:20:38] <ermine> какой тред?
[11:20:51] <komar> Да про хештейблы.
[11:21:17] <ermine> а что там? а то я мейллисты не читаю
[11:25:01] bobry- вошёл(а) в комнату
[11:25:08] bobry- вышел(а) из комнаты
[11:25:18] bobry- вошёл(а) в комнату
[11:25:46] <komar> ermine: http://dump.bitcheese.net/texts/emadewo/Plaintext
[11:26:27] <bobry-> ermine: видимо ему надо type-conv 2.3, в 3.0 idp выпилили -- сам на днях наткнулся
[11:28:48] <bobry-> «In case someone else is interested, I computed the transitive closure of the various dependencies. If you want to play with utop you will need: ...‘ caml-list суров, транзитивное замыкание он нашел лол
[11:31:02] <ermine> komar: zomg!
[11:40:53] zert вошёл(а) в комнату
[12:17:28] ftrvxmtrx вышел(а) из комнаты
[12:32:32] Typhon вошёл(а) в комнату
[12:42:54] komar вышел(а) из комнаты: Replaced by new connection
[12:42:55] komar вошёл(а) в комнату
[12:49:15] <bobry-> товарищи, а почему вот так нельзя let module Foo = match bar with ... in ...
[12:50:54] ftrvxmtrx вошёл(а) в комнату
[12:50:55] <komar> Чо?
[12:51:34] <bobry-> ну я хочу let module заюзать, с вариантами в правой части
[12:51:41] <komar> module — это много значений и типов, а match — это одно значение.
[12:51:57] <komar> Заюзай функтор, если я правильно понял, что тебе надо.
[12:51:57] <bobry-> видимо я не правильно понимаю смысл first-class modules
[12:52:09] <f[x]> потому что без first class модулей let module это чисто синтаксический сахар
[12:52:24] <bobry-> f[x]: так они же first class в 3.12?
[12:52:28] <f[x]> да
[12:52:34] <f[x]> только rtfm сначала
[12:52:39] <bobry-> я пытюась :)
[12:52:47] <bobry-> какой m читать?
[12:53:37] <komar> Единственный.
[12:53:38] <f[x]> http://caml.inria.fr/pub/docs/manual-ocaml/manual021.html#toc81
[12:53:55] komar тоже пошел.
[12:56:48] <f[x]> module X = struct let x = 2 end;;
module Y = struct let x = 3 end;;
let f x = let module Z = (val (match x with true -> (module X : T) | false -> (module Y : T)) : T) in Z.x;;
[12:58:28] <bobry-> nice, спасибо f[x] :)
[12:58:58] <f[x]> это просто транслитерация мануала, читайте доки, они рулят
[13:00:44] bobry- бы предпочел более user friendly доки
[13:00:57] <bobry-> кстати, у кого нить есть пример кода с функторами без Setов?
[13:01:09] <bobry-> это похоже такая же фигня что с ADT и деревьями
[13:01:18] <bobry-> как будто других примеров не бывает :)
[13:01:50] <Typhon> у gds в парвеле ^____^
[13:05:21] <f[x]> http://ocamlgraph.lri.fr/sudoku.ml
[13:12:22] <gds> bobry-: кстати да.  я там от некоторых функторов (над IO) избавился, но другие там вполне таки в тему: https://bitbucket.org/gds/parvel/src/6f85f5f23768/parvel.ml#cl-1199 -- тут видим, что функтор берёт модуль, удовлетворяющий сигнатуре, которую предоставляют итераты, и работают с ним в меру своей испорченности.
[13:12:54] <bobry-> черт, то что модули можно возвращать из функции это просто замечательно
[13:12:59] <bobry-> жаль только синтаксис очень избыточный
[13:13:48] <bobry-> gds: я пока про итераты не читал, поэтому такой код с трудом перевариваю -- как только дозрею, обязательно почитаю :)
[13:14:50] <ermine> gds: как насчет make clean в итератах?
[13:15:39] <ermine> gds: я пересобрать это поделие после перехода на 3.12.1 не могу!!!1
[13:16:20] <ermine> при переходе на 3.12.1 ломаются на stdlib и threads
[13:16:35] <bobry-> hrm hrm, а что в threads то ломается?
[13:17:05] <ermine> хз
[13:17:22] <ermine> просто видела конфликт и всё
[13:18:24] <bobry-> кто мне расскажешь как узнать тип inet_addr? что то я не могу найти нужную функцию в Unix
[13:18:56] <bobry-> можно конечно наличие ":" или "." проверять, но это как то грязно :D
[13:20:10] <gds> ocamlbrowser -> inet_addr -> Unix.inet_addr (t) -> "type inet_addr", абстрактный тип.
[13:20:40] <bobry-> абстрактный то он абстрактный
[13:20:54] <bobry-> а вот узнать ipv4 там адрес или ipv6 не мешало бы
[13:22:43] <f[x]> domain_of_sockaddr
[13:23:08] <gds> ermine: пофиксил.  пулль новые исходники, rm -f clean, и будет работать.
[13:23:49] <ermine> gds: ща
[13:24:14] <ermine> gds: да я умею удалять руками!
[13:24:30] <ermine> только делаю это через find -delete
[13:25:16] <ermine> а еще классный способ - удалить рабочкий каталог и склонировать заново
[13:26:46] <gds> make clean должен работать, и всё тут.  а он не работал.
[13:27:49] <ermine> пересобралось
[13:27:55] <ermine> скрипты - зло!
[13:28:04] <gds> клонирование требует отсутствия незакоммиченных изменений в рабочей копии, иначе лёгкий фейл.  А вот иметь чистую рабочую копию, которую копировать, там собирать и в любом из раскладов удолять -- это очень ок.
[13:28:10] <f[x]> для тех кто не умеет писать makefile'ы есть оазис :)
[13:30:15] <ermine> f[x]: а как бы теперь собрать оазис, если у меня теперь конфликт по депендсам?
[13:30:30] <f[x]> а зачем его пересобирать?
[13:30:43] <ermine> ему нужен старый type-conv, а у меня уже стоит новый и что-то на нём уже собранное живет
[13:31:27] <f[x]> зачем пересобирать - ты же только бинарник юзаешь
[13:32:50] <ermine> а вдруг заинтересуюсь тем, что лежит в site-lib/oasic?
[13:33:39] <ermine> хотя по идее оно используется всякий раз при генерации setup.ml
[13:33:46] <ermine> ща проверю, генерится ли
[13:34:40] <ermine> генерится, ну и ладно
[13:34:45] <komar> Сборкопроблемы.
[13:36:06] <ermine> пора валить на хаскиль и кабал
[13:37:48] <komar> Да, валите.
[13:38:12] <komar> И прекратите тащить кабал в окамл.
[13:38:35] <ermine> f[x]: лучше скажи галлю на ирце, если его видишь, чтоб подогнал odn до type-conv
[13:39:02] <ermine> чтоб и оазис тоже обновить можно было
[13:39:20] <f[x]> я думаю он знает
[13:39:32] <ermine> не старой рухлядью же пользоваться
[13:40:20] <ermine> ну тогда почитаю хаскиль дальше, там уже немного осталось
[13:52:50] <komar> ermine: третью книжку по теории категорий дочитываешь?
[13:53:53] <Typhon> http://www.ozon.ru/context/detail/id/3376020/ или что-то такое
[13:55:12] <gds> факт :)
[13:55:13] <ermine> komar: нет, попроще, щас мне объясняют как найти общий множитель двух чисел на хаскиле
[13:56:02] <f[x]> вводный курс перед штурмом факториала?
[14:01:18] <bobry-> лол
[14:02:18] <komar> bobry-: typical haskell@: http://komar.psto.net/gfsee
[14:03:10] <bobry-> komar: в точку!
[14:05:08] <komar> bobry-: вот еще: http://voker57.psto.net/ghegi
[14:09:22] <gds> миниатюрки понравились.
[14:12:35] <gds> а у меня -- говнота какая-то.  Circular build detected: a.cmi already seen in [b.cmi; c.cmi; d.cmi; ...; q.cmo; q.byte].  По такой "форме" ошибки можно что-то сказать?  Смотрю в *.ml.depends и вижу фигу.
[14:13:58] <gds> точнее, там так: a.cmi already seen in [b.cmi; c.cmi; a.cmi (*самосебя*); d.cmi; ...; q.cmo; q.byte]
[14:14:57] <gds> по логике, за это отвечают все cmi, которые до первой встречи a.cmi -- a, b и c?
[14:19:57] <bobry-> кто нибудь пытался очеловечить вывод ocamldoc'a?
[14:20:08] <komar> А что в нем не так?
[14:20:14] <bobry-> выглядит страшно
[14:20:20] <komar> Лучше всех!
[14:20:29] <bobry-> нельзя глянуть код как в haddoc'e например
[14:20:37] <komar> А если добавить -keep-code и -colorize-code, то вообще отвал башки.
[14:20:46] <bobry-> о, таки можно
[14:20:46] <komar> > -keep-code
[14:20:50] <bobry-> но шаблон в любом случае ад
[14:20:56] <komar> Отличный шаблон!
[14:21:02] <komar> И там усе меняется.
[14:21:16] <bobry-> ну это замечательно, вопрос то был -- пытался кто или нет :)
[14:21:20] <komar> Джва года читаю, брат живой.
[14:21:30] <komar> lwt’шники поменяли.
[14:22:12] <komar> У них теперь что-то вроде http://ocsigen.org/lwt/api/Lwt
[14:22:17] <komar> Только без панелек всяких.
[14:23:43] <bobry-> неплохо выглядит вроде
[14:23:54] <komar> Ты еретик.
[14:24:15] <komar> Шучу, конечно. Получше выглядит, да.
[14:26:09] <bobry-> http://www.solipsys.co.uk/new/EveryLanguageFixesSomething.html
[14:26:15] <bobry-> пишут что в камле нету макросов, liars
[14:26:26] <komar> Кто запилил макросы в камл?
[14:26:57] <Typhon> да отвратительный там граф
[14:27:01] <komar> какой страшнюший вывод dot’а.
[14:27:02] <Typhon> ява типа упрощает обжси
[14:27:19] <Typhon> а Д и Немерля — венец человечества
[14:27:19] <komar> > scary syntax
[14:27:23] <komar> Убью.
[14:27:44] <bobry-> :D
[14:27:57] <bobry-> ну кстати у х-ля синтаксис то по лакониченей
[14:27:58] <komar> > no support for Japanese
[14:27:59] <Typhon> list -> erlang (scary synatax) — ну это ж пипец
[14:28:01] <bobry-> да, ermine? :)
[14:28:02] <komar> Убью.
[14:28:32] <komar> Как будто в рубях до 1.9 был уникод.
[14:28:35] <bobry-> кстати можно как нить заматчить любую строку с '.' внутри
[14:28:35] <Typhon> в перле нету японского?
[14:28:37] <bobry-> komar: был
[14:28:51] <Typhon> да вы что, у них самая полная поддержка юникода, судя по недавней презентации
[14:28:58] <komar> Да был, но через одно места.
[14:29:03] <komar> Сейчас через другое, но такое же.
[14:29:15] <komar> Вместо того, чтобы нормально запилить уникод, у них у строк КОДИРОВКИ.
[14:29:31] <komar> > awk -> (not a real language) ->
Ну твою ж мать.
[14:30:23] <gds> графы -- лол.
[14:31:35] <gds> сразу видно, что графы составляли энтузиасты широкого профиля.
[14:31:51] <ftrvxmtrx> автор графов — жирный тролль, не ведитесь
[14:32:26] <komar> ftrvxmtrx: толсто!
[14:32:34] <ftrvxmtrx> ога!
[14:43:52] <Typhon> http://cufp.org/conference/sessions/2011/html5-web-application-development-ocaml
[14:44:06] <komar> О ужос.
[14:44:17] <komar> Статью не читал.
[14:44:19] <bobry-> ОГО
[14:44:28] <Typhon> http://cufp.org/conference/sessions/2011/ocaml-and-acunu-experience-report
[14:44:53] <bobry-> круто, они же записи выкладывают потом?
[14:45:28] <Typhon> с прошлогодних были записи, кажется
[14:54:47] <f[x]> http://forge.ocamlcore.org/projects/argot
[14:59:23] <f[x]> http://caml.inria.fr/cgi-bin/viewcvs.cgi?rev=11160&view=rev
[15:00:53] <gds> В РОТ МНЕ НОГИ!!111
[15:01:44] <bobry-> поясните для непосвященных?
[15:01:59] <Typhon> gadt вмерджили в транк, насколько я понял %)
[15:02:58] <bobry-> let module Packet = (val (packet family) : PACKET) in -- все таки не кошерно оно смотрится с этим val <_<
[15:03:00] <komar> Блин. опять мануал читать.
[15:03:11] <bobry-> komar: у тебя еще есть время, пока его зарелизят
[15:11:58] <bobry-> товарищи, а что бы такое для еполла заюзать по легче?
[15:14:55] <Typhon> libev/libevent и камло биндинги к нему
[15:15:13] <Typhon> у игрека есть всякое поверх libevent, но он не делится ^_^
[15:15:14] <bobry-> это как то жирненько будет
[15:15:36] <bobry-> смотря на такое -- http://john.5070.info/software/ так и хочется сказать Y U NOT ON FORGE?!
[15:15:36] <Typhon> ну вот от соотечествеников http://john.5070.info/2009/05/ocaml-epoll/
[15:15:40] <Typhon> :-)
[15:16:29] <bobry-> ни README ни examples, йома, вот это соотечественник
[15:16:54] <ftrvxmtrx> а в extunix нету?
[15:16:58] <Typhon> кстати, ispmanager или что-то другое для испсистемс этот человек делал
[15:17:07] <bobry-> эт шо?
[15:17:28] <bobry-> в extunix если и есть то не гуглится, щас уточню
[15:18:05] <ftrvxmtrx> судя по src/, нету там epoll :/
[15:18:14] <bobry-> да мне бы хотя бы poll ...
[15:18:39] <Typhon> а чем лвт то тебе жирен? :-)
[15:18:49] <Typhon> или просто ocaml-libev ?
[15:19:06] <f[x]> в extunix нету потому что мне libevent хватает, а то что мне самому не нужно лень писать
[15:19:10] <f[x]> патчи как обычно welcome :)
[15:19:22] <f[x]> если poll устраивает то почему select не устраивает?
[15:22:07] bobry- думал что между ними есть разница -- но гугл уже развеял сомнения
[15:22:21] <bobry-> f[x]: кстати почему libevent а не libev, последняя вроде не такая жирная буит
[15:36:03] <f[x]> потому что у меня нет времени сравнивать кто из них жирнее, кто первый под руку попался тот и в дамках
[15:44:38] <zinid> а почему не lwt?
[15:45:01] <zinid> там же вроде поллинг из коробки
[15:45:24] <bobry-> я пока не умею lwt :)
[15:45:51] <zinid> lwt костыль
[15:46:01] <bobry-> почему?
[15:46:27] <zinid> ну везде писать lwt .. = и Lwt.retunr
[15:47:06] <zinid> при этом не всегд ясно что должна возвращать функция - 'a Lwt.t или просто 'a
[15:47:20] <zinid> и это парит
[15:47:58] <bobry-> lwt похоже как раз libev использует
[15:49:20] <komar> С недавних пор, да.
[15:49:42] <komar> zinid: не lwt = и Lwt.return, а >>= и return.
[15:49:45] <komar> Монады же!
[15:49:58] <bobry-> х-л же
[15:50:05] <komar> Окамл тоже делает ето.
[15:50:11] <bobry-> все делают ето
[15:50:34] <komar> Не все.
[15:50:39] <komar> Некоторые не могу в монады.
[15:52:10] <Typhon> bobry-: не велосипедь, бери лвт! :-)
[15:52:50] <komar> /topic
[15:52:54] <komar> Блин.
[15:53:11] <komar> Хотя, и так сойдет.
[15:53:57] bobry- вышел(а) из комнаты
[15:54:48] bobry- вошёл(а) в комнату
[15:56:10] bobry- вышел(а) из комнаты
[16:00:59] bobry- вошёл(а) в комнату
[16:06:04] <bobry-> Typhon: уже читаю туториал :)
[16:13:38] <bobry-> блин lwt так вкусно выглядит
[16:13:46] <bobry-> такой камло-gevent
[16:14:05] <Typhon> только с типизацией
[16:14:20] <bobry-> правда нафига там readline support например?
[16:15:50] <Typhon> чтобы лвттоп работал, хз. я, кажется, ни разу не ставил
[16:15:58] <gds> только вот, оказалось, Lwt.t со многими его функциями -- не манатка.  Выглядит похоже, но нет.
[16:15:59] <Typhon> (с ридлайн саппорт и лвттоп)
[16:16:10] <komar> gds: академота.
[16:16:16] <bobry-> gds: вай?
[16:16:17] <Typhon> gds: Законы не выполняются?
[16:16:30] <gds> komar: суровая практическая необходимость.  натыкался.
[16:16:44] <komar> gds: тогда расскажи, интересно.
[16:16:57] <bobry-> камлюнити явно не хватает дизайнеров http://ocsigen.org/lwt/sources/ -- страх же
[16:18:15] <komar> Велосипеды-велосипедики.
[16:18:25] <komar> Нет чтобы дефолтный nginx-view заюзать.
[16:18:44] <bobry-> нет чтобы на gh хоститься
[16:18:50] <komar> А, это с историей.
[16:19:00] <Typhon> у них даркс же
[16:19:14] bobry- лично конвертил даркс репо в git :)
[16:19:23] <bobry-> так что проблема небольшая
[16:20:46] <gds> почему не манатка: http://paste.in.ua/2824/ -- обратите внимание, что q не является директивой "прочти строку из stdin", хотя должно было бы быть ею.  И заметьте, при втором запуске q уже имело значение, прочитанное при первом.
[16:23:56] <bobry-> что то мануал у lwt таксебе, про монатки то ни слова
[16:24:12] <gds> я бы на их месте тоже молчал.
[16:25:08] <bobry-> # open Lwt_io;;
# stdin;;
Error: Reference to undefined global `Lwt_io'
[16:25:12] <bobry-> wtf?
[16:25:28] <Typhon> #require "lwt.unix";;
[16:25:37] <gds> оба #require надо бы, по идее.
[16:25:46] <bobry-> чудеса
[16:25:50] <bobry-> спасибо :)
[16:25:59] <bobry-> в смысле странно что он разрешил open
[16:26:31] <gds> видимо, lwt_io.cmi стала доступна уже после первого #require, а вот cmo/cma таки нет.
[16:32:25] <ermine> в связи с темой емакса на лоре - вопрос, в каком состоянии нонче efuns?
[16:34:53] <bobry-> похоже что мертв
[16:35:06] <Typhon> наверное в том же, в каком его оставили авторы :-)
[16:35:48] <bobry-> а на хацкеле есть y
[16:39:09] klapaucius вышел(а) из комнаты
[16:53:16] <bobry-> ну вот, в Lwt_io нету input_binary_int
[16:56:22] <gds> обосраться и не жить.
[17:04:43] <bobry-> http://ocsigen.org/lwt/api/Lwt_io.NumberIO
[17:04:46] <bobry-> я был не прав
[18:16:22] bobry- вышел(а) из комнаты
[18:17:42] bobry- вошёл(а) в комнату
[18:32:56] <bobry-> как то с lwt сложно писать читаемый код
[18:35:00] <gds> do_the_action params >>= fun result ->
...
[18:37:46] <bobry-> а если внутри fun еще >>=
[18:39:50] <gds> ну, как-то так: https://bitbucket.org/gds/amall/src/199759fb4840/src/amall_http.ml#cl-391
[18:41:44] <bobry-> ну прямо скажем не сильно читаемо :)
[18:42:51] zinid юзает lwt, match_lwt и тд
[18:43:35] <gds> вопрос привычки.  Я этот стиль как выработал, так и привык к нему, и вполне прилично читаю его.  На это не жалуюсь.  Но жаловаться не мешаю.  Это очень такое конструктивное занятие, да.
[18:44:34] <bobry-> да чего жаловаться то, я в поисках удобного стиля просто, только более менее к камлу привык
[18:44:50] <bobry-> в смысле к обычному камлу без >== & co
[18:44:58] komar вышел(а) из комнаты
[18:47:36] komar вошёл(а) в комнату
[18:53:45] f[x] вышел(а) из комнаты
[19:01:00] zinid вышел(а) из комнаты
[19:36:28] Typhon вышел(а) из комнаты
[20:02:52] bobry- вышел(а) из комнаты
[20:10:45] ftrvxmtrx вышел(а) из комнаты
[21:03:17] bobry вошёл(а) в комнату
[21:29:01] ftrvxmtrx вошёл(а) в комнату
[21:31:28] ftrvxmtrx вышел(а) из комнаты
[21:54:18] shaggie вошёл(а) в комнату
[23:24:45] komar вышел(а) из комнаты
[23:42:42] ermine уныло потыкалась на пустой страничке efuns на ocamlforge
[23:45:37] bobry вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!