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

GMT+4
[00:04:01] <zert> хз
[00:04:06] <zert> вроде ничего не писал особо
[00:04:24] <zert> может они там норкомане упоротые?
[00:04:25] <ermine> хнык-хнык
[00:10:59] <ermine> ктоб написал в мейллист "А дырочку-то видите?"
[00:11:49] ftrvxmtrx вошёл(а) в комнату
[00:28:18] ermine рассматривает багу в eliom, но стесняется ее выложить в мейллист
[00:28:57] <Typhon> да выкладывай, поддержи топик!
[00:30:09] <Typhon> Kakadu, а какая тема курсовой и какой предмет? а ещё -- какие требования по объёму ? :-)
[00:30:50] <ermine> s/о/у/
[00:39:11] <Kakadu> Typhon: Попроверять юзабельность оксигена на чем-то более-менее полезном (напр. реальный проект на gsoc)
[00:39:23] <Kakadu> у курсовых у нас нет предметов
[00:39:32] <Kakadu> страниц 15 надо написать думаю (всего)
[00:39:45] <Typhon> так и есть тема "попроверять"? если да, то вообще просто -- попроверял
[00:39:49] <Typhon> и пиши рефлексию, как чо
[00:39:53] <Typhon> :-)
[00:41:20] <Kakadu> надо что бы звучало норм)
[00:41:58] <Kakadu> препод сказал написать что такое оксиген, нафига я это делал и какие ощущения испытал
[00:42:20] <ermine> напиши на титульном листе Fail
[00:46:22] <Kakadu> ermine: как тему или как автора?
[00:47:51] <ermine> Kakadu: ну не автора явно
[00:48:10] <Typhon> Kakadu, ну тебе надо определиться, пишешь ли ты отмазу, или нормально. если второе -- то так и пиши, что такое (можно иностранное же перевести), зачем ты это делал и какие ощущения, про то что ошибки типов непонятные, и т.д.
[00:48:24] <Typhon> а если отмазу, то пиши про типобезопасность, валидный xhtml и прочее такое :-)
[00:48:57] <Kakadu> ясно
[00:50:24] <ermine> как всё печально
[01:00:02] <Typhon> gds, http://alaska-kamtchatka.blogspot.com/2011/05/fork-join-framework-on-budget.html видел? что скажешь?
[01:08:41] <ermine> что люди вообще курят?
[01:12:04] <ermine> а у jake в блоге какая-то скала
[01:12:34] <Typhon> I also restrict myself to pure OCaml without external dependencies
[01:13:29] <ermine> о да, никаких янечек и батареечек!
[01:14:12] <Typhon> а, я процитировал matias'а, не жейка, его бложек не смотрел %)
[01:18:06] ermine вышел(а) из комнаты
[01:19:36] Kakadu вышел(а) из комнаты
[01:30:40] zert вышел(а) из комнаты
[03:15:59] Typhon вышел(а) из комнаты
[06:38:29] Digimmortal вошёл(а) в комнату
[08:03:35] Typhon вошёл(а) в комнату
[08:30:49] iNode вышел(а) из комнаты
[08:54:16] Digimmortal вышел(а) из комнаты
[09:15:28] Digimmortal вошёл(а) в комнату
[10:13:34] <Digimmortal> есть какой-то способ программно извлечь информацию о типах из окамловой библиотеки?
[10:17:02] <Typhon> https://github.com/avsm/ocaml-annot ;   -annot
[10:17:07] <Typhon> если я правильно понял :-)
[10:17:30] Kakadu вошёл(а) в комнату
[10:25:29] <Digimmortal> в оющем хотелось бы извлечь AST из библиотек, чтобы можно было запросы писать
[10:25:43] <Digimmortal> типа хочу тип с таким именем
[10:25:50] <Digimmortal> или функцию
[10:28:42] <Digimmortal> компилятор ничего такого наружу не выставляет?
[10:28:52] <Digimmortal> функцию типа
[10:29:30] <Digimmortal> файл -> последовательность значений  AST торчащих из библиотеки
[10:29:46] <Kakadu> http://search.ocaml.jp/
[10:29:55] <Kakadu> which ocamlbrowser
[10:31:33] <Typhon> Digimmortal, -annot
Dump detailed information about the compilation (types, bindings, tail-calls, etc). The information for file src.ml is put into file src.annot. In case of a type error, dump all the information inferred by the type-checker before the error.  + линк на либу для работы. AST умеет строить camlp4, насколько я знаю, но тоже нужен исходники. про какую-то другую интроспекцию/рефлексию мне неизвестно. интересна задача твоя :-)
[10:32:49] <Digimmortal> думаю написать для тренироовки искалку по типам
[10:33:24] <Digimmortal> там почти весь язык понадобится
[10:33:42] <Digimmortal> + лексинг и парсинг
[10:33:49] <Typhon> а ocaml-hoogle видел?
[10:34:02] <Typhon> (я туда внутрь не смотрел, но может что-то будет, related)
[10:34:02] <Digimmortal> читаю описание
[10:35:03] <Digimmortal> open StdLabels
open Location
open Longident
open Path
open Types
open Typedtree
open Env
open Btype
open Ctype
в https://github.com/mzp/ocaml-hoogle/blob/8bdf1122fda218c5eab2352a6182b29029ccebea/searchid.ml
выглядит как обнадёживающее начало
[10:35:15] <Digimmortal> Typedtree
[10:35:24] <Digimmortal> буду курить его
[10:35:33] <Digimmortal> спасибо за хинты
[10:37:14] <Kakadu> Digimmortal: http://neilmitchell.blogspot.com/2011/03/hoogle-for-your-language-ie-f-scala-ml.html
[10:37:47] <Digimmortal> ага, видел, но там хаскель вроде
[10:38:57] <Kakadu> там автор предлагает написать свой генератор для любого языка, чтобы подключить всё это в один движок хугла
[10:44:58] <Digimmortal> есть подозрение, что для написания генератора окамла надо знать окамл :)
[10:46:08] <Typhon> хотя бы то подмножество, которое хочешь генерировать
[10:50:42] <Digimmortal> после подключения http://ocaml.debian.net/debian/ocaml-3.12.0/ к последней убунте какая-то каша из версий окамла
[10:50:48] <Digimmortal> компилятор 3.12
[10:50:55] <Digimmortal> сорцы 3.11
[10:51:03] <Kakadu> удали старое
[10:51:09] <Kakadu> и наверное надо прочитать про apt-pin
[10:52:04] <Digimmortal> читаю
[11:08:11] <Kakadu> на ocaml.debian.net написано если что
[11:09:43] <Digimmortal> вот на http://ocaml.debian.net/debian/ocaml-3.12.0/ есть ссылка на ключ, а как найти ключ для http://packages.debian.org/wheezy/ ?
[11:10:05] <Digimmortal> хочу Updated (and properly fixed) versions of these packages
[11:10:20] <Kakadu> забей на вторую ссылку
[11:10:51] <Digimmortal> так на неё же с первой отправляют
[11:11:36] <Kakadu> кто?
[11:12:00] <Digimmortal> WARNING: Updated (and properly fixed) versions of these packages are now part of wheezy
[11:12:12] <Digimmortal> или я не тот wheezy нашёл?
[11:12:29] <Digimmortal> текст с http://ocaml.debian.net/debian/ocaml-3.12.0/
[11:12:51] <Kakadu> ааа
[11:12:54] <Kakadu> блин
[11:13:00] <Kakadu> это недавно появилось
[11:13:15] <Digimmortal> я как-то сюда об этом писал, но видно мимо
[11:13:46] <Digimmortal> а моё линух кунг фу ещё слабовато для таких экспериментов вслепую
[11:13:54] <Digimmortal> влом потом всё переставлять
[11:19:01] <Typhon> http://neilmitchell.blogspot.com/2011/05/cmdargs-fighting-ghc-optimiser.html на что приходится идти бедным х-листам, чтобы получить удобный апи для либки.
[11:38:59] ermine вошёл(а) в комнату
[11:39:52] <Kakadu> черт,  так лабу неохота делать
[11:44:05] zert вошёл(а) в комнату
[11:45:10] <Typhon> какая тема/задание ?
[11:46:49] <Kakadu> смотреть на распечатки lspci, lsusb и прочего чтобы понять что за каким мостом шины PCI сидит
[11:47:28] <zert> а lwt реально чотко или есть нюансы?
[11:50:40] Typhon вышел(а) из комнаты: Replaced by new connection
[11:50:43] Typhon вошёл(а) в комнату
[11:51:25] <ermine> дыру еще не пофиксили?
[11:51:28] <Typhon> zert, манатки, а так -- чотко, но вот ermine жалуется на утечку памяти (но видимо в самом оксигене). gds отчитывался о тесте простого lwt сервера -- весьма неплохие результаты были. там внутри libev ща. под линуксом работает ок, под вендой -- на селекте, под бсдями -- местами есть ошибки, на которые ermine напарывается ^_^ и для io-bounded задач, если хочешь распараллелить умножение матриц в лвт-тредах, то не получится ускорения.
[11:53:19] <zert> ясно, спасибо
[12:00:00] Digimmortal вышел(а) из комнаты
[12:07:55] <Typhon> ermine, финик flux логично в последнем письме говорит всё. так что это не бага может быть. просто как и в других серверах, нужно уметь говорить, сколько ты хочешь одновременно обслуживать запросов. при одновременных 100х нужно логичным образом народить 100 лвт-тредов, которые будут потреблять память. надо уметь это тюнить, просто (хз, есть ли это в оксигене). и может как-то пошаманить с OCAMLRUNPARAM на размеры хипов опмтимальные для тех кейсов, которые у тебя.
[12:19:12] <ermine> Typhon: ну lsof во фре нет, а по sockstat утечек не видно
[12:20:35] <ermine> Typhon: тут скорее проблема в самом GC, "самопроизвольный" Gc.compact можно запустить повторным запуском ab
[12:21:31] <ermine> причем недостаточно -c 1 -n 100, надо как минимум -c 100 -n 1000
[12:23:06] <ermine> а с OCAMLPARAMS v=... все виды сборки мусора не показывает, чтобы кто-то отдыхал
[12:23:45] <ermine> минимизировала конфиг оксигена до упора, всё равно утекает
[12:23:58] <ermine> пока больше нет идей где искать виноватых
[12:25:45] <Typhon> а есть там параметр типа "макс одновременных запросов"? по идее, если он =1 , то даже с -c 100 не должна расти память, просто отдаваться медленнее должно. если оно так растёт -- ошибка в оксигене. с размерами хипов можно поиграться, чтобы вызывать compact раньше/позже, но это по производительности ударит, это видимо должно как-то зависеть от параметр "макс одновр. реквестов" и конфигурироваться
[12:27:14] <ermine> ща проверим
[12:27:46] <ermine> размер мирон хипа меняла, пофигу
[12:28:14] <ermine> да и видимо дело не в хипе
[12:29:25] <ermine> <maxrequestbodysize>
[12:30:37] <ermine> ой не
[13:39:06] <ermine> Typhon: утечке насрать на значения maxconnected, minthreads, maxthreads - только хихикает и утекает себе
[13:42:10] <Typhon> а файловые дескрипторы чокак? про max* надо написать. может ещё упомянуть gds'а и его мини сервак, типа у него ничего не течёт. то есть, проблема где-то в оксигене скорее. так можно было бы подумать, что fd d евентлупе становятся готовы гадить, lwt рожает потоки и они жрут память, а max* просто не даёт им работать, хз (домысел такой вот)
[13:42:39] ermine пытается разобраться в таинственных письменах lsof
[14:12:05] <ermine> если посчитать число открытых штучек по lsof до и после запуска ab, то число равное до и после
[14:12:29] <ermine> а треды там вроде не увидишь
[14:12:54] <Typhon> лвтшные треды точно не увидишь :-)
[14:14:13] <ermine> да пофигу, там все равно пул обычных pthreads
[14:15:15] <Typhon> в оксигене? а зачем они там?
[14:15:22] <Typhon> или в лвт теперь тоже?
[14:15:57] <ermine> в лвте
[14:16:22] <ermine> а ты думаешь, что он тредит святым духом?
[14:16:42] <ermine> треды точнее из камла наверное
[14:45:54] <ermine> в коде оксигена нигде нет явного вызова Gc.comcact кроме как юзерской команды
[14:46:14] <ermine> осталось найти что же удерживает от камельного gc.compact
[14:46:27] <ermine> наверное нереально найти
[15:06:50] <ermine> вот кстати интересный вопрос - как понять, какая память течет - минор или мажор?
[15:22:52] <ermine> ага, это major течет
[15:23:38] <Typhon> как определила?
[15:28:28] <ermine> export OCAMLRUNPARAM='b,s=256k,v=0x015' (скопипастила строчку ид доки)
[15:28:36] <ermine> печатаются только growing
[15:32:56] <ermine> запустила b, остановила его, запустила - появились compacting
[15:33:02] <Typhon> ermine, а в фряхе 8ой в портах какой окамель?
[15:34:11] <ermine> Typhon: 3.12
[15:34:31] <ermine> Typhon: на боевом сервере он из портов, на моей домашней - не из портов
[15:34:43] <Typhon> ухты, а я зачем-то сам собираю. так, а я могу из портов его куда-нибудь в другое место поставить его?
[15:35:54] <Typhon> (при том, что я хочу pkg_add -r заюзать ^_^ )
[15:36:08] <ermine> Typhon: ну в портах обновили совсем недавно
[15:39:18] <ermine> я таки прогнала чуток насчет того, что compactiong только после перезапуска ab
[15:39:23] <ermine> в общем хз
[15:41:57] <ermine> но вообще да, major жреть
[15:47:12] <Typhon> ocaml-findlib хочет к себе всякий tcl, хотя ocaml-notk поставил (странно, кстати, в /usr/ports лежит ocaml-nox11, но его нету по pkg_add -r, зато там есть -notk вот этот)
[15:48:06] <ermine> это к герду
[15:49:19] <ermine> камло настолько кривое, что его лучше самому собирать
[15:50:14] <Typhon> а, это не окамлфинд хочет, это камло хочет, а окамлфинд хочет обязательно тк камло. это мейнтейнеры криворукие ^_^
[15:52:33] <Typhon> а , ну и конечно, --prefix у pkg_add криво сработал -- поставить файло туда он поставил, но бинарники работают не все, потому что хотят в другом месте другие бинарники, видимо лучше руками, ага
[16:15:06] Digimmortal вошёл(а) в комнату
[16:28:37] <gds> fork-join-framework-on-budget -- молодец, чо.  Надо пофтыкать.
[16:31:10] <gds> > при одновременных 100х нужно логичным образом народить 100 лвт-тредов
"какой же я молодец, что никогда никого не слушался" и оформил эту шнягу.
[16:32:22] <gds> и про мой сервак -- скорее пичалька, ибо он сложный-мутный и я навряд ли его достану-минимизирую так, чтобы за разумное время.
[16:34:17] <Typhon> ну про сервак -- хочется указать французам, что бага в оксигене, а не в лвт, например. то что сложный ещё лучше же -- типа, даже сложный -- а не течёт! а у вас страница левая течёт.
а какую шнягу оформил? "сдавать..." -- ок! ^_^
[16:35:25] <gds> ну да, можно "сложный", но надо вспоминать и ставить его и вспомогательные либы, коих уже 6 штук, чтобы это говнище скомпилялось.  сложно.
[16:36:02] <gds> шнягу -- process_limit, берущий "максимальное количество" и "фабрику процессов" и рожающий процессы по мере необходимости, но не больше предела.
[16:36:39] <Typhon> а, ну правильно :-)
[16:36:40] <gds> эхехе, кто-то ещё Кр-к слушает, во прикол :)
[16:47:28] <ermine> Typhon: оксигень лучше собирать на ляпиксе, чтобы что-то указывать хренцузам
[17:39:10] <gds> начал писать сюда, но чото много получилось.  http://gdsfh.dreamwidth.org/4223.html
[18:00:33] <Digimmortal> gds: http://hackage.haskell.org/package/iterIO только появилось, может какх идей потыришь
[18:03:42] <gds> Digimmortal: прилично, читаю, но у меня какое-то глобальное недопонимание, а там про базовые случаи использования, навряд ли пересечётся с моим непониманием оно.
[18:14:27] <ermine> Typhon: как там идет процесс втирания очков французикам?
[18:17:51] komar вышел(а) из комнаты: Replaced by new connection
[18:17:51] komar вошёл(а) в комнату
[18:23:09] Typhon вышел(а) из комнаты
[18:53:50] Typhon вошёл(а) в комнату
[18:54:46] <Typhon> ermine, да я собрал базовую среду ocaml + oasis и утомился уже :-)
[18:55:53] <ermine> Typhon: да оазис не нужен
[18:56:11] <ermine> чтобы загнать оксигень в своп
[18:57:13] <Typhon> да я хотел и среду в целом собрать + фрибсд у меня тут таки, ей не верят.
[18:59:34] <ermine> тогда перекуси чего-нить и продолжи
[19:00:27] <Typhon> можно там на фрибсде собрать оксиген без проблем? :-)
[19:01:28] <ermine> ну у меня с проблемами только ocamlnet был
[19:01:44] <ermine> там причлось похачить кое-что после запуска configure
[19:01:52] ftrvxmtrx вышел(а) из комнаты
[19:11:59] Typhon вышел(а) из комнаты: Replaced by new connection
[19:12:01] Typhon вошёл(а) в комнату
[19:21:42] ermine озирается на Kakadu
[19:23:50] ftrvxmtrx вошёл(а) в комнату
[19:23:52] Kakadu поглядывает с недоумением на ermine
[19:34:34] <ermine> Kakadu: ридми читать надо
[19:35:37] <Kakadu> ermine: которое?
[19:36:26] <ermine> Kakadu: того говна, которое собираешь
[19:36:34] <Kakadu> а оно есть?
[19:36:58] <ermine> у оксигена? ну да
[19:37:08] <Kakadu> http://ocsigen.org/darcs/book/
[19:37:12] <Kakadu> покажи
[19:38:16] <ermine> http://ocsigen.org/darcs/ocsigenserver.dev/README  
[19:39:25] <ermine> ой, ты про book
[19:39:31] <ermine> а что это такое?
[19:39:41] <Kakadu> там есть latex_of_wiki
[19:39:50] <Kakadu> надо для make doc в lwt
[19:42:18] <ermine> include ${OCSIGENDIR}/Makefile.config                                          
[19:42:48] <ermine> ну значит запустить sh configure и взять там Makefile.config
[19:43:09] <ermine> ща попробую
[19:43:11] <Kakadu> я просто заменил ocsigen.dev на ocsgenserver.dev
[19:43:17] <Kakadu> и получил новые ошибки
[19:47:48] <ermine> ну тогда ой
[19:48:37] <ermine> лучше бы дырочку заделали
[19:51:28] <ermine> надо уже отобрать у них руководство над проектами и говорить им что срочно пофиксить
[19:52:33] <ermine> там в мейллисте обругали нас
[19:54:02] <ermine> не буду тогда показывать очереднюю бажку в eliom
[19:54:16] ermine выкинула использование бажки и сделала другой модуль
[19:54:46] <gds> а чего обругали?  Они там вообще охренели, что ли?
[19:55:30] <ermine> охренели :)
[19:55:49] <Kakadu> что такое shebang
[19:56:07] <Kakadu> не знаю
[19:56:07] <gds> #!
[19:56:21] <Kakadu> ааа
[19:56:43] <Kakadu> ermine: ну я примерно понял чего он тебя обругал, но чего меня - не понял
[19:57:52] <Kakadu> но всёравно все козлы
[19:57:59] ermine промолчит пока
[19:59:40] <ermine> зато более ценно, что теперь гнуизм им мерещится в каждом углу
[20:30:02] Typhon вышел(а) из комнаты: Replaced by new connection
[20:30:04] Typhon вошёл(а) в комнату
[20:31:33] Digimmortal вышел(а) из комнаты
[22:12:02] ftrvxmtrx вышел(а) из комнаты
[22:15:45] <ermine> не пофиксили еще ничего? надо выпить...
[22:20:47] komar вышел(а) из комнаты
[22:29:58] komar вошёл(а) в комнату
[23:55:26] Typhon вышел(а) из комнаты: Replaced by new connection
[23:55:30] Typhon вошёл(а) в комнату
[23:58:37] ermine вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!