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

GMT+4
[00:01:01] Typhon вошёл(а) в комнату
[00:56:23] Typhon вышел(а) из комнаты
[01:05:00] Kakadu вышел(а) из комнаты
[03:17:49] shaggie вышел(а) из комнаты
[03:23:59] Typhon вышел(а) из комнаты
[03:29:16] ygrek вышел(а) из комнаты
[04:05:12] komar вышел(а) из комнаты
[04:05:26] komar вошёл(а) в комнату
[05:06:04] letrec вошёл(а) в комнату
[10:28:40] Kakadu вошёл(а) в комнату
[11:35:22] Savik вошёл(а) в комнату
[12:23:34] komar вышел(а) из комнаты
[12:48:41] ermine вошёл(а) в комнату
[13:26:46] Savik вышел(а) из комнаты: Disconnected: connection closed
[13:32:09] komar вошёл(а) в комнату
[13:45:32] shaggie вошёл(а) в комнату
[14:01:37] bobry вышел(а) из комнаты
[14:02:49] letrec вышел(а) из комнаты
[14:04:52] bobry вошёл(а) в комнату
[14:04:54] letrec вошёл(а) в комнату
[14:46:57] komar вышел(а) из комнаты
[15:02:53] Typhon вошёл(а) в комнату
[15:21:42] <gds> а вот чтобы сделать и гадты, и подтипизацию, нужно из олеговского Eq убрать symm, так как оно несимметрично, и заменить на что-то наподобие http://paste.in.ua/3672/ , но не знаю, поможет ли это глобально, и будет ли удобно.
[15:30:47] f[x] вошёл(а) в комнату
[17:02:42] <gds> хнык хнык, меня (как оказалось, ленивого студента), тгавют :[[[  http://nicka-startcev.livejournal.com/1433315.html?thread=4484579#t4484579
[17:04:23] klapaucius вышел(а) из комнаты
[17:05:06] <bobry> в ядре кстати вполне себе ооп :)
[17:05:57] <bobry> gds: это ваще шо за пацан? 20 лет на си
[17:06:10] <gds> хуже, это тёлка.
[17:06:35] <gds> кстати, не сомневаюсь, она уже 80 лет в интернете.
[17:06:36] <bobry> да лана? омг
[17:06:58] <gds> тёлка, но не женщина.
[17:07:14] <bobry> судя по стилю общения именно так :)
[17:08:14] <gds> соответственно, когда становятся видны проколы, начинается классическое бабское псение.  Да вообще, её не сравнить с нашей ermine, которая женщина, но не тёлка.
[17:08:39] <bobry> :)
[17:11:53] <f[x]> gds: ты должен быть толерантней к сишникам
[17:12:05] <f[x]> у них и так жисть тяжёлая
[17:13:09] <gds> так я и так толерантен, мне вот только эти парады в каментах не нравятся.
[17:14:04] ermine делает вид, что спит
[17:20:22] <ermine> а что за бабень-то? где?
[17:20:39] <gds> ermine: ага, проснулась! :]  см. ссылку выше.
[17:20:51] shaggie вышел(а) из комнаты
[17:20:52] <ermine> нас так мало, что нас всех надо беречь, пока не научились размножаться как тараканы
[17:23:11] <gds> женщин -- беречь, тёлок -- опускать.  что-то не так?
[17:25:26] ermine кстати не верит ни в юнит тесты, ни в баготестилки, код надо генерить автоматически, как уже давно заявляли - кодописательство уже более не искусство, а тупое занятие
[17:25:58] <gds> кстати вот, про тараканов сходу вспоминается доброе: http://www.youtube.com/watch?v=k9T_QHHH3Tc
[17:26:25] <gds> ermine: код автоматически надо генерить тоже из кода.  а его писать тоже надо.  и генерилку писать надо.
[17:26:47] ermine ушла в магаз за сникерсом
[17:28:07] <ermine> gds: большинство инструментов и технологий (ну или практически всё) придуманы мужиками, а деглюкивают их обычно женщины, ты заметил? :)
[17:28:40] <gds> не очень заметил.  женщин в деле мало, статистики собрать не смог.
[17:29:02] <ermine> это не про комьютеры, а вообще
[17:34:09] Andrey Popp вошёл(а) в комнату
[18:40:58] f[x] вышел(а) из комнаты
[18:41:16] f[x] вошёл(а) в комнату
[19:08:11] <bobry> Kakadu: а ты выяснил что там за :_ в послденей статье janest
[19:13:08] <Kakadu> bobry: ygrek говрит что опечатка
[19:13:47] <bobry> какое то расширение было с похожим синтаксисом
[19:13:56] <bobry> вот только какое именно .. gds?
[19:40:22] <gds> bobry: не интересовался, но там всё в целом понятно.
[19:41:13] <bobry> http://www.youtube.com/watch?v=9p1yBlV7Ges черт какая клевая штука
[20:13:56] <ermine> сникерс хорош, но пока непонятно что делать с параметрической продукцией парсинга
[20:15:14] <bobry> сникерс слишком сладкий
[20:15:15] <bobry> <_<
[20:15:57] <gds> ermine: а расскажи, как это получается, что ты бегаешь за сникерсами, а вечера коротаешь с бейлизом?
(если чо, у меня с "параметрическими типами", в том числе с "продукцией", тоже беды сейчас, могу только пожалеть, но не помочь.)
[20:17:31] <ermine> gds: бейлиз уже кончился, а до него предыдущий бейлиз был по-моему прошлой весной
[20:17:56] <gds> умеренность уважаю.
[20:18:14] <ermine> так что не получается регулярно коротать вечера с бейлизом
[20:26:37] <ermine> а давайте лучше программить для андроида, выставлять приложения в маркете и загребать бабки!
[20:26:45] <ermine> на java надо валить
[20:32:44] <ermine> хм, и конфа android@ активная и даже многолюдная есть
[20:39:19] <Kakadu> ocamljava вроде тоже есть
[20:42:15] <ermine> на сайте андроида написано, что gcj не совместим с андроидом
[20:42:23] <ermine> а чем ocamljava компилит?
[20:42:48] <Kakadu> я хз
[20:43:33] <gds> вроде собой компилит.
[20:44:47] <ermine> собой - это гнусью
[20:45:49] <gds> не факт.  как минимум, парсилку они сделали, если я правильно прочитал.
[20:46:03] <gds> парсилку жабьего байткода.
[20:54:54] <bobry> gds: а как твой sh dsl?
[20:55:03] <gds> с геморком.
[20:55:35] <bobry> застрял?
[20:56:44] <gds> барахтаюсь.  нужны гадты, только непонятно, как.
[20:57:30] <ermine> что за дсл ш?
[20:57:32] <bobry> а зачем они тебе?
[20:57:45] <ermine> будет gds вместь bash?
[20:58:18] <ermine> c волшебными автокомплитами и штучками из Plan9
[20:59:58] <ermine> насочинят мужики новых глючных инструментов...
[21:00:30] <bobry> может сделать поле requires для dep?
[21:00:33] <bobry> Dep foobar git "http://foo.bar/source.tar"
    Requires some, other, packages
[21:00:48] <bobry> и перед сборкой проверять у проекта наличие brb.conf?
[21:00:54] <bobry> и читать оттуда requires? :)
[21:01:01] <bobry> и делать toposort?
[21:01:02] f[x] вышел(а) из комнаты: Computer went to sleep
[21:01:56] <ermine> я бы депендсы и источники поделила на разные таблицы
[21:02:25] <ermine> а сразу депендс и источник - только в случае перезаписывания
[21:02:26] <bobry> ща gds скажет что это не практично ..
[21:02:43] <bobry> было бы чисто сказать что все депсы у нас только в репозиториях
[21:03:07] <bobry> а в brb.conf просто указание подключаемых репозиториев + список зависимостей (тобишь рецептов, которые надо найти  этих репозиториях)
[21:03:15] <ermine> bobry: да, он меня давно уже не любит и высмеивает все мои странные хотелки в коде!
[21:04:01] <ermine> bobry: да нафига нужен brb.conf? он отдельно для каждого проекта или для всех проектов сразу?
[21:05:25] <ermine> блин, и инсталлера андроида под макосью нет гламурного, чтобы показывал красивые диалогошки, так нет, надо руками unzip делать и что-то переносить куда-то руками
[21:06:08] <bobry> ermine: отдельно для каждого
[21:08:03] <ermine> bobry: ну давно пора сделать на сайте камлунити базу урлов либл и разных проектов для установки в качестве депендсов и обновления
[21:08:21] <gds> bobry: requires -- что-то подобное нужно, так как статически не выяснить, что нужно.  (например, какой-нибудь аналог lwt может собираться с нужной либой, а может молча "заваливать" функциональность при configure, и проще будет указать "для этой либы, если я её использую, нужна такая-то другая либа").
[21:08:24] <ermine> в sqlite
[21:09:04] <ermine> если куча проектов хотят type-conv, то я не дура, чтобы в каждом отдельно писать ep type-conv http://...
[21:09:08] <bobry> ermine: sqlite не человекочитаем, я за fs
[21:09:18] <bobry> но в том или ином виде база рецептов была бы полезной
[21:10:35] <gds> bobry: рецепты -- да, полезны.  Но смотри сам, как их оформить.  Дело в том, что сегодня меня еле хватит на шелл, а там ещё конь не валялся, завтра у меня будут дела по поводу json over http, а потом внезапно потребуют парвел на кучу процессов.  Поэтому давайте как-нибудь с моим минимальным участием.
[21:11:02] <bobry> причем если запилить репозитории то можно считать что если элемент из Requires не указан явно через Dep -- надо вытащить его рецепт из репозитория
[21:11:24] <bobry> Kakadu: у тебя как там сессия?
[21:13:21] <ermine> он же на пятом курсе?
[21:13:30] bobry не в курсе :)
[21:13:34] <ermine> диплом обычно летом сдают
[21:13:57] <Kakadu> bobry: философия 23го
[21:17:16] <bobry> альтернативно мы можем разрешить собирать только brb проекты
[21:17:23] <bobry> в erlang камьюнити это сработало
[21:17:32] <bobry> и ребар отказывается собирать зависимость без rebar.config
[21:17:45] <bobry> в итоге во все основные проекты его уже давно запилили
[21:22:15] <gds> не сравнивай ребар и наше поделие.  у них вообще ничего не было, вроде бы.  в камле же есть всякие медленные (в плане развития) альтернативы.
[21:22:47] <bobry> у них был emake
[21:22:51] <bobry> как и у все пасанов
[21:22:54] <bobry> omake
[21:22:55] <bobry> rake
[21:22:57] <bobry> cake
[21:24:55] <gds> bobry: а тут -- godi, oasis-db, odb, какой-то ocamljew, и все они выполняют похожие дела.
[21:25:59] letrec вышел(а) из комнаты
[21:27:07] <bobry> gds: кстати, я же правильно понимаю что твой shell dsl позволит транслировать наш brb.conf в баш скрипт?
[21:27:57] <gds> я беру только Install.makefile.  Конечно, расширения возможны.  Вплоть до всей (почти всей) барбры.  То есть, даёшь на вход заранее заданные значения и огребаешь скрипт.
[21:28:18] <gds> парсинга brb.conf не будет точно.
[21:32:21] <bobry> gds: я не об этом, можно ли написать этот dsl так, чтобы весь процесс установки можно было сгенерить по brb.conf
[21:32:28] <gds> existential типов не хватает.  не могу нормально выразить, что в случае, когда t 'a является списком как бы констант (конструктор List), он должен иметь тип
type t 'a = [ ... | List of (exists 'b = list 'a) . 'b ]
а type constraints делают дело на уровне типа, то есть, мимо.
[21:33:52] <gds> bobry: скорее всего таки можно.  Мы же только шелл дёргаем, ну и простые вещи всякие в логике (в go ()).  Это можно переделать несложно.  Но нужно знать, что точно нужно.  Для трансляции в шелл это важно.
[21:34:09] <bobry> "что точно нужно"?
[21:34:19] <gds> какая логика, какой control flow.
[21:34:29] <bobry> мм
[21:34:54] <gds> я бы удолбался всё камло в шелл транслировать.  ты бы тоже.
[21:35:54] <bobry> :D
[21:36:08] <bobry> это я так подумал, из разряда "было бы круто"
[21:37:37] <gds> с другой стороны, вполне можно переписать логику так, чтобы легла в дсл (конечно, дсл надо будет расширить, а логику кое-как упростить), но задача очень даже реальна.  Более того, мне в других задачах тоже нужно шелл генерить.  А то взялся бы я иначе, хренушки.
[21:41:05] <bobry> корыстный gds .. :)
[21:41:12] <gds> вообще, про упрощение логики, потому и хочу только Install переписать -- там и не сложно, и там и полезно для бандлов.
[21:43:04] <gds> так вообще, во всех задачах надо искать что-то общее, что нужно везде и всегда.  Лёгкая на..ка работодателя, зарплата и гпл-либа -- что может быть лучше!  (ну, на..ывать вообще нехорошо, поэтому я заранее говорю о лицензии.)
[21:43:53] <bobry> gpl? бее
[21:44:01] <bobry> фашистскую лицензию то зачем приплетать
[21:45:11] <gds> ну, lgpl.  копромисс между работодателем и работником.  типа, "если кто-то будет коммерчески использовать-модифицировать -- ахтунг".
вообще, про опенсёрс как бы думал.
[21:45:16] <gds> про гарантированный.
[21:59:00] ermine ставит андроида
[21:59:15] <ermine> буду учить жабубубу
[21:59:54] <ermine> а насчет gpl - только не третий
[22:01:30] <Kakadu> А на андроид можно qml приложения пихать?
[22:02:34] <ermine> там только delvtk
[22:03:30] <Kakadu> чой та?
[22:04:03] <ermine> gui
[22:04:38] <Kakadu> не гуглится
[22:04:49] ermine погуглила по qml for android и смеется
[22:05:18] <ermine> там сплошный ютуп
[22:06:02] <ermine> наверное таки придется поглядеть что такое qml
[22:06:22] <Kakadu> Qt для ведроида видимо в альфе
[22:08:16] <bobry> что-то нестройно как-то получается, мы полностью игнорируем что у проекта мб свой brb.conf, в котором уже есть все зависимости -- в этом случае никакой Requires не нужен
[22:08:22] <ermine> Kakadu: давай не забывай тренироваться на lablqt
[22:08:48] <ermine> на кошках, так сказать
[22:09:02] <Kakadu> ermine: там демотивирование на тему того "хз как это сделать, lablqt будет кастрированный по-любому"
[22:09:19] <Kakadu> вот бы qml скрестить
[22:09:29] <gds> bobry: складывать их надо.  мало ты х-ем пользуешься, про моноеды знать должен!
[22:10:11] <bobry> gds: мне бы хотелось чтобы в барбаре был один способ сделать что-то
[22:10:15] <bobry> а не 100500
[22:10:27] <bobry> моноеды как раз вчера пользовал по работе -- в курсе угумс
[22:11:17] <gds> бери случай lwt или подобной либы, где в configure проверяют, есть ли какая-то зависимая либа.  фактически, для компиляции-установки дополнительные либы не требуются.  а для использования -- ещё как нужны.
[22:12:05] <gds> ну, с lwt не знаю, вроде там сишное требуется.  но вообще взаимные и, вдобавок, опциональные зависимости -- не такая уж невиданная штука.
[22:12:06] <bobry> мм
[22:12:09] <bobry> ты прав
[22:12:26] <bobry> т. е. часть зависимостей будут в рецепте, а часть в brb.conf
[22:12:27] <bobry> <_<
[22:13:04] <gds> бОльшая часть -- в рецептах.  редкие извращения, но нужные (например, опции configure) -- в brb.conf.  мать его так.  но это нужно.
[22:14:53] <bobry> может реально зафорсим brb-only проекты?
[22:15:01] <bobry> или тупо никто пользоваться не станет?
[22:15:22] <gds> попробуй зафорсить.  там поглядим.  если что, можно будет расширить.  играйся, чо :)
[22:15:45] <gds> на худой конец, патчи есть, ими довнести brb.conf можно.
[22:16:16] <gds> тоже вариант, но чем-то не нравится.  наверное, тем, что нужно будет для определения зависимостей сначала скачать-распаковать-пропатчить, и только потом узнать.
[22:16:26] <bobry> кстати клево было бы генерить brb.conf по oasis
[22:16:30] <gds> ну и хз как задать опциональные зависимости.
[22:16:51] <bobry> brb init допустим кушал бы _oasis и выдавал прикидку для brb.conf
[22:17:02] <bobry> силами ocamlfind'a
[22:18:25] <ermine> можно парсить меты (хотя gds точно не одобрит)
[22:18:31] <gds> хз, думай.  попробуй пока поставить небольшие цели, через которые можно будет достигнуть большие.
сейчас есть дела (и реаллайф в том числе), поэтому сегодня без меня пока.
[22:18:50] <bobry> ermine: меты наверное окамлфайнд умеет парсить
[22:20:05] <ermine> bobry: а чтобы составить понятие, кого надо пересобрать из-за обновления депендса - придется многа раз вызывать камлофинд, наверное
[22:20:30] <ermine> вместо того чтобы просто пройтись по всем поддирам site-lib и собрать сведения из файлов мета за один проход
[22:20:39] <bobry> ermine: у нас пока с этим все тупо -- каждый раз пересобирается все
[22:20:43] <gds> ermine: в барбре нет нужды пересобирать.
[22:21:14] <ermine> gds: это плохо
[22:22:21] ermine в глубокой печали
[22:22:47] <ermine> cabal - реально полезная штуковина
[22:22:57] <ermine> кроме сборки, умеет и обновления
[22:23:02] <ermine> а собирать все горазды
[22:23:08] <bobry> ermine: ты много им пользовалось?
[22:23:25] <gds> вроде нарулил
val of_list : 'a list -> 'a list t
val append : 'a list t -> 'a list t -> 'a list t
, но страшно дальше.
[22:23:47] <bobry> я вчера нашел у него клевую фичу, он легко ставит *две* версии библиотек, и дает тебе возможность насладиться получившимся конфликтом по полной
[22:23:58] <bobry> ни говоря ни слова в процессе установки
[22:24:47] <bobry> gds: а может мы Res выпилим в пользу более простого catchall в main?
[22:25:06] <ermine> ну вот когда не было type-conv 3.0.4 - приходилось ставить разные type-conv для разных проектов, шож тут делать-то
[22:25:21] <ermine> в ручной работе тоже нет счастья
[22:25:26] <bobry> ну да
[22:25:34] <bobry> а теперь у тебя есть барбара!
[22:25:52] <ermine> так что лучше уж все пересобирать
[22:25:57] <ermine> иначе все сломается
[22:26:25] <ermine> сейчас я пересобираю то, что сломалось из-за обновления, причем не всегда очевидно почему сломалось
[22:26:39] <ermine> ну нафиг мне такие умственные напряги
[22:27:35] <ermine> а просто сборка, которая просто умеет вытягивать из возжуха нужные депендсы - не нужный софт на самом деле
[22:28:10] <bobry> ermine: почему?
[22:28:38] <Kakadu> ermine: мы тут сформулировали в каком месте с lablqt будет всё плохо. https://github.com/Kakadu/lablqt/wiki/Inheritance-problem-with-mixed-C%2B%2B-OCaml-object-model
[22:29:59] <bobry> ermine: кстати с добавлением requires пересборка поменявшегося станет реальной
[22:36:13] <ermine> bobry: ну вот ставим через барбу новый оазис, который хочет type-conv 3.0.4, а стоит у меня 2.3, шо будет?
[22:36:24] <bobry> все будет ок
[22:36:33] <bobry> type-conv поставится в <project-dir>/_dep
[22:36:37] <ermine> правильно, ничего не будет полезного, всё сведется к ручной пересборке и сборке самого оазиса
[22:36:48] <bobry> в смысле ручной?
[22:37:43] <ermine> bobry: для каждого приложения свой отдельный type-conv?
[22:38:11] shaggie вошёл(а) в комнату
[22:38:32] <bobry> ermine: пока да, но в планах виртуальные окружения
[22:38:59] <ermine> bobry: а куда оазис поставит свою либлу?
[22:39:08] <ermine> тоже в отдельный загашник?
[22:39:21] <ermine> и потом мучаться со сборкой из разных site-lib
[22:39:33] <ermine> ну спасибочки
[22:39:42] <bobry> кстати поставит он ее тоже в _dep
[22:39:58] <bobry> ermine: вноси конструктивные предложения :)
[22:42:40] <ermine> bobry: научиться для начала обновлять и пересобирать
[22:43:59] <ermine> сейчас вылезет из своей норы gds и скажет, что это ему для оверьлюда не нужно
[22:44:34] <bobry> чтобы научиться обновлять и пересобирать надо запилить отслеживание зависимостей
[22:44:48] <bobry> а для них в свою очередь требуются репозитории рецептов
[22:46:21] <ermine> рецепты в _oasis в основном
[22:46:33] <ermine> самые авторитетные, если авторы вменяемые
[22:47:52] <bobry> ну да, поэтому и хотелось бы уметь генерить их по _oasis
[22:47:54] <ermine> ладно
[22:48:13] <ermine> вообще на это уже есть godi
[22:52:36] shaggie вышел(а) из комнаты
[23:22:17] komar вошёл(а) в комнату
[23:23:17] ermine вышел(а) из комнаты
[23:36:28] <bobry> кто нибудь собирал новый odn?
[23:44:20] <bobry> что-то я туплю, у меня есть proplist представление record'a, как мне из него собрать record? первое что приходит в голову -- затолкать все поля в hashtbl / map и просто делать find в нужно месте
[23:44:24] <bobry> мб можно как нибудь лучше?
[23:55:30] <bobry> fucking bravo, синтаксис для first class modules конечно совсем нечеловеческий
[23:55:51] <gds> bobry:
> Res выпилим в пользу более простого catchall в main?
если тебя не волнует чистота внутреннего апи (а вроде не волнует), то выпиливай.
[23:55:52] <bobry> # module M = Map.Make((val (module String : Map.OrderedType) : Map.OrderedType));;
[23:56:24] <bobry> gds: я ведь правильно пишу -- там дважды надо сигнатуру накладывать?
[23:56:43] <bobry> насчет чистоты, ну оно конечно чисто, но уж больно уродливо в камле с манатками
[23:56:45] <bobry> и без do
[23:59:15] <bobry> и скобочки обязательно двойные
[23:59:19] <bobry> чем там эти французы думали
[23:59:21] <bobry> :-!
[23:59:33] <gds> про манатки -- "У тебя больной, искажённый взгляд на мир.".
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!