Home
Objective Caml
ocaml@conference.jabber.ru
Воскресенье, 31 октября 2010< ^ >
ygrek установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | judge by commits, not comments | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[00:06:05] zert вышел(а) из комнаты
[00:38:47] Typhon вышел(а) из комнаты
[00:39:11] Typhon вошёл(а) в комнату
[00:42:47] ygrek вышел(а) из комнаты
[00:45:49] serp256 вошёл(а) в комнату
[00:46:50] ygrek вошёл(а) в комнату
[00:59:43] ygrek вышел(а) из комнаты
[01:00:57] ermine вышел(а) из комнаты
[01:07:44] serp256 вышел(а) из комнаты
[01:21:17] arhibot вышел(а) из комнаты
[02:35:50] Typhon вышел(а) из комнаты
[07:31:28] gds вошёл(а) в комнату
[08:49:13] Kakadu вошёл(а) в комнату
[09:52:01] <Kakadu> Как по-аншийски сказать "15 кросс-рекурсивных типов"?
[09:52:30] <Kakadu> дословно я могу. а как правильно?
[10:06:26] Kakadu вышел(а) из комнаты
[10:16:55] Kakadu вошёл(а) в комнату
[10:17:04] <Kakadu> проехали
[10:25:26] ermine вошёл(а) в комнату
[10:36:48] ygrek вошёл(а) в комнату
[10:37:20] ygrek вышел(а) из комнаты
[10:39:03] ygrek вошёл(а) в комнату
[10:39:42] ygrek вышел(а) из комнаты
[10:40:19] ygrek вошёл(а) в комнату
[10:40:47] ygrek вышел(а) из комнаты
[10:42:27] myxomop87 вошёл(а) в комнату
[11:09:38] <Kakadu> немного изврата на ваши головы: http://dimitrykakadu.livejournal.com/5603.html
[11:11:11] <gds> адски :)
[11:27:00] arhibot вошёл(а) в комнату
[11:43:55] ygrek вошёл(а) в комнату
[11:55:18] serp256 вошёл(а) в комнату
[11:55:46] serp256 вышел(а) из комнаты
[11:55:57] ygrek вышел(а) из комнаты
[11:56:18] ygrek вошёл(а) в комнату
[12:16:01] serp256 вошёл(а) в комнату
[12:19:06] gds вышел(а) из комнаты
[12:19:54] gds вошёл(а) в комнату
[12:35:40] Typhon вошёл(а) в комнату
[12:43:10] <myxomop87> где можно почитать про модули, в частности что такое type t, нигде толком не пишут
[12:43:59] <Typhon> myxomop87, http://caml.inria.fr/pub/docs/manual-ocaml/manual004.html#toc16 -- абстрактный тип это называется
[12:51:22] ygrek вышел(а) из комнаты: Replaced by new connection
[12:51:24] ygrek вошёл(а) в комнату
[12:54:04] <ygrek> myxomop87: http://www.ocaml-tutorial.org/modules
[12:56:22] <myxomop87> угу, спасиб
[12:59:21] <gds> ygrek: а есть какая-нибудь шняга (веб-сервис, видимо), с помощью которой можно перевести данный текст по предложениям, и в случае, если оригинал изменился в малом количестве мест, "инвалидирующая" перевод изменённых предложений?  Конечно, пишется легко (благо теперь я вполне представляю себе js), но имхо должно быть готовое.  идеально для переводов, когда оригинал может меняться.
Вот для ocaml-tutorial подошло бы отлично.
[12:59:56] <gds> ygrek: вообще, вопрос не только к тебе, но у тебя в todo было кое-что про ocaml-tutorial.org, может идея покатит.
[13:00:50] <ygrek> не знаю такого
[13:01:37] <ygrek> в лучшем случае оригинал есть в scm, а в переводе пишется ревизия оригинала, потом когда оригинал обновляется делаешь diff и допереводишь
[13:01:50] <ygrek> не знаю как это приличней сделать..
[13:02:06] <ygrek> конверить по предложениям в .po файл?
[13:02:32] Typhon вышел(а) из комнаты: Replaced by new connection
[13:02:35] Typhon вошёл(а) в комнату
[13:04:22] Typhon вышел(а) из комнаты: Replaced by new connection
[13:04:25] Typhon вошёл(а) в комнату
[13:04:37] Typhon вышел(а) из комнаты
[13:05:10] Typhon вошёл(а) в комнату
[13:05:21] <gds> про diff думал, но имхо криво.  Вот признаюсь в невежестве, с .po-файлами не работал, хотя идея примерно понятна.
[13:06:02] Typhon вышел(а) из комнаты
[13:07:22] Typhon вошёл(а) в комнату
[13:10:49] <ygrek> ну я тоже не работал, но это просто маппинг из строк оригинала в перевод
[13:11:19] <ygrek> поинт в том что уже есть куча тулзов под этот формат, включая http://transifex.net
[13:11:20] <Typhon> gds, http://www.transifex.net/
[13:11:26] <ygrek> гг :)
[13:11:28] <Typhon> :)
[13:11:30] <gds> double hit, я убит
[13:11:59] <ygrek> btw надо локализацию mldonkey тоже в po перевести
[13:21:37] <gds> кстати вот, раз уж подняли тему, поинтересуюсь, как забарывают разный порядок printf-аргументов в разных языках?  Т.е. в одном языке может быть "%s blablabla %i", в другом -- "%i блаблабла %s".  Языки разные, порядок слов в предложениях тоже бывает разным.
[13:23:12] <ygrek> ну позиционные аргументы
[13:23:58] <gds> ну, в виндах всяких, %1 %2 понятно, а в printf как?
[13:25:14] <ygrek> никак?
[13:29:58] <gds> вот потому и спрашиваю, вдруг что-то подобное есть, или, может, все знают, что такое невозможно.
[13:33:08] <ygrek> http://caml.inria.fr/mantis/print_bug_page.php?bug_id=3992
[13:34:43] <ygrek> http://caml.inria.fr/pub/ml-archives/caml-list/2007/11/3b626988125b800e1fca6b4e3ab7ac8a.en.html
[13:41:00] <gds> > Date: NaN-NaN-NaN (NaN:NaN)
ага, теперь-то понятно, когда баг отрепортили.
[13:41:41] <komar> Он всегда был, есть и будет.
[13:41:55] <Typhon> так у них всегда так
[13:42:48] <ygrek> тред доставляет
[13:43:24] <gds> "Русские -- они день октябрьской революции отмечают... в ноябре.  И так у них всё."
[13:45:21] <Kakadu> Кажется deriving надо выкинуть... Непонятно как рекурсивные типы печатать. Походу делать как в топлевеле с глубиной, но тогда уж наверне надо сразу топлеел брать
[13:45:41] <Kakadu> рекурсивные типы даже х-ль показывать не умеет
[13:46:38] <Typhon> "даже х-ль" :/
[13:47:25] serp256 вышел(а) из комнаты
[13:48:08] <Typhon> тред -- огонь!
[13:48:35] <Typhon> "I think that the standard library should provide a Pervasives.segfault function"
[14:31:26] Typhon вышел(а) из комнаты
[14:53:37] <ygrek> > You've just demonstrated out that this practice is very effective at pissing me off.  Are you satisfied?
[15:22:04] gds вышел(а) из комнаты
[15:22:18] gds вошёл(а) в комнату
[15:22:30] gds вышел(а) из комнаты
[15:22:58] gds вошёл(а) в комнату
[15:44:10] Typhon вошёл(а) в комнату
[15:56:45] myxomop87 вышел(а) из комнаты
[16:15:39] Typhon вышел(а) из комнаты: Replaced by new connection
[16:15:43] Typhon вошёл(а) в комнату
[16:22:58] komar вышел(а) из комнаты: Logged out
[16:32:48] Typhon вышел(а) из комнаты
[16:32:53] Typhon вошёл(а) в комнату
[17:03:34] Typhon вышел(а) из комнаты: Replaced by new connection
[17:03:37] Typhon вошёл(а) в комнату
[17:17:54] Typhon вышел(а) из комнаты: Replaced by new connection
[17:17:57] Typhon вошёл(а) в комнату
[17:19:15] Kakadu вышел(а) из комнаты
[17:42:33] Typhon вышел(а) из комнаты: Replaced by new connection
[17:42:37] Typhon вошёл(а) в комнату
[17:42:50] Typhon вышел(а) из комнаты
[17:43:06] Typhon вошёл(а) в комнату
[17:53:02] myxomop87 вошёл(а) в комнату
[18:01:00] Typhon вышел(а) из комнаты: Replaced by new connection
[18:01:03] Typhon вошёл(а) в комнату
[18:16:35] Typhon вышел(а) из комнаты: Replaced by new connection
[18:16:38] Typhon вошёл(а) в комнату
[18:16:52] Typhon вышел(а) из комнаты
[18:17:18] Typhon вошёл(а) в комнату
[18:29:11] <gds> а ещё мне надо как-то прикинуть функции верхнего порядка (так сказать), но без карринга (он не нужен там) и с проверкой по типам (может в будущем и по именам) аргументов.  С вызовом функций вопросов нет, есть вопрос о том, как записывать типы таких функций в пределах языка.
У меня есть идеи, но тупые.  А может у кого-нибудь есть идеи грамотные, как сделать это.
[18:34:49] Typhon вышел(а) из комнаты: Replaced by new connection
[18:34:52] Typhon вошёл(а) в комнату
[18:40:31] <Typhon> не оч. понятно :-) вопрос про синтаксис типовых аннотаций или не?
[18:41:44] zert вошёл(а) в комнату
[18:44:49] Typhon вышел(а) из комнаты
[18:51:02] <gds> Typhon: да, в основном про аннотации.  Проверять типы как-то да придётся, это понимаю, ну и что-то генерить тоже.  Как записывать тип -- вопрос.  Насколько нужно лепить туда labelled arguments -- второй вопрос.
Если без карринга, то можно даже на каждую функцию сгенерить module Args_myfunc = struct type args = { x : int; y : string } end, и затем требовать указанную запись в качестве одного аргумента, чем обеспечить тестовый запуск кода на окамле и проверку типов.  (если заломает проверять типы руками, смогу парсить сообщения окамла и вычленять из них ошибки типа "не до конца сконструировал запись!" или "поле такое-то по типу не сходится!").
[20:19:10] serp256 вошёл(а) в комнату
[20:19:42] serp256 вышел(а) из комнаты
[20:38:55] komar вошёл(а) в комнату
[20:57:32] Kakadu вошёл(а) в комнату
[21:15:01] serp256 вошёл(а) в комнату
[21:15:08] serp256 вышел(а) из комнаты
[21:26:46] <Kakadu> ygrek: Это ты там ирке сейчас?
[21:26:53] <Kakadu> ygrek: в ирке*
[21:29:22] <ygrek> угу, только уже ушёл, вечерняя партия в преф :)
[21:31:34] <Kakadu> ясно
[21:31:52] <Kakadu> перепостю тогда сюда
[21:32:46] <Kakadu> или не перепостю
[21:33:14] <Kakadu> <DimitryKakadu> Next question. When I've added binprot,bigarray and sexplib ocamldebug says that there is `Reference to undefined global `Condition'` in core.cma. But file core_condition.ml exisits in core sources and must be inside core.cma! I don't understand why this message appears. Any ideas?
[22:33] <thelema> link in threads
[22:27:28] <ygrek> хм, а что это за команда load? её в мануале нет
[22:27:53] <ygrek> и зачем нужно?
[22:28:00] <ygrek> cma то уже вкомпилен в прогу?
[22:28:16] <ygrek> если я правильно понимаю то ему нужен только путь до cmi файлов..
[22:28:47] <ygrek> т.е. можно наскриптовать обёртку которая будет звать ocamlfind и вызывать ocamldebug с нужными -I флагам
[22:29:12] <ygrek> что если вместо load path/xxx.cma дeлать directory path
[22:29:44] <ygrek> если будет работать тогда это эквивалентно -I и тогда можно автоматизировать
[22:29:49] <ygrek> Kakadu: ^^^
[22:35:54] <Kakadu> ygrek: Я уже разрулил ручками депенденсы
[22:36:23] <gds> вот блин, хочу выбрать между открытыми и закрытыми [ко]индуктивными типами что-то одно.  Но хорошо знаю недостатки как открытых типов, так и закрытых.  (закрытые накладывают ограничение уникальности на имена конструкторов/деструкторов, открытые плохи для ошибкозащищённости, усложняют типизацию в целом, чаще нужно указывать явные типы для "отладки").
[22:37:43] <Kakadu> ygrek: Я пока буду просто копипастить из буфера загрузку нужных мне либ
[22:38:30] <Kakadu> gds: Кстати. напомните мне вашу историю про кодогенерацию из "хорошего" языка во всё что угодно?
[22:40:44] Typhon вошёл(а) в комнату
[22:45:06] ygrek вышел(а) из комнаты
[22:53:56] <gds> Kakadu: там не что угодно, а javascript и C.  История простая: "все говорят, я сошла с ума, а я говорю "разберусь сама"".  Первым будет точно js.  На случай сишечьки почитал про GC разные, подумал, помучил людей, вроде получится при желании.  Далее начал прикидывать формальную грамматику (как доточу до средне-приемлемого вида, кину сюда ссылку на критику).  Долго думал насчёт функций и их типов -- карринг императивщикам не нужен.  Долго думал насчёт переменных (ref), обсуждал с императивщиками их.  Там и концепции разные прикидывал, и const-модификатор смотрел (протаскивание его -- байтораздирающее зрелище).  Остановился на чём-то типа окамловских ref, с префиксным "$" в качестве "разыменования".  Подумал, что врага надо реализовать изнутри, и решил сделать оверлоадинг, но только статически-разруливаемый, на этапе компиляции.  Чесал репу, как удобно компилировать корректный и красивый код в императивщину и понял, что для некоторых типов в качестве ручной оптимизации надо будет как-то указывать "значения этого типа не создавать в рантайме, их создание и разрушение отображать различным control flow в программе" (мутабельный лоулевел позволяет такое делать).  Травил императивщиков, что return в среднем не нужен.  С другой стороны, поддался на идею о том, что для _переменных_ можно и не указывать начального значения, если есть гарантия, что первой операцией с ними будет запись в них значения.
Как-то так.
Да, кстати, травите меня все и сразу, так веселее :]
[22:57:12] myxomop87 вышел(а) из комнаты
[22:58:12] <Kakadu> gds: Мы хотим конверитировать кмло в JS или можно другой язык но с блекдже^W диповыводилкой и шлю^W прочими прелестями этих прекрасных функциональных языков?
[23:02:32] <gds> камло в js есть, причём годное, ocamljs вроде.  jake donham что ли пилит.
мы хотим императивный язык, тупой, типизированный, близкий к js идеологически (но строго и статически типизированный) (ибо js как низкий уровень -- вполне катит, типа ассемблера такого), язык, близкий к сишечьке синтаксически (т.к. контингент...), но более ошибкозащищённый, чем си, и так, чтобы оно было относительно простое для анализа, трансляции и набивания тонн говнокода на нём.
[23:02:55] <gds> (про ocamljs кстати ни в названии, ни в авторе не уверен, но найду по требованию)
[23:03:25] <Kakadu> gds: Ты взвешилвал плюсы и минусы языка Haxe?
[23:14:43] ygrek вошёл(а) в комнату
[23:16:35] <ygrek> Kakadu: headshot
[23:19:17] <Kakadu> ygrek: я, как  стракрафтер, сказалбы 5-пул раш
[23:24:46] gds вышел(а) из комнаты
[23:28:06] arhibot вышел(а) из комнаты
[23:34:53] gds вошёл(а) в комнату
[23:43:54] <gds> Kakadu: http://wizzard0.livejournal.com/171667.html?thread=1103251#t1103251
[23:46:18] <Kakadu> gds: не знаю как насчет продакщена, но у меня на работе продакщен на хаксе
[23:46:52] <Kakadu> что означает фраза "Немалый feature-set и 1.5 мб весом компилятор не оставляют никаких шансов человеческому эррор-репортингу и подсветке синтаксиса." ?
[23:47:06] <ygrek> ну камло тоже в некотором смысле внутрення тулза inria, чего хотят того воротят
[23:47:10] <gds> лично я смотрел на него.  Куча ненужного и куча сложностей для ембеддщины (там, где даже плюсы компилируют нехотя), трудозатраты в допиливании этого до нормального хотя бы сишного кода из-за сложности самого языка, отсутствие (кажущееся сходу) низкого уровня в манипуляциях с html+css+svg (может ошибся, но всяких плясок вокруг браузерного наплясал).
[23:47:11] <ygrek> я бы сам попробовал и составил мнение
[23:47:47] <ygrek> т.е. слишком высокоуровневое?
[23:48:38] <gds> то есть, что haxe, что C# транслировать в неподдерживаемый язык -- это убиться веником из-за сложности языка (намешали разного).  С другой стороны, чистая императивщина и чистая лямбда -- слишком тупые.
[23:50:49] <gds> далее, когда конкретно для svg смотрел, чисто обзорно пробежался по фичам (как и сейчас) и сходу не нашёл возможности безопасно использовать код на генерируемом языке -- дописать нативную js-функцию, указать системе о конвенциях вызова, о необходимых преобразованиях типов аргументов и необходимых проверках возвращаемого значения на корректность.
[23:51:14] Kakadu застремался,  том что люди уже ковыряли хакс и у них ничего не получилось...
[23:51:43] <gds> не, получилась, просто человеку было западло ждать сутки при возникающих вопросах.
[23:51:50] <gds> * получалось
[23:52:01] <Kakadu> я имел  ввиду неполучалось написать норм парсер
[23:52:31] <Kakadu> мне же предстоит добавить в AST дерево привязки к исзодникам
[23:55:32] <gds> насчёт внутренней тулзы инрии -- не совсем, масштаб разный.  Но окамл тоже сложный язык (кроме того, что "внутренний язык инрии"), поэтому генерить из него не хочу.  Для реализации использую, разве что, и пока что на нём у меня будет тайпчекер (вплоть до того, что топлевел буду кормить генерируемыми фразами).
[23:57:42] <gds> господа, мне пора спать, "пока меня нет -- можете меня хоть бить", а завтра утром я всё разберу.  Конечно, в моём подходе очень много спорного, и у вас есть возможность высказать мне ВСЁ!
[23:57:48] gds вышел(а) из комнаты
[23:58:02] <Kakadu> пойду как и я спать.
[23:58:07] <Kakadu> да прибует с вами Адун!
[23:58:10] Kakadu вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!