[00:04:52] <vlad2> Блин, с memory management в cocoa полный беспредел творится.
[00:05:08] <vlad2> Только gc их спасет :)
[00:15:03] <valexey_> ну, GC считается deprecated :-)
[00:20:50] <valexey_> нонче в моде ARC
[00:36:46] <vlad2> А как оно работает в случае протоколов?
[00:37:04] <vlad2> Я реализую метод протокола CreateXXX
[00:37:13] <vlad2> Возвращаю новый объект.
[00:37:22] <vlad2> Решил проверить - оно его не релизает.
[00:37:34] <vlad2> Пока отбился autorelease'ом.
[00:37:45] <vlad2> Как такую штуку разрулит ARC?
[00:38:26] <valexey_> а оно там само это все разруливает по сути. то есть от программера максимум нужны хинты в случае циклических зависимостей.
[00:38:33] <valexey_> то есть чтобы weakptr'ы были.
[00:38:54] <valexey_> ну, то есть считай, что там везде по умолчанию теперь не просто ссылка, а shared_ptr
[00:39:33] <valexey_> все эти релизы и проч ретейны компилер сам проставляет.
[00:40:02] <vlad2> А если у меня две либы - одна собраная с ARC, а другая нет?
[00:40:22] <valexey_> то получишь ошибку компиляции. по крайней мере если без плясок с бубном.
[00:40:39] <valexey_> но это вроде как-то разруливается.
[00:40:46] <vlad2> Не. Вот смотри. У меня WebView кокоашный.
[00:41:03] <vlad2> Сейчас я его потребляю из приложения, которая не ARC.
[00:41:12] <vlad2> Оно работает (с поправкой на то, что я описал выше)
[00:41:38] <vlad2> Как оно можетработать и для случая ARC и без ARC одновременно?
[00:42:08] <valexey_> не знаю. я под десктоп не работал :-)
[00:43:01] <vlad2> не на десктопе оно просто тотально ARC или чего?
[00:43:18] <valexey_> тотально уже, да.
[00:43:37] <valexey_> то есть давно-о, во времена 4.0 iOS было полностью ручное управление памятью (никакого GC!)
[00:43:42] <valexey_> а потом сразу ARC
[00:44:01] <vlad2> А когда они успели проникнутся ненужностьбю GC?
[00:44:22] <valexey_> ну, видимо на iOS и прониклись :-)
[00:44:43] <valexey_> ибо ARC штука существенно более шустрая чем тот консервативный сборщик что на десктопе.
[00:44:56] <valexey_> ну, это ж по сути тотальные смарт-поинтеры
[00:45:12] <valexey_> то есть теперь не вручную, а нормально.
[00:45:24] <valexey_> (если считать нормальным тот факт, что их в язык зашили)
[00:45:39] <vlad2> Я видел много криков про то, что GC сильно круче подсчета ссылок ;)
[00:45:59] <vlad2> (применительно к плюсовым смартпоинтерам)
[00:46:18] <valexey_> угу. не надо думать о кольцевых ссылках
[00:46:50] <valexey_> но.. ты учти, что десктрукторов в ObjC нет, и смартпоинтеры на уровне компилятора. так что там это несколько шустрее.
[00:47:06] <valexey_> а кольцевые ссылки.. да хрен бы с ними :-) важна шустрота работы проги и объемы памяти
[03:45:25] <valexey_> vlad2: блин. в gpcp for jvm бага в реализации SHORTCHAR
[03:45:28] <valexey_> /me facepalm
[03:45:31] <valexey_> см. форум
[03:45:40] <valexey_> /me пошел щупать .net реализацию
[03:46:00] <valexey_> НУ ПОЧЕМУ НА КП НЕ УДАЕТСЯ НОРМАЛЬНО ПРОСТЕЙШИЙ АЛГОРИТМ РЕЛИЗОВАТЬ?!
[03:51:59] <valexey_> А, а .net - версия работает вроде.
[04:06:26] <valexey_> Блин, работает и работает! Никак не остановится :-)
[04:28:25] <vlad2> Ну компилер типа моего - вроде как работает, но никто ж на нем не писал ничего :)
[04:28:48] <valexey_> :-)
[04:29:13] <valexey_> А если .net версию скомпилить с ключиком /nodebug оно работает намного шустрее!
[04:29:33] <valexey_> Кстати, проверки целочисленного переполнения в .net версии замедляют прогу в два раза.
[04:38:47] <valexey_> черт. за вариант Оберон-07 меня все четвертуют!
[04:38:49] <valexey_> ибо походу он дико не оптимальный будет :-)
[05:19:40] <valexey_> vlad2: ASR!
[05:19:43] <valexey_> Где ASR?!
[05:20:46] <valexey_> /me хочет реализацию пункта 10.2 в компилере
[05:22:58] <valexey_> ну хотя бы первой группы функций-процедур
[05:29:37] <valexey_> /me забагрепортил
[06:10:35] <valexey_> Аццкая функция для доставания цветных байтиков из фрейма на Обероне-07 (массив, то есть фрейм, понятное дело из INTEGER'ов состоит):
[06:10:44] <valexey_> PROCEDURE value(f : Frame, x,y,c : INTEGER) : INTEGER;
VAR
   shift, int : INTEGER;
BEGIN
   shift := x * 3 + c;
   int   := f[y* width + shift DIV 4];
   RETURN ASR(int, shift MOD 4) MOD 256;
END value;
[06:11:08] <valexey_> Надо будет всё это проверить. А то мало ли что я тут набредил в полусонном состоянии :-D
[13:23:48] <valexey_> .
[16:14:37] <valexey_> Сегодня осилил пробежать без остоновки километр! Причем даже не сдох по завершении. (это вместо одного из интервалов интервальной тренеровки)