Home
Objective Caml
ocaml@conference.jabber.ru
Понедельник, 7 сентября 2009< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap
Конфигурация комнаты

GMT+4
[00:12:01] <inky-kinky> Ладно. Я попробую придумать что-нибудь. Спасибо всем за помощь.
[00:12:05] inky-kinky вышел(а) из комнаты
[00:25:01] Michael Holub вошёл(а) в комнату
[01:13:36] ygrek вышел(а) из комнаты
[04:24:47] Michael Holub вышел(а) из комнаты
[09:53:52] ygrek вошёл(а) в комнату
[10:03:07] Typhon вошёл(а) в комнату
[10:23:04] Typhon вышел(а) из комнаты
[10:23:58] Typhon вошёл(а) в комнату
[10:47:55] sevenov вышел(а) из комнаты
[10:50:22] sevenov вошёл(а) в комнату
[11:04:15] f[x] вошёл(а) в комнату
[11:18:58] Typhon вышел(а) из комнаты: Replaced by new connection
[11:19:22] Typhon вошёл(а) в комнату
[11:42:11] Mon вышел(а) из комнаты
[11:42:17] Mon вошёл(а) в комнату
[12:59:44] Mon вышел(а) из комнаты
[12:59:49] Mon вошёл(а) в комнату
[13:17:57] ygrek вышел(а) из комнаты
[15:43:23] ygrek вошёл(а) в комнату
[15:43:23] inky-kinky вошёл(а) в комнату
[15:50:45] inky-kinky вышел(а) из комнаты
[15:52:31] inky-kinky вошёл(а) в комнату
[15:54:17] inky-kinky вышел(а) из комнаты
[15:55:04] inky-kinky вошёл(а) в комнату
[16:06:02] inky-kinky вышел(а) из комнаты
[16:59:39] 604 вошёл(а) в комнату
[17:06:04] inky-kinky вошёл(а) в комнату
[17:52:15] inky-kinky вышел(а) из комнаты
[17:53:14] ygrek вышел(а) из комнаты
[18:14:00] Mon вышел(а) из комнаты
[18:15:24] Mon вошёл(а) в комнату
[18:17:15] Typhon вышел(а) из комнаты
[18:32:25] inky-kinky вошёл(а) в комнату
[18:59:11] Mon вышел(а) из комнаты
[18:59:49] Mon вошёл(а) в комнату
[19:14:08] john вышел(а) из комнаты: Replaced by new connection
[19:14:09] john вошёл(а) в комнату
[19:16:56] inky-kinky вышел(а) из комнаты
[19:18:26] inky-kinky вошёл(а) в комнату
[20:04:13] ygrek вошёл(а) в комнату
[20:16:27] inky-kinky вышел(а) из комнаты
[20:17:05] inky-kinky вошёл(а) в комнату
[20:24:28] inky-kinky вышел(а) из комнаты
[20:28:04] <gds> господин Белый в рассылке поднял старую и вполне уже обсосанную тему про размер. Конечно, лично для меня размер не имеет значения, но есть пуристы.
http://caml.inria.fr/pub/ml-archives/caml-list/2005/11/048f8f60868cf31d27d7fd66e3914023.en.html
если на уровне чисто модулей разгребать, то решение видится на отличненько. Даже когда-то ковырял это дело, когда было важно (но потом понял, что не настолько важно). Но вот не вникал, как представлены в рантайме функторы и rebind'ы модулей (module U = Unix), и насколько сложны манипуляции там.
С помощью статического анализа исходников (если понять, как прослеживать функторы) можно было бы слепить штуку, где флагом будет "используется ли функция где-нибудь", флаг протаскивать по простым правилам, а потом, на основании данных этого анализа посредством того же camlp4 выкидывать ненужное из исходников.
[20:31:31] <ermine> мужики меряются размерами
[20:34:25] <gds> ну а чем ещё -- не мозгами же, в самом деле.
[20:35:25] <ermine> голый let _ = () генерит куда больше кода чем пустое main() {}
[20:35:56] <ermine> это даже раздражает
[20:39:35] <gds> меня -- не очень, как уже отметил. Тебе вроде важен размер -- помню, RES'ом мерялась как-то.
Мысль скорее о том, что неплохо бы иметь хреньку для анализа кода и расстановки флагов/атрибутов на разных уровнях кодогенерации. Хотя тут даже camlp4-уровень подошёл бы, если прикидывать сходу.
[20:42:59] <ermine> мне казалось, что это проблемы линкера
[20:43:10] <ermine> пусть вяжет нужные функции, а не все подряд
[20:53:42] <gds> теперь, после прочтения треда в рассылке, уже так не кажется?
[20:54:52] <ermine> лениво читать
[20:55:05] <ermine> я мейллист вообще почти не читаю
[20:56:25] <gds> ок!!111111
[20:58:27] <ermine> точнее, просматриваю CWN
[21:05:12] <gds> ну ладно, этой идее сто лет в обед (ну, фактически, чуть меньше, да), и столько же ещё пролежит.
тогда другое дело, пацаны и девчонки. Есть какой-нибудь непростой ocamllex-лексер, с тестировочным материалом, опционально с генераторами текста на его вход? Хочу проверить корректность выкладок касаемо лексера на чём-нибудь серьёзном -- на хитром лексере, на больших объёмах данных, всё такое.
[21:07:04] <ermine> а размер бинарника сульци скоро перевалит за 4 мб :)
[21:07:48] <gds> batteries туда добавь! "и чулочки! чулочки фильдеперсовые!"
[21:08:24] <ermine> ага
[21:09:05] <ermine> ты еще порассуждай тут, пчу в камле плагины можно загружать, но нельзя выгружать, и что будет, если несколько раз загрузить один и тот же плагин
[21:11:11] ermine думает - взять попкорн или поберечь фигуру
[21:11:42] <gds> лучше полиэтилен с пупырышками. кликабельное спокойствие.
[21:12:01] <gds> про "выгружать" мне всё прекрасно понятно. про "несколько раз" -- не пробовал.
[21:12:04] inky-kinky вошёл(а) в комнату
[21:13:30] <ermine> gds: ну оно работает, если несколько раз запгуризть, это типа обновить можно
[21:13:47] <ermine> можно даже вносить изменения в код и перекомпиливать модуль
[21:14:42] <ermine> вот без выгрузки .so как-то несолидно
[21:16:14] <gds> есть у меня некоторые сомнения, что вызовы функций модуля будут нормально работать при обновлении. там же модуль = массив указателей на top-level values. добавишь в начало какое-нибудь значение -- сместятся указатели на другие значения. Но это только догадки, правильные всего на ориентировочно 90%.
[21:17:34] <ermine> на практике работает
[21:19:09] <gds> даже если в начало модуля добавить "let kva = "kuku"" и подсунуть новый модуль?
[21:22:43] <ermine> перегазрузка модулей декларирована в OCsigen, там про ограничения ничего не написано
[21:23:31] <ermine> а не просто декларирована - даже советуется применять перезаргузку модулей вместо ребута сервера, при этом перезагружаются не всё подряд
[21:25:49] <gds> круто. надо посмотреть, как они это сделали.
[21:27:14] <ermine> тупо
[21:27:23] <ermine> Dynlink.load_file
[21:27:47] <gds> я про внутренние механизмы. там не совсем тупо, думается :)
[21:28:25] <ermine> в модуле dynlink почти ничего кроме load_file
[21:29:14] <ermine> но вот я хочу выгрузку
[21:29:19] <ermine> ыыыы
[21:30:04] inky-kinky вышел(а) из комнаты
[21:30:41] <gds> я вообще-то про dl_open, структуру module frame table у подгружаемого модуля, про so в целом. точно, там сложнее, чем объявление load_file.
[21:33:10] <ermine> для native code плагины .cmxs и библиотеки .so собираются примерно одинаково - с опцией -shared, неспроста это
[21:33:54] <gds> опять не глубоко копаешь, а интересно глубже. ну да фигня, проехали, думается.
[21:34:48] ermine не системный аналитик
[21:35:46] ermine всего лишь женщина... лишь бы стиральная машина работала, всё остальное неважно
[22:01:11] sceptic вышел(а) из комнаты
[22:03:44] sceptic вошёл(а) в комнату
[22:29:54] Typhon вошёл(а) в комнату
[23:04:58] 604 вышел(а) из комнаты
[23:30:25] inky-kinky вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!