[00:00:31] <ada_ru> (vasil_sd) Кстати, сейчас глянул - анализ на утечку данных (escape analysis) в статике в общем случае неразрешимая задача.
[00:01:20] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А Ада - добрая дама.>
Нужно ключики дать нормальные, тогда станет злой
[00:01:38] <ada_ru> (I_vlxy_I) ну, стандарт языка не требует от Ады быть злой 🙂
[00:02:07] <ada_ru> (I_vlxy_I) так то и в плюсах можно всякие -Wall -Wextra -Wpedantic -Werror включить и будет довольно злобно
[00:02:50] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Кстати, сейчас гляну…>
ну, понятно, что если у нас if (env_variable) then утечка, то в compile time ты точно не вычислим будет она или нет
[00:04:07] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <ну, понятно, что есл…>
Кстати, "call    __gnat_rcheck_PE_Missing_Return" - он не смог в компайл тайме, но поставил проверку.

А если это был бы сишник?
[00:04:51] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Кстати, "call    __g…>
то это поймал бы санитайзер. UBSan, если не ошибаюсь ловит именно такое.
[00:05:14] <ada_ru> (I_vlxy_I) собственно он примерно такую же проверку и вставит в момент компиляции
[00:05:21] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <мне кажется, или gna…>
Гм. В расте это ошибка компиляции, прчём из-за типов
[00:05:44] <ada_ru> (I_vlxy_I)  отвечает (insert_reference_here) на <Гм. В расте это ошиб…>
да, в расте if возвращает значение 🙂 прямо как в алгол-68
[00:06:13] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <собственно он пример…>
сишник не вставляет. а ubsan - это не стандарт
[00:06:46] <ada_ru> (vasil_sd)  отвечает (insert_reference_here) на <Гм. В расте это ошиб…>
Ну да, if - там функция
[00:06:48] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <сишник не вставляет.…>
чем дальше, тем больше и чаще используется. по факту 🙂
[00:06:57] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ну да, if - там функ…>
не функция - expression
[00:07:21] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <не функция - express…>
ну да
[00:07:45] <ada_ru> (vasil_sd) раст чуть ближе к функциональщине
[00:07:59] <ada_ru> (vasil_sd) Ада же почти чистая императивщина
[00:08:10] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <раст чуть ближе к фу…>
к Алголу-68 🙂
[00:08:34] <ada_ru> (I_vlxy_I) Кстати, вот можешь глянуть в то, что сгенерил gcc https://godbolt.org/z/oZTHfp
[00:08:36] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <к Алголу-68 🙂>
Возможно, я не так хорошо знаком с 68-м алголом :)
[00:09:08] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Кстати, вот можешь г…>
Я уже своё посмотрел
[00:09:24] <ada_ru> (I_vlxy_I) call    __ubsan_handle_missing_return
[00:09:25] <ada_ru> (I_vlxy_I) 🙂
[00:09:34] <ada_ru> (vasil_sd) а Ада без всяких флажков так делает
[00:09:52] <ada_ru> (vasil_sd) Нужно ещё посмотреть, может в стандарте так прямо записано
[00:10:04] <ada_ru> (I_vlxy_I) рантайм проверка? думаю в стандарте есть
[00:10:11] <ada_ru> (I_vlxy_I) а вот варинга - нет
[00:10:23] <ada_ru> (vasil_sd) Ну вот. Ада круче :)
[00:10:58] <ada_ru> (I_vlxy_I) стоп
[00:11:00] <ada_ru> (I_vlxy_I) https://godbolt.org/z/9qbbRm
[00:11:08] <ada_ru> (I_vlxy_I) куда делась проверка?
[00:11:13] <ada_ru> (I_vlxy_I) я же -gnatp не включал
[00:11:31] <ada_ru> (vasil_sd) >= -> > ?
[00:11:50] <ada_ru> (vasil_sd) О! уже делает анализ
[00:12:14] <ada_ru> (I_vlxy_I) #1 with x86-64 gnat (trunk)
gcc -c -I./ -g -S -fdiagnostics-color=always -fverbose-asm -o ./output.s -masm=intel -I- ./example.adb

example.adb:5:05: warning: "return" statement missing following this statement

example.adb:5:05: warning: Program_Error may be raised at run time

Compiler returned: 0
[00:12:18] <ada_ru> (I_vlxy_I) варнинги остались
[00:12:20] <ada_ru> (I_vlxy_I) проверка исчезла
[00:12:31] <ada_ru> (I_vlxy_I) что за фигня?
[00:12:52] <ada_ru> (vasil_sd) На разных серваках немного  версии ады разъехались :)
[00:12:59] <ada_ru> (I_vlxy_I) нет.
[00:13:06] <ada_ru> (I_vlxy_I) эту проверку просто убирает не gnat
[00:13:12] <ada_ru> (I_vlxy_I) её убирает gcc
[00:13:27] <ada_ru> (I_vlxy_I) точнее - миддленд, который АдаКор не пишет
[00:13:57] <ada_ru> (vasil_sd) Ну да, компилятор я и имел ввиду
[00:13:59] <ada_ru> (I_vlxy_I) и вот миддленд при высокой степени оптимизации понимает, что тут проверка лишняя, ибо проанализировал возможные флоу, и он её выпиливает
[00:14:17] <ada_ru> (I_vlxy_I) а фронтенд продолжает истерить, так как он - таки тупой 🙂
[00:14:24] <ada_ru> (vasil_sd) А, я не заметил -o2
[00:14:39] <ada_ru> (I_vlxy_I) https://godbolt.org/z/LZfeE2
[00:14:57] <ada_ru> (I_vlxy_I) поменял на строгое больше (теперь есть кейс когда может всё быть плохо)
[00:15:01] <ada_ru> (I_vlxy_I) проверка появилась
[00:15:06] <ada_ru> (I_vlxy_I) gcc умнее gnat'a 🙂
[00:15:14] <ada_ru> (vasil_sd) Кстати, как человек одно время вплотную работающий с командой бэкендщиков компиляторов, могу сказать, что современные компиляторы иногда творят чудеса оптимизации
[00:15:38] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <поменял на строгое б…>
Я это и предлагал чуть выше
[00:16:08] <ada_ru> (vasil_sd) ">= -> > ?"
[00:17:07] <ada_ru> (vasil_sd) Ладно, это всё конечно очень увлекательно, но я спать :)

Чего и всем желаю, у кого сейчас за полноночь :)
[00:17:25] <ada_ru> (I_vlxy_I) ага. спокойной ночи
[00:23:12] <ada_ru> (Oleg) Только открыл
[00:23:26] <ada_ru> (Oleg)     if a < c then
       return c;
   elsif a >= c then
       return a;
   end if;
[00:23:48] <ada_ru> (Oleg) Так всегда ж или то или то
[00:29:31] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Так всегда ж или то …>
а ворнинг есть!
[00:29:56] <ada_ru> (Oleg) Ставлю gnat на OpenSuse
[00:30:22] <ada_ru> (Oleg) Но тоже спать пойду сейчас
[01:31:46] <ada_ru> (Oleg) Не пошел 😊 SPARK_mode все решает
[01:32:00] <ada_ru> (Oleg) C огонь 😊
[01:32:27] <ada_ru> (Oleg) #include <stdio.h>

int comparator(int a, int b){
       if(a < b){
               return b;
       }else{
               if(a > b){
                       return a;
               }
       }
}

int main(void){
       int c;
       c = comparator(2,2);
       printf("%d\n",c);
       return 0;
}
[01:32:38] <ada_ru> (Oleg) gcc
[01:32:50] <ada_ru> (Oleg) не ругается
[01:32:55] <ada_ru> (Oleg) но
[01:33:23] <ada_ru> (Oleg) oleg@linux-j5y3:~/adaprojects/test1> ./test2gcc
2
[01:33:28] <ada_ru> (Oleg) clangЖ
[01:33:54] <ada_ru> (Oleg) test2.c:11:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
[01:34:16] <ada_ru> (Oleg) oleg@linux-j5y3:~/adaprojects/test1> ./test2clang
0
[01:34:21] <ada_ru> (Oleg) Внезапно 😊
[01:34:32] <ada_ru> (Oleg) ADA
[01:37:15] <ada_ru> (Oleg) hello1.adb:9:09: warning: "return" statement missing following this statement
hello1.adb:9:09: warning: Program_Error may be raised at run time
gnatbind -x hello1.ali
gnatlink hello1.ali
[01:38:01] <ada_ru> (Oleg) with SPARK_mode
[01:38:06] <ada_ru> (Oleg) oleg@linux-j5y3:~/adaprojects/test1> gnatmake hello1.adb
gcc -c hello1.adb
hello1.adb:9:09: "return" statement missing following this statement
hello1.adb:9:09: Program_Error might have been raised at run time
gnatmake: "hello1.adb" compilation error
[01:39:36] <ada_ru> (Oleg) вывод - gcc не используем 😊
[01:54:42] <ada_ru> (mister_alexander)  отвечает (Oleg) на <не ругается>
Ругается с Wall
[01:54:44] <ada_ru> (mister_alexander) gcc -Wall main.c
main.c: In function 'comparator':
main.c:11:1: warning: control reaches end of non-void function [-Wreturn-type]
  11 | }
     | ^
[01:55:59] <ada_ru> (Oleg) А результат работы ?
[01:56:04] <ada_ru> (Oleg) 0 или 2
[01:56:11] <ada_ru> (mister_alexander) 2
[01:56:17] <ada_ru> (Oleg) :-)
[01:56:56] <ada_ru> (mister_alexander) g++ кстати ругается безо всяких Wall
[01:57:14] <ada_ru> (Oleg) Ну тоже warning ?
[01:57:16] <ada_ru> (mister_alexander) Ну и собирать проекты без Wall Wextra, это такое
[01:57:24] <ada_ru> (Oleg) Ну это понятно
[01:57:39] <ada_ru> (Oleg) Завтра IAR попробую
[01:58:22] <ada_ru> (Oleg) можно MISRA C включить , но это скорее аналогично SPARK  уже
[02:02:42] <ada_ru> (Oleg) Ладно я спать
[03:07:16] <ada_ru> (I_vlxy_I) Werror ещё
[03:24:50] <ada_ru> (mister_alexander) ну Werror само собой
[03:25:29] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <Werror ещё>
Кто-то спать собирался
[03:26:22] <ada_ru> (mister_alexander) еще было бы круто иметь ключики, чтобы компилятор проверял переносимость кода под разные платформы.
используешь ты %x для вывода чего то на arm32, а компилятор тебе warning - на arm64 не соберется
[03:26:24] <ada_ru> (I_vlxy_I) как подумаю о том, что у кого-то для прода код собирается без Werror, так ни спать ни кушать не могу!
[03:26:35] <ada_ru> (mister_alexander) =)
[03:26:51] <ada_ru> (mister_alexander)  отвечает (t91x0) на <Кто-то спать собирал…>
Некогда спать, надо компиляторы обсуждать
[04:49:15] <ada_ru> (t91x0)  отвечает (Mochavfun) на <>
@I_vlxy_I спамерша
[07:34:04] <ada_ru> (Eugene)  отвечает (vasil_sd) на <Но в Аде они одни из…>
а когда в аде появились контракты? в 2012? в том же эйфелле контракты были ещё десятки лет назад
[07:45:14] <ada_ru> (Eugene)  отвечает (Oleg) на <    if a < c then
 …>
учитывая возможность перегрузки операторов < и >=, то не всегда...
[07:46:57] <ada_ru> (Eugene) в эйфелле простенький хелловорлд генерирует экзешник размером в сотню мегабайт -- это немного странно
[07:49:33] <ada_ru> (vasil_sd)  отвечает (Eugene) на <а когда в аде появил…>
В виде комментариев ещё в древнем спарке.
А в стандарте, да в 2012.
Насчёт Эйфеля и пр - уже обсуждали, на мой взгляд его "промышленность" намного меньше чем у ады :)
[07:50:37] <ada_ru> (Eugene) спарк всё же не ада
[07:51:10] <ada_ru> (vasil_sd) А сама идея контрактов - очень древняя и я думаю уже давно были экспериментальные языки, которые как-то это реализовывали
[07:51:37] <ada_ru> (vasil_sd)  отвечает (Eugene) на <спарк всё же не ада>
Подмножество
[07:53:15] <ada_ru> (vasil_sd) В общем, тут смысла спорить нет, ибо это всё не строго и очень много нюансов и субъективщины :)
[07:54:25] <ada_ru> (vasil_sd) Как я уже писал, Ада может и не первый из промышленных (зависит от того что ими считать) языков, но точно один из
[07:56:43] <ada_ru> (vasil_sd) Ну и плюс к контрактам - предикаты на типы и пр.
[07:59:04] <ada_ru> (vasil_sd) А теперь и инструменты подтянулись до высокого уровня.
На мой взгляд, в плане разработки верифицированного софта, у Ады сейчас особо конкурентов нет. У adacore самая развитая экосистема для промышленной формальной верификации
[09:51:32] <ada_ru> (vasil_sd)  отвечает (Eugene) на <в эйфелле простеньки…>
Посмотрел я немного эйфель...
Насколько я понял - это VM + байткод, либо трансляция в C (есть ещё .net)

То есть, для системного программирования, мягко говоря, не очень подходит.

Контракты у эйфеля, конечно хорошо, но в тех областях, где надёжных софт нужнее всего, эйфель не применим получается
[09:55:41] <ada_ru> (Eugene) есть ещё полуживой транслятор в сишечку https://www.liberty-eiffel.org/
[09:57:21] <ada_ru> (vasil_sd)  отвечает (Eugene) на <есть ещё полуживой т…>
"GNU Eiffel compiler" - интригующе :)
[09:59:54] <ada_ru> (vasil_sd) Регулярность структуры документации понравилась, такая строгая однообразная иерархия :)
[11:33:30] <ada_ru> (vasil_sd) В общем, поигрался с Эйфелем и так и не понял, в какой области он силён. Интересный язык, но в каждой нише, которую я смог представить, есть решения лучше.

Итеративная разработка через уточнение? Эйфелю очень далеко до Event-B + Atelier-B
Продвинутое кросс-платформенное ООП - Та же Ада, ООП с контрактами. или Ява + контракты.

В общем не понятно пока какая же киллер-фича у Эйфеля
[11:35:20] <ada_ru> (vasil_sd) Если рассматривать простоту ООП языка, то тут SmallTalk (или уже почивший Self). Ява тоже несложный.
[11:53:14] <ada_ru> (Eugene) ну, эйфель -- это 1986 г., в аде-83 ни контрактов, ни ООП не было, явы вообще не было, а этот B-Method вроде и сейчас мало кому известен...
[11:54:19] <ada_ru> (Eugene) фишка эйфеля не в языке ведь, а во всей методологии обучения программированию на нём
[11:54:26] <ada_ru> (vasil_sd)  отвечает (Eugene) на <ну, эйфель -- это 19…>
Я понимаю, что стартовали они примерно в одно время. Но Ада сейчас - ого-го, а эйфель что-то совсем не развивается
[11:54:46] <ada_ru> (vasil_sd)  отвечает (Eugene) на <фишка эйфеля не в яз…>
Да, эйфель-метод. Но где его можно эффективно применять?
[11:55:02] <ada_ru> (vasil_sd) В какой области он даст максимальный выигрышь?
[11:55:27] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <В какой области он д…>
Скады разные например
[11:56:19] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Скады разные наприме…>
Скады - в каком смысле? Для пром-автоматики?
[11:56:41] <ada_ru> (Eugene)  отвечает (vasil_sd) на <Я понимаю, что старт…>
ада может и ого-го какая сейчас, и развивается -- всё больше, всё сложнее, но даже заказчики разработки ады уже отказываются от ады в пользу с++, понятно, что у эйфеля тем более нет шансов в мире...
[11:57:42] <ada_ru> (vasil_sd)  отвечает (Eugene) на <ада может и ого-го к…>
Основные заказчики Ады сейчас ориентированны на распил бабла. И плюсы до уровня Ады в этой области они ещё ой как не скоро доведут
[11:57:45] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Скады - в каком смыс…>
Да. Для той части скады, что в диспетчерской стоит и все рулит
[11:57:56] <ada_ru> (I_vlxy_I) Микроконтроллеры и реалтайм - не нужны
[11:58:05] <ada_ru> (I_vlxy_I) Бареметал - не нужны
[11:58:23] <ada_ru> (I_vlxy_I) Логики много, и нужно корректно и фичасто
[11:58:38] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Да. Для той части ск…>
Ну, с этой областью мало знаком, но думаю там тоже решений готовых уже дофига, и с логикой и с фичами
[11:58:47] <ada_ru> (I_vlxy_I) У Ады в плане программирование под ось - такое себе
[11:59:06] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <У Ады в плане програ…>
Да ладно, даже оси на аде есть
[11:59:13] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ну, с этой областью …>
Есть WinCC от сименса - на любителя
[11:59:29] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да ладно, даже оси н…>
Оси есть, а под оси  писать - такоэ
[11:59:48] <ada_ru> (I_vlxy_I) Стандартная либа сидящая на libc...
[12:00:03] <ada_ru> (Eugene) разве ещё осталась хоть одна живая ось на аде?
[12:00:11] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Оси есть, а под оси …>
Тут уже весьма субъективно.
Лично я лучше Аду под системщину возьму, чем сишник или плюсы
[12:00:13] <ada_ru> (I_vlxy_I) И отсутствие GUI
[12:00:37] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Тут уже весьма субъе…>
Я ж не про системщину писал, а наоборот
[12:00:49] <ada_ru> (I_vlxy_I) Эйфель - чистая надежная прикладуха
[12:00:56] <ada_ru> (I_vlxy_I) Писание под осью
[12:00:59] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <И отсутствие GUI>
Это не страшно, Ада вон уже в васме обживается :) Скоро будет что-то как Oсsigen для Окамла.
[12:01:16] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Это не страшно, Ада …>
Надеюсь :-)
[12:01:36] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Писание под осью>
Qt? .NET + ззопарк? Java?
[12:01:58] <ada_ru> (Eugene) https://marte.unican.es/
Адрес не найден
marte.unican.es не найден. Проверьте правильность написания имени и попробуйте снова.
[12:02:14] <ada_ru> (vasil_sd)  отвечает (Eugene) на <https://marte.unican…>
ещё недавно жив был
[12:02:45] <ada_ru> (vasil_sd) https://marte.unican.es/ - всё норм.
[12:03:02] <ada_ru> (vasil_sd)  отвечает (Eugene) на <https://marte.unican…>
Скорее всего провайдер или что-то с днс
[12:03:16] <ada_ru> (Eugene) о, заработал, тока что не открывался
[12:03:46] <ada_ru> (vasil_sd)  отвечает (Eugene) на <о, заработал, тока ч…>
У меня всегда работал, даунтаймов не видел совсем
[12:03:48] <ada_ru> (Oleg)  отвечает (I_vlxy_I) на <Микроконтроллеры и р…>
Совсем совсем ? :-)
[12:04:56] <ada_ru> (Oleg)  отвечает (vasil_sd) на <Тут уже весьма субъе…>
«Только чистый Си, по заветам старой школы» :-)
[12:08:47] <ada_ru> (vasil_sd)  отвечает (Oleg) на <«Только чистый Си, п…>
Сишник один из неудачных, с точки зрения языка, языков
Это большая проблема, что он прижился и стал популярным
[12:09:23] <ada_ru> (Oleg)  отвечает (vasil_sd) на <Сишник один из неуда…>
Это да, странно оно
[12:09:59] <ada_ru> (Oleg)  отвечает (vasil_sd) на <Сишник один из неуда…>
Раньше понятно, можно было легко компилятор состряпать
[12:10:15] <ada_ru> (vasil_sd) Собственно как и с x86 было, тоже зигзаг эволюции, политика, некомпетентность менеджеров и пр - и вуаля, имеем, что имеем
[12:10:38] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Раньше понятно, можн…>
Оберон намного проще
[12:10:50] <ada_ru> (Oleg) Ещё Ethernet туда же
[12:11:04] <ada_ru> (Oleg) Говно говном по сравнению с другими
[12:11:10] <ada_ru> (Oleg) Но завоевал мир
[12:11:28] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Ещё Ethernet туда же>
Да вообще, как посмотришь на эволюцию технологий, аж плакать хочется
[12:11:49] <ada_ru> (Oleg)  отвечает (vasil_sd) на <Да вообще, как посмо…>
Люди хотят простые вещи
[12:12:00] <ada_ru> (vasil_sd) Бабло и тупость - распространение получает всякая ерунда
[12:12:41] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Люди хотят простые в…>
Да тут не в людях дело, а в крупном бизнесе и его внутренних подковерных интригах
[12:13:02] <ada_ru> (vasil_sd) Имею шансы наблюдать это воочую
[12:25:19] <ada_ru> (zloidemon)  отвечает (vasil_sd) на <Да тут не в людях де…>
Коррупционную составляющую никто не отменял
[12:26:03] <ada_ru> (vasil_sd)  отвечает (zloidemon) на <Коррупционную состав…>
Жаль, что она настолько влияет на технологии
[12:26:11] <ada_ru> (I_vlxy_I) Обычная эволюция
[12:26:27] <ada_ru> (I_vlxy_I) Коррупция и менеджеры не при чем
[12:26:37] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Обычная эволюция>
Примерно да, слепая и беспощадная :)
[12:26:47] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Коррупция и менеджер…>
А вот тут не согласен
[12:27:04] <ada_ru> (zloidemon)  отвечает (I_vlxy_I) на <Коррупция и менеджер…>
Да брось, как тогда закрытые штуки с кучей патентов становятся стандартами для всех?
[12:27:20] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Коррупция и менеджер…>
Они как одни из сильных факторов
[12:27:31] <ada_ru> (zloidemon) Ты не можешь это делать, потому что у нас куча патентов и мы тебя засудим. А это стандарт, и так обязаны делать все.
[12:28:03] <ada_ru> (zloidemon) Один CDMA чего стоит, где под себя весь рынок телекома подмяла одна компания в США
[12:30:00] <ada_ru> (I_vlxy_I) А где CDMA сейчас?
[12:31:00] <ada_ru> (zloidemon)  отвечает (I_vlxy_I) на <А где CDMA сейчас?>
Дело в другом, то что одна компания просто устроила монополию
[12:31:06] <ada_ru> (vasil_sd)  отвечает (zloidemon) на <Ты не можешь это дел…>
И это тоже. Но внутри компаний тоже идёт борьба за то, чьё предложения будет развиваться. И менеджеры стараются продавить афиллированные с ними технические решения
[12:33:32] <ada_ru> (I_vlxy_I)  отвечает (zloidemon) на <Дело в другом, то чт…>
Это все мелочи и локальные флюктуации. Эволюция работает на бОльших временных интервалах
[12:34:09] <ada_ru> (I_vlxy_I) У нас архитектура того же глаза - полное говно. Тоже менеджеры и коррупция виноваты? :-)
[12:34:53] <ada_ru> (zloidemon)  отвечает (I_vlxy_I) на <Это все мелочи и лок…>
Ну мелочи мелочами, а чипы стоят везде от Qualcomm.
[12:38:18] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <У нас архитектура то…>
Конечно. Некоторые утверждают, что первые два экземпляра вообще без ТЗ собраны были, просто по образу и подобию :)
[12:39:15] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Конечно. Некоторые у…>
При том, что существуют глаза такие же, но сделаные правильно.
[12:40:04] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <При том, что существ…>
Зато наш менеджер смог побольше ресурсов на мозг выбить :)
[12:44:21] <ada_ru> (zloidemon)  отвечает (vasil_sd) на <Зато наш менеджер см…>
Главное с этого что бы зарабатывала компания.
[12:49:38] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Зато наш менеджер см…>
Зато у птиц мозг эффективней - плотность упаковки сильно выше. Техпроцесс совершенней.
[12:50:21] <ada_ru> (I_vlxy_I) А мы развивались экстенсивно и за последние 20к лет у нас наметилась тенденция к уменьшению мозга :-)
[12:51:15] <ada_ru> (I_vlxy_I) В современной цивилизации мозг особо и не нужен уже. Программисту он нужен меньше, чем кроманьонцу 20к лет назад
[12:52:21] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А мы развивались экс…>
Зато скоро уже сможем себя так нехило апгреидить :) и мозг, думаю, тоже
[12:52:54] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Зато скоро уже сможе…>
Да, возможно это позволит не снизить интеллект
[12:53:08] <ada_ru> (Oleg)  отвечает (vasil_sd) на <Зато скоро уже сможе…>
Чтото я на себе проверил - сомневаюсь😊 мне мой то починить не могут, сам чинится пока
[12:53:28] <ada_ru> (Oleg) Тромб искали 8 часов .....
[12:53:44] <ada_ru> (zloidemon)  отвечает (Oleg) на <Тромб искали 8 часов…>
Звучит как-то плохо уж совсем
[12:54:02] <ada_ru> (Oleg)  отвечает (zloidemon) на <Звучит как-то плохо …>
Ну слава богу более менее все обошлось
[12:54:29] <ada_ru> (zloidemon) Из-за стресса проблемы?
[12:55:03] <ada_ru> (Oleg)  отвечает (zloidemon) на <Из-за стресса пробле…>
Вполне возможно - опять же прогресс очевиден - никто не знал от чего такое бывает а теперь... незнают
[12:55:23] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Ну слава богу более …>
Это хорошо, что обошлось...
[12:55:41] <ada_ru> (Oleg) Интересно софт для томографов на чем?
[12:55:49] <ada_ru> (Oleg) Управление всмысле
[12:55:55] <ada_ru> (Oleg) Там же рилтайм по идее
[12:56:03] <ada_ru> (I_vlxy_I) С++ скорее всего
[12:56:13] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Интересно софт для т…>
Кстати да, интересный вопрос
[12:56:14] <ada_ru> (Oleg) У меня есть код от УЗИ 😊
[12:56:35] <ada_ru> (I_vlxy_I) Медтеховое лобби довольно сильно в комитете стандартизации с++
[12:56:38] <ada_ru> (zloidemon)  отвечает (Oleg) на <У меня есть код от У…>
Стоит верить тому что показывает прибор? 😃
[12:56:59] <ada_ru> (Oleg)  отвечает (zloidemon) на <Стоит верить тому чт…>
Да вроде :-0
[12:57:31] <ada_ru> (Oleg) Но мед софт обычно полное говно
[12:57:36] <ada_ru> (Oleg) Во всех смыслах
[12:57:49] <ada_ru> (zloidemon) А что там за проблемы?
[12:57:53] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Но мед софт обычно п…>
Вот сейчас обидно было
[12:58:09] <ada_ru> (Oleg) Ну во первых все дырявое
[12:58:17] <ada_ru> (Oleg) Безопасность окодо нуля
[12:58:34] <ada_ru> (Oleg)  отвечает (I_vlxy_I) на <Вот сейчас обидно бы…>
Ну не - твой то огонь!  Ж-)
[12:59:23] <ada_ru> (shiz01)  отвечает (Oleg) на <Чтото я на себе пров…>
+
Пока-что мозги плохо чинят, всё самому приходится. Четыре инсульта и каждый раз всё что могут - это сказать "вам повезло, вот усваеваемый материал, фиксите мозг сами".
[12:59:37] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Ну не - твой то огон…>
<прислал наклейку> 😊
[12:59:55] <ada_ru> (vasil_sd)  отвечает (shiz01) на <+
Пока-что мозги пло…>
Офигеть. Сочувствую...
[13:00:14] <ada_ru> (Oleg)  отвечает (shiz01) на <+
Пока-что мозги пло…>
О нас тут уже клуб 😊
[13:00:40] <ada_ru> (I_vlxy_I) Жуть
[13:00:43] <ada_ru> (shiz01)  отвечает (vasil_sd) на <Офигеть. Сочувствую.…>
Ага, и самое паршивое не инсулт, как таковой, а последствия его. У меня после каждого была амнезия.
[13:00:47] <ada_ru> (Oleg) Software failures were behind 24 percent of all the medical device recalls in 2011, according to data from the U.S. Food and Drug Administration, which said it is gearing up its labs to spend more time analyzing the quality and security of software-based medical instruments and equipment.
[13:01:18] <ada_ru> (Oleg)  отвечает (shiz01) на <Ага, и самое паршиво…>
А у меня головокружение и рука/нога не чуствуют частично - короче видимо ерунда 😊))
[13:01:44] <ada_ru> (shiz01)  отвечает (Oleg) на <А у меня головокруже…>
Ага, главное всё более-менее функционирует, и ладно.
[13:03:31] <ada_ru> (Oleg) Ну или так
[13:03:35] <ada_ru> (Oleg) ICS Alert (ICS-ALERT-13-164-01)
Medical Devices Hard-Coded Passwords
[13:03:46] <ada_ru> (Oleg) Ну и 100500 таких случаев
[13:03:57] <ada_ru> (vasil_sd)  отвечает (shiz01) на <Ага, и самое паршиво…>
У меня дядя инсульт перенес и отчим... Дядя наполовину парализован, а отчим полностью смог восстановиться,
[13:04:00] <ada_ru> (Oleg) В сетке медучереждения можно много чего натворить
[13:04:03] <ada_ru> (zloidemon) Менеджеры или студенты — где тут проблема?
[13:04:05] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Software failures we…>
Всего 24 процента!
[13:04:22] <ada_ru> (Oleg)  отвечает (vasil_sd) на <У меня дядя инсульт …>
Главное не сдаваться!
[13:05:36] <ada_ru> (shiz01)  отвечает (vasil_sd) на <У меня дядя инсульт …>
Сочувствую. И да, мне сильно повезло, что я не овощ.
[13:05:47] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Главное не сдаваться…>
Ну во дядя опустил руки и теперь наполовину овощь, силы воли нет совершенно и за него реабилитацией ведь тоже никто заниматься не сможет...
[13:09:49] <ada_ru> (I_vlxy_I) https://habr.com/en/amp/post/484244/

Тут Ада неоднократно упоминается :-)
[13:12:17] <ada_ru> (Oleg) Page not found
[13:12:25] <ada_ru> (Oleg) Что я делаю не так 😊
[13:12:53] <ada_ru> (vasil_sd) У меня всё норм
[13:13:41] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Что я делаю не так 😊>
Провайдера нужно сменить, текущий, видимо, испортился :)
[13:13:59] <ada_ru> (Oleg) Протух
[13:14:42] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <https://habr.com/en/…>
Пол Грэм - интересно всегда было его читать :)
[13:15:10] <ada_ru> (I_vlxy_I) Читая такое прихожу к выводу, что авторитеты - полная фигня.
[13:16:54] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Читая такое прихожу …>
Да, авторитетов быть не должно. Нужно иметь собственное критичное мышление и обоснованные точки зрения.
Но это же нужно напрягаться и думать :)
Поэтому в ИТ так много идолопоклонничества :)
[13:19:33] <ada_ru> (shiz01)  отвечает (vasil_sd) на <Пол Грэм - интересно…>
Ага, статья двух десятилетней давности.
[13:19:45] <ada_ru> (I_vlxy_I) Предсказательная ценность мнения экспертов - околонулевая. Вне зависимости от авторитетности их мнения.
[13:19:55] <ada_ru> (I_vlxy_I)  отвечает (shiz01) на <Ага, статья двух дес…>
Дык тем она и интересна!
[13:21:14] <ada_ru> (I_vlxy_I) То была фальсифицируемая гипотеза.
[13:23:20] <ada_ru> (I_vlxy_I) Зато в этой статье C++ и Ада по одну сторону от баррикад :-)
[13:50:00] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <https://habr.com/en/…>
походу удалили уже эту статью, или она закрыта от незалогиненных
[13:52:03] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <походу удалили уже э…>
https://m.habr.com/en/amp/post/484244/

У меня открывается. Я не залогинен
[13:53:04] <ada_ru> (Eugene) так статья открывается, а если убрать m. то перестаёт находиться
[13:53:23] <ada_ru> (I_vlxy_I) У меня и так и эдак открывается
[13:53:44] <ada_ru> (vasil_sd)  отвечает (Eugene) на <так статья открывает…>
И так и так работает. Это что-то провайдер мутит
[13:53:58] <ada_ru> (I_vlxy_I) https://habr.com/en/post/484244/
[13:54:49] <ada_ru> (I_vlxy_I) Где-то баг
[14:25:20] <ada_ru> (FROL256) Я вот тоже не люблю жабу, но фраза в этой статье: "Я не написал ни одной программы на Java, и ограничился лишь поверхностным изучением документации, однако у меня есть чувство, что ей не суждено стать слишком успешным языком. " откровенног говоря даверя не внушает
[14:25:23] <ada_ru> (FROL256) доверия* )
[14:32:36] <ada_ru> (vasil_sd)  отвечает (FROL256) на <Я вот тоже не люблю …>
Я тоже не люблю яву, но это хороший язык, с хорошими тулами и экосистемой
[14:32:55] <ada_ru> (FROL256) да, и я даже не спорю )
[14:33:24] <ada_ru> (vasil_sd)  отвечает (vasil_sd) на <Я тоже не люблю яву,…>
И Грэм по поводу её популярности немного промахнулся
[14:33:56] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Я тоже не люблю яву,…>
Жуткие тормоза же! Открываешь страничку - комп впадает в ступор минут на 5-10 неистово хрустя винтом.
[14:35:15] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Жуткие тормоза же! О…>
Зато когда джит прогреется, вполне нормально :)
[14:35:31] <ada_ru> (vasil_sd) И память можно отрегулировать
[14:36:12] <ada_ru> (vasil_sd) Сейчас вон грааль-вм выпустили, будет ещё лучше :)
[14:36:14] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Зато когда джит прог…>
Какой такой джит?
[14:36:28] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Какой такой джит?>
Хотспот и ко
[14:37:02] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Хотспот и ко>
Не существует. jvm очень плохо себя чувствует на 32 мб озу.
[14:37:29] <ada_ru> (I_vlxy_I) А скорости моего Селерона 366 вполне хватает.
[14:38:39] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Не существует. jvm о…>
Мьсе знает толк в извращениях :)))
[14:39:40] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Мьсе знает толк в из…>
Для 2000 года - норм.

Это я вспомнил свои впечатления от джавы в 2000 году.
[14:42:01] <ada_ru> (I_vlxy_I)  отвечает (I_vlxy_I) на <Жуткие тормоза же! О…>
А сейчас то нет таких страничек больше
[14:42:16] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Для 2000 года - норм…>
Да ладно, в 2000х 32 метра это уже было исключение из правил
[14:43:06] <ada_ru> (vasil_sd) Уже вовсю были целероны слотовые и метров по 128 и больше оперативки, даже у студентов
[14:43:48] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да ладно, в 2000х 32…>
Да, обычно было ещё 16 :-)
[14:46:09] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Да, обычно было ещё …>
Ну это совсем если не повезло.
300a celeron 128 метров оперативки, монитор и жёсткий диск гигов на 6 я купил в общагу за 500 с небольшим долл.
[14:46:19] <ada_ru> (vasil_sd) Это был 99ый
[14:47:32] <ada_ru> (vasil_sd) Это с небольшой зп студента, работающего в серую
[14:48:40] <ada_ru> (I_vlxy_I) Не все же покупали комп каждый год
[14:51:13] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Не все же покупали к…>
До этого у меня был atm512+, если вы понимаете о чем я :)
[14:52:07] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <До этого у меня был …>
Хех :-)
[14:52:26] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Не все же покупали к…>
Да и до 2000х у народа у многих были вполне приличные пни ммх с нормальными объемами оперативки
[14:53:16] <ada_ru> (vasil_sd) Но если стараться комп менять раз в десять лет, то тут да много чего тормозами покажется. В первую очередь операционка
[14:53:42] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да и до 2000х у наро…>
Дык вспомни с какой скоростью тогда все развивалось. Нормальный объём а 1996 и а 1998 - сильно разный
[14:54:06] <ada_ru> (I_vlxy_I) 8,12,16 метров до 2000 года - вполне распространённое явление.
[14:54:17] <ada_ru> (I_vlxy_I) 32 метра до 2003 примерно - тоже
[14:55:09] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <32 метра до 2003 при…>
Ну не знаю, у меня статистики нет, поэтому спорить не буду. Сужу по общаге начала 2000х
[14:55:33] <ada_ru> (I_vlxy_I) Когда в 2001 году вышла XP, которая отказывалась ставиться на 32 метра - народ массово возмущался и обходил это дело тем, что на момент установки дотыкали памяти, а потом возвращали обратно 32 метра :-)
[14:56:13] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Когда в 2001 году вы…>
Сея участь миновала ибо линуксоидом был
[14:58:14] <ada_ru> (Eugene) ХР на 64 еле-еле работала, помню, знакомый собрал комп с пентиумом-2 с 192МВ -- вот там ХР более-менее неплохо работала
[14:58:18] <ada_ru> (I_vlxy_I) Кстати, сейчас компы в сборе, что продаются тоже крайне убогие по памяти. И всегда так было. Львиная доля компов продаётся с 4 Гб ОЗУ сейчас
[14:58:54] <ada_ru> (Eugene) эх, а ведь были времена, когда 640кБт хватало для всех ))))
[14:59:04] <ada_ru> (I_vlxy_I) Я хз кто такие конфиги выдумывает
[14:59:23] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <эх, а ведь были врем…>
И 48 Кб тоже хватало для всех :-)
[15:07:25] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <И 48 Кб тоже хватало…>
Вот да, сколько экранов Диззи умудрялись в 48к засунуть !
Симсити в 48к была, да вообще игрушек навалом было
[15:07:46] <ada_ru> (vasil_sd) Даже пролог для спектрума был
[15:08:32] <ada_ru> (vasil_sd) Isdos, honey commander и пр...

Прошу прощения, что-то накатили воспоминания :)))
[15:10:01] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Даже пролог для спек…>
Эпоха AI была буквально тут, рядом!
[15:10:37] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Эпоха AI была буквал…>
Да уж. Какие чудеса народ делал в таких ресурсах.
[15:10:53] <ada_ru> (vasil_sd) Воистину бит-хаккинг и цифровая магия
[15:11:21] <ada_ru> (I_vlxy_I) А сегодня это все редко когда нужно.
[15:15:16] <ada_ru> (I_vlxy_I) Помню тыкал первый шарп когда-то. Hello world с GUI жрал 10 метров ОЗУ. Я поразился как много оно жрет.

Кто же знал, что такое же на технологиях 2020 года может жрать и 200 и 300 метров. И это будет нормой.
[15:16:09] <ada_ru> (vasil_sd) Vadim , в свете васм-рантайма вопрос возник, а можете подсказать, что можно почитать, кроме исходников, про рантайм гната? Есть старая статья: http://www.iuma.ulpgc.es/users/jmiranda/gnat-rts/, но думаю она уже сильно устарела. Или нет?
[15:17:32] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Помню тыкал первый ш…>
Бинари по гигу и больше меня, после начала работы в Яндексе больше, не удивляют
[15:20:23] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Бинари по гигу и бол…>
Бинари то ладно. Статическая линковка, все дела. Но вот потребление RAM хелло ворлдами- это нечто.
[15:21:40] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Бинари то ладно. Ста…>
Ну так тоже, тянут 100500 либ сразу
[15:22:33] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ну так тоже, тянут 1…>
Дык либы то не повышают потребление RAM как таковое.
[15:25:13] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Дык либы то не повыш…>
Это зависит. если разные проги тащут разные версии одних и тех же либ, то вполне так себе повышают
[15:25:35] <ada_ru> (vasil_sd) DLL hell уже так порядком всех достал
[15:25:52] <ada_ru> (vasil_sd) И если бы был выигрышь по памяти. Но его почти нету...
[15:26:08] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Это зависит. если ра…>
А зачем? Они же просто mmap делают. RAM как таковая тут может вообще не участвовать. Только как кеш
[15:26:35] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А зачем? Они же прос…>
Эээ. Странички-то заполняются и свопится потом начинают
[15:26:56] <ada_ru> (vasil_sd) То есть да, оно не сразу всё в память тянет, но тем не менее
[15:27:42] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Эээ. Странички-то за…>
Дык они же не будут грязными. Из не надо держать а памяти а потом а своп сгружать. Можно выкинуть, а потом, как понадобится, снова с диска прочитать.
[15:27:47] <ada_ru> (vasil_sd) А если либа ещё подёргает функции из разных своих уголков и данные пощупает в разных местах, то страничек много уйдёт
[15:28:12] <ada_ru> (I_vlxy_I) Рама - только кеш тут. Нет?
[15:28:26] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Дык они же не будут …>
Ну сути это не меняет, если это всё используется, то потребление будет приличным
[15:29:22] <ada_ru> (vasil_sd) Рама кэш, да, но не резиновый. И эффективность его использования обратно пропорциональна криворукости програмиистов.
[15:29:43] <ada_ru> (vasil_sd) А средний программист слабо задумывается о таких ньюансах
[15:30:14] <ada_ru> (I_vlxy_I) Ну, если SSD (а есть и более интересные решения), то можно и без кеша :-)
[15:30:32] <ada_ru> (I_vlxy_I) Гигабайтная прога может использовать 0 RAM
[15:30:46] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Гигабайтная прога мо…>
Это если написать грамотно.
[15:31:36] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Это если написать гр…>
Ага
[15:31:45] <ada_ru> (vasil_sd) Я вот сейчас сделал top и вижу, что RES у вкладочек хрома по 100-500 метров... :(
[15:32:21] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Я вот сейчас сделал …>
Ну вот. А хелло ворлд нонче - это хромиум, ибо электрон же!
[15:32:23] <ada_ru> (vasil_sd) То есть, эти <нехорошие> вкладочки у меня прилично памяти отъели
[15:33:25] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну вот. А хелло ворл…>
Поэтому я и говорю, что в среднестатистическом случае можно делать большие проги с маленьким футпринтом по памяти, но это исключение из правил.
Сейчас даже мелочь жрёт памяти как не в себя
[15:34:20] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Поэтому я и говорю, …>
Там же на скорость рендеринга заточено плюс виртуальная машина плюс DOM
[15:34:40] <ada_ru> (I_vlxy_I) А размеры либ тут третьестепенны
[15:35:17] <ada_ru> (I_vlxy_I) Во, вот этот видос смотрел недавно https://m.youtube.com/watch?v=zBkNBP00wJE
[15:35:38] <ada_ru> (I_vlxy_I) C++17, игра использует 0 байт RAM
[15:35:52] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Там же на скорость р…>
У меня mc съел 31 метр! и два gdb по 150 метров...
[15:35:59] <ada_ru> (I_vlxy_I) С шаблонами и прочим
[15:36:28] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <У меня mc съел 31 ме…>
Там же виртуальная машина питона! И там и там :-)
[15:36:40] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <С шаблонами и прочим>
Шаблоны много не жрут, если уметь ими пользоваться
[15:36:58] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Там же виртуальная м…>
С каких пор в midnight commander питон?
[15:37:00] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Шаблоны много не жру…>
Ну вот там чел умеет пользоваться всем :-)
[15:37:21] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <С каких пор в midnig…>
Посмотри в его зависимости - питон там есть, сколь я помню
[15:37:51] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну вот там чел умеет…>
Я сам когда-то изучал вопрос кодогенерации при интенсивном метапрограммировании. Был удивлён. Компилятор иногда творил чудеса
[15:38:26] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Посмотри в его завис…>
$ ldd $(which mc)
 linux-vdso.so.1 (0x00007ffec63f6000)
 libslang.so.2 => /usr/lib/libslang.so.2 (0x00007fb769c92000)
 libgpm.so.2 => /usr/lib/libgpm.so.2 (0x00007fb769c8a000)
 libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007fb769c4a000)
 libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007fb769c45000)
 libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fb769b20000)
 libutil.so.1 => /usr/lib/libutil.so.1 (0x00007fb769b1b000)
 libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fb769af7000)
 libc.so.6 => /usr/lib/libc.so.6 (0x00007fb769930000)
 libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fb76992b000)
 libm.so.6 => /usr/lib/libm.so.6 (0x00007fb7697e5000)
 libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007fb769776000)
 libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007fb7696e6000)
 libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007fb769413000)
 libz.so.1 => /usr/lib/libz.so.1 (0x00007fb7693f9000)
 libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007fb769386000)
 /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fb76a319000)
[15:38:31] <ada_ru> (vasil_sd) нет никакого питона
[15:39:27] <ada_ru> (I_vlxy_I) Значит ошибся
[15:42:03] <ada_ru> (I_vlxy_I) Но вообще, в линуксе по умолчанию одного стека 8 метров на поток
[15:43:18] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Но вообще, в линуксе…>
Но он не мапится сразу весь. я же писал про резидентный размер, то есть то, что в текущий момент в памяти
[16:42:20] <nordwind> https://regnum.ru/news/2831783.html
[16:46:47] <ada_ru> (a) Эмн
[16:47:12] <ada_ru> (a) Что за машина времени в жабере
[16:48:37] <ada_ru> (a) Он показывает что я свою ссылку вставил перед сообщением которое было раньше по времени
[16:49:47] <ada_ru> (vasil_sd)  отвечает (a) на <Он показывает что я …>
Так это не джабер, это телеграм :)
[16:51:27] <ada_ru> (vasil_sd) Его програмируют ACM'овские олимпиадники :) Он по определению идеален :)
(https://habr.com/ru/post/472970/)
[16:54:41] <ada_ru> (a) Прикроют его скоро. Судя по новостям
[16:56:27] <ada_ru> (I_vlxy_I)  отвечает (a) на <Прикроют его скоро. …>
Это ж про битки
[16:56:29] <ada_ru> (I_vlxy_I) Нет?
[16:57:00] <ada_ru> (vasil_sd)  отвечает (a) на <Он показывает что я …>
Моя реплика относилась к этому ^
[16:57:38] <ada_ru> (vasil_sd)  отвечает (vasil_sd) на <Моя реплика относила…>
Упс, не так понял
[17:24:18] <ada_ru> (a) Так если битки прикроют, откуда деньги брать будут
[17:25:25] <ada_ru> (a) Развитие же должно быть
[17:36:08] <ada_ru> (I_vlxy_I) Реклама на указателях :-)
[17:44:13] <ada_ru> (vasil_sd) @I_vlxy_I , тут глянул программу митапа, возник вопрос: насколько глубоко будет рассматриваться асан? Будут подробности инструментирования кода и оптимизации работы с битовой картой?
[18:16:10] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <@I_vlxy_I , тут глян…>
Там в любой аспект если чуть глубже копнуть, то утонуть можно :-)

Поэтому я покажу что там генерирует и зачем компилятор, примерно укажу какое место компилятора (стадия, место в исходниках для некоторых случаев) за это отвечает, но без нюансов и подробностей устройства компилятора.
[18:17:03] <ada_ru> (I_vlxy_I) Что такое shadow memory, расскажу.
[18:18:10] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Там в любой аспект е…>
Ясно.

То есть будет просто ликбез

А написано, что будет хардкор :)
[18:19:46] <ada_ru> (I_vlxy_I) Ну, ты ж понимаешь, за 45 минут можно захардкориться в один какой-то аспект. А рассказать о том, как asan вообще работает не выйдет.
[18:21:13] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну, ты ж понимаешь, …>
Да я думаю там все будут знать как он работает.
Новички на хардкор не пойдут :)
[18:21:16] <ada_ru> (I_vlxy_I) И будет несколько примеров когда asan работает не очевидно.
[18:22:36] <ada_ru> (vasil_sd) Интересны именно ньюансы интсрументирования, параметры битмапки, как можно ускорить инструментированный код (он хоть и шустр, по сравнению с валгриндом, но всё-равно тооормозииит)
[18:25:12] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Интересны именно нью…>
Типа изменения расположения shadow map, чтобы в инструментированном коде было меньше вычислений?
[18:25:41] <ada_ru> (I_vlxy_I) Это, правда, по словам гуглоидов, даёт ускорение процентов на 6 или около того.
[18:27:12] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Типа изменения распо…>
Настройка точности битмапки, какие зоны безопасности и пр.

Так же интересны детали того, как компилятор принимает решения в каких местах вставлять чеки, как на это можно влиять и пр.

В общем, интересно как можно тюнить аккуратность и точность vs скорость
[18:27:45] <ada_ru> (vasil_sd) Как можно в пользовательском коде компилятору помочь поменьше чеков вставить
[18:28:17] <ada_ru> (vasil_sd) Например там особенности работы с указателями, массивами и пр, когда асан знает что чек можно не ставить
[18:29:13] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Настройка точности б…>
Ну, редзонами-порулим.
[18:29:19] <ada_ru> (Максим)  отвечает (vasil_sd) на <Vadim , в свете васм…>
Вадима в телеграмму калачем не звонишь обычно. Почитать можно про рестрикшины и про настройку встраиваемых rtl, может ещё про портирование на новые процессоры. А так больше вроде и нет ничего
[18:30:23] <ada_ru> (vasil_sd)  отвечает (Максим) на <Вадима в телеграмму …>
Просто я смотрю, народ как-то рантаймы портирует, думал есть где хорошая документация по архитектуре рантайма...
[18:30:59] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Настройка точности б…>
То есть кое-что, будет. Но не вот хардкорный тюнинг. Для тюнинга надо отдельный доклад, вообще без вступления и без рассказа про анатомию санитайзера. :-)
[18:32:20] <ada_ru> (Максим) Это они про reduce и parallel reduce в Аде 202х. Может получится, что если это пропихнут таки в стандарт, то gnat всё равно это поддерживать не будет. Капец
[18:32:21] <ada_ru> (Максим)  цитирует (Arnaud)
Agreed, but for some reason we cannot convince Tuck and other ARG members on that topic.
[18:32:40] <ada_ru> (I_vlxy_I) Там (у санитайзера) под сотню только рантайм настроек :-)
[18:33:23] <ada_ru> (vasil_sd)  отвечает (Максим) на <Это они про reduce и…>
А это про что? Я видимо не знаю контекст
[18:34:27] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Там (у санитайзера) …>
Во, это и интересно было бы.
А зачем доклад 45 минутами ограничивать? Может лучше выделить день, но действительно хардкор устроить? :)
[18:34:44] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Настройка точности б…>
А ты про какую именно битмапку говоришь?
[18:34:55] <ada_ru> (Максим) В Аду хотят впихнуть reduce операцию
[18:35:21] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Во, это и интересно …>
Там будет ещё один докладчик же :-) и, может быть, ещё и третий (но не факт)
[18:35:23] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А ты про какую именн…>
Которая у них назвается карантинной зоной, туда в битики адреса мапят
[18:35:58] <ada_ru> (vasil_sd)  отвечает (Максим) на <В Аду хотят впихнуть…>
reduce - в смысле распределённого map-reduce, или это что-то локальное будет?
[18:36:06] <ada_ru> (Максим) Что нового в Аде 202х · Ada Ru
http://ada-ru.org/ada-202x
[18:36:18] <ada_ru> (vasil_sd)  отвечает (Максим) на <Что нового в Аде 202…>
Ага, спасибо!
[18:36:33] <ada_ru> (vasil_sd)  отвечает (Максим) на <Что нового в Аде 202…>
Я какое-то время совсем не следил за Адой
[18:37:11] <ada_ru> (Максим)  отвечает (vasil_sd) на <reduce - в смысле ра…>
Есть простое и есть распределенное по ЦПУ
[18:37:12] <ada_ru> (vasil_sd) О! это видать идеи Parasail прорастают....
[18:37:18] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Которая у них назвае…>
Погодь, там есть карантинная прям таки ОЧЕРЕДЬ (размером в 200 мегабайт) - чтобы уменьшить false negative для ошибок вида use heap after free.
[18:38:59] <ada_ru> (I_vlxy_I) А есть ещё редзоны по краям аллоцированных блоков
[18:39:09] <ada_ru> (I_vlxy_I) И есть shadow memory :-)
[18:40:32] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Погодь, там есть кар…>
Возможно я терминологию немного подзабыл. Там же основная идея - мы заводим битики - которые характеризуют занятость/свободность небольших блоков памяти и потом при обращениям проверяют эти битики. Охранные зоны вокруг стековых фреймов и пр - не так сильно интересно. Там всё понятнее.
[18:42:15] <ada_ru> (vasil_sd)  отвечает (Максим) на <Есть простое и есть …>
"  parallel do
     Traverse (T.Left);
   and
     Traverse (T.Right);
   and"
Прямо один-в-один из парасейловской бумаги :)
[18:42:18] <ada_ru> (I_vlxy_I) Не, там в shadow memory один байт это 8 байт в основной куче.

При этом поскольку менеджер памяти свой, то он аллоцирует только выровненные блоки по 8 байтам. Поэтому все хорошо. Про эту кухню - будет. Это основы :-)
[18:42:50] <ada_ru> (I_vlxy_I) И красные зоны по краям каждой аллокации в куче тоже.
[18:42:54] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Не, там в shadow mem…>
Там есть много варинтов, 1 к 8 - это один из возможных
[18:43:51] <ada_ru> (Максим)  отвечает (vasil_sd) на <"  parallel do
    …>
Тукер это и продвигает.
[18:44:20] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Там есть много варин…>
А можешь какой-то референс дать, что там не только 1 к 8? Именно в asan
[18:45:53] <ada_ru> (vasil_sd)  отвечает (vasil_sd) на <Там есть много варин…>
Посмотрел текущее описание асана, там действительно 1-к-8. Я видимо когда-то более ранние бумаги читал. Или немного спутал, когда команда бэкенда компилятора в Интеле делала свой вариант асана...
Но реально, там ничего не мешает и 1 к 16 делать и др варианты.
Зависит от того, сколько памяти не жалко :)
[18:48:18] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Посмотрел текущее оп…>
Ну вот сейчас нет в реализации других вариантов :-/

Есть более другие защиты на базе тэгирования памяти. Причём как полусофтварно, так уже и хардварно в ARM. Это тоже развитие санитайзеров, но это не asan
[18:48:20] <ada_ru> (vasil_sd) "This shadow mapping could be generalized to the form(Addr>>Scale)+Offset,whereScaleis one of 1 ...7."
https://www.usenix.org/system/files/conference/atc12/atc12-final39.pdf
[18:48:32] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну вот сейчас нет в …>
выше дал ссылку на бумагу
[18:49:57] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <выше дал ссылку на б…>
Вижу. Но ручек чтобы это настроить сейчас в асане нет
[18:50:12] <ada_ru> (vasil_sd)  отвечает (Максим) на <Тукер это и продвига…>
С рекламной точки зрения он в чем-то прав. Но вот с практической точки зрения мне не нравится, что тут рулить параллелизмом будет компилятор и неявно.
[18:51:16] <ada_ru> (vasil_sd)  отвечает (vasil_sd) на <С рекламной точки зр…>
Его же эксперимент с парасейлом показывает, что неявный параллелизм - это не панацея. И там нет уж таго супер-выигрыша.
[18:51:45] <ada_ru> (vasil_sd) (парасейл даже в llvm варианте тот ещё тормоз...)
[18:54:01] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <выше дал ссылку на б…>
То есть я не хочу зарываться в теорию и не хочу предлагать зрителям патчить компилятор и рантайм санитайзера :-) я хочу рассказать что там к чему, как называется и как работает.  Показать несколько ручек которые можно крутить и какие проблемы бывают.
[18:54:32] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <То есть я не хочу за…>
Да, я понял.
[18:55:07] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <То есть я не хочу за…>
Хардкор нужно из названия убрать :)
Вводит в заблужение :)
[18:57:24] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Хардкор нужно из наз…>
Ну, там второй доклад про оптимизации компилятора :-)
[18:57:43] <ada_ru> (I_vlxy_I) Можно считать, что полезное - это мой, а хардкор - его :-)
[18:58:06] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Можно считать, что п…>
Сейчас посмотрю, что там во втором докладе интересного...
[18:58:09] <ada_ru> (I_vlxy_I) Но знаешь, кому то и просто mmap - хардкор :-)
[19:05:19] <ada_ru> (I_vlxy_I) Кстати, глянул исходники - рулить тем, сколько байт будет окучивать один байт в shadow memory, в asan можно путём перекомпиляции раетайма если у тебя clang/llvm. И тогда надо опцию компилятору ещё специальную совать при инструментированной компиляции исходников твоего софта
[19:05:25] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Но знаешь, кому то и…>
Ну, если уж так, то кому-то и 2+2 может высшей математикой показаться :)

В моём понимании хардкор - это когда не объяснение использование, а объяснение потрохов детальное.
Типа как разница между user guide и developers guide
[19:06:37] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Кстати, глянул исход…>
Ага, то есть в прнципе не слишком сложно менять
[19:07:09] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ага, то есть в прнци…>
Ага.
[19:09:26] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ну, если уж так, то …>
Про использование у меня был внутренний доклад. Тут все же потроха будут. Но не хардкорные :-) чтобы потом человек мог понять что там наинструментмровал его компилятор, мог увидеть вообще наличие инструментации в коде. И мог, при желании, написать свою кривую реализацию asan рантайма. Плюс-минус :-)
[19:10:13] <ada_ru> (I_vlxy_I) То есть в общих чертах основной скелет. С детализацией основ устройства.
[19:12:07] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Про использование у …>
А там кстати инструментирование хорошо отделено от других этапов кодогенерации? Легко ли можно влиять на инcтрументирование?
[19:17:04] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <А там кстати инструм…>
Ты хочешь исходники править?
[19:17:41] <ada_ru> (I_vlxy_I) Исходники компилятора
[19:17:54] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ты хочешь исходники …>
Нет, пока не хочу. Просто интересно. Иногда бывает желание в чём-то покопаться и сделать что-то странное :)
[19:19:04] <ada_ru> (I_vlxy_I) Ну, инструментированные стека там, если не путаю, врезано прямо в функционал который раскладывает переменные по стеку. То есть не отдельным стейджем.
[19:19:35] <ada_ru> (I_vlxy_I) Вырезать при этом санитайзерный код там довольно просто - он в отдельных ифах живет
[19:19:46] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну, инструментирован…>
То есть асан-таки весьма интрузивный....
[19:19:48] <ada_ru> (I_vlxy_I) Он же опцией включается/выключается
[19:21:11] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <То есть асан-таки ве…>
Я подозреваю, что из за этого именно при сборке асаном скорость компиляции замедляется а компилятор начинает жрать больше памяти. Особенно если это сгенеренная огромная функция с кучей переменных.
[19:22:08] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <То есть асан-таки ве…>
Ну, спасает, что кода там довольно немного.
[19:22:55] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну, спасает, что код…>
Я думал, что llvm довольно сильно модульный и асан там тоже хорошо изолирован. Оказалось нет
[19:27:04] <ada_ru> (I_vlxy_I) btw: поигрался с этим флагом - работает
[19:27:26] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <btw: поигрался с эти…>
байтов в бите?
[19:27:32] <ada_ru> (I_vlxy_I) Который asan-maping-scale
[19:27:34] <ada_ru> (I_vlxy_I) Ага
[19:28:05] <ada_ru> (I_vlxy_I) Причём он передаётся не фронтенду, а самому llvm, то есть миддленду
[19:28:24] <ada_ru> (vasil_sd) Во. Нужно какие-нибудь бенчмарки сделать, чтобы было понятно как и на что он влияет
[19:28:39] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Причём он передаётся…>
А зачем он во фроненде?
[19:28:58] <ada_ru> (vasil_sd) Он же только на рантайм и кодоген должен влиять
[19:29:55] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <А зачем он во фронен…>
Чтобы лицом к программисту :-) опция то -fsanitize=address она же во фронт суется
[19:30:14] <ada_ru> (I_vlxy_I) А тут нет такой опции, приходится через -mllvm совать
[19:32:22] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А тут нет такой опци…>
Ну видимо опции для продвинутых решили спрятать :)
[19:33:52] <ada_ru> (I_vlxy_I) Потому, что она приведёт к невалидному коду :-)
[19:34:07] <ada_ru> (I_vlxy_I) Без пересборка стандартной либы санитайзера
[19:56:52] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Потому, что она прив…>
Скорее всего.

Интересно, сколько там таких спрятанных флажков? :)
[20:06:01] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Скорее всего.

Интер…>
МНОГО
[20:07:05] <ada_ru> (I_vlxy_I) Я недавно ощутил опустошенность и собственную бессмысленность, так как не смог -O0 с дополнительными опциями оптимизации довести до состояния чтобы он выдавал код как при -O1
[20:07:20] <ada_ru> (I_vlxy_I) Причём и в gcc и в clang не смог
[20:07:47] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Причём и в gcc и в c…>
Скрытые флажки нужны?
[20:07:57] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Скрытые флажки нужны…>
Видимо да
[20:08:43] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <МНОГО>
Вот по каким вещам доклад нужно делать! Там вот и будет хардкор :)

Всё что вы хотели, но боялись узнать про компилятор :)
[20:12:16] <ada_ru> (vasil_sd)  отвечает (Максим) на <Что нового в Аде 202…>
Вот этого: http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai12s/ai12-0236-1.txt (declare_expression) иногда очень не хватает....
[20:21:56] <ada_ru> (I_vlxy_I) @vasil_sd посмотрел на код llvm ещё раз - там вроде поаккуратней сделано чем в gcc. Отдельным проходом инструментируется функция. И код относительно изолированный.
[20:23:19] <ada_ru> (I_vlxy_I) Значит бОльшие ужасы мне из gcc запомнились
[20:23:31] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <@vasil_sd посмотрел …>
Это хорошо, значит при желании можно будет поразбираться. Сейчас в контексте KLEE опять появился интерес поразбираться с такими вещами
[20:40:01] <ada_ru> (Максим)  отвечает (vasil_sd) на <Вот этого: http://ww…>
наверное, только если пишешь контракты 😊
[20:40:22] <ada_ru> (vasil_sd)  отвечает (Максим) на <наверное, только есл…>
ага, именно там иногда очень нужно :)
[20:41:29] <ada_ru> (vasil_sd) Бегло посмотрел, вроде большая часть предложений хорошая и полезная. С параллельностью - тут сомнительно.
[20:59:03] <ada_ru> (Oleg) Парни
[20:59:08] <ada_ru> (Oleg) Я ударился в манулы
[20:59:18] <ada_ru> (Oleg) <прислал документ>
[20:59:24] <ada_ru> (Oleg) Как вам такой дизайн? все в векторах
[21:08:01] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Как вам такой дизайн…>
Норм, хотя я предпочитаю просто буквы на однородном фоне :)
[21:15:54] <ada_ru> (Oleg)  отвечает (vasil_sd) на <Норм, хотя я предпоч…>
Ну это тоже сделаем 😊
[21:59:31] <ada_ru> (mister_alexander) asafailoverstatus
[21:59:43] <ada_ru> (mister_alexander) пробелов бы добавить
[22:00:30] <ada_ru> (mister_alexander) а, наверное так и задумано, но тяжеловато было читать
[22:16:38] <ada_ru> (Oleg) :-)
[22:16:53] <ada_ru> (Oleg) Подчеркивания если только
[22:18:16] <ada_ru> (mister_alexander) я именно про заголовок
[22:18:51] <ada_ru> (mister_alexander) картинка https://www.ada-ru.org/files/bot/2020-01-17-x2.jpg
[22:20:14] <ada_ru> (Oleg) Переделаю
[22:20:45] <ada_ru> (Oleg) На Аде начал проектик
[22:20:48] <ada_ru> (Oleg) :-)
[22:20:54] <ada_ru> (Oleg) Посмотрим ....
[23:50:38] <ada_ru> (Vadim) Представители корпорации, напоминаю, хаять продукты настоятельно не рекомендуется! Если не работает - продукт нормальный, у прльзователя руки не оттуда растут. :)