[00:00:04] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <ну здорово, ты созда…>
Признаю, был неправ:
https://tio.run/##nY/BDoIwEETv/YoJHgQjHjiCktCTv1ELMZtgIbZgCMFfrwUaPXFxT919uzNT2baxrIW6W7sjJeuurHCW2pTU5Iw5ojUKjAyu2u5Wk0yX91wFwgjjlH0HPT1NJ2q8N0nfUAkthhk7PaPD4FoNR5DZO58gyjAxd@aNeeo9NyPwzQj8rwj8F4GUwUOQmvfY@l2BC3gYrZritIisTXGASBxV1Qvc8yTO/cZk7Qc
[00:00:42] <ada_ru> (I_vlxy_I) ну да, оно срезается.
[00:00:47] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <struct или class зна…>
замечание по поводу модификаторов доступа по умолчанию
[00:00:57] <ada_ru> (I_vlxy_I)  отвечает (insert_reference_here) на <замечание по поводу …>
угу
[00:02:40] <ada_ru> (I_vlxy_I) теперь надо попробовать понять может ли GNAT оптимизировать как надо
[00:05:48] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <https://godbolt.org/…>
С -O оптимизируется до просто возврата нуля
[00:06:11] <ada_ru> (I_vlxy_I) ну, плюсы то да. сайдэффектов то нету
[00:07:09] <ada_ru> (I_vlxy_I) https://godbolt.org/z/8S3roo
[00:07:16] <ada_ru> (I_vlxy_I) вот с сайдэффектом
[00:07:46] <ada_ru> (I_vlxy_I) но это немного оффтоп, так что я сейчас попробую на аде что-то наваять 🙂
[00:42:47] <OCTAGRAM> I_vlxy_I, инлайн у Controlled работает замечательно, кроме случаев, когда 'Class, а там должно быть понятно, почему не инлайн
[00:45:15] <OCTAGRAM> в C++ какие-нибудь shared_ptr удвоенного размера, ибо таскают отдельный указатель на контроллёр
[00:46:33] <OCTAGRAM> в Rust умный указатель на типаж потащит второй указатель ради VMT, потому что так там сделан полиморфизм
[00:48:35] <OCTAGRAM> живут как-то
[00:51:13] <OCTAGRAM> я экспериментировал с тем, чтобы приспособить тег под что-то полезное
[00:53:38] <OCTAGRAM> в принципе, возможно, но так, чтобы ничего кроме тега не было, для копируемых Controlled не получилось, тег источника игнорируется, что хорошо, но в месте назначения впечатывается тег заново, так что Adjust не знает, с чем работать
[00:55:23] <OCTAGRAM> у некопируемых такой проблемы нет
[01:01:29] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) в C++ как…>
ага. есть такое. чтобы суметь удалить кого надо. виртуальный деструктор для типов без виртуального деструктора
[01:02:15] <ada_ru> (I_vlxy_I) есть ли такие проблемы у unique_ptr -- с ходу не скажу
[01:02:56] <OCTAGRAM> насколько я понимаю, для всех типов, хотя, может быть, для потомков shared_from_this какое-то исключение
[01:15:03] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) насколько…>
ну, у shared_ptr, до кучи, в этом объекте еще и рефкаунтер живет. так что там в принципе пофиг.
[01:15:15] <ada_ru> (I_vlxy_I) а вот для unique_ptr могут быть нюансы уже
[01:20:26] <OCTAGRAM> у COM объектов он отдельно не таскается, например
[01:20:50] <OCTAGRAM> в Objective-C, кажется, тоже
[01:21:51] <ada_ru> (I_vlxy_I) для юник_птр не нужен вовсе контроллер как сущность где-то в памяти
[01:22:18] <ada_ru> (I_vlxy_I) насколько я понимаю
[01:22:30] <ada_ru> (I_vlxy_I) но надо будет еще глянуть
[01:22:32] <OCTAGRAM> если он инвариантен, то да
[01:22:55] <ada_ru> (I_vlxy_I) он просто известен на этапе компиляции
[01:23:37] <ada_ru> (I_vlxy_I) хотя, там тонкие нюансы с мувсемантикой могут быть
[01:23:40] <ada_ru> (I_vlxy_I) надо подумать
[01:44:30] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <он просто известен н…>
Не всегда, у unique_ptr можно custom deleter использовать
[11:24:46] <ada_ru> (I_vlxy_I) Но в любом случае у Ады всегда будут 8 лишних байт на указатель на 64битных платформах.
[11:28:05] <ada_ru> (I_vlxy_I) Если только компилятор имеет право в зависимости от контекста менять размер типа ради оптимизаций...
[11:28:43] <ada_ru> (I_vlxy_I) Типа видит, что vptr нигде не юзается и тип конкретный, ну и не будет его создавать
[17:59:03] <ada_ru> (I_vlxy_I) unique_ptr в качестве raii инструмента — полное говно. расходимся.

нужно велосипедить что-то своё.
[18:08:54] <OCTAGRAM> ну да, если не shared, то только scoped, вроде такие сейчас опции
[18:09:37] <OCTAGRAM> https://vk.com/wall-68645791_511 http://obertone.ru/radio заразительно
[18:11:33] <ada_ru> (I_vlxy_I) https://godbolt.org/z/BQm4IJ
[18:11:36] <ada_ru> (I_vlxy_I) :-(
[18:14:22] <ada_ru> (I_vlxy_I) scoped_ptr не существует
[21:11:01] <OCTAGRAM> не так давно это было моим домашним заданием, сделать его
[21:11:36] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <unique_ptr в качеств…>
Эм, почему это?
[21:31:49] <ada_ru> (I_vlxy_I)  отвечает (insert_reference_here) на <Эм, почему это?>
https://godbolt.org/z/BQm4IJ
[21:37:32] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <https://godbolt.org/…>
Это упрощённый реальный код, который привёл к подобной ошибке?
[21:39:06] <ada_ru> (I_vlxy_I) тип того. попытка заюзать unique_ptr в качестве обертки для raii без создания чего-либо на куче.
[21:40:10] <OCTAGRAM> https://vk.com/wall-68645791_511 про FPGA поговорили, и про Алексея, который его показывал
[21:40:33] <OCTAGRAM> держу в курсе
[21:42:38] <ada_ru> (I_vlxy_I) FPGA это тема, да.
[21:43:16] <ada_ru> (I_vlxy_I) кстати, собиралось и паялось в US. Вот прямо не шибко далеко от тех мест которые Вирта вдохновили на Оберон.
[21:44:00] <OCTAGRAM> Зерокс, Пало Альто?
[21:45:08] <ada_ru> (I_vlxy_I) Пало Альто, да. Но паялось конечно не в ксероксе 😊
[21:46:54] <OCTAGRAM> сейчас слушаю ту часть, где рассказывают анекдоты про трансляцию Oberon 07 в JavaScript
[21:48:03] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <тип того. попытка за…>
Хм
[21:50:30] <ada_ru> (I_vlxy_I)  отвечает (insert_reference_here) на <Хм>
функция get не твоя. ты её не можешь никак менять.
[21:50:37] <ada_ru> (I_vlxy_I) и она возвращает просто int
[21:51:23] <ada_ru> (I_vlxy_I) наколбасить самостоятельно враппер и на плюсах можно. не в этом вопрос. вопрос в том, что в стандартной либе отсутствует тип unique_неptr и smart_неptr
[21:51:43] <OCTAGRAM> Вирта в Зероксе на Модулу-2 вдохновило, когда он на Мезе программировал (Меза — это как Го 30 лет назад, там зелёные потоки, синхронизация на мониторах, а синтаксически, как в Аде, мониторы встроены в язык). Оберон был потом
[21:52:00] <ada_ru> (I_vlxy_I) оберон был после Cedar
[21:52:10] <ada_ru> (I_vlxy_I) он собственно про это в своей книжке пишет
[21:52:27] <OCTAGRAM> хм, надо посмотреть
[21:52:39] <ada_ru> (I_vlxy_I) он регулярно вдохновлялся после поездки в долину 😊
[21:52:40] <OCTAGRAM> я так понял, когда уезжал, была ещё Меза
[21:52:42] <ada_ru> (insert_reference_here)  отвечает (I_vlxy_I) на <и она возвращает про…>
fn get() -> usize { 666 }

fn main() {
   let _dropped = Wrapper(get());
}
[21:53:16] <ada_ru> (I_vlxy_I) я уже не помню точно. но помню что Оберон он придумал после поездки в долину. в очередной раз.
[21:53:28] <ada_ru> (I_vlxy_I) типа - хочу такое же, но для студентов, простое и обозримое.
[21:53:45] <OCTAGRAM> а, было несколько поездок
[21:54:45] <ada_ru> (I_vlxy_I)  отвечает (insert_reference_here) на <fn get() -> usize { …>
на плюсах можно также написать. не про это же речь
[21:55:00] <ada_ru> (I_vlxy_I) https://godbolt.org/z/Gr-x4H
[21:57:25] <OCTAGRAM> богат второй выпуск Радио Оберон на анекдоты про трансляцию в JavaScript, уже второй язык программирования обсудили, начинается на букву C
[21:58:33] <ada_ru> (I_vlxy_I) Cotlin? 😊
[21:59:27] <OCTAGRAM> 7 букв
[22:50:56] <ada_ru> (insert_reference_here)  отвечает на <(OCTAGRAM) 7 букв>
Cyclone?
[22:53:12] <ada_ru> (FROL256) Cobol?
[22:53:29] <ada_ru> (FROL256) ну да да я плохо считаю ....
[22:53:43] <ada_ru> (FROL256) 1,2,3,4,7
[22:55:02] <ada_ru> (I_vlxy_I) Coboool!
[22:55:46] <ada_ru> (FROL256) )))
[22:56:37] <ada_ru> (FROL256) Closure ?
[22:57:06] <ada_ru> (I_vlxy_I) CLOOOOS!
[23:02:09] <OCTAGRAM> да, Closure
[23:25:16] <ada_ru> (Oleg) "(«язык программирования» (состоящий (из (смайликов (чуть (более (чем (целиком))))))))) " 😊
[23:25:58] <ada_ru> (I_vlxy_I) главное - соблюдать баланс!
[23:26:19] <ada_ru> (FROL256) 👍
[23:26:59] <ada_ru> (Oleg) Я никогда не пробовал в Лиспоподобных языках чтото поделать - надо попробовать
[23:27:31] <ada_ru> (I_vlxy_I) ну, если обратная польская нотация тебе норм для выражений, то проблем не будет
[23:27:50] <ada_ru> (I_vlxy_I) тьху, запись
[23:27:56] <ada_ru> (FROL256) Есть Лисп, а ещё есть Лишп
[23:28:13] <ada_ru> (FROL256) кто знает в чём отличительная особенность Лишпа ?
[23:32:31] <ada_ru> (FROL256) предположения?)
[23:32:46] <ada_ru> (I_vlxy_I) автору последнего выбили зубы
[23:32:59] <ada_ru> (FROL256) точно !!!!!!!!!!!! )))
[23:33:06] <ada_ru> (FROL256) в оригинале звучит так
[23:33:21] <ada_ru> (FROL256) лишп — это язык в котором очень улобно работать со шпишками
[23:33:29] <ada_ru> (FROL256) удобно*
[23:33:35] <ada_ru> (I_vlxy_I) Ыыы
[23:33:43] <ada_ru> (I_vlxy_I) всё, пойду играть в ЧГК 🙂
[23:34:48] <ada_ru> (coopht)  отвечает (I_vlxy_I) на <всё, пойду играть в …>
там же Друзь все купил
[23:35:04] <ada_ru> (I_vlxy_I) не, я про нормальное, спортивное ЧГК