[00:01:02] <ada_ru> (Pavel) как то учила жену ловить мышей, принесла живую мышь, клала перед ногами, как только мышь пыталась удрать - ловила и приносила обратно.
[00:01:32] <ada_ru> (Pavel) типа "смотри, хозяйка, как надо, а то с голоду помрешь тут"
[00:01:44] <ada_ru> (I_vlxy_I) да, знакомая тема :-)
[11:09:01] <ada_ru> (Oleg N.) Такой вопрос, коллеги. GNAT использует в качестве линкера ld?
[11:09:48] <subjrs> ну да
[11:10:24] <ada_ru> (Oleg N.) Я к тому, что в ld есть проблема включения лишнего мёртвого кода до последних версий включительно. Мне бы очень хотелось, чтобы её пофиксили
[11:11:22] <ada_ru> (I_vlxy_I) да ладно, плюс-минус 10 Мб в бинарнике ничего не решают.
[11:12:24] <subjrs> под венду помню всякие архиваторы exe-шников были, под *nix нтересно есть чонить подобное ?
[11:13:32] <ada_ru> (Oleg N.) upx вроде умеет ELF'ы паковать
[11:14:45] <ada_ru> (Oleg N.) Алексей меня не понимает. Он в мире частностей, и ему норм лишние 10 Мб. А мне хочется, чтобы это было правильно сделано раз и навсегда. И потом все пользовались, не заморачиваясь. Эстетики душа просит, короче
[11:18:40] <ada_ru> (I_vlxy_I) в софтварезе много другого не правильного, что сильно важнее размера бинаря. алсо я не помню когда последний раз размер бинаря был проблемой.

кстати, у меня давеча была проблема, что компоновщик выкидывал нужное при компоновке со статическими либами - вот это была реально жесть.
[11:34:34] <ada_ru> (I_vlxy_I) А всё потому, что ld он сишный. А пишу то я не на си. :-/
[11:37:05] <ada_ru> (Максим) Oleg N. может тебе нужно линковка на уровне функций, а не объектников? это тоже возможно в gcc/gnat
[11:39:14] <ada_ru> (I_vlxy_I) А что будет в этом случае с блоком begin..end всего пакета и что будет с переменными уровня пакета, а не функций?
[11:40:45] <ada_ru> (Максим) функции поудаляет неиспользованные, begin явно останется, его ведь adainit вызывает. А переменные... я не в курсе.
[11:42:24] <ada_ru> (I_vlxy_I) оптимизации компоновщика меня, откровенно говоря, периодически пугают. вроде и программа корректная и собралась и слинковалась без ошибок, но на выходе программа уже не корректная..
[11:42:38] <ada_ru> (Oleg N.) Это как? -flto?
[11:43:08] <ada_ru> (I_vlxy_I) зато бинарь мелкий, да.
[11:43:39] <ada_ru> (Максим) -ffunction-sections
[11:43:45] <ada_ru> (Oleg N.) А, это я юзаю
[11:44:06] <ada_ru> (Oleg N.) Оно стало работать лучше в новых версиях линкера, чем было до того.
[11:44:27] <ada_ru> (Oleg N.) Проблема неубирания всего мёртвого кода касается только PE/COFF
[11:44:52] <ada_ru> (Oleg N.) Тут можно списать на то, что MinGW это просто подгонка GCC под неправильную ОС бла-бла и всё такое
[11:45:26] <ada_ru> (Oleg N.) Команда MinGW как бы в курсе проблемы, просто никто не занимается
[11:47:06] <ada_ru> (Oleg N.) так я и говорю, надо патч для старого ЛД запатчить чтоб он подходил к новому ЛД?
[11:47:07] <ada_ru> (Oleg N.) Новый LD может вообще не подойти для этого патча)
[11:47:09] <ada_ru> (Oleg N.) Да руки кривоваты)
[11:47:11] <ada_ru> (Oleg N.) а тогда в чём проблема? взял нужный лд, наклал патч, скомилял )
[11:47:13] <ada_ru> (Oleg N.) Мало ли что там перепахали))
[11:47:15] <ada_ru> (Oleg N.) а как выглядит патч?
[11:47:19] <ada_ru> (Oleg N.) Оф разрабам MinGW постоянно пишут об этой проблеме LD, что включает лишний мёртвый код. Они тупо отмораживаются)
[11:47:23] <ada_ru> (Oleg N.) https://sourceware.org/bugzilla/attachment.cgi?id=5301
https://sourceware.org/bugzilla/attachment.cgi?id=5960
[11:48:57] <ada_ru> (Максим) ого как бота глючит
[11:48:58] <ada_ru> (Oleg N.) Что это бот дупит?) Да не всё
[11:49:28] <ada_ru> (I_vlxy_I) Если в чатик громко крикнуть, будет эхо? :-)
[11:50:40] <ada_ru> (Oleg N.) Опять забыли про поддержку неправильной ОС 😞
[11:50:42] <ada_ru> (Oleg N.) Зато вот чего изобрели: https://www2.informatik.hu-berlin.de/~weber/deadstrip/
[11:50:46] <ada_ru> (Oleg N.) commit 0f088b2a9417b1d4ed597849ffa671eba25f5051
Author: Kai Tietz <ktietz@redhat.com>
Date:   Fri Jul 3 15:50:29 2015 +0100

   Add experimental support for --gc-sections with COFF and PE based targets.
[11:51:20] <ada_ru> (Oleg N.) Эту deadstrip я испробовал, она вовсе не так уж и хороша
[11:51:51] <ada_ru> (Oleg N.) Зачем я всё это форвардил. С надеждой, вдруг кто-то захочет помочь мне с патчем =)
[12:46:48] <ada_ru> (I_vlxy_I) "Ссылки Ada 2012 поддерживают RAII" - все же можно подробностей?
[16:28:59] <yeo> landgraf, а болше подвижек запаковать asis в RPM федоры не было?
[16:29:24] <yeo> может попробовать еще раз взяться за это дело?
[16:30:18] <yeo> в дебиане и то есть!
[16:31:24] <ada_ru> (I_vlxy_I) дебиан рулит!
[16:32:23] <ada_ru> (yeo): да, там уже в stable gnat 6.3
[16:32:44] <ada_ru> (I_vlxy_I) а в арчике уже 7.2!
[16:38:56] <ada_ru> (Pavel) так сказали же что теперь питонланг шагает по планете
[16:50:18] <OCTAGRAM> yeo: ссылки — это же просто limited с дискриминантом, это может быть и Limited_Controlled, или внутри там может лежать копия Unbounded_String, для которой через Aux был получен указатель, и они так могут закреплять содержимое по постоянному адресу; лучше, конечно, чтобы сами разработчики сразу это предоставили, желательно в том же Aux
[16:52:02] <valexey> talk is cheap. show me the code!
[16:52:05] <valexey> примеров хочу
[16:56:34] <OCTAGRAM> type My_Reference (My_Data : not null access Boolean) is new Limited_Controlled with null record;
overriding procedure Finalize (Object : in out My_Reference);
[16:56:46] <OCTAGRAM> какой код надо?
[16:56:59] <OCTAGRAM> я Aux'ом, если что, не пользовался
[17:00:33] <ada_ru> (Максим) Pavel ладно, попробую сам запаковать
[17:01:57] <yeo> OCTAGRAM, я не вижу смысла доставать из Unbounded_String указатель на текст, чтобы запаковать его в Controlled
[17:02:19] <yeo> удобнее/лучше он от этого не станет
[17:03:08] <yeo> матрешкины строки, по своей сути, тот же Controlled с указателем на текст, только с удобным ООП интерфейсом снаружи
[17:12:20] <landgraf> yeo, сам asis то я собрал и не раз, но у меня основная цель была GPS
[17:12:49] <yeo> landgraf, мне он нужен для a2js
[17:12:54] <landgraf> а для него нужен libadalang и еще какое-то питоновское поделие (quex или как его там), а там настолько все криво, что я сдался
[17:13:54] <yeo> пока LAL там только для виду, его можно выкинуть, если надо
[17:14:09] <landgraf> да, ну тогда можно подумать
[17:15:37] <yeo> но для GPS не нужен ASIS
[17:15:43] <landgraf> yeo, https://copr.fedorainfracloud.org/coprs/landgraf/ada-testing-repo/packages/ можешь это попытаться заюзать
[17:21:46] <OCTAGRAM> yeo, как это не станет? его в любой API, принимающий фиксированные строки, без копирования становится возможно передать; а если матрёшкины строки поддерживать, так это в обяз и всю матрёшку тащить по зависимостям
[17:23:35] <yeo> да нету никакого маломальски полезного "API", который принимает на вход Wide_[Wide_]String
[17:24:36] <OCTAGRAM> свой писать
[17:24:52] <OCTAGRAM> именно в таком стиле
[17:25:18] <OCTAGRAM> для PEP-038 кодеки если сделать, можно многое завернуть будет
[17:25:49] <yeo> свой написали уже, матрешка называется :)
[17:26:31] <yeo> а что такое PEP-038?
[22:46:31] <yeo> вот зараза, asis не работает у меня... а в дебиане - работает :(
[22:53:11] <ada_ru> (I_vlxy_I) PEP - это опять питоняка же. Вот генераторы и декораторы в Аду-2020 добавят, можно будет любой PEP 1 в 1 реализовать!