[02:22:15] <ada_ru> (a) Круто, что продолжают делать. И сами ролики вречатляют
[09:21:46] <ada_ru> (Oleg) Андроид это невнятное дерьмо
[09:22:30] <ada_ru> (Oleg) Как можно делать функцию которая легко включается но чтоб выключить надо потратить день
[09:23:58] <ada_ru> (shiz01) Как обычно, т.е. через одно место?
Сам андроид, в текущем виде - это форменное издевательство над linux kernel.
[09:24:26] <ada_ru> (Oleg) У меня есть сейлфиш :-)
[09:24:46] <ada_ru> (Oleg) Но там тоже есть спорные решения
[09:25:01] <ada_ru> (Oleg) Но в целом ничего. Ну и IOS
[09:26:18] <ada_ru> (shiz01) Эксобар.жипег
[09:28:26] <ada_ru> (Oleg) Мне кажется есть же логика , если функцию легко включить то должно быть так же легко выключить. Если ты что-то включил из меню «это» то и выключать ее надо в том же меню
[09:29:04] <ada_ru> (Oleg) Но нет б...ь , включил тут, а выключай хз где. Ищи...
[09:29:38] <ada_ru> (Oleg) Машину завёл ключик а заглуши кнопкой в багажнике
[09:30:11] <ada_ru> (Oleg) Будете делать UI старайтесь таким идиотизмом не страдать
[09:32:31] <ada_ru> (Oleg) Ещё нравится перерисовка во время использования, список номеров обновляется в iOS в логе звонков , уже после того как ты его открыл , и ты регулярно звонишь не тому абоненту потому что только что , под пальцем был другой
[09:33:20] <ada_ru> (Oleg) Это мне кажется настолько простые принципы , что надо что-то употреблять чтобы им не следовать
[09:37:20] <ada_ru> (Eugene) в гудроиде тоже постоянно такой баг
[13:37:55] <subjrs> https://www.ada-ru.org/ лежит?
[14:05:32] <yeo> subjrs, ну перегружал.
[14:06:05] <subjrs> хм, как совпало то, давно туда не заходил и тут разок приспичило))
[15:36:03] <yeo> Да проапдейтил OpenSuse и настроил ipv6 адрес, а то отвалился где-то
[16:21:22] <ada_ru> (I_vlxy_I)  отвечает на <(yeo) subjrs, ну пер…>
Забавно, что вопрос на который ты отвечал не дошёл до телеграмма.
[16:21:47] <ada_ru> (I_vlxy_I) То есть вот это не дошло: «[13:37:55] <subjrs> https://www.ada-ru.org/ лежит?»
[16:22:24] <subjrs> антиспам какойнить
[16:22:26] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Обновляю OpenSuse на…>
С другой стороны, до Джаббера не дошло вот это сообщение.
[17:06:42] <ada_ru> (Eugene) ну логично, бот не пахал, пока его перегружали с системой
[17:14:36] <ada_ru> (I_vlxy_I) А, бот там же живет?
[17:16:01] <ada_ru> (Eugene) наверное))
[22:46:28] <ada_ru> (shiz01) А можно пару примеров кода на аде, с утечкой памяти и ub ?
[22:47:01] <ada_ru> (shiz01) Это же возможно?
Или компилятор не даст?
[22:48:09] <ada_ru> (I_vlxy_I) Утечка точно да
[22:49:05] <ada_ru> (shiz01) А уб, хоть раз встречалось?
[23:09:24] <ada_ru> (I_vlxy_I)  отвечает (shiz01) на <А уб, хоть раз встре…>
а что ты подразумеваешь под UB? Это ж термин из стандарта Си или С++. Надо просто глянуть есть ли подобный термин в Адском стандарте
[23:13:00] <ada_ru> (I_vlxy_I) вот например описание семантики Unchecked_Deallocation https://www.adaic.org/resources/add_content/standards/05rm/html/RM-13-11-2.html
[23:14:07] <ada_ru> (I_vlxy_I) технически, если ты отрубишь все рантайм проверки насильно, то эффект от некоторых невалидных действий будет близок к сишному. IMHO

но далеко не всех 🙂
[23:14:31] <ada_ru> (I_vlxy_I) btw: в расте утечки памяти тоже возможны. и UB тоже есть даже со всеми включенными проверками
[23:14:57] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <btw: в расте утечки …>
ты про unsafe или так накосячить можно и в safe коде?
[23:15:31] <ada_ru> (I_vlxy_I) можно в safe накосячить
[23:15:51] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <технически, если ты …>
Хм, надо читать.
Пока, Ада больше всех ругает за криворукость.
И это хорошо.
[23:16:58] <ada_ru> (I_vlxy_I) ада дофига чего проверяет в рантайме. в некоторых местах это можно было бы проверять в compile time, но в 80-е до этого не додумались, или додумались, но машины для компиляции слишком дохлые были
[23:17:32] <ada_ru> (I_vlxy_I) и так Адский компилятор на персоналку упихать была та еще задача, и её не могли решить довольно долго. даже на больших машинах далеко не сразу удалось адский компилятор создать
[23:17:52] <ada_ru> (shiz01) Да, действительно Адский Компилятор...
[23:18:11] <ada_ru> (I_vlxy_I) но попинывать Аду и комитет, чтобы они таки запиливали больше безопасности в язык надо!
[23:23:15] <ada_ru> (I_vlxy_I) вот отсюда: https://learn.adacore.com/courses/intro-to-ada/chapters/more_about_types.html#variant-records

если вот так использовать этот вариант:

with Variant_Record; use Variant_Record;

procedure Main is
  E : Expr := (Num, 12);
  
  procedure Test (e : in out Expr) is
  begin
     e.Left := new Expr'(Num, 42);
  end Test;
begin
  Test(e);
end Main;

то компилятор даже ничего и не мявкнет

а вот в рантайме будет ошибка (да, в Аде это проверяется в рантайме)
[23:23:43] <ada_ru> (I_vlxy_I) вот пример когда спасает рантайм проверка.  и это место в языке можно было бы конкретно улучшить
[23:24:26] <ada_ru> (shiz01) Перенести в компил-тайм такие проверки, где это возможно?
[23:24:33] <ada_ru> (I_vlxy_I) везде
[23:24:42] <ada_ru> (I_vlxy_I) Даже в с++ 🙂
[23:25:03] <ada_ru> (shiz01)  отвечает (I_vlxy_I) на <Даже в с++ 🙂>
constexpr ещё не полностью
[23:25:06] <ada_ru> (I_vlxy_I) Ocaml, haskell, c++, rust - везде где есть алгебраические типы данных либо в языке либо через либу
[23:25:14] <ada_ru> (I_vlxy_I)  отвечает (shiz01) на <constexpr ещё не пол…>
просто тупо std::variant
[23:25:34] <ada_ru> (shiz01) А, ты про конкретно вариант.
[23:27:41] <ada_ru> (I_vlxy_I) понятное дело, что дискриминантные записи в Аде они шире варианта. то есть там фич больше. то есть тупо на вариант заменить - не вариант.

но подумать что можно сделать нужно 🙂 IMHO
[23:27:46] <ada_ru> (I_vlxy_I) ибо вариант - это частый юзкейс