[00:00:39] <vlad2> я сравниваю std::wstring const* ;)
[00:01:22] <vlad2> И одинаковые строки имеют одинаковые адреса потому что я собираюсь гарантировать это :)
[00:02:32] <vlad2> что-то типа std::wstring const* get_uniq_string(std::wstring const& s, state_t& state);
[00:03:05] <vlad2> Строки живут в state_t, а везде ходят только указатели.
[00:04:14] <vlad2> Кстати да, оберон, похоже, пролетает на таких задачах оптимизации.
[00:05:24] <vlad2> Хотя нет. Там вроде есть указатели на открытый массив.
[00:05:28] <vlad2> Должно прокатить.
[00:05:42] <vlad2> Вот только сравнить не получится без SYSTEM ;)
[00:27:08] <vlad2> Эх. И тут не обошлось без шаблонов.
[00:30:24] <vlad2> Есть набор древовидных структур с листьями только на 4-м уровне. В листьях значения. Надо посчитать статистику по значениям в одниковых листьям (по одинаковому пути).
[00:31:07] <vlad2> Как такое можно сделать в обероне не закопавшись? :)
[00:32:23] <vlad2> 100 строк на плюсах. Знаю, что на питоне будет меньше :)
[00:33:22] <vlad2> Да, счиать надо быстро, а набор может быть довольно большой.
[01:28:03] <vlad2> Похоже от premature optimization придется отказаться :) Слишком сложно поулчается :)
[01:28:11] <vlad2> Подождем профайлера.
[14:16:50] <valexey> vlad2: кстати, зацени какую няшку собираются выпустить. если оно еще и работать будет как на демонстрационном видео - то совсем замечательно: http://habrahabr.ru/post/147440/
[14:17:16] <valexey> есть не нулевая вероятность что этот дивайс убьет наш проект :-)
[14:18:34] <egp> "И одинаковые строки имеют одинаковые адреса потому что я собираюсь гарантировать это :)" - В яве это  java.lang.String.intern() : String
[14:20:01] <valexey> в яве это стрингпул вроде бы.
[14:20:07] <valexey> туда можно все пихать.
[14:20:07] <egp> неа
[14:20:10] <egp> интерн
[14:20:24] <egp> пул там статик филдом видимо
[14:21:10] <egp> если надо пул, то это HashMap
[14:21:15] <valexey> ясное дело. он же глобальный. синглетон.
[14:21:48] <egp> если охота синхронизованный пул, то Hashtable
[14:23:16] <egp> я тут сегодня понял почему я не начал писать проги на языке вроде Оберона. Раньше я писал на яве гпл-проги
[14:23:23] <valexey> эмм. при чем тут собственные велосипеды? я говорю про стандартный стринг пул который уже есть.
[14:23:35] <valexey> и этот самый intern его использует
[14:23:36] <egp> нету в яве стринг пула вроде
[14:23:46] <egp> а потом стал выбирать язык. Постепенно прикатился к оберону
[14:24:50] <egp> так вот мне постоянно надо граф либу. А седня я понял, что и Qt, и GTK+ не поддерживают работу с gc - ну мож там апи какое и есть в ГТК+ - я не смотрел - но вряд ли оно есть
[14:25:03] <valexey> в стринг пуле жабы сразу сидят все строковые литералы что есть в программе.
[14:25:29] <valexey> egp: но тем не менее на java под gtk и прочее вполне пишут :-)
[14:25:30] <egp> а. ну это стринги ЛИТЕРАЛОВ
[14:25:48] <valexey> нет. туда можно добавлять свои строки в рантайме
[14:25:57] <egp> а кстати да, ява же на гтк реализована
[14:26:02] <valexey> о! более того, gc не поддарживают и файлы :-D
[14:26:17] <valexey> egp: искаропки, swing работает не через gtk
[14:26:19] <egp> valexey: вот у меня подозрение что ява String.intern() этот пул и юзает
[14:26:32] <egp> valexey: jdk под гтк, и свинг тоже
[14:26:32] <valexey> через gtk работает swt, а он не стандартен
[14:26:44] <valexey> нет. это не так.
[14:26:53] <egp> мммм
[14:26:58] <egp> ну мож быть
[14:27:16] <valexey> egp: это не подозрение - это то о чем я написал выше рраз, и два - об этом явно написано в доке на intern :-)
[14:27:31] <egp> вово
[14:28:03] <egp> фхтагн...
[14:28:28] <egp> ах да видимо у свт только гтк
[14:28:31] <valexey> а awt/swing работают в линуксе с иксами самостоятельно, без gtk
[14:28:49] <valexey> раньше они работали по моему через motiff
[14:28:58] <egp> ну свинг-то на авт реализован
[14:29:51] <valexey> угу. и это ничего не меняет :-)
[14:33:30] <egp> ну кстати у авт тоже есть обьекты которые не коллектятся гц
[14:33:34] <egp> с методом диспозе
[14:34:17] <egp> так что в яве сквозноты не добились
[14:38:48] <valexey> так везде :-)
[14:39:05] <egp> интересно в смолтоках что
[14:39:10] <egp> я вот не в курсе
[14:39:22] <valexey> gc не спасает от ВСЕХ утечек ресурсов, он спасает только от утечки памяти в данном процессе. что не интересно
[14:39:43] <valexey> судя по ObjC - там то же. ручками делаем диспоз/close
[14:40:46] <egp> в принципе гуи система устроена так что ссылка на фокальный кантрол указывает на дерево гуи кантролоов, и тут в принципе можно сделать гц
[14:41:18] <egp> что этому мешает?
[14:42:26] <valexey> да нельзя сделать gc :-) работа gc базируется на знании двух вещей (одновременно): 1) знает ли кто-нибудь еще про данную переменную (есть ли на нее ссылки) 2) сколько у нас еще ресурсов осталось, то есть сколько еще переменных таких можно сделать. если ресурсов мало - пошли собирать мусор.
[14:42:43] <valexey> так вот, в случае gui ты имеешь распределенную систему, и ты НЕ ЗНАЕШЬ ответа на вопрос нумер (2)
[14:43:15] <egp> ну в смолтоке бывают нераспределенные
[14:43:22] <egp> и А2 тоже вроде такой
[14:43:26] <valexey> просто потому, что создавая контрол ты тратишь не свою память, не свой ресурс, а ресурс сервера GUI, который точно крутится в другом процессе и возможно на другой машине за 100500 километров от тебя.
[14:44:11] <valexey> та же самая история с файлами
[14:44:12] <egp> смолток бывает под юнихами
[14:44:18] <valexey> это все примеры когда ресурс не является памятью
[14:44:44] <egp> ну почему. является, зачастую. просто это распределенный гц
[14:44:51] <egp> который совсем другой
[14:45:08] <egp> это память токо нелокальная часто
[14:45:38] <valexey> ок. представь себе такой ресурс - дверь. она или открыта или закрыта. ну и попробуй сборщик мусора сделать.
[14:45:53] <egp> да бывают dgc
[14:46:05] <egp> токо я с ними не работал