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

GMT+4
[00:24:18] ermine вышел(а) из комнаты
[00:43:53] Typhon_ вышел(а) из комнаты
[00:49:53] Typhon вошёл(а) в комнату
[00:52:47] gds вышел(а) из комнаты
[01:30:41] shaggie вышел(а) из комнаты
[02:42:11] Typhon вышел(а) из комнаты
[06:03:13] delete_ вошёл(а) в комнату
[06:07:45] delete_ вышел(а) из комнаты
[06:50:54] zinid вошёл(а) в комнату
[08:46:59] ermine вошёл(а) в комнату
[09:03:24] <ermine> f[x]: так чего - поднимать гит-сервер, сверлить дырку в файрволле или править зону домена?
[09:33:30] delete_ вошёл(а) в комнату
[09:33:43] delete_ вышел(а) из комнаты
[10:20:31] <f[x]> ermine: аргх
[10:20:40] <f[x]> ну давай тогда домен :)
[10:21:20] <f[x]> 85.17.222.137
[10:22:05] <ermine> уже пора переправлять?
[10:22:44] <ermine> f[x]: я там просто заменю адрес в записи A для camlunity.ru?
[10:22:50] <f[x]> угу
[10:23:08] <f[x]> скидывайте публичные ssh ключи тогда
[10:23:46] <f[x]> ermine: давай тарболл того что сейчас на .ru или сама закоммитишь?
[10:25:56] <ermine> тарю
[10:26:46] <ermine> f[x]: не, комитить такое в таком количестве - это будет ахтунг
[10:27:07] <f[x]> пчу? ;)
[10:27:13] <f[x]> я так и собираюсь сделать
[10:27:21] <ermine> логичнее коммитить скрипт запуска ocamldoc, но я палюбому не помню как запускала и скорее всего криво запускала
[10:33:30] <ermine> переправила адрес
[10:33:55] ftrvxmtrx вышел(а) из комнаты
[10:36:32] <ermine> любые добавления/убавления в домен скажете, если чо надо
[11:11:03] <f[x]> залил
[11:11:30] <f[x]> git@camlunity.ru:camlunity.git
[11:15:30] <f[x]> ermine: ключ даёшь?
[11:19:15] <ermine> а да, заодно и продублировать сайт ведь можно
[11:19:20] ftrvxmtrx вошёл(а) в комнату
[11:19:45] <ermine> осталось сообразить чей ключ
[11:24:24] <f[x]> свой публичный ssh ключ для коммита в git
[11:26:34] <ermine> f[x]: я думала - для синхронизации сайтов
[11:28:10] <f[x]> хм, а что с синхронизацией?
[11:28:26] <f[x]> каким образом и что за ключ тогда?
[11:29:58] <ermine> ну можно качать из репы в репу
[11:30:23] <ermine> а в зону домена вернуть прежний адрес, будет типа два адреса, вот такое вот гит-облачко
[11:30:37] <f[x]> хм, а коммитить куда?
[11:30:52] <f[x]> один должен быть мастер, а второй read-only slave
[11:30:55] <ermine> можно еще стырить навыки с openmirage.org (или .com?)
[11:31:12] <ermine> там чота с облаками для сайтов или не для сайтов, но пофигу
[11:31:23] <f[x]> слишком сложно
[11:32:08] <f[x]> я просто подниму анонимный ro доступ и ключ не нужен, зеркало просто делает pull
[11:32:23] <ermine> ну пусть у тебя мастером будет, а потом посмотрим
[11:32:53] <f[x]> ermine: пробуй коммитить
[11:33:10] <ermine> да че коммитить-то
[11:33:28] <f[x]> ну вообщем доступ есть :)
[11:34:55] <ermine> оно щас клонируется
[11:36:19] <ermine> f[x]: лучше бы смувить корень в каталог корня сайта
[11:36:36] <ermine> ну создать каталог site и смувить всё туда
[11:36:50] <ermine> чтобы можно было времянки снаружи развешивать
[11:37:32] <ermine> например конфиги
[11:37:37] <f[x]> ок
[11:38:10] <ermine> ну давай я вот смувлю, заодно и проверим коммит
[11:38:49] <f[x]> ок
[11:39:57] <ermine> ушло
[11:40:08] <ermine> всё чотко
[11:40:52] <ermine> komar: присоединишься к нам?
[11:40:57] <f[x]> угу
[11:41:20] <komar> шослучилось
[11:41:43] <komar> кто наливает?
[11:41:58] <ermine> komar: очередняя слабая попытка оживить сайт камлунити
[11:42:16] <f[x]> теперь туда можно коммитить!!1112
[11:42:28] <komar> Спасибо, не надо.
[11:44:24] <ermine> komar: а вдруг приделаешь к этому сайтику свой textile?
[11:45:01] <komar> И даркс, ага.
[11:54:44] <ermine> komar: а какие достоинства у даркса? он же написан на х-ле
[11:55:03] <komar> Достоинство у даркса такое, что он мне нравится.
[11:56:26] <f[x]> ТОРМОЗА
[11:57:01] <ermine> недавно одна репа на дарксе зависла на пуллинге, пришлось склонировать заново
[11:58:37] <komar> УМВР
[11:58:47] <komar> Когда не будет работать, выкину нахрен и сконвертирую в git.
[11:59:30] <f[x]> komar: слоупок, все уже прошли этот этап :)
[11:59:42] <komar> Рад за вас.
[11:59:43] <ermine> лучше сделать рано чем поздно - жизнь так коротка, просто жуть
[12:00:23] <f[x]> жизнь коротка, даркс [чекаутит] вечно
[12:05:25] <komar> Именно, что коротка. И когда меня заставят пользоваться MSVS под виндой, я сменю работу.
[12:05:45] <komar> А пока я свободен в выборе инструментов.
[12:12:46] gds вошёл(а) в комнату
[12:16:34] ermine читяет очереднюю пачку статей на janestreet
[12:17:35] <ermine> в одной таки обрадовали наличием некой оптимизации в компиляторе, оно не аллокатит тьюплы в match .. with и последующих инлайновых функциях в бранчах
[12:18:16] <f[x]> ermine: а что, ты замечала эффект от этого?
[12:18:33] <ermine> типа let f x y = match (x, y) with | (0, 0) -> g (x, y) ...
[12:19:23] <ermine> f[x]: от чего? чтения или оптимизации?
[12:19:33] <f[x]> от оптимизации
[12:19:56] <ermine> f[x]: ну хотя бы эмоциональный эффект есть
[12:20:30] <f[x]> гг :)
[12:20:30] <ermine> а то - функция не инлайнится даже, если в ней есть строкова яонстанта!
[12:21:26] komar вышел(а) из комнаты: Replaced by new connection
[12:21:26] komar вошёл(а) в комнату
[12:21:46] <ermine> щас почитаю про функцию return, который не монад, а внезапный возврат из функции
[12:21:50] <ermine> какой-то ужас
[12:34:48] <ermine> gds: ты уже чонить закоммитил в сайт?
[12:35:13] <gds> ermine: нет ещё.  у меня раннее утро пока.  утром разве коммитят?
[12:37:24] <f[x]> ключ давай
[12:37:26] <ermine> gds: спросонья легче совершать великие дела, ибо потом трезвая голова откажется их совершать
[12:46:42] Typhon вошёл(а) в комнату
[12:48:16] <ermine> и его, его к стенке!
[12:49:29] f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Светлое будущее -- http://camlunity.ru/ (теперь с git доступом!) | Нефильтрованное настоящее -- https://github.com/camlunity/kamlo_wiki | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | **ocaml мёртв и тормозит, move on**
[12:49:37] <f[x]> чтобы два раза не вставать
[12:50:29] <gds> однако что именно класть на сайт -- не представляю.
[12:51:15] <ermine> три матёрные буквы в виде картинок
[12:51:28] <ermine> gds: полои туда картинку-логотип
[12:51:33] <ermine> в index.html
[12:51:46] <ermine> которое камло
[12:52:00] f[x] установил(а) тему: Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on
[12:53:22] <ermine> f[x]: caml мёртв, а не ocaml
[12:53:34] <ermine> а ocaml уже просто тормозит
[12:54:05] <ermine> и он это делает после move on
[12:54:21] <ermine> хронологию надо соблюдать
[12:54:57] <f[x]> всё так
[12:59:01] mrm вошёл(а) в комнату
[13:06:19] ftrvxmtrx вышел(а) из комнаты
[13:07:27] <gds> Typhon: что про сигнатуру "передачи-сериализации" скажешь, по идее заведётся?  А то мне чото ссыкотно, а надо уже начинать кодить.
[13:08:02] <Typhon> gds, да вот я вчера добрался почитать, а меня внезапно не пустили, сегодня не читал ещё :-(
[13:08:48] ftrvxmtrx вошёл(а) в комнату
[13:09:25] <gds> ога.  я её перенёс в .mli (ещё не коммитил, хочу .ml написать таки), и вот пометил для себя / для людей, что перенёс.  ну и доступ прикрыл, чтобы не было путаницы.
[13:13:36] Typhon вышел(а) из комнаты
[13:18:14] <ermine> f[x]: добавь уникоду в хттп хидер
[13:18:29] <ermine> а то вижу пяпяпя
[13:19:01] <f[x]> в html charset прописан, что это за кривой браузер?
[13:20:20] <ermine> elinks
[13:20:32] <ermine> ща посмотрю как в w3m
[13:21:39] <f[x]> ужс
[13:21:55] <ermine> там тоже пяпяпя
[13:22:17] <ermine> да и вообще по стандарту мета не оверрайдит ничего
[13:22:35] <ermine> по стандарту дефолтная кодировка 8859-1
[13:23:27] <ermine> так что лучше добавить вхидеры, а мету выкинуть
[13:23:53] <f[x]> добавил
[13:24:11] <ermine> у меты назначение имхо одно - при сохранении хтмля на диск сохранять и указание на кодировку
[13:24:11] <f[x]> meta используется если нет http хэдера
[13:24:32] <f[x]> пусть и то и то будет
[13:25:13] <ermine> ну мне пофигу, лишь бы хидеры соответствовали
[13:35:54] ad1862 вошёл(а) в комнату
[13:39:55] <ad1862> то что он тормозит, это в сравнении с чем ?
[13:43:22] <gds> ad1862: да вообще на shootout посмотри, тормоз-тормозом!
[13:46:22] <ad1862> да вроде тут не согласны http://old.nabble.com/Is-OCaml-fast--td30278460.html, пишут что  более адекватные тесты не принимаются из-за тюнинга (сборщик мусора, ... ) в коде
[13:55:56] <f[x]> ad1862: ключ давай свой
[13:59:59] <ermine> ad1862: в сравнении с самим собой - функции, переданные в аргументах, не инлайнятся!
[14:00:14] Typhon вошёл(а) в комнату
[14:01:03] <ermine> до сих пор в статьях с janestreet по этому поводу ничего позитивного нет
[14:13:02] komar вышел(а) из комнаты
[14:39:02] <Typhon> а где логи чята из темы?
[14:39:17] <Typhon> а, всё, они в камлунити
[14:42:03] <Typhon> а ключи публичные кому слать? ^_^
[14:50:20] <f[x]> Typhon: мне
[14:52:58] <zinid> а lablgtk живое, кто в курсе?
[14:53:10] <zinid> уже gtk3 какбе
[14:53:19] <zinid> а у них только lablgtk2
[14:53:41] <f[x]> достаточно живое
[14:54:12] <ermine> zinid: а у тебя уже gtk3?
[14:54:13] <f[x]> насколько я знаю там никаких принципиальных изменений нет, поудаляли deprecated'ы только
[14:54:20] <zinid> ок
[14:55:27] <ermine> у меня только gtk2.24.5
[14:55:59] <ermine> наверняка свежее чем у всех тут остальных
[14:56:02] ygrek вошёл(а) в комнату
[15:09:04] shaggie вошёл(а) в комнату
[15:09:09] <ermine> хм, в svn lablgth2 последний коммит - в декабре прошлого года
[15:09:29] <ermine> но в мейллисте изредка всё же чота обсуждают более-менее
[15:15:17] shaggie вышел(а) из комнаты: Replaced by new connection
[15:15:18] shaggie вошёл(а) в комнату
[15:19:25] shaggie вышел(а) из комнаты
[15:19:28] <ermine> zinid: кста, хаскильный биндинг к gtk гораздо богаче и мошнее и даже включает в себя gstreamings и многа чего еще
[15:20:07] shaggie вошёл(а) в комнату
[15:20:32] <zinid> ermine: хехе
[15:21:22] <ermine> а на камле даже xmonad не могут перплюнуть
[15:23:25] <zinid> да, судя по плюшкам хаскельный биндинг круче
[15:23:33] <zinid> и нету ООП идиотского
[15:23:41] zinid ненавидит ООП
[15:25:15] ygrek вышел(а) из комнаты
[15:46:29] <f[x]> а что именно ненавидишь в ООП?
[15:49:44] komar вошёл(а) в комнату
[15:50:27] <komar> ermine: зачем нужен xmonad на камле?
[15:51:42] <komar> Несколько лет xmonad’ом пользуюсь и ни разу не было желания его переписать.
[15:53:44] <ermine> komar: дак это говорит о том, что хаскиль круче камла! За родину не обидно?!
[15:54:20] <komar> Пффф.
[15:55:56] <ermine> komar: а ты можешь назвать крутое поделие на камле?
[15:56:32] <komar> vine
[15:57:22] <ermine> аштойта?
[15:58:34] ermine уже смотрит
[15:58:47] <komar> Берешь бинарь, декомпилируешь в промежуточный код ниже ассемблера, составляешь задачу, скармливаешь решателю, получаешь входные данные, которые нужны для того, чтобы попасть в такую-то часть программы.
[16:00:46] <komar> Разумеется, это полная хуйня, а вот очередной dwm форкнуть — это дело жизни.
[16:03:05] <ermine> да кому dwm известен нонче
[16:03:43] ermine читает статью про универсальный тип в камле
[16:03:59] <komar> Вот описание похожего продукта, например: http://www.stanford.edu/~engler/exe-ccs-06.pdf
Для тех. кому многабуков: http://dump.bitcheese.net/images/okodafo/exe.png
[16:04:41] <gds> миленько.
[16:04:51] <gds> ermine: скоро и реализацию почитаешь, сообщу.
[16:05:38] <ermine> да решать бинарь не нужно
[16:05:49] <ermine> достатьчно взять его исходники
[16:05:58] <komar> И нихрена ты нам не увидишь.
[16:06:59] <ermine> gds: ымынского переплюнешь?
[16:07:14] <komar> Нужно будет писать решатель ко всем языкам программирования. К тому же оно будет пропускать чисто ассемблерные уязвимости. К тому же оно не будет видеть кода из библиотек и операционной системы. К тому же закрытые продукты не поломаешь.
[16:07:27] <komar> we need to go deeper
[16:07:39] <komar> Кстати, а чем вам ocsgien не крутой продукт?
[16:07:45] <komar> Отвал башки же.
[16:07:51] <f[x]> aaa, xakep in the hole!
[16:08:58] <komar> f[x]: тебе смешно, а та часть из vine, которая выложена в паблик, ни на что не годится. Зато у них есть целая куча инструментов, которые они пилят под прикрытием этих ваших АНБ.
[16:09:30] <f[x]> дык, кто бы сомневался
[16:09:40] <komar> Сидите и ждите, пока окамлоебы из беркли начнут находить новые удаленные уязвимости за минуты.
[16:09:50] <f[x]> komar is on a dark side
[16:10:28] <ermine> мы все тут ждем когда gds переведет все хаскильные модули на камло 1:1, но с разнообразными знаками препинания
[16:10:40] <gds> no wai
[16:12:16] <f[x]> komar: т.е. это типа автоматизированная ida
[16:12:43] <ermine> форкнутая ида?
[16:13:08] <komar> Это инструмент для иды.
[16:13:21] <komar> Лол, конечно, но самый лучший дизассемблер — это ида.
[16:13:32] <gds> кэп передаёт, что решатель не всегда решит.  Как типичный случай -- какая-нибудь криптография будет, и не угадает vine, какой именно ключ нужно подсунуть.
[16:13:37] <komar> И в закрытой части кода как раз есть импортер дизасма из иды.
[16:14:08] <komar> gds: vine должна угадать, что нужно послать, чтобы ключ уже был не нужен.
[16:14:11] <f[x]> ясно
[16:14:27] <gds> ида неплоха, факт.  только какой-то мудак её развивал изначально, а потом я завязал с ксакепством.
[16:14:41] <komar> Угу.
[16:14:57] <komar> Энивей, это лучший дизассемблер.
[16:16:12] <f[x]> hiew ftw
[16:16:13] <komar> А так как пропуск пары инструкций из-за того, что дизассемблер не справился. в случае автоматизированного анализа смертелен, приходится ее использовать.
[16:16:15] <ermine> а xen весь на камле?
[16:16:29] <komar> Кстати да, про xen все забыли.
[16:16:44] <f[x]> что забыли, у нас страничка в вики есть
[16:17:52] <ermine> зато там про vine наверное ничо нет
[16:18:14] <f[x]> komar, спалишь контору?
[16:18:40] <ermine> gds: ты хоть фирст классы уже используешь или кодишь по старинке?
[16:19:30] <gds> ermine: по-старинке, конечно.  я же слоупок.
[16:19:39] <komar> f[x]: покажи как надо.
[16:20:53] <f[x]> заходишь браузером --> https://github.com/camlunity/kamlo_wiki/blob/master/RealWorld.md и тыцаешь в edit :)
[16:24:42] <gds> ermine: https://bitbucket.org/gds/parvel/src/tip/univ.mli + https://bitbucket.org/gds/parvel/src/tip/univ.ml
[16:25:12] <ermine> gds: гхм!
[16:25:57] <gds> а то!
[16:27:07] <ermine> а, парвел же
[16:27:50] <ermine> gds: перечитай лучше главу 7 мануала по камлу, она же про расширения камла, и начни применять последовательно все технологии из нее подряд в парвеле
[16:28:07] <ermine> приваты, модули, фирст классы, типинги и чо там еще
[16:28:21] <ermine> и камло не хуже 3.12
[16:28:37] <ermine> будет круче чем xen
[16:28:45] <gds> почему это круче?
[16:28:53] <gds> потому что зависимость на новое камло?
[16:29:23] <ermine> нет
[16:29:42] <ermine> имхо там отход от примитивного стиля кодирования к замысловатому стилю
[16:30:05] <ermine> а там глядишь и implicit values легко влезут
[16:30:28] <gds> мне нужен примитивный стиль кодирования.  я не на перле и не на х-е пишу ведь.  ридабилити на первом месте.
[16:31:13] <ermine> ты фактически на х-ле программишь, m >>& f
[16:32:01] <gds> мне так не кажется.
[16:32:10] <ermine> а в 3.3 это наверное будет как let x = m _ in _, поди пойми чо тут к чему
[16:32:22] <ermine> зато круто!
[16:34:10] <gds> обосраться просто.
[16:36:21] <ermine> непонятно пчу имплицитов еще не смержили в транк камла
[16:37:03] <gds> потому что неочевидная штука?
[16:38:41] ad1862 вышел(а) из комнаты
[16:56:06] <f[x]> а знаете ли вы что ...
[16:56:15] <f[x]> ExtString.starts_with делает внутри sub?
[16:56:31] <f[x]> повбывав бы
[16:57:25] <gds> ну, я в коде, который пишу быстро, тоже такое могу себе позволить.  но extlib же.
[16:57:48] <komar> А тут есть розроботчеги extlib’а?
[16:58:03] <komar> А то в прошлый раз писал, так целый год ответа ждал.
[16:58:32] <f[x]> komar: ну я там баги все пофиксил что были
[16:58:54] <f[x]> сделаю релиз и буду дальше фичи пилить и performance
[16:58:54] <komar> А, ну фикси тогда.
[16:59:06] <gds> а где сейчас ведётся разработка extlib'а?
[16:59:08] <f[x]> не от хорошей жизни
[16:59:33] <gds> подомнки будут тебе благодарны, поэтому не _от_ хорошей жизни, а _для_.
[16:59:51] <f[x]> code.google.com/p/ocaml-extlib
[17:01:53] <f[x]> гугл окончательно скурвился, при каждом логине требуют доказательство что я это я
[17:02:07] <ermine> а пчу не на форге?
[17:02:08] <Typhon> смску ещё не требовал?
[17:02:10] <f[x]> > Enter the name of the city or town where I usually sign in
капец
[17:02:22] <Typhon> бтв, я сменил вчера хром на оперу и жить стало легче!
[17:02:34] <f[x]> Typhon: как так?
[17:02:38] <f[x]> быстрее?
[17:02:43] <Typhon> а, да, если с тором ходишь, гугл часто тебя подозревает
[17:02:51] <Typhon> быстрее работает, да
[17:03:07] <Typhon> чтобы гугль аккаунт зарегать сейчас вроде бы телефон нужен, на которую смску шлют
[17:03:09] <f[x]> а, значит он сейчас видит что я без тора и пугается? :)
[17:03:21] <komar> Typhon: приехали...
[17:03:23] <f[x]> ужс
[17:03:36] <Typhon> да, он запоминает последнюю локацию (или самую частую) и если с другого места требует гадостей всяких
[17:03:48] <Typhon> а потом когда с обычного заходишь — тебе орёт, что мол кто-то был!
[17:03:51] <f[x]> пора валить окончательно
[17:04:43] <f[x]> а эти всплывающие превью в списке issues!!
[17:08:59] <komar> О, кстати, соцопрос.
[17:09:16] <komar> Вам когда-нибудь мешало отсутствие юникода в камле?
[17:09:54] <f[x]> в таком широком контексте - да
[17:10:15] <f[x]> в частности то что на винде исопльзуются однобайтовые winapi функции
[17:10:26] <f[x]> а не уникодные плюс конвертация в utf8
[17:17:38] <ermine> komar: что такое юникод в камле?
[17:18:41] <ermine> может тебе надо let я = true?
[17:19:13] <gds> мне -- мешало, но редко.  исключения были несколько раз всего, но тогда я чаще использовал camomile, реже -- писал итерат (один раз) и использовал его (несколько раз) для чтения символов.  Да и вообще, ситуация неудовлетворительная.  Хоть, блин, городи свой модуль String, предоставляющий тип, склейку и больше ничего (в предположении, что ввод-вывод с участием текущих string уже есть).
[17:19:57] <ermine> а в х-ле есть уникод?
[17:20:00] <komar> ermine: не, let я = true мне не надо.
[17:20:43] <gds> а вот всякие юникодные идентификаторы легко налепить сверху.  Достаточно выбрать механизм кодирования юникода на этапе препроцессора и механизм декодирования на этапе парсинга сообщений компилятора.
[17:20:46] <komar> ermine: в какой-то из битстринговой фигни должен быть.
[17:21:42] <ermine> komar: в х-ле почти в каждом проекте можно найти отдельный файлик под загадочным названием utf8.hs, к чему бы это?
[17:22:23] <komar> А черт их знает.
[17:22:49] shaggie вышел(а) из комнаты
[17:23:47] ermine добралась до кода универсального типа gds
[17:24:13] <ermine> gds: вспомнились тут твои рыдания про моноформизм ref, это было по этому поводу?
[17:24:49] <gds> я вроде не рыдал тут.  приведи контекст, не помню чото.
[17:25:18] <gds> и обрати внимание, насколько я кошеризировал кодэ.  одно только название поля temp_contents уже многого стоит!
[17:25:50] <f[x]> продолжаем укадайку
[17:25:58] <f[x]> что быстрее - List.exists или Array.exists?
[17:26:05] <f[x]> * угадайку
[17:26:13] <gds> про ref -- мог упоминать разве что то, что ref не подтипизируется, тогда как отдельные sink/source обязаны подтипизироваться.
[17:26:27] <gds> конечно Array.exists должен быть быстрее.  А так -- хз.
[17:26:44] <f[x]> конечно lol :)
[17:27:27] <f[x]> аллокейтит на 50% больше и за счёт этого медленнее
[17:27:42] <f[x]> о сколько нам открытий чудных готовит профайлера репорт :)
[17:28:05] <komar> Так кто медленнее?
[17:28:20] <gds> но где ты вообще увидел Array.exists?  в extlib?
[17:29:59] <f[x]> угу, ExtArray.exists медленнее
[17:30:38] <gds> а что там аллокейтит?
[17:30:48] <gds> непонятно.
[17:31:37] <f[x]> ещё не смотрел
[17:50:54] <f[x]> жесть, отключаю -g получаю +50% на этом бенче
[17:53:50] <ermine> скажите, гуру камля, а вам приходилось использовать в своем могучем коде что-то типа let rec a = 1 :: b and b = 2 :: a in a?
[17:58:04] <gds> я не гуру, но да, приходилось.  различные циклические структуры иногда удобны.  даже либку для циклических списков асилил.
[17:58:55] <ermine> gds: циклицо на всю жизнь?
[18:00:10] <gds> смотря где.  в целом, функция length там возвращает длину префикса и длину цикла отдельно (цикл=0 -- линейный список, префикс=0 -- чистый цикл (т.е. голова содержится в списке)).  то есть, работа с улитками.
[18:00:58] <ermine> хотя не, непонятно как такой список работает
[18:01:18] <ermine> он ведь не стремится вычислиться сразу
[18:01:19] <gds> он не работает, он существует.  работает же код.  это не х-ь тебе.
[18:02:20] <ermine> ну я про то, что List.hd a не зависает
[18:02:52] <ermine> мож это только в интерпретаторе не зависает?
[18:03:06] <gds> везде не зависает, потому что не должен.
[18:06:44] <ermine> ну вот это пока что не понятно!
[18:06:50] <ermine> список ведь не функция
[18:07:24] <ermine> и, боже упаси, не ленивый список
[18:09:35] <gds> это просто struct list = { hd : value ; tl : value }
[18:11:07] <ermine> gds: кто? list или pseudo list? а как же List.hd дергает эту структуру?
[18:11:33] <gds> а вот так и дёргает -- Obj.field lst 0, считай.  или lst->hd.
[18:11:34] <ermine> надо бы найти и посмотреть куданить поглубже
[18:12:10] <ermine> gds: это даже с любым списком?
[18:12:55] <ermine> ужос, химия везде
[18:12:58] <gds> конкретно это -- с любым.  А вот List.map, например, сама понимаешь....
[18:13:30] <gds> кстати, у меня CycList.map уважает структуру списка.
[18:13:36] <ermine> ща посмотрю что с мапом будет
[18:14:20] <gds> известно что :)
[18:15:48] <ermine> унбоунд валуе а
[18:16:06] ermine впала в замешательство
[18:16:20] <ermine> а не
[18:17:33] <ermine> стацк оверфлов, это уже ближе к телу
[18:18:48] <ermine> gds: а как бы таким макаром сделать список из строки?
[18:19:02] <gds> не понял, зачем.
[18:19:44] <ermine> ради прикола
[18:20:07] <ermine> а может оно и экономнее чем втупую сконвертировать в список
[18:20:31] <komar> ermine: приходилось, но лучше обходиться без let rec ... and ..., особенно в сложном коде.
[18:20:32] <gds> из какой строки, какой список.
[18:21:12] gds afk
[18:21:18] <ermine> komar: вообще без рекурсивных определений?
[18:21:53] <ermine> komar: а почему ты их боишься?
[18:24:36] <komar> Потому что ВНЕЗАПНО вылезает «зис кайнд оф экспрешон из нот алловед он зе райт сайд бла-бла». А почему и как починить — совсем неочевидно.
[18:24:48] <komar> ermine: нет, именно без and.
[18:25:27] <ermine> gds: аналог в Stream.func (fun i -> str.[i]) где-то
[18:26:54] <ermine> komar: а, я видела такое, лечилось добавлением аргументов в нужные места
[18:34:40] <f[x]> ocamlpro таки умеет разворачивать (f x) в (fun y -> f x y)
[18:42:04] <ermine> f[x]: чем компиляешь там?
[18:42:16] <ermine> я на сайте окамлпро не вижу компиляторов
[18:42:30] <f[x]> там есть ссылки на репо на гитхабе
[18:44:44] <ermine> а, вижу, пасиб
[18:45:59] zinid вышел(а) из комнаты
[18:46:23] <ermine> не, там всё сложно
[18:57:57] mrm вышел(а) из комнаты
[18:59:46] mrm вошёл(а) в комнату
[19:09:12] ftrvxmtrx вышел(а) из комнаты
[19:22:06] Typhon вышел(а) из комнаты
[19:24:02] mrm вышел(а) из комнаты
[19:25:20] <gds> komar: если очень хочется, то можно затягивать узлы: http://gds.livejournal.com/57605.html (а библиотека сама описана в http://gds.livejournal.com/57458.html )
[19:52:06] <komar> Академота.
[20:08:35] <gds> У МЕЯ РАБОТАЕТ!111111
[20:41:59] <ermine> komar: академиков - на мыло?
[20:43:00] <komar> ermine: почему же? Хай живут, от них польза бывает.
[20:43:10] <komar> Просто ну вот куда мне вот это вот прилеплять?
[20:43:15] ermine обзавелась двумя арбузами
[20:44:59] <gds> ну как куда -- в рекурсивные структуры данных.  Если есть желание.  И на этапе проектирования, скорее.
[20:45:08] <ermine> komar: ну мне тоже не светит путь ни в профессора, ни в академики, даже ни в сколь-нибудь соображающего специалиста
[20:46:33] <gds> ГРЫЗТЬ АРБУЗ @ ПИСАТЬ РОВНО
[20:48:28] <ermine> ударение на каком слоге?
[20:56:30] ygrek вошёл(а) в комнату
[20:57:07] ygrek вышел(а) из комнаты: Replaced by new connection
[20:57:14] ygrek вошёл(а) в комнату
[21:14:26] f[x] вышел(а) из комнаты
[21:38:35] mrm вошёл(а) в комнату
[21:54:36] mrm вышел(а) из комнаты
[22:13:36] ermine нашла, что и ымински тоже ставит крестик на camlp4
[22:14:02] <ermine> неужто эпоха крутого camlp4 закатилась
[22:14:42] <ermine> непонятно, радоваться или грустить, но мне скорее второе более подходящим кажется
[22:15:53] <ermine> придется переписывать своего полиглота
[22:15:57] <ermine> эх!
[22:16:19] ermine всплакнула в жилетку gds
[22:18:49] <gds> да я даже camlp4 не знаю!  однако и не стараюсь.  однако и мынский не авторитет, ибо мнения разные есть.  я, вон, json-static использую и рад вполне.
[22:20:44] <komar> Как будто camlp4 кому-то мешает.
[22:20:50] <komar> Не нравится — не ешь, хосспади.
[22:20:51] <ermine> gds: ну я сначала у алайна фриша прочитала про отход от camlp4, теперь вот второй раз вижу уже у другого чувака, к чему бы это!
[22:21:32] <ermine> а вообще это в статье про будущее ocamlpro, там говорится про подход кодогенератора в sexlib и bin-prot, надо будет посмотреть в bin-prot
[22:22:41] <ermine> у алайна - через дополнительный аргумент компилятора -ppx, надо изучать parsetree.ml из кода камла и компилять свой модуль и вешать на тот аргумент
[22:22:48] <gds> ну правильно вот, что отходят.  всё решать синтаксическими расширениями -- уныло.  например, там типы неизвестны.  кроме того, это получается другой язык, который тоже надо изучать.  ведь в проектах и другие люди работают.
[22:23:43] <ermine> gds: без синтакстических расширений дело не обойдется :)
[22:23:54] <ermine> и не надейся
[22:24:33] <ermine> вот интересно, что будет с ревизедом (в сторонку: гы-гы)
[22:24:49] <gds> у меня -- чисто стандартные, revised syntax, json-static, и всё.
[22:26:13] <ermine> json точно перепишут
[22:26:46] <gds> ту копию кода, которую я использую, на моём винте никакая скотина не перепишет.
[22:28:52] <ermine> сам будешь переписывать!
[22:29:57] <ermine> ибо это type-driven macros
[22:44:01] <gds> какой нафиг type-driven?
[22:47:35] <ermine> у json сплошные типы
[22:48:05] <ermine> а макросы пойдут в -ppx, match json with | String @@ smth -> ..
[22:48:19] <ermine> как-то там
[22:49:22] <gds> надо почитать про -ppx.  однако не сейчас.  сейчас не могу собрать в голове картину так, чтобы из Univ дойти до моей "передачи-сериализации".
[22:50:10] <ermine> у алаина
[22:50:41] <ermine> а я читаю всё подряд и тут бросаю на вентилятор :P
[22:51:41] <ygrek> во-во, в последнее время набросов больше чем коммитов :)
[22:52:37] <ermine> а коммиты вообще были?
[22:53:12] ermine перешла к следующей статье
[22:54:03] <gds> коммиты?  нет, ermine, это фантастика.
[22:54:43] <ermine> а то
[22:54:53] <ermine> осталось где-то 50 статей проверить
[22:55:16] <gds> и первоклассные модули ну прямо хз кто коммитил.
[22:55:58] <ermine> не поняла сарказма
[22:56:34] <gds> не анал прыщ?  вроде он.
[22:57:44] <ermine> неужели ты его так ненавидишь?
[22:57:50] <ermine> o_O
[22:58:00] <gds> наоборот, уважаю.
[22:58:14] <ermine> крутой же мужик, я ему даже несколько раз писала с багрепортами! он всё учёл!!!
[22:58:23] <ermine> включая ulex
[22:58:52] <gds> я тоже с ним говорил про баги.  он чоткий.
[22:59:59] <ermine> пусть скорее его имплициты вмержат
[23:00:30] <ermine> тогда отпадут все эти глупые реализации универсального типа
[23:01:13] <gds> оба раза не.
[23:01:26] <gds> implicit values -- спорная штука.
[23:01:44] <gds> универсальный тип -- штука понятная, тупая, и от implicit values не зависящая.
[23:01:44] <ermine> гадт с имплицитами же будет круто!!!
[23:02:14] <ermine> гадт уже есть, там динамические типы как-то пашут забавным способом
[23:02:15] <gds> ололололо обосрёмся вместе говно понос implicit values круто!11111
[23:03:10] <gds> в gadt типы очень даже статические.  там -- вполне тупо.  упоминал как-то, что они -- это всего лишь конструкторы, ограниченные конкретным типом, и поддержка со стороны матчинга, ограничивающая тип.
[23:03:45] <ermine> да я поняла, что статические
[23:03:53] <ermine> но ембедить же можно
[23:04:08] <ermine> не через заднюю ногу в виде рефов или рекордов
[23:04:26] <ygrek> implicit'ы реально очень стрёмная штука, судя по описанию
[23:05:06] <ermine> ну если в скале их уже есть, и никто не плачется...
[23:06:14] <gds> ну давай, для примера, реализуй такую штуку.  Есть код, знающий реальные типы.  Как отправляющая сторона, так и принимающая.  Есть необходимость всовывать туда полутипизированный json.  Есть необходимость передавать значения этих типов между процессами.  Куда, мать их, вставить gadt, implicit values и прочую хрень, чтобы это достичь?  ermine, подскажи.
[23:10:58] <ermine> gds: сначала надо дочитать туториалы, включая gadt for dummies где-то на хаскельном сайте
[23:11:20] <gds> ох лол.  вперде.
[23:11:26] <ermine> а еще до TH я не добралась пока
[23:12:29] <ermine> ну как еще можно ответить, не выходя из своего образа?
[23:15:26] <gds> вообще странно.  конференция про строгий язык, а тролли какие-то ленивые.
[23:17:03] ermine еще пытается уловить идею использования фантомных типов вместо sum типов
[23:17:48] <ermine> строгий язык? ни разу не строгий
[23:18:44] <ermine> gds: могу совсем уйти отсюда, если чо
[23:19:04] <ermine> будет тут совсем строго, чинно и чисто
[23:21:53] ygrek вышел(а) из комнаты: Replaced by new connection
[23:21:55] ygrek вошёл(а) в комнату
[23:22:49] <gds> язык -- со строгой моделью вычислений (в противоположность ленивой).
[23:23:47] <ermine> ну если strict, то да, не возражаю
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!