Home
Objective Caml
ocaml@conference.jabber.ru
Суббота, 9 июля 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:09:35] <ermine> надо изучить cmdliner
[00:10:31] <gds> там тоже неправильные аппликативные функторы и лишние инфиксные операторы, я смотрел :[
[00:11:44] <ermine> в каком смысле неправильные?
[00:11:49] <Typhon> да просто назвали одинаково :-( в cmdliner те, которые не из тайпклассопедии или из тайпклассопедии? (или из ТК )
[00:12:03] <gds> ermine: там -- не про окамловские модули.
[00:12:31] <ermine> а может и мне для парсинга тоже аппликативщину заюзать, при строгой левой факторизации :)
[00:13:05] <gds> Typhon: понятно, что в названии дело.  В cmdliner -- те, которые в педии.  (кстати, сегодня искал в ТК на авторитетном ncatlab.org -- не нашёл.  Видимо, х-фантазёры придумали их.)
[00:13:35] <Typhon> а может для ncatlab они слишком простые и потому не упоминают их? :-)
[00:14:30] <gds> ermine: я как-то скидывал тебе ссылоту приватную, вроде там красиво внешне.  Понятно, надо будет факторизовать.  Но, может, прямо в рантайме получится.  А так -- итераты это манатка (даже чуть расслабленнее), поэтому изобразить стандартные операции а.ф. это не проблема.
[00:15:04] <gds> Typhon: да, тоже думал об этом, но, учитывая, что других ресурсов не знаю, а сами а.ф. в математике малоинтересны, даже не стал искать дальше.
[00:15:27] <ermine> gds: на туториал х-я? я ее закопала, хочется почитать от и до, но там многа букфф
[00:16:02] <gds> ermine: вроде на другую штуку, на использование в парсерах, со всякими там "<*" и "*>".
[00:16:37] <ermine> ну в букмарке должна быть закопана надежно
[00:16:55] <ermine> окей
[00:16:58] <ermine> надо почитать
[00:17:44] ermine шарит в букмарке
[00:20:53] <gds> вроде http://ncatlab.org/nlab/show/monoidal+functor это почти оно, но сообразить не могу.  Впрочем, пофиг.  В х-е монады тоже не монады, а "паттерн функционального программирования".
[00:26:37] gds вышел(а) из комнаты
[00:26:59] ftrvxmtrx вышел(а) из комнаты
[00:39:55] <ermine> на нлабе кошмарная научщина
[00:40:43] <ermine> может, на пенсии можно будет всё это прочитать
[00:41:07] <ermine> говорят, в японии модно поступать в универ после выхода с работы на пенсию
[00:44:38] <komar> Круто.
[00:46:44] <ermine> ну, в японии же живут долго - за сто лет японцев сто тыщ
[00:47:02] <ermine> а нам чернобыли в этом плохо помогают
[00:47:10] <ermine> в отличие от
[00:55:41] ermine вышел(а) из комнаты
[01:01:03] Typhon вышел(а) из комнаты
[01:16:03] <bobry> мне вот интересно, odb.ml это пример кошерного камла кода?
[01:16:10] <bobry> потому что я читаю и волосы дыбом встают
[02:14:27] shaggie вышел(а) из комнаты
[02:14:51] ygrek вышел(а) из комнаты
[02:31:44] ftrvxmtrx вошёл(а) в комнату
[04:15:37] ftrvxmtrx вышел(а) из комнаты
[04:17:21] ftrvxmtrx вошёл(а) в комнату
[04:32:14] ftrvxmtrx вышел(а) из комнаты
[04:33:29] ftrvxmtrx вошёл(а) в комнату
[04:45:07] ftrvxmtrx вышел(а) из комнаты
[04:46:06] ftrvxmtrx вошёл(а) в комнату
[05:12:18] komar вышел(а) из комнаты
[07:30:57] zert вошёл(а) в комнату
[08:12:55] zert вышел(а) из комнаты
[09:04:50] zert вошёл(а) в комнату
[09:29:53] zert вышел(а) из комнаты
[10:52:10] ygrek вошёл(а) в комнату
[10:54:33] ermine вошёл(а) в комнату
[11:04:33] ygrek вышел(а) из комнаты
[11:48:03] <ermine> http://bugsquash.blogspot.com/2011/01/parsing-with-applicative-functors-in-f.html
[11:48:11] ermine озирается в поисках gds
[11:52:23] gds вошёл(а) в комнату
[11:53:38] <gds> ermine: пробежался, не читал, вроде нормально.
[12:07:38] <ermine> gds: а там первая же фраза озадачила, что все монады - аппликативные функторы :)
[12:08:16] <gds> но так оно и есть.  Если от монады оторвать bind в явном виде (и может что ещё), получится как раз а.ф.
[12:08:25] <ermine> gds: может и правда надо почитать от и до learnyouhaskell
[12:08:49] <gds> может, но достаточно двух глав: про функторы и про а.ф.
[12:13:12] <gds> вообще, х-ь делится на две части: 1. то, что можно спереть в любой другой язык, и 2. то, что показывает, как делать не нужно.
[12:14:35] <ermine> давай про вторую часть подробнее
[12:16:09] <gds> тотальная ленивость и следствия неконтролируемости потребления ресурсов.  "тела" тайпклассов, раскинутые по всем исходникам, .h-файлам подобно.  хреновая модульность.  явная рекурсия привязок.  это сходу.
[12:17:34] <gds> а, самое главное забыл: провоцирует писать перловку.  грамотные борятся с этим, но сколько их, а сколько кюльхацкеров.
[12:19:08] <ermine> и судя по коду, ты не в числе грамотных
[12:20:02] <gds> я на х-е не пишу.
[12:20:51] <ermine> ведь по сути можно обойтись без всяких точек и долларов, если писать тело апи таким образом, чтобы функции просто добирали аргументы, а не вынуждать использовать перловку на последнем этапе
[12:20:57] <ermine> пример - unparsing
[12:22:30] ygrek вошёл(а) в комнату
[12:24:41] <gds> не всегда так получается.  unparsing -- ограниченная штука.
[12:29:50] <ermine> хехе, в этом #f вместо х-льного <- используется let!
[12:30:17] <ermine> а еще там есть do!
[12:30:24] <ermine> вот извращенцы
[12:31:24] <ermine> gds: то, что пытаются из х-ля спереть нотацию монад - это в первой или второй части?
[12:32:15] <gds> если пытаются спереть и всё хорошо выходит -- по определению, первая часть.
[12:39:51] <ermine> да, надо опробовать аппликативный парсинг
[12:40:17] <ermine> хотя с фантазией слабовато, надо еще пошариться
[12:41:25] <gds> ко вчерашнему вопросу с большой командной строкой: запуск идёт через Sys.command.  Который вызывает команду ]через сишный system().
[12:41:54] <gds> вопрос в том, что же делать.
[12:44:31] <ermine> ну, в юниксе тоже есть лимит на длину, и что делать?
[12:44:57] <ermine> gds: а ты используешь вилдкарды?
[12:45:17] <gds> я запускаю ocaml setup.ml install или типа того.
[12:45:19] <ermine> может проблема скорее из-за *, который действительно задыхается
[12:45:39] <gds> я вчера показывал лог.  кроме того, венда не раскрывает *
[12:46:10] <ermine> не смотрела, была погружены в фолды и домашнее хозяйство
[12:46:19] <ygrek> gds, а та команда которая слишком длинная - её нельзя в два этапа выполнить?
[12:47:03] <gds> там "ocamlfind install lwt кучафайлов".  не знаю, вроде нельзя штатным образом.
[12:48:39] <ygrek> мдя, ну пожалуйся в list - может что-то придумают коллективно
[12:49:27] <gds> сначала думаю зафайлить багу с "-w @a", которое падвендой раскрывается как @responsefile.
[12:49:44] <ygrek> ocamlfind install должен уметь брать список файлов из stdin'а или файла
[12:50:15] <ygrek> а oasis будет его так вызывать если файлов много и версия ocamlfind подходящая - тогда всё прозрачно пофиксится
[12:50:25] <ygrek> вообще жесть конечно
[12:51:01] shaggie вошёл(а) в комнату
[12:55:46] <gds> это вариант, но есть другое предложение: чтобы оазис запускал команды не через Sys.command, а через Unix.create_process какой-нибудь, формируя каждый аргумент отдельно.  Вроде там нет подобных ограничений.
[13:01:36] <ygrek> а, т.е. 2048 это ограничение cmd, а не api
[13:01:41] <ygrek> логично
[13:02:36] <gds> да, а про апи -- даже не знаю.  навряд ли у венды есть в апи что-то похожее на system(), если есть CreateProcess и cmd.exe /C
[13:05:47] <ygrek> http://attractivechaos.github.com/plb/
[14:20:06] zert вошёл(а) в комнату
[14:39:52] komar вошёл(а) в комнату
[14:40:46] ftrvxmtrx вышел(а) из комнаты
[15:11:18] <gds> внезапно вспомнил, что оазисовский setup.ml отличается умом, сообразительностью и отсутствием внешних библиотек типа unix.  Ну чо, приплыли.
[15:16:26] ftrvxmtrx вошёл(а) в комнату
[15:21:29] <ygrek> га га га
[15:23:12] <ygrek> я кстати не помню почему нельзя в setup.ml #load "unix.cma" сделать?
[15:23:32] <ygrek> не будет работать там где нет стабов в dll?
[15:24:15] <gds> наверное.  setup.ml ведь обязан быть весь из себя такой портабельный.
[15:26:21] <gds> а если завязываться на фокус с баш-скриптом, содержащим команду, и bash -c /tmp/этот-скрипт, то не будет работать на msvc?
[15:26:41] <ygrek> ну, будет зависеть от наявности bash :)
[15:26:44] <ermine> а зачем в setup.ml  unix.cma, если в камлобилде свой уних
[15:27:05] <gds> ygrek: а он обычно наличествует?
[15:27:31] <ygrek> у меня обычно да, а у нормальных виндоюзеров - нет
[15:27:31] <gds> ermine: да для ссущих пустяков: http://paste.in.ua/2714/raw/ валится чото.
[15:28:09] <ygrek> а зачем у тебя там везде полный путь в ком строке?
[15:28:22] <gds> не у меня, а у оазиса.
[15:28:59] <ygrek> хм, в части путей полный, в части нет
[15:29:23] <ygrek> предлагаю решение - собирать в корне диска c: :)
[15:29:30] <gds> жжош!
[15:29:55] <ygrek> ну можно subst'ом диск z: выделить под это дело :)
[15:30:43] ygrek учит ocamlopt генерить DWARF декларации для разворачивания стека так чтобы в gdb бэктрейс был правильный
[15:32:23] <ermine> ого
[15:32:52] <ermine> ygrek: а что у тебя падает?
[15:33:15] <ygrek> у меня ничего не падает
[15:33:26] <ygrek> мне нужны сэмплы стека для профайлинга
[15:33:39] <ygrek> жалко что perf всё равно dwarf не использует
[15:38:14] <gds> а интересно, сишный компилятор на момент ocaml setup.ml ... по идее где-то есть?
[15:39:42] <ygrek> http://www.openrce.org/blog/view/1672/Control_Flow_Deobfuscation_via_Abstract_Interpretation
[15:40:14] <ygrek> должен быть, предагаешь behind the scene кастомный бинарь компилить и его пускать? ;)
[15:40:38] <gds> да!
[15:41:59] <gds> а хотя мало смысла в общем случае: всякие >NUL 2>&1 могут быть, и Sys.command не заменить.
[15:43:52] <gds> можно ещё попробовать распихать ком.строку по окружению и запускать cmd /C %P1%%P2%%P3%...
[15:44:34] <gds> ан нет, setenv нет в stdlib.
[15:47:50] <gds> вот бы захреначивать командные строки оазиса во что-то типа камлобилдовского A"", S[], чтобы в текущем случае просто склеивать всё пробелами, а в случае венды компилять штуку, которая будет запускать программу по переданному массиву argv[] через имя файла в командной строке.
[15:48:45] <gds> в любом случае, сначала буду пускать через баш.  В моём случае баш есть всегда.
[15:55:13] <gds> ygrek: у тебя вендовый окамл есть?  Багу пишу, но оригинального камла нет, только с оторванным @responsefile.  Прошу, покажи, что у тебя даёт свежий окамл в ответ на "ocaml -w @a".
[16:01:05] komar вышел(а) из комнаты: Replaced by new connection
[16:01:06] komar вошёл(а) в комнату
[16:21:50] <gds> пока писал сильванчегу, подумал, что ведь можно компилять окамловскую прогу, использующую Unix.create_process.  От наличия динамической линковки оно ведь не зависит.
[16:22:31] gildor478 вошёл(а) в комнату
[16:22:38] <gildor478> hi
[16:22:45] <ygrek> gds: ^^
[16:23:00] <ygrek> hi
[16:23:13] <ygrek> gildor478: see http://paste.in.ua/2714/raw/
[16:23:31] <gds> gildor478: hi, I'm writing you a long-long email.  Will send in 2 minutes.
[16:24:11] <gildor478> gds = Gerd S. ?
[16:24:27] <gds> I'm happy to be not a Gerd S. :)
[16:24:50] <gildor478> ygrek: nice bug, never thought about the difference of command line length on unix and on windows
[16:25:11] <gildor478> please consider submitting a std bug on oasis
[16:25:39] <gds> gildor478: I've sent an email to sylvain@le-gall.net
[16:25:44] <gildor478> the sole solution is to remove common prefix
[16:26:03] <gildor478> but it is just a delay before it got even longer
[16:26:22] <ygrek> gildor478: we brainstormed here a little, and one of the solutions seems to be to use Unix.create_process
[16:26:23] <gildor478> gds, sorry for the confusion,
[16:26:29] <gds> yes, removing common prefix is not good.
[16:26:38] <gildor478> ygrek: no way to use Unix
[16:26:40] <ygrek> ok, I am just proxying gds now :)
[16:27:18] <gildor478> using Unix module require compiling setup.ml (just as ocamlbuild) and is the kind of trouble I am trying to avoid
[16:27:20] <gds> gildor478: oasis knows where ocamlc is, and it can compile a "runner".
[16:27:26] <ygrek> why - on windows dll stublibs are always available - maybe with some ugly magic it can be done win-only :)
[16:27:37] <ygrek> why not #load "unix.cma"?
[16:27:47] <gds> it can be made win-only even without magic, we have Sys.os_type.
[16:27:49] <gildor478> gds: runner -> just as ocamlbuild
[16:27:58] <ygrek> indeed
[16:28:05] <gildor478> #load "unix.cma" -> need dynamic linking, not available everywhere
[16:28:12] <ygrek> but available on windows!
[16:28:12] <gildor478> (esp. cygwin)
[16:28:14] <gds> ocamlbuild uses bash -c ..., but there are no bash in general case
[16:28:56] <gildor478> you cannot really bypass "#load" in ocaml script
[16:28:56] <ygrek> that's it - all solutions look rather painful, but that's the usual case when dealing with arbitrary windows limitations :)
[16:29:13] <gildor478> indeed
[16:29:36] <gildor478> that is the problem with multi platform, you are limited by everything
[16:30:00] <ygrek> one more alternative - teach ocamlfind to take list of files from stdin or file
[16:30:04] <gds> yes, but as for now, results of ocaml/multiplatform are mostly perfect.
[16:30:08] <ygrek> then teach oasis to pass files that way
[16:30:14] <gildor478> the removal of the prefix is the less painful (though ugly and long term limited)
[16:31:23] <gildor478> ygrek: yes the STDIN solution is a good one and quiet portable
[16:31:39] <gildor478> for even greater portability you can even go through a file
[16:32:46] <gildor478> gds: what does "results of ocaml/multiplatform are mostly perfect" mean
[16:32:49] <gds> this solution is limited to ocamlfind.  I'd prefer not to teach any program to take arguments from STDIN.  For example, because STDIN can be used for different thing.
[16:33:45] <gildor478> well, whatever the solution chosen, there are always limitation on the length of the command line
[16:33:48] <gds> gildor478: my english is bad.  I mean that ocaml is very crossplatform, except some small things.
[16:33:53] <gildor478> even on linux
[16:34:15] <gds> gildor478: even with execv?
[16:34:28] <ygrek> gds: yes, but limits are quite large
[16:34:33] <gildor478> gds: the core ocaml is almost multi platform if you don't consider the build process and you limit yourself to toplevel
[16:35:26] <gildor478> gds: even with execv, the limit is large and is in term of number of args (and not length of command line) but you'll always have limits
[16:36:09] <gildor478> gds: whenever you start to use 3rd party library you get into trouble
[16:36:15] <gildor478> on windows
[16:37:03] <gds> haven't suspected this, about execv.  I thought that limits are needed to avoid memory-exhaustion problems, but if the caller already allocated argv[] and argv[i] values, there should not be any problems.
[16:37:30] <ygrek> gds: they are copied by kernel and it imposes limits
[16:38:24] <ygrek> > On  Linux  prior  to  kernel 2.6.23, the memory used to store the environment and argument strings was limited to 32
>       pages (defined by the kernel constant MAX_ARG_PAGES).  On architectures with a 4-kB page size, this yields a maximum
>       size of 128 kB.
[16:39:30] <gds> gildor478: so, should I write a patch to oasis that compiles "runner", that uses Unix.create_process and reads arguments from file/stdin?  (maybe only from stdin to be able to use it with programs that read stdin?)  of course only for Sys.os_type = "Win32" and command lines more than 2047 bytes.
[16:39:43] <gildor478> syconf ARG_MAX
[16:39:57] <gildor478> sysconf  ARG_MAX, sorry
[16:39:57] <gds> sht..  * maybe only from FILE
[16:41:10] <gildor478> gds: that is maybe a solution: create a xargs utilities
[16:41:50] <gildor478> gds: but the prefix removal is by far the most simple one and will probably solve your problem quickly
[16:42:21] <gds> hmm, my msys/mingw has "xargs".
[16:42:32] <gildor478> gds: I think you can even patch directly the setup.ml of lwt to test it and it will take 5 min to patch oasis with the result
[16:42:54] <gds> gildor478: thanks, it would be great!
[16:43:36] <gds> I've tempted to use general solution because I had no idea about where to patch setup.ml and oasis in general.
[16:44:03] <gildor478> gds, give me 2 min, I'll give you a starting point
[16:44:32] <ygrek> gds: пропихнув vnc через два туннеля - доккладываю :
> ocaml -w @a
Cannot open file a
[16:45:00] ygrek off
[16:45:03] <gds> ygrek: благодарю, сейчас уйдёт в мантис
[16:46:01] <gildor478> in setup.ml of lwt, l4420, there is a variable files,
[16:47:04] <gildor478> List.map (prefix_remove (Sys.getcwd ()) files) to this variable will solve your problem
[16:47:22] <gildor478> writing prefix_remove is left has an exercice to the reader ;-)
[16:47:46] <gds> to the patcher, yes.
[16:47:54] <gds> thanks, I'll try it.
[17:04:21] <gds> I have to wait about an hour to check whether the remove_prefix works...
[17:07:29] <ygrek> rebuilding takes an hour?
[17:07:48] iNode вошёл(а) в комнату
[17:09:07] <gds> probably I've written some bad dependencies and have to rebuild 2..3 libs, and it's under slow qemu without kvm.
[17:52:04] ermine looks around o_O
[19:10:33] ygrek вышел(а) из комнаты: Replaced by new connection
[19:10:34] ygrek вошёл(а) в комнату
[19:50:13] arhibot вошёл(а) в комнату
[19:50:39] arhibot вышел(а) из комнаты
[19:57:08] <gds> gildor478: it works!  New command with removed prefixes fits the w2k limit.  The patch is ugly, but here is it: http://paste.in.ua/2721/raw/
[20:05:15] <gildor478> gds: nice, but I think you can do smthg more generic
[20:05:27] <gildor478> gds: do you have Windows at hand ?
[20:05:48] <gildor478> (I need to get the result of Filename.dirname "C:\\")
[20:07:18] <gds> gildor478: it's "C:\\".
[20:07:39] <gildor478> and "c:" ?
[20:08:12] <gds> gildor478: "c:."
[20:08:19] <gildor478> ok
[20:09:10] <gildor478> well, a more generic way will be to explode the filename using Filename.basename/dirname remove the prefix and Filename.concat the result
[20:09:45] <gildor478> but your patch is correct and shorter
[20:10:13] <gildor478> can you add it to the patch tracker in oasis ?
[20:10:32] <gildor478> https://forge.ocamlcore.org/tracker/?atid=293&group_id=54&func=browse
[20:13:03] <gds> gildor478: but I have patch for generated setup.ml, not for the oasis itself -- it is ok?
[20:15:08] <ygrek> ermine: а поменяй ссылку на вики на camlunity
[20:15:11] <ygrek> плиз
[20:15:44] mrm вошёл(а) в комнату
[20:18:04] <mrm> Добрый вечер. Не поможете решить пару проблем с ocamlbuild+ocamlfind+camlp4?
[20:18:14] <gildor478> gds: yes, no pb, I will apply it where it belongs
[20:18:15] <ygrek> don't ask to ask
[20:18:30] <mrm> С OCaml я знаком совсем недавно
[20:18:38] <mrm> Проблема -
[20:19:17] <mrm> Есть расширение синтаксиса, которое использует пакеты findlib (sexplib, например)
[20:20:02] <mrm> Собирается расширение хорошо, но при линковке расширения Camlp4 не находит эти пакеты (Batteries, Sexplib, etc)
[20:20:02] <gds> gildor478: https://forge.ocamlcore.org/tracker/index.php?func=detail&aid=1007&group_id=54&atid=293
[20:20:27] <gds> sorry, reallife.  will be in 1..2 hours.
[20:20:48] <gildor478> gds: thx
[20:20:53] <mrm> Сейчас пример покажу
[20:21:45] <ygrek> > но при линковке расширения Camlp4 не находит эти пакеты
оксюморон :)
[20:22:07] <mrm> http://slexy.org/view/s2Ti1G1lrz
[20:22:15] <mrm> Это из билдлога Ocamlbuild
[20:23:31] <mrm> Уже есть идея, как проблему решить -- нужно мой syntax-extension завернуть в пакет ocamlfind
[20:24:05] <mrm> И потом юзать уже "-syntax pa_ast" вместо "-ppopt pa_ast.cma"
[20:24:54] <ygrek> либо вручную указать зависимости, либо да - выписать их в META
[20:25:05] <mrm> А пакет устанавливать не придётся?
[20:25:10] <ygrek> придётся
[20:25:23] <mrm> Чёрт. Нехорошо
[20:25:28] <ygrek> почему?
[20:25:38] ygrek afk
[20:28:59] <mrm> Ну, например, нет возможности сделать sudo
[20:29:51] <mrm> Как вручную зависимости указать? Через новый rule в myocamlbuild?
[20:31:34] <mrm> gildor478: Hello. Aren't you the author of ocaml-data-notation? I have a problem building it
[20:31:55] <gildor478> mrm: yes I am, what is the pb ?
[20:32:28] <mrm> gildor478: http://slexy.org/view/s21nCbxUnp
[20:33:05] <mrm> by the way, thanks for helping me out with camlp4 filters. You have saved me from hand-writting a lot of boring boilerplate
[20:33:09] <gildor478> mrm: you try to fetch the darcs ?
[20:33:15] <mrm> (i was "mouse" on #ocaml)
[20:33:20] <gildor478> the darcs repository
[20:33:23] <mrm> yes
[20:33:33] <gildor478> that is the dev version
[20:33:43] <gildor478> which require oasis to be present
[20:33:56] <mrm> ops. will try 0.0.6 now
[20:34:09] <gildor478> use the latest released tarball which is standalone (and = to the dev in fact)
[20:34:30] <mrm> ok
[20:35:28] <mrm> I wanted to use ocaml-data-notation in a very sick way
[20:35:58] <ygrek> зачем sudo??!!
[20:36:24] <ermine> ygrek: поменять ссылку на что?
[20:36:35] <ygrek> ermine: на github
[20:36:53] <ygrek> ermine: https://github.com/camlunity/kamlo_wiki
[20:37:15] <ygrek> mrm: один раз от root'а выставь права на destdir и всё
[20:37:36] <ygrek> на debian ещё проще - adduser `whoami` staff
[20:37:48] <ygrek> и ocamlfind install без рута
[20:38:55] <mrm> gildor478: i have a parser function which takes a string as an input and gives back an AST. I want to make a quotation that would expand <:myast< a + 2 > into (E_BINOP (OP_ADD, E_VAR a, E_LIT (L_INT 2)))
[20:38:56] <ygrek> зависимости - через flag
[20:39:41] <ygrek> e.g.:
  flag ["ocaml"; "pp"; "pa_deriving"] (S[A"-I"; A ("path/to/deriving"); A"pa_deriving.cma"]);
[20:39:45] <mrm> so I want to use that parse function to parse the quotation, produce a string out of it using ocaml-data-notation and use camlp4 parser to get an ocaml ast out of it
[20:40:05] <mrm> gildor478: is that totally insane? :-)
[20:40:44] <ermine> поменяла
[20:40:56] <mrm> ygrek: вот не хочется указывать прямой путь к зависимостям. Хочется использовать ocamlfind
[20:40:59] <ygrek> mrm: а сразу ast выдавать - не?
[20:41:07] <ygrek> ну дёргай ocamlfind там
[20:41:13] <mrm> не, этот ast описывается моим типом
[20:41:25] <ygrek> там на самом деле и был вызов ocamlfind, я его убрал для краткости :)
[20:41:35] <mrm> понятно, спасибо!
[20:42:08] ygrek опять afk
[20:42:57] <ermine> шо за аншлаг сегодня
[20:43:00] <mrm> ygrek: с грамматикой окамла сейчас вообще никак связываться не хочется. У меня есть свой ast и свой парсер. Хочется завернуть это дело в quotation, чтобы литералы были читабельными
[20:43:06] <gildor478> mrm: why not work only at camlp4 level ?
[20:43:16] <ermine> а середина лета еще не наступила
[20:44:20] <mrm> gildor478: I have an AST in my compiler (which structure is defined by algebraic types). I also have a parser that builds ASTs out of strings. I want to make a quotation that would save me from writing huge and ugly ast literals by hand
[20:44:23] <gildor478> mrm: sorry at camlp4 + myast grammar only
[20:45:05] <gildor478> mrm that will probably be cleaner to
[20:45:36] komar вышел(а) из комнаты: Replaced by new connection
[20:45:36] komar вошёл(а) в комнату
[20:46:03] <mrm> I don't understand what you mean, gildor. Constructing OCaml AST by hand?
[20:46:23] <mrm> Or does camlp4 include some facility to pretty-print ocaml values?
[20:47:26] <gildor478> let rec camlast_of_myast = function | E_BINOP (OP_ADD, lhs, rhs) -> <:expr<$camlast_of_myast lhs$ + $camlast_of_myast rhs$>> | E_VAR nm -> <:expr<$lid:nm$>> | E_LIT ...
[20:48:01] <mrm> gildor478: I wanted to save myself from writing such stuff :-)
[20:48:13] <mrm> gildor478: And to make everything autogenerated
[20:48:14] <gildor478> mrm: that is not precisely constructing the caml AST by hand, because you use camlp4 quotation
[20:48:49] <mrm> Your approach would allow me to add antiquotations though
[20:48:57] <gildor478> mrm: well ocaml-data-notation can be used to serialize your data into a string, but it won't create an AST
[20:49:12] <mrm> Yeah. So I will use Syntax.Gram.parse_string
[20:49:36] <gildor478> mrm: why not, it can work
[20:49:47] <mrm> To generate ocaml-ast out of whatever string odn gives
[20:49:59] <mrm> It looks like a crazy hack though
[20:50:12] <gildor478> mrm: everything starts like a crazy hack
[20:51:01] <gildor478> you know First they ignore you, then they laugh at you, then they fight you, then you win
[20:51:04] <mrm> gildor478: one-staginess of camlp4 severely restrains my defmacro brains
[20:51:31] <gildor478> you are maybe at the laugh state, but it doesn't mean it is not the right approach
[20:51:47] <mrm> gildor478: why didn't metaocaml become more popular than camlp4? It looks amazing
[20:51:55] <gildor478> mrm: have a look at MetaOcaml if you want multistage expansion
[20:52:34] <mrm> gildor478: well, it has no native code backend. Also, it seems pretty much dead and forgotten by its authors :-)
[20:52:42] <gildor478> well, I assisted to several presentation about MetaOCaml and ber-MetaOCaml at last ICFP in Baltimore
[20:53:16] <gildor478> I think the native backend is not the only issue:
[20:53:28] <gildor478> 1) you have to embed to compiler in the exec
[20:54:01] <gildor478> 2) how your code expand is one order more complex than OCaml itself
[20:54:57] <mrm> I'd love to have a compiler available at runtime
[20:55:15] <gildor478> to be honnest, as an industrial user, 1) is a very problematic issue because: a compiler is complex and hard to document in a release (and unstable and ...) so embedding it in your product is not ok for me, and it is very problematic regarding licenses
[20:55:33] <mrm> because of OCaml's QPL I have to use LLVM bindings to be able to compile stuff at runtime
[20:56:02] <gildor478> mrm: you'll end up with the same issue with GCC or most other GPL compilers
[20:56:28] <mrm> There is no such issue in Common Lisp
[20:56:30] <gildor478> GCC has tighten its license policy in recente releases
[20:56:51] <gildor478> mrm: Common Lisp generates "World", they just do memory snapshot
[20:57:12] <gildor478> mrm: this is the case where you have to embed the compiler
[20:57:30] <gildor478> but I am not sure Common Lisp application are very common on your computer
[20:57:49] <gildor478> (except maybe emacs, I don't see a lot of them around)
[20:58:02] <mrm> gildor478: Yeah. Actually I have decided to use OCaml for this project because we wouldn't be able to ship a huge SBCL runtime with our product
[20:58:28] <mrm> so far OCaml seems to be a very fine tool for this particular task (compilers)
[20:59:21] <mrm> I wonder why it has become so unpopular lately
[20:59:36] <mrm> even this room's topic says that "OCaml is dead, move along"
[21:00:25] <gildor478> well I have worked with both (LispWorks CL and OCaml) and I really do prefer OCaml
[21:00:36] <ermine> ocaml dead
[21:00:42] <komar> move on
[21:00:59] <gildor478> why .ru people thinks that ?
[21:01:08] <gildor478> (sorry I don't speak russian)
[21:01:26] <mrm> gildor: I have noticed that you put a lot of personal resources to make OCaml a more useful tool (like your work on OASIS)
[21:02:03] <komar> gildor478: It's a sound criticism and a little bit of humor.
[21:02:26] <ermine> poor in-built library, bugs until 3.12 werent fixed for very long time and so on
[21:02:37] <gildor478> komar: well, OCaml will never be C#, not even Perl
[21:03:04] <ermine> and then there appears an joke "ocaml dead"
[21:03:04] <mrm> gildor478: what I don't understand is why INRIA doesn't seem to care about OCaml's usability and popularity
[21:03:17] <komar> gildor478: python too, but it still sucks.
[21:03:18] <gildor478> ermine: I am quite strongly against a large builtin library, I think that INRIA core team should focus on core bugs
[21:03:41] <mrm> perhaps they only need OCaml to power Coq and Compcert
[21:04:05] <gildor478> mrm: they care, but they are researcher
[21:04:15] <gildor478> mrm: they focus on research stuff
[21:04:34] <ermine> gildor478: why poor library is good?
[21:04:37] <mrm> gildor478: F# showed that a strict ML language can be mainstream
[21:04:45] <gildor478> mrm: you don't enter INRIA thinking about how to create a fancy and popular programming language
[21:04:54] <mrm> gildor478: Then why do they force QPL on OCaml's compiler? It's such a shame
[21:05:42] <gildor478> ermine: not particularly good, but when upstream don't have enough time to fix core bugs, that is useless to ask them to extend the stdlib, they already don't have time to do basic bug fixing
[21:05:47] <ermine> nih is good replacement for poor libraries, it seems
[21:06:01] <mrm> gildor478: There must be some new driver for the OCaml community then. OCamlPro? Jane Street?
[21:06:39] <gildor478> mrm: I don't know, I have tried to inject some fresh blood but it seems not enough
[21:07:15] <mrm> Most of the cool kids nowadays seem to be either in the Haskell or Common Lisp camp
[21:07:18] <gildor478> mrm: QPL -> because it is a way to "maybe win money" or "have something to sell"
[21:07:38] <mrm> Haskell has great web presense and adventising
[21:07:52] <mrm> All without commercial backing
[21:07:58] <gildor478> Jane Street has the money and the workforce but this is not their priority
[21:08:08] <gildor478> OCamlPro is maybe more likely to do something
[21:08:43] <gildor478> but you cannot compare Haskell and OCaml
[21:08:56] <ermine> it will born "ocamlpro library" like jane street & batteries
[21:09:14] <gildor478> 5 years ago there were a lot of people thinking haskell was dead
[21:09:28] <ermine> and you won't know which library is good to be used anywhere where your code is distributed
[21:09:56] <gildor478> ermine: I really don't want to see OCamlPro waste is time on an extended library like Janestreet core (there is janestreet core, no need to create another duplicate)
[21:10:24] <gildor478> ermine: I want to see OCamlPro release a multicore ocamlopt compiler
[21:10:40] <mrm> It would be much more useful if someone wrote documentation for Camlp4 or OCamlBuild :-)
[21:10:45] <gildor478> ermine: that will be a very good thing for OCaml
[21:11:17] <gildor478> mrm: indeed, better documentation (but AFAIK, OCamlPro guy don't really like ocamlbuild/camlp4)
[21:11:42] <komar> Go at google+ and create an OCaml group. It's the most fashonably for today.
[21:11:44] <mrm> Actually, I have recently read the whole Camlp4 source and could certainly document some of my findings
[21:11:55] <mrm> (which aren't documented elsewhere else afaik)
[21:12:10] <mrm> *-else
[21:13:09] <mrm> First need to make use of it in several projects :-)
[21:13:12] <gildor478> komar: I already have 30 people in my OCaml circle ;-)
[21:13:24] <ermine> gildor478: fnd for ocamlpro ocamlopt you will need to have units compiled by that compiler
[21:14:16] <gildor478> ermine: well, the OCamlPro project is not clear to me, but it seems that they try to push their changes into OCaml
[21:15:04] <gildor478> ermine: it SEEMS, because I am not sure if they 1) succeed and/or 2) put the required effort to please OCaml upstream with their changes
[21:15:10] <mrm> I have recently taken a look at OCaml's native code backend
[21:15:25] <mrm> It doesn't seem to be anything fancy
[21:15:45] <mrm> I wonder if LLVM based backend would help to speed up some things
[21:16:05] <mrm> (like it did in GHC's case)
[21:16:19] <gildor478> mrm: I discuss this topic with Xavier, and it disagrees on the utility of an LLVM backend (but this is not new)
[21:16:54] <mrm> He doesn't like LLVM because it would be a huge dependency?
[21:16:57] <gildor478> mrm: it will be mostly to do some experiment but the speedup will be ~0
[21:17:15] <gildor478> mrm: no because it won't improve the situation
[21:17:27] <mrm> It has something to do with how OCaml represents all the values internally?
[21:18:21] <gildor478> mrm: well he says that there was probably something done to be able to plugin your GC in the latest LLVM version, but it will still won't improve the state of OCaml
[21:19:00] <mrm> HLVM seems to be an interesting runtime for statically typed functional languages. I'll have to ask Jon Harrop about the prospect of using LLVM in OCaml
[21:19:02] <gildor478> I mean, the speedup of using LLVM won't make you win 1000+ OCaml zealots
[21:19:13] <mrm> hehe :-)
[21:19:40] <gildor478> whereas a multicore ocaml compiler will make quite a big buzz
[21:19:54] <ermine> oh
[21:19:58] <mrm> What about the CLR backend? That would certainly help to win zealots (even steal some from f#)
[21:20:22] ermine only just right how recognizes who gildor478 is 8-)
[21:20:24] <mrm> OCaml has two killer features in comparison to F#: the module system and camlp4
[21:20:35] <gildor478> there is already an ocamlil floating around
[21:20:55] <gildor478> that hasn't been a success
[21:21:05] <ermine> give us pkg-config in oasis!
[21:21:11] <gildor478> and to be honnest, with the upcoming Win8, I am not sure .NET is a good bet
[21:21:42] <gildor478> ermine: I only have 2 hands and one brain, patches are welcome ;-)
[21:21:43] <mrm> They don't seem to be ditching .NET. Just making HTML5 a better choice for some kind of apps
[21:21:58] <mrm> (some silly little desktop apps)
[21:22:24] <gildor478> mrm: common, they announce almost 10 years ago that they will remove C/C++ an replace the whole Win32 stack by .NET stack
[21:22:38] <mrm> Also, there is Mono, which is soon to become a great runtime (once they get rid of Boehm GC)
[21:22:42] <gildor478> the full graphical stack of Vista should have been .NET
[21:23:30] <gildor478> they just have failed for years and it seems that they will also fail for the next version of Windows, it makes .NET world domination a little further in the future
[21:24:15] <mrm> yet unevitable
[21:24:24] <mrm> I hope so :-)
[21:24:27] <gildor478> Mono was full of great promise until de Icaza get fired by Novell
[21:24:54] <mrm> He still puts a lot of personal effort into Mono
[21:25:14] <mrm> And even mantains a fork of F#
[21:25:40] <gildor478> without the backup of Novell, he will have a hard time to convince people to use Mono (doesn't mean he won't succeed, just that this will be a little bit harder)
[21:25:59] <mrm> It is already a great runtime, the only downside being the venerable Boehm GC
[21:26:51] <mrm> And seems to be a suitable target for functional languages
[21:27:33] <mrm> If I were to implement an ML dialect, it probably would be my first choice as a backend
[21:28:15] <mrm> Need to take a look into that OCamlIL
[21:30:05] <gildor478> http://www.pps.jussieu.fr/~montela/ocamil/
[21:30:31] <mrm> Thanks
[21:30:43] <mrm> Another ML implementation - http://www.cl.cam.ac.uk/research/tsg/SMLNET/
[21:32:31] gildor478 gtg
[21:32:39] <gildor478> see you .ru people
[21:32:43] <mrm> gildor478: cya. thanks for a nice talk
[21:33:21] gildor478 вышел(а) из комнаты
[21:33:24] <ermine> come here again
[21:33:30] <ermine> опоздала
[21:33:37] <bobry> ого
[21:33:50] <mrm> Ого. Вы все по русски говорите?
[21:34:00] <bobry> sure :)
[21:34:21] <ermine> да мы все тут сплошь рюсиши кроме этого француза
[21:35:36] <mrm> А он на #ocaml идлит уже больше недели :-)
[21:35:57] <mrm> Странно, что тут на него наткнулся
[21:36:30] <ermine> его притащили в первый раз сюда
[21:36:39] <ermine> из-за баги в оазисе на венде
[21:37:41] <ermine> mrm: а тебя-то кто занёс сюда? странные вопросы про чудовищный камль задавал :)
[21:38:37] <mrm> Я увидел на #ocaml игрека и вспомнил, что уже читал его в каких-то интернетах
[21:38:41] <mrm> он меня позвал сюда
[21:38:55] <mrm> И мою проблему решили. Спасибо, ygrek
[21:39:43] <ermine> надо ирц удавить и перетащить #ocaml в джаббер
[21:40:15] <mrm> Зачем? Многим IRC гораздо больше нравится
[21:40:44] <mrm> Чтобы сюда зайти, мне пришлось залогиниться и прощай, анонимность
[21:40:54] <mrm> Теперь кто-нибудь нагуглит про меня компромат :-)
[21:41:40] iNode вышел(а) из комнаты
[21:42:35] <ermine> да мало ли разных mrm в гугле
[21:42:45] <mrm> А кроме ника ничего не видно?
[21:43:08] <gds> у меня при логине было таки видно.  по логину выдаёт честные 8 результатов.
[21:43:17] <gds> я про гугл.
[21:43:32] <ermine> ну вкард твой любой сидящий здесь может посмотреть, а jid - только админы конференции
[21:43:46] <gds> всё, анонимность нарушена.  срочно вешаться :[
[21:44:20] <mrm> Недавно коллега нагуглил какую-то хрень, которую я нёс в ирке 5 лет назад
[21:44:20] <ermine> ирц - общество анонимных алкоголиков
[21:44:26] <mrm> и теперь чмырит :-)
[21:45:23] <ermine> ну вот видишь, даже ирц не спасает
[21:45:43] <mrm> Ну я просто начал себе одноразовые ники придумывать
[21:45:52] <mrm> А в форумах анонимно постить
[21:46:25] <gds> проще было убить и расчленить коллегу.
[21:46:53] ermine не меняет свой ник уже... ээ... двадцать лет
[21:47:12] <gds> ermine: так у тебя он к фамилью привязан, сравнила.
[21:47:23] <mrm> Во. Любой из вас легко гуглится
[21:47:37] <mrm> Всю подноготную видно, как на ладони
[21:48:06] <mrm> "gds ocaml", "ermine ocaml"
[21:48:13] <ermine> gds: у меня еще как у собаки чака норриса - это сначала была фамилия для щенков моей собаки колли
[21:48:45] arhibot вошёл(а) в комнату
[21:48:46] <bobry> mrm: странные у тебя какие то опасения :)
[21:49:32] <ermine> ну может он спаммер, а спаммер решили использовать новомодные функциональные подходы
[21:50:09] <mrm> bobry: Почему? Что хорошего в том, что любой проходимец может про вас много узнать из интернета?
[21:50:23] <mrm> А потом использовать это в личных корыстных целях
[21:50:32] <gds> плохого тоже не много.
[21:50:35] <bobry> это не хорошо и не плохо
[21:50:50] <mrm> Например, убили вы человека и рассказали об этом в IRC. А через пару лет это всплывёт
[21:50:50] <bobry> неизбежное следствие твоего прибывание в интернетах
[21:51:01] <mrm> И вас посадят? Это не круто
[21:51:15] <gds> всё, что я пишу под ником/именефамильем, я хочу, чтобы ассоциировалось со мной.  Остальное пишу по-другому.
[21:51:33] <ermine> вообще тайна уже не страшна, когда она перестает быть тайной
[21:51:45] <bobry> mrm: посадят? за что?
[21:51:56] <mrm> Ну начнут копать и докажут что-нибудь :-)
[21:52:19] <mrm> Плохой пример
[21:52:19] <bobry> "что нибудь" :)
[21:52:38] <ermine> внуки, в основном
[21:53:10] <ermine> в смысле - они скорее будут копаться, чем кто-либо другой
[21:53:44] <mrm> Я, например, люблю гуглить информацию о программистах-кандидатах перед собеседованием
[21:54:08] <gds> значит меня не возьмут.  все же знают, как я на самом деле люблю гусей.
[21:54:10] <bobry> думаю что ты не одинок
[21:54:13] <mrm> Обычно сразу нахожу информацию в соц. сетях, а оттуда кучу ниточек в интернет
[21:54:26] <bobry> и?
[21:54:34] <bobry> я просто не вижу каких то явных минусов
[21:55:01] <bobry> если люди хотят приватности они не выкладывают свои фоточки в соц. сети, если не хотят -- то твое гугление для них не сюрприз
[21:55:03] <mrm> И могу попробовать построить психологический портрет соискателя
[21:55:18] <mrm> И уже на этом этапе вычислить всякую мразь
[21:55:40] <gds> так зачем советовать потенциальным мразям скрывать инфу о себе? :)
[21:56:00] <gds> наоборот -- открытость, православие, нанотех!
[21:56:21] <mrm> Из благих побуждений я всем рекомендую не светить реальное имя в интернетах
[21:56:36] <mrm> Можно виртуала создать, но очень хорошо его изолировать от реальной жизни
[21:56:47] <bobry> mrm: поясни побуждения
[21:57:22] <ermine> да вообще уже оффтопик
[21:57:27] <arhibot> mrm: ты мне скажи, за мной уже выехали?
[21:57:32] <mrm> Ну могут и жулики какие-нибудь что-то про вас раскопать.
[21:57:37] <ermine> не хочет раскрываться - ну и хрен с ним
[21:57:56] <bobry> офтопик это не страшно :)
[21:58:03] <gds> не, логичное тут есть, конечно.  Ну так просто -- не делайте ничего и не показывайте ничего, чего не хотите показывать.
[21:58:04] <arhibot> mrm: даже столлман не такой фанатик
[21:59:01] <mrm> Забейте :-)
[21:59:09] <mrm> Не оффтопик, раз уж сюда я зашёл --
[21:59:32] <arhibot> mrm: т.е. ты идешь по следу и он тебя привел в ocaml@?
[21:59:35] <arhibot> детектив!
[21:59:38] <arhibot> пыщ-пыщ
[21:59:45] <mrm> Кто-нибудь собирал под виндой OCaml-3.12/MingW и чтобы там работали ocamlbuild и ocamlfind?
[22:00:03] <bobry> кстати, еще офтопика -- камло UG / hackathons в природе существуют?
[22:00:10] <ermine> с вендой - к gds
[22:00:38] ermine арскрыла небольшую тайну gds
[22:00:42] <mrm> Меня уже посылали к одному эксперту по винде, он мне F# начал продавать
[22:01:12] <mrm> И сказал выкинуть Емакс. Показал, как писать плагины для Фара
[22:01:25] <ermine> а сам-то не пробовал собирать?
[22:01:27] <bobry> какой православный поц :)
[22:02:29] <gds> ermine: не пали хату!!!11
[22:02:36] <gds> mrm: да, венду и прочее умеем.
[22:02:48] <gds> mrm: насчёт 3.12 -- пока "в работе".
[22:02:54] <gds> всякие мелочи фиксю.
[22:02:57] <mrm> ermine: Я пытался юзать готовые древние бинарники (которые 3.11), но задолбался с ocamlfind (уже не помню, в чём дело было)
[22:03:08] <mrm> Ещё попробовал какой-то overbld, но там были проблемы с menhir
[22:03:17] <mrm> Сам собирал под сигвином
[22:03:17] <arhibot> F# экспресс 2010
[22:03:38] <gds> mrm: вот про overbld -- если какие проблемы и будет желание их решить, сообщи.
[22:03:57] <mrm> Grebnyuk?
[22:04:02] <gds> почти.
[22:04:08] <mrm> Не важно
[22:04:35] <mrm> Проблема была такая -- ocamlbuild вызывал menhir с неправильными кавычками
[22:04:43] <mrm> с одинарными вместо двойных
[22:05:19] <mrm> я немножко поковырял ocamlbuild, чтобы исправить это дело, но так и забил на это
[22:05:40] <gds> одинарные иногда очень даже в тему, так сразу не скажешь, что они неправильны.  Как мне потестить это дело?
[22:06:24] <gds> я скоро сваливаю часиков на 18, если чо.  Если опишешь конкретику -- буду смотреть/фиксить.
[22:06:34] <mrm> У меня сейчас винды под рукой нет. Могу в понедельник выслать кейс
[22:07:14] <mrm> На почту?
[22:07:25] <mrm> Баг трекер?
[22:10:25] <gds> если почта -- gdsfh1 at gmail, если багтрекер -- http://sourceforge.net/tracker/?atid=1191746&group_id=280863&func=browse , пофигу.
[22:10:48] <mrm> Понятно, спасибо
[22:10:54] <mrm> Всем доброй ночи, я пошёл спать
[22:11:08] mrm вышел(а) из комнаты
[22:34:51] ermine читает learnyouahaskell
[22:35:27] <ermine> даже ле галль против расширения библиотек в камле - надо валить куданить
[22:36:11] <arhibot> ermine: линк плиз
[22:36:33] <bobry> learnyouahaskell кошерный -- вчера перечитвал там как раз про аппликативные функторы главу :)
[22:36:40] <bobry> ermine: а где он написал что против?
[22:36:48] <gds> народ, я вас заразил какой-то фигнёй :)
[22:37:11] <bobry> хах
[22:37:15] <ermine> выше
[22:37:29] iNode вошёл(а) в комнату
[22:38:36] <ermine> [21:00]<gildor478> ermine: I am quite strongly against a large builtin library, I think that INRIA core team should focus on core bugs
[22:38:54] <komar> Малаца.
[22:38:54] <arhibot> ну норм же
[22:39:00] <arhibot> core + contrib
[22:39:17] <komar> А то как понасуют.
[22:39:37] <bobry> нашел ага, окамлу явно не хватает пользователей
[22:39:50] <bobry> и как следствие разработчиков :(
[22:40:15] <ermine> дальше он там про ocamlpro
[22:40:21] <arhibot> ermine: а в pdf нет?
[22:40:42] <ermine> я ему намекнула, что придецца все перекомпиливать ихним компилером, он вроде слегка тоже испугался
[22:41:03] <komar> > окамлу явно не хватает питонщиков
[22:41:05] <komar> fxd
[22:41:07] <arhibot> ох, надо почаще кк вам заходить
[22:41:16] <arhibot> половину слов не знаю
[22:41:18] <bobry> komar: lolwoot?
[22:41:51] <komar> bobry: ну дык, питон — модный молодежный язык программирования.
[22:41:55] <komar> Есть библиотеки для всего.
[22:42:00] <bobry> arhibot: core + contrib на деле получается core + contrib + MyContrib + TheirContrib + etc
[22:42:28] <arhibot> bobry: ничего страшного
[22:42:28] <bobry> komar: ты так говоришь как будто это плохо, более того, питон не одинок -- в руби например ситуация не хуже
[22:42:39] <arhibot> bobry: была бы нормаьлная система распространения
[22:42:48] <ermine> а вот тифон точно всё проспал
[22:43:03] <ermine> будет рвать на себе растительность
[22:43:24] <arhibot> тифон?
[22:43:25] <komar> bobry: в руби, кстати, встречаются весьма годные для этого языка библиотеки.
[22:43:51] <komar> arhibot: ага, сын Геи.
[22:43:57] <arhibot> ermine: а learnyouhaskell лучше real world haskell?
[22:44:09] komar np: Therion - Typhon
[22:44:59] <ermine> arhibot: n+1 туториалов - это гуд, особенно если между прочтениями проходит не менее года, а за это время ничего на хаскиле не делал
[22:45:42] <ermine> arhibot: вон даже в предисловии к learnyouahaskell автор признавался, что дважды уже пытался учить хаскиль и сам прочитал много туториалов
[22:46:12] <arhibot> да я тоже за риалворлд брался раза 3
[22:46:41] <ermine> а вот на камле читать почти нечего
[22:47:00] <ermine> кто бы писал пространные статьи про модули и извращения с ними
[22:47:16] <arhibot> кастую зерта
[22:47:25] <arhibot> а вот же он
[22:47:35] <arhibot> zert: камл мертв?
[22:47:38] <ermine> а сейчас особенно - новшества в камле связанные с первоклассными модулями и передачей типов в функции
[22:47:52] <bobry> кстати не видел шота ничего на эту тему
[22:48:01] <ermine> gds: ты-то уже суешь типы в функции?
[22:48:27] <arhibot> bobry: все фичи узнаются из исходников
[22:48:37] <komar> ermine: есть же прекрасная книжка от французов. Даже я осилил.
[22:48:59] <komar> А фитчи языка из мануала прекрасно узнаются.
[22:49:11] <komar> Я даже другу вслух окамловый мануал читал, он заценил.
[22:49:28] <bobry> хорошо написано? :)
[22:50:02] <ermine> komar: тренировал свое произношение на английском?
[22:50:42] <komar> ermine: не, я комментарии на русском давал и в мауал пальцем тыкал.
[22:52:49] <arhibot> ermine: в лёрнюхацкель нет задачек чтоли? :(
[22:53:29] <ermine> arhibot: вроде нет, а зачем? бери задачки в rwh
[22:53:29] <komar> У вас что-то все задумки из разряда «а давайте сделаем все как в х-ле».
[22:53:55] <ermine> arhibot: а еще лучше - придумать проект и страдать в нём
[22:53:57] <gds> komar: ну нифига же!
[22:53:57] <komar> Зачем делать, если уже сделали х-ль?
[22:54:56] <arhibot> ermine: да как-то лень, хочется мелких задачек. видимо надо пароль от projecteuler вспомнить :)
[22:55:00] <komar> Сейчас понапишете кабалов с хакаджами, понасуете http в стдлибу и будет вам хорошо, а мне на чем тогда писать?
[22:55:08] <ermine> arhibot: вариант - сходить на projecteulers и решать задачки на х-ле
[22:55:14] <arhibot> =)
[22:55:27] <ermine> там 300+ задачек
[22:55:38] <arhibot> ermine: я выше про него и написал :)
[22:55:39] <gds> брать нужное из всех источников -- вот что надо.  komar, ты инженер по сути своей или учоный?  если инженер -- спирай@используй.  и сраную stdlib никто не тронет.  она будет минималистична.
[22:56:37] <bobry> arhibot: в haskell wikibook полно задачек
[22:56:42] <komar> gds: это хорошо.
[22:57:07] <komar> Остальное — плохо.
[22:57:31] <komar> И сам ты учоный, академик несчастный. =)
[22:57:44] <gds> нифига!  у меня только практические цели!
[22:57:45] <bobry> gds -- академик? :)
[22:58:09] arhibot вышел(а) из комнаты
[22:58:30] <ermine> с длинной бородой
[22:58:52] <bobry> а усы? усы есть?
[22:59:09] <komar> А мне 20 лет и я бородат.
[22:59:10] <ermine> ну само собой
[22:59:39] gds всем чмоки, споки-ноки, гламура и всего такого, о чём вы не захотите рассказывать своим мамам.  В кои8-то веки в мини-путешествие, как раз до завтрашнего послеобеда.
[22:59:48] gds вышел(а) из комнаты
[22:59:52] <bobry> хев фан
[23:00:44] rren вошёл(а) в комнату
[23:12:35] <ygrek> ermine: > я ему намекнула, что придецца все перекомпиливать ихним компилером, он вроде слегка тоже испугался
[23:12:39] <ygrek> неа
[23:13:28] <ygrek> mrm: ocaml 3.12 под mingw у меня вон билдботом автоматически собирается
[23:15:36] <ermine> ygrek: там была пауза после моей фразы
[23:16:44] <ygrek> не обязательно что надо будет перекомпилировать
[23:16:54] <ermine> а у меня на макбуке камло уже 3.12.1, порты сами его обновили
[23:18:16] <ermine> ygrek: да мне лично пофиг, просто меня огорчает наличие библиотек из трех мест, а то уже и четырех, включая оазис-дб
[23:18:56] <ermine> поэтому перекомпиливание - это смешная помеха по сравнению с этим
[23:19:30] <ygrek> разум когда-нибудь победит
[23:22:07] <ermine> если выживет
[23:50:03] iNode вышел(а) из комнаты
[23:51:44] arhibot вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!